Embodiments of the present disclosure generally relate to the field of robotics, and more particularly, to a method for adjusting robot path with line laser, a computing device, and a computer readable storage medium.
Industrial robots are widely used in production. With the rapid development of robot technology and the increasing expansion of application fields, the production environment and process requirements become more and more complex, and the requirements for robot positioning accuracy in industrial production become higher and higher. Accuracy is a very important index to measure the quality of a six-axis robot. The accuracy of a six-axis robot mainly involves “absolute positioning accuracy”, “repeated positioning accuracy”, “absolute path accuracy”, “repeated path accuracy”, etc. Among them, “repeated positioning accuracy” is an important one.
However, in practical production and application, due to some problems, for example manufacturing or assembly errors of internal parts of robot body, it is almost impossible for industrial robots to traverse a perfect circular, linear or rectangular paths, which will affect the operation effect of high-precision applications. Therefore, there is still room for continuous improvement in work efficiency and operation accuracy.
In view of the foregoing problems, example embodiments of the present disclosure propose solutions for robot path correction to improve the positioning accuracy.
In a first aspect of the present disclosure, example embodiments of the present disclosure provide a method of adjusting a robot path. The method comprises: obtaining a plurality of scanned contours of a tool held by a robot travelling along the robot path by scanning the tool using a laser sensor; determining, based on the plurality of scanned contours, a plurality of positions in an actual trajectory of the tool; determining the actual trajectory based on the plurality of positions; and adjusting the robot path based on a deviation of the actual trajectory from a theoretical trajectory of the tool. With these embodiments, when the robot travels along a path, a laser sensor, e.g., line laser equipment is used to scan the movement of the tool held by the robot to obtain a set of scanned contours of the tool at different positions with very high precision. By processing and analyzing the scanned contour, a deviation of the actual trajectory and the theoretical trajectory can be determined. The deviation thus can be used to adjust the robot path to achieve robot path correction and therefore improve the position accuracy of the robot. It should be appreciated that one or more laser sensor can be used to detect the contour of the tool. For example, a plurality of laser sensors can be distributed around the robot to detect different parts of the contour at the same time. The present disclosure is not intended to limit the number of the laser sensor.
In some embodiments, obtaining the plurality of scanned contours comprises: obtaining a plurality of sets of contour points, each set of contour points corresponding to one of the plurality of scanned contours and being detected by the laser sensor at one of the plurality of positions in the actual trajectory. With these embodiments, when the laser sensor scans the tool at a plurality of different positons during travelling, the laser sensor will detect a plurality of partial contours of a cross section of the tool. These partial contours can be used for the subsequent analysis.
In some embodiments, determining the plurality of positions in the actual trajectory comprises: determining a plurality of estimated closed contours based on the plurality of scanned contours by fitting a two-dimensional shape to each set of contour points; determining a plurality of center positions of the plurality of estimated closed contours; and determining the plurality of positions based on the plurality of center positions. The scanned contour of the tool is generally a regular two-dimensional shape, such as circle, ellipse, square and rectangle, or some particular shape that can be described be known function. Therefore, with these embodiments, the scanned contour can be complemented by curve fitting based on the contour points to generate an estimated closed contour. The center position of the estimated closed contour may indicate the positions in the actual trajectory. By interpolating between these center positions, the actual trajectory of the tool in the detection plane can be generated.
In some embodiments, adjusting the robot path comprises: determining the theoretical trajectory by fitting the plurality of positions to a predetermined shape trajectory; determining at least one position deviation of at least one deviated position in the actual trajectory from at least one corresponding theoretical position in the theoretical trajectory; and adjusting at least one position in the robot path corresponding to the at least one deviated position based on the at least one position deviation. With these embodiments, the theoretical trajectory can be determined by fitting a trajectory of a predetermined shape to the plurality of positions. The trajectory of a predetermined shape may be any shape that can be described by functions, such as circle, ellipse, straight line, sine cosine curve and hyperbola, as well as some combined trajectories. Therefore, the theoretical trajectory can be accurately determined.
In some embodiments, the method further comprises: in response to determining that a further robot path to be travelled by the robot causes the tool pass through the at least one deviated position, adjusting the further robot path based on the at least one position deviation. With these embodiments, once a deviated position is determined and adjusted, it can be stored and used for other robot path also passing through the deviated position. The applicability of the previously-determined adjustment is increased.
In some embodiments, adjusting at least one position in the robot path comprises: determining an inclined angle of the plurality of estimated closed contours relative to the tool; determining at least one path deviation of at least one deviated position in the robot path corresponding to the at least one position deviation based on the inclined angle; and adjusting at least one position in the robot path corresponding to the at least one deviated position based on the at least one path deviation. With these embodiments, the laser sensor is not calibrated which means a relationship between the coordination system of the laser sensor and the coordination system of the robot or the tool are unknown. Therefore, the inclined angle between the estimated closed contours relative can be used to map the coordinate in the coordination system of the laser sensor into the coordination system of the robot or the tool. After a compensation for the determined deviation is determined, it can be converted into the coordination system of the robot or the tool to update the positions in the robot path.
In some embodiments, determining the inclined angle comprises: in response to determining that a shape of the estimated closed contour has rotational symmetry, determining that the inclined angle is substantially 90 degrees. With these embodiments, when the estimated closed contour is determined to be rotational symmetry, it can be determined that the detection plane is perpendicular to the tool and the compensation for the deviated position can be directly applied to the robot path.
In some embodiments, determining the inclined angle comprises: in response to determining that a shape of the estimated closed contour has reflective symmetry but not rotational symmetry, determining a first geometry size of the estimated closed contour; and determining the inclined angle based on the first geometry size. With these embodiments, the contour of a tool is normally rotationally symmetrical, therefore, when the estimated closed contour is not rotationally symmetrical, it means that the detection plane is not perpendicular to the tool and the inclined angle must be determined. For example, the estimated closed contour may be symmetrical relative to two orthogonal symmetrical axes, namely a long axis and a short axis (similar to ellipse). The inclined angle can be determined by the length of the long axis and the length of the short axis.
In some embodiments, determining the inclined angle further comprises: causing the robot to incline the tool towards the laser sensor; obtaining a scanned contour of the inclined tool by scanning the inclined tool using the laser sensor; determining a second geometry size of an estimated closed contour corresponding to the scanned contour of the inclined tool; and determining an orientation of the plurality of estimated closed contours relative to the tool based on the second geometry size and the first geometry size. With these embodiments, by causing the tool further incline towards the laser sensor, a relative orientation between the tool and the detection plane can be determined.
In some embodiments, obtaining the plurality of scanned contours comprises: causing the robot to stop the tool at a position of the plurality of positions; and obtaining a scanned contour of the plurality of scanned contours by scanning the tool at the position using the laser sensor. With these embodiments, the scanned contour can be obtained at desired positions. Further, since the robot is static when the scanned contour is obtained, the obtain data is more reliable.
In some embodiments, obtaining the plurality of scanned contours comprises: causing the robot to move the tool to travel along the actual trajectory continuously; and obtaining the plurality of scanned contours by scanning the tool using the laser sensor at corresponding time points. With these embodiments, by scanning the tool during travelling, a trajectory of the tool during operation can be obtained.
In some embodiments, the method further comprises: in response to determining that the deviation of the actual trajectory from the theoretical trajectory is greater than a predefined threshold, obtaining a further plurality of scanned contours of the tool held by the robot travelling along the adjusted robot path by scanning the tool using the laser sensor; determining, based on the further plurality of scanned contours, a further plurality of positions in an adjusted actual trajectory of the tool; determining the adjusted actual trajectory based on the further plurality of positions; and further adjusting the adjusted robot path based on a deviation of the adjusted actual trajectory from the theoretical trajectory of the tool. With these embodiments, the method can be iteratively performed.
In some embodiments, the method further comprises: in response to determining that the deviation of the actual trajectory from the theoretical trajectory is less than a predefined threshold, ceasing further adjusting the adjusted robot path. With these embodiments, the iteration may cease until the deviation is tolerable.
In a second aspect, example embodiments of the present disclosure provide a method of adjusting a robot path. The method comprises: obtaining a plurality of scanned contours of a fixed object by scanning the fixed object using a laser sensor held by a robot travelling along the robot path; determining, based on the plurality of scanned contours, a plurality of positions in a relative trajectory of the fixed object with regard to the laser sensor; determining the relative trajectory based on the plurality of positions; and adjusting the robot path based on a deviation of the relative trajectory from a theoretical trajectory of the fixed object with regard to the laser sensor. With these embodiments, the scanned contours are detected relative to the laser sensor. Therefore, in the detection plane formed by the laser sensor, the fixed object moves relatively to the laser sensor. In the meantime, a relative trajectory of the fixed object in the detection plane corresponds to the robot path. Therefore, based on a deviation of the relative trajectory, the robot path can be properly adjusted.
It should be appreciated that the difference between the embodiments of the first aspect and the second aspect is only the positions of the tool and the laser sensor. The trajectory in the detection plane of the tool in the first aspect and the trajectory in the detection plane of the fixed object in the second aspect can be analyzed in the same way. Therefore, embodiments in accordance with the first aspects can be applied in the embodiments in accordance with the second aspects.
In a third aspect, example embodiments of the present disclosure provide a computing device. The computing device comprises: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the computing device to perform the method for adjusting a robot path.
In a fourth aspect, example embodiments of the present disclosure provide a computer readable medium having instructions stored thereon, the instructions, when executed on at least one processor, cause the at least one processor to perform the method for adjusting a robot path.
Through the following detailed descriptions with reference to the accompanying drawings, the above and other objectives, features and advantages of the example embodiments disclosed herein will become more comprehensible. In the drawings, several example embodiments disclosed herein will be illustrated in an exemplary and in a non-limiting manner, wherein:
Throughout the drawings, the same or similar reference symbols are used to indicate the same or similar elements.
Principles of the present disclosure will now be described with reference to several example embodiments shown in the drawings. Though example embodiments of the present disclosure are illustrated in the drawings, it is to be understood that the embodiments are described only to facilitate those skilled in the art in better understanding and thereby achieving the present disclosure, rather than to limit the scope of the disclosure in any manner.
As described above, in order to improve the end-effector's positioning accuracy of industrial robots, the some solutions are implemented. For example, in some cases, the quality of robot parts and important transmission devices are manufactured with higher precision to reduce mechanical errors which lead to higher production and commissioning costs. In some further cases, manual on-site debugging and correction are implemented which may lead to low efficiency and potential safety problems. In some still further cases, the kinematic calibration of industrial robot introduced to improve the end-effector's positioning accuracy.
Besides there are also solutions with help of auxiliary equipment such as vision cameras and sensors are adopted. However, the cost of auxiliary equipment and commissioning will be increased, and in the meantime it is difficult to apply when the working conditions are limited. Therefore, the effect of these solutions is not ideal and there are still drawbacks for the existing solutions.
In order to at least partially solve the above and other potential problems, a new method is provided for adjusting robot path according to embodiments of the present disclosure. In general, actual trajectory of a robot-held tool in the detection plane of a laser sensor is determined based on a plurality of scanned contours of a cross section of the tool at different positions in the actual trajectory. The deviation of the actual trajectory from a theoretical trajectory can be determined by analyzing the scanned contours. Then, the robot path can be adjusted based on the deviation. The laser-scanned contours obtained have high precision and the use of laser sensor will barely be limited by the environment on site. Therefore, the robot path can be corrected with high precision and low costs.
A framework in accordance with embodiments of the present disclosure will be described with reference to
In order to detect the positions of the tool, a laser sensor 40 is provided in the vicinity of working site and couple to the computing device 10. The laser sensor 40 for example is a line laser and configured to employ a laser and an optical lens to project the laser beam as a line and detect the position of points scanned by the laser beam. The line laser beam can form a detection plane D. The positions detected by the laser sensor 40 are in form of coordination in the detection plane D. During machining, the laser sensor 40 emits laser beam onto the side surface of the tool 21 and detects the position of points on a contour of a cross section of the tool 21 in the detection plane D. After the positions are detected, the position data will be transmitted to the computing 10 for subsequent processing. Hereinafter, reference will be made to
In
In some example embodiments, in order to obtain the plurality of scanned contours, the computing device 10 may cause the robot 20 to stop the tool 21 at a position of the plurality of position. When the tool 21 arrives and stops at a predefined position, the laser sensor 40 scans a contour of the tool 21 and transmits the data to the computing device 10, such that the computing device 10 obtains the plurality of scanned contours. In some other embodiments, in order to obtain the plurality of scanned contours, the computing device 10 may cause the robot 20 to move the tool 21 to travel along the actual trajectory continuously. During the movement of the tool 21, the laser sensor 40 may scan the tool 21 at specific time intervals and transmits the data to the computing device 40.
Back to
As illustrated in
For example, in the example embodiment illustrated in
Back to
At 208, the computing device 10 adjusts the robot path based on a deviation of the actual trajectory from a theoretical trajectory of the tool. The positions in the actual trajectory can also be used to determine a theoretical trajectory in the detection plane. If the actual trajectory deviates from the theoretical trajectory, the deviation in the detection plane D will be determined by the computing device 10 and then the robot path will be adjusted based on the deviation. The adjusting procedure will be described in further details with reference to the embodiment illustrated in
In this way, contour sampling data of the tool with high precision can be analyzed to correct the actual path data to fit the desired one, so as to improve the path accuracy. Therefore, by automatically optimizing the path and improving the positioning accuracy through scanned contour sampling data analysis, high-precision positioning can be achieved. Further, compared to vision and manual path correction, the computational complexity is less than that of traditional vision and point cloud computing. Therefore, the processing speed is faster, and the accuracy can be guaranteed.
Hereinafter, the detailed method for adjusting positions in robot path will be described with reference to
At 302, the computing device 10 determines the theoretical trajectory by fitting the plurality of positions to a predetermined shape trajectory. As illustrated in
At 304, the computing device 10 determines at least one position deviation of at least one deviated position in the actual trajectory from at least one corresponding theoretical position in the theoretical trajectory. It can be clearly seen from
At 306, the computing device 10 determines an inclined angle of the plurality of estimated closed contours relative to the tool. Since the deviation is in the detection plane D, that is, the deviation is determined according to the coordination system of the laser sensor 40, it need to be mapped into the coordination system of the robot 21, so that the computing device 10 can adjust the robot path based on the mapped deviation.
In some embodiments, the inclined angle can be determined based on the geometry of the shape of the estimated closed contour. For example, in the embodiment as illustrated in
At 308, the computing device 10 determines at least one path deviation of at least one deviated position in the robot path corresponding to the at least one position deviation based on the inclined angle. After the inclined angle is determined, the deviation in the detection plane D will be mapped into the coordination system of the tool 21 or the robot 20. The coordination system of the tool 21 is associated with the coordination system of the robot 20.
At 310, the computing device 10 adjusts at least one position in the robot path corresponding to the at least one deviated position based on the at least one path deviation. The computing device updates the previous coordination based on the mapped path deviation. In some embodiments, when the computing device 10 determines that a further robot path to be travelled by the robot 20 will cause the tool 21 pass through the at least one deviated position, the computing device 10 adjusts the further robot path based on the at least one position deviation.
In conclusion, the method provided by example embodiments of the present disclosure is simple and effective, ensures the accuracy, saves human and material resources and improves the efficiency. For the actual application site, it greatly saves the time of on-site debugging for operators. The method provided by example embodiments of the present disclosure is low-cost, high-efficiency and ensures the path accuracy and quality at the same time. Hereinafter, an example procedure for adjusting positions in robot path in accordance with a further embodiment of the present disclosure will be described with reference to
As illustrated in
In
In
Since the positions of the center points of the estimated closed contours are determined. The actual trajectory (as shown in dash line) is determined. By fitting the center points of the estimated closed contours, a theoretical trajectory (as shown in solid line), which is a circle, is determined. It can be clearly seen from
Different from the embodiment as illustrated in
However, the calculated inclined angle may indicate two situations, namely two different orientations of the estimated closed contours relative to the tool 21. In some example embodiments, in order to determine the orientation, the computing device 10 may cause the robot 20 to incline the tool 21 towards the laser sensor 40. Then, the laser sensor 40 detects a new scanned contour of the inclined tool 21 and transmits the contour data to the computing device 10. Upon receiving the contour data, the computing device 10 determines a second geometry size of an estimated closed contour corresponding to the scanned contour of the inclined tool 21. Finally, the computing device 10 determines an orientation of the plurality of estimated closed contours relative to the tool 21 based on the second geometry size and the first geometry size. For example, if the second geometry size is larger than the first geometry size, the estimated closed contour extends from the laser sensor 40 away from a tip of the tool 21, namely the inclined angle is an obtuse angle. Relatively, if the second geometry size is smaller than the first geometry size, the estimated closed contour extends from the laser sensor 40 towards a tip of the tool 21, namely the inclined angle is an acute angle. This procedure is illustrated in
In
As illustrated in
In some alternative embodiments, the long symmetrical axis of the estimated closed contour may be a detected in form of a vector. The orientation of the estimated closed contour relative to the tool may be determined based on the vectorized long symmetrical axis.
Back to the embodiment as illustrated in
In this way, although the laser sensor 40 is not calibrated, by determining the inclined angle and the relative orientation between the detection plane and the tool based on the geometry of the estimated closed contour, the adjusting of a robot path can also be achieved. It should be noted that the shape of the actual path in the robot coordination system is not relevant. Once the deviation between the actual trajectory and the theoretical trajectory in the detection plane is compensated, the path deviation in the robot coordination system will also be compensated no matter what the shape of the robot path is.
Alternatively, the position of the laser sensor 40 and the tool can be exchanged.
At 702, the computing device 10 obtains a plurality of scanned contours of a fixed object by scanning the fixed object using a laser sensor held by a robot travelling along the robot path. In this case, the scanned contours are obtained by scanning the a fixed object using a laser sensor. When the robot travels along a robot path, the laser sensor is moved by the robot along a trajectory. The fixed object may be located remotely from the robot but still on site. Alternatively, the fixed object may be located on the robot. During the traveling of the laser sensor, in the detection plane formed by the laser beam emitted by the laser sensor, the fixed object moves relative to the laser sensor and the shape of the relative trajectory of the fixed object corresponds the robot path.
At 704, the computing device 10 determines a plurality of positions in a relative trajectory of the fixed object with regard to the laser sensor based on the plurality of scanned contours. As described above, the relative trajectory is a trajectory travelled by the fixed object in the detection plane.
At 706, the computing device 10 determines the relative trajectory based on the plurality of positions.
At 708, the computing device 10 adjusts the robot path based on a deviation of the relative trajectory from a theoretical trajectory of the fixed object with regard to the laser sensor. The positions in the relative trajectory can also be used to determine a theoretical trajectory in the detection plane. If the relative trajectory deviates from the theoretical trajectory, the deviation in the detection plane will be determined by the computing device 10 and then the robot path will be adjusted based on the deviation. The adjusting procedure is similar to the procedure described with reference to the embodiment illustrated in
In some embodiments of the present disclosure, a computing device is provided for implementing the above methods 200, 300 and 700.
In some embodiments of the present disclosure, a computer readable medium for adjusting robot path is provided. The computer readable medium has instructions stored thereon, and the instructions, when executed on at least one processor, may cause at least one processor to perform the method for managing a camera system as described in the preceding paragraphs, and details will be omitted hereinafter.
Generally, various embodiments of the present disclosure may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. Some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device. While various aspects of embodiments of the present disclosure are illustrated and described as block diagrams, flowcharts, or using some other pictorial representation, it will be appreciated that the blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
The present disclosure also provides at least one computer program product tangibly stored on a non-transitory computer readable storage medium. The computer program product includes computer-executable instructions, such as those included in program modules, being executed in a device on a target real or virtual processor, to carry out the process or method as described above with reference to
Program code for carrying out methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowcharts and/or block diagrams to be implemented. The program code may execute entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.
The above program code may be embodied on a machine readable medium, which may be any tangible medium that may contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine readable medium may be a machine readable signal medium or a machine readable storage medium. A machine readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the machine readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the present disclosure, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in the context of separate embodiments may also be implemented in combination in a single embodiment. On the other hand, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable sub-combination.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
It should be appreciated that the above detailed embodiments of the present disclosure are only to exemplify or explain principles of the present disclosure and not to limit the present disclosure. Therefore, any modifications, equivalent alternatives and improvement, etc. without departing from the spirit and scope of the present disclosure shall be included in the scope of protection of the present disclosure. Meanwhile, appended claims of the present disclosure aim to cover all the variations and modifications falling under the scope and boundary of the claims or equivalents of the scope and boundary.
| Number | Date | Country | |
|---|---|---|---|
| Parent | PCT/CN2022/107505 | Jul 2022 | WO |
| Child | 18988031 | US |