Multi-joint control method, controller, and computer-readable storage medium

WO2026137584A1PCT designated stage Publication Date: 2026-07-02BEIJING INSTITUTE FOR GENERAL ARTIFICIAL INTELLIGENCE

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
BEIJING INSTITUTE FOR GENERAL ARTIFICIAL INTELLIGENCE
Filing Date
2025-02-25
Publication Date
2026-07-02

Smart Images

  • Figure CN2025078992_02072026_PF_FP_ABST
    Figure CN2025078992_02072026_PF_FP_ABST
Patent Text Reader

Abstract

A multi-joint control method, a controller, and a computer-readable storage medium. The multi-joint control method comprises: constructing a joint control function; on the basis of acquired desired positions of multiple joints and the joint control function, obtaining motion data of each joint; and on the basis of the motion data, controlling all the joints to move to the desired positions. By constructing a joint control function, obtaining motion data of all the joints on the basis of desired positions of all the joints and the joint control function, and controlling, on the basis of the motion data, all the joints to move simultaneously, the purpose of improving the control efficiency and coordination is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Multi-joint control method, controller and computer-readable storage medium

[0001] Priority Statement

[0002] This application claims priority to Chinese invention patent filed on December 26, 2024, application number 2024119334597, entitled "Multi-joint control method, device, electronic device, medium and program product", all contents of which are incorporated herein by reference. Technical Field

[0003] This invention belongs to the field of robot control technology, and in particular relates to a multi-joint control method, a controller, and a computer-readable storage medium. Background Technology

[0004] In fields such as virtual humans, embodied intelligence, and robots, joint control is a key technology. Existing technologies control joints one by one to control virtual humans, embodied intelligence, and robots to complete complex actions. However, they cannot simultaneously control all joints of an action to reach the desired position. During the implementation of this embodiment, the inventors discovered that existing technologies for controlling individual joints have problems such as low control efficiency and poor coordination. Summary of the Invention

[0005] In view of the problems existing in the prior art, the present invention provides a multi-joint control method, controller and computer-readable storage medium, which at least partially solves the problems of low control efficiency and poor coordination in the prior art.

[0006] In a first aspect, embodiments of this disclosure provide a multi-joint control method, comprising: constructing a joint control function; obtaining motion data for each joint based on the acquired desired positions of the multiple joints and the joint control function; and controlling all joints to move to the desired positions based on the motion data.

[0007] Optionally, the joint control function is based on the rotation R of joint j in the local coordinate system. j Given R j The actual position P of joint i i and the desired position EP of joint i. i Build.

[0008] Optionally, the R j The calculation method includes: if joint j has a child joint, calculating the normal direction of the line connecting the child joint and the parent joint in the standard pose and the current pose, and calculating the minimum rotation R that satisfies the normal transformation of the two lines. jIf joint j has multiple sub-joints, then in both the standard pose and the current pose, form point sets by the position of joint j and the positions of its sub-joints, and use singular value decomposition to calculate the rotation R between the two point sets. j .

[0009] Optionally, obtaining motion data for each joint based on the acquired desired positions of multiple joints and joint control functions includes: establishing a system capable of determining motion data for each joint based on R... j Calculate P i A tree-like computational structure, where tree nodes store the rotation data R of the joints. j and offset data t j ; Set R j The initial values ​​are the joint rotation values ​​under the standard pose of the virtual character; the tree-shaped calculation structure is updated layer by layer to calculate the actual position P of each joint. i And calculate the joint position error; based on the relationship of the set threshold of the joint position error, obtain the actual position P of each joint. i .

[0010] Optionally, the actual position P of each joint is obtained based on the relationship between the set threshold of joint position error and the actual position error. i This includes: if the updated value of the joint position error is not less than a set threshold, calculating the joint position error relative to the rotation R. j The first-order partial derivatives are used to form the Jacobian matrix J and the Hessian matrix H; R is updated based on the Hessian matrix H. j Based on the updated R j The tree-like computational structure is updated layer by layer to obtain the actual position P of each joint. i If the updated value of the joint position error is less than the set threshold, the calculation stops.

[0011] Optionally, the formula for calculating joint position error is E. i =P i -EP i , of which E i For joint position error, P i For the actual position of the joint, EP i This represents the desired position of the joint.

[0012] Secondly, embodiments of this disclosure also provide a controller for an intelligent agent, including a memory and a processor, wherein the processor communicates with the memory, and the controller is configured to: construct joint control functions; obtain motion data for each joint based on the acquired desired positions of multiple joints and the joint control functions; and control all joints to move to the desired positions based on the motion data.

[0013] Thirdly, embodiments of this disclosure also provide a computer-readable storage medium storing computer instructions, the computer-readable storage medium including: constructing a joint control function; obtaining motion data for each joint based on the acquired desired positions of multiple joints and the joint control function; and controlling all joints to move to the desired positions based on the motion data.

[0014] The present invention provides a multi-joint control method, a controller, and a computer-readable storage medium. The multi-joint control method constructs joint control functions, obtains motion data of all joints based on the desired positions of all joints and the joint control functions, and controls all joints to move simultaneously according to the motion data, thereby improving control efficiency and coordination. Attached Figure Description

[0015] The above and other objects, features and advantages of this disclosure will become more apparent from the accompanying drawings, in which like reference numerals generally denote like parts.

[0016] Figure 1 is a flowchart of a multi-joint control method provided in an embodiment of this disclosure;

[0017] Figure 2 is a schematic block diagram of the electronic device provided in an embodiment of this disclosure. Detailed Implementation

[0018] The embodiments of this disclosure will now be described in detail with reference to the accompanying drawings.

[0019] It should be understood that the following specific examples illustrate the implementation of this disclosure, and those skilled in the art can easily understand other advantages and effects of this disclosure from the content disclosed in this specification. Obviously, the described embodiments are only a part of the embodiments of this disclosure, and not all of them. This disclosure can also be implemented or applied through other different specific implementation methods, and the details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of this disclosure. It should be noted that, in the absence of conflict, the following embodiments and features in the embodiments can be combined with each other. Based on the embodiments in this disclosure, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.

[0020] It should be noted that various aspects of embodiments within the scope of the appended claims are described below. It will be apparent that the aspects described herein can be embodied in a wide variety of forms, and any particular structure and / or function described herein is merely illustrative. Based on this disclosure, those skilled in the art will understand that one aspect described herein can be implemented independently of any other aspect, and two or more of these aspects can be combined in various ways. For example, any number of aspects set forth herein can be used to implement the device and / or practice the method. Additionally, this device and / or method can be implemented using structures and / or functionalities other than one or more of the aspects set forth herein.

[0021] It should also be noted that the illustrations provided in the following embodiments are only schematic representations of the basic concept of this disclosure. The illustrations only show the components related to this disclosure and are not drawn according to the number, shape and size of the components in actual implementation. In actual implementation, the form, quantity and proportion of each component can be arbitrarily changed, and the layout of the components may also be more complex.

[0022] Furthermore, specific details are provided in the following description to facilitate a thorough understanding of the examples. However, those skilled in the art will understand that the described aspects can be practiced without these specific details.

[0023] Multi-joint control is a crucial technique in robotics and automation, involving the precise control of multiple joints to achieve desired motion. Below are the detailed steps and explanations of the multi-joint control method you mentioned, along with further extensions:

[0024] Joint techniques include:

[0025] Constructing the joint control function: Constructing the joint control function is the first step in multi-joint control methods. This function is typically based on the robot's dynamic model, including the joint space mass matrix, Coriolis forces, and gravitational torques. These parameters can be calculated using corresponding functions, such as the `massMatrix` function to calculate the mass matrix, the `velocityProduct` function to calculate the Coriolis forces, and the `gravityTorque` function to calculate the gravitational torques. The goal of the control function is to calculate the required torques to drive the joints to the desired position and velocity.

[0026] When constructing joint control functions, we first need to understand the robot's physical structure and dynamic characteristics. This includes the type of joint (such as rotary or linear joints), the geometric parameters of the joints (such as joint length, link length, and mass distribution), and the connection methods between joints. This information is crucial for building an accurate dynamic model.

[0027] Establishing a dynamic model: The establishment of a dynamic model usually begins with the Lagrange equations, which describe the relationship between the rate of change of the system's kinetic and potential energy and the forces and torques acting on the system. For multi-joint robots, the Lagrange equations can be used.

[0028] Calculation of the mass matrix: The mass matrix is ​​a symmetric positive definite matrix that describes the inertial properties of the robot's joints. Calculating the mass matrix typically involves calculating and transforming the inertia tensor of each link in the robot. The inertia tensor is a 3x3 matrix that describes the inertial properties of a link relative to its center of mass. By transforming the inertia tensor of each link to the joint coordinate system and considering the connections between the links, we can construct the mass matrix of the entire robot.

[0029] Calculation of Coriolis and Centrifugal Forces: Coriolis and centrifugal forces are caused by the acceleration and angular velocity of robot joints, and they affect the robot's motion. Calculating Coriolis and centrifugal forces involves analyzing the robot's joint velocities and accelerations, and how these velocities and accelerations affect the robot's dynamic characteristics.

[0030] Calculation of gravitational torque: Gravitational torque is the torque exerted by Earth's gravity on the links of the robot. Calculating gravitational torque requires considering the center of mass and mass of each link, as well as their positions relative to the joint coordinate system. By summing the gravitational torque vectors of each link, we can obtain the gravitational torque vector of the entire robot.

[0031] Motion data for each joint is obtained based on the desired positions of the multiple joints and the joint control functions.

[0032] After obtaining the joint control functions, the next step is to calculate the motion data for each joint based on the desired position and velocity. This typically involves solving an inverse kinematics problem, i.e., deriving the joint angles from the position and orientation of the end effector. The joint control functions are then used to calculate the torque or force required to achieve these desired positions and velocities. In some cases, it may also be necessary to consider the joint's dynamic characteristics, such as its natural frequency and damping ratio; these parameters are often used in designing controllers, such as PD controllers, to improve the system's dynamic response.

[0033] Solving inverse kinematics: Inverse kinematics is the process of calculating the joint angles of a robot, given the position and orientation of the end effector. This problem typically does not have a unique solution because most robots have multiple degrees of freedom, meaning there can be many different combinations of joint angles to achieve the same end effector position. Methods for solving inverse kinematics include analytical methods, numerical methods, and geometric methods.

[0034] Desired Trajectory Planning: In practical applications, the robot's motion trajectory needs careful planning to ensure smoothness and efficiency. This involves planning the robot's acceleration, velocity, and position. Trajectory planning is typically achieved using mathematical tools such as polynomials, spline functions, or Bézier curves.

[0035] Controller Design: The design of the controller is crucial for achieving precise joint control. Common controllers include proportional-derivative (PD) controllers, proportional-integral-derivative (PID) controllers, and adaptive controllers. These controllers are designed based on the dynamic characteristics of the system and the control objectives to achieve precise control of the robot's joints.

[0036] Based on the motion data, all joints are moved to the desired position: the final step is the actual joint motion control. According to the calculated torque or force, the movement of each joint is controlled by an underlying servo system. This typically involves a closed-loop control system where the actual position and velocity of the joints are continuously monitored and compared with the desired values. The resulting error is used to adjust the control input to ensure that the joints accurately reach and track the desired position and velocity. In practice, this may involve different control strategies such as PID control, adaptive control, or model predictive control to adapt to different application scenarios and system characteristics.

[0037] Implementation of a closed-loop control system: A closed-loop control system adjusts the control input through feedback to reduce system errors. In multi-joint control systems, this typically involves real-time monitoring of the position, velocity, and acceleration of each joint. By comparing actual and desired values, the control system can calculate the required control torque and apply it to the servo motors of the joints.

[0038] Servo system response: A servo system is a joint component that enables precise joint control. It includes a motor, driver, and feedback device (such as an encoder). A servo system needs to respond quickly to control signals and accurately drive the joint to the desired position. The dynamic characteristics of a servo system, such as bandwidth and response time, have a significant impact on the performance of the entire control system.

[0039] Control strategy optimization: In practical applications, it may be necessary to optimize the control strategy based on different tasks and environments. This may involve adjusting controller parameters, improving the control algorithm, or developing new control strategies. The goal of optimization is to improve the system's stability, response speed, and accuracy.

[0040] Applications of multi-joint control methods: Multi-joint control methods have wide applications in many fields, including industrial automation, service robots, medical robots, and aerospace. In these applications, precise joint control is crucial for the efficiency and safety of task completion.

[0041] Industrial Automation: In the field of industrial automation, multi-joint robots are widely used for tasks such as assembly, welding, handling, and painting. Precise joint control can improve production efficiency, reduce waste, and improve product quality.

[0042] Service robots: Service robots, such as cleaning robots and food service robots, require precise joint control to achieve complex movements and interactions. This not only improves service efficiency but also enhances the user experience.

[0043] Medical robots: In the medical field, multi-joint robots are used for tasks such as surgical assistance, rehabilitation training, and drug delivery. Precise joint control is crucial for improving surgical accuracy and patient safety.

[0044] Aerospace: In the aerospace field, jointed robots are used in missions such as satellite assembly, space station maintenance, and Mars exploration. Precise joint control is crucial for ensuring mission success and astronaut safety in these missions.

[0045] Challenges of multi-joint control methods: Although multi-joint control methods have wide applications in many fields, they also face some challenges, including system complexity, nonlinearity and uncertainty.

[0046] System complexity: Multi-jointed robots typically possess complex dynamic characteristics, making the design and implementation of control algorithms difficult. Furthermore, the robot's working environment and task requirements also increase system complexity.

[0047] Nonlinearity: The dynamics of multi-joint robots are nonlinear, which complicates the design and analysis of control algorithms. Nonlinear systems may exhibit unpredictable behaviors such as chaos and bifurcation.

[0048] Uncertainty: In practical applications, robots may face various uncertainties, such as model errors, external disturbances, and environmental changes. These uncertainties pose challenges to the performance and stability of the control system.

[0049] Future development directions of multi-joint control methods: In order to overcome these challenges, the future development directions of multi-joint control methods include intelligent control, adaptive control, and learning control.

[0050] Intelligent control: Intelligent control methods, such as fuzzy control and neural network control, can handle the nonlinearity and uncertainty of a system. These methods can improve the robustness and adaptability of the control system.

[0051] Adaptive control: Adaptive control methods can automatically adjust controller parameters based on changes in system parameters and external disturbances. This can improve the robustness and performance of the control system.

[0052] Learning control: Learning control methods, such as reinforcement learning and model predictive control, can learn optimal control strategies through interaction with the environment. These methods can improve the adaptability and efficiency of control systems.

[0053] Multi-joint control methods are joint technologies used to achieve precise robot motion. By constructing joint control functions, calculating motion data, and implementing joint motion control, we can control multi-joint robots to perform complex tasks. Despite challenges, these methods can be improved through intelligent control, adaptive control, and learning control.

[0054] There are many factors that affect the performance of multi-joint control systems. Some of these joint-related factors are as follows:

[0055] Dynamic characteristics: Robots have complex dynamic characteristics such as time-varying, strong coupling, and nonlinearity, which have a significant impact on the performance and dynamic quality of the control system.

[0056] Uncertainties include unmodeled dynamics, parameter measurement errors, load changes, external disturbances, and friction between joints. These uncertainties can seriously affect the control performance of the system.

[0057] Physics engine performance: When simulating complex robotic systems, the accuracy and computational speed of the physics engine are crucial to the reliability of real-time simulations. Different physics engines perform differently in terms of stability, accuracy, and friction effectiveness, which affects the performance of multi-joint control systems.

[0058] Thermal effects: Temperature is a major factor affecting the lifespan of industrial robots. Various heat sources within the robot's joint modules, such as gear transmission systems, motor windings, and brake coils, can cause the robot to heat up rapidly if they cannot be effectively cooled, impacting the performance of the joint components.

[0059] Transmission accuracy and response parameters: The testing principles and methods for the transmission accuracy, response parameters, mechanical parameters and electrical parameters of a joint have a direct impact on joint performance.

[0060] The performance of the control system, including system structure design, resolution of measurement elements, and the influence of nonlinear elements, will affect the robot's low-speed motion performance.

[0061] Friction modeling and compensation: Joint friction modeling and compensation are crucial for improving the performance of low-speed motion.

[0062] The performance of the motor and reducer: The motor is responsible for generating force to rotate the joints, while the reducer reduces the motor's speed to increase the joint's torque. The performance of the motor and reducer directly affects the various postures and movements of the robotic arm.

[0063] Dynamic parameter identification: The accuracy of dynamic parameters has a significant impact on the control performance of the robot, including the difficulty of parameter identification and the efficiency of the identification algorithm.

[0064] Impedance control strategy: The design of impedance control strategy has a significant impact on the performance of multi-joint robots.

[0065] Synchronization control strategy: The synchronization control strategy of multi-joint industrial robots is very important for the robot's motion accuracy and stability. Different synchronization control strategies, such as PID control, adaptive control and model control, have different advantages and disadvantages.

[0066] Modular joint design: The design and performance of modular joints directly affect the performance of the robot, including the accurate testing and evaluation of its dynamic and static performance parameters.

[0067] These factors collectively determine the overall performance of a multi-joint control system, and therefore, these factors need to be considered comprehensively when designing and evaluating a multi-joint control system.

[0068] Based on research into existing multi-joint control technologies, this implementation proposes the following technical solutions:

[0069] For ease of understanding, as shown in Figure 1, this embodiment discloses a multi-joint control method, including:

[0070] Step S101: Construct the joint control function;

[0071] The joint control function is

[0072] Where Joints represents the set of all joints, Expected Joints represents the set of joints with expected positions, and R j P represents the rotation of joint j in the local coordinate system. i Indicates that given R j The actual position of joint i, EP i This represents the desired position of a given joint i.

[0073] Step S102: Obtain motion data for each joint based on the desired positions of the multiple joints and the joint control functions;

[0074] Optionally, the R j The calculation methods include:

[0075] If joint j has a child joint, calculate the normal direction of the line connecting the child joint and the parent joint in both the standard pose and the current pose, and calculate the minimum rotation R that satisfies the normal transformation of the two lines. j ;

[0076] If joint j has multiple sub-joints, then in both the standard pose and the current pose, form point sets by the positions of joint j and its sub-joints, and use singular value decomposition to calculate the rotation R between the two point sets. j .

[0077] Optionally, the process of obtaining motion data for each joint based on the acquired desired positions of multiple joints and joint control functions includes:

[0078] Establish a system that can be based on R j Calculate P i A tree-like computational structure, where tree nodes store the rotation data R of the joints. j and offset data t j ;

[0079] Set R j The initial values ​​are the joint rotation values ​​under the standard pose of the virtual character;

[0080] The tree-like computational structure is updated layer by layer to calculate the actual position P of each joint. i And calculate the joint position error;

[0081] The formula for calculating joint position error is E. i =P i -EP i ,

[0082] Among them, E i For joint position error, P i For the actual position of the joint, EP i This represents the desired position of the joint.

[0083] The actual position P of each joint is obtained based on a set threshold for joint position error. i .

[0084] Optionally, the actual position P of each joint is obtained based on the relationship between the set threshold of joint position error and the actual position error. i ,include:

[0085] If the updated value of the joint position error is not less than the set threshold, calculate the joint position error relative to the rotation R. j The first-order partial derivatives are used to form the Jacobian matrix J and the Hessian matrix H.

[0086] Update R based on Hessian matrix H j ;

[0087] Based on the updated R j The tree-like computational structure is updated layer by layer to obtain the actual position P of each joint. i ;

[0088] If the updated value of the joint position error is less than the set threshold, the calculation stops.

[0089] Step S103: Based on the motion data, control all joints to move to the desired position.

[0090] In specific implementation scenarios, the control of joints is transformed into obtaining a set of rotation angles for all joint degrees of freedom, so as to minimize the difference between the expected position and the actual position of the given multi-joint.

[0091] The process of calculating the rotation angle is as follows:

[0092] Step 1: Establish a system that can be based on R j Calculate P i A tree-like computational structure, where tree nodes store the rotation data R of the joints. j and offset data t j ;

[0093] Step 2, Set R j The initial values ​​are the joint rotation values ​​under the standard pose of the virtual character;

[0094] Step 3: Update the tree-like computational structure from Step 1 layer by layer, and calculate the actual position P of each joint. i And calculate the joint position error E i =P i -EP i ;

[0095] Step 4, if E i If the updated value is less than the specified threshold, the calculation stops, and the P obtained in step 3 is... i That is, the actual position of each joint, if E i If the updated value is not less than the specified threshold, continue to step 5;

[0096] Step 5: Calculate the joint position error E i Relative to rotation R j The first-order partial derivatives are used to form the Jacobian matrix J and the Hessian matrix H;

[0097] Step 6: Update R based on the Hessian matrix H j ;

[0098] Step 7: Update the tree-like computational structure layer by layer and calculate the actual position Pj of each joint.

[0099] Evaluating the performance of multi-joint control systems is a complex process involving multiple parameters and testing methods. Below are some performance evaluation metrics and methods for joints:

[0100] 1. Range of motion (ROM): This assesses the maximum angle a joint can move. It is an important indicator of joint flexibility.

[0101] 2. Effective load capacity: The maximum weight that the knuckles can support or manipulate, in kilograms.

[0102] 3. Torque: The ability of a joint to apply force is measured in torque, which is measured in Newton-meters. A high torque value indicates the strength of the joint and its ability to handle heavy loads or resist external forces.

[0103] 4. Stiffness: The resistance of a joint to deformation or deflection under load, measured in Newton-meters per arc minute.

[0104] 5. Velocity and Acceleration: In linear motion, the unit of velocity is meters per second, and the unit of acceleration is meters per second squared. For rotational motion, the unit is revolutions per minute.

[0105] 6. Response time: Measures how quickly a joint responds to control signals or commands, measured in milliseconds.

[0106] 7. Accuracy and precision: measures the ability of a joint to reach the desired position or follow a specific path with minimal deviation, typically measured in millimeters or micrometers.

[0107] 8. Repeatability: Measures the consistency of movement of a joint when it performs the same task or movement multiple times, quantified by the positional changes achieved during repeated execution of the same movement.

[0108] 9. Noise Level: Assess the amount of sound generated by the connector during operation, in decibels.

[0109] 10. Performance Parameter Testing: Joint performance parameters such as reverse starting torque, rated power, rated speed, rated torque, maximum permissible speed, peak torque, torque constant, efficiency, torque density, maximum permissible bending moment, maximum permissible axial load, maximum permissible radial load, absolute positioning accuracy, repeatability, position response time for step input, and position response bandwidth are all important indicators for evaluating robot joint performance.

[0110] 11. Testing Platform and Equipment: Using specialized testing platforms and equipment, such as multi-functional robot mechanical performance evaluation testing platforms, precise measurements of robot joint torque, speed, positioning accuracy, etc., can be performed.

[0111] 12. Control System Analysis: Analyze the performance of the joint control system using an oscilloscope, signal analyzer, and dedicated control software, and monitor the effectiveness of the control signals, feedback loops, and closed-loop control system.

[0112] 13. Energy consumption analysis: Use electricity meters and data logging equipment to measure the energy consumed by the robot joints during operation, assess energy efficiency, and identify areas where energy use can be optimized.

[0113] By using the above indicators and methods, the performance of multi-joint control systems can be comprehensively evaluated, ensuring the efficient, stable, and precise operation of robot systems.

[0114] This embodiment also discloses a controller for an intelligent agent, including a memory and a processor, wherein the processor communicates with the memory, and the controller is configured to;

[0115] Construct joint control functions;

[0116] The motion data of each joint is obtained based on the expected position of the multiple joints and the joint control function.

[0117] Based on the motion data, control all joints to move to the desired position.

[0118] Optionally, the joint control function is based on the rotation R of joint j in the local coordinate system. j Given R j The actual position P of joint i i and the desired position EP of joint i. i Build.

[0119] Optionally, the joint control function is based on the actual position P. i With expected location EP i Constructed by the straight-line distance between them.

[0120] Optionally, the R j The calculation methods include:

[0121] If joint j has a child joint, calculate the normal direction of the line connecting the child joint and the parent joint in both the standard pose and the current pose, and calculate the minimum rotation R that satisfies the normal transformation of the two lines. j ;

[0122] If joint j has multiple sub-joints, then in both the standard pose and the current pose, form point sets by the positions of joint j and its sub-joints, and use singular value decomposition to calculate the rotation R between the two point sets. j .

[0123] Optionally, the process of obtaining motion data for each joint based on the acquired desired positions of multiple joints and joint control functions includes:

[0124] Establish a system that can be based on R j Calculate P i A tree-like computational structure, where tree nodes store the rotation data R of the joints.j and offset data t j ;

[0125] Set R j The initial values ​​are the joint rotation values ​​under the standard pose of the virtual character;

[0126] The tree-like computational structure is updated layer by layer to calculate the actual position P of each joint. i And calculate the joint position error;

[0127] The actual position P of each joint is obtained based on a set threshold for joint position error. i .

[0128] Optionally, the actual position P of each joint is obtained based on the relationship between the set threshold of joint position error and the actual position error. i ,include:

[0129] If the updated value of the joint position error is not less than the set threshold, calculate the joint position error relative to the rotation R. j The first-order partial derivatives are used to form the Jacobian matrix J and the Hessian matrix H.

[0130] Update R based on Hessian matrix H j ;

[0131] Based on the updated R j The tree-like computational structure is updated layer by layer to obtain the actual position P of each joint. i ;

[0132] If the updated value of the joint position error is less than the set threshold, the calculation stops.

[0133] Optionally, the formula for calculating joint position error is E. i =P i -EP i ,

[0134] Among them, E i For joint position error, P i For the actual position of the joint, EP i This represents the desired position of the joint.

[0135] This embodiment also discloses a computer-readable storage medium that stores computer instructions, the computer-readable storage medium comprising:

[0136] Construct joint control functions;

[0137] The motion data of each joint is obtained based on the expected position of the multiple joints and the joint control function.

[0138] Based on the motion data, control all joints to move to the desired position.

[0139] Optionally, the joint control function is based on the rotation R of joint j in the local coordinate system. j Given R j The actual position P of joint i i and the desired position EP of joint i. i Build.

[0140] Optionally, the R j The calculation methods include:

[0141] If joint j has a child joint, calculate the normal direction of the line connecting the child joint and the parent joint in both the standard pose and the current pose, and calculate the minimum rotation R that satisfies the normal transformation of the two lines. j ;

[0142] If joint j has multiple sub-joints, then in both the standard pose and the current pose, form point sets by the positions of joint j and its sub-joints, and use singular value decomposition to calculate the rotation R between the two point sets. j .

[0143] Optionally, the process of obtaining motion data for each joint based on the acquired desired positions of multiple joints and joint control functions includes:

[0144] Establish a system that can be based on R j Calculate P i A tree-like computational structure, where tree nodes store the rotation data R of the joints. j and offset data t j ;

[0145] Set R j The initial values ​​are the joint rotation values ​​under the standard pose of the virtual character;

[0146] The tree-like computational structure is updated layer by layer to calculate the actual position P of each joint. i And calculate the joint position error;

[0147] The actual position P of each joint is obtained based on a set threshold for joint position error. i .

[0148] Optionally, the actual position P of each joint is obtained based on the relationship between the set threshold of joint position error and the actual position error. i ,include:

[0149] If the updated value of the joint position error is not less than the set threshold, calculate the joint position error relative to the rotation R. jThe first-order partial derivatives are used to form the Jacobian matrix J and the Hessian matrix H.

[0150] Update R based on Hessian matrix H j ;

[0151] Based on the updated R j The tree-like computational structure is updated layer by layer to obtain the actual position P of each joint. i ;

[0152] If the updated value of the joint position error is less than the set threshold, the calculation stops.

[0153] Optionally, the formula for calculating joint position error is E. i =P i -EP i ,

[0154] Among them, E i For joint position error, P i For the actual position of the joint, EP i This represents the desired position of the joint.

[0155] The electronic device disclosed in this embodiment includes a memory and a processor. The memory is used to store non-transitory computer-readable instructions. Specifically, the memory may include one or more computer program products, which may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. The volatile memory may, for example, include random access memory (RAM) and / or cache memory. The non-volatile memory may, for example, include read-only memory (ROM), hard disk, flash memory, etc.

[0156] The processor may be a central processing unit (CPU) or other processing unit with data processing and / or instruction execution capabilities, and may control other components in the electronic device to perform desired functions. In one embodiment of this disclosure, the processor is used to execute computer-readable instructions stored in the memory, causing the electronic device to perform all or part of the steps of the multi-joint control methods described in the foregoing embodiments of this disclosure.

[0157] Those skilled in the art will understand that, in order to solve the technical problem of how to achieve a good user experience, this embodiment may also include well-known structures such as communication buses and interfaces, and these well-known structures should also be included within the protection scope of this disclosure.

[0158] Figure 2 is a schematic diagram of an electronic device provided in an embodiment of this disclosure. It illustrates a structural schematic diagram suitable for implementing the electronic device in the embodiment of this disclosure. The electronic device shown in Figure 2 is merely an example and should not impose any limitation on the function and scope of use of the embodiments of this disclosure.

[0159] As shown in Figure 2, an electronic device may include a processing unit (such as a central processing unit, graphics processing unit, etc.) that can perform various appropriate actions and processes based on a program stored in read-only memory (ROM) or a program loaded from a storage device into random access memory (RAM). The RAM also stores various programs and data required for the operation of the electronic device. The processing unit, ROM, and RAM are interconnected via a bus. Input / output (I / O) interfaces are also connected to the bus.

[0160] Typically, the following devices can be connected to the I / O interface: input devices, such as sensors or visual information acquisition devices; output devices, such as displays; storage devices, such as magnetic tapes or hard drives; and communication devices. Communication devices allow electronic devices to communicate wirelessly or wiredly with other devices (such as edge computing devices) to exchange data. Although Figure 2 shows an electronic device with various devices, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented alternatively.

[0161] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device, or installed from a storage device, or installed from a ROM. When the computer program is executed by a processing device, all or part of the steps of the multi-joint control method of embodiments of this disclosure are performed.

[0162] For a detailed description of this embodiment, please refer to the corresponding descriptions in the foregoing embodiments, which will not be repeated here.

[0163] The computer-readable storage medium disclosed in this embodiment stores non-transitory computer-readable instructions. When these non-transitory computer-readable instructions are executed by a processor, all or part of the steps of the multi-joint control methods described in the foregoing embodiments of this disclosure are performed.

[0164] The aforementioned computer-readable storage media include, but are not limited to: optical storage media (e.g., CD-ROM and DVD), magneto-optical storage media (e.g., MO), magnetic storage media (e.g., magnetic tape or portable hard drive), media with built-in rewritable non-volatile memory (e.g., memory card), and media with built-in ROM (e.g., ROM cartridge).

[0165] For a detailed description of this embodiment, please refer to the corresponding descriptions in the foregoing embodiments, which will not be repeated here.

[0166] The basic principles of this disclosure have been described above with reference to specific embodiments. However, it should be noted that the advantages, benefits, and effects mentioned in this disclosure are merely examples and not limitations, and should not be considered as essential features of each embodiment of this disclosure. Furthermore, the specific details disclosed above are for illustrative and facilitative purposes only, and are not limitations. These details do not limit the scope of this disclosure to the necessity of employing the aforementioned specific details for implementation.

[0167] In this disclosure, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. The block diagrams of devices, apparatuses, devices, and systems involved in this disclosure are merely illustrative examples and are not intended to require or imply that they must be connected, arranged, or configured in the manner shown in the block diagrams. As those skilled in the art will recognize, these devices, apparatuses, devices, and systems can be connected, arranged, and configured in any manner. Words such as "comprising," "including," "having," etc., are open-ended terms meaning "including but not limited to," and are used interchangeably with them. The terms "or" and "and" as used herein refer to the terms "and / or," and are used interchangeably with them unless the context clearly indicates otherwise. The term "such as" as used herein refers to the phrase "such as but not limited to," and is used interchangeably with it.

[0168] Additionally, as used herein, the “or” used in a list of items beginning with “at least one” indicates a separate list, such that a list of, for example, “at least one of A, B, or C” means A or B or C, or AB or AC or BC, or ABC (i.e., A and B and C). Furthermore, the word “exemplary” does not imply that the described example is preferred or better than other examples.

[0169] It should also be noted that in the systems and methods of this disclosure, the components or steps can be decomposed and / or recombined. These decompositions and / or recombinations should be considered as equivalent solutions to this disclosure.

[0170] Various changes, substitutions, and modifications can be made to the technology described herein without departing from the teachings defined by the appended claims. Furthermore, the scope of the claims of this disclosure is not limited to the specific aspects of the processes, machines, manufactures, events, means, methods, and actions described above. Currently existing or later-developed processes, machines, manufactures, events, means, methods, or actions that perform substantially the same function or achieve substantially the same result as the corresponding aspects described herein can be utilized. Therefore, the appended claims include such processes, machines, manufactures, events, means, methods, or actions within their scope.

[0171] The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use this disclosure. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects without departing from the scope of this disclosure. Therefore, this disclosure is not intended to be limited to the aspects shown herein, but rather to be carried out within the widest scope consistent with the principles and novel features disclosed herein.

[0172] The above description has been given for purposes of illustration and description. Furthermore, this description is not intended to limit the embodiments of this disclosure to the forms disclosed herein. Although numerous exemplary aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, alterations, additions, and sub-combinations therein.

Claims

1. A multi-joint control method, characterized in that, include: Construct joint control functions; The motion data of each joint is obtained based on the expected position of the multiple joints and the joint control function. Based on the motion data, control all joints to move to the desired position.

2. The multi-joint control method according to claim 1, characterized in that, The joint control function is based on the rotation R of joint j in the local coordinate system. j Given R j The actual position P of joint i i and the desired position EP of joint i. i Build.

3. The multi-joint control method according to claim 2, characterized in that, The joint control function is based on the actual position P. i With expected location EP i Constructed by the straight-line distance between them.

4. The multi-joint control method according to claim 2, characterized in that, The R j The calculation methods include: If joint j has a child joint, calculate the normal direction of the line connecting the child joint and the parent joint in both the standard pose and the current pose, and calculate the minimum rotation R that satisfies the normal transformation of the two lines. j ; If joint j has multiple sub-joints, then in both the standard pose and the current pose, form point sets by the positions of joint j and its sub-joints, and use singular value decomposition to calculate the rotation R between the two point sets. j .

5. The multi-joint control method according to claim 2, characterized in that, The motion data for each joint is obtained based on the acquired desired positions of multiple joints and joint control functions, including: Establish a system that can be based on R j Calculate P i A tree-like computational structure, where tree nodes store the rotation data R of the joints. j and offset data t j ; Set R j The initial values ​​are the joint rotation values ​​under the standard pose of the virtual character; The tree-like computational structure is updated layer by layer to calculate the actual position P of each joint. i And calculate the joint position error; The actual position P of each joint is obtained based on a set threshold for joint position error. i .

6. The multi-joint control method according to claim 5, characterized in that, The actual position P of each joint is obtained by the relationship based on the set threshold of joint position error. i ,include: If the updated value of the joint position error is not less than the set threshold, calculate the joint position error relative to the rotation R. j The first-order partial derivatives are used to form the Jacobian matrix J and the Hessian matrix H. Update R based on Hessian matrix H j ; Based on the updated R j The tree-like computational structure is updated layer by layer to obtain the actual position P of each joint. i ; If the updated value of the joint position error is less than the set threshold, the calculation stops.

7. The multi-joint control method according to claim 5, characterized in that, The formula for calculating joint position error is E. i =P i -EP i , Among them, E i For joint position error, P i For the actual position of the joint, EP i This represents the desired position of the joint.

8. A controller for an intelligent agent, comprising a memory and a processor, wherein the processor communicates with the memory, characterized in that, The controller is configured as follows: Construct joint control functions; The motion data of each joint is obtained based on the expected position of the multiple joints and the joint control function. Based on the motion data, control all joints to move to the desired position.

9. The controller according to claim 8, characterized in that, The joint control function is based on the rotation R of joint j in the local coordinate system. j Given R j The actual position P of joint i i and the desired position EP of joint i. i Build.

10. The controller according to claim 9, characterized in that, The joint control function is based on the actual position P. i With expected location EP i Constructed by the straight-line distance between them.

11. The controller according to claim 9, characterized in that, The R j The calculation methods include: If joint j has a child joint, calculate the normal direction of the line connecting the child joint and the parent joint in both the standard pose and the current pose, and calculate the minimum rotation R that satisfies the normal transformation of the two lines. j ; If joint j has multiple sub-joints, then in both the standard pose and the current pose, form point sets by the positions of joint j and its sub-joints, and use singular value decomposition to calculate the rotation R between the two point sets. j .

12. The controller according to claim 9, characterized in that, The motion data for each joint is obtained based on the acquired desired positions of multiple joints and joint control functions, including: Establish a system that can be based on R j Calculate P i A tree-like computational structure, where tree nodes store the rotation data R of the joints. j and offset data t j ; Set R j The initial values ​​are the joint rotation values ​​under the standard pose of the virtual character; The tree-like computational structure is updated layer by layer to calculate the actual position P of each joint. i And calculate the joint position error; The actual position P of each joint is obtained based on a set threshold for joint position error. i .

13. The controller according to claim 12, characterized in that, The actual position P of each joint is obtained by the relationship based on the set threshold of joint position error. i ,include: If the updated value of the joint position error is not less than the set threshold, calculate the joint position error relative to the rotation R. j The first-order partial derivatives are used to form the Jacobian matrix J and the Hessian matrix H. Update R based on Hessian matrix H j ; Based on the updated R j The tree-like computational structure is updated layer by layer to obtain the actual position P of each joint. i ; If the updated value of the joint position error is less than the set threshold, the calculation stops.

14. The controller according to claim 12, characterized in that, The formula for calculating joint position error is E. i =P i -EP i , Among them, E i For joint position error, P i For the actual position of the joint, EP i This represents the desired position of the joint.

15. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions, the computer-readable storage medium comprising: Construct joint control functions; The motion data of each joint is obtained based on the expected position of the multiple joints and the joint control function. Based on the motion data, control all joints to move to the desired position.

16. The computer-readable storage medium according to claim 15, characterized in that, The joint control function is based on the rotation R of joint j in the local coordinate system. j Given R j The actual position P of joint i i and the desired position EP of joint i. i Build.

17. The computer-readable storage medium according to claim 16, characterized in that, The R j The calculation methods include: If joint j has a child joint, calculate the normal direction of the line connecting the child joint and the parent joint in both the standard pose and the current pose, and calculate the minimum rotation R that satisfies the normal transformation of the two lines. j ; If joint j has multiple sub-joints, then in both the standard pose and the current pose, form point sets by the positions of joint j and its sub-joints, and use singular value decomposition to calculate the rotation R between the two point sets. j .

18. The computer-readable storage medium according to claim 16, characterized in that, The motion data for each joint is obtained based on the acquired desired positions of multiple joints and joint control functions, including: Establish a system that can be based on R j Calculate P i A tree-like computational structure, where tree nodes store the rotation data R of the joints. j and offset data t j ; Set R j The initial values ​​are the joint rotation values ​​under the standard pose of the virtual character; The tree-like computational structure is updated layer by layer to calculate the actual position P of each joint. i And calculate the joint position error; The actual position P of each joint is obtained based on a set threshold for joint position error. i .

19. The computer-readable storage medium according to claim 18, characterized in that, The actual position P of each joint is obtained by the relationship based on the set threshold of joint position error. i ,include: If the updated value of the joint position error is not less than the set threshold, calculate the joint position error relative to the rotation R. j The first-order partial derivatives are used to form the Jacobian matrix J and the Hessian matrix H. Update R based on Hessian matrix H j ; Based on the updated R j The tree-like computational structure is updated layer by layer to obtain the actual position P of each joint. i ; If the updated value of the joint position error is less than the set threshold, the calculation stops.

20. The computer-readable storage medium according to claim 18, characterized in that, The formula for calculating joint position error is E. i =P i -EP i , Among them, E i For joint position error, P i For the actual position of the joint, EP i This represents the desired position of the joint.