Method for generating an operating path of a robot system and method for calibrating a robot system
The method enhances robot calibration accuracy and efficiency by generating diverse, collision-free postures and paths using 3D information, addressing the limitations of existing methods in posture diversity and environmental collisions.
Patent Information
- Application Number
- PCT/CN2024/076371
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-06
- Publication Date
- 2025-08-14
AI Technical Summary
Existing robot calibration methods suffer from low accuracy and efficiency, particularly in determining the transformation relationship between the visual system and the robot's coordinate system, often failing to consider posture diversity and environmental collisions.
A method for generating an operating path of a robot system that involves generating multiple postures in its workspace based on 3D information, selecting reachable postures, and planning a collision-free path using 3D models of the environment and tool, followed by capturing images to determine transformation matrices through a least squares method.
Improves the accuracy and efficiency of robot calibration by ensuring diverse, reachable postures and collision-free paths, resulting in a more robust and automated calibration process.
Smart Images

Figure CN2024076371_14082025_PF_FP_ABST
Abstract
Description
METHOD FOR GENERATING AN OPERATING PATH OF A ROBOT SYSTEM AND METHOD FOR CALIBRATING A ROBOT SYSTEMFIELD
[0001] Embodiments of the present disclosure generally relate to the field of robot system, and more particularly, to a method for generating an operating path of a robot system, a method for calibrating a robot system, a computing device, a robot system and computer readable medium.BACKGROUND
[0002] In industrial application, robot can use images obtained by a visual system, such as a camera, to control an arm of the robot or an end effector to perform operations. In order to ensure that the robot accurately moves the arm or the effector to a target position, it is necessary to determine a transformation relationship from a coordinate system of the visual system to a coordinate system of the end of the arm or the effector, or a transformation relationship from a coordinate system of the visual system to a base of the robot, that is, the robot and the visual system need to be calibrated.
[0003] The existing calibration methods have shortcomings such as low accuracy and low efficiency.SUMMARY
[0004] In view of the foregoing problems, various example embodiments of the present disclosure provide a method for generating an operating path of a robot system, a method for calibrating a robot system, and thus improving the accuracy and efficiency of the calibration.
[0005] In a first aspect of the present disclosure, example embodiments of the present disclosure provide a method for generating an operating path of a robot system, the robot system comprises a robot, the method comprises: generating a plurality of postures in work space of the robot; selecting a set of postures reachable by the robot from the plurality of postures, based on 3D information of the robot system and of working environment around the robot system; and generating an operating path via which the robot traverses the set of postures, based on the 3D information.
[0006] With such an arrangement, the collision free calibration postures can be obtained and thus the efficiency and accuracy of calibration can be improved.
[0007] In some embodiments, generating the plurality of postures in work space of the robot comprises: generating the plurality of postures on circular surfaces of different radii centered on a predetermined point of a calibration object fixed in the work space of the robot; or generating the plurality of postures on circular surfaces of different radii centered on a predetermined point of a camera of the robot system fixed in the work space of the robot.
[0008] With such an arrangement, the plurality of postures is distributed in three dimensional space. In this way, the diversity of the postures can be improved, thereby facilitating to improve the accuracy of calibration result.
[0009] In some embodiments, selecting the set of postures reachable by the robot comprises: determining whether each of the plurality of postures is reachable by the robot; and eliminating a candidate posture from the plurality of postures in response to determining that the candidate posture is not reachable.
[0010] With such an arrangement, the postures which are unreachable by the robot can be eliminated easily, and the efficiency of selecting the valid postures can be greatly improved.
[0011] In some embodiments, selecting the set of postures reachable by the robot is based on at least one of the following: length of an arm of the robot; size of the tool; size of the robot; movement range of the arm; and spatial information of the environment.
[0012] With such an arrangement, it can ensure that the postures are reachable by the robot.
[0013] In some embodiments, the 3D information is obtained from at least one of the following: a 3D model of the robot; a 3D model of the robot; a 3D model of the working environment; and a point cloud of the robot system and of the working environment.
[0014] With such an arrangement, the 3D information can be obtained conveniently and accurately, thereby improving the accuracy of generated optimization path.
[0015] In some embodiments, the method further comprises: dividing the set of postures into a plurality of subsets of postures; assessing diversity of each of the subsets of postures by an objective function, respectively, wherein the diversity indicating the spatial distribution status of each subset of postures; and selecting a first subset of postures whose diversity meets a predetermined criterion as the postures for generating the operating path, from the first subset of postures.
[0016] With such an arrangement, better postures can be selected by means of a mathematical method, thereby facilitating the generation of more efficient optimization paths.
[0017] In some embodiments, the objective function is Dilution of Precision, DOP, and wherein: assessing diversity of each of the subsets of postures comprises calculating a DOP value of each subset of postures, respectively; and selecting the subset of postures from the set of postures comprises selecting a subset of postures with a minimum DOP value as the first subset of postures.
[0018] With such an arrangement, the validity of calibration data can be quantitatively assessed and the calibration results will be more robust.
[0019] In some embodiments, generating the operation path comprises: generating the operating path from the first subset of postures based on the 3D information.
[0020] With such an arrangement, it enables the calibration results to be more robust.
[0021] In a second aspect, example embodiments of the present disclosure provide a method for calibrating a robot system, the robot system comprises a robot, and a camera, the method comprises the method according to any one of the first aspect, and further comprises: capturing, by the camera, the images of a set of predetermined points of a calibration object which are not on a straight line, in response to the robot reaching the set of postures, respectively, to determine the positions of the set of predetermined points in the coordinate system of the camera; and determining a transformation matrix from a coordinate system of the camera to a coordinate system of an end of an arm of the robot or from a coordinate system of the camera to a coordinate system of a base of the robot, based on the set of postures and the determined positions of the set of predetermined points.
[0022] With such an arrangement, optimization paths can be generated and the transformation matrix can be obtained in an efficient and accurate way.
[0023] In some embodiments, determining a transformation matrix comprises: creating a plurality of equations based on the set of postures; and determining, by a least squares method, a least squares solution of the equations as the transformation matrix.
[0024] With such an arrangement, the transformation matrix can be calculated by means of a least squares method, thus a high accurate transformation matrix can be obtained.
[0025] 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, coupled to the at least one processor and has instructions stored thereon, and the instructions cause the at least one processor to perform the method of any one of the first and second aspects when executed by the at least one processor.
[0026] With such an arrangement, the accuracy and efficiency of calibrating the robot system can be improved.
[0027] In a fourth aspect, example embodiments of the present disclosure provide a robot system. The robot system comprises a robot; a camera configured to capture images of a target object; and the computing device according to the third aspect, coupled to the robot and the camera.
[0028] In a fifth aspect, example embodiments of the present disclosure provide a non-transitory computer readable medium. The non-transitory computer readable medium comprises program instructions for causing an apparatus to perform at least one of the methods of the first and second aspects.
[0029] It is to be understood that the Summary section is not intended to identify key or essential features of embodiments of the present disclosure, nor is it intended to be used to limit the scope of the present disclosure. Other features of the present disclosure will become easily comprehensible through the following description.DESCRIPTION OF DRAWINGS
[0030] 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 example and in a non-limiting manner, wherein:
[0031] FIG. 1 is a schematic perspective view illustrating a robot system in accordance with an embodiment of the present disclosure;
[0032] FIG. 2 is a flowchart illustrating the method for generating an operating path of a robot system in accordance with an embodiment of the present disclosure;
[0033] FIG. 3 is a flowchart illustrating the method for generating an operating path of a robot system in accordance with another embodiment of the present disclosure;
[0034] FIG. 4 is a flowchart illustrating the method for calibrating a robot system in accordance with an embodiment of the present disclosure; and
[0035] FIG. 5 is a block diagram of a computing device in accordance with an embodiment of the present disclosure.
[0036] Throughout the drawings, the same or similar reference symbols are used to indicate the same or similar elements.
[0037] DETAILED DESCRIPTION OF EMBODIEMTNS
[0038] 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 to better understand and thereby implement the present disclosure, rather than to limit the scope of the disclosure in any manner.
[0039] The term "comprises" or "includes" and its variants are to be read as open terms that mean "includes, but is not limited to. " The term "or" is to be read as "and / or" unless the context clearly indicates otherwise. The term "based on" is to be read as "based at least in part on. " The term "being operable to" is to mean a function, an action, a motion or a state can be achieved by an operation induced by a user or an external mechanism. The term "one embodiment" and "an embodiment" are to be read as "at least one embodiment. " The term "another embodiment" is to be read as "at least one other embodiment. " The terms "first, " "second, " and the like may refer to different or same objects. Other definitions, explicit and implicit, may be included below. A definition of a term is consistent throughout the description unless the context clearly indicates otherwise.
[0040] As mentioned above, in order to ensure that the robot accurately moves the arm or the effector (such as a tool) to a target position, it is necessary to determine the transformation relationship from a coordinate system of the visual system to a coordinate system of the effector or a coordinate system of the end of the arm. That is, the robot and the visual system need to be calibrated. Such a calibration is commonly referred to as robot hand-eye calibration. Hand-eye calibration is a fundamental problem in machine vision.
[0041] Specifically, when robot perform tasks, the visual system collects the position coordinates of objects in the environment space. However, the position coordinates are based on the coordinate system of the visual system and need to be converted to the coordinate system of the end of the arm of the robot that controls the movement of the end effector. At the same time, motion parameters of the end effector also need to be converted to position coordinates within the coordinate system of the visual system.
[0042] The accuracy of hand-eye calibration partially determines the accuracy of machine vision when applied to robots.
[0043] The conventional hand-eye calibration methods are mostly oriented to theoretical research without considering the problems encountered in real applications, such as how many groups data are needed to be calibrated, whether the diversity of postures is rich or not, and how to solve the problem of the presence of interfering objects in the calibration space, and so on.
[0044] Hand-eye calibration process mainly includes four steps: robot calibration postures generation, robot path planning, calibration data collection and result calculation and validation. The conventional hand-eye calibration methods usually focus on how to generate robot calibration postures with new methods. However, they don't discuss how to evaluate whether the generated calibration postures have rich enough diversity and usually the calibration is carried out in an open space without interference, or a collision is avoided by constraining the range of motion of robot joints.
[0045] According to embodiments of the present disclosure, a method for generating an operating path of a robot system is provided. The robot system comprises a robot. The method comprises: generating a plurality of postures in work space of the robot; selecting a set of postures reachable by the robot from the plurality of postures, based on 3D information of the robot system and of working environment around the robot system; and generating an operating path via which the robot traverses the set of postures, based on the 3D information. The above idea may be implemented in various manners, as will be described in detail in the following paragraphs.
[0046] According to embodiments of the present disclosure, a method for calibrating a robot system is also provided. The robot system comprises a robot, and a camera, the method comprises the method for generating an operating path of a robot system, and further comprises: capturing, by the camera, the images of a set of predetermined points of a calibration object, in response to the robot reaching the set of postures, respectively, to determine the positions of the set of predetermined points in the coordinate system of the camera; and determining a transformation matrix from a coordinate system of the camera to a coordinate system of the an end of an arm of the robot or from a coordinate system of the camera to a coordinate system of a base of the robot, based on the set of postures and the determined positions of the set of predetermined points.
[0047] Hereinafter, the principles of the present disclosure will be described in detail with reference to FIGS. 1-4.
[0048] Referring to FIG. 1 first, FIG. 1 is a schematic perspective view illustrating a robot system 100 in accordance with an embodiment of the present disclosure. In some embodiments, as shown in FIG. 1, the robot system 100 generally includes a robot 102, a tool 108 and a camera 112. The robot 102 may have a plurality of degrees of freedom. For example, according to some embodiments, the robot 102 may have six degrees of freedom. The robot 102 may include a base 104 which is installed at a certain position, and one or more robot arms 106. The tool 108 is fixed at an end of an arm 106 of the robot 102. The tool 108 may be used to process a target object under the control of the robot 102.
[0049] As can be seen from FIG. 1, the camera 112 is fixed at the end of the arm 106. A calibration object 110 is fixed in the work space of the robot 102. Such a configuration of robot system is referred to as Eye-In-Hand configuration.
[0050] Another configuration is referred to as Eye-to-Hand configuration. In this configuration, the camera 112 will not be fixed at the end of the arm 106, but fixed at a stationary place, and the calibration object 110 will be fixed at the end of the arm 106 or be held by the tool 108. The process of solving the transformation matrix both for the Eye-In-Hand and the Eye-to-Hand configurations are substantially the same. The present disclosure takes an Eye-In-Hand as an example to illustrate.
[0051] As shown in FIG. 1, the calibration object 110 is a calibration plate, a plurality of points are distributed uniformly on the surface of the calibration plate. It is appreciated that the calibration object 110 is not limited to the calibration plate as shown in FIIG. 1, other forms are also possible, such as one or more calibration balls, and so on.
[0052] The "base" shown in FIG. 1 represents a coordinate system of the base 104, and the "tool" represents a coordinate system of the tool 108, the "Cam" represents a coordinate system of the camera 112, and the "cal. object" represents a coordinate system of the calibration object 110.
[0053] The "baseHtool" shown in FIG. 1 represents a transformation matrix from the coordinate system of the base 104 to the coordinate system of the tool 108,
[0054] The "camHtool" shown in FIG. 1 represents a transformation matrix from the coordinate system of the camera 112 to the coordinate system of the tool 108, which is also shown in an enlarged form in the box 130 on the right of FIG. 1.
[0055] The "camHcal" shown in FIG. 1 represents a transformation matrix from the coordinate system of the camera 112 to the coordinate system of the calibration object 110.
[0056] As is known, in order to calibrate the robot system 100, it needs to obtain the camHtool, i.e. the transformation matrix from the coordinate system of the camera 112 to the coordinate system of the tool 108. In addition, it should be understood, in the case shown in FIG. 1, the transformation relationship between the coordinate system of the end of the arm 106 and the coordinate system of the tool 108 is known.
[0057] In order to obtain the transformation matrix camHtool, it is necessary to design multiple positions (pose or postures) of the robot 102. The postures may include both the position and the orientation. It means that the robot 102 needs to carry the camera 112 to multiple different positions to capture images of the calibration object 110, respectively.
[0058] The postures of the robot 102 can be reflected by the postures of the end of the arm 106 or the postures of the tool 108.
[0059] For every two postures, an equation can be created. This will be further described hereafter. Generally, to improve the accuracy of calibration, multiple postures need to be designed to create multiple equations.
[0060] The result of hand-eye calibration will be affected by the postures of the robot 102, that is, different postures combinations will result in different accuracy of the solved hand-eye calibration results.
[0061] In some embodiments, a three-dimensional environment and an advanced robot path planning methods can be utilized. Then calibration postures that can be reached by the robot 102 are automatically generated based on the three-dimensional environment. And the robot's motion trajectory paths that can be reached when running between different positions are also generated based on the three-dimensional environment.
[0062] For any two postures of the robot 102 during its movement, the following equations can be created: baseHtool1*camH-1tool1*camHcal1= baseHtool2*camH-1tool2*camHcal2 (1)
[0063] wherein the subscripts 1 and 2 represent the transformation matrix is for the first and second postures, respectively.
[0064] The equation (1) may be transformed into the following equation (2) : baseH-1tool2*baseHtool1*camH-1tool1= camH-1tool2*camHcal2*camH-1cal1 (2)
[0065] let A= baseH-1tool2*baseHtool1, and let B= camHcal2*camH-1cal1.
[0066] In addition, it is known that: camHtool1= camHtool2 (3)
[0067] Let X= camH-1tool1= camH-1tool2, then the equation (2) can be expressed as: A*X=X*B (4)
[0068] X is the transformation matrix to be solved.
[0069] The example method for generating an operating path of a robot system will be described with reference to FIG. 2 to FIG. 3.
[0070] Referring to FIG. 2 first, FIG. 2 is a flowchart illustrating the method 200 for generating an operating path of a robot system in accordance with an embodiment of the present disclosure.
[0071] At block 202, generating a plurality of postures in the work space of the robot 102.
[0072] In order to improve the diversity of the postures, it is preferable to generate uniformly the postures in the work space of the robot 102. In some embodiments, a plurality of postures may be generated on circular surfaces of different radii centered on a predetermined point of the calibration object 110. The present disclosure does not limit in this aspect. The plurality of postures may be generated in other way. For example, in the case that the camera 112 is fixed at a stationary place, a plurality of postures may be generated on circular surfaces of different radii centered on a predetermined point of the camera 112. The predetermined point may be the central point of the calibration object 110. The present disclosure does not limit in this aspect, other point in the calibration object 110 is also feasible. In this way, the diversity of the postures can be improved, thereby facilitating to improve the accuracy of final result.
[0073] At block 204, selecting a set of postures reachable by the robot 102 from the plurality of postures, based on 3D information of the robot system 100 and of working environment around the robot system 100.
[0074] Due to the installation of the robot 102 or the capability of the robot 102, some of the calibration postures may be not able to or difficult to reach. Therefore, before the final selection, some subsets of candidate calibration postures may be eliminated from the plurality of subsets of candidate calibration postures.
[0075] In some embodiments, 3D models of the environment around robot 102 and tool 108 are used to select collision free calibration postures, as well as to plan and optimize collision-free operating paths of the robot 102.
[0076] In some embodiments, selecting the set of postures reachable by the robot 102 from the plurality of postures by the following way: determining whether each of the plurality of postures is reachable by the robot 102; and eliminating a candidate posture from the plurality of postures in response to determining that the candidate posture is not reachable. As a result, all of those postures unreachable by the robot 102 will be eliminated. In this way, the postures which are unreachable by the robot 102 can be eliminated easily, and the efficiency of selecting the valid postures can be greatly improved.
[0077] In some embodiments, selecting the set of postures reachable by the robot 102 is based on at least one of the following: length of the arm 106; size of the tool 108; size of the robot 102; movement range of the arm 106; and spatial information of the environment. The present disclosure is not limited on this aspect. Other factors may be considered according to actual requirement.
[0078] In some embodiments, the 3D information is obtained from at least one of the following: a 3D model of the robot 102; a 3D model of the tool 108; a 3D model of the working environment; and a point cloud of the robot system and of the working environment. The present disclosure is not limited on this aspect. The 3D information may be obtained from other sources according to actual requirement.
[0079] At block 206, generating an operating path via which the tool 108 traverses the set of postures, based on the 3D information.
[0080] In some embodiments, the operating path can be planned based on the 3D information. As mentioned above, the set of postures reachable by the robot 102 are selected. And thus the operating path will be collision free. The efficiency and accuracy of calibration can be improved.
[0081] The method for generating an operating path of a robot system will be further described with reference to FIG. 3. FIG. 3 is a flowchart illustrating the method 300 for generating an operating path of a robot system in accordance with another embodiment of the present disclosure.
[0082] At block 302, potential calibration postures are generated in robot range (also referred to as work space of the robot) .
[0083] In some embodiments, a plurality of potential postures, such as 1000 or 2000 calibration postures may be generated. The potential calibration postures may be generated in the same way as described with reference to FIG. 2. For example, the plurality of postures may be generated on circular surfaces of different radii centered on a predetermined point of the calibration object 110.
[0084] At block 304, collision free potential calibration postures are selected based on 3D models of the environment, robot 102 and tool 108.
[0085] In some embodiments, as mentioned above, due to the installation of the robot 102 or the capability of the robot 102, some of the calibration postures may be not able to or difficult to reach. For example, in a typical work environment, there may be some other objects, including railings and other equipment, which can interfere to the movement of the tool 108. Due to occlusion and obstacles in the environment, the potential calibration postures generated may not be reachable.
[0086] Therefore, it is necessary to first determine whether some of the potential calibration postures designed are unreachable. At this point, a three-dimensional environment is needed to determine whether the calibrated postures are reachable based on the 3D information. Such a step aims to filter the unreachable robot calibration positions through three-dimensional information.
[0087] Therefore, before the final selection, some subsets of the candidate calibration postures need to be eliminated from the plurality of candidate calibration postures.
[0088] In some embodiments, some candidate postures may be eliminated from the plurality of postures in a similar manner as that described with reference to FIG. 2.
[0089] At block 306, calibration postures are selected for cost-effective combination based on diversity assessment of hand-eye calibration data.
[0090] In some embodiments, the following steps are performed to further select preferable postures: dividing the set of postures into a plurality of subsets of postures, for example, dividing 1000 postures into 50 subsets of posture; assessing diversity of each of the subsets of postures by an objective function, respectively, wherein the diversity indicating the spatial distribution status of each subset of postures; and selecting a first subset of postures whose diversity meets a predetermined criterion as the postures for generating the operating path, from the first subset of postures. For example, if the diversity of a subset of postures exceeds a threshold, then this subset of postures may be selected as the postures for generating the operating path.
[0091] In some embodiments, the objective function is Dilution of Precision, DOP. DOP value is conventionally used in the field of satellite positioning such as the GPS (global positioning system) . DOP value essentially evaluates the impact of measurement position distribution on measurement accuracy.
[0092] Here, in some embodiments, the concept of DOP value is introduced to evaluate the data (postures) used for calibration. Specifically, the DOP value is introduced for performance evaluation of the postures. In other words, the DOP value is used as the performance criterion of the calibration. Mathematically, the DOP value may be used for least square optimization. Specifically, the DOP value evaluates the credibility of the results of hand-eye calibration. Different combinations of the robot calibration postures result in different results. In particular, the DOP value can be used to evaluate which set of data will be able to obtain better result.
[0093] The DOP value is solved out based on the positions of robot TCP (Tool Center Point) in the calibration data and the position of the calibration plate in the camera 112. The positions of robot TCP are just the postures of the tool 108 as mentioned above. The method of calculating the DOP value in some embodiments can refer to the methods used in GPS, but is not limited to the methods used in GPS.
[0094] Specifically, the camera 112 can be considered as Earth, where TCP is the target point to be determined, the calibration object 110 can be considered as a satellite, and multiple sets of calibration postures correspond to different measurement positions (postures) . Then the DOP value can be calculated in the same way as that in GPS.
[0095] In some embodiments, assessing the diversity of each of the subsets of postures comprises calculating a DOP value of each subset of postures, respectively; and selecting the subset of postures from the set of postures comprises selecting a subset of postures with a minimum DOP value as the first subset of postures.
[0096] The specific procedure of calculating the DOP value can be made in the same way as the conventional manner.
[0097] For example, in some embodiments, for each subset of the candidate calibration postures, the DOP value may be determined by the following equations. A′x=L (4)
[0098] Where:
[0099] A′ is a design matrix;
[0100] x is the unknown parameters; and
[0101] L is an observation matrix, in some embodiments, L is a column vector of zeros.
[0102] A′x =L can be obtained by converting AX=XB in a conventional method. Specifically, x can be obtained by vectorizing X column-wise.
[0103] A′ can be obtained by calculating Kronecker product of A and B.
[0104] That is:
[0105] The calibration result is a best fitted result.
[0106] The algorithm will go through all the subsets of the candidate calibration postures and calculate its corresponding DOP value. Thus, the DOP value may act as a mathematical tool to estimate the quality of the postures. As smaller DOP value indicates better chance of good performance, the algorithm will select the subset with the smallest DOP value as the suggested set of calibration postures to the user.
[0107] In this way, the validity of calibration data can be quantitatively assessed and the calibration results will be more robust.
[0108] Some embodiments of the present disclosure introduce a mathematical method for assessing the diversity of calibration data to the selected combination of robot calibration postures, which can quantitatively assess the validity of calibration data and make the calibration results more robust.
[0109] Since calibration data are selected by a mathematical method for assessing the diversity of calibration data, the calibration result becomes more robust than the calibration data generated in random way.
[0110] At block 308, collision free robot path (operating path) planning and optimization is performed based on 3D models of environment and tool 108. It is to be noted that the collision free indicates that when the tool 108 is moved along the robot path, there will be no collision. In addition to no collision, in the present disclosure, it also means that these postures are reachable by the robot 102.
[0111] In case that the first subset of postures is generated, generating the operation path may comprise: generating the operating path from the first subset of postures based on the 3D information.
[0112] The two arrows and the 3D models of environment and tool as shown in the block on the right of FIG. 3 indicate that the 3D models are used at blocks 304 and 308, respectively.
[0113] The present disclosure further discloses methods for calibrating a robot system in accordance with embodiment of the present disclosure, which will be described with reference to FIG. 4. FIG. 4 is a flowchart illustrating the method 400 for calibrating a robot system in accordance with embodiment of the present disclosure.
[0114] The procedures as shown in block 402 and 404 will be in conjunction with those shown in FIGS. 2 and 3. That is, when an operating path of the robot system 100 are generated, the steps as shown in FIG. 4 may be further performed to calibrate the robot system 100.
[0115] At block 402, capturing, by the camera 112, the images of a set of predetermined points of a calibration object 110 fixed in the work space of the robot 102 or held by the tool 108, in response to the robot 102 reaching the selected set of postures, respectively, to determine the positions of the set of predetermined points in the coordinate system of the camera 112. In some embodiment, the set of predetermined points may include at least three points of the calibration object 110 that are not on a straight line. In other words, the camera 112 may capture the image of a feature of the calibration object 110. For example, a surface of the calibration object 110, etc. The present disclosure is not limited in this aspect. It is appreciated that in some embodiment, the robot 102 reaching the selected set of postures means that the tool 108 reaching the selected set of postures. The present disclosure is not limited in this aspect.
[0116] Specifically, when the robot 102 moves to the selected postures, the camera 112 captures an image of the calibration object 110. The positions of the set of predetermined points in the coordinate system of the camera 112 will be determined.
[0117] At block 404, determining the transformation matrix from the coordinate system of the camera 112 to the coordinate system of the tool 108, based on the set of postures and the determined positions of the set of predetermined points. In some embodiments, the transformation matrix may be determined in a conventional way, based on the set of postures and the determined positions of the set of predetermined points.
[0118] In some embodiments, determining a transformation matrix may comprise: creating a plurality of equations based on the set of postures, for example, an equation may be created based on two postures; and determining, by a least squares method, a least squares solution of the equations as the transformation matrix. In this way, the transformation matrix can be solved by means of a least squares method, thus a high accurate transformation matrix can be generated.
[0119] In some embodiments, the method for generating an operating path of a robot system and method for calibrating a robot system 100 are provided. It is to be understood, the described above is only illustrative. The scope of the present disclosure is not intended to be limited in this respect.
[0120] Moreover, it is to be understood that the robot system 100 is not limited to the configuration as described above, but may be of any other configuration. The scope of the present disclosure is not intended to be limited in this respect. For example, in some embodiments, the tool 108 is not fixed at the end of the arm 106, but fixed at a stationary place.
[0121] In addition, the robot system 100 can be combined with one or more additional apparatus to operate as needed. The scope of the present disclosure is not intended to be limited in this respect.
[0122] As discussed above, in some embodiments, the present disclosure innovatively introduces a new path generation and optimization method. A mathematical algorithm is employed to evaluate the diversity of hand-eye calibration data. The 3D information of the robot 102 and the tool 108 and of the environment around the robot 102 and the tool 108 may be utilized to select collision-free calibration points and generate collision-free robot trajectories. Thus, an automated hand-eye calibration process is realized efficiently.
[0123] In some embodiments, the present disclosure presents a method to generate robot calibration postures and collision free path planning in automatic hand-eye calibration process. 3D models of the environment around robot 102 and tool 108 are required in this method. The potential calibration postures can be generated in all robot range and the generation method is unlimited. Collision free potential calibration postures can be selected based on 3D model of environment, robot 102, and tool 108. However, the number of collision free potential calibration postures may be too huge to use. The mathematical method is used to select high cost-effective calibration posture combinations meanwhile ensuring the diversity of calibration postures is rich enough. Finally, a collision free and optimized robot path can be generated based on 3D models of the environment and tool 108.
[0124] The solutions in the present disclosure make hand-eye calibration process easier and less dependent on user's experience and skill, even someone has no experience and knowledge on hand-eye calibration also can use it and get a good result.
[0125] Moreover, the solutions in the disclosure can be applied to more application scenarios. It makes hand-eye calibration possible in complex environment and can be used in more applications.
[0126] In some embodiments, the automated hand-eye calibration method proposed in the present disclosure introduces a mathematical method and environmental data to evaluate and select the robot calibration postures and generate reachable robot paths based on the environmental data. Compared with the traditional automatic hand-eye calibration method, the methods proposed in the present disclosure are more applicable, simpler to use and safer in the process.
[0127] FIG. 5 is a block diagram of a computing device 500 in accordance with an embodiment of the present disclosure.
[0128] The computing device 500 may be provided to implement the methods as described above. As shown, the computing device 500 includes one or more processors 520, one or more memories 530 coupled to the processor 520, and one or more communication modules 510 coupled to the processor 520.
[0129] The communication module 510 is for bidirectional communications. The communication module 510 may represent any interface that is necessary for communication with other elements.
[0130] The processor 520 may be of any type suitable to the local technical network and may include one or more of the following: general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) and processors based on multicore processor architecture, as non-limiting examples. The computing device 500 may have multiple processors, such as an application specific integrated circuit chip that is slaved in time to a clock which synchronizes the main processor.
[0131] The memory 530 may include one or more non-volatile memories and one or more volatile memories. Examples of the non-volatile memories include, but are not limited to, a Read Only Memory (ROM) 534, an electrically programmable read only memory (EPROM) , a flash memory, a hard disk, a compact disc (CD) , a digital versatile disc (DVD) , and other magnetic storage and / or optical storage. Examples of the volatile memories include, but are not limited to, a random access memory (RAM) 532 and other volatile memories that will not last in the power-down duration.
[0132] A computer program may be included in ROM 534. The computer program may include computer executable instructions that are executed by the associated processor 520. The program may be stored in the memory, e.g., ROM 534. The processor 520 may perform any suitable actions and processing by loading the program into the RAM 532.
[0133] The example embodiments of the present disclosure may be implemented by means of the program so that the computing device 500 may perform any process of the disclosure as discussed with reference to FIGS. 1 to 4. The example embodiments of the present disclosure may also be implemented by hardware or by a combination of software and hardware.
[0134] In some example embodiments, the program may be tangibly contained in a computer readable medium which may be included in the computing device 500 (such as in the memory 530) or other storage devices that are accessible by the computing device 500. The computing device 500 may load the program from the computer readable medium to the RAM 532 for execution. The computer readable medium may include any types of tangible non-volatile storage, such as ROM, EPROM, a flash memory, a hard disk, CD, DVD, and the like.
[0135] The embodiments of the present disclosure may be implemented by means of a program so that a device may perform any process of the disclosure as discussed with reference to the Figures. The embodiments of the present disclosure may also be implemented by hardware or by a combination of software and hardware.
[0136] In some embodiments, the program may be tangibly contained in a computer readable medium which may be included in the device (such as in a memory) or other storage devices that are accessible by the device. The device may load the program from the computer readable medium to a RAM for execution. The computer readable medium may include any types of tangible non-volatile storage, such as ROM, EPROM, a flash memory, a hard disk, CD, DVD, and the like.
[0137] 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 representations, it is to be understood that the block, apparatus, system, technique or method 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.
[0138] 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 methods as described above with reference to the Figures. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, or the like that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or split between program modules as desired in various embodiments. Machine- executable instructions for program modules may be executed within a local or distributed device. In a distributed device, program modules may be located in both local and remote storage media.
[0139] 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.
[0140] In the context of the present disclosure, the computer program codes or related data may be carried by any suitable carrier to enable the device, apparatus or processor to perform various processes and operations as described above. Examples of the carrier include a signal, computer readable medium, and the like.
[0141] The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer 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 computer 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.
[0142] 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. Conversely, 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.
[0143] While several inventive embodiments have been described and illustrated herein, those of ordinary skill in the art will readily envision a variety of other means and / or structures for performing the function and / or obtaining the results and / or one or more of the advantages described herein, and each of such variations and / or modifications is deemed to be within the scope of the inventive embodiments described herein. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and / or configurations will depend upon the specific application or applications for which the inventive teachings is / are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific inventive embodiments described herein. It is, therefore, to be understood that the foregoing embodiments are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, inventive embodiments may be practiced otherwise than as specifically described and claimed. Inventive embodiments of the present disclosure are directed to each individual feature, system, article, material, kit, and / or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and / or methods, if such features, systems, articles, materials, kits, and / or methods are not mutually inconsistent, is included within the inventive scope of the present disclosure.
Claims
1.A method for generating an operating path of a robot system, the robot system comprises a robot (102) , the method comprises:generating a plurality of postures in work space of the robot (102) ;selecting a set of postures reachable by the robot (102) from the plurality of postures, based on 3D information of the robot system and of working environment around the robot system; andgenerating an operating path via which the robot (102) traverses the set of postures, based on the 3D information.2.The method of claim 1, wherein generating the plurality of postures in work space of the robot (102) comprises:generating the plurality of postures on circular surfaces of different radii centered on a predetermined point of a calibration object (110) fixed in the work space of the robot (102) ; orgenerating the plurality of postures on circular surfaces of different radii centered on a predetermined point of a camera (112) of the robot system fixed in the work space of the robot (102) .3.The method of claim 1, wherein selecting the set of postures reachable by the robot (102) comprises:determining whether each of the plurality of postures is reachable by the robot (102) ; andeliminating a candidate posture from the plurality of postures in response to determining that the candidate posture is not reachable.4.The method of claim 1, selecting the set of postures reachable by the robot (102) is based on at least one of the following:length of an arm (106) of the robot (102) ;size of a tool (108) ;size of the robot (102) ;movement range of the arm (106) ; andspatial information of the environment.5.The method of claim 1, wherein the 3D information is obtained from at least one of the following:a 3D model of the robot (102) ;a 3D model of the robot (102) ;a 3D model of the working environment; anda point cloud of the robot system and of the working environment.6.The method of claim 1, further comprising:dividing the set of postures into a plurality of subsets of postures;assessing diversity of each of the subsets of postures by an objective function, respectively, wherein the diversity indicating the spatial distribution status of each subset of postures; andselecting a first subset of postures whose diversity meets a predetermined criterion as the postures for generating the operating path, from the first subset of postures.7.The method of claim 6, wherein the objective function is Dilution of Precision, DOP, and wherein:assessing diversity of each of the subsets of postures comprises:calculating a DOP value of each subset of postures, respectively; andselecting the subset of postures from the set of postures comprises:selecting a subset of postures with a minimum DOP value as the first subset of postures.8.The method of claim 6 or 7, wherein generating the operation path comprises:generating the operating path from the first subset of postures based on the 3D information.9.A method for calibrating a robot system, the robot system comprises a robot (102) , and a camera (112) , the method comprises the method according to any one of claims 1 to 8, and further comprises:capturing, by the camera (112) , the images of a set of predetermined points of a calibration object (110) which are not on a straight line, in response to the robot (102) reaching the set of postures, respectively, to determine the positions of the set of predetermined points in the coordinate system of the camera (112) ; anddetermining a transformation matrix from a coordinate system of the camera (112) to a coordinate system of an end of an arm of the robot (102) or from a coordinate system of the camera (112) to a coordinate system of a base of the robot (102) , based on the set of postures and the determined positions of the set of predetermined points.10.The method of claim 9, wherein determining a transformation matrix comprises:creating a plurality of equations based on the set of postures; anddetermining, by a least squares method, a least squares solution of the equations as the transformation matrix.11.A computing device comprising:at least one processor; andat least one memory, coupled to the at least one processor and has instructions stored thereon, and the instructions cause the at least one processor to perform the method of any one of claims 1 to 10 when executed by the at least one processor.12.A robot system comprisinga robot (102) ;a camera (112) configured to capture images of a target object; andthe computing device according to claim 11, coupled to the robot (102) and the camera (112) .13.A non-transitory computer readable medium comprising program instructions for causing an apparatus to perform at least one of the methods of claims 1 to 10.
Citation Information
Patent Citations
Robotic arm processing method and system based on 3D image
CN109397282A
Robot hand-eye calibration method, robot and robot operation method
CN115741666A
Computer-implemented methods and systems for generating material processing robotic tool paths
EP3651943A1
Tool position measuring device of construction machine, yaw angle detecting device, work machine automatic control device and calibration device
JP2001159518A
Method and system for determining poses for camera calibration
US20210122050A1