Robot force control methods, devices, computer-readable storage media, and robots

By generating joint acceleration control quantities through the Riemann motion strategy and mapping them to torque control quantities, the problem of difficulty in performing torque control of robots in the prior art is solved, and torque control under the RMP framework is realized, which improves the stability and efficiency of robot motion.

CN118322185BActive Publication Date: 2026-01-06UBTECH ROBOTICS CORP LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202410278625.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-03-12
Publication Date
2026-01-06
Estimated Expiration
2044-03-12

AI Technical Summary

Technical Problem

Most existing technologies struggle to achieve torque control for robots within the Riemann Motion Policy (RMP) algorithm framework.

Method used

By generating motion based on the Riemann motion strategy, the joint acceleration control quantity is obtained, and the joint torque control quantity is determined by using the preset control quantity mapping relationship, thereby realizing torque control.

Benefits of technology

Torque control of the robot was achieved within the RMP algorithm framework, improving the stability and efficiency of robot motion control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118322185B_ABST
    Figure CN118322185B_ABST
Patent Text Reader

Abstract

The application belongs to the technical field of robots, and particularly relates to a robot force control method and device, a computer readable storage medium and a robot. The method comprises: generating a Riemann motion strategy-based motion generation for an overall target task of a robot to obtain joint acceleration control quantity at a current control moment; determining joint torque control quantity at the current control moment according to the joint acceleration control quantity at the current control moment based on a preset control quantity mapping relationship; wherein the control quantity mapping relationship is a mapping relationship between the joint acceleration control quantity and the joint torque control quantity; and performing torque control on the robot according to the joint torque control quantity at the current control moment to execute the overall target task. In the application, the position control of the robot is converted into torque control through the preset control quantity mapping relationship, so that torque control of the robot can be realized under the algorithm framework of RMP.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of robotics technology, and in particular relates to a robot force control method, device, computer-readable storage medium, and robot. Background Technology

[0002] Motion generation methods based on Riemannian Motion Policies (RMP) have been widely applied in recent years in various fields such as robot obstacle avoidance and autonomous obstacle avoidance, grasping operations, autonomous navigation, multi-machine system coordination, and vision and tactile servoing due to their ability to conveniently integrate multi-task spatial motion planning and motion control while maintaining the timeliness and stability of the algorithm. However, in existing technologies, most of them focus on position control of robots within the RMP algorithm framework, making it difficult to perform torque control of robots. Summary of the Invention

[0003] In view of this, embodiments of this application provide a robot force control method, apparatus, computer-readable storage medium, and robot to solve the problem that most existing technologies perform robot position control within the RMP algorithm framework, but struggle to perform robot torque control.

[0004] A first aspect of this application provides a robot force control method, which may include:

[0005] Motion generation based on Riemann motion strategy is performed on the overall target task of the robot to obtain the joint acceleration control quantity at the current control moment;

[0006] Based on a preset control quantity mapping relationship, the joint torque control quantity at the current control moment is determined according to the joint acceleration control quantity at the current control moment; wherein, the control quantity mapping relationship is the mapping relationship between the joint acceleration control quantity and the joint torque control quantity;

[0007] The robot is subjected to torque control according to the joint torque control amount at the current control moment in order to execute the overall target task.

[0008] In one specific implementation of the first aspect, determining the joint torque control quantity at the current control moment based on the joint acceleration control quantity at the current control moment, according to a preset control quantity mapping relationship, may include:

[0009] Based on the control quantity mapping relationship, determine the joint torque mapping control quantity corresponding to the joint acceleration control quantity at the current control moment;

[0010] Based on the actual state quantities of the configuration space and the joint torque control quantities at the previous control moment, determine the expected state quantities of the configuration space at the current control moment.

[0011] The joint torque control quantity at the current control moment is determined based on the joint torque mapping control quantity and the configuration space expected state quantity at the current control moment.

[0012] In one specific implementation of the first aspect, determining the joint torque control quantity at the current control moment based on the joint torque mapping control quantity and the configuration space desired state quantity at the current control moment may include:

[0013] Calculate the state quantity difference between the expected state quantity and the actual state quantity in the configuration space at the current control moment;

[0014] Based on the state difference, the joint torque mapping control quantity is subjected to proportional-derivative control to obtain the joint torque control quantity at the current control moment.

[0015] In one specific implementation of the first aspect, the overall objective task includes hierarchical tasks with different priorities;

[0016] The process of generating motion based on a Riemannian motion strategy for the robot's overall target task to obtain the joint acceleration control quantity at the current control moment may include:

[0017] In the motion generation process based on the Riemann motion strategy, the joint acceleration control quantities of the next level task are projected into the null space of the previous level task, so that the joint acceleration control quantities of each level task are solved sequentially in order of priority from low to high.

[0018] In one specific implementation of the first aspect, the step of projecting the joint acceleration control quantity of the next-level task onto the null space of the previous-level task, and solving the joint acceleration control quantities of each level of task sequentially in order of priority from low to high, may include:

[0019] The Riemann motion strategy for each level of task is determined based on the actual state variables of the configuration space at the current control moment.

[0020] The null projection matrix of the second-level task and the joint acceleration control quantity of the first-level task are determined based on the Riemann motion strategy of the first-level task.

[0021] Based on the Riemann motion strategy of the i-th level task, the null projection matrix of the i-th level task, and the joint acceleration control quantity of the (i-1)-th level task, determine the null projection matrix of the (i+1)-th level task and the joint acceleration control quantity of the i-th level task, until the joint acceleration control quantity of the highest level task is obtained.

[0022] In one specific implementation of the first aspect, each hierarchical task includes at least one subtask, and each subtask includes at least one local subtask; the step of determining the Riemann motion strategy for each hierarchical task based on the actual state variables of the configuration space at the current control moment may include:

[0023] Based on the actual state variables of the configuration space at the current control moment and the kinematic model of the robot, the state variables of each level task, each subtask, and each local subtask are determined respectively.

[0024] The Riemann motion strategy for each local subtask is determined based on the state variables of each local subtask.

[0025] Based on the state variables and Riemann motion strategies of each local subtask, the Riemann motion strategies of each subtask are determined respectively.

[0026] Based on the robot's dynamic parameters, the state variables of each subtask, and the Riemann motion strategy, the Riemann motion strategy for each level of task is determined.

[0027] In one specific implementation of the first aspect, after performing torque control on the robot according to the joint torque control amount at the current control moment, it may further include:

[0028] In subsequent control moments, torque control of the robot continues until the preset total number of time steps is reached.

[0029] A second aspect of this application provides a robot force control device, which may include:

[0030] The motion generation module is used to generate motion based on the Riemann motion strategy for the robot's overall target task, and obtain the joint acceleration control amount at the current control moment.

[0031] The control quantity mapping module is used to determine the joint torque control quantity at the current control moment based on the joint acceleration control quantity at the current control moment according to the preset control quantity mapping relationship; wherein, the control quantity mapping relationship is the mapping relationship between the joint acceleration control quantity and the joint torque control quantity;

[0032] The torque control module is used to control the robot's torque according to the joint torque control amount at the current control moment in order to execute the overall target task.

[0033] In one specific implementation of the second aspect, the control quantity mapping module may include:

[0034] The control quantity mapping unit is used to determine the joint torque mapping control quantity corresponding to the joint acceleration control quantity at the current control moment based on the control quantity mapping relationship.

[0035] The configuration space desired state quantity determination unit is used to determine the configuration space desired state quantity at the current control time based on the configuration space actual state quantity and joint torque control quantity at the previous control time.

[0036] The joint torque control quantity determination unit is used to determine the joint torque control quantity at the current control time based on the joint torque mapping control quantity and the configuration space expected state quantity at the current control time.

[0037] In one specific implementation of the second aspect, the joint torque control quantity determination unit may be specifically used to: calculate the state quantity difference between the desired state quantity of the configuration space and the actual state quantity of the configuration space at the current control moment; and perform proportional-derivative control on the joint torque mapping control quantity according to the state quantity difference to obtain the joint torque control quantity at the current control moment.

[0038] In one specific implementation of the second aspect, the overall target task includes hierarchical tasks with different priorities; the motion generation module can be specifically used to: project the joint acceleration control quantity of the next level task into the null space of the previous level task during the motion generation process based on the Riemann motion strategy, so as to solve the joint acceleration control quantity of each level task in order of priority from low to high.

[0039] In one specific implementation of the second aspect, the motion generation module may include:

[0040] The Riemann motion strategy determination unit is used to determine the Riemann motion strategy for each level of task based on the actual state variables in the configuration space at the current control moment.

[0041] The joint acceleration control quantity determination unit is used to determine the null projection matrix of the second-level task and the joint acceleration control quantity of the first-level task based on the Riemann motion strategy of the first-level task; and to determine the null projection matrix of the (i+1)th-level task and the joint acceleration control quantity of the i-th-level task based on the Riemann motion strategy of the i-th-level task, the null projection matrix of the i-th-level task, and the joint acceleration control quantity of the (i-1)th-level task, until the joint acceleration control quantity of the highest-level task is obtained.

[0042] In one specific implementation of the second aspect, each hierarchical task includes at least one subtask, and each subtask includes at least one local subtask; the Riemann motion policy determination unit can be specifically used to: determine the state variables of each hierarchical task, the state variables of each subtask, and the state variables of each local subtask based on the actual state variables of the configuration space at the current control moment and the kinematic model of the robot; determine the Riemann motion policy of each local subtask based on the state variables of each local subtask; determine the Riemann motion policy of each subtask based on the state variables and Riemann motion policies of each local subtask; and determine the Riemann motion policy of each hierarchical task based on the dynamic parameters of the robot, the state variables of each subtask, and the Riemann motion policy.

[0043] A third aspect of this application provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of any of the above-described robot force control methods.

[0044] A fourth aspect of this application provides a robot including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the steps of any of the above-described robot force control methods.

[0045] The fifth aspect of this application provides a computer program product that, when run on a robot, causes the robot to perform the steps of any of the robot force control methods described above.

[0046] The beneficial effects of this application embodiment compared with the prior art are as follows: This application embodiment performs motion generation based on the Riemann motion strategy for the overall target task of the robot to obtain the joint acceleration control quantity at the current control moment; based on the preset control quantity mapping relationship, the joint torque control quantity at the current control moment is determined according to the joint acceleration control quantity at the current control moment; wherein, the control quantity mapping relationship is the mapping relationship between the joint acceleration control quantity and the joint torque control quantity; the robot is subjected to torque control according to the joint torque control quantity at the current control moment to execute the overall target task. In this application embodiment, the position control of the robot is transformed into torque control through the preset control quantity mapping relationship, thereby realizing torque control of the robot within the RMP algorithm framework. Attached Figure Description

[0047] To more clearly illustrate the technical solutions in the embodiments of this application, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0048] Figure 1 This is a flowchart of one embodiment of a robot force control method in this application.

[0049] Figure 2 This is a schematic diagram of the improved RMP tree data structure;

[0050] Figure 3 A schematic flowchart illustrating the sequential solution of joint acceleration control values ​​for each level of task in ascending order of priority;

[0051] Figure 4 This is a structural diagram of one embodiment of a robot force control device according to the present application.

[0052] Figure 5 This is a schematic block diagram of a robot according to an embodiment of this application. Detailed Implementation

[0053] To make the inventive objectives, features, and advantages of this application more apparent and understandable, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the embodiments described below are only some embodiments of this application, and not all embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0054] It should be understood that, when used in this specification and the appended claims, the term "comprising" indicates the presence of the described features, integrals, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components and / or collections thereof.

[0055] It should also be understood that the terminology used in this specification is for the purpose of describing particular embodiments only and is not intended to limit the scope of the application. As used in this specification and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms unless the context clearly indicates otherwise.

[0056] It should also be further understood that the term “and / or” as used in this application specification and the appended claims means any combination of one or more of the associated listed items and all possible combinations, and includes such combinations.

[0057] As used in this specification and the appended claims, the term "if" may be interpreted, depending on the context, as "when," "once," "in response to determination," or "in response to detection." Similarly, the phrase "if determined" or "if [the described condition or event] is detected" may be interpreted, depending on the context, as "once determined," "in response to determination," "once [the described condition or event] is detected," or "in response to detection of [the described condition or event]."

[0058] Furthermore, in the description of this application, the terms "first," "second," "third," etc., are used only to distinguish descriptions and should not be construed as indicating or implying relative importance.

[0059] Motion generation methods based on Riemannian Motion Policies (RMP) have been widely applied in recent years in various fields such as robot obstacle avoidance and autonomous obstacle avoidance, grasping operations, autonomous navigation, multi-machine system coordination, and vision and tactile servoing due to their ability to conveniently integrate multi-task spatial motion planning and motion control while maintaining the timeliness and stability of the algorithm. However, in existing technologies, most robot position control is performed within the RMP algorithm framework, making it difficult to perform torque control. In the embodiments of this application, the robot's position control is transformed into torque control through a preset control quantity mapping relationship, thereby enabling torque control of the robot within the RMP algorithm framework.

[0060] The execution subject of this application embodiment is a robot, which may include, but is not limited to, a redundant robot with seven axes (i.e., seven degrees of freedom).

[0061] Please see Figure 1 One embodiment of a robot force control method in this application may include:

[0062] Step S101: Generate motion based on Riemann motion strategy for the overall target task of the robot to obtain the joint acceleration control quantity at the current control moment.

[0063] In the embodiments of this application, the overall target task can be decomposed into at least one subtask, and each subtask can be further decomposed into at least one local subtask. Taking the overall target task of object grasping as an example, it can be decomposed into an arrival subtask, an obstacle avoidance subtask, a joint avoidance limit subtask, and other subtasks. The arrival subtask can be further decomposed into local subtask 1, local subtask 2, local subtask 3, and so on.

[0064] In this embodiment, priorities can be pre-set for each subtask. For example, when transporting a tiltable object, the object's posture should be strictly prioritized over its final position. Subtasks can be clustered according to priority to obtain tasks at different levels. Each level of task consists of subtasks with the same priority. For example, if the overall target task is broken down into six subtasks (subtask 1, subtask 2, subtask 3, subtask 4, subtask 5, and subtask 6), with subtask 1 and subtask 3 having the lowest priority, subtask 6 having the second lowest priority, and subtask 2, subtask 4, and subtask 5 having the highest priority, then clustering the subtasks according to priority yields three levels of tasks, ordered from lowest to highest priority: Level 1 (composed of subtask 1 and subtask 3), Level 2 (composed of subtask 6), and Level 3 (composed of subtask 2, subtask 4, and subtask 5). The overall objective task can include hierarchical tasks with different priorities. Each hierarchical task can include at least one subtask, and each subtask can include at least one local subtask.

[0065] Riemannian motion strategies (RMPs) refer to a class of motion strategies in Riemannian manifolds that are described by second-order differential equations and contain geometric information. Their canonical mathematical form is (a, M). Θ Where Θ represents the spatial coordinates belonging to Ρ. mμ m-dimensional Riemannian manifold, a:P m ×Ρ m →Ρ m Let M:P represent a second-order continuous motion strategy. m ×Ρ m →Ρ m×m This represents a differential mapping. Following the naming conventions of robot dynamics, 'a' can be considered as the desired acceleration, and 'M' can be considered as the inertia matrix.

[0066] In addition to the canonical form, RMP also has a mathematical natural form: (M,f) Θ Where f = Ma represents the expected force, this mathematical expression makes it easier to perform RMP-related algebraic operations.

[0067] RMPflow is a graph computation flow oriented towards manifold spaces. Its purpose is to quickly integrate local RMPs designed for specific tasks under different dimensional manifolds into a global RMP in the target space, thereby outputting motion strategies that can achieve all specific tasks. The RMPflow flow mainly relies on three information flow processing operations: pushforward, pullback, and resolve. Pushforward refers to the forward propagation of state information flow, pullback refers to the backward propagation of RMP information flow, and resolve refers to the solution operation that returns the RMP information flow from its natural form to its canonical form.

[0068] Based on the existing RMP algorithm framework, this application proposes a dynamically-consistent hierarchical RMP (Dyn-Hier-RMP). Addressing the data storage requirements for task hierarchies and force control, Dyn-Hier-RMP optimizes and improves the tree data structure (RMP-tree) in the existing RMP algorithm framework: First, a stem node is inserted between the conventional root node and leaf node to separate the task from the robot body; second, a branch node is inserted between the stem node and leaf node to represent task hierarchies and collect hierarchical task information; third, a dual root node for joint torques is designed outside the original root node, thereby introducing a binary relationship between force and position control quantities.

[0069] Figure 2 The diagram shows the improved RMP tree data structure. Here, r represents the root node, which represents the overall target task mapped onto the robot configuration space Θ, and the corresponding state variable is... The motion strategy is (M,f). Θ ; u represents the dual root node, which represents the overall target task mapped onto the joint moment space Υ, where Υ is the axial scaling space of Θ, and the corresponding state variable is τ. Let represent a branch node, acting as a clone of 'r', representing the component in 'r' corresponding to the 'i'-th level task, and its corresponding state variable is . The movement strategy is (M) i ,f i ) Θ ; The stem node represents the node located in the robot's operating space. i,j The subtasks on the above have the following state variables: The movement strategy is Leaf nodes represent nodes located in the local task space Δ. i,j,k The local subtask on the above, the corresponding state variable is The movement strategy is

[0070] To address the control calculation requirements of task hierarchies and force control, this application's embodiments optimize and improve the RMPflow calculation process within the existing RMP algorithm framework: First, in the reverse calculation from stem node to branch node, robot dynamic parameters are introduced to optimize the joint torque level; Second, in the solution calculation from branch node to root node, Dynamically-consistent Null Space Projection (Dyn-NSP) and its recursive algorithm are introduced to achieve hierarchical control of the task; Third, in the solution calculation from root node to dual root node, a joint torque calculation method based on proportional-derivative (PD) control using ideal configuration space state variables is introduced to improve the task execution accuracy.

[0071] like Figure 2 As shown, nodes are connected by edges, each edge representing a data transformation relationship between two connected spaces, corresponding to the operations included in the improved RMPflow computation flow in this embodiment. and The edges connected by solid lines indicate that the two sides use the conventional pullback operation when propagating data in reverse. and The edges connected by dashed lines represent that the two operations use pullback operations (dyn-pullback) based on operation space dynamics during reverse data propagation. The edge connecting r and u via a double-dotted line indicates that the two use a recursive resolve operation (rec-resolve) based on Dyn-NSP technology during reverse data propagation; the edge connecting r and u via a dashed line indicates that the spatial data transformation between the two uses a resolve operation (pd-resolve) based on robot dynamics and ideal configuration spatial state variables PD control.

[0072] The general form of the equations of motion for a robot is as follows:

[0073]

[0074]

[0075] in, Let A represent the Jacobian matrix of the robot; let b represent the Coriolis force term; let g represent the gravity term; and let F represent the generalized forces in the robot's operating space.

[0076] Therefore, based on the above equations, we can obtain the relationship between robot joint acceleration and generalized force, as well as the general expression of the operational space dynamics equations:

[0077]

[0078]

[0079] Where Λ=(JA -1 J T ) -1 , representing the kinetic energy matrix of the operation space; This represents the dynamic consistency pseudo-inverse of J;

[0080] Based on the force-position binary relationship of the robot described above, the transformation method of the motion strategy between different spaces can be obtained.

[0081] Specifically Towards Since the local task space is independent of the robot's body dynamics, the corresponding pullback operation can be equivalent to the following weighted least squares problem:

[0082]

[0083] in,

[0084] By taking the derivative of the above equation and setting it to zero, we obtain its analytical equation as follows:

[0085]

[0086]

[0087]

[0088] in,

[0089] Due to M i,j It is not in the rank of official, order M represents i,j The Moore-Penrose pseudoinverse is then:

[0090]

[0091] And specifically from To (M) i ,f i ) Θ Based on the relationship between the robot's operational space and body dynamics, the corresponding dyn-pullback operation can be equivalent to the following weighted least squares problem:

[0092]

[0093] in,

[0094] By taking the derivative of the above equation and setting it to zero, we obtain its analytical equation as follows:

[0095]

[0096]

[0097]

[0098] It can be seen that M i It is also incomplete in rank and has a null space.

[0099] Task hierarchy control is controlled by Backward data propagation to r is achieved through rec-resolve operations. The optimal joint acceleration control values ​​for the first-level task are known. Satisfying (M1, f1) Θ The motion strategy represented by M1 cannot be directly subjected to dynamic consistency pseudo-inverse operations because M1 is a symmetric positive semi-definite matrix. Therefore, a Cholesky-like decomposition of the covariance matrix can be performed on it first.

[0100]

[0101] Where J1 = cholcov(M1) is an m1×n dimensional full-rank row matrix, where m1 represents the rank of M1 and n represents the dimension of the robot's driven joints.

[0102] Therefore, the equivalent relationship between the joint acceleration control quantity and the generalized force at the corresponding task level is as follows:

[0103]

[0104]

[0105] Therefore, the first level of task control quantity for:

[0106]

[0107] When the task control variable of level i-1 has been obtained Then, considering that the execution of the i-th level task needs not interfere with the tasks of the preceding i-1 levels, then according to the parameter (J) i ,F i The equivalent relationship between the joint acceleration control quantity and the generalized force is as follows: The solution can be expressed as the following constrained least squares problem:

[0108]

[0109] Introducing the Dyn-NSP technique here, the constraint part of the above equation can be transformed into:

[0110]

[0111] in, This represents the Dyn-NSP matrix for all tasks up to level i.

[0112] Substituting into the objective function, it can be simplified to:

[0113]

[0114] in,

[0115] Therefore, it can be concluded that Analytical solution:

[0116]

[0117] in, It can be obtained recursively:

[0118]

[0119]

[0120] Where I represents an identity matrix with the same dimensions as the robot's driven joints.

[0121] Based on the above analysis and derivation, in the motion generation process based on the Riemann motion strategy, the joint acceleration control quantities of the next-level task can be projected into the null space of the previous-level task. The joint acceleration control quantities of each level of task can then be solved sequentially according to their priority from low to high. Specifically, this can include, for example... Figure 3 The process shown:

[0122] Step S1011: Determine the Riemann motion strategy for each level of task based on the actual state variables of the configuration space at the current control moment.

[0123] Specifically, we can first read the actual state variables of r in the configuration space at the current control time t. Then, a pushforward operation can be performed. Based on the actual state variables in the configuration space at the current control moment and the robot's kinematic model, the state variables of each level of task, each subtask, and each local subtask are determined, as shown in the following equation:

[0124]

[0125]

[0126]

[0127] Where, ψ i,j Let ψ represent the forward kinematics solution of the robot. i,j,k This represents the correct solution in the local task space.

[0128] Next, given a tracking trajectory or a preset Geometric Dynamical System (GDS), the Riemann motion strategy for each local subtask can be determined based on the state variables of each local subtask. Then, a pullback operation can be performed to determine the Riemann motion policy for each subtask based on the state variables and Riemann motion policies of each local subtask. As shown in the following formula:

[0129]

[0130]

[0131] Based on the dynamic equations of the robot's operating space, s can be calculated. i,j The corresponding operational space kinetic energy matrix Λ i,j :

[0132]

[0133] Finally, pullback operations based on operation space dynamics (dyn-pullback) can be performed to determine the Riemann motion policy (M) for each level of task based on the robot's dynamic parameters, the state variables of each subtask, and the Riemann motion policy. i ,f i ) Θ As shown in the following formula:

[0134]

[0135]

[0136] Furthermore, by utilizing a Cholesky-like decomposition of the covariance matrix, b can also be obtained. i The equivalent relationship parameter (J) between the corresponding joint acceleration control quantity and the generalized force i ,F i As shown in the following formula:

[0137] J i =cholcov(M i )

[0138]

[0139] Step S1012: Determine the null space projection matrix of the second-level task and the joint acceleration control quantity of the first-level task based on the Riemann motion strategy of the first-level task.

[0140] Specifically, for the first-level task, the intermediate variables can be calculated sequentially according to the following formula.

[0141]

[0142]

[0143]

[0144]

[0145] Then, the joint acceleration control quantity for the first-level task can be solved according to the following formula.

[0146]

[0147] Step S1013: Based on the Riemann motion strategy of the i-th level task, the null projection matrix of the i-th level task, and the joint acceleration control amount of the (i-1)-th level task, determine the null projection matrix of the (i+1)-th level task and the joint acceleration control amount of the i-th level task, until the joint acceleration control amount of the highest level task is obtained.

[0148] Specifically, when i is greater than 1, the intermediate variables can be calculated sequentially according to the following formula.

[0149]

[0150]

[0151]

[0152]

[0153] Then, the joint acceleration control quantity for the i-th level task can be solved according to the following formula.

[0154]

[0155] It should be noted that step S1013 is a recursive process. First, let i be 2, perform one round of calculation, and obtain the joint acceleration control quantity of the second level task. Then let i = i + 1, where i is 3, and perform one round of calculations to obtain the joint acceleration control quantity for the third level of the task. This process continues until the joint acceleration control values ​​for the H-level task are obtained. So far, H represents the total number of task levels, with the Hth level being the highest level. In this recursive process, by reusing some intermediate parameters from the solution of lower-level tasks, the computational efficiency is improved, while also ensuring the real-time generation of the overall motion strategy.

[0156] Step S102: Based on the preset control quantity mapping relationship, determine the joint torque control quantity at the current control time according to the joint acceleration control quantity at the current control time.

[0157] The control quantity mapping relationship refers to the mapping relationship between joint acceleration control quantity and joint torque control quantity. Specifically, based on the control quantity mapping relationship shown in the following formula, the joint torque mapping control quantity corresponding to the joint acceleration control quantity at the current control moment can be determined.

[0158]

[0159] Where v represents the sum of the Coriolis force term and the gravity term.

[0160] In one specific implementation of this application, the joint torque can be directly mapped to the control quantity. As the joint torque control quantity at the current control moment

[0161] In another specific implementation of this application embodiment, in order to improve the accuracy of task execution, after obtaining the joint torque control quantity... Then, we can first determine the actual state quantities of the configuration space at the previous control time. and joint torque control amount Determine the configuration space desired state variables at the current control moment. As shown in the following formula:

[0162]

[0163]

[0164] Here, Δt represents the time step, which is the interval between two adjacent control moments.

[0165] Then, the control quantity can be mapped based on the joint torque. And the configuration space expected state quantity at the current control moment Determine the joint torque control quantity at the current control moment. Specifically, the configuration space desired state variables at the current control moment can be calculated. With configuration space actual state quantity The difference between the state variables is used to map the control quantity of the joint torque based on the difference between the state variables. Perform PD control to obtain the joint torque control quantity at the current control moment. As shown in the following formula:

[0166]

[0167] Where, k p and k d These represent the proportional control coefficient and the derivative control coefficient, respectively.

[0168] It should be noted that, Figure 1 The robot torque control process shown is a recursive process. First, the time step parameter t is set to 1, and one round of robot torque control is performed. Then, t = t + 1 is set, and the value of t is 2, and another round of robot torque control is performed. This process continues until t > T, which is the preset total number of time steps T.

[0169] It is important to note that after performing robot torque control at each control moment, the parameters need to be updated according to the following formula: This is for use at the next control time, specifically at the first control time, when t is 1. and The default values ​​are the robot's initial configuration space state variables. And 0.

[0170] In summary, this embodiment of the application generates motion based on a Riemannian motion strategy for the robot's overall target task, obtaining the joint acceleration control quantity at the current control moment. Based on a preset control quantity mapping relationship, the joint torque control quantity at the current control moment is determined according to the joint acceleration control quantity at the current control moment; wherein, the control quantity mapping relationship is the mapping relationship between the joint acceleration control quantity and the joint torque control quantity; the robot is subjected to torque control according to the joint torque control quantity at the current control moment to execute the overall target task. In this embodiment of the application, the robot's position control is transformed into torque control through a preset control quantity mapping relationship, thereby enabling torque control of the robot within the RMP algorithm framework.

[0171] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0172] Corresponding to the robot force control method described in the above embodiments, Figure 4 This illustration shows a structural diagram of one embodiment of a robot force control device provided in this application.

[0173] In this embodiment, a robot force control device may include:

[0174] The motion generation module 401 is used to generate motion based on the Riemann motion strategy for the overall target task of the robot, and obtain the joint acceleration control quantity at the current control moment.

[0175] The control quantity mapping module 402 is used to determine the joint torque control quantity at the current control time based on the joint acceleration control quantity at the current control time according to the preset control quantity mapping relationship; wherein, the control quantity mapping relationship is the mapping relationship between the joint acceleration control quantity and the joint torque control quantity;

[0176] The torque control module 403 is used to control the torque of the robot according to the joint torque control amount at the current control moment in order to execute the overall target task.

[0177] In one specific implementation of this application embodiment, the control quantity mapping module may include:

[0178] The control quantity mapping unit is used to determine the joint torque mapping control quantity corresponding to the joint acceleration control quantity at the current control moment based on the control quantity mapping relationship.

[0179] The configuration space desired state quantity determination unit is used to determine the configuration space desired state quantity at the current control time based on the configuration space actual state quantity and joint torque control quantity at the previous control time.

[0180] The joint torque control quantity determination unit is used to determine the joint torque control quantity at the current control time based on the joint torque mapping control quantity and the configuration space expected state quantity at the current control time.

[0181] In one specific implementation of this application, the joint torque control quantity determination unit can be specifically used to: calculate the state quantity difference between the desired state quantity of the configuration space and the actual state quantity of the configuration space at the current control moment; and perform proportional-derivative control on the joint torque mapping control quantity according to the state quantity difference to obtain the joint torque control quantity at the current control moment.

[0182] In one specific implementation of this application, the overall target task includes hierarchical tasks with different priorities; the motion generation module can be specifically used to: project the joint acceleration control quantity of the next level task into the null space of the previous level task during the motion generation process based on the Riemann motion strategy, so as to solve the joint acceleration control quantity of each level task in order of priority from low to high.

[0183] In one specific implementation of this application embodiment, the motion generation module may include:

[0184] The Riemann motion strategy determination unit is used to determine the Riemann motion strategy for each level of task based on the actual state variables in the configuration space at the current control moment.

[0185] The joint acceleration control quantity determination unit is used to determine the null projection matrix of the second-level task and the joint acceleration control quantity of the first-level task based on the Riemann motion strategy of the first-level task; and to determine the null projection matrix of the (i+1)th-level task and the joint acceleration control quantity of the i-th-level task based on the Riemann motion strategy of the i-th-level task, the null projection matrix of the i-th-level task, and the joint acceleration control quantity of the (i-1)th-level task, until the joint acceleration control quantity of the highest-level task is obtained.

[0186] In one specific implementation of this application embodiment, each hierarchical task includes at least one subtask, and each subtask includes at least one local subtask. The Riemann motion policy determination unit can be specifically used to: determine the state variables of each hierarchical task, the state variables of each subtask, and the state variables of each local subtask based on the actual state variables of the configuration space at the current control moment and the kinematic model of the robot; determine the Riemann motion policy of each local subtask based on the state variables of each local subtask; determine the Riemann motion policy of each subtask based on the state variables and Riemann motion policies of each local subtask; and determine the Riemann motion policy of each hierarchical task based on the dynamic parameters of the robot, the state variables of each subtask, and the Riemann motion policy.

[0187] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the devices, modules, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0188] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0189] Figure 5 A schematic block diagram of a robot provided in an embodiment of this application is shown. For ease of explanation, only the parts related to the embodiment of this application are shown.

[0190] like Figure 5 As shown, the robot 5 in this embodiment includes: a processor 50, a memory 51, and a computer program 52 stored in the memory 51 and executable on the processor 50. When the processor 50 executes the computer program 52, it implements the steps described in the various robot force control method embodiments above, for example... Figure 1 Steps S101 to S103 are shown. Alternatively, when the processor 50 executes the computer program 52, it implements the functions of each module / unit in the above-described device embodiments, for example... Figure 4 The functions of modules 401 to 403 are shown.

[0191] For example, the computer program 52 may be divided into one or more modules / units, which are stored in the memory 51 and executed by the processor 50 to complete this application. The one or more modules / units may be a series of computer program instruction segments capable of performing a specific function, which describe the execution process of the computer program 52 in the robot 5.

[0192] Those skilled in the art will understand that Figure 5 This is merely an example of robot 5 and does not constitute a limitation on robot 5. It may include more or fewer parts than shown, or combine certain parts, or different parts. For example, robot 5 may also include input / output devices, network access devices, buses, etc.

[0193] The processor 50 can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor.

[0194] The memory 51 can be an internal storage unit of the robot 5, such as a hard drive or memory. The memory 51 can also be an external storage device of the robot 5, such as a plug-in hard drive, Smart Media Card (SMC), Secure Digital (SD) card, or Flash Card. Furthermore, the memory 51 can include both internal and external storage units of the robot 5. The memory 51 is used to store the computer program and other programs and data required by the robot 5. The memory 51 can also be used to temporarily store data that has been output or will be output.

[0195] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional units and modules is merely an example. In practical applications, the above functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit. Furthermore, the specific names of the functional units and modules are only for easy differentiation and are not intended to limit the scope of protection of this application. The specific working process of the units and modules in the above system can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.

[0196] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0197] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0198] In the embodiments provided in this application, it should be understood that the disclosed devices / robots and methods can be implemented in other ways. For example, the device / robot embodiments described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.

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

[0200] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0201] If the integrated module / unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, all or part of the processes in the methods of the above embodiments can also be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by a processor, it can implement the steps of the various method embodiments described above. The computer program includes computer program code, which can be in the form of source code, object code, executable files, or certain intermediate forms. The computer-readable storage medium can include: any entity or device capable of carrying the computer program code, a recording medium, a USB flash drive, a portable hard drive, a magnetic disk, an optical disk, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electrical carrier signal, a telecommunication signal, and a software distribution medium, etc. It should be noted that the content included in the computer-readable storage medium can be appropriately added or removed according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, the computer-readable storage medium does not include electrical carrier signals and telecommunication signals.

[0202] The above-described embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application, and should all be included within the protection scope of this application.

Claims

1. A robot force control method characterized by, The method comprises: generating a Riemannian motion strategy-based operation of the overall target task of the robot to obtain joint acceleration control quantity at a current control moment; determining joint torque mapping control quantity corresponding to the joint acceleration control quantity at the current control moment based on a preset control quantity mapping relationship; determining configuration space expected state quantity at the current control moment according to configuration space actual state quantity at a previous control moment and joint torque control quantity; calculating state quantity difference between the configuration space expected state quantity at the current control moment and the configuration space actual state quantity; performing proportional and differential control on the joint torque mapping control quantity according to the state quantity difference to obtain joint torque control quantity at the current control moment; wherein the control quantity mapping relationship is a mapping relationship between joint acceleration control quantity and joint torque control quantity; controlling the robot according to the joint torque control quantity at the current control moment to execute the overall target task.

2. The robot force control method according to claim 1, characterized by, The overall target task comprises hierarchical tasks of different priorities; The generating a Riemannian motion strategy-based operation of the overall target task of the robot to obtain joint acceleration control quantity at a current control moment comprises: During the Riemannian motion strategy-based operation generation, projecting joint acceleration control quantity of a next hierarchical task into null space of a previous hierarchical task to sequentially solve joint acceleration control quantity of each hierarchical task in order of priority from low to high.

3. The robot force control method according to claim 2, wherein, The projecting joint acceleration control quantity of a next hierarchical task into null space of a previous hierarchical task to sequentially solve joint acceleration control quantity of each hierarchical task in order of priority from low to high comprises: determining Riemannian motion strategy of each hierarchical task according to configuration space actual state quantity at a current control moment; determining null space projection matrix of a second hierarchical task and joint acceleration control quantity of a first hierarchical task according to the Riemannian motion strategy of the first hierarchical task; According to the first i Riemannian motion strategy of the hierarchical task, the second i Null space projection matrix of the hierarchical task, and the third i- 1Joint acceleration control amount of the hierarchical task, determine the fourth i Null space projection matrix of the hierarchical task, and the fifth i Joint acceleration control amount of the hierarchical task, until the joint acceleration control amount of the highest hierarchical task is obtained.

4. The robot force control method according to claim 3, characterized by, Each hierarchical task comprises at least one subtask, and each subtask comprises at least one local subtask. The determining Riemannian motion strategy of each hierarchical task according to configuration space actual state quantity at a current control moment comprises: determining state quantity of each hierarchical task, state quantity of each subtask and state quantity of each local subtask according to configuration space actual state quantity at a current control moment and kinematics model of the robot; determining Riemannian motion strategy of each local subtask according to state quantity of each local subtask; determining Riemannian motion strategy of each subtask according to state quantity and Riemannian motion strategy of each local subtask; determining Riemannian motion strategy of each hierarchical task according to dynamics parameters of the robot, state quantity and Riemannian motion strategy of each subtask.

5. The robot force control method according to any one of claims 1 to 4, characterized by, After the controlling the robot according to the joint torque control quantity at the current control moment, the method further comprises: continuing to control the robot at each subsequent control moment until a preset total number of time steps is reached.

6. A robot force control device characterized by comprising: The method comprises: A motion generation module is configured to generate a Riemann motion strategy based on an overall target task of the robot, and obtain a joint acceleration control quantity at a current control moment; A control quantity mapping module is configured to determine a joint torque mapping control quantity corresponding to the joint acceleration control quantity at the current control moment based on a preset control quantity mapping relationship; determine a configuration space expected state quantity at the current control moment according to a configuration space actual state quantity and a joint torque control quantity at a previous control moment; calculate a state quantity difference between the configuration space expected state quantity and the configuration space actual state quantity at the current control moment; and perform proportional and differential control on the joint torque mapping control quantity according to the state quantity difference, to obtain a joint torque control quantity at the current control moment; wherein the control quantity mapping relationship is a mapping relationship between the joint acceleration control quantity and the joint torque control quantity; A torque control module is configured to perform torque control on the robot according to the joint torque control quantity at the current control moment, to execute the overall target task.

7. A computer-readable storage medium storing a computer program, wherein the computer program comprises the following steps of: The computer program, when executed by a processor, implements the steps of the robot force control method according to any one of claims 1 to 5.

8. A robot comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, The processor, when executing the computer program, implements the steps of the robot force control method according to any one of claims 1 to 5.

Citation Information

Patent Citations

  • Force control joint control method and device, robot and readable storage medium

    CN113954078A