A method and apparatus for inverse kinematics control of a seven-axis robotic arm

CN122938860APending Publication Date: 2026-10-20HARBIN SIZHERUI INTELLIGENT MEDICAL EQUIP CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611442747.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-09-17
Publication Date
2026-10-20

AI Technical Summary

Benefits of technology

[0010]本申请实施例提供了一种七轴机械臂的逆解控制方法,七轴机械臂包括依次连接的一个移动副关节和六个转动副关节,六个转动副关节中包含第一转动副关节组,第一转动副关节组由串联布置且旋转轴线均垂直于水平面且相互平行的两个转动副关节构成,方法包括:获取七轴机械臂的目标末端位姿数据,并基于目标末端位姿数据,确定第一转动副关节组的角度和遍历范围;在角度和遍历范围内,依次选取当前角度和值,并根据当前角度和值以及目标末端位姿数据,确定移动副关节的候选关节位移量以及六个转动副关节各自的候选关节角度值;基于各角度和值分别对应的各组候选关节位移量和候选关节角度值,构建候选解集;根据预设选解约束条件,从候选解集中选取一组最优关节运动参数,并根据最优关节运动参数生成各关节的驱动指令,以控制机械臂运动至目标末端位姿。本申请的技术方案,通过采用遍历第一转动副关节组的角度和并依次逆向解算各关节候选运动参数的方式,能够获得全部候选逆解并构建候选解集,再结合预设选解约束条件从候选解集中筛选出最优关节运动参数并生成驱动指令,解决了数值迭代法计算耗时长且无法获得全部候选解,难以对整体姿态进行多解筛选和优化约束的问题,一方面,无需反复迭代逼近,直接逆向解算各关节候选运动参数,有效缩短计算耗时,更好满足实时控制的响应速度要求;另一方面,能够显式获得全部候选逆解并进行多解筛选和优化约束,提升了机械臂逆解计算效率和实时控制响应速度。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure FT_1
    Figure FT_1
  • Figure FT_2
    Figure FT_2
  • Figure FT_3
    Figure FT_3
Patent Text Reader

Abstract

This application provides an inverse kinematics control method and apparatus for a seven-axis robotic arm, relating to the field of robot motion control technology. The method includes: acquiring target end-effector pose data of the seven-axis robotic arm, and determining the angle and traversal range of the first revolute joint group based on the target end-effector pose data; within the angle and traversal range, determining the candidate joint displacement of the prismatic joint and the candidate joint angle values ​​of each of the six revolute joints according to the current angle and value and the target end-effector pose data, thereby constructing a candidate solution set; selecting a set of optimal joint motion parameters from the candidate solution set according to preset solution selection constraints, and generating drive commands for each joint according to the optimal joint motion parameters to control the robotic arm to move to the target end-effector pose; obtaining all candidate inverse kinematics by traversing angles and performing inverse kinematics and selecting the optimal drive parameters, thereby improving the efficiency of inverse kinematics calculation and the real-time performance of control.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of robot motion control technology, and in particular to a reverse engineering control method and apparatus for a seven-axis robotic arm. Background Technology

[0002] Currently, with the rapid development of industrial automation and intelligent manufacturing technologies, multi-axis robotic arms are increasingly widely used in complex work scenarios. Among them, redundant robotic arms with seven or more degrees of freedom have received widespread attention due to their higher flexibility and obstacle avoidance capabilities, but the complexity of their inverse kinematics calculation is also becoming increasingly prominent.

[0003] Currently, the numerical iterative method is commonly used to solve the inverse kinematics of multi-axis robotic arms. This method acquires the current pose of the robotic arm in real time and iterates repeatedly to approximate the target pose, eventually obtaining a set of joint driving parameters and driving each joint to move to the target pose.

[0004] The main drawbacks of the above technical solutions are: the numerical iteration method is time-consuming and cannot meet the response speed requirements of real-time control scenarios; at the same time, existing methods can usually only find one feasible solution and cannot explicitly obtain all candidate joint motion parameters, which makes it impossible to perform multi-solution screening and optimization constraints on the overall posture of the robotic arm. Summary of the Invention

[0005] This application provides an inverse kinematics control method and apparatus for a seven-axis robotic arm, which obtains all candidate inverse kinematics solutions and selects the optimal driving parameters by traversing angles and performing inverse kinematics calculations. On the one hand, it eliminates the need for repeated iterative approximation and directly performs inverse kinematics calculations on the candidate motion parameters of each joint, effectively shortening the calculation time and better meeting the response speed requirements of real-time control. On the other hand, it can explicitly obtain all candidate inverse kinematics solutions and perform multi-solution screening and optimization constraints, thereby improving control performance and enhancing the inverse kinematics calculation efficiency and real-time control of the robotic arm.

[0006] In a first aspect, embodiments of this application provide a reverse engineering control method for a seven-axis robotic arm. The seven-axis robotic arm includes a prismatic joint and six rotary joints connected in sequence. The six rotary joints include a first rotary joint group, which consists of two rotary joints arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other. The method includes: Acquire the target end-effector pose data of the seven-axis robotic arm, and determine the angle and traversal range of the first rotary joint group based on the target end-effector pose data; Within the angle and traversal range, the current angle and value are selected sequentially, and the candidate joint displacement of the prismatic joint and the candidate joint angle value of each of the six revolute joints are determined based on the current angle and value and the target end pose data. Based on the candidate joint displacement and candidate joint angle values ​​corresponding to each angle and value, a candidate solution set is constructed. According to the preset solution selection constraints, a set of optimal joint motion parameters are selected from the candidate solution set, and driving commands for each joint are generated according to the optimal joint motion parameters to control the robotic arm to move to the target end pose.

[0007] Secondly, embodiments of this application also provide a reverse engineering control device for a seven-axis robotic arm. The seven-axis robotic arm includes a prismatic joint and six rotary joints connected in sequence. The six rotary joints include a first rotary joint group, which consists of two rotary joints arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other. The device includes: Angle and range determination module is used to acquire the target end pose data of the seven-axis robotic arm, and determine the angle and traversal range of the first rotary joint group based on the target end pose data; The candidate angle determination module is used to sequentially select the current angle and value within the angle and traversal range, and determine the candidate joint displacement of the prismatic joint and the candidate joint angle value of each of the six revolute joints based on the current angle and value and the target end pose data. The candidate solution set construction module is used to construct a candidate solution set based on the candidate joint displacement and candidate joint angle values ​​corresponding to each group of angles and values. The motion parameter selection module is used to select a set of optimal joint motion parameters from the candidate solution set according to preset selection constraint conditions, and generate driving commands for each joint according to the optimal joint motion parameters, so as to control the robotic arm to move to the target end pose.

[0008] Thirdly, embodiments of this application also provide an electronic device, which includes: One or more processors; Storage device for storing one or more programs. When one or more programs are executed by one or more processors, the one or more processors implement the inverse kinematic control method of a seven-axis robotic arm as described in any of the embodiments of this application.

[0009] Fourthly, embodiments of this application also provide a storage medium containing computer-executable instructions, which, when executed by a computer processor, are used to perform the inverse kinematic control method of a seven-axis robotic arm as described in any of the embodiments of this application.

[0010] This application provides an inverse kinematics control method for a seven-axis robotic arm. The seven-axis robotic arm includes a prismatic joint and six rotary joints connected in sequence. The six rotary joints include a first rotary joint group, which consists of two rotary joints arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other. The method includes: acquiring the target end-effector pose data of the seven-axis robotic arm, and determining the angle and traversal range of the first rotary joint group based on the target end-effector pose data; within the angle and traversal range, sequentially selecting the current angle and value, and determining the candidate joint displacement of the prismatic joint and the candidate joint angle value of each of the six rotary joints based on the current angle and value and the target end-effector pose data; constructing a candidate solution set based on the candidate joint displacement and candidate joint angle value corresponding to each angle and value; selecting a set of optimal joint motion parameters from the candidate solution set according to preset solution selection constraints, and generating drive commands for each joint based on the optimal joint motion parameters to control the robotic arm to move to the target end-effector pose. The technical solution of this application, by traversing the angles of the first rotary joint group and sequentially inversely calculating the candidate motion parameters of each joint, can obtain all candidate inverse solutions and construct a candidate solution set. Then, by combining preset selection constraints, the optimal joint motion parameters are selected from the candidate solution set and driving commands are generated. This solves the problems of long calculation time and inability to obtain all candidate solutions by numerical iteration methods, making it difficult to perform multi-solution screening and optimization constraints on the overall posture. On the one hand, it eliminates the need for repeated iterative approximation and directly inversely calculates the candidate motion parameters of each joint, effectively shortening the calculation time and better meeting the response speed requirements of real-time control. On the other hand, it can explicitly obtain all candidate inverse solutions and perform multi-solution screening and optimization constraints, improving the inverse solution calculation efficiency of the robotic arm and the real-time control response speed. Attached Figure Description

[0011] To more clearly illustrate the technical solutions of the exemplary embodiments of this application, the accompanying drawings used in the described embodiments are briefly introduced below. Obviously, the accompanying drawings described are only a portion of the embodiments to be described in this application, and not all of them. For those skilled in the art, other drawings can be obtained from these drawings without any creative effort.

[0012] Figure 1 This is a schematic diagram of the seven-axis robotic arm involved in this embodiment; Figure 2 A schematic flowchart illustrating the inverse kinematics control method for a seven-axis robotic arm provided in an embodiment of this application; Figure 3 A schematic flowchart illustrating another inverse kinematics control method for a seven-axis robotic arm provided in an embodiment of this application; Figure 4A schematic diagram of the reverse engineering control device for a seven-axis robotic arm provided in an embodiment of the present invention; Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0013] The present application will now be described in further detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the application and not intended to limit it. Furthermore, it should be noted that, for ease of description, only the parts relevant to the present application are shown in the drawings, not the entire structure.

[0014] Before introducing the technical solution provided in the embodiments of this application, the application scenarios of the solution can be described first. This embodiment is applicable to various scenarios that require real-time motion control and trajectory planning for a seven-axis robotic arm. Currently, although numerical iterative methods are widely used in solving the inverse kinematics of multi-axis robotic arms, traditional methods have obvious limitations. In practical applications, due to the characteristics of a seven-axis robotic arm, such as redundant degrees of freedom, complex configuration, and strong multiple solutions for inverse kinematics, and the need for the control process to take into account multiple motion constraints such as real-time response, trajectory planning, and obstacle avoidance, traditional numerical iterative methods are difficult to obtain all candidate inverse kinematics solutions at the analytical level. This easily leads to long computation time and difficulty in selecting and optimizing the overall posture of the robotic arm, thereby affecting the flexibility of trajectory planning and control accuracy. Therefore, there is an urgent need for a control method that can obtain all candidate inverse kinematics solutions for this configuration and can combine the selection constraint conditions to select the optimal posture, so as to improve the inverse kinematics calculation efficiency and real-time control response speed.

[0015] Example 1 The seven-axis robotic arm involved in this embodiment includes a prismatic joint and six rotary joints connected in sequence. The six rotary joints include a first rotary joint group, which consists of two rotary joints arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other.

[0016] The seven-axis robotic arm includes one prismatic joint and six revolute joints connected in sequence. The prismatic joint is a joint that is connected by sliding joints and can generate linear displacement along its axis of motion; the revolute joint is a joint that is connected by revolute joints and can generate rotation angle around its axis of rotation.

[0017] Figure 1 This is a schematic diagram of the seven-axis robotic arm involved in this embodiment. Figure 1 As shown, the seven-axis robotic arm includes one prismatic joint and six rotary joints connected in sequence. The prismatic joint is also known as a slide joint (i.e., a slide joint). Figure 1The first revolute joint (q0) can move back and forth along the X-axis of the base coordinate system to generate linear displacement. The second revolute joint consists of six joints, q1 to q6. Joints q1 and q2 form the first revolute joint group, arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other. The remaining revolute joints include q3, q4, q5, and q6. The rotation axes of joints q3, q4, q5, and q6 are all parallel to the horizontal plane. The positive Z-axis of the coordinate system for joints q3 and q4 points to the left side of the robotic arm, the positive Z-axis of the coordinate system for joint q5 points to the front of the robotic arm, and the positive Z-axis of the coordinate system for joint q6 points to the right side of the robotic arm.

[0018] Figure 2 This is a flowchart illustrating a reverse engineering control method for a seven-axis robotic arm provided in an embodiment of this application. This embodiment is applicable to various situations where real-time motion control and trajectory planning of a seven-axis robotic arm can be performed. The method can be executed by a reverse engineering control device for a seven-axis robotic arm, which can be implemented in the form of software and / or hardware. The hardware can be a controller, such as a mobile terminal, a PC, or a server.

[0019] like Figure 2 As shown, the inverse kinematics control method for a seven-axis robotic arm provided in this embodiment of the invention includes the following steps: S110. Obtain the target end-effector pose data of the seven-axis robotic arm, and determine the angle and traversal range of the first rotary joint group based on the target end-effector pose data.

[0020] Among them, the target end effector pose data refers to the target position information and target attitude information of the robotic arm end effector in the base coordinate system, which is used as the input target for inverse kinematics control.

[0021] Among them, angle and traversal range refer to the range of values ​​of the sum of joint angles of the two rotary joints in the first rotary joint group. Within this range, different current angles and values ​​are selected sequentially with a set step size.

[0022] Specifically, for a given target end-effector pose data, the target position and orientation information of the end effector in the base coordinate system are first extracted. Based on this, according to the desired pose corresponding to the target end-effector pose data, and combined with the structural constraints of the seven-axis robotic arm, a joint angle and traversal range suitable for solving the inverse solution are determined. This angle and traversal range are a limitation on the range of values ​​of the sum of the joint angles of the two revolute joints in the first revolute joint group. Within this range, different current angles and values ​​are selected sequentially according to a set step size for subsequent traversal calculations. The basis for determining this angle and traversal range is that it must cover the angles and values ​​corresponding to all feasible solutions that enable the robotic arm end-effector to reach the target end-effector pose. At the same time, combined with the joint limits and motion space constraints of the robotic arm, the search range is limited to a reasonable range.

[0023] In this embodiment, optionally, the specific implementation of determining the angle and traversal range of the first revolute joint group based on the target end-effector pose data may include: parsing the end-effector position coordinates in the target end-effector pose data to determine the reference working plane of the robotic arm; and setting upper and lower limits for the angle and traversal range within the reference working plane. By parsing the end-effector position coordinates to determine the reference working plane, the inverse kinematics search problem in three-dimensional space can be reduced to angle traversal within a plane, effectively narrowing the search range. Simultaneously, by combining the joint constraints and motion space constraints of the robotic arm to set the upper and lower limits for the angle and traversal range, it is ensured that the angle and traversal range can cover all feasible solutions that could allow the robotic arm end-effector to reach the target pose, while avoiding computational redundancy due to an excessively large traversal range. This significantly improves the real-time performance and computational resource utilization of the inverse kinematics calculation while ensuring the completeness of the inverse kinematics solution.

[0024] S120. Within the angle and traversal range, select the current angle and value in sequence, and determine the candidate joint displacement of the prismatic joint and the candidate joint angle value of each of the six revolute joints based on the current angle and value and the target end pose data.

[0025] The current angle sum refers to the current value of the sum of the joint angles of the two rotary joints in the first rotary joint group selected sequentially according to the set step size within the angle sum traversal range.

[0026] Here, candidate joint displacement refers to a possible linear displacement of the prismatic joint obtained through inverse kinematics calculation for the current angle and value. Candidate joint angle value refers to a possible angle value for each revolute joint obtained through inverse kinematics calculation for the current angle and value.

[0027] Specifically, for a predetermined angle and traversal range, different current angles and values ​​are selected sequentially within the value range according to a set step size. After selecting a current angle and value, this current angle and value are combined with the attitude matrix elements and position matrix elements in the target end effector pose data to inversely calculate the candidate joint angle values ​​of each rotary joint after the first rotary joint group. This process includes determining the angle and value of the second rotary joint group composed of the third and fourth rotary joints, then determining the candidate joint angle values ​​of the fifth and sixth rotary joints and the fourth rotary joint based on this angle and value, then determining the candidate joint angle values ​​of the two rotary joints in the second rotary joint group through difference calculation, and then determining the candidate joint angle values ​​of the two rotary joints in the first rotary joint group. Finally, based on the determined candidate joint angle values ​​of all rotary joints and the current angle and value, combined with the position matrix elements in the target end effector pose data, the candidate joint displacement of the prismatic joint is determined. This yields a complete set of candidate inverse solutions corresponding to the current angle and value, including one candidate joint displacement of the prismatic joint and one candidate joint angle value of each of the six rotary joints.

[0028] S130. Based on the candidate joint displacement and candidate joint angle values ​​corresponding to each angle and value, construct a candidate solution set.

[0029] The candidate solution set refers to the set of candidate joint displacements and candidate joint angle values ​​calculated for each current angle and value within the traversal range.

[0030] Specifically, for each current angle and value within the traversal range, a complete set of candidate inverse solutions can be obtained through inverse solution calculation. This set of candidate inverse solutions includes a candidate joint displacement of the prismatic joint and a candidate joint angle value of each of the six revolute joints. The candidate joint displacements and candidate joint angle values ​​calculated for each current angle and value are collected and summarized. Each set of candidate joint displacements and candidate joint angle values ​​is associated and stored with the current angle and value corresponding to that set as an identifier, thereby constructing a candidate solution set containing multiple sets of candidate inverse solutions.

[0031] S140. Based on the preset solution selection constraints, select a set of optimal joint motion parameters from the candidate solution set, and generate drive commands for each joint based on the optimal joint motion parameters to control the robotic arm to move to the target end pose.

[0032] Among them, the preset solution selection constraint conditions refer to the evaluation criteria set in advance for selecting the optimal inverse solution from the candidate solution set. The evaluation criteria are determined based on the actual motion requirements of the robotic arm.

[0033] Among them, the optimal joint motion parameters refer to a set of optimal candidate joint displacements and candidate joint angles selected from the candidate solution set according to the preset solution selection constraints.

[0034] Specifically, after constructing the candidate solution set, the candidate joint displacements and candidate joint angles in the candidate solution set can be evaluated and screened according to the preset selection constraints. Based on the preset selection constraints, a set of optimal candidate joint displacements and candidate joint angles are selected from the candidate solution set as the optimal joint motion parameters. This set of optimal joint motion parameters is the optimal inverse solution that satisfies the target end pose requirements and meets the actual motion requirements.

[0035] After determining the optimal joint motion parameters, these parameters are converted into corresponding drive commands according to the type of each joint. For prismatic joints, the optimal joint displacement is converted into a displacement control signal to drive the prismatic joint. For each revolute joint, the optimal joint angle value is converted into an angle control signal to drive the corresponding revolute joint. These drive commands are sent to the drive devices of each joint to drive each joint to move according to the optimal joint motion parameters, ultimately causing the end effector of the entire robotic arm to move from the current pose to the target end effector pose.

[0036] In this embodiment, optionally, the specific implementation of selecting a set of optimal joint motion parameters from the candidate solution set may include the following steps: S1401. Determine the evaluation index value corresponding to the motion parameters of each group of candidate joints using at least one of the following methods: (1) Based on the first deviation between the candidate joint angle value and the corresponding current actual angle value in each group of candidate joint motion parameters, and the second deviation between the candidate joint displacement and the current actual displacement in each group of candidate joint motion parameters, determine the evaluation index value corresponding to each group of candidate joint motion parameters.

[0037] The evaluation index values ​​are numerical values ​​used to quantitatively assess the quality of each group of candidate joint motion parameters in the candidate solution set. The current actual angle value is the actual angular position of each rotary joint at the current moment. The first deviation is the degree of difference between the candidate joint angle value and the corresponding current actual angle value in each group of candidate joint motion parameters. The current actual displacement is the actual linear displacement position of the prismatic joint at the current moment. The second deviation is the degree of difference between the candidate joint displacement and the current actual displacement in each group of candidate joint motion parameters.

[0038] Specifically, for each set of candidate joint motion parameters in the candidate solution set, the difference between the candidate joint angle value of each rotary joint and the current actual angle value corresponding to each rotary joint is calculated to obtain the first deviation for each rotary joint. Simultaneously, the difference between the candidate joint displacement of the prismatic joint and the current actual displacement of the prismatic joint is calculated to obtain the second deviation. After obtaining the first and second deviations, they are weighted and summed according to their respective weighting coefficients. The result of the weighted sum is used as the evaluation index value corresponding to the set of candidate joint motion parameters. This evaluation index value characterizes the overall deviation of the robotic arm configuration corresponding to the set of candidate joint motion parameters from the current actual configuration. The evaluation index value for each set of candidate joint motion parameters in the candidate solution set is determined in the above manner.

[0039] (2) Based on the Jacobian matrix corresponding to the motion parameters of each group of candidate joints, determine the evaluation index value corresponding to the motion parameters of each group of candidate joints.

[0040] Specifically, for each set of candidate joint motion parameters in the candidate solution set, a corresponding Jacobian matrix is ​​constructed based on the candidate joint angle values ​​and candidate joint displacements in that set of candidate joint motion parameters. This Jacobian matrix is ​​used to describe the linear mapping relationship between the end-effector velocity and the velocity of each joint. After constructing the Jacobian matrix, a condition number is calculated on the Jacobian matrix, and the calculated condition number is used as the evaluation index value corresponding to the set of candidate joint motion parameters. This evaluation index value is used to characterize the degree to which the configuration of the robot arm corresponding to the set of candidate joint motion parameters is close to the singular pose. The smaller the condition number, the further the configuration is from the singular pose, and the better the motion flexibility of the robot arm under this configuration. The evaluation index value corresponding to each set of candidate joint motion parameters in the candidate solution set is determined in the above manner.

[0041] (3) Based on the extension index value corresponding to the motion parameters of each group of candidate joints, determine the evaluation index value corresponding to the motion parameters of each group of candidate joints.

[0042] The extension index is a quantitative indicator used to characterize the uniformity of the spatial distribution among the links of a seven-axis robotic arm. Specifically, it can be determined as follows: For each set of candidate joint motion parameters in the candidate solution set, based on the angle and displacement values ​​of each candidate joint in that set, determine the spatial position and direction vector of each link in the base coordinate system; on this basis, calculate the spatial angles between adjacent links of the robotic arm and the distance distribution between the endpoints of each link; then, based on the deviation between each spatial angle and the preset ideal uniform distribution angle, and the deviation between the distance distribution of each link endpoint and the preset ideal uniform distribution distance, comprehensively calculate the extension index value corresponding to that set of candidate joint motion parameters. The larger the index value, the more uniform and extended the links are in space, and the more natural the robotic arm's posture.

[0043] Specifically, for each set of candidate joint motion parameters in the candidate solution set, the spatial distribution of each link of the robotic arm is calculated based on the angle and displacement values ​​of each candidate joint in the set of candidate joint motion parameters. The extension index value, which characterizes the uniformity of spatial distribution among the links, is calculated based on the spatial position and direction of each link. The calculated extension index value is used as the evaluation index value corresponding to the set of candidate joint motion parameters. The evaluation index value corresponding to each set of candidate joint motion parameters in the candidate solution set is determined in the above manner.

[0044] S1402. Based on the evaluation index values ​​and the constraints of the selected solution, select a set of optimal joint motion parameters from the candidate solution set.

[0045] The preset selection constraints are as follows: when the evaluation index value includes the first deviation and the second deviation, the comprehensive deviation value is obtained by weighted summation according to the weight coefficients corresponding to the first deviation and the second deviation, and the set of candidate joint motion parameters with the smallest comprehensive deviation value is selected; when the evaluation index value includes the number of conditions, the set of candidate joint motion parameters with the smallest number of conditions is selected; when the evaluation index value includes the extension index value, the set of candidate joint motion parameters with the optimal extension index value is selected.

[0046] After obtaining the evaluation index values ​​of each group of candidate joint motion parameters in the candidate solution set, an optimal set of joint motion parameters can be selected from the candidate solution set according to the selection constraint conditions. The specific content of the selection constraint conditions depends on the type of evaluation index value used: when the evaluation index value is obtained based on the weighted sum of the first and second deviations, the selection constraint condition is to select the group of candidate joint motion parameters with the smallest comprehensive deviation value after weighted summation. This is because the smaller the comprehensive deviation value, the smaller the adjustment range of the robotic arm configuration corresponding to the group of candidate joint motion parameters compared to the current actual configuration, and the shorter the movement path. When the evaluation index value is a Jacobian matrix... When considering the number of conditions, the constraint to be selected is the set of candidate joint motion parameters with the smallest number of conditions. This is because a smaller number of conditions indicates that the robotic arm configuration corresponding to the set of candidate joint motion parameters is further away from the singular pose, resulting in higher motion flexibility and control accuracy during subsequent movements. When the evaluation index is the extension index, the constraint to be selected is the set of candidate joint motion parameters with the optimal extension index. This is because the optimal extension index indicates that the links of the robotic arm corresponding to the set of candidate joint motion parameters are most evenly and smoothly distributed in space, resulting in the most natural posture of the robotic arm and effectively preventing collisions with itself.

[0047] This application provides an inverse kinematics control method for a seven-axis robotic arm. The seven-axis robotic arm includes a prismatic joint and six rotary joints connected in sequence. The six rotary joints include a first rotary joint group, which consists of two rotary joints arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other. The method includes: acquiring the target end-effector pose data of the seven-axis robotic arm, and determining the angle and traversal range of the first rotary joint group based on the target end-effector pose data; within the angle and traversal range, sequentially selecting the current angle and value, and determining the candidate joint displacement of the prismatic joint and the candidate joint angle value of each of the six rotary joints based on the current angle and value and the target end-effector pose data; constructing a candidate solution set based on the candidate joint displacement and candidate joint angle value corresponding to each angle and value; selecting a set of optimal joint motion parameters from the candidate solution set according to preset solution selection constraints, and generating drive commands for each joint based on the optimal joint motion parameters to control the robotic arm to move to the target end-effector pose. The technical solution of this application, by traversing the angles of the first rotary joint group and sequentially inversely calculating the candidate motion parameters of each joint, can obtain all candidate inverse solutions and construct a candidate solution set. Then, by combining preset selection constraints, the optimal joint motion parameters are selected from the candidate solution set and driving commands are generated. This solves the problems of long calculation time and inability to obtain all candidate solutions by numerical iteration methods, making it difficult to perform multi-solution screening and optimization constraints on the overall posture. On the one hand, it eliminates the need for repeated iterative approximation and directly inversely calculates the candidate motion parameters of each joint, effectively shortening the calculation time and better meeting the response speed requirements of real-time control. On the other hand, it can explicitly obtain all candidate inverse solutions and perform multi-solution screening and optimization constraints, improving the inverse solution calculation efficiency of the robotic arm and the real-time control response speed.

[0048] Example 2 Figure 3 This is a schematic diagram of a reverse engineering control method for a seven-axis robotic arm provided in this application embodiment. Based on the foregoing embodiments, this embodiment will provide a more detailed description of step S120. For specific implementation details, please refer to the technical solution of this embodiment. Technical terms that are the same as or corresponding to those in the above embodiments will not be repeated here.

[0049] like Figure 3 As shown, the method specifically includes the following steps: S210. Obtain the target end-effector pose data of the seven-axis robotic arm, and determine the angle and traversal range of the first rotary joint group based on the target end-effector pose data.

[0050] S220. Based on the pre-established DH parameter model, obtain the fixed structure parameters of each rotary joint and prismatic joint.

[0051] Among them, the DH parameter model is a parametric kinematic model used to describe the spatial position and attitude relationship between the links of the robotic arm.

[0052] Fixed structural parameters refer to the inherent structural dimensional parameters of each rotary and prismatic joint of the robotic arm, which do not change with the joint's motion state. Fixed structural parameters include link offset parameters, link length parameters, and link torsion angle parameters. The link offset parameter is the distance parameter by which the coordinate system of the previous joint is translated to the current joint's coordinate system along the axis of the previous joint; the link length parameter is the distance parameter by which the coordinate system of the previous joint is translated to the current joint's coordinate system along the perpendicular direction of the current joint's axis; and the link torsion angle parameter is the attitude angle parameter by which the coordinate system of the previous joint is rotated to the current joint's coordinate system about the perpendicular direction of the current joint's axis.

[0053] Specifically, the DH parameter model is a pre-established parametric kinematic model used to describe the spatial position and attitude relationships between the links of the robotic arm. In this model, corresponding fixed structural parameters are stored for each revolute joint and prismatic joint of the robotic arm. Before performing inverse kinematics calculation, the fixed structural parameters of each revolute joint and prismatic joint can be read from the DH parameter model. These fixed structural parameters are the inherent structural dimensions of each link of the robotic arm. These parameters do not change with the joint motion state and are the basic data used to construct the geometric constraint relationship between the joints during subsequent inverse kinematics calculation.

[0054] S230. Based on the current angle and value, as well as the fixed structural parameters of each rotary joint and prismatic joint, reverse calculation is performed sequentially according to the cascade order of the six rotary joints to gradually determine the candidate joint angle values ​​of each rotary joint.

[0055] Specifically, after selecting a current angle and value within the traversal range, this current angle and value is used as the sum of the angles of the two revolute joints in the first revolute joint group. Combined with the fixed structural parameters of each revolute joint and prismatic joint, as well as the target end pose data, the six revolute joints are sequentially solved in reverse order from near the base to near the end. Each step of the solution uses the current angle and value, the candidate joint angle values ​​of the adjacent joints, and the geometric constraints determined by the fixed structural parameters to deduce the candidate joint angle value of the next revolute joint. This process is repeated step by step until the candidate joint angle values ​​of each of the six revolute joints are determined in the sequential order.

[0056] In this embodiment, optionally, the specific implementation method of performing reverse calculations sequentially according to the cascade order of the six revolute joints to gradually determine the candidate joint angle values ​​of each revolute joint may include the following steps: S2301. Based on the current angle and value, perform a combination operation with the attitude matrix elements in the target end pose data to determine the angle and value of the second rotary joint group.

[0057] The attitude matrix element refers to each element in the matrix used to describe the attitude information of the robotic arm's end effector in the target end effector pose data, specifically including attitude components related to each direction of the robotic arm's base coordinate system.

[0058] The second rotary joint group consists of the third and fourth rotary joints arranged sequentially among the six rotary joints, and the rotation axes of the third and fourth rotary joints are both parallel to the horizontal plane.

[0059] Specifically, after determining the current angle and value, the attitude matrix elements related to the robot arm's end pose are extracted from the target end pose data. The attitude matrix elements related to different directions of the base coordinate system are combined with the angle function of the current angle and value. By solving the simultaneous relationship between the results of multiple combined operations, the influence of other unknown joint angles other than the current angle and value is eliminated, thereby deriving the sum of the angles of the third and fourth rotary joints. This sum of angles is used as the angle and value of the second rotary joint group.

[0060] In this embodiment, the specific steps for determining the angle and value of the second revolute joint group based on the current angle and value, combined with the attitude matrix elements in the target end pose data, may include: Obtain the first attitude matrix elements and the second attitude matrix elements from the target end-effector pose data; wherein, the first attitude matrix elements are the elements in the attitude matrix of the target end-effector pose related to the X direction of the robot arm base coordinate system, and the second attitude matrix elements are the elements in the attitude matrix of the target end-effector pose related to the Y direction of the robot arm base coordinate system; perform a first combination operation on the first attitude matrix elements and the cosine value of the current angle sum, and perform a second combination operation on the second attitude matrix elements and the sine value of the current angle sum; based on the operation results of the first combination operation and the second combination operation, determine the angle sum of the second revolute joint group.

[0061] In the end-effector pose matrix, each element corresponds to the direction cosine of each axis of the robot's end-effector coordinate system relative to the axes of the base coordinate system. Specifically, the elements in different rows and columns of the pose matrix represent the projection components of each axis of the end-effector coordinate system onto the axes of the base coordinate system. The elements in the first row correspond to the X-direction of the base coordinate system, the elements in the second row correspond to the Y-direction of the base coordinate system, and the elements in the third row correspond to the Z-direction of the base coordinate system. The elements in different columns correspond to the directions of the X-axis, Y-axis, and Z-axis of the end-effector coordinate system, respectively. Therefore, the elements of the pose matrix essentially describe the directional relationship between each axis of the end-effector coordinate system and the axes of the base coordinate system. The elements of the pose matrix related to the X-direction of the base coordinate system are the elements in the first row of the pose matrix, the elements related to the Y-direction of the base coordinate system are the elements in the second row of the pose matrix, and the elements related to the Z-direction of the base coordinate system are the elements in the third row of the pose matrix.

[0062] This embodiment uses the standard DH method to establish the kinematic model of a seven-axis robotic arm, obtaining the DH parameters for each joint. Table 1 shows the DH parameters for one prismatic joint and six revolute joints in the seven-axis robotic arm. The meanings of the DH parameters are as follows: Linkage offset parameter, representing the offset along the Z-axis. i Axis, from X i-1 To X i The distance; : Joint rotation angle parameter, representing rotation around Z i The axis, X i-1 Rotate to X i Angle; for rotational joints It is obtained by superimposing the joint fixed zero-position offset and the joint generalized coordinate qi, that is ,in, This indicates the zero-position offset of the joint. : Linkage torsion angle parameter, representing the angle around X i-1 Axis, Z i-1 Rotate to Z i The included angle; : Link length parameter, representing the length along the X-axis i-1 Axis from Z i-1 To Z i The length of the common perpendicular; : Generalized coordinates of the i-th joint; where q is the coordinate of the rotational joint. i For the joint rotation angle, move the accessory joint by q. iLet i be the joint translation amount, i = 1, 2, ..., 7.

[0063] Table 1 DH Parameter Table It should be noted that the values ​​of 117, 82.5, 240, 235, etc. in the DH parameter table are specific values ​​of the link parameters, which are only used for illustrative purposes and do not constitute any limitation on the robotic arm configuration to which the technical solution of this application applies.

[0064] According to the DH modeling rules, the transformation matrix from the i-th joint to the (i+1)-th joint is: The end effector pose matrix of the seven-axis robotic arm is: Based on the DH parameter table above, after substituting the DH parameters of each joint into the transformation matrix and multiplying them together, the target end-effector pose matrix is ​​obtained as follows: in, The target's end pose matrix is ​​a 4×4 homogeneous transformation matrix, with the upper left 3×3 part being the pose matrix and the upper right 3×1 part being the position matrix.

[0065] In the target end pose matrix, the pose matrix elements specifically include: Mark ① Mark ③ Marked as type ⑤ Marker ⑥; The position matrix elements specifically include: Marked as formula ② (marked as ④) (Mark ⑦)

[0066] In this embodiment, the first and second attitude matrix elements used to determine the angle sum of the second revolute joint group correspond to equations ① and ③ above, respectively. The specific implementation for determining the angle sum of the second revolute joint group is as follows: the current angle sum is taken as the current value of the sum of q1 and q2; the first attitude matrix element is multiplied by the cosine of the current angle sum to obtain the first combination operation result; the second attitude matrix element is multiplied by the sine of the current angle sum to obtain the second combination operation result; the first and second combination operation results are added together, and the q5 term is eliminated after addition, resulting in a negative sine value q5 multiplied by the sum of the sine values ​​q3 and q4; this operation result is combined with equation ⑥ to obtain the sine and cosine values ​​of the angle sum of the second revolute joint group (i.e., q3 + q4). Subsequently, the sine and cosine values ​​are combined and solved using inverse trigonometric functions to determine the angle sum of the second revolute joint group, i.e., the sum of q3 and q4.

[0067] S2302. Based on the angles and values ​​of the second rotary joint group, and combined with the attitude matrix elements, determine the candidate joint angle values ​​of the fifth rotary joint.

[0068] Specifically, the attitude matrix element related to the Z direction of the robot arm base coordinate system (i.e., equation ⑥) in the attitude matrix is ​​composed of the product of the sine of the joint angle of the fifth rotary joint and the cosine of the sum of the angles of the second rotary joint group. Substituting the obtained sum of the angles of the second rotary joint group into this attitude matrix element, only the joint angle of the fifth rotary joint is unknown in this attitude matrix element. By performing inverse trigonometric function operation on this attitude matrix element, the candidate joint angle value of the fifth rotary joint can be determined.

[0069] In this embodiment, optionally, the candidate joint angle value of the fifth rotary joint is determined based on the angle and value of the second rotary joint group and in combination with the attitude matrix elements, including: obtaining the third attitude matrix element in the target end pose data; wherein, the third attitude matrix element is the element in the attitude matrix of the target end pose that is related to the Z direction of the robot arm base coordinate system; and the candidate joint angle value of the fifth rotary joint is determined based on the ratio relationship between the third attitude matrix element and the cosine value of the angle and value of the second rotary joint group.

[0070] Specifically, the third attitude matrix element used to determine the candidate joint angle value of the fifth rotary joint corresponds to equation ⑥ above. After obtaining the angle sum q3+q4 of the second rotary joint group, this angle sum is substituted into the third attitude matrix element. At this time, only q5 is an unknown quantity in the third attitude matrix element. By performing inverse trigonometric function operation on the third attitude matrix element, the candidate joint angle value q5 of the fifth rotary joint can be determined.

[0071] S2303. Based on the sum of angles and values ​​of the second rotary joint group and the candidate joint angle values ​​of the fifth rotary joint, and combined with the attitude matrix elements, determine the candidate joint angle values ​​of the sixth rotary joint.

[0072] Specifically, the fourth pose matrix element (⑤) in the target end pose data can be obtained; based on the constraint relationship between the angle and value of the second rotary joint group, the candidate joint angle value of the fifth rotary joint and the fourth pose matrix element, the candidate joint angle value of the sixth rotary joint can be determined.

[0073] In this embodiment, the fourth attitude matrix element used to determine the candidate joint angle value of the sixth revolute joint corresponds to equation ⑤ above. After obtaining the sum of angles q3+q4 of the second revolute joint group and the candidate joint angle value q5 of the fifth revolute joint, q3+q4 and q5 are substituted into the fourth attitude matrix element. At this time, only the joint angle q6 of the sixth revolute joint is unknown in the fourth attitude matrix element. By performing an inverse trigonometric function operation on this element, the candidate joint angle value q6 of the sixth revolute joint can be determined.

[0074] S2304. Based on the sum of angles and values ​​of the second rotary joint group and the candidate joint angle values ​​of the fifth rotary joint, and combined with the position matrix elements in the target end pose data, determine the candidate joint angle values ​​of the third rotary joint.

[0075] Specifically, the position matrix element (equation ⑦) related to the Z-direction of the robot arm base coordinate system in the position matrix is ​​composed of the product of the sine of the joint angle of the third rotary joint and the fixed structural parameter, the product of the cosine of the sum of the angles of the candidate joint angle of the fifth rotary joint and the fixed structural parameter, and the product of the sine of the sum of the angles of the second rotary joint group and the fixed structural parameter. Substituting the obtained sum of the angles of the second rotary joint group and the candidate joint angle of the fifth rotary joint into this position matrix element, only the joint angle of the third rotary joint is unknown in this position matrix element. By performing inverse trigonometric function operation on this position matrix element, the candidate joint angle value of the third rotary joint can be determined.

[0076] In this embodiment, optionally, determining the candidate joint angle value of the third rotary joint includes: obtaining the first position matrix element in the target end pose data; wherein, the first position matrix element is the element in the position matrix of the target end pose that is related to the Z direction of the robot arm base coordinate system; and determining the candidate joint angle value of the third rotary joint based on the constraint relationship between the angle and value of the second rotary joint group, the candidate joint angle value of the fifth rotary joint, and the first position matrix element.

[0077] Specifically, the position matrix elements used to determine the candidate joint angle values ​​of the third rotary joint correspond to equation ⑦ above and are position components related to the Z-direction of the robot arm base coordinate system. After obtaining the sum of angles q3+q4 of the second rotary joint group and the candidate joint angle value q5 of the fifth rotary joint, q3+q4 and q5 are substituted into the position matrix elements. At this point, only the joint angle q3 of the third rotary joint is unknown in the first position matrix elements. By performing inverse trigonometric function operations on this element, the candidate joint angle value q3 of the third rotary joint can be determined.

[0078] S2305. Based on the angles and values ​​of the second rotary joint group, perform difference calculations on the candidate joint angle values ​​of the third rotary joint to determine the candidate joint angle values ​​of the fourth rotary joint.

[0079] Specifically, after determining the sum of the angles of the second rotary joint group and the candidate joint angles of the third rotary joint, since the sum of the angles of the second rotary joint group is the sum of the joint angles of the third and fourth rotary joints, and the candidate joint angles of the third rotary joint have been determined, the candidate joint angles of the fourth rotary joint can be obtained by subtracting the candidate joint angles of the third rotary joint from the sum of the angles of the second rotary joint group.

[0080] S2306. Based on the current angle and value, the angle and value of the second rotary joint group, the candidate joint angle values ​​of the third rotary joint and the fifth rotary joint, and in combination with the position matrix elements, determine the candidate joint angle value of one rotary joint in the first rotary joint group.

[0081] Specifically, the position matrix elements (equation ④) related to the Y-direction of the robot arm base coordinate system in the position matrix are composed of the product of the sine of the joint angle and the fixed structural parameter, the product of the sine of the current angle sum and the cosine of the candidate joint angle values ​​of the third rotary joint and the fixed structural parameter, the product of the sine of the current angle sum and the cosine of the angle sum of the second rotary joint group and the fixed structural parameter, the product of the sine of the candidate joint angle value of the fifth rotary joint and the sine of the current angle sum, and the sine of the angle sum of the second rotary joint group and the fixed structural parameter. The product of the cosine of the candidate joint angle value of the fifth rotary joint and the cosine of the current angle sum, together with the product of the fixed structural parameters, constitutes the position matrix element (④). Substituting the obtained current angle sum, angle sum of the second rotary joint group, candidate joint angle value of the third rotary joint, and candidate joint angle value of the fifth rotary joint into this position matrix element, at this time, only the joint angle of one rotary joint in the first rotary joint group is unknown in this position matrix element. By performing inverse trigonometric function operation on this position matrix element, the candidate joint angle value of one rotary joint in the first rotary joint group can be determined.

[0082] In this embodiment, optionally, the specific implementation of determining the candidate joint angle value of a rotary joint in the first rotary joint group may include: obtaining the second position matrix element in the target end pose data; wherein, the second position matrix element is the element in the position matrix of the target end pose that is related to the Y direction of the robot arm base coordinate system; and determining the candidate joint angle value of a rotary joint in the first rotary joint group based on the constraint relationship between the current angle sum, the angle sum of the second rotary joint group, the candidate joint angle value of the fourth rotary joint, the candidate joint angle value of the fifth rotary joint, and the second position matrix element.

[0083] Specifically, the second position matrix element used to determine the candidate joint angle value of one of the rotary joints in the first rotary joint group corresponds to equation ④ above and is a position component related to the Y direction of the robot arm base coordinate system. After obtaining the current angle sum q1+q2, the angle sum q3+q4 of the second rotary joint group, the candidate joint angle value q3 of the fourth rotary joint (i.e., the candidate joint angle value of the third rotary joint), and the candidate joint angle value q5 of the fifth rotary joint, q1+q2, q3+q4, q3, and q5 are substituted into the second position matrix element. At this time, only the joint angle q1 of one of the rotary joints in the first rotary joint group is unknown in the second position matrix element. By performing an inverse trigonometric function operation on this element, the candidate joint angle value q1 of one of the rotary joints in the first rotary joint group can be determined.

[0084] S2307. Based on the current angle and value, perform a difference operation on the candidate joint angle value of one rotary joint in the first rotary joint group to determine the candidate joint angle value of the other rotary joint in the first rotary joint group.

[0085] Specifically, after determining the current angle sum and the candidate joint angle value of one of the rotary joints in the first rotary joint group, since the current angle sum is the sum of the joint angles of the two rotary joints in the first rotary joint group, and the candidate joint angle value of one of the rotary joints in the first rotary joint group has been determined, the candidate joint angle value of the other rotary joint in the first rotary joint group can be obtained by subtracting the candidate joint angle value of one of the rotary joints in the first rotary joint group from the current angle sum.

[0086] S240. Based on the candidate joint angle values ​​of each rotary joint, determine the candidate joint displacement of the prismatic joint.

[0087] Specifically, after calculating the candidate joint angle values ​​of each of the six revolute joints in reverse order according to their cascade sequence, the candidate joint angle values ​​of all six revolute joints are now determined. Based on this, using the determined candidate joint angle values ​​of each revolute joint and the geometric constraint relationship formed by the fixed structural parameters of each revolute joint and prismatic joint, combined with the position information in the target end pose data, the linear displacement that the prismatic joint needs to generate is deduced, and this linear displacement is used as the candidate joint displacement of the prismatic joint corresponding to the current angle and value.

[0088] In this embodiment, the candidate joint displacement of the prismatic joint is determined based on the candidate joint angle values ​​of each rotary joint, including: determining the candidate joint displacement of the prismatic joint based on the current angle sum, the angle sum of the second rotary joint group, the candidate joint angle value of one rotary joint in the first rotary joint group, the candidate joint angle value of the fourth rotary joint, and the candidate joint angle value of the fifth rotary joint, combined with the third position matrix element in the target end-effector pose data; wherein, the third position matrix element is the element in the position matrix of the target end-effector pose that is related to the X direction of the robot arm base coordinate system.

[0089] Specifically, the third position matrix element used to determine the candidate joint displacement of the prismatic joint corresponds to equation ② above and is a position component related to the X direction of the robot arm base coordinate system. After obtaining the current angle sum q1+q2, the angle sum q3+q4 of the second rotary joint group, the candidate joint angle q1 of one rotary joint in the first rotary joint group, the candidate joint angle q3 of the fourth rotary joint, and the candidate joint angle q5 of the fifth rotary joint, q1+q2, q3+q4, q1, q3, and q5 are substituted into the third position matrix element. At this time, only the joint displacement q0 of the prismatic joint is unknown in the third position matrix element. By performing algebraic operations on this element, the candidate joint displacement q0 of the prismatic joint can be determined.

[0090] S250. Based on the candidate joint displacement and candidate joint angle values ​​corresponding to each angle and value, construct a candidate solution set.

[0091] S260. Based on the preset solution selection constraints, select a set of optimal joint motion parameters from the candidate solution set, and generate drive commands for each joint based on the optimal joint motion parameters to control the robotic arm to move to the target end pose.

[0092] The technical solution of this application embodiment, when determining the candidate joint displacement of the prismatic joint and the candidate joint angle values ​​of each of the six revolute joints, obtains the fixed structural parameters of each revolute and prismatic joint through a pre-established DH parameter model. This separates the inherent structural dimensions of the robotic arm from the inverse kinematics calculation, eliminating the need to repeatedly input or derive the structural parameters of each link during the inverse kinematics calculation process, thus improving computational efficiency. Based on this, the inverse kinematics calculation is performed sequentially according to the cascade order of the six revolute joints. The candidate joint angle values ​​of each revolute joint are determined step by step through a recursive approach. Then, the candidate joint displacement of the prismatic joint is determined based on the determined candidate joint angle values ​​of all revolute joints. This serial recursive calculation architecture ensures that each step of the inverse kinematics calculation depends on the joint parameters determined in the previous step, effectively reducing the complexity of solving the inverse kinematics of a multi-degree-of-freedom redundant robotic arm. At the same time, the combined use of the pre-acquisition of fixed structural parameters and serial recursion ensures the accuracy and stability of the inverse kinematics calculation.

[0093] Example 3 Figure 4 This is a schematic diagram of a reverse engineering control device for a seven-axis robotic arm provided in an embodiment of this application. The seven-axis robotic arm includes a prismatic joint and six rotary joints connected in sequence. The six rotary joints include a first rotary joint group, which consists of two rotary joints arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other. The device includes: Angle and range determination module 310 is used to acquire the target end pose data of the seven-axis robotic arm, and determine the angle and traversal range of the first rotary joint group based on the target end pose data. The candidate angle determination module 320 is used to sequentially select the current angle and value within the angle and traversal range, and determine the candidate joint displacement of the prismatic joint and the candidate joint angle value of each of the six rotary joints based on the current angle and value and the target end pose data. The candidate solution set construction module 330 is used to construct a candidate solution set based on the candidate joint displacement and candidate joint angle values ​​corresponding to each group of angles and values. The motion parameter selection module 340 is used to select a set of optimal joint motion parameters from the candidate solution set according to preset selection constraint conditions, and generate driving commands for each joint according to the optimal joint motion parameters, so as to control the robotic arm to move to the target end pose.

[0094] This application provides an inverse kinematics control device for a seven-axis robotic arm. In application, the device acquires the target end-effector pose data of the seven-axis robotic arm and, based on the target end-effector pose data, determines the angles and traversal range of the first revolute joint group. Within the angles and traversal range, the current angle and value are selected sequentially, and based on the current angle and value and the target end-effector pose data, the candidate joint displacements of the prismatic joints and the candidate joint angle values ​​of each of the six revolute joints are determined. Based on the candidate joint displacements and candidate joint angle values ​​corresponding to each angle and value, a candidate solution set is constructed. According to preset solution selection constraints, a set of optimal joint motion parameters is selected from the candidate solution set, and driving commands for each joint are generated based on the optimal joint motion parameters to control the robotic arm to move to the target end-effector pose. The technical solution of this application obtains all candidate inverse solutions and constructs a candidate solution set by traversing the angles of the first rotary joint group and sequentially inversely calculating the candidate motion parameters of each joint. Then, combined with preset selection constraint conditions, the optimal joint motion parameters are selected from the candidate solution set and drive commands are generated. This realizes the multi-solution screening and optimization constraint of the overall posture of the robotic arm, solves the problems of long calculation time and inability to obtain all candidate solutions by numerical iteration method, and makes it difficult to perform multi-solution screening and optimization constraint of the overall posture. This improves the efficiency of inverse solution calculation and the real-time control response speed.

[0095] Based on the above-mentioned device, optionally, the candidate angle determination module 320 includes: The fixed parameter acquisition submodule is used to acquire the fixed structural parameters of each revolute joint and the prismatic joint based on the pre-established DH parameter model; wherein, the fixed structural parameters include the link offset parameter, the link length parameter, and the link torsion angle parameter; The candidate angle determination submodule is used to determine the candidate joint angle values ​​of each rotary joint step by step by performing reverse calculations in the series order of the six rotary joints based on the current angle and value and the fixed structural parameters of each rotary joint and the slid joint. The candidate displacement determination submodule is used to determine the candidate joint displacement of the prismatic joint based on the candidate joint angle values ​​of each rotary joint.

[0096] Based on the above-mentioned device, an optional candidate angle determination submodule includes: The second joint group angle and determination unit is used to perform a combination operation based on the current angle and value, combined with the attitude matrix elements in the target end pose data, to determine the angle and value of the second rotary joint group; wherein, the second rotary joint group is composed of the third rotary joint and the fourth rotary joint arranged sequentially among the six rotary joints, and the rotation axes of the third rotary joint and the fourth rotary joint are both parallel to the horizontal plane. The fifth joint angle determination unit is used to determine the candidate joint angle value of the fifth revolute joint based on the angle and value of the second revolute joint group and in combination with the attitude matrix elements. The sixth joint angle determination unit is used to determine the candidate joint angle value of the sixth rotary joint based on the angle and value of the second rotary joint group and the candidate joint angle value of the fifth rotary joint, combined with the attitude matrix elements. The third joint angle determination unit is used to determine the candidate joint angle value of the third rotary joint based on the angle and value of the second rotary joint group and the candidate joint angle value of the fifth rotary joint, combined with the position matrix elements in the target end pose data. The fourth joint angle determination unit is used to perform a difference calculation on the candidate joint angle values ​​of the third rotary joint based on the angle and value of the second rotary joint group, and to determine the candidate joint angle values ​​of the fourth rotary joint. The first joint angle determination unit is used to determine the candidate joint angle value of one rotary joint in the first rotary joint group based on the current angle and value, the angle and value of the second rotary joint group, the candidate joint angle value of the third rotary joint and the candidate joint angle value of the fifth rotary joint, and in combination with the position matrix elements. The second joint angle determination unit is used to perform a difference operation on the candidate joint angle value of one rotary joint in the first rotary joint group based on the current angle and value, and determine the candidate joint angle value of another rotary joint in the first rotary joint group.

[0097] Based on the above-mentioned device, optionally, a second joint group angle determination unit is specifically used to acquire the first attitude matrix element and the second attitude matrix element in the target end-effector pose data; wherein, the first attitude matrix element is an element in the attitude matrix of the target end-effector pose related to the X direction of the robot arm base coordinate system, and the second attitude matrix element is an element in the attitude matrix of the target end-effector pose related to the Y direction of the robot arm base coordinate system; the first attitude matrix element is combined with the cosine value of the current angle sum value to perform a first combination operation, and the second attitude matrix element is combined with the sine value of the current angle sum value to perform a second combination operation; based on the operation results of the first combination operation and the second combination operation, the angle and value of the second rotary joint group are determined.

[0098] Based on the above device, optionally, a fifth joint angle determination unit is used to obtain the third posture matrix element in the target end pose data; wherein, the third posture matrix element is the element in the posture matrix of the target end pose that is related to the Z direction of the robot arm base coordinate system; and the candidate joint angle value of the fifth revolute joint is determined based on the ratio relationship between the third posture matrix element and the cosine value of the angle sum of the second revolute joint group.

[0099] Based on the above-mentioned device, optionally, a third joint angle determination unit is used to obtain the first position matrix element in the target end pose data; wherein, the first position matrix element is the element in the position matrix of the target end pose that is related to the Z direction of the robot arm base coordinate system; and the candidate joint angle value of the third revolute joint is determined based on the constraint relationship between the angle and value of the second revolute joint group, the candidate joint angle value of the fifth revolute joint and the first position matrix element.

[0100] Based on the above-mentioned device, optionally, a first joint angle determination unit is used to obtain a second position matrix element in the target end-effector pose data; wherein, the second position matrix element is an element in the position matrix of the target end-effector pose that is related to the Y direction of the robot arm base coordinate system; based on the constraint relationship between the current angle and value, the angle and value of the second rotary joint group, the candidate joint angle value of the fourth rotary joint, the candidate joint angle value of the fifth rotary joint, and the second position matrix element, a candidate joint angle value of one rotary joint in the first rotary joint group is determined.

[0101] Based on the above device, optionally, a candidate displacement determination submodule is used to determine the candidate joint displacement of the prismatic joint based on the current angle and value, the angle and value of the second rotary joint group, the candidate joint angle value of one rotary joint in the first rotary joint group, the candidate joint angle value of the fourth rotary joint, and the candidate joint angle value of the fifth rotary joint, combined with the third position matrix element in the target end pose data; wherein, the third position matrix element is an element in the position matrix of the target end pose that is related to the X direction of the robot arm base coordinate system.

[0102] Based on the above-mentioned device, optionally, the motion parameter selection module 340 is specifically used to determine the evaluation index value corresponding to each group of candidate joint motion parameters using at least one of the following methods: determining the evaluation index value corresponding to each group of candidate joint motion parameters based on a first deviation between the candidate joint angle value and the corresponding current actual angle value in each group of candidate joint motion parameters, and a second deviation between the candidate joint displacement value and the current actual displacement in each group of candidate joint motion parameters; determining the evaluation index value corresponding to each group of candidate joint motion parameters based on the Jacobian matrix corresponding to each group of candidate joint motion parameters; determining the evaluation index value corresponding to each group of candidate joint motion parameters based on the extension index value corresponding to each group of candidate joint motion parameters; wherein, the extension index value is used to characterize the spatial distribution uniformity between the links of the seven-axis robotic arm; and selecting a set of optimal joint motion parameters from the candidate solution set according to the evaluation index value and the preset solution selection constraint conditions.

[0103] The inverse kinematics control device for the seven-axis robotic arm provided in this application embodiment can execute the inverse kinematics control method for the seven-axis robotic arm provided in any embodiment of this application, and has the corresponding functional modules and beneficial effects of the execution method.

[0104] It is worth noting that the various units and modules included in the above system are only divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be achieved; in addition, the specific names of each functional unit are only for easy differentiation and are not used to limit the protection scope of the embodiments of this application.

[0105] Example 4 Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Figure 5 A block diagram is shown of an exemplary electronic device 50 suitable for implementing embodiments of the present application. Figure 5 The electronic device 50 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.

[0106] like Figure 5 As shown, the electronic device 50 is represented in the form of a general-purpose computing device. The components of the electronic device 50 may include, but are not limited to: one or more processors or processing units 501, system memory 502, and bus 503 connecting different system components (including system memory 502 and processing unit 501).

[0107] Bus 503 represents one or more of several bus architectures, including memory buses or memory electronics, peripheral buses, graphics acceleration ports, processors, or local buses using any of the various bus architectures. Examples of these architectures include, but are not limited to, the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MAC) bus, the Enhanced ISA bus, the Video Electronics Standards Association (VESA) local bus, and the Peripheral Component Interconnect (PCI) bus.

[0108] Electronic device 50 typically includes a variety of computer system readable media. These media can be any available media that can be accessed by electronic device 50, including volatile and non-volatile media, removable and non-removable media.

[0109] System memory 502 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 504 and / or cache memory 505. Electronic device 50 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 506 may be used to read and write non-removable, non-volatile magnetic media (… Figure 5 Not shown (usually referred to as a hard drive). Although Figure 5 As not shown, a disk drive for reading and writing to a removable non-volatile disk (e.g., a floppy disk) and an optical disc drive for reading and writing to a removable non-volatile optical disc (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In these cases, each drive may be connected to bus 503 via one or more data media interfaces. Memory 502 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of the embodiments of this application.

[0110] A program / utility 508 having a set (at least one) of program modules 507 may be stored, for example, in memory 502. Such program modules 507 include, but are not limited to, an operating system, one or more application programs, other program modules, and program data. Each or some combination of these examples may include an implementation of a network environment. Program modules 507 typically perform the functions and / or methods described in the embodiments of this application.

[0111] Electronic device 50 can also communicate with one or more external devices 509 (e.g., keyboard, pointing device, display 510, etc.), and with one or more devices that enable a user to interact with electronic device 50, and / or with any device that enables electronic device 50 to communicate with one or more other computing devices (e.g., network card, modem, etc.). This communication can be performed via input / output (I / O) interface 511. Furthermore, electronic device 50 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 512. As shown, network adapter 512 communicates with other modules of electronic device 50 via bus 503. It should be understood that, although... Figure 5 As not shown, other hardware and / or software modules may be used in conjunction with electronic device 50, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.

[0112] The processing unit 501 executes various functional applications and page processing by running programs stored in the system memory 502, such as implementing the inverse kinematics control method for the seven-axis robotic arm provided in the embodiments of this application.

[0113] Example 6 This application embodiment also provides a storage medium containing computer-executable instructions. When executed by a computer processor, the computer-executable instructions are used to execute a reverse engineering control method for a seven-axis robotic arm. The seven-axis robotic arm includes a prismatic joint and six revolute joints connected in sequence. The six revolute joints include a first revolute joint group, which consists of two revolute joints arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other. The method includes: Acquire the target end-effector pose data of the seven-axis robotic arm, and determine the angle and traversal range of the first rotary joint group based on the target end-effector pose data; Within the angle and traversal range, the current angle and value are selected sequentially, and the candidate joint displacement of the prismatic joint and the candidate joint angle value of each of the six revolute joints are determined based on the current angle and value and the target end pose data. Based on the candidate joint displacement and candidate joint angle values ​​corresponding to each angle and value, a candidate solution set is constructed. According to the preset solution selection constraints, a set of optimal joint motion parameters are selected from the candidate solution set, and driving commands for each joint are generated according to the optimal joint motion parameters to control the robotic arm to move to the target end pose.

[0114] The computer storage medium in this application embodiment can be any combination of one or more computer-readable media. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of computer-readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this document, a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.

[0115] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, capable of sending, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device.

[0116] The program code contained on a computer-readable medium may be transmitted using any suitable medium, including—but not limited to—wireless, wire, optical fiber, RF, etc., or any suitable combination thereof.

[0117] Computer program code for performing the operations of the embodiments of this application can be written in one or more programming languages ​​or a combination thereof. Programming languages ​​include object-oriented programming languages—such as Java, Smalltalk, and C++—and conventional procedural programming languages—such as C or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0118] Note that the above description is merely a preferred embodiment and the technical principles employed in this application. Those skilled in the art will understand that this application is not limited to the specific embodiments described herein, and various obvious changes, readjustments, and substitutions can be made without departing from the scope of protection of this application. Therefore, although this application has been described in detail through the above embodiments, this application is not limited to the above embodiments. Many other equivalent embodiments may be included without departing from the concept of this application, and the scope of this application is determined by the scope of the appended claims.

Claims

1. A method for inverse kinematics control of a seven-axis robotic arm, characterized in that, The seven-axis robotic arm includes a prismatic joint and six rotary joints connected in sequence. The six rotary joints include a first rotary joint group, which consists of two rotary joints arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other. The method includes: Acquire the target end-effector pose data of the seven-axis robotic arm, and determine the angle and traversal range of the first rotary joint group based on the target end-effector pose data; Within the angle and traversal range, the current angle and value are selected sequentially, and the candidate joint displacement of the prismatic joint and the candidate joint angle value of each of the six revolute joints are determined based on the current angle and value and the target end pose data. Based on the candidate joint displacement and candidate joint angle values ​​corresponding to each angle and value, a candidate solution set is constructed. According to the preset solution selection constraints, a set of optimal joint motion parameters are selected from the candidate solution set, and driving commands for each joint are generated according to the optimal joint motion parameters to control the robotic arm to move to the target end pose.

2. The method according to claim 1, characterized in that, The step of determining the candidate joint displacement of the prismatic joint and the candidate joint angle values ​​of each of the six revolute joints based on the current angle and value and the target end pose data includes: Based on the pre-established DH parameter model, the fixed structure parameters of each revolute joint and the prismatic joint are obtained; wherein, the fixed structure parameters include the link offset parameter, the link length parameter, and the link torsion angle parameter; Based on the current angle and value, as well as the fixed structural parameters of each rotary joint and the sliding joint, reverse calculations are performed sequentially according to the cascade order of the six rotary joints to gradually determine the candidate joint angle values ​​for each rotary joint. Based on the candidate joint angle values ​​of each rotary joint, the candidate joint displacement of the prismatic joint is determined.

3. The method according to claim 2, characterized in that, Based on the current angle and value, and the fixed structural parameters of each revolute joint and the prismatic joint, the process involves reverse calculation sequentially according to the cascade order of the six revolute joints to gradually determine the candidate joint angle values ​​for each revolute joint, including: Based on the current angle and value, the angle and value of the second rotary joint group are determined by combining the attitude matrix elements in the target end pose data; wherein, the second rotary joint group is composed of the third rotary joint and the fourth rotary joint arranged sequentially among the six rotary joints, and the rotation axes of the third rotary joint and the fourth rotary joint are both parallel to the horizontal plane. Based on the angles and values ​​of the second rotary joint group, and in conjunction with the attitude matrix elements, the candidate joint angle values ​​of the fifth rotary joint are determined. Based on the angles and values ​​of the second rotary joint group and the candidate joint angle values ​​of the fifth rotary joint, and in conjunction with the attitude matrix elements, the candidate joint angle values ​​of the sixth rotary joint are determined. Based on the angles and values ​​of the second rotary joint group and the candidate joint angle values ​​of the fifth rotary joint, and combined with the position matrix elements in the target end pose data, the candidate joint angle values ​​of the third rotary joint are determined. Based on the angles and values ​​of the second rotary joint group, the candidate joint angle values ​​of the third rotary joint are calculated by difference to determine the candidate joint angle values ​​of the fourth rotary joint. Based on the current angle and value, the angle and value of the second rotary joint group, the candidate joint angle value of the third rotary joint and the candidate joint angle value of the fifth rotary joint, and in conjunction with the position matrix elements, the candidate joint angle value of one rotary joint in the first rotary joint group is determined. Based on the current angle and value, a difference operation is performed on the candidate joint angle value of one of the rotary joints in the first rotary joint group to determine the candidate joint angle value of the other rotary joint in the first rotary joint group.

4. The method according to claim 3, characterized in that, The step of determining the angle and value of the second revolute joint group by combining the current angle and value with the attitude matrix elements in the target end pose data includes: Obtain the first attitude matrix element and the second attitude matrix element from the target end pose data; wherein, the first attitude matrix element is the element in the attitude matrix of the target end pose that is related to the X direction of the robot arm base coordinate system, and the second attitude matrix element is the element in the attitude matrix of the target end pose that is related to the Y direction of the robot arm base coordinate system. Perform a first combination operation on the elements of the first attitude matrix and the cosine value of the sum of the current angles, and perform a second combination operation on the elements of the second attitude matrix and the sine value of the sum of the current angles. Based on the results of the first and second combined operations, the angle and value of the second rotary joint group are determined.

5. The method according to claim 3, characterized in that, The determination of candidate joint angle values ​​for the fifth revolute joint based on the angles and values ​​of the second revolute joint group, combined with the attitude matrix elements, includes: Obtain the third attitude matrix element from the target end-effector pose data; wherein, the third attitude matrix element is the element in the attitude matrix of the target end-effector pose that is related to the Z direction of the robot arm base coordinate system; Based on the ratio between the elements of the third posture matrix and the cosine of the angle sum of the second rotary joint group, the candidate joint angle value of the fifth rotary joint is determined.

6. The method according to claim 3, characterized in that, The step of determining the candidate joint angle value of the third revolute joint based on the angle and value of the second revolute joint group and the candidate joint angle value of the fifth revolute joint, combined with the position matrix elements in the target end-effector pose data, includes: Obtain the first position matrix element from the target end-effector pose data; wherein, the first position matrix element is the element in the position matrix of the target end-effector pose that is related to the Z direction of the robot arm base coordinate system; Based on the angles and values ​​of the second rotary joint group, the candidate joint angle values ​​of the fifth rotary joint, and the constraint relationship between the elements of the first position matrix, the candidate joint angle values ​​of the third rotary joint are determined.

7. The method according to claim 3, characterized in that, The step of determining a candidate joint angle value for one of the revolute joints in the first revolute joint group based on the current angle and value, the angle and value of the second revolute joint group, the candidate joint angle values ​​of the third revolute joint and the fifth revolute joint, and in conjunction with the position matrix elements, includes: Obtain the second position matrix element from the target end-effector pose data; wherein, the second position matrix element is the element in the position matrix of the target end-effector pose that is related to the Y direction of the robot arm base coordinate system; Based on the current angle and value, the angle and value of the second rotary joint group, the candidate joint angle value of the fourth rotary joint, the candidate joint angle value of the fifth rotary joint, and the constraint relationship between the elements of the second position matrix, the candidate joint angle value of one rotary joint in the first rotary joint group is determined.

8. The method according to claim 3, characterized in that, Determining the candidate joint displacement of the prismatic joint based on the candidate joint angle values ​​of each revolute joint includes: Based on the current angle and value, the angle and value of the second rotary joint group, the candidate joint angle value of one rotary joint in the first rotary joint group, the candidate joint angle value of the fourth rotary joint, and the candidate joint angle value of the fifth rotary joint, and in conjunction with the third position matrix element in the target end pose data, the candidate joint displacement of the prismatic joint is determined; wherein, the third position matrix element is an element in the position matrix of the target end pose that is related to the X direction of the robot arm base coordinate system.

9. The method according to claim 1, characterized in that, The step of selecting a set of optimal joint motion parameters from the candidate solution set according to preset solution selection constraints includes: The evaluation index values ​​corresponding to the motion parameters of each group of candidate joints are determined using at least one of the following methods: Based on the first deviation between the candidate joint angle value and the corresponding current actual angle value in each group of candidate joint motion parameters, and the second deviation between the candidate joint displacement and the current actual displacement in each group of candidate joint motion parameters, the evaluation index value corresponding to each group of candidate joint motion parameters is determined. Based on the Jacobian matrix corresponding to the motion parameters of each group of candidate joints, the evaluation index value corresponding to the motion parameters of each group of candidate joints is determined. Based on the extension index value corresponding to the motion parameters of each group of candidate joints, the evaluation index value corresponding to the motion parameters of each group of candidate joints is determined; wherein, the extension index value is used to characterize the uniformity of spatial distribution among the links of the seven-axis robotic arm. Based on the evaluation index value and the preset solution selection constraints, a set of optimal joint motion parameters is selected from the candidate solution set.

10. A reverse engineering control device for a seven-axis robotic arm, characterized in that, The seven-axis robotic arm includes a prismatic joint and six rotary joints connected in sequence. The six rotary joints include a first rotary joint group, which consists of two rotary joints arranged in series with their rotation axes perpendicular to the horizontal plane and parallel to each other. The device includes: Angle and range determination module is used to acquire the target end pose data of the seven-axis robotic arm, and determine the angle and traversal range of the first rotary joint group based on the target end pose data; The candidate angle determination module is used to sequentially select the current angle and value within the angle and traversal range, and determine the candidate joint displacement of the prismatic joint and the candidate joint angle value of each of the six revolute joints based on the current angle and value and the target end pose data. The candidate solution set construction module is used to construct a candidate solution set based on the candidate joint displacement and candidate joint angle values ​​corresponding to each group of angles and values. The motion parameter selection module is used to select a set of optimal joint motion parameters from the candidate solution set according to preset selection constraint conditions, and generate driving commands for each joint according to the optimal joint motion parameters, so as to control the robotic arm to move to the target end pose.