Method for identifying robot joint flexibility coefficient and related device
Patent Information
- Application Number
- CN202211667672.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-23
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2042-12-23
AI Technical Summary
[0003]由于机器人的每个关节并非刚体,当受到重力时,机器人往往会‘下沉’一段距离,这将严重影响机器人的绝对位置精度
[0051] The robot joint flexibility coefficient identification method and related apparatus provided in this invention calculate the end-effector displacement corresponding to each sampling point based on the first and second end-effector positions corresponding to each sampling point. The first and second end-effector positions represent the positions of the robot's end-effectors when they make corresponding preset postures at the sampling points under no-load and loaded conditions, respectively. Then, the gravitational torque difference corresponding to each sampling point is obtained based on the mass of the load. The gravitational torque difference represents the difference in gravitational torque generated by all joints of the robot at the sampling point under no-load and loaded conditions, respectively. Based on the gravitational torque difference and end-effector displacement corresponding to each sampling point, a system of equations is constructed to solve for the flexibility coefficient of each joint, and the system of equations is solved using the least squares algorithm to obtain the flexibility coefficient of each joint. By identifying the flexibility coefficient of the joint through the position difference of the robot's end-effector and the torque difference of the joint under no-load and loaded conditions, the operation is simplified and the identification accuracy is improved. Furthermore, by using the flexibility coefficient for compensation, the absolute position accuracy of the robot can be improved.
Smart Images

Figure CN116010758B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of robotics, and more specifically, to a method and related apparatus for identifying the flexibility coefficient of a robot joint. Background Technology
[0002] Industrial robots are capable of repeatable positioning and are suitable for scenarios with high repeatability requirements, such as handling and spot welding. However, for robots used in scenarios such as curved surface laser cutting and curved surface grinding, not only is the robot required to be capable of repeatable positioning, but the robot is also required to have high absolute position accuracy.
[0003] Since each joint of a robot is not a rigid body, when subjected to gravity, the robot often 'sinks' a certain distance, which will seriously affect the robot's absolute positional accuracy. Therefore, identifying the flexibility coefficients of each joint of the robot is crucial. Summary of the Invention
[0004] In view of this, the purpose of the present invention is to provide a method and related apparatus for identifying the flexibility coefficient of robot joints.
[0005] To achieve the above objectives, the technical solutions adopted in the embodiments of the present invention are as follows:
[0006] In a first aspect, the present invention provides a method for identifying the joint flexibility coefficient of a robot, the method comprising:
[0007] Based on the first end position and the second end position corresponding to each sampling point, the end displacement corresponding to each sampling point is calculated; the first end position and the second end position represent the position of the robot end when the robot makes a corresponding preset posture at the sampling point under no load and under load conditions, respectively.
[0008] The gravitational torque difference value corresponding to each sampling point is obtained based on the mass of the load; the gravitational torque difference value represents the difference in gravitational torque generated by all joints of the robot at the sampling point under no-load and loaded conditions, respectively; the load is installed at the end of the robot;
[0009] Based on the difference in gravitational moment and the end displacement corresponding to each sampling point, a set of equations is constructed to solve the flexibility coefficient of each joint;
[0010] The system of equations is solved using the least squares algorithm to obtain the flexibility coefficient of each joint.
[0011] In an optional implementation, the step of calculating the end displacement corresponding to each sampling point based on the first end position and the second end position corresponding to each sampling point includes:
[0012] Calculate the transformation matrix between the base coordinate system established with the robot's base as the origin and the tracker coordinate system established with the tracker as the origin; the tracker is used to measure the position of the target ball installed at the end of the robot.
[0013] Obtain the first end position corresponding to each sampling point; the first end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under no load.
[0014] Obtain the second end position corresponding to each sampling point; the second end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under load.
[0015] For each sampling point, the position difference between the first end position and the second end position corresponding to the sampling point is calculated, and the end displacement corresponding to the sampling point is calculated based on the position difference and the transformation matrix to obtain the end displacement corresponding to each sampling point.
[0016] In an optional implementation, the step of calculating the transformation matrix between the base coordinate system established with the robot's base as the origin and the tracker coordinate system established with the tracker as the origin includes:
[0017] Obtain three sample points and the user coordinate system;
[0018] Obtain the position of each sample point in the base coordinate system to obtain the first sample position of each sample point;
[0019] The position of each sample point in the coordinate system of the tracker is obtained to obtain the second sample position of each sample point;
[0020] Based on the first sample position of each sample point and the three-point coordinate method, calculate the first transformation matrix between the base coordinate system and the user coordinate system, and based on the second sample position of each sample point and the three-point coordinate method, calculate the second transformation matrix between the tracker coordinate system and the user coordinate system.
[0021] The transformation matrix is obtained by multiplying the first transformation matrix by the inverse of the second transformation matrix.
[0022] In an optional implementation, the step of obtaining the gravitational torque difference value corresponding to each sampling point based on the mass of the load includes:
[0023] Obtain preset posture information corresponding to each sampling point, wherein the preset posture information includes joint information of each joint;
[0024] Obtain a base coordinate system with the robot's base as the origin and a joint coordinate system with the rotation point of each joint as the origin.
[0025] For each sampling point, based on the joint information of each joint corresponding to the sampling point, the transformation matrix between the base coordinate system and each joint coordinate system is calculated to obtain the transformation matrix set corresponding to the sampling point, thus obtaining the transformation matrix set corresponding to each sampling point;
[0026] For each sampling point, the lever arm of each joint is calculated based on the transformation matrix set corresponding to the sampling point, and the gravitational torque difference of each joint is calculated based on the lever arm of each joint and the weight of the load, so as to obtain the gravitational torque difference corresponding to the sampling point.
[0027] In an optional implementation, the step of calculating the lever arm of each joint based on the transformation matrix set corresponding to the sampling points includes:
[0028] The position of the load in the tail joint coordinate system is obtained to obtain the first position; the tail joint coordinate system represents the joint coordinate system corresponding to the tail joint located at the end of the robot.
[0029] Obtain the set of transformation matrices corresponding to the sampling points to obtain the transformation matrix corresponding to each joint;
[0030] Calculate the second position of the load in the base coordinates based on the transformation matrix corresponding to the first position and the tail node;
[0031] For each joint, the third position of the rotation point of the joint in the base coordinates is calculated according to the transformation matrix corresponding to the joint, and the lever arm of the joint is calculated based on the third position and the second position to obtain the lever arm of each joint.
[0032] In an optional implementation, the step of constructing a system of equations for solving the compliance coefficient of each joint based on the gravitational moment difference and end displacement corresponding to each sampling point includes:
[0033] Based on the transformation matrix set corresponding to each sampling point, calculate the coefficient matrix corresponding to each sampling point. The coefficient matrix represents the relationship between the angle change of each joint and the displacement of the robot end effector.
[0034] Based on the coefficient matrix, gravitational moment difference, and end displacement corresponding to each sampling point, an equation corresponding to each sampling point is constructed to obtain the system of equations.
[0035] The equation is:
[0036]
[0037]
[0038] Where J(i) represents the coefficient matrix corresponding to the i-th sampling point; ΔG(i) represents the gravitational moment difference corresponding to the i-th sampling point; each element in C represents the compliance coefficient of each joint to be solved; This represents the end displacement corresponding to the i-th sampling point.
[0039] In a second aspect, the present invention provides a robot joint flexibility coefficient identification device, the device comprising:
[0040] The displacement calculation module is used to calculate the end displacement corresponding to each sampling point based on the first end position and the second end position corresponding to each sampling point; the first end position and the second end position respectively represent the position of the robot end when the robot makes a corresponding preset posture at the sampling point under no load and under load conditions.
[0041] A torque calculation module is used to obtain the gravitational torque difference corresponding to each sampling point based on the mass of the load; the gravitational torque difference represents the difference in gravitational torque generated by all joints of the robot at the sampling point under no-load and loaded conditions, respectively; the load is installed at the end of the robot;
[0042] The coefficient calculation module is used to construct a set of equations for solving the flexibility coefficient of each joint based on the difference in gravitational moment and the end displacement corresponding to each sampling point.
[0043] The system of equations is solved using the least squares algorithm to obtain the flexibility coefficient of each joint.
[0044] In an optional implementation, the displacement calculation module is further configured to:
[0045] Calculate the transformation matrix between the base coordinate system established with the robot's base as the origin and the tracker coordinate system established with the tracker as the origin; the tracker is used to measure the position of the target ball installed at the end of the robot.
[0046] Obtain the first end position corresponding to each sampling point; the first end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under no load.
[0047] Obtain the second end position corresponding to each sampling point; the second end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under load.
[0048] For each sampling point, the position difference between the first end position and the second end position corresponding to the sampling point is calculated, and the end displacement corresponding to the sampling point is calculated based on the position difference and the transformation matrix to obtain the end displacement corresponding to each sampling point.
[0049] Thirdly, the present invention provides an electronic device including a processor and a memory, the memory storing a computer program, wherein when the processor executes the computer program, it implements the method described in any of the foregoing embodiments.
[0050] Fourthly, the present invention provides a storage medium storing a computer program, which, when executed by a processor, implements the method described in any one of the foregoing embodiments.
[0051] The robot joint flexibility coefficient identification method and related apparatus provided in this invention calculate the end-effector displacement corresponding to each sampling point based on the first and second end-effector positions corresponding to each sampling point. The first and second end-effector positions represent the positions of the robot's end-effectors when they make corresponding preset postures at the sampling points under no-load and loaded conditions, respectively. Then, the gravitational torque difference corresponding to each sampling point is obtained based on the mass of the load. The gravitational torque difference represents the difference in gravitational torque generated by all joints of the robot at the sampling point under no-load and loaded conditions, respectively. Based on the gravitational torque difference and end-effector displacement corresponding to each sampling point, a system of equations is constructed to solve for the flexibility coefficient of each joint, and the system of equations is solved using the least squares algorithm to obtain the flexibility coefficient of each joint. By identifying the flexibility coefficient of the joint through the position difference of the robot's end-effector and the torque difference of the joint under no-load and loaded conditions, the operation is simplified and the identification accuracy is improved. Furthermore, by using the flexibility coefficient for compensation, the absolute position accuracy of the robot can be improved.
[0052] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, preferred embodiments are described below in detail with reference to the accompanying drawings. Attached Figure Description
[0053] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0054] Figure 1 An example diagram of the robot end-effector position measurement system provided in an embodiment of the present invention is shown;
[0055] Figure 2 This invention provides a schematic flowchart of a robot joint flexibility coefficient identification method according to an embodiment of the present invention.
[0056] Figure 3 This diagram illustrates another flowchart of the robot joint flexibility coefficient identification method provided in an embodiment of the present invention.
[0057] Figure 4 This diagram illustrates another flowchart of the robot joint flexibility coefficient identification method provided in an embodiment of the present invention.
[0058] Figure 5 This diagram illustrates another flowchart of the robot joint flexibility coefficient identification method provided in an embodiment of the present invention.
[0059] Figure 6 An example diagram of the robot joint flexibility coefficient identification method provided in an embodiment of the present invention is shown;
[0060] Figure 7 This diagram illustrates a functional block diagram of a robot joint flexibility coefficient identification device provided in an embodiment of the present invention.
[0061] Figure 8 A block diagram of an electronic device provided in an embodiment of the present invention is shown.
[0062] Icons: 1-Robot; 2-Tracker; 3-Load; 300-Robot joint flexibility coefficient identification device; 310-Displacement calculation module; 330-Torque calculation module; 350-Coefficient calculation module; 100-Electronic device; 110-Memory; 120-Processor; 130-Communication module. Detailed Implementation
[0063] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. The components of the embodiments of the present invention described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.
[0064] Therefore, the following detailed description of the embodiments of the invention provided in the accompanying drawings is not intended to limit the scope of the claimed invention, but merely to illustrate selected embodiments of the invention. All other embodiments obtained by those skilled in the art based on the embodiments of the invention without inventive effort are within the scope of protection of the invention.
[0065] It should be noted that relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0066] Industrial robots are capable of repeatable positioning and are suitable for scenarios with high repeatability requirements, such as material handling and spot welding. However, for robots used in scenarios such as curved surface laser cutting and curved surface grinding, not only is repeatable positioning required, but also high absolute positional accuracy. Since each joint of a robot is not a rigid body, when subjected to gravity, the robot often "sinks" a certain distance, which will seriously affect the robot's absolute positional accuracy. Therefore, identifying the flexibility coefficients of each joint of the robot is crucial.
[0067] Joint flexibility identification requires the use of joint torques. While some methods utilize servo feedback current for calculation, these introduce errors that affect the accuracy of flexibility coefficient identification. Other methods use torque sensors for measurement, but this increases cost, and installing joint torque sensors on an already assembled robot is challenging, leading to operational complexity. Therefore, this invention provides a method for identifying robot joint flexibility coefficients. By using the position difference and joint torque difference of the robot's end effector under both unloaded and loaded conditions, a system of equations regarding flexibility coefficients is constructed. The least squares method is then used to solve this system of equations to obtain the flexibility coefficients of each joint.
[0068] To better understand this invention, a robot end-effector position measurement system will be described below to illustrate how the robot end-effector position is obtained.
[0069] Please see Figure 1This is an example diagram of a robot end-effector position measurement system provided in an embodiment of the present invention. It includes a robot 1, a tracker 2, and a load 3. The tracker 2 can be a laser tracker. The robot end has a load axis on which a target ball is mounted. The tracker 2 is used to track the position of the target ball.
[0070] First, select multiple sampling points within the robot's workspace and set the robot's pre-defined pose at each sampling point. The poses corresponding to these multiple sampling points should cover as many robot postures as possible to improve recognition accuracy.
[0071] Then, under no-load conditions, i.e. when the robot end effector only has the load shaft and the target ball, the robot is controlled to move to each sampling point and make the corresponding posture. The position of the target ball at each sampling point is measured by the tracker, thus obtaining the first end effector position corresponding to each sampling point.
[0072] Then, the load is installed on the load axis so that when there is a load, that is, when there is a load axis, target ball and load at the end of the robot, the robot is controlled to move to each sampling point and make the corresponding posture. The position of the target ball at each sampling point is measured by the tracker, that is, the second end position corresponding to each sampling point is obtained.
[0073] Based on the first and second end positions and load corresponding to each sampling point, the flexibility coefficient of each joint of the robot can be calculated according to the method provided in the embodiments of the present invention. The steps of each method will be described below.
[0074] Please see Figure 2 , Figure 2 This is a flowchart illustrating a method for identifying the flexibility coefficient of a robot joint according to an embodiment of the present invention.
[0075] Step S202: Calculate the end displacement corresponding to each sampling point based on the first end position and the second end position corresponding to each sampling point; the first end position and the second end position represent the position of the robot end when the robot makes the corresponding preset posture at the sampling point under no load and under load conditions, respectively.
[0076] In this embodiment, the robot end-effector position measurement system described above can be used to collect the position of the robot end-effector when it makes a corresponding preset posture at each sampling point under no-load and loaded conditions, respectively, thus obtaining the first end-effector position and the second end-effector position corresponding to each sampling point; then, based on the two end-effector positions corresponding to each sampling point, the end-effector displacement corresponding to each sampling point is calculated.
[0077] Step S204: Obtain the gravitational torque difference value corresponding to each sampling point based on the mass of the load; the gravitational torque difference value represents the difference in gravitational torque generated by all joints of the robot at the sampling point under no-load and loaded conditions respectively; the load is installed at the end of the robot.
[0078] In this embodiment, since the difference between the two measurements of the robot's end position is only whether there is a load, the difference between the gravitational torque generated by all the robot's joints under no-load and under load can be calculated based on the mass of the load at each sampling point, thus obtaining the gravitational torque difference corresponding to each sampling point.
[0079] Step S206: Based on the difference in gravitational moment and the end displacement corresponding to each sampling point, construct a set of equations to solve the compliance coefficient of each joint;
[0080] Step S208: Solve the system of equations using the least squares algorithm to obtain the flexibility coefficient of each joint.
[0081] In this embodiment, for each sampling point, an equation for the compliance coefficient can be constructed based on the difference in gravitational moment and the end displacement corresponding to each sampling point, so as to obtain a set of equations for solving the compliance coefficient of each joint, and the least squares algorithm is used to solve the set of equations to obtain the compliance coefficient of each joint.
[0082] As can be seen from the above steps, the end-effector displacement corresponding to each sampling point is calculated based on the first and second end-effector positions. The first and second end-effector positions represent the positions of the robot's end-effectors when they make corresponding preset postures at the sampling points under no-load and loaded conditions, respectively. Then, the gravitational torque difference corresponding to each sampling point is obtained based on the mass of the load. The gravitational torque difference represents the difference in gravitational torque generated by all joints of the robot at the sampling point under no-load and loaded conditions, respectively. Based on the gravitational torque difference and end-effector displacement corresponding to each sampling point, a system of equations is constructed to solve for the compliance coefficient of each joint. The system of equations is then solved using the least squares algorithm to obtain the compliance coefficient of each joint. By identifying the position difference of the robot's end-effector and the torque difference of the joints under no-load and loaded conditions, the compliance coefficient of the joints is identified, thereby simplifying the operation and improving the accuracy of identification. Furthermore, by using this compliance coefficient for compensation, the absolute position accuracy of the robot can be improved.
[0083] Optionally, for step S202 above, this embodiment of the invention provides a possible implementation method, please refer to [link to relevant documentation]. Figure 3 .
[0084] Step S202-1: Calculate the transformation matrix between the base coordinate system established with the robot's base as the origin and the tracker coordinate system established with the tracker as the origin; the tracker is used to measure the position of the target ball installed at the robot's end;
[0085] Step S202-3: Obtain the first end position corresponding to each sampling point; the first end position is the position of the target ball in the tracker coordinate system when the robot makes the corresponding preset posture at the sampling point under no load.
[0086] Step S202-5: Obtain the second end position corresponding to each sampling point; the second end position is the position of the target ball in the tracker coordinate system when the robot makes the corresponding preset posture at the sampling point under load.
[0087] Step S202-7: For each sampling point, calculate the position difference between the first end position and the second end position corresponding to the sampling point, and calculate the end displacement corresponding to the sampling point based on the position difference and the transformation matrix to obtain the end displacement corresponding to each sampling point.
[0088] In this embodiment, the first end position and the second end position corresponding to each sampling point are the target ball positions obtained by the tracker from two measurements at each sampling point. The target ball position can be represented by the coordinates of the center point of the target ball in the tracker's coordinate system.
[0089] For example, the tracker coordinate system can be represented by {L}, and for the i-th sampling point, the position of the first end corresponding to that sampling point can be represented as... The second end position corresponding to this sampling point can be represented as: The position difference corresponding to this sampling point can be expressed as:
[0090] Since the tracker measures based on its own coordinate system, it is necessary to calculate the transformation matrix between the base coordinate system and the tracker coordinate system to perform coordinate transformation on the position difference. For example, if the base coordinate system can be represented by {B}, then the transformation matrix between the base coordinate system and the tracker coordinate system can be expressed as follows: B T L Then the end displacement corresponding to the i-th sampling point can be expressed as
[0091] Optionally, for step S202-1 above, this embodiment of the invention provides a possible implementation method, please refer to [link to relevant documentation]. Figure 4 .
[0092] Step S202-1-1: Obtain three sample points and the user coordinate system;
[0093] Step S202-1-3: Obtain the position of each sample point in the base coordinate system to obtain the first sample position of each sample point;
[0094] Step S202-1-5: Obtain the position of each sample point in the tracker coordinate system to obtain the second sample position of each sample point;
[0095] Step S202-1-7: Calculate the first transformation matrix between the base coordinate system and the user coordinate system based on the first sample position and the three-point coordinate method for each sample point; and calculate the second transformation matrix between the tracker coordinate system and the user coordinate system based on the second sample position and the three-point coordinate method for each sample point.
[0096] Step S202-1-9: Multiply the first transformation matrix by the inverse of the second transformation matrix to obtain the transformation matrix.
[0097] Understandably, in order to obtain a more accurate transformation matrix, this embodiment of the invention uses a user coordinate system as an intermediate quantity to calculate the transformation matrix between the base coordinate system and the tracker coordinate system.
[0098] Three non-overlapping sample points, such as PO, PX, and PY, can be selected within the robot space, with a large distance between each pair of sample points, and a user coordinate system {U} can be established. Then, the positions of these three sample points in the base coordinate system {B} are obtained, which is the first sample position of each sample point, such as BPO, BPX, and BPY. The positions of these three sample points in the tracker coordinate system {L} are also obtained, which is the second sample position of each sample point, such as LPO, LPX, and LPY.
[0099] Then, using the three-point coordinate method (i.e., establishing a coordinate system at three points), the transformation matrix between the base coordinate system {B} and the user coordinate system {U} is calculated, resulting in the first transformation matrix BTU, which can be expressed as:
[0100]
[0101] in,
[0102] B V y = B V z × B V x .
[0103] Following the method described above for calculating the first transformation matrix, the transformation matrix between the tracker coordinate system {L} and the user coordinate system {U} is calculated using the three-point coordinate method, thus obtaining the second transformation matrix. L T UThen, based on the first transformation matrix... B T U Second transformation matrix L T U Then the transformation matrix between the base coordinate system {B} and the tracker coordinate system {L} can be calculated, i.e. B T L = B T U * L T U -1 .
[0104] Optionally, for step S204 above, this embodiment of the invention provides a possible implementation method, please refer to [link to relevant documentation]. Figure 5 .
[0105] Step S204-1: Obtain the preset posture information corresponding to each sampling point. The preset posture information includes the joint information of each joint.
[0106] Step S204-3: Obtain the base coordinate system established with the robot's base as the origin and the joint coordinate system established with the rotation point of each joint as the origin.
[0107] Step S204-5: For each sampling point, calculate the transformation matrix between the base coordinate system and each joint coordinate system based on the joint information of each joint corresponding to the sampling point, and obtain the transformation matrix set corresponding to the sampling point.
[0108] In this embodiment, each sampling point has corresponding preset posture information, that is, the joint information of each joint when the robot makes the corresponding preset posture. The joint information includes joint angle, link offset, link length and link rotation angle.
[0109] For each sampling point, the kinematic model of the robot can be established using the DH parameter method based on the joint information of each joint corresponding to that sampling point, thereby obtaining the transformation matrix set corresponding to each sampling point. Assuming the robot has n joints, n+1 joint coordinate systems can be established, namely {0}, {1}…{n}, where {0} coincides with the base coordinate system, and {n} represents the joint coordinate system at the robot's end effector, which can also be understood as the flange at the robot's end effector, and can be called the flange coordinate system.
[0110] For the i-th sampling point, the transformation matrix between coordinate systems {j-1} and {j} can be calculated based on the joint information of the j-th joint. It can be represented as:
[0111]
[0112] in, Let d be the joint angle of the j-th joint at the i-th acquisition point. j For the link offset of the j-th joint, a j Let α be the length of the link at the j-th joint. j Let be the linkage angle of the j-th joint, where j is a natural number from 1 to n.
[0113] Therefore, the transformation matrix between coordinate system {0} and the j-th coordinate system {j} can be expressed as: The transformation matrix between the base coordinate system {B} and the flange coordinate system {n} can be expressed as:
[0114] Step S204-7: For each sampling point, calculate the lever arm of each joint based on the transformation matrix set corresponding to the sampling point, and calculate the gravitational torque difference of each joint based on the lever arm of each joint and the weight of the load, thereby obtaining the gravitational torque difference corresponding to each sampling point.
[0115] In this embodiment, for the i-th sampling point, under no-load conditions, the robot end effector only has the load shaft and the target ball. At this time, the gravity borne by all joints is related to the weight of the load shaft and the target ball. Therefore, the gravitational torque of all joints can be expressed as: 1 G (i) And the gravitational torque 1 G (i) This includes the gravitational torque of each joint under no-load conditions, i.e.
[0116] When the robot's end effector is under load, it has a load axis, a target ball, and a load. The total gravitational force on all joints is related to the weight of the load axis, the target ball, and the load. Therefore, the gravitational torque of all joints can be expressed as 2G(i), and this gravitational torque 2G(i) includes the gravitational torque of each joint under load, i.e.
[0117] It can be seen that for the i-th sampling point, the difference in gravitational torque of all joints under no-load and loaded conditions is only related to the weight of the load. Therefore, the difference in gravitational torque of each joint can be calculated by the weight of the load and the lever arm of each joint of the robot at that sampling point, so as to obtain the gravitational torque difference corresponding to that sampling point.
[0118] Optionally, for the step S204-9 above, which calculates the lever arm of each joint based on the transformation matrix set corresponding to the sampling point, this embodiment of the invention provides a possible implementation method, namely: obtaining the position of the load in the tail joint coordinate system to obtain a first position; the tail joint coordinate system represents the joint coordinate system corresponding to the tail joint located at the end of the robot; obtaining the transformation matrix set corresponding to the sampling point to obtain the transformation matrix corresponding to each joint; calculating the second position of the load in the base coordinate system based on the first position and the transformation matrix corresponding to the tail node; for each joint, calculating the third position of the joint's rotation point in the base coordinate system based on the transformation matrix corresponding to the joint, and calculating the lever arm of the joint based on the third position and the second position to obtain the lever arm of each joint.
[0119] In this embodiment, the position of the load in the tail joint coordinate system is the position of the load's center of gravity in the flange coordinate system {n}, that is, the first position can be represented as
[0120] nPg=[rx ry rz 1]T.
[0121] For the i-th sampling point, obtain the transformation matrix set corresponding to the i-th sampling point, and extract the transformation matrix between the base coordinate system {B} and the flange coordinate system {n} from it. And according to the transformation matrix Given the first position nPg, calculate the position of the load's center of gravity in the base coordinate system {B}, which is the second position, and it can be expressed as:
[0122] Then, based on the transformation matrix corresponding to each joint, the position of the rotation point of each joint in the base coordinate system {B}, i.e., the third position, is calculated. For example, for the j-th joint, the position of its rotation point in the base coordinate system {B} can be represented as... That is, to obtain the third position corresponding to the j-th joint. Then, based on the third position corresponding to the j-th joint... Second position Calculate the lever arm of the j-th joint, i.e.
[0123] Following the above method, the lever arm of each joint corresponding to the i-th sampling point can be calculated. Then, based on the weight of the load, the difference in gravitational torque of each joint can be calculated, which can be expressed as:
[0124]
[0125] in, m represents the mass of the load, and g represents the acceleration due to gravity.
[0126] Therefore, the gravitational torque difference corresponding to the i-th sampling point can be expressed as:
[0127]
[0128] Optionally, for step S206 above, this embodiment of the invention provides a possible implementation method, namely: calculate the coefficient matrix corresponding to each sampling point according to the transformation matrix set corresponding to each sampling point, the coefficient matrix representing the relationship between the angle change of each joint and the displacement of the robot end effector; construct the equation corresponding to each sampling point according to the coefficient matrix, the gravitational torque difference and the end effector displacement, and obtain the equation set.
[0129] The equation is:
[0130]
[0131]
[0132] Among them, J (i) ΔG represents the coefficient matrix corresponding to the i-th sampling point; (i) This represents the gravitational torque difference corresponding to the i-th sampling point; each element in C represents the compliance coefficient of each joint to be solved. This represents the end displacement corresponding to the i-th sampling point.
[0133] To better understand this invention, the derivation process of the above equations will be explained below.
[0134] For the i-th sampling point, firstly, without considering joint flexibility, the theoretical position of the robot's end effector, i.e. the position of the center point of the target ball in the base coordinate system {B}, is calculated using the forward motion formula.
[0135] Assume that the center point t of the target ball is located at x in the flange coordinate system {n}. t y t z t Then the position of the center point of the target ball in the flange coordinate system {n} can be expressed as: n P t =[x t y t z t 1] T According to this location n P t The transformation matrix between the base coordinate system {B} and the flange coordinate system {n} Then the theoretical position of the robot's end effector can be obtained, i.e.
[0136] Then, taking joint flexibility into account, expressions for the theoretical position of the robot's end effector under no-load and loaded conditions are obtained respectively.
[0137] When there is no load, the robot's end effector has a load axis and a target ball. Because each joint of the robot bears gravity, each joint has a small rotation angle. 1 Δθ (i) , 1 Δθ (i) A vector with n rows and one column, i.e.
[0138] This rotation angle 1 Δθ (i) The change in position of the robot's end effector is 1 ΔP (i) , 1 ΔP (i) The calculation method is as follows:
[0139]
[0140] Among them, J (i) Let represent the coefficient matrix corresponding to the i-th sampling point, which can be calculated as follows:
[0141]
[0142]
[0143] And rotation angle 1 Δθ (i) The gravitational torque of all joints of the robot at the i-th data collection point 1 G (i) The flexibility coefficient C of the robot is determined, that is 1 Δθ (i) = 1 G (i) *c, then 1 ΔP (i) It can be represented as
[0144] 1 ΔP (i) =J (i) * 1 Δθ (i) =J (i) * 1 G (i) *c.
[0145] Under load, the robot's end effector has a load axis, a target ball, and a load. Because each joint of the robot bears gravity, each joint has a small rotation angle. 2 Δθ (i) , 2 Δθ (i) A vector with n rows and 1 column, i.e.
[0146] This rotation angle 2 Δθ (i) The change in position of the robot's end effector is 2 ΔP (i) Following a similar principle, 2 ΔP (i) =J (i) * 2 Δθ (i) And rotation angle 2 Δθ (i) The gravitational torque of all joints of the robot at the i-th data collection point 2 G (i) The flexibility coefficient C of the robot is determined, that is 2 Δθ (i) = 2 G (i) *c, then 2 ΔP (i) It can be represented as 2 ΔP (i) =J (i) * 2 Δθ (i) =J (i) * 2 G (i) *c.
[0147] Then, at the i-th sampling point, the theoretical displacement of the robot's end effector under both no-load and loaded conditions is ΔP. (i) = 2 ΔP (i) - 1 ΔP (i) =J (i) *( 2 G (i) - 1 G (i) )*c=J (i) *ΔG (i) *c. The theoretical displacement of the robot's end effector should be equal to the actual measured displacement, i.e. Then we can obtain the equation corresponding to the i-th sampling point, i.e.
[0148] Following the above method, the corresponding equation for each sampling point can be obtained, thus forming a system of equations. For example, assuming there are h sampling points, the system of equations is:
[0149]
[0150] It can be written in matrix form as follows:
[0151]
[0152] in,
[0153] Then, by solving the system of equations using the least squares method, the flexibility coefficient of each joint can be obtained.
[0154] To facilitate a better understanding of the effects of the present invention, an example is provided in this embodiment. Taking a 6-axis welding robot with a working radius of 1.4 meters as an example, the robot end-effector positions corresponding to 333 sampling points are collected in the robot space under both no-load and loaded conditions, and the flexibility coefficients of each joint are calculated and compensated according to the method provided in this embodiment.
[0155] Then, by obtaining the absolute position accuracy of the robot at multiple points before and after compensation, we can obtain the following: Figure 6 The results are shown. It can be seen that the robot's absolute positional accuracy was approximately 5mm before compensation, while after compensation, the robot's absolute positional accuracy improved to within approximately 1mm and stabilized at around 0.5mm. That is, by using the joint flexibility coefficient calculated through the method provided in this embodiment of the invention for compensation, the robot's absolute positional accuracy can be greatly improved.
[0156] To perform the corresponding steps in the above embodiments and various possible methods, an implementation of a robot joint flexibility coefficient identification device is given below. Please refer to... Figure 7 , Figure 7 This is a functional block diagram of a robot joint flexibility coefficient identification device 300 provided in an embodiment of the present invention. It should be noted that the basic principle and technical effects of the robot joint flexibility coefficient identification device 300 provided in this embodiment are the same as those in the above embodiments. For the sake of brevity, any parts not mentioned in this embodiment can be referred to the corresponding content in the above embodiments. The robot joint flexibility coefficient identification device 300 includes:
[0157] The displacement calculation module 310 is used to calculate the end displacement corresponding to each sampling point based on the first end position and the second end position corresponding to each sampling point; the first end position and the second end position represent the position of the robot end when the robot makes a corresponding preset posture at the sampling point under no load and under load conditions, respectively.
[0158] The torque calculation module 330 is used to obtain the gravitational torque difference value corresponding to each sampling point based on the mass of the load; the gravitational torque difference value represents the difference in gravitational torque generated by all joints of the robot at the sampling point under no-load and loaded conditions respectively; the load is installed at the end of the robot;
[0159] The coefficient calculation module 350 is used to construct a set of equations for solving the compliance coefficient of each joint based on the difference in gravitational moment and the end displacement corresponding to each sampling point.
[0160] The system of equations is solved using the least squares algorithm to obtain the flexibility coefficient of each joint.
[0161] Optionally, the displacement calculation module 310 is further configured to: calculate the transformation matrix between the base coordinate system established with the robot's base as the origin and the tracker coordinate system established with the tracker as the origin; the tracker is used to measure the position of the target ball installed at the robot's end; obtain the first end position corresponding to each sampling point; the first end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under no load; obtain the second end position corresponding to each sampling point; the second end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under load; for each sampling point, calculate the position difference between the first end position and the second end position corresponding to the sampling point, and calculate the end displacement corresponding to the sampling point based on the position difference and the transformation matrix to obtain the end displacement corresponding to each sampling point.
[0162] Optionally, the displacement calculation module 310 is further configured to: acquire three sample points and a user coordinate system; acquire the position of each sample point in the base coordinate system to obtain the first sample position of each sample point; acquire the position of each sample point in the tracker coordinate system to obtain the second sample position of each sample point; calculate the first transformation matrix between the base coordinate system and the user coordinate system based on the first sample position of each sample point and the three-point coordinate method, and calculate the second transformation matrix between the tracker coordinate system and the user coordinate system based on the second sample position of each sample point and the three-point coordinate method; and multiply the first transformation matrix by the inverse of the second transformation matrix to obtain the transformation matrix.
[0163] Optionally, the torque calculation module 330 is further configured to: acquire preset posture information corresponding to each sampling point, the preset posture information including joint information of each joint; acquire a base coordinate system established with the robot's base as the origin and joint coordinate systems established with the rotation point of each joint as the origin; for each sampling point, calculate the transformation matrix between the base coordinate system and each joint coordinate system according to the joint information of each joint corresponding to the sampling point, obtain the transformation matrix set corresponding to the sampling point, and obtain the transformation matrix set corresponding to each sampling point; for each sampling point, calculate the lever arm of each joint according to the transformation matrix set corresponding to the sampling point, and calculate the gravitational torque difference of each joint according to the lever arm of each joint and the weight of the load, obtain the gravitational torque difference corresponding to the sampling point, and obtain the gravitational torque difference corresponding to each sampling point.
[0164] Optionally, the torque calculation module 330 is further configured to: obtain the position of the load in the tail joint coordinate system to obtain a first position; the tail joint coordinate system represents the joint coordinate system corresponding to the tail joint at the end of the robot; obtain the transformation matrix set corresponding to the sampling point to obtain the transformation matrix corresponding to each joint; calculate the second position of the load in the base coordinate system based on the first position and the transformation matrix corresponding to the tail node; for each joint, calculate the third position of the joint's rotation point in the base coordinate system based on the transformation matrix corresponding to the joint, and calculate the lever arm of the joint based on the third position and the second position to obtain the lever arm of each joint.
[0165] Optionally, the coefficient calculation module 350 is also used to: calculate the coefficient matrix corresponding to each sampling point based on the transformation matrix set corresponding to each sampling point, wherein the coefficient matrix represents the relationship between the angular change of each joint and the displacement of the robot end effector;
[0166] Based on the coefficient matrix, gravitational moment difference, and end displacement corresponding to each sampling point, construct the equation corresponding to each sampling point to obtain a system of equations;
[0167] The equation is:
[0168]
[0169]
[0170] Where J(i) represents the coefficient matrix corresponding to the i-th sampling point; ΔG(i) represents the gravitational moment difference corresponding to the i-th sampling point; each element in C represents the compliance coefficient of each joint to be solved; This represents the end displacement corresponding to the i-th sampling point.
[0171] Please see Figure 8 This is a block diagram of an electronic device 100 provided in an embodiment of the present invention. The electronic device 100 includes a memory 110, a processor 120, and a communication module 130. The memory 110, processor 120, and communication module 130 are electrically connected to each other directly or indirectly to achieve data transmission or interaction. For example, these components can be electrically connected to each other through one or more communication buses or signal lines.
[0172] The memory 110 is used to store programs or data. The memory 110 may be, but is not limited to, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.
[0173] The processor 120 is used to read / write data or programs stored in the memory 110 and perform corresponding functions. For example, when the processor 120 executes a computer program stored in the memory 110, it can implement the robot joint flexibility coefficient identification method disclosed in the embodiments of the present invention.
[0174] The communication module 130 is used to establish a communication connection between the electronic device 100 and other communication terminals via a network, and to send and receive data via the network.
[0175] It should be understood that, Figure 8 The structure shown is only a schematic diagram of the electronic device 100. The electronic device 100 may also include components that are larger than... Figure 8 The more or fewer components shown, or having the same Figure 8 The different configurations shown. Figure 8 The components shown can be implemented using hardware, software, or a combination thereof.
[0176] This invention also provides a storage medium storing a computer program, which, when executed by a processor, implements the robot joint flexibility coefficient identification method disclosed in this invention.
[0177] In the several embodiments provided by this invention, it should be understood that the disclosed apparatus and methods can also be implemented in other ways. The apparatus embodiments described above are merely illustrative; for example, the flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of apparatus, methods, and computer program products according to various embodiments of the invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0178] In addition, the functional modules in the various embodiments of the present invention can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.
[0179] If the aforementioned functions are implemented as software functional modules and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, essentially, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0180] The above description is merely a preferred embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.
Claims
1. A method for identifying the joint flexibility coefficient of a robot, characterized in that, The method includes: Based on the first end position and the second end position corresponding to each sampling point, the end displacement corresponding to each sampling point is calculated; the first end position and the second end position respectively represent the position of the robot end when the robot makes a corresponding preset posture at the sampling point under no load and under load conditions; The preset posture information corresponding to each sampling point is obtained, and based on the preset posture information corresponding to each sampling point and the robot kinematic model, the gravitational torque difference corresponding to each sampling point is obtained according to the mass of the load; the gravitational torque difference represents the difference in gravitational torque generated by all joints of the robot at the sampling point under no-load and loaded conditions respectively; the load is installed at the end of the robot. Based on the linear response relationship between the end displacement caused by joint flexibility and the gravitational torque on each joint, an overdetermined linear equation system with the flexibility coefficient of each joint as the unknown is constructed according to the gravitational torque difference and end displacement corresponding to each sampling point. The system of equations is solved using the least squares algorithm to obtain the flexibility coefficient of each joint; the number of sampling points is greater than the number of joints of the robot.
2. The method according to claim 1, characterized in that, The step of calculating the end displacement corresponding to each sampling point based on the first end position and the second end position corresponding to each sampling point includes: Calculate the transformation matrix between the base coordinate system established with the robot's base as the origin and the tracker coordinate system established with the tracker as the origin; the tracker is used to measure the position of the target ball installed at the end of the robot. Obtain the first end position corresponding to each sampling point; the first end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under no load. Obtain the second end position corresponding to each sampling point; the second end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under load. For each sampling point, the position difference between the first end position and the second end position corresponding to the sampling point is calculated, and the end displacement corresponding to the sampling point is calculated based on the position difference and the transformation matrix to obtain the end displacement corresponding to each sampling point.
3. The method according to claim 2, characterized in that, The step of calculating the transformation matrix between the base coordinate system established with the robot's base as the origin and the tracker coordinate system established with the tracker as the origin includes: Obtain three sample points and the user coordinate system; Obtain the position of each sample point in the base coordinate system to obtain the first sample position of each sample point; The position of each sample point in the coordinate system of the tracker is obtained to obtain the second sample position of each sample point; Based on the first sample position of each sample point and the three-point coordinate method, calculate the first transformation matrix between the base coordinate system and the user coordinate system, and based on the second sample position of each sample point and the three-point coordinate method, calculate the second transformation matrix between the tracker coordinate system and the user coordinate system. The transformation matrix is obtained by multiplying the first transformation matrix by the inverse of the second transformation matrix.
4. The method according to claim 1, characterized in that, The preset posture information includes joint information for each of the joints, and the step of obtaining the gravitational torque difference corresponding to each sampling point based on the mass of the load includes: Obtain a base coordinate system with the robot's base as the origin and a joint coordinate system with the rotation point of each joint as the origin. For each sampling point, based on the joint information of each joint corresponding to the sampling point, the transformation matrix between the base coordinate system and each joint coordinate system is calculated to obtain the transformation matrix set corresponding to the sampling point, thus obtaining the transformation matrix set corresponding to each sampling point; For each sampling point, the lever arm of each joint is calculated based on the transformation matrix set corresponding to the sampling point, and the gravitational torque difference of each joint is calculated based on the lever arm of each joint and the weight of the load, so as to obtain the gravitational torque difference corresponding to the sampling point.
5. The method according to claim 4, characterized in that, The step of calculating the lever arm of each joint based on the transformation matrix set corresponding to the sampling points includes: The position of the load in the tail joint coordinate system is obtained to obtain the first position; the tail joint coordinate system represents the joint coordinate system corresponding to the tail joint located at the end of the robot. Obtain the set of transformation matrices corresponding to the sampling points to obtain the transformation matrix corresponding to each joint; Based on the transformation matrix corresponding to the first position and the tail joint, calculate the second position of the load in the base coordinates; For each joint, the third position of the rotation point of the joint in the base coordinates is calculated according to the transformation matrix corresponding to the joint, and the lever arm of the joint is calculated based on the third position and the second position to obtain the lever arm of each joint.
6. The method according to claim 4, characterized in that, The step of constructing a system of equations for solving the compliance coefficient of each joint based on the gravitational moment difference and end displacement corresponding to each sampling point includes: Based on the transformation matrix set corresponding to each sampling point, calculate the coefficient matrix corresponding to each sampling point. The coefficient matrix represents the relationship between the angle change of each joint and the displacement of the robot end effector. Based on the coefficient matrix, gravitational moment difference, and end displacement corresponding to each sampling point, an equation corresponding to each sampling point is constructed to obtain the system of equations. The equation is: ; ; in, This represents the coefficient matrix corresponding to the i-th sampling point; This represents the difference in gravitational torque corresponding to the i-th sampling point; Each element in the expression represents the compliance coefficient of each joint to be solved; This represents the end displacement corresponding to the i-th sampling point.
7. A robot joint flexibility coefficient identification device, characterized in that, The device includes: The displacement calculation module is used to calculate the end displacement corresponding to each sampling point based on the first end position and the second end position corresponding to each sampling point; the first end position and the second end position respectively represent the position of the robot end when the robot makes a corresponding preset posture at the sampling point under no load and under load conditions. A torque calculation module is used to acquire preset posture information corresponding to each sampling point, and based on the preset posture information corresponding to each sampling point and the robot kinematic model, to obtain the gravitational torque difference corresponding to each sampling point according to the mass of the load; the gravitational torque difference represents the difference in gravitational torque generated by all joints of the robot at the sampling point under no-load and loaded conditions respectively; the load is installed at the end effector of the robot; The coefficient calculation module is used to construct an overdetermined linear equation system with the flexibility coefficient of each joint as the unknown, based on the linear response relationship between the end displacement caused by joint flexibility and the gravitational torque on each joint, according to the gravitational torque difference and end displacement corresponding to each sampling point. The system of equations is solved using the least squares algorithm to obtain the flexibility coefficient of each joint; the number of sampling points is greater than the number of joints of the robot.
8. The apparatus according to claim 7, characterized in that, The displacement calculation module is also used for: Calculate the transformation matrix between the base coordinate system established with the robot's base as the origin and the tracker coordinate system established with the tracker as the origin; the tracker is used to measure the position of the target ball installed at the end of the robot. Obtain the first end position corresponding to each sampling point; the first end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under no load. Obtain the second end position corresponding to each sampling point; the second end position is the position of the target ball in the tracker coordinate system when the robot makes a corresponding preset posture at the sampling point under load. For each sampling point, the position difference between the first end position and the second end position corresponding to the sampling point is calculated, and the end displacement corresponding to the sampling point is calculated based on the position difference and the transformation matrix to obtain the end displacement corresponding to each sampling point.
9. An electronic device, characterized in that, It includes a processor and a memory, the memory storing a computer program, and the processor, when executing the computer program, implements the method of any one of claims 1 to 6.
10. A storage medium, characterized in that, The storage medium stores a computer program, which, when executed by a processor, implements the method of any one of claims 1 to 6.
Citation Information
Patent Citations
Deflection prediction method of PVA fiber cement-based composite material beam
CN115186474A
Non-linear torsional assist mechanism and method
US5396692A