Serial robot and its method for solving inverse kinematics of double arms, related media and devices

By using the two-arm inverse kinematics solution method in the tandem robot, using the combination of positive kinematics and differential inverse kinematics, considering waist movement and joint limits, the problem of two-arm inverse kinematics of the tandem robot is solved, achieving high-precision and high-efficiency operation.

CN118636131BActive Publication Date: 2025-06-13AGIBOT INNOVATION (SHANGHAI) TECHNOLOGY CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202410707258.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-05-31
Publication Date
2025-06-13
Estimated Expiration
2044-05-31

AI Technical Summary

Technical Problem

The prior art is difficult to effectively solve the problem of inverse kinematics of the two arms of tandem robots, especially when meeting joint limit constraints and considering waist movements.

Method used

A two-arm inverse kinematics solution method is used to obtain the current position through positive kinematics calculation, and differential inverse kinematics calculation is performed when the position error is greater than the target error. The Jacobian matrix is ​​used to consider waist movement, and the optimal joint speed is obtained, and the joint angle is updated through integrals until the target position is reached.

Benefits of technology

This method can effectively solve the inverse kinematics of the two arms of the tandem robot with any configuration and any degree of freedom, ensure that the solution results meet joint limit constraints, and improve the accuracy and efficiency of the robot operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118636131B_ABST
    Figure CN118636131B_ABST
Patent Text Reader

Abstract

The present application provides a serial robot, a method for solving the inverse kinematics of its two arms, related media and devices. The method includes: performing forward kinematics calculation based on the current joint angles of the serial robot to obtain the current pose of the two-arm end; when the pose error between the current pose and the target pose is not less than the target error, using the current pose and the target pose to perform two-arm differential inverse kinematics calculation to obtain the joint velocity, and performing optimization solution based on the target physical constraint conditions to obtain the optimal joint velocity; wherein, the Jacobian matrix corresponding to the two-arm differential inverse kinematics calculation includes a waist motion term; integrating the optimal joint velocity into the current joint angles to update the current joint angles until the pose error between the current pose calculated based on the current joint angles and the target pose is less than the target error or the target iteration times are exceeded. The present application is applicable to serial robots with any configuration and any degree of freedom.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical fields of serial robots and differential inverse kinematics, and particularly to a serial robot, a method for solving the inverse kinematics of its two arms, a computer-readable storage medium, and a computer device. Background Art

[0002] Currently, the algorithms for solving the inverse kinematics of a single arm include analytical methods and iterative methods. Among them, the analytical method has strict requirements for the model, that is, it needs to meet the Piper criterion that three adjacent joint axes intersect at a point or the three axes are parallel, and there are different closed solutions for different configurations. In addition, for a robot with redundant degrees of freedom, it is difficult to solve the inverse kinematics problem of its two arms with specified desired poses at the end of the left and right arms. And the iterative method is difficult to meet the joint limit constraints. Currently, the solution of the inverse kinematics of the two arms is generally regarded as two single-arm problems. In this way, both the analytical method and the iterative method have their inherent defects. And if the movement of the waist of a humanoid robot is considered, at this time, the waist joint affects the movement of both the left arm and the right arm at the same time, and it is very difficult to obtain the analytical solution and the iterative solution.

[0003] Based on this, the present application provides a serial robot, a method for solving the inverse kinematics of its two arms, a computer-readable storage medium, and a computer device to improve the related technologies. Summary of the Invention

[0004] The purpose of the present application is to provide a serial robot, a method for solving the inverse kinematics of its two arms, a computer-readable storage medium, and a computer device, which are applicable to the calculation of the inverse kinematics of the two arms of a serial robot with any configuration and any degree of freedom, and will not calculate solutions that exceed physical constraints.

[0005] The purpose of the present application is achieved by adopting the following technical solutions:

[0006] In a first aspect, the present application provides a method for solving the inverse kinematics of the two arms of a serial robot, the serial robot including two arms and a waist, and the method includes:

[0007] Performing forward kinematics calculation according to the current joint angles of the serial robot to obtain the current poses of the ends of the two arms;

[0008] When the pose error between the current pose and the target pose is not less than the target error, using the current pose and the target pose to perform differential inverse kinematics calculation of the two arms to obtain joint velocities, and performing optimization solution based on the target physical constraint conditions to obtain the optimal joint velocities; wherein, the Jacobian matrix corresponding to the differential inverse kinematics calculation of the two arms includes a waist movement term;

[0009] Integrate the optimal joint velocity to the current joint angle to update the current joint angle until the pose error between the current pose calculated based on the current joint angle and the target pose is less than the target error or the target iteration number is exceeded.

[0010] In some embodiments, integrating the optimal joint velocity to the current joint angle to update the current joint angle includes:

[0011] When the optimal joint velocity is greater than the target velocity, integrate the optimal joint velocity to the current joint angle to update the current joint angle;

[0012] The method further includes:

[0013] When the optimal joint velocity is not greater than the target velocity, specify the current joint angle that satisfies the target physical constraint conditions so as to perform forward kinematics calculation based on the specified current joint angle.

[0014] In some embodiments, the expression of the Jacobian matrix calculated by the dual-arm differential inverse kinematics is:

[0015]

[0016] where q is the joint angle, J(q left ) and J(q right ) are the left-arm motion term and the right-arm motion term respectively, and are the corresponding waist motion terms of the left arm and the right arm respectively.

[0017] In some embodiments, performing optimization to obtain the optimal joint velocity based on the target physical constraint conditions includes:

[0018] When the target physical constraint conditions are satisfied, use the joint velocity as the optimization variable of the optimization objective function, and calculate the optimal joint velocity that minimizes the optimization objective function. The optimization objective function includes a pose task optimization term corresponding to the pose task, and the pose task optimization term is determined based on and e;

[0019] where, V is the six-dimensional space velocity, is the joint velocity, and e is the pose error.

[0020] In some embodiments, the target physical constraint conditions include one or more of joint velocity constraint conditions, joint angle constraint conditions, and joint acceleration constraint conditions.

[0021] In some embodiments, when the target physical constraint conditions are satisfied, taking the joint velocity as the optimization variable of the optimization objective function and calculating the optimal joint velocity that minimizes the optimization objective function includes:

[0022] Performing a first-order approximation on the target physical constraint conditions, and thus expressing the joint angle and joint acceleration in the optimization objective function as expressions containing the joint velocity based on the step size;

[0023] Using the joint velocity and the currently measured current joint angle as inputs, using the joint velocity as the optimization variable, and using a target quadratic programming solver to calculate the optimal joint velocity that minimizes the optimization objective function.

[0024] In some embodiments, for a serial robot with redundant degrees of freedom, the optimization objective function further includes a secondary task optimization term corresponding to a secondary task other than the pose task. Thus, the null space projection method is adopted to incorporate the secondary tasks other than the pose task into the optimization objective function to ensure the existence of a globally unique optimal solution.

[0025] In a second aspect, the present application provides a method for solving the inverse kinematics of a dual-arm of a serial robot. The serial robot includes two arms and a waist. The method includes:

[0026] Executing multiple threads in parallel. Each thread is used to execute any one of the above methods within a target duration until the pose error between the current pose calculated based on the current joint angle and the target pose is less than the target error or exceeds the target number of iterations. The case where the pose error is less than the target error is recognized as the successful solution of the thread, and the case where the target number of iterations is exceeded is recognized as the failure of the thread to solve.

[0027] When any one of the threads successfully solves within the target duration, it is recognized that the inverse kinematics solution is successful, and all threads end the solution process.

[0028] In a third aspect, the present application provides a serial robot. The serial robot includes two arms, a waist, and a control module. The control module is used to execute any one of the above methods.

[0029] In a fourth aspect, the present application provides a computer-readable storage medium. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements any one of the above methods.

[0030] In a fifth aspect, the present application provides a computer device. The computer device includes a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, it implements any one of the above methods.

[0031] The present application provides a serial robot and its method for solving the inverse kinematics of double arms, a computer-readable storage medium, and a computer device. First, forward kinematics calculation is performed to obtain the current pose of the end of the double arms. When the pose error is greater than or equal to a preset value (i.e., the target error), differential inverse kinematics calculation will be executed, which includes the application of the Jacobian matrix. The Jacobian matrix takes into account the movement influence of the waist and helps to calculate the joint speed more accurately. Then, by optimizing and solving the joint speed, according to the target physical constraint conditions, the optimal joint speed is found. The optimal joint speed updates the joint angles through integration until the pose error is reduced to less than the set threshold or reaches the upper limit of the iteration times, so as to ensure that the end effector accurately reaches the target pose. The present application adopts a method for solving the inverse kinematics of double arms considering joint limits, and determines the solution of the differential inverse kinematics of the robot under the constraint of meeting the joint limits according to the target pose task of the end of the double arms. The method for solving the inverse kinematics of double arms is abstracted into a global optimal control problem. By solving the optimization problem with target physical constraint conditions such as joint limits, the obtained result must meet the joint limits and can be applied to serial robots with any configuration and any degree of freedom. Description of the Drawings

[0032] The present application will be further described below in conjunction with the drawings in the specification and the specific embodiments.

[0033] Figure 1 It is a schematic flowchart of a method for solving the inverse kinematics of double arms of a serial robot provided by an embodiment of the present application.

[0034] Figure 2 It is a schematic flowchart of a method for solving the inverse kinematics of double arms of a serial robot provided by an embodiment of the present application (multi-threaded parallel).

[0035] Figure 3 It is a schematic flowchart of a method for solving the inverse kinematics of double arms provided by an embodiment of the present application.

[0036] Figure 4 It is a schematic flowchart of a method for solving the inverse kinematics of double arms provided by an embodiment of the present application (local optimal randomization jump out).

[0037] Figure 5 It is a schematic flowchart of a method for solving the inverse kinematics of double arms provided by an embodiment of the present application (multi-threaded parallel).

[0038] Figure 6 It is a structural block diagram of a computer device provided by an embodiment of the present application. Detailed Embodiments

[0039] The technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the accompanying drawings in the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. All other embodiments obtained by those skilled in the art based on the embodiments in the present application without creative efforts belong to the scope of protection of the present application.

[0040] In the description of the embodiments of the present application, it should be understood that the terms "first" and "second" are only used for descriptive purposes and cannot be construed as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. Thus, the features defined with "first" and "second" may explicitly or implicitly include one or more of the described features. In the description of the embodiments of the present application, the meaning of "a plurality" is two or more unless otherwise specifically defined.

[0041] For a multi-joint serial robot system with two arms and a waist, such as a humanoid robot with a waist joint, the present application provides a method for optimizing and solving the inverse kinematics of the two arms using the degrees of freedom of the whole body, which is applicable to the inverse kinematics solution of the (waist-included) two arms when the serial robot is performing an operation task. Specifically, the present application transforms the inverse kinematics solution problem of the (waist-included) two arms into an optimization problem with constraints for solution, rather than two single-arm inverse kinematics solution problems, and adopts the idea of the sequential convex optimization method. The objective equation obtained based on the (waist-included) two-arm differential kinematics simultaneously considers the pose tasks at the ends of the two arms and a second task such as the reference joint configuration. The maximum solution time and the target poses of the left and right arms are specified, and the number of solution threads is specified for parallel solution. The solution calculation of a certain thread is to convert the deviation between the target poses and the current poses of the left and right arms into an error rotation vector, and obtain the optimal joint velocities of all degrees of freedom of the (waist-included) two arms by optimizing the objective equation with constraints, and then update the joint angles. Among them, when the solved optimal joint velocity is less than a certain threshold, it is determined that it falls into a local optimum, and the random jump method within the joint limits is adopted to re-optimize and solve until the error screw between the current pose and the target pose is less than a certain threshold, and it is considered that the solution is successful. In practical applications, it can be configured that when a thread solves successfully, the inverse kinematics solution is successful and all threads end the operation. It can also be configured that all threads execute within the target duration until the target duration is reached. At this time, if one or more threads solve successfully, it is considered that the solution is successful; if all threads fail to solve, it is considered that the solution fails. That is to say, unless all threads fail to solve within the specified maximum solution time (i.e., the target duration), it will be considered that the solution fails.

[0042] Next, the embodiments of the present application will be specifically described.

[0043] See Figure 1 , Figure 1It is a schematic flowchart of a method for solving the inverse kinematics of the two arms of a serial robot provided by an embodiment of the present application.

[0044] In order to improve the related technology, on the premise of ensuring the coordination of the two-arm movement and complying with the waist movement limit, determine the current joint angles, effectively reduce the pose error of the two arms of the serial robot from the current pose to the target pose, and improve the accuracy and efficiency of the robot operation. An embodiment of the present application provides a method for solving the inverse kinematics of the two arms of a serial robot. The serial robot includes two arms and a waist. The method includes steps S101 to S103.

[0045] Step S101: Perform forward kinematics calculation according to the current joint angles of the serial robot to obtain the current poses of the ends of the two arms.

[0046] Step S102: When the pose error between the current pose and the target pose is not less than the target error, use the current pose and the target pose to perform differential inverse kinematics calculation of the two arms to obtain the joint velocities, and perform optimization solution based on the target physical constraint conditions to obtain the optimal joint velocities; wherein, the Jacobian matrix corresponding to the differential inverse kinematics calculation of the two arms includes the waist movement term.

[0047] Step S103: Integrate the optimal joint velocities into the current joint angles to update the current joint angles until the pose error between the current pose calculated based on the current joint angles and the target pose is less than the target error or exceeds the target iteration times.

[0048] Among them, the serial robot has multiple joints and multiple degrees of freedom. For example, it includes multiple joints and linkages and can be applied to fields such as industrial automation, medical treatment, and services. For example, it can be a biped robot, a quadruped robot, a wheeled robot, a robotic arm, or an industrial automation device, etc. As an example, each joint corresponds to one degree of freedom. Forward kinematics refers to calculating the pose of the end effector of the robot based on the joint angles of each joint of the robot. Among them, the end effector of the robot includes, for example, the end of the two arms, and the end of the two arms includes, for example, two single-arm ends, namely the end of the left arm and the end of the right arm. Inverse kinematics refers to calculating the joint angles of each joint based on the desired pose of the end effector of the robot. The inverse kinematics solution method is a method of calculating the joint angles by given the target pose of the end effector of the robot. The current pose is the position and orientation of the end effector of the robot (which is a calculated value and not necessarily the actual measurement result) obtained by forward kinematics from the current joint angles. The joint angle refers to the specific angle or displacement of each joint of the robot at a certain moment. The target pose refers to the position and orientation that the end effector of the robot is expected to reach. The pose error is used to describe the difference between the current pose and the target pose. For example, it is represented by the position error and the orientation error, and is used to measure the deviation degree of the current (calculated) state of the robot from the target state. In some embodiments, the pose error can be represented by an error screw. The target physical constraint conditions refer to the limiting conditions such as the joint limits (corresponding to the joint positions, or rather the joint angles), joint velocities, and joint accelerations of the robot to ensure that the solution result is feasible under the actual physical conditions. In the inverse kinematics of the robot, the Jacobian matrix can be used to describe the linear relationship between the spatial velocity of the end effector of the robot and the joint velocities of the robot. In this article, differential inverse kinematics based on the current pose and the target pose can calculate the joint velocities, optimize the solution to obtain the optimal joint velocities, and then integrate the optimal joint velocities into the current joint angles to update the current joint angles, and further update the current pose, and perform iterative calculations based on the difference between the current pose and the target pose. The optimal joint velocity refers to the optimal solution obtained by an optimization method under the target physical constraint conditions. For example, it is the joint velocity that minimizes the optimization objective function. The target number of iterations can be, for example, 3, 10, 50, 100, 1000, etc., and this application does not limit this.

[0049] In the above embodiments, first, forward kinematics calculation is performed to obtain the current pose of the ends of the two arms. When the pose error is greater than or equal to a preset value (i.e., the target error), differential inverse kinematics calculation will be executed, which includes the application of the Jacobian matrix. The Jacobian matrix takes into account the movement influence of the waist at this time, helping to calculate the joint velocities more accurately. Then, by optimally solving the joint velocities, according to the specified physical constraints (i.e., the target physical constraints), the optimal joint velocities are found. The optimal joint velocities update the joint angles through integration until the pose error is reduced to less than the set threshold or the upper limit of the iteration times is reached, so as to ensure that the end effector accurately reaches the target pose. This method significantly improves the accuracy and efficiency of the dual-arm operation of the serial robot. By considering the influence of the waist movement in the Jacobian matrix, the movement of the two arms can be controlled more precisely, making the movement of the two arms more coordinated.

[0050] The above embodiments adopt a dual-arm inverse kinematics solution method considering joint limits (for any degree of freedom). According to the target pose (or, the desired pose) task of the ends of the two arms, the solution of the differential inverse kinematics of the robot is determined under the constraint of satisfying the joint limits. The dual-arm inverse kinematics solution method is abstracted into a whole-body optimal control problem. By solving the optimization problem with physical constraints such as joint limits, the physical constraints such as joint limits are considered, and the dual-arm inverse kinematics problem with a waist is solved, so that the obtained result must satisfy the joint limits. The above method is a numerical optimization method and can be applied to serial dual-arm robots with any configuration and any degree of freedom. Using the sequential convex optimization iteration method, the inverse kinematics problem can be solved at the microsecond level. By regarding the joint limits as constraints, the obtained joint angles will definitely not exceed the joint limits, and unlike the related closed solution methods, it is possible to solve for solutions that exceed the joint limits. In addition, this method has strong scalability. According to the requirements in practical applications, a suitable optimization objective function can be constructed for the optimization solution process, and the influence of secondary tasks other than the pose task can be considered in the optimization objective function, so as to make full use of all degrees of freedom of the robot. In addition to satisfying the constraints of the end pose task, secondary task constraints such as the reference joint configuration and the manipulability measure can also be considered. For example, for a wheeled dual-arm robot with two redundant robotic arms with seven degrees of freedom each and considering two degrees of freedom of the waist, a total of 16 degrees of freedom, on the premise of satisfying the high-priority desired pose task of the ends of the two arms, it can then execute tasks with lower priorities such as the reference configuration.

[0051] To ensure that multi-joint robots with various configurations can effectively avoid local optima, by dynamically adjusting the joint speed response, and accurately reach or maintain the target pose while satisfying physical constraints. In some embodiments, integrating the optimal joint speed into the current joint angle to update the current joint angle may include: when the optimal joint speed is greater than the target speed, integrating the optimal joint speed into the current joint angle to update the current joint angle; the method further includes: when the optimal joint speed is not greater than the target speed, specifying the current joint angle that satisfies the target physical constraint conditions, so as to perform forward kinematics calculation based on the specified current joint angle.

[0052] Wherein, the target speed is, for example, a preset speed threshold, used to determine whether the optimal joint speed exceeds this value. As an example, the target speed is, for example, 10e-7, 10e-6, 10e-5, etc.

[0053] The above embodiments adopt the method of local optimum randomization jump-out to avoid local optima, which is applicable to double-arm multi-joints with any configuration (including the waist). Local optimum randomization jump-out is used to handle the local optimum problem that the solution process may fall into. By changing the search strategy through randomization methods, it helps the algorithm jump out of the local optimum and find the global optimum solution. In the above embodiments, when the calculated optimal joint speed exceeds the predetermined speed threshold (i.e., the target speed), the optimal joint speed can be integrated into the current joint angle to update the current joint angle. This method can quickly adjust the posture of the robot, especially when large-scale movement is required to adapt to a rapidly changing operating environment. When the optimal joint speed does not exceed the target threshold, a current joint angle configuration that satisfies all physical constraints will be selected in a specified manner, and forward kinematics calculation will be performed on this basis. Adopting the method of local optimum randomization jump-out can effectively avoid falling into local optima in complex or extreme robot postures, increasing the globality and applicability of the solution. For double-arm robots performing complex tasks, it is beneficial to achieve precise operation of the robot in a compact space, enabling the robot to maintain high flexibility in a changing operating environment.

[0054] To perform forward kinematics calculation and inverse kinematics calculation, a corresponding kinematic model of the robot can be received or established, for example, a serial model including joints and links, and the joint configuration space is as follows:

[0055]

[0056] q is the joint angle, and the subscript is the serial number of the joint. The joint speed is:

[0057]

[0058] Wherein the forward kinematics is to obtain the pose p of the end of the double arm based on the joint configurationl (q) and p r (q). The inverse kinematics is to find the corresponding configuration space for the two desired end poses of the known two arms. In this paper, the subscript l or left corresponds to the parameters related to the left arm, and the subscript r or right corresponds to the parameters related to the right arm.

[0059] After establishing the kinematic model of the robot, the pose task and other tasks can be defined. First, the single-arm pose task is defined below, then the two-arm pose task is defined, and finally, the task definition for the case including the pose task and other tasks is carried out.

[0060] As an example, for any single arm, the target equation corresponding to its position task is:

[0061] e(q) = p * ―p(q)

[0062] where p * is the desired end position (i.e., the target position of the end), p(q) is the current end position based on the forward kinematics (i.e., the current position of the end). When e(q) is zero, the end Cartesian position task is completed at this time.

[0063] At this time, there is the following expression:

[0064] p(q) = p *

[0065] 9 = p -1 (p * )

[0066] where p -1 is the position inverse kinematics.

[0067] As an example, for any single arm, the target equation corresponding to its orientation task is:

[0068]

[0069] e(q) = log(R * R(q) -1 )

[0070] where R * is the desired end orientation (i.e., the target orientation of the end), R(q) is the current end orientation based on the forward kinematics (i.e., the current orientation of the end). When e(q) is zero, the end Cartesian orientation task is completed at this time.

[0071] The orientation inverse kinematics is the same as the position inverse kinematics and will not be elaborated here.

[0072] Therefore, for the single-arm overall task and the inverse kinematics problem, the target equation corresponding to the pose task can be expressed as follows:

[0073]

[0074] That is, the target equation corresponding to the pose task can be represented by a system of equations. For the Cartesian space pose multi-task, there is the above formula. Where the subscripts 1, 2, ……, n represent the 1st, 2nd, ……, nth tasks among multiple pose tasks.

[0075] In the calculation of the differential inverse kinematics of the single-arm, the joint velocity and the spatial velocity can be related through the Jacobian matrix as follows:

[0076]

[0077] Where V is the 6D spatial velocity, which can be regarded as the desired end-effector pose deviation velocity, and J(q) is the Jacobian matrix. For a redundant degree-of-freedom robot, such as a 7-degree-of-freedom manipulator, At this time, the number of joint degrees of freedom (i.e., 7) is greater than the dimension of the spatial velocity (i.e., 6). At this time, Moore-Penrose pseudo-inverse calculation can be performed to obtain the joint velocity The corresponding change in joint angle is:

[0078] e(q)=J(q) + δq

[0079] Where the superscript + is the pseudo-inverse symbol, and J(q) + is the pseudo-inverse of the Jacobian matrix J(q).

[0080] Next, consider the influence of the waist movement on the two arms. Since the waist has a greater influence on the operation of the two arms, at this time, the waist movement jointly affects the end-effector poses of the left and right arms. A certain joint of a single arm only affects the end-effector pose of the single arm, while the movement of the waist affects the completion of the pose task of the two arms.

[0081] At this time, the differential kinematics of the left arm becomes:

[0082]

[0083] Where the subscript waist represents the waist-related parameters. If the degree of freedom of the waist is a and the degree of freedom of the left arm is 7, where is a 6×(a + 7) matrix, which reflects the influence of the waist component on the left arm.

[0084] Correspondingly, the differential kinematics of the right arm becomes:

[0085]

[0086] If the degree of freedom of the waist is a and the degree of freedom of the right arm is 7, where is a 6×(a + 7) matrix, which reflects the influence of the waist component on the right arm.

[0087] It can be seen that the movement of the waist can have different effects on the tasks of the left and right arms.

[0088] For the dual-arm position task, the corresponding target equation of the position task can be expressed as:

[0089]

[0090] where are the desired end positions of the two arms (i.e., the target positions of the left arm end and the right arm end), respectively, p l (q) and p r (q) are the current end positions of the left and right arms based on forward kinematics (i.e., the current positions of the left arm end and the right arm end). When e(q) is zero, the Cartesian position task of the two arm ends is completed at this time.

[0091] At this time, there is the following expression:

[0092]

[0093] For the dual-arm attitude task, the corresponding target equation of the attitude task can be expressed as:

[0094]

[0095] where are the desired end attitudes of the two arms (i.e., the target attitudes of the left arm end and the right arm end), respectively, R l R r is the current end attitude based on forward kinematics (i.e., the current positions of the left arm end and the right arm end). When e(q) is zero, the Cartesian attitude task of the end is completed at this time.

[0096] Thus, for the overall dual-arm task and the inverse kinematics problem, the corresponding target equation of the pose task can be expressed as follows:

[0097]

[0098] The above embodiments express the corresponding target equation of the pose task as a system of equations. When performing the differential inverse kinematics calculation of the two arms, the Jacobian matrix can be used to relate the joint velocity and the spatial velocity as follows:

[0099]

[0100] Where V is the 12-dimensional spatial velocity, which can be regarded as the expected end-effector pose deviation velocity of the left and right arms. J(q) is the Jacobian matrix. For a two-armed robot with a waist, assuming that the waist has 2 degrees of freedom and each arm has 7 degrees of freedom, the total number of degrees of freedom is 16, satisfying Where is the Jacobian matrix of the left arm including waist movement, is the Jacobian matrix of the right arm including waist movement. The Jacobian matrix of the left arm and the Jacobian matrix of the right arm together form the corresponding Jacobian matrix of the two arms.

[0101] At this time, the number of joint degrees of freedom (i.e., 16) is greater than the dimension of the spatial velocity (i.e., 12). At this time, Moore-Penrose pseudoinverse calculation can be performed to obtain the change in joint angle corresponding to the joint velocity as:

[0102] e(q) = J(q) + δq

[0103] As shown above, in order to effectively calculate and optimize the joint velocity in a complex multi-joint two-armed robot by combining waist movement to accurately control the pose of the robot, in some embodiments, the expression of the Jacobian matrix corresponding to the differential inverse kinematics of the two arms is:

[0104]

[0105] Where q is the joint angle, J(q left ) and J(q right ) are the left-arm movement term and the right-arm movement term respectively, and are the corresponding waist movement terms of the left arm and the right arm respectively.

[0106] After obtaining the joint velocity, the joint velocity can be optimized. Based on the numerical iteration method of differential inverse kinematics, the Newton iteration method is an inverse kinematics numerical solution method. However, when the Jacobian matrix J(q) is in the singular interval, the obtained joint velocity will be very large, and it is also difficult to meet the physical constraints of real robots such as joint velocity, acceleration, and torque constraints. By using the solution method based on whole-body optimal control, the above constraints can be added to the constraint conditions.

[0107] The embodiments of the present application do not limit the target physical constraint conditions. In some embodiments, the target physical constraint conditions may include joint velocity constraint conditions, joint angle constraint conditions, and joint acceleration constraint conditions.

[0108] For differential kinematics such as , the pseudoinverse is the optimal solution of the following least squares optimal problem. As an example, the optimization objective function is as follows:

[0109]

[0110] where is an optimization variable, for example, it is the optimal solution that minimizes the optimization objective function and has a pseudo-inverse as its closed-form solution

[0111] If the 12-dimensional poses of the differential kinematics of the left and right arms are regarded as 12 individual tasks, the optimization objective function can be written in the form of weighted least squares at this time.

[0112]

[0113] where the subscript i is the sequence number of the 12 individual tasks corresponding to the above 12-dimensional poses, and ω i is the weight of the i-th task. At this time, the joint velocity constraint conditions can be directly added to the optimization objective function as follows:

[0114]

[0115] That is, the target equations corresponding to the joint velocity constraint conditions are represented by a system of inequality equations. The above equation is weighted full-body optimization. Compared with the pseudo-inverse method for solving unconstrained optimization, the optimization solution based on the above equation can solve the differential inverse kinematics problem under joint velocity constraints. The above optimization problem is a convex quadratic optimization and linear constraint problem, and a target solver (for example, a QP solver) can be used to solve the above problem.

[0116] At this time, the joint angle constraint conditions (corresponding to limit constraints) and joint acceleration constraint conditions can also be added to the optimization objective function as follows:

[0117]

[0118] where h is the step size, is the joint acceleration, is the actual joint velocity. That is, the target equations corresponding to the joint angle constraint conditions and joint acceleration constraint conditions are also represented by a system of inequality equations. The above equation can be written in the QP optimization form as follows:

[0119]

[0120] subject to constraints.

[0121] where W is the weight matrix, J is the Jacobian matrix, {J(q) T WJ(q)} is the Hessian matrix, and {―J T We} is the gradient vector.

[0122] As described above, in some embodiments, the optimal joint velocity is obtained by performing an optimization solution based on the target physical constraint conditions, including: when the target physical constraint conditions are satisfied, using the joint velocity as the optimization variable of the optimization objective function, and calculating the optimal joint velocity that minimizes the optimization objective function. The optimization objective function includes a pose task optimization term corresponding to the pose task, and the pose task optimization term is based on and e. Among them, V is the six-dimensional space velocity, is the joint velocity, and e is the pose error.

[0123] In some embodiments, the target physical constraint conditions include one or more of joint velocity constraint conditions, joint angle constraint conditions, and joint acceleration constraint conditions.

[0124] In some embodiments, the target physical constraint conditions include joint velocity constraint conditions, joint angle constraint conditions, and joint acceleration constraint conditions. When the target physical constraint conditions are satisfied, using the joint velocity as the optimization variable of the optimization objective function, and calculating the optimal joint velocity that minimizes the optimization objective function may include: performing a first-order approximation on the target physical constraint conditions, so as to represent the joint angle and joint acceleration in the optimization objective function as expressions containing the joint velocity based on the step size; using the joint velocity and the currently measured current joint angle as inputs, using the joint velocity as the optimization variable, and using a target quadratic programming solver to calculate the optimal joint velocity that minimizes the optimization objective function.

[0125] In the above embodiments, a first-order approximation is performed on each physical constraint condition, and the optimization variable (i.e., the joint velocity) is associated with the joint angle and joint acceleration based on the step size h (for example, the step size h based on time). The currently measured current joint angle q and the calculation result of the joint velocity are used as inputs, the joint velocity is used as the optimization variable, and a QP solver is used for optimization. Among them, the Euler approximation of the position (i.e., the joint angle) and the first derivative of the acceleration can be expressed as expressions containing the joint velocity.

[0126] In the above embodiments, the Jacobian matrix takes into account the motion effects of the left arm, right arm, and waist. The six-dimensional space velocity is used to describe the velocity and rotational velocity of the robot's end effector in space, for example, composed of linear velocity (corresponding to three dimensions) and angular velocity (corresponding to three dimensions). In the above optimization problem, the optimization objective function is the function to be minimized, used to determine the optimal joint velocity to reduce the pose error. The Quadratic Programming Solver (QP solver) is used to handle optimization problems with convex quadratic optimization and linear constraints.

[0127] The above embodiments utilize an extended Jacobian matrix, considering the motion effects of the left arm, right arm, and waist, to achieve precise control of the complex dynamics of the dual-arm robot. First, the Jacobian matrix calculated based on the current joint angles is used to convert the joint velocity into the space velocity of the robot's end, which helps to evaluate and optimize the pose error. On this basis, an optimization objective function centered on the pose task optimization term is constructed, and the changes in joint angles and accelerations are associated with the joint velocity through first-order approximation. Using the quadratic programming solver, according to the target physical constraint conditions, the optimal joint velocity that minimizes the optimization objective function is calculated to ensure that the pose of the robot's end effector precisely corresponds to the predetermined target. The above embodiments can significantly improve the accuracy and efficiency of the multi-joint dual-arm robot in complex operations involving waist motion. By accurately constructing the Jacobian matrix and optimizing the solution of the joint velocity, the robot can more precisely adjust its pose to adapt to the requirements of complex tasks while maintaining high efficiency and response speed. In addition, through strict optimization of the physical constraint conditions, the safety of the robot operation is enhanced, reducing the damage that may be caused by exceeding the mechanical limits, and is applicable to high-tech industrial applications that require high flexibility and precise control, such as precision assembly and complex path tracking control.

[0128] For a redundant-degree-of-freedom dual-arm robot with 16 degrees of freedom, there are infinite solutions for solving the inverse kinematics. Therefore, other tasks except the target pose can be described in the optimization objective function to have a globally unique optimal solution.

[0129] The null space projection of the Jacobian matrix utilizes the characteristics of the null space, such that the motion in the null space does not interfere with the primary task. For differential kinematics, the primary task is the pose task, and the null space can specify other tasks such as the reference joint angle and manipulability (which can be called secondary tasks). Taking the reference joint angle q 0 as an example of a secondary task, the joint velocity can be written as:

[0130]

[0131] where K p is the proportional control parameter, q0 is the reference joint angle. The above simple proportional controller can make each joint of the robot reach the target reference configuration.

[0132] Let N(q) be the null space of the Jacobian matrix, and one way to obtain it is like N = (I - J + J), at this time, the motion in the null space does not affect the primary task of the target pose, and is set as the second task priority. Then the complete optimization objective function including the primary task and the secondary task can be written in the following form:

[0133]

[0134] subject to constraints.

[0135] Among them, ∈ is the scalar weight coefficient of the second priority, and its value is, for example, 0.01, which can be selected according to needs.

[0136] Write the above formula in the QP optimization form, that is:

[0137]

[0138] Subject to constraints.

[0139] Among them, H = J(q) T WJ(q)+∈N T N is the Hessian matrix, g = -J T We - ∈*N T NK p (q 0 - q) is the gradient vector.

[0140] As described above, in some embodiments, for a serial robot with redundant degrees of freedom, the optimization objective function further includes a secondary task optimization term corresponding to a secondary task other than the pose task, so as to adopt the null space projection method to incorporate the secondary task other than the pose task into the optimization objective function to ensure the existence of a globally unique optimal solution.

[0141] In some embodiments, the method may further include: if within the target duration and within the target number of iterations, the pose error between the current pose calculated based on the current joint angles and the target pose is less than the target error, it is determined that the solution is successful, and the current joint angles after the iteration can be used for motion control of the serial robot; if within the target duration and within the target number of iterations, the pose error between the current pose calculated based on the current joint angles and the target pose is always not less than the target error, it is determined that the solution fails, and the optimal joint velocity calculated in the previous time is returned.

[0142] See Figure 2 , Figure 2 which is a schematic flow chart of a method for solving the inverse kinematics of the two arms of a serial robot (multi-threaded parallel) provided by an embodiment of the present application.

[0143] An embodiment of the present application also provides a method for solving the inverse kinematics of the two arms of a serial robot. The serial robot includes two arms and a waist. The method includes steps S201 to S202.

[0144] Step S201: Execute multiple threads in parallel. Each thread is used to execute any one of the above methods within a target duration until the pose error between the current pose calculated based on the current joint angles and the target pose is less than the target error or exceeds the target number of iterations. The case where the pose error is less than the target error is recognized as the successful solution of the thread, and the case where the target number of iterations is exceeded is recognized as the failed solution of the thread.

[0145] Step S202: In the case where any one of the threads successfully solves the thread within the target duration, it is recognized that the inverse kinematics solution is successful, and all threads end the solution process.

[0146] In some embodiments, the method further includes: in the case where all threads fail to solve the thread within the target duration, it is recognized that the inverse kinematics solution fails, and the solution process ends.

[0147] Among them, multi-threaded parallel computing speeds up the calculation speed and improves the calculation efficiency by simultaneously running multiple computing threads and utilizing the capabilities of a multi-core processor. In a multi-threaded computing environment, each thread attempts to solve the same problem. In the above embodiment, if a thread reaches the target within the target duration, it is considered that the inverse kinematics solution is successful, and all threads are controlled to end the calculation; if all threads are recognized as failed solutions of the thread, it is considered that the inverse kinematics solution fails.

[0148] The above embodiments adopt a multi-threaded parallel computing method to improve the solution success rate and solution time. The inverse kinematics solution process is distributed to multiple threads running in parallel. Each thread independently executes the same solution algorithm and uses different conditions or parameters during the calculation. For example, when the optimal joint speed obtained in the calculation is less than the target speed, different threads can specify different current joint angles and continue to execute the subsequent solution process. This parallel processing method can significantly improve the computing efficiency because multiple processors or cores work simultaneously, thus exploring more feasible solutions in a shorter time. When any thread reaches below the predetermined pose error threshold within the target time, it can be determined that the solution is successful, and the calculation processes of all threads are terminated in a timely manner, thus saving resources and time. By using multi-threaded parallel computing, the speed and success rate of robot inverse kinematics solution are significantly improved, which is applicable to industrial applications that require fast response and high-precision pose adjustment, such as automated assembly, high-speed robot operation, etc. Parallel computing also reduces the time waste caused by the extension of the iteration process, enables the robot system to operate more efficiently, thereby improving the overall productivity and reducing the operation cost. In addition, this strategy increases the robustness of the solution process. Even if some threads fail to succeed, the success of other threads can ensure the completion of the overall task.

[0149] See Figures 3 to 5 , Figure 3 is a schematic flow chart of double-arm inverse kinematics solution provided by an embodiment of the present application. Figure 4 is a schematic flow chart of double-arm inverse kinematics solution (jumping out of local optimum by randomization) provided by an embodiment of the present application. Figure 5 is a schematic flow chart of double-arm inverse kinematics solution (multi-threaded parallel) provided by an embodiment of the present application.

[0150] The embodiment of the present application abstractly describes the robot inverse kinematics solution algorithm based on global optimal control as a QP optimization problem at the speed level. At this time, the inverse kinematics solution is a local differential approximation. For the global IK problem (i.e., inverse kinematics) at the position (i.e., joint angle) level, the SQP (Sequential Quadratic Programming) idea can be adopted, and the basic algorithm flow is as Figure 3 shown.

[0151] Given the desired poses of the left and right arms (i.e., target poses) and Based on the current joint angle q cur the current pose X curl and X curr can be obtained. If the deviation X err between the desired pose and the current pose is less than the target threshold (i.e., target error) tol, such as 10e-6, then the current joint angle q cur is determined to be the solution of the inverse kinematics problem. If the pose error Xerr If it is greater than or equal to tol, then perform optimization to obtain the optimal joint velocity dq and then perform integration to update the current joint angle q cur , increment the iteration count iter by 1. When the convergence threshold condition is satisfied within the maximum iteration count iter max , the solution is successful; otherwise, the solution fails. In the case of a failed solution, the optimal solution can be returned, for example, the optimal joint velocity dq obtained in the most recent iteration.

[0152] The inverse kinematics solution problem for a dual-arm robot with a waist is a highly non-linear problem and is prone to falling into a local optimum. When it falls into a local optimum, the end positions of the two arms do not satisfy the desired end poses, but the joint velocities solved at this time are close to zero, that is, the updated joint angles hardly change, resulting in a failed solution. The embodiment of the present application proposes a local optimum random search algorithm based on the target duration. As Figure 4 shown, when it is determined that the local optimum has been reached, perform random jumping out and continue with the optimization solution. This method can greatly improve the success rate of the solution.

[0153] The embodiment of the present application can also use multi-threaded parallelism for solution calculation. If one thread successfully calculates the result, all threads end the calculation, and at this time, the inverse kinematics solution of the dual-arm robot with a waist is successful. This method can increase the success rate of the solution to nearly 100%. The schematic diagram of the calculation process is as Figure 5 shown.

[0154] The embodiment of the present application also provides a serial robot, which includes two arms, a waist, and a control module. The control module is used to execute any of the above methods.

[0155] In some embodiments, the two arms include, for example, a left arm and a right arm, each having 6 or 7 degrees of freedom.

[0156] In some embodiments, the waist has, for example, 2 degrees of freedom.

[0157] In some embodiments, the serial robot may further include one or more sensors. The one or more sensors may include, for example, one or more of an angle encoder, a torque sensor, a current sensor, and a six-axis force sensor.

[0158] The embodiment of the present application also provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements any of the above methods.

[0159] The embodiment of the present application also provides a computer program product, which includes a computer program. When the computer program is executed by a processor, it implements any of the above methods.

[0160] A computer program product may be a portable compact disc read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer. However, the computer program product of this application is not limited thereto, and the computer program product may adopt any combination of one or more computer-readable media.

[0161] An embodiment of this application also provides a computer device, which includes a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, the method described in any of the above items is implemented.

[0162] See Figure 6 , Figure 6 which is a structural block diagram of a computer device provided by an embodiment of this application.

[0163] The embodiment of this application does not limit the computer device, and it may be, for example, a local computer device, a cloud computer device, a distributed computer device, etc.

[0164] The computer device may include: a memory 110, a processor 120, and a communication interface 130. Among them, the memory 110, the processor 120, and the communication interface 130 are connected through an internal connection path.

[0165] The memory 110 is used to store a computer program. In some implementation manners, the computer program may include code for implementing the method of the embodiment of this application.

[0166] The processor 120 is used to execute the computer program stored in the memory 110 to control the communication interface 130 to receive input data and information and output operation result data, etc. In some implementation manners, when implementing the solution of the embodiment of this application through software or firmware, the computer program for implementing the solution of the embodiment of this application may be stored in the processor 120 and executed by the processor 120.

[0167] The memory 110 can be a volatile memory, a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM). It should be noted that the memory 110 described herein is intended to include, but is not limited to, any of these and other suitable types of memories. As an example, the memory 110 includes a random access memory (RAM), a cache memory, and a read-only memory (ROM). Among them, the memory 110 stores a computer program, and the computer program can be executed by the processor 120, so that the processor 120 implements the steps of any of the above methods.

[0168] The processor 120 can be a central processing unit (CPU), and the processor 120 can also be other general-purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor, or, the processor 120 can also be any conventional processor, etc.

[0169] In the implementation process, the steps of the above method can be completed by the integrated logic circuit in the hardware of the processor 120 or the instructions in the form of software. The method disclosed in combination with the embodiments of the present application can be directly embodied as being executed and completed by the hardware processor, or executed and completed by the combination of the hardware and software modules in the processor 120. The software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. This storage medium is located in the memory 110, and the processor 120 reads the information in the memory 110 and combines its hardware to complete the steps of the above method. To avoid repetition, it will not be described in detail here.

[0170] In some implementations, in addition to the hardware units described above, a computer device may also include software modules. Among them, software modules may be, for example, an operating system, a Basic Input Output System (BIOS), application software, etc.

[0171] The operating system is used to manage the hardware and / or software resources of a computer device and is the core and foundation of the computer device. The operating system needs to handle basic tasks such as managing and configuring memory, determining the priority order of system resource supply and demand, controlling input and output devices, operating the network, and managing the file system. To facilitate user operation, most operating systems provide a user interface for the user to interact with the system.

[0172] The BIOS is used to perform hardware initialization during the power-on boot phase and provide runtime services for the operating system and application programs. In some implementations, the BIOS can also monitor the temperature of the display processor and perform functions such as adjusting the temperature protection strategy.

[0173] Application software, also known as an application program, can be understood as software written for a specific application purpose of users and is one of the main classifications of computer software. For example, application software can be a program for achieving purposes such as power control and temperature management.

[0174] It can be understood that the specific examples in this specification are only to help those skilled in the art better understand the implementation manners of the present application, rather than limiting the protection scope of the present application.

[0175] It can be understood that in various implementation manners of this specification, the magnitudes of the sequence numbers of the processes do not mean the order of execution. The order of execution of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the present application.

[0176] It can be understood that the various implementation manners described in this specification can be implemented alone or in combination, and the present application does not limit this.

[0177] Unless otherwise specified, all technical and scientific terms used in this specification have the same meaning as commonly understood by those skilled in the technical field of this specification. The terms used in this specification are only for the purpose of describing specific implementation manners and are not intended to limit the scope of this specification. The term "and / or" used in this specification includes any and all combinations of one or more of the related listed items. The singular forms of "a", "above", and "the" used in this specification and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise.

[0178] Those of ordinary skill in the art can realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of this specification.

[0179] Those skilled in the art can clearly understand that for the convenience and conciseness of description, the specific working processes of the above-described embodiments can refer to the corresponding processes in other embodiments and will not be elaborated herein.

[0180] In the several embodiments provided in this specification, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed couplings or direct couplings or communication connections to each other can be through some interfaces. The indirect couplings or communication connections of devices or units can be in electrical, mechanical, or other forms.

[0181] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they can be located in one place or distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the technical solution of this application.

[0182] In addition, in each embodiment of this specification, the functional units can be integrated into one processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit.

[0183] If a function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this specification, in essence, or the part that contributes to the prior art or the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of this specification. The aforementioned storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memories (ROMs), random access memories (RAMs), magnetic disks, or optical discs that can store program codes.

[0184] The above are only the specific implementation manners of this specification, but the protection scope of this application is not limited thereto. Any person skilled in the art within the technical scope disclosed in this specification can easily think of changes or substitutions, which should all be covered by the protection scope of this specification. Therefore, the protection scope of this application should be subject to the protection scope of the claims.

Claims

1. A method for solving the inverse kinematics of a dual-arm serial robot, characterized in that: The serial robot comprises two arms and a waist, and the method comprises: According to the current joint angles of the serial robot, forward kinematics calculation is performed to obtain the current position and posture of the ends of the two arms; When the posture error between the current posture and the target posture is not less than the target error, the current posture and the target posture are used to perform dual-arm differential inverse kinematics calculation to obtain the joint velocity, and based on the target physical constraints, the optimization solution is performed to obtain the optimal joint velocity; wherein, the corresponding Jacobian matrix of the dual-arm differential inverse kinematics calculation contains the waist motion term; Integrate the optimal joint velocity to the current joint angle to update the current joint angle until the posture error between the current posture calculated based on the current joint angle and the target posture is less than the target error or exceeds the target number of iterations; Among them, the optimization solution is performed based on the target physical constraint condition to obtain the optimal joint speed, including: under the condition of satisfying the target physical constraint condition, taking the joint speed as the optimization variable of the optimization objective function, calculating the optimal joint speed that minimizes the optimization objective function, and the optimization objective function includes the posture task optimization items corresponding to the posture task; the target physical constraint condition includes one or more of the joint speed constraint condition, the joint angle constraint condition and the joint acceleration constraint condition.

2. The method for solving the inverse kinematics of the dual-arms of the serial robot according to claim 1, characterized in that: Integrating the optimal joint velocity into the current joint angle to update the current joint angle includes: When the optimal joint speed is greater than the target speed, the optimal joint speed is integrated into the current joint angle to update the current joint angle; The method further comprises: When the optimal joint velocity is not greater than the target velocity, a current joint angle satisfying the target physical constraint condition is specified so as to perform forward kinematics calculation based on the specified current joint angle.

3. The method for solving the inverse kinematics of the dual-arms of the serial robot according to claim 1 or 2, characterized in that: The expression of the corresponding Jacobian matrix of the dual-arm differential inverse kinematics calculation is: Where q is the joint angle, J(q left ) and J(q right ) are the left arm movement item and the right arm movement item respectively, and These are the corresponding waist movement items for the left arm and the right arm respectively.

4. The method for solving the inverse kinematics of the dual-arms of the serial robot according to claim 3, characterized in that: The pose task optimization item is based on and e determined; in, V is the six-dimensional space speed, is the joint velocity, and e is the posture error.

5. The method for solving the inverse kinematics of the dual-arms of the serial robot according to claim 4, characterized in that: The target physical constraints include joint velocity constraints, joint angle constraints and joint acceleration constraints; The method of calculating the optimal joint speed that minimizes the optimization objective function by taking the joint speed as the optimization variable of the optimization objective function under the condition that the target physical constraint condition is satisfied includes: Performing a first-order approximation on the target physical constraint condition, thereby expressing the joint angle and joint acceleration in the optimization objective function into an expression containing joint velocity based on the step size; The joint velocity and the current joint angle actually measured are used as input, the joint velocity is used as the optimization variable, and the target quadratic programming solver is used to calculate the optimal joint velocity that minimizes the optimization objective function.

6. The method for solving the inverse kinematics of the dual-arms of the serial robot according to claim 4, characterized in that: For a serial robot with redundant degrees of freedom, the optimization objective function also includes secondary task optimization items corresponding to secondary tasks other than the posture task, so that the null space projection method is adopted to incorporate the secondary tasks other than the posture task into the optimization objective function to ensure the existence of a globally unique optimal solution.

7. A method for solving the inverse kinematics of a dual-arm serial robot, characterized in that: The serial robot comprises two arms and a waist, and the method comprises: Execute multiple threads in parallel, each thread is used to execute the method described in any one of claims 1 to 6 within a target duration, until the posture error between the current posture calculated based on the current joint angle and the target posture is less than the target error or exceeds the target number of iterations, and the thread solution is deemed to be successful when the posture error is less than the target error, and the thread solution is deemed to have failed when the target number of iterations is exceeded; When any thread succeeds in solving the problem within the target duration, the inverse kinematics solution is deemed to be successful, and all threads terminate the solving process.

8. A serial robot, characterized in that: The serial robot comprises two arms, a waist and a control module, and the control module is used to execute the method according to any one of claims 1 to 6 or the method according to claim 7.

9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 6 or the method according to claim 7 is implemented.

10. A computer device, characterized in that: The computer device comprises a memory and a processor, the memory stores a computer program, and the processor implements the method according to any one of claims 1 to 6 or the method according to claim 7 when executing the computer program.

Citation Information

Patent Citations

  • Manipulator servo control method, system and device based on screw theory

    CN109483529A

  • Redundant double-mechanical-arm mutual obstacle avoidance method and device and storage medium

    CN116728401A

  • Motion control method, robot controller and computer readable storage medium

    US20220324106A1