Robot joint control method, apparatus, device, medium, and product
Patent Information
- Application Number
- CN202411625448.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-14
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2044-11-14
AI Technical Summary
阻抗控制主要的缺点:一是当期望高刚度特性或期望惯量与机器人实际惯量差异较大时,阻抗控制架构中外环是高增益控制,这将放大噪声而导致系统不稳定;二是定位精度受系统反驱动能力和摩擦力大小的影响严重,当期望低刚度特性时,由于摩擦力的影响,系统定位精度低
[0021]本公开实施例公开了一种机器人关节控制方法、装置、设备、介质及产品,包括:根据机器人运动学模型确定机器人的关节集合对应的雅可比逆矩阵;所述关节集合中包含所述机器人的至少一个关节;所述雅可比逆矩阵的行的数量对应与所述关节集合中关节的数量;所述雅可比逆矩阵的列的数量对应于所述机器人的末端执行器的自由度;根据所述雅可比逆矩阵和所述关节集合中各个关节在自由方向的笛卡尔空间速度确定各个关节对笛卡尔自由方向的影响因子;根据所述影响因子设置所述关节集合中各个关节当前运动控制模式,所述当前运动控制模式包括力矩模式和位置模式。本技术方案通过各个关节的关节速度对笛卡尔自由方向的影响因子确定各个关节的当前运动控制模式,可以使机器人的部分关节处于位置模式,其余关节处于力矩模式,能在非自由方向产生高刚度特性,在自由方向产生低刚度特性,并利用关节位置闭环控制控制提供更好的稳定性及控制刚度,实现了当前关节运动控制模式的灵活调整,以及对笛卡尔运动的灵活控制。
Smart Images

Figure CN119501931B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of intelligent control technology, and in particular to a robot joint control method, apparatus, device, medium, and product. Background Technology
[0002] Currently, position-controlled robots are the most widely used. However, to meet the high compliance and safety requirements of collaborative robots and service robots, force-controlled robots have gained significant attention. Force-controlled robots are more complex to control and exhibit higher nonlinearity. At present, active compliance control technology is relatively mature, with impedance / admittance control being the most commonly used approach.
[0003] Impedance control and admittance control are based on force controllers and position controllers, respectively, and therefore their stability and control performance differ significantly. The main drawbacks of impedance control are: first, when high stiffness is desired or the desired inertia differs significantly from the robot's actual inertia, the outer loop of the impedance control architecture uses high-gain control, which amplifies noise and leads to system instability; second, positioning accuracy is severely affected by the system's anti-drive capability and the magnitude of friction. When low stiffness is desired, the system's positioning accuracy is low due to friction. Therefore, impedance control architectures are suitable for collaborative robot systems with anti-drive capability and / or low friction. Furthermore, a dynamic model of the robot system is often required in practical control. From the perspective of system stability, impedance control is beneficial for achieving low stiffness characteristics in robot systems and is suitable for compliant motion control of robots interacting with high-stiffness environments. The main advantage of impedance control is its ability to achieve high force control accuracy and desired compliance performance.
[0004] The most prominent advantage of admittance control is its robustness, while its control performance primarily depends on the performance of the inner-loop position control. Because the position closed-loop controller can effectively compensate for the effects of friction and robot dynamics modeling errors, the accuracy requirements for the robot dynamics model are not high. Furthermore, admittance control is suitable for robot systems without anti-drive capabilities. However, since admittance control uses position control as its internal control loop, its main drawback is the limitation of the position control loop bandwidth. When low stiffness characteristics are desired, excessive outer-loop gain can easily lead to system instability. Therefore, admittance control is more conducive to achieving high stiffness characteristics in robot systems and is suitable for compliant motion control of robots interacting with low-stiffness environments.
[0005] Impedance control systems have poor stability and are only suitable for achieving low stiffness characteristics in robot systems. Admittance control, on the other hand, is difficult to implement for achieving low stiffness characteristics in robot systems and requires force sensors to detect force information; the user can only pull on the location of the force sensor. Summary of the Invention
[0006] This disclosure provides a robot joint control method, device, equipment, medium, and product, enabling flexible adjustment of joint motion control modes.
[0007] In a first aspect, a robot joint control method is provided, the method comprising:
[0008] The Jacobian inverse matrix corresponding to the robot's joint set is determined based on the robot's kinematic model; the joint set contains at least one joint of the robot; the number of rows in the Jacobian inverse matrix corresponds to the number of joints in the joint set; the number of columns in the Jacobian inverse matrix corresponds to the degrees of freedom of the robot's end effector.
[0009] The influence factor of each joint on the Cartesian free direction is determined based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction.
[0010] The current motion control mode of each joint in the joint set is set according to the influencing factor. The current motion control mode includes torque mode and position mode.
[0011] Secondly, a robot joint control device is provided, comprising:
[0012] The inverse matrix determination module is used to determine the Jacobian inverse matrix corresponding to the joint set of the robot based on the robot's kinematic model; the joint set contains at least one joint of the robot; the number of rows of the Jacobian inverse matrix corresponds to the number of joints in the joint set; the number of columns of the Jacobian inverse matrix corresponds to the degrees of freedom of the robot's end effector.
[0013] The influence factor determination module is used to determine the influence factor of each joint on the Cartesian free direction based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction.
[0014] The motion control mode determination module is used to set the current motion control mode of each joint in the joint set according to the influencing factor. The current motion control mode includes torque mode and position mode.
[0015] Thirdly, an electronic device is provided, comprising:
[0016] At least one processor; and
[0017] A memory communicatively connected to the at least one processor; wherein,
[0018] The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the robot joint control method as described in the first aspect above.
[0019] Fourthly, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the robot joint control method as described in the first aspect above.
[0020] Fifthly, a computer program product is provided, the computer program product comprising a computer program that, when executed by a processor, implements the robot joint control method as described in the first aspect above.
[0021] This disclosure provides a robot joint control method, apparatus, device, medium, and product, comprising: determining the Jacobian inverse matrix corresponding to a set of robot joints based on a robot kinematic model; the joint set includes at least one joint of the robot; the number of rows in the Jacobian inverse matrix corresponds to the number of joints in the joint set; the number of columns in the Jacobian inverse matrix corresponds to the degrees of freedom of the robot's end effector; determining the influence factor of each joint on the Cartesian free direction based on the Jacobian inverse matrix and the Cartesian spatial velocity of each joint in the joint set in the free direction; and setting the current motion control mode of each joint in the joint set according to the influence factor, wherein the current motion control mode includes a torque mode and a position mode. This technical solution determines the current motion control mode of each joint by using the influence factor of the joint velocity on the Cartesian free direction, which allows some joints of the robot to be in position mode and the rest in torque mode. This generates high stiffness characteristics in non-free directions and low stiffness characteristics in free directions. Furthermore, it utilizes closed-loop joint position control to provide better stability and control stiffness, achieving flexible adjustment of the current joint motion control mode and flexible control of Cartesian motion.
[0022] It should be understood that the content described in this section is not intended to identify key or important features of the embodiments of this disclosure, nor is it intended to limit the scope of the embodiments of this disclosure. Other features of the embodiments of this disclosure will become readily apparent from the following description. Attached Figure Description
[0023] To more clearly illustrate the technical solutions in the embodiments of this disclosure, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the present disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0024] Figure 1 This is a flowchart of a robot joint control method provided in Embodiment 1 of this disclosure;
[0025] Figure 2 This is a schematic diagram of the structure of a robot joint control device provided in Embodiment 2 of this disclosure;
[0026] Figure 3 This is a schematic diagram of the structure of an electronic device provided in Embodiment 3 of this disclosure. Detailed Implementation
[0027] To enable those skilled in the art to better understand the solutions of the embodiments of this disclosure, the technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those of ordinary skill in the art without creative effort should fall within the protection scope of the embodiments of this disclosure.
[0028] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this disclosure are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this disclosure described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0029] Example 1
[0030] Figure 1 This is a flowchart of a robot joint control method provided in Embodiment 1 of this disclosure. This embodiment is applicable to situations where robot joints are controlled. The method can be executed by a robot joint control device, which can be implemented in hardware and / or software. This robot joint control device can be configured in an electronic device, including but not limited to computers, terminals, and servers, which are devices with data processing capabilities. Figure 1 As shown, the method includes:
[0031] S110. Determine the Jacobian inverse matrix corresponding to the robot's joint set based on the robot's kinematic model; the joint set contains at least one joint of the robot; the number of rows in the Jacobian inverse matrix corresponds to the number of joints in the joint set; the number of columns in the Jacobian inverse matrix corresponds to the degrees of freedom of the robot's end effector.
[0032] In this embodiment, the Denavit-Hartenberg (DH) modeling method can be used to establish the robot's kinematic model. DH modeling is a widely used modeling technique in robot kinematics. This method establishes a coordinate system on each link and uses homogeneous coordinate transformation to achieve coordinate transformation between links, thereby deriving the pose of the end effector relative to the base coordinate system and establishing the robot's kinematic equations.
[0033] For example, a kinematic model of the robot is established based on the parameters of the DH modeling method, where the transformation matrix between any two links is known as follows:
[0034]
[0035] Among them, a i-1 It can be the link length of the i-th link, that is, the perpendicular distance (common perpendicular length) from the (i-1)-th joint axis to the i-th joint axis; α i-1 It can be the link torsion angle of the i-th link, that is, the angle between the (i-1)-th joint axis and the i-th joint axis, defined according to the right-hand rule; d i It can be the link offset of the i-th link, that is, the straight-line distance along the i-th joint axis from the coordinate system of the (i-1)-th link to the coordinate system of the i-th link; θ i This can be the rotation angle (joint angle) of the i-th joint, that is, the angle by which the coordinate system of the (i-1)-th link rotates around the i-th joint axis to the coordinate system of the i-th link. A link can be a series of rigid body segments that constitute the robot's manipulator. These links are connected by joints to form the robot's kinematic chain.
[0036] For example, taking a 6-joint robot as an example, the kinematic model (end-effector pose matrix) of a 6-joint robot can be represented as:
[0037]
[0038] Specifically, the robot kinematic model based on DH parameters describes how the position and orientation of the robot's end effector change with joint angles. Based on the robot kinematic model, the Jacobian matrix corresponding to each set of joints can be determined, and from the Jacobian matrix, the inverse Jacobian matrix corresponding to each set of joints can be obtained.
[0039] Based on the above description, the Jacobian inverse matrix corresponding to the robot's joint set can be determined according to the robot's kinematic model. Specifically, after determining the kinematic model, the Jacobian matrix can be determined based on the robot's kinematic model.
[0040] For example, the Jacobian matrix can be a 6×n matrix, where 6 can represent the six degrees of freedom (three translational and three rotational) of the end effector in three-dimensional space, and n can be the number of joints. The Jacobian matrix can be used to describe how the velocity of the end effector depends on the joint velocities. The Jacobian matrix can be obtained through... The calculation yielded that, Let n be the joint velocity vectors of a robot with n degrees of freedom. It could be the Cartesian space velocity of a robot. R 6 It can be a set of 6-dimensional vectors, J q (q) can be the Jacobian matrix of the robot. Taking a 6-joint robot as an example, the Jacobian matrix can be expressed as:
[0041]
[0042] It should be noted that, It can be expressed as the time derivative of the robot end effector's pose vector in Cartesian space. It can be expressed as the derivative of the joint angle vector with respect to time. It can be expressed as the partial derivative of the robot's end-effector pose vector with respect to the joint angle vector. This represents the partial derivative of the i-th element of the end-effector pose vector with respect to the i-th element of the joint angle vector. It should be noted that q = θ, meaning both q and θ can be represented as a set of joint angles, with q including multiple q's. i i = 1, 2, 3..., where i can represent different joints, and θ includes multiple θ. i Let i = 1, 2, 3, ..., where i can represent different joints. The number of rows in the Jacobian matrix corresponds to the degrees of freedom of the end effector in Cartesian space (usually 6, including 3 linear velocities and 3 angular velocities), and the number of columns in the Jacobian matrix corresponds to the number of joints in the robot. Once the Jacobian matrix is determined, the Jacobian inverse matrix can be determined based on it.
[0043] As described above, if the Jacobian matrix is a square matrix and invertible, the Jacobian inverse matrix can be determined by matrix inversion. If the Jacobian matrix is not a square matrix or is not invertible (e.g., when the robot is at a singularity), then pseudo-inverse or other numerical methods are needed to calculate the Jacobian inverse matrix.
[0044] It should be explained that the number of rows in the Jacobian inverse matrix corresponds to the number of joints in the joint set; the number of columns in the Jacobian inverse matrix corresponds to the degrees of freedom of the robot's end effector. The joint set may contain at least one joint of the robot. A robotic arm capable of omnidirectional movement may have 6 degrees of freedom (3 translational degrees of freedom and 3 rotational degrees of freedom), each degree of freedom representing an independently controllable motion parameter, typically related to the rotation or translation of a joint.
[0045] S120. Determine the influence factor of each joint on the Cartesian free direction based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction.
[0046] Specifically, after determining the Jacobian inverse matrix, the influence factor of each joint on the Cartesian free direction can be determined based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction. Here, Cartesian space velocity refers to the velocity of the robot's end-effector in the Cartesian coordinate system (usually three-dimensional space), including translational and rotational velocities, which can be calculated using the Jacobian matrix. For example, joint velocity refers to the angular velocity of each joint of the robot. Joint velocity can be determined using the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction. For example, if the degree of freedom in the free direction is m (m≤6), the Cartesian space velocity can be expressed as... in, Let the velocity be expressed as the Cartesian space velocity over m degrees of freedom. The joint velocities of the 6 joints can be expressed as... Then we have:
[0047]
[0048] Following the above description, after determining the joint velocities of each joint, the influence factor of each joint's joint velocity on the Cartesian free direction can be determined. Here, the free direction refers to the direction of motion that a robot joint can change during traction.
[0049] S130. Set the current motion control mode for each joint in the joint set according to the influencing factor. The current motion control mode includes torque mode and position mode.
[0050] Specifically, after determining the influence factors of the joint velocities of each joint on the Cartesian free direction, the current motion control mode of each joint can be set according to the values of each influence factor. For example, the current motion control mode of each joint can be determined based on the magnitude of the values of each influence factor. The current motion control mode includes a torque mode and a position mode.
[0051] It should be noted that in position mode (non-dominant axis), the position of the robot's joints or end effector is specified and controlled. The robot can calculate and send appropriate joint angle or position commands based on a given target position to enable the robot to reach the target position. In torque mode (dominant axis), the robot responds to feedback from external forces or torques to maintain a predetermined force or torque level.
[0052] This embodiment provides a robot joint control method, including: determining the Jacobian inverse matrix corresponding to a set of robot joints based on a robot kinematic model; the set of joints includes at least one joint of the robot; the number of rows in the Jacobian inverse matrix corresponds to the number of joints in the set of joints; the number of columns in the Jacobian inverse matrix corresponds to the degrees of freedom of the robot's end effector; determining the influence factor of each joint on the Cartesian free direction based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the set of joints in the free direction; setting the current motion control mode of each joint in the set of joints based on the influence factor, the current motion control mode including torque mode and position mode, thereby realizing flexible adjustment of the current joint motion control mode and flexible control of Cartesian motion.
[0053] As an optional implementation of this embodiment, the robot joint control method provided in this embodiment further includes:
[0054] 1) If the motion control mode of the joint is the position mode, then obtain the Cartesian pose change vector of the end effector in the non-free direction;
[0055] In this embodiment, if the joint's motion control mode is position mode (non-dominant axis), a detection device can be used to detect the pose change vector of the end effector in the non-free direction.
[0056] An end effector is a device installed at the end of a robot arm to perform specific tasks or operations. It is a key component that allows the robot to directly interact with its external environment, enabling it to perform various practical tasks such as grasping, handling, assembly, painting, and welding.
[0057] 2) The joint velocity of the joint is determined based on the Cartesian pose change vector and the Jacobian inverse matrix of the joint corresponding to the position pattern, and the joint actuator controls the joint based on the joint velocity.
[0058] Specifically, the joint velocity of the joint can be determined based on the Cartesian pose change vector and the Jacobian inverse matrix of the joint corresponding to the position mode. For example, assuming the degrees of freedom in the Cartesian free direction are m (m≤6) and the degrees of freedom in the non-free direction are n (n=6-m), then the number of joints (dominant axes) in the torque mode is m, and the number of joints (non-dominant axes) in the position mode is n. The pose change dr of the end effector in the non-free direction is detected. n×1 The inverse of the Jacobian matrix of the non-free direction relative to the non-dominant axis is used. Calculate the joint variation dq corresponding to the non-dominant axis. n×1 :
[0059]
[0060] Here, n can be the degree of freedom in the non-free direction. It should be explained that, because in a robot, 6 joints can correspond to 6 Cartesian degrees of freedom, the Jacobian matrix or Jacobian inverse matrix is usually a 6×6 matrix. If the current control mode of each joint is set to torque mode (dominant axis), such as the current motion control mode of the robot's 1st, 2nd, and 3rd joints being torque mode (dominant axis), then the Jacobian matrix corresponding to these 3 dominant axes is a submatrix formed by taking the first 3 columns of the 6×6 Jacobian matrix. That is, the Jacobian matrix of the robot's 1st, 2nd, and 3rd joints is a 6×3 Jacobian matrix. The 6×3 Jacobian matrix is also a Jacobian matrix, but it is a Cartesian matrix with 6 degrees of freedom relative to the 3 dominant axes. At the same time, the inverse Jacobian matrix corresponding to the 3 dominant axes is a submatrix formed by taking the first 3 rows of the 6×6 inverse Jacobian matrix. That is, the inverse Jacobian matrix of the robot's 1st, 2nd, and 3rd joints is a 3×6 inverse Jacobian matrix, which is also a Jacobian matrix, but it is a Cartesian matrix with 6 degrees of freedom relative to the 3 dominant axes.
[0061] As described above, after the joint velocity of the joint is determined, the joint actuator of the joint can control the joint according to the joint velocity, so that the joint exhibits high stiffness characteristics in the Cartesian non-free direction.
[0062] It should be noted that once the current motion control mode of each joint is determined, the technical solution provided in this embodiment can be executed cyclically to identify the motion control mode of each joint.
[0063] As an optional implementation of this embodiment, the robot joint control method provided in this embodiment further includes:
[0064] 1) If the historical motion control mode of the joint is torque mode and the current motion control mode is position mode, then a fifth-order polynomial programming is used to make the position loop control gain reach a first target threshold within a first preset time, so that the torque mode transitions to the position mode.
[0065] In this embodiment, the torque mode can perform torque feedforward control based on the expected torque calculated using the joint impedance control model, while the position mode can perform position feedback control based on the position error. It is known that if the joint's historical motion control mode is torque mode and the current motion control mode is position mode, fifth-order polynomial programming can be used to make the position loop control gain reach a first target threshold within a first preset time, thus transitioning the torque mode to the position mode. Here, the first preset time can be a pre-set time, and the first target threshold can be a pre-set threshold. For example, the first preset time can be 100ms, and the first target threshold can be 100, allowing the position loop control gain to rise to 100 within 100ms using fifth-order polynomial programming.
[0066] Fifth-order polynomial programming can be used as a method for robot motion planning, allowing the robot to move smoothly between two points while satisfying velocity and acceleration constraints. Position control gain determines the response characteristics and accuracy of the robotic arm in position control mode. Increasing the position control gain can improve the positioning stiffness of the robotic arm and reduce position hysteresis, but excessive gain may lead to mechanical vibration or overshoot.
[0067] 2) If the historical motion control mode of the joint is position mode and the current motion control mode is torque mode, then a fifth-order polynomial programming is used to make the position loop control gain reach the second target threshold within a first preset time, so that the position mode transitions to torque mode.
[0068] It is known that if the joint's historical motion control mode is position mode and the current motion control mode is torque mode, then a fifth-order polynomial programming method is used to make the position loop control gain reach a second target threshold within a first preset time. The second target threshold can be a pre-set threshold. For example, if the second target threshold can be 0, a fifth-order polynomial programming method can be used to make the position loop control gain rise to a pre-set value within 100ms, so that the position mode transitions to torque mode.
[0069] For example, the expression for the fifth-degree polynomial of the position loop control gain with respect to time t is:
[0070] k(t) = a0 + a1t + a2t 2 +a3t 3 +a4t 4 +a5t 5
[0071] Specifically, the initial position control gain can be represented as k1, and the final control gain as k2. a0, a1, a2, a3, a4, and a5 are the coefficients of the position control gain. Taking the constraint that the control gain's velocity and acceleration with respect to time can both be zero in the initial and final states as constraints, and based on the time and position of the initial and final states, the coefficients of the fifth-order polynomial can be obtained from the initial position control gain k1 and the final control gain k2:
[0072]
[0073] As an optional implementation of this embodiment, determining the influence factor of each joint on the Cartesian free direction based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction includes:
[0074] 1) Determine a first velocity vector based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction. The first velocity vector includes the joint velocity of each joint.
[0075] In this embodiment, a first velocity vector can be determined based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction. The first velocity vector includes the joint velocity of each joint.
[0076] For example, if the degrees of freedom in the free direction are m (m<=6), the Jacobian inverse matrix can be expressed as:
[0077]
[0078] The Cartesian space velocity of each joint in the free direction can be expressed as: The first velocity vector is represented as: Then we have:
[0079]
[0080] 2) Determine the projection matrix of each joint in the free direction based on the second velocity matrix and the Jacobian matrix; the elements of the main diagonal of the second velocity matrix are the same as the elements of the first velocity vector, and the non-main diagonal elements of the second velocity matrix are 0; the Jacobian matrix is calculated by the robot kinematic model.
[0081] Specifically, the projection matrix of each joint in the free direction can be determined based on the second velocity matrix and the Jacobian matrix. The elements of the main diagonal of the second velocity matrix are the same as the elements of the first velocity vector, and the non-main diagonal elements of the second velocity matrix are 0. The Jacobian matrix is calculated through the robot kinematic model.
[0082] For example, the second velocity matrix can be represented as Here, `diag()` can be a function used to construct a diagonal matrix, meaning that the elements on the main diagonal of the second velocity matrix are the same as those in the first velocity vector, and the elements on the off-diagonal of the second velocity matrix are 0. The Jacobian matrix can be represented as J... q (q), the projection matrix can be represented as R 6×6 Then we have:
[0083]
[0084] 3) Determine the influence factor of the joint velocity of each joint on the Cartesian free direction based on the projection matrix.
[0085] Specifically, after the projection matrix is determined, the influence factor of each joint on the Cartesian free direction can be determined based on the projection matrix.
[0086] For example, the influence factor of each joint on the Cartesian free direction can be expressed as k. 6×1 Then we have:
[0087]
[0088] It should be noted that if the influence factor is positive, it can be determined that the joint velocity of each joint has a positive impact on the Cartesian free direction; if the influence factor is negative, it can be determined that the joint velocity of each joint has a negative impact on the Cartesian free direction.
[0089] As an optional implementation of this embodiment, setting the current motion control mode of each joint in the joint set according to the influencing factor includes:
[0090] 1) The impact factors that meet the first preset condition are determined as the first set of impact factors;
[0091] In this embodiment, after obtaining the influence factors of each joint on the Cartesian free direction, the influence factors that meet the first preset condition can be determined as the first set of influence factors. The first preset condition can be a condition for screening the influence factors, such as screening out influence factors with an influence factor greater than 0.
[0092] 2) Identify the impact factors in the first set of impact factors that meet the second preset condition as target impact factors;
[0093] Following the above description, after the first set of impact factors is determined, the impact factors in the first set of impact factors can be screened according to a second preset condition. The second preset condition can be a set of criteria for screening the impact factors in the first set of impact factors. For example, the second preset condition could be: selecting a preset number of impact factors from the first set based on the degree of linear independence of the corresponding joints of each impact factor. The preset number could be the number of the target impact factor set. For instance, the preset number could be 5, then the second preset condition could be: selecting the 5 impact factors with the highest degree of linear independence of their corresponding joints from the impact factors greater than 0 as the target impact factors.
[0094] For example, select m joints from the joints corresponding to the first set of influence factors (producing positive influence), use the projection vectors of these joints in the free direction to form a matrix, calculate the minimum singular value of the matrix, and use the value to evaluate the linear independence of these m joints in the free direction. The larger the minimum singular value, the greater the linear independence.
[0095] As described above, the first set of impact factors that meet the second preset conditions are identified as the target impact factors.
[0096] 3) Set the current motion control mode of the joint corresponding to the target influencing factor to the torque mode, and make the joint exhibit low stiffness characteristics according to the joint impedance control model.
[0097] Specifically, after the target influence factor is determined, the current motion control mode of the joint corresponding to the target influence factor can be set to torque mode, and the joint in torque mode can exhibit low stiffness characteristics through the joint impedance control model.
[0098] In this embodiment, the joint impedance control model can be a method used to describe how a robot adjusts its joint behavior to simulate certain physical impedance characteristics when interacting with its environment through a control algorithm. For example, the joint impedance control model can be expressed as:
[0099]
[0100] in, Represents joint angular acceleration. τ represents the joint angular velocity, q represents the joint angle, and τ represents the joint angle. ext Let M represent the external force, D represent the moment of inertia, D represent the desired damping, and K represent the desired stiffness. Appropriate impedance parameters are set according to the joint impedance model to make the dominant axis exhibit low stiffness characteristics.
[0101] Specifically, the values of M, D, and K can be set to make the joint impedance control model work, so that the joint exhibits low stiffness characteristics.
[0102] As an optional implementation of this embodiment, the step of setting the current motion control mode of each joint in the joint set according to the influencing factor further includes:
[0103] 1) The impact factors that do not meet the first preset condition and the second preset condition are determined as the second set of impact factors;
[0104] Specifically, the impact factors that do not meet the first and second preset conditions can be defined as the second set of impact factors. For example, the impact factors in the second set of impact factors can be negative numbers.
[0105] 2) Set the current motion control mode of the joints corresponding to each of the second set of influencing factors to the position mode.
[0106] Specifically, the current motion control mode of the joints corresponding to each influence factor in the second set of influence factors is set to position mode (non-dominant axis).
[0107] Example 2
[0108] Figure 2 This is a schematic diagram of the structure of a robot joint control device provided in Embodiment 2 of this disclosure; as shown Figure 2 As shown, the device includes: an inverse matrix determination module 210, an influence factor determination module 220, and a current motion control mode determination module 230.
[0109] The inverse matrix determination module 210 is used to determine the Jacobian inverse matrix corresponding to the joint set of the robot based on the robot kinematic model; the joint set contains at least one joint of the robot; the number of rows of the Jacobian inverse matrix corresponds to the number of joints in the joint set; and the number of columns of the Jacobian inverse matrix corresponds to the degrees of freedom of the robot's end effector.
[0110] The influence factor determination module 220 is used to determine the influence factor of each joint on the Cartesian free direction based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction.
[0111] The current motion control mode determination module 230 is used to set the current motion control mode of each joint in the joint set according to the influencing factor. The current motion control mode includes torque mode and position mode.
[0112] Embodiment 2 of this disclosure provides a robot joint control device that enables flexible adjustment of joint motion control modes.
[0113] Furthermore, the impact factor determination module 220 is also used for:
[0114] A first velocity vector is determined based on the Jacobian inverse matrix and the Cartesian space velocities of each joint in the joint set in the free direction. The first velocity vector includes the joint velocities of each joint.
[0115] The projection matrix of each joint in the free direction is determined based on the second velocity matrix and the Jacobian matrix; the elements of the main diagonal of the second velocity matrix are the same as the elements of the first velocity vector, and the non-main diagonal elements of the second velocity matrix are 0; the Jacobian matrix is calculated through the robot kinematic model.
[0116] The influence factor of each joint on the Cartesian free direction is determined based on the projection matrix.
[0117] Furthermore, the current motion control mode determination module 230 is also used for:
[0118] The influence factors that satisfy the first preset condition among the influence factors of each joint on the Cartesian free direction are determined as the first set of influence factors.
[0119] The impact factors in the first set of impact factors that meet the second preset condition are determined as target impact factors;
[0120] Set the current motion control mode of the joint corresponding to the target influencing factor to the torque mode, and make the joint exhibit low stiffness characteristics according to the joint impedance control model.
[0121] Furthermore, the current motion control mode determination module 230 is also used for:
[0122] The influence factors of each joint on the Cartesian free direction that do not meet the first preset condition are determined as the second set of influence factors.
[0123] Set the current motion control mode of the joints corresponding to each of the second set of influencing factors to the position mode.
[0124] Furthermore, the device also includes:
[0125] The Cartesian pose change vector acquisition module is used to acquire the Cartesian pose change vector of the end effector of the joint in the non-free direction if the motion control mode of the joint is the position mode.
[0126] The control module is used to determine the joint velocity of the joint based on the Cartesian pose change vector and the Jacobian inverse matrix of the joint corresponding to the position pattern, and the joint actuator of the joint controls the joint based on the joint velocity.
[0127] Furthermore, the device also includes:
[0128] The first position loop control gain control module is used to make the position loop control gain reach a first target threshold within a first preset time if the historical motion control mode of the joint is torque mode and the current motion control mode is position mode, so as to make the torque mode transition to position mode.
[0129] The second position control gain module is used to make the position control gain reach a second target threshold within a first preset time if the historical motion control mode of the joint is position mode and the current motion control mode is torque mode, so as to make the position control gain reach a second target threshold within a first preset time, so as to make the position mode transition to torque mode.
[0130] The robot joint control device provided in this disclosure can execute the robot joint control method provided in any embodiment of this disclosure, and has the corresponding functional modules and beneficial effects of the execution method.
[0131] Example 3
[0132] Figure 3 A schematic diagram of the structure of an electronic device 10 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the embodiments of the present disclosure described and / or claimed herein.
[0133] like Figure 3 As shown, the electronic device 10 includes at least one processor 11 and a memory, such as a read-only memory (ROM) 12 or a random access memory (RAM) 13, communicatively connected to the at least one processor 11. The memory stores computer programs executable by the at least one processor. The processor 11 can perform various appropriate actions and processes based on the computer program stored in the ROM 12 or loaded from storage unit 18 into the RAM 13. The RAM 13 may also store various programs and data required for the operation of the electronic device 10. The processor 11, ROM 12, and RAM 13 are interconnected via a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.
[0134] Multiple components in electronic device 10 are connected to I / O interface 15, including: input unit 16, such as keyboard, mouse, etc.; output unit 17, such as various types of displays, speakers, etc.; storage unit 18, such as disk, optical disk, etc.; and communication unit 19, such as network card, modem, wireless transceiver, etc. Communication unit 19 allows electronic device 10 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0135] Processor 11 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microprocessor, etc. Processor 11 performs the various methods and processes described above, such as robot joint control methods.
[0136] In some embodiments, the robot joint control method may be implemented as a computer program tangibly contained in a computer-readable storage medium, such as storage unit 18. In some embodiments, part or all of the computer program may be loaded and / or mounted on electronic device 10 via ROM 12 and / or communication unit 19. When the computer program is loaded into RAM 13 and executed by processor 11, one or more steps of the robot joint control method described above may be performed. Alternatively, in other embodiments, processor 11 may be configured to perform the robot joint control method by any other suitable means (e.g., by means of firmware).
[0137] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0138] Computer programs for implementing the methods of embodiments of this disclosure may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor, the computer programs cause the functions / operations specified in the flowcharts and / or block diagrams to be performed. The computer programs may be executed entirely on a machine, partially on a machine, or as a standalone software package, partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0139] In the context of embodiments of this disclosure, a computer-readable storage medium may be a tangible medium that may contain or store a computer program for use by or in conjunction with an instruction execution system, apparatus, or device. A computer-readable storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. Alternatively, a computer-readable storage medium may be a machine-readable signal medium. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0140] To provide interaction with a user, the systems and techniques described herein can be implemented on an electronic device having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the electronic device. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0141] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as data servers), or computing systems that include middleware components (e.g., application servers), or computing systems that include frontend components (e.g., user computers with graphical user interfaces or web browsers through which users can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., communication networks). Examples of communication networks include local area networks (LANs), wide area networks (WANs), blockchain networks, and the Internet.
[0142] A computing system can include clients and servers. Clients and servers are generally located far apart and typically interact through communication networks. The client-server relationship is created by computer programs running on the respective computers and having a client-server relationship with each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a hosting product within the cloud computing service system to address the shortcomings of traditional physical hosts and VPS services, such as high management difficulty and weak business scalability.
[0143] It should be understood that the various forms of processes shown above can be used to reorder, add, or delete steps. For example, the steps described in the embodiments of this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution of the embodiments of this disclosure can be achieved, and this document does not impose any limitations.
[0144] The specific embodiments described above do not constitute a limitation on the scope of protection of the embodiments disclosed herein. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the embodiments disclosed herein should be included within the scope of protection of the embodiments disclosed herein.
[0145] This disclosure also provides a computer program product, including a computer program and / or instructions, which, when executed by a processor, implements the robot joint control method provided in any embodiment of this application.
[0146] In implementing a computer program product, computer program code for performing the operations of the embodiments of this disclosure 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++, as well as conventional procedural programming languages such as C or similar 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).
[0147] Note that the above are merely preferred embodiments and the technical principles applied in this disclosure. Those skilled in the art will understand that this disclosure is not limited to the specific embodiments described herein, and various obvious changes, readjustments, and substitutions can be made without departing from the protection scope of this disclosure. Therefore, although the embodiments of this disclosure have been described in detail above, this disclosure is not limited to the above embodiments. More other equivalent embodiments may be included without departing from the concept of this disclosure, and the scope of this disclosure is determined by the scope of the appended claims.
Claims
1. A robot joint control method, characterized in that, The method includes: The Jacobian inverse matrix corresponding to the robot's joint set is determined based on the robot's kinematic model; the joint set contains at least one joint of the robot; the number of rows in the Jacobian inverse matrix corresponds to the number of joints in the joint set; the number of columns in the Jacobian inverse matrix corresponds to the degrees of freedom of the robot's end effector. The influence factor of each joint on the Cartesian free direction is determined based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction. The current motion control mode of each joint in the joint set is set according to the influencing factor. The current motion control mode includes torque mode and position mode.
2. The method according to claim 1, characterized in that, The determination of the influence factor of each joint on the Cartesian free direction based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set includes: A first velocity vector is determined based on the Jacobian inverse matrix and the Cartesian space velocities of each joint in the joint set in the free direction. The first velocity vector includes the joint velocities of each joint. The projection matrix of each joint in the free direction is determined based on the second velocity matrix and the Jacobian matrix; the elements of the main diagonal of the second velocity matrix are the same as the elements of the first velocity vector, and the non-main diagonal elements of the second velocity matrix are 0; the Jacobian matrix is calculated through the robot kinematic model. The influence factor of each joint on the Cartesian free direction is determined based on the projection matrix.
3. The method according to claim 1, characterized in that, The step of setting the current motion control mode for each joint in the joint set according to the influencing factor includes: The impact factors that meet the first preset condition are determined as the first set of impact factors; The impact factors in the first set of impact factors that meet the second preset condition are determined as target impact factors; Set the current motion control mode of the joint corresponding to the target influencing factor to the torque mode, and make the joint exhibit low stiffness characteristics according to the joint impedance control model.
4. The method according to claim 3, characterized in that, The step of setting the current motion control mode for each joint in the joint set according to the influencing factor further includes: The impact factors that do not meet the first preset condition and the second preset condition are identified as the second set of impact factors. Set the current motion control mode of the joints corresponding to each of the second set of influencing factors to the position mode.
5. The method according to claim 1, characterized in that, The method further includes: If the motion control mode of the joint is position mode, then obtain the Cartesian pose change vector of the end effector in the non-free direction; The joint velocity of the joint is determined based on the Cartesian pose change vector and the Jacobian inverse matrix of the joint corresponding to the position pattern, and the joint actuator controls the joint based on the joint velocity.
6. The method according to claim 1, characterized in that, The method further includes: If the historical motion control mode of the joint is torque mode and the current motion control mode is position mode, then fifth-order polynomial programming is used to make the position loop control gain reach the first target threshold within the first preset time, so that the torque mode transitions to the position mode. If the historical motion control mode of the joint is position mode and the current motion control mode is torque mode, then a fifth-order polynomial programming is used to make the position loop control gain reach the second target threshold within a first preset time, so that the position mode transitions to torque mode.
7. A robot joint control device, characterized in that, include: The inverse matrix determination module is used to determine the Jacobian inverse matrix corresponding to the joint set of the robot based on the robot's kinematic model; The joint set includes at least one joint of the robot; The number of rows in the Jacobian inverse matrix corresponds to the number of joints in the joint set; the number of columns in the Jacobian inverse matrix corresponds to the degrees of freedom of the robot's end effector. The influence factor determination module is used to determine the influence factor of each joint on the Cartesian free direction based on the Jacobian inverse matrix and the Cartesian space velocity of each joint in the joint set in the free direction. The current motion control mode determination module is used to set the current motion control mode of each joint in the joint set according to the influencing factor. The current motion control mode includes torque mode and position mode.
8. An electronic device, characterized in that, include: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the robot joint control method as described in any one of claims 1-6.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that, When executed by the processor, the program implements the robot joint control method as described in any one of claims 1-6.
10. A computer program product, characterized in that, The computer program product includes a computer program that, when executed by a processor, implements the robot joint control method as described in any one of claims 1-6.
Citation Information
Patent Citations
Motion planning model for automobile welding robot
CN109807892A
Redundant mechanical arm control method and device, readable storage medium and equipment
CN113119100A