A robot ankle joint control method, device, equipment and storage medium
Patent Information
- Application Number
- CN202611410508.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-09-11
- Publication Date
- 2026-10-30
AI Technical Summary
在闭链状态下,踝关节点若仍用等效位置,会存在线性化近似误差
[0007]第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的机器人踝关节控制方法。
Smart Images

Figure CN123000851A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of humanoid robot motion control technology, and in particular to a robot ankle joint control method, device, equipment, and storage medium. Background Technology
[0002] To improve ankle joint torque density and optimize structural layout, some humanoid robots employ a dual-motor parallel drive at the ankle: two rotary motors drive the ankle joint's pitch and roll via long and short links. The strategy and upper-level control typically output the desired angle in the serial joint space, while the lower-level actuators operate in the motor angular space. The lower-level motors typically use MIT impedance control: the formula is: τ_cmd = k_p (p_des - p) + k_d (v_des - v) + τ_ff. Here, τ_ff is the feedforward torque channel. When k_p = k_d = 0, the motor output degenerates to τ_cmd = τ_ff, i.e., a pure torque mode. In a closed-chain state, if the ankle joint still uses the equivalent position, a linearization approximation error will exist. Summary of the Invention
[0003] This invention provides a robot ankle joint control method, device, equipment, and storage medium. The technical solution of this invention solves the problem of error in the control parameters of the ankle joint motor in the closed-chain state in the prior art. It can map the joint space synthesized torque to the corresponding torque parameters of the motor based on the Jacobian matrix, thereby improving the control stability of the ankle joint motor in the closed-chain state.
[0004] In a first aspect, embodiments of the present invention provide a robot ankle joint control method, the method comprising: At preset control intervals, motor feedback information of at least one ankle joint motor of the target humanoid robot is acquired; wherein, the motor feedback information includes at least one of: motor position information, motor speed information, and motor current information; for each ankle joint motor, the joint space resultant torque corresponding to the ankle joint motor is determined according to the motor feedback information; when the ankle joint motor is in a closed-loop state, the closed-loop pure torque is determined according to the joint space resultant torque and the Jacobian matrix, and the ankle joint motor is controlled based on the closed-loop pure torque.
[0005] In a second aspect, embodiments of the present invention provide a robotic ankle joint control device, the device comprising: A data acquisition module is used to acquire motor feedback information of at least one ankle joint motor of the target humanoid robot at preset control intervals; wherein the motor feedback information includes at least one of motor position information, motor speed information, and motor current information; a joint torque determination module is used to determine the joint space resultant torque corresponding to each ankle joint motor based on the motor feedback information; a closed-chain torque determination module is used to determine the closed-chain pure torque based on the joint space resultant torque and the Jacobian matrix when the ankle joint motor is in a closed-chain state, and control the ankle joint motor based on the closed-chain pure torque.
[0006] Thirdly, embodiments of the present invention provide a computer device, the computer device comprising: One or more processors; Memory, used to store one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the robot ankle joint control method described in any embodiment.
[0007] Fourthly, embodiments of the present invention provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the robot ankle joint control method described in any embodiment.
[0008] The technical solution provided by this invention obtains motor feedback information of at least one ankle joint motor of a target humanoid robot at preset control intervals. The motor feedback information includes at least one of motor position information, motor speed information, and motor current information. For each ankle joint motor, the joint space resultant torque corresponding to that ankle joint motor is determined based on the motor feedback information. When the ankle joint motor is in a closed-loop state, the closed-loop pure torque is determined based on the joint space resultant torque and the Jacobian matrix, and the ankle joint motor is controlled based on the closed-loop pure torque. This invention solves the problem of error in the control parameters of ankle joint motors in a closed-loop state in the prior art. It can map the joint space resultant torque to the corresponding torque parameters of the motor based on the Jacobian matrix, thereby improving the control stability of the ankle joint motor in a closed-loop state. Attached Figure Description
[0009] Figure 1 This is a flowchart of a robot ankle joint control method provided in an embodiment of the present invention; Figure 2 This is a flowchart of another robot ankle joint control method provided in an embodiment of the present invention; Figure 3This is a flowchart of a robot ankle joint control process provided by an embodiment of the present invention; Figure 4 This is a schematic diagram illustrating a bidirectional mapping relationship between motor space and joint space provided in an embodiment of the present invention; Figure 5 This is a schematic diagram of the structure of a robot ankle joint control device provided in an embodiment of the present invention; Figure 6 This is a schematic diagram of the structure of a computer device provided in an embodiment of the present invention. Detailed Implementation
[0010] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention. The acquisition, storage, use, and processing of data in the technical solutions of the embodiments of the present invention all comply with the relevant provisions of national laws and regulations.
[0011] Figure 1 This is a flowchart of a robot ankle joint control method provided by an embodiment of the present invention. The embodiment of the present invention can be applied to scenarios where the ankle joint of a humanoid robot is controlled for motion. The method can be executed by a robot ankle joint control device, which can be implemented by software and / or hardware.
[0012] like Figure 1 As shown, the robot ankle joint control method includes the following steps: S110. At each preset control cycle, obtain motor feedback information of at least one ankle joint motor of the target humanoid robot.
[0013] The target humanoid robot can be a humanoid robot that requires ankle joint motor control. The preset control cycle can be the cycle used for motion control of the target humanoid robot. Specifically, the preset control cycle can be set by the user or obtained through comprehensive analysis of the operating frequencies of various controllers of the target humanoid robot. The ankle joint motor can be a motor used to control the ankle joint of the target humanoid robot. Optionally, the target humanoid robot can have multiple ankle joint motors; for example, the target humanoid robot can have two ankle joint motors, each corresponding to one leg of the target humanoid robot. Further, the motor feedback information includes at least one of: motor position information, motor speed information, and motor current information. For example, the motor feedback information can be obtained by sensors installed on the ankle joint motors. The technical solution of this embodiment of the invention can obtain the motor feedback information of each ankle joint motor of the target humanoid robot, and determine the operating parameters of each ankle joint motor based on the motor feedback information, so as to achieve motion control of the ankle joint motors.
[0014] S120. For each ankle joint motor, determine the corresponding joint space composite torque based on the motor feedback information.
[0015] The joint space composite torque can be the torque required to reach the desired ankle joint position in the ankle joint coordinate system of the target humanoid robot. Specifically, the motor feedback information of each ankle joint motor can be obtained, and the following processing is performed for each ankle joint motor: First, based on the feedback information of the motor, the corresponding actual angle and actual angular velocity of the ankle joint are calculated using the kinematic mapping relationship established in the previous embodiment; then, the actual angle and actual angular velocity are compared with the nominal target angle and nominal target angular velocity corresponding to the joint issued by the gait planner, and the position error and velocity error are calculated respectively; then, according to the preset joint space control gain (including position proportional gain and velocity differential gain), the position error and velocity error are weighted and synthesized into the joint space composite torque corresponding to the joint. The above process is executed independently and in parallel for each ankle joint motor, so that the joint space composite torque of each joint is determined individually based on the feedback information of its own motor, thereby realizing the independent calculation and parallel output of the control commands of each ankle joint motor in the multi-joint system.
[0016] S130. When the ankle joint motor is in a closed-loop state, the closed-loop pure torque is determined based on the joint space composite torque and the Jacobian matrix, and the ankle joint motor is controlled based on the closed-loop pure torque.
[0017] In this context, the closed-chain state refers to the state where the ankle joint is in contact with the ground (or supporting surface) through the sole of the foot, forming one or more closed mechanical loops between the ankle joint, foot, linkage mechanism, and motor stator. Conversely, the open-chain state refers to the free state where the foot is suspended and the ankle joint end has no external constraints. In the closed-chain state, the control objective changes from position tracking to torque tracking. The closed-chain pure torque can be the pure torque used to control the ankle joint motor in the closed-chain state. Specifically, the initial pure torque can be obtained by Jacobian decoupling based on the joint space composite torque and the Jacobian matrix, and then the direction of the initial pure torque is corrected to obtain the closed-chain pure torque. Finally, the closed-chain pure torque can be sent to the ankle joint motor so that the ankle joint motor adjusts its output torque to the closed-chain pure torque in the closed-chain state, thereby achieving motion control of the ankle joint in the closed-chain state.
[0018] The technical solution provided by this invention obtains motor feedback information of at least one ankle joint motor of a target humanoid robot at preset control intervals. The motor feedback information includes at least one of motor position information, motor speed information, and motor current information. For each ankle joint motor, the joint space resultant torque corresponding to the ankle joint motor is determined based on the motor feedback information. When the ankle joint motor is in a closed-loop state, the closed-loop pure torque is determined based on the joint space resultant torque and the Jacobian matrix, and the ankle joint motor is controlled based on the closed-loop pure torque. This invention solves the problem of error in the control parameters of ankle joint motors in a closed-loop state in the prior art. It can map the joint space resultant torque to the corresponding torque parameters of the motor based on the Jacobian matrix, thereby improving the control stability of the ankle joint motor in a closed-loop state.
[0019] Figure 2 This is a flowchart of another robot ankle joint control method provided by the embodiments of the present invention. The embodiments of the present invention can be applied to the scenario of motion control of the ankle joint of a humanoid robot. Based on the above embodiments, this embodiment further explains how to determine the joint space resultant torque corresponding to the ankle joint motor according to the motor feedback information; and how to determine the closed-loop pure torque according to the joint space resultant torque and the Jacobian matrix. This device can be implemented by software and / or hardware and integrated into a computer device with application development function.
[0020] like Figure 2 As shown, the robot ankle joint control method includes the following steps: S210. At each preset control cycle, obtain motor feedback information of at least one ankle joint motor of the target humanoid robot.
[0021] The target humanoid robot can be a humanoid robot that requires ankle joint motor control. The preset control cycle can be the cycle used for motion control of the target humanoid robot. Specifically, the preset control cycle can be set by the user or obtained through comprehensive analysis of the operating frequencies of various controllers of the target humanoid robot. The ankle joint motor can be a motor used to control the ankle joint of the target humanoid robot. Optionally, the target humanoid robot can have multiple ankle joint motors; for example, the target humanoid robot can have two ankle joint motors, each corresponding to one leg of the target humanoid robot. Further, the motor feedback information includes at least one of: motor position information, motor speed information, and motor current information. For example, the motor feedback information can be obtained by sensors installed on the ankle joint motors. The technical solution of this embodiment of the invention can obtain the motor feedback information of each ankle joint motor of the target humanoid robot, and determine the operating parameters of each ankle joint motor based on the motor feedback information, so as to achieve motion control of the ankle joint motors.
[0022] S220. For each ankle joint motor, determine the corresponding ankle joint angle and ankle joint angular velocity based on the motor feedback information of the ankle joint motor.
[0023] The ankle joint angle can be a scalar value reflecting the current actual rotational position of the ankle joint. Specifically, it is not measured by an additional angle sensor directly mounted on the ankle joint, but rather by converting the motor position information into an equivalent joint angle based on a pre-calibrated transmission mapping relationship. This angle serves as the position feedback quantity of the control system, directly participating in the calculation of the desired position error, and is one of the core inputs for generating the joint space composite torque.
[0024] Furthermore, the ankle joint angular velocity reflects the actual rotational speed and direction of the ankle joint. Specifically, it is not directly measured by a separate speed sensor or gyroscope, but rather obtained by taking motor speed information as input, or by numerically differentiating the ankle joint angle obtained from the aforementioned calculation and combining it with filtering. This angular velocity, as the speed feedback quantity of the control system, directly participates in the calculation of speed error, provides real-time input to the derivative (damping) term in the PD controller, and is a key state variable for realizing dynamic response adjustment and vibration suppression of the system.
[0025] In this embodiment, the ankle joint angle and ankle joint angular velocity are not directly detected by additional sensors installed at the ankle joint, but are actual state quantities corresponding to the ankle joint rotation axis, calculated based on motor feedback information and a transmission mapping relationship. The ankle joint angle characterizes the current ankle joint posture, and the ankle joint angular velocity characterizes the current speed of ankle joint movement. Both serve as feedback quantities for closed-loop control and input quantities for the state observer, used to generate the joint space composite torque. Specifically, a mapping relationship between motor feedback information and ankle joint state can be established, and the kinematic transmission relationship between the motor output shaft and the ankle joint rotation axis can be determined according to the mechanical transmission configuration of the ankle joint drive system. For example, for a common reduction gear transmission scheme, this mapping relationship can be expressed as: Angular mapping relationship: The ankle joint angle θ_ankle and the motor position θ_m satisfy θ_ankle = f(θ_m). Where f(·) is a transformation function based on the transmission ratio or connecting rod geometry parameters. For direct drive or fixed reduction ratio transmissions, it can be simplified to θ_ankle = θ_m / N, where N is the reduction ratio; for connecting rod or crank-slider transmissions, a nonlinear transformation is required based on the mechanism's kinematic equations.
[0026] Angular velocity mapping relationship: The ankle joint angular velocity ω_ankle and the motor velocity ω_m satisfy the following relationship. ω_ankle = g(ω_m, θ_m) Where g(·) is the speed transfer function related to the transmission configuration. For a fixed reduction ratio transmission, it can be simplified to ω_ankle = ω_m / N; for a nonlinear transmission, the time derivative of the angle mapping relationship needs to be obtained.
[0027] Furthermore, when calculating the ankle joint angle, the established angle mapping relationship can be used to substitute the real-time acquired motor position information into the angle mapping function f(·) to calculate the current ankle joint angle θ_ankle. When calculating the ankle joint angular velocity, the established angular velocity mapping relationship can be used to substitute the real-time acquired motor velocity information into the angular velocity mapping function g(·) to calculate the current ankle joint angular velocity.
[0028] S230. Determine the desired position of the ankle joint corresponding to the ankle joint motor based on the joint angle and joint angular velocity, and determine the joint space composite torque based on the desired position of the ankle joint.
[0029] The desired ankle joint position can be the angle position that the ankle joint needs to reach at any given moment. Specifically, the joint angle and joint angular velocity can be multiplied by their respective weighting coefficients, and then the two products can be summed to obtain the desired ankle joint position. The joint space resultant torque can be the torque required to reach the desired ankle joint position in the ankle joint coordinate system of the target humanoid robot. Specifically, the desired ankle joint position can be substituted into the corresponding formula to determine the joint space resultant torque. The specific formula for calculating the joint space resultant torque is as follows: τ_joint,i = kp,i(p_des,i - q_i) + kd,i (v_des,i - q̇_i) + τ_ff,i Where i represents the index of the i-th degree of freedom in joint space; τ_joint,i represents the joint space resultant torque (N·m) of the i-th degree of freedom in joint space; kp,i represents the joint space position stiffness gain; kd,i represents the joint space velocity damping gain; p_des,i represents the expected position (rad) of the i-th ankle joint given by the upper layer; q_i represents the actual position (rad) of the i-th joint obtained by positive kinematics from motor feedback; v_des,i represents the expected velocity (rad / s) of the i-th joint given by the upper layer (0 if not passed); q̇_i represents the actual velocity (rad / s) of the i-th joint obtained by Jacobian positive mapping from motor velocity; τ_ff,i represents the joint space feedforward torque that can be selected by the upper layer (0 if not passed).
[0030] S240. When the ankle joint motor is in a closed-loop state, the initial pure torque is obtained by Jacobian decoupling based on the joint space composite torque and the Jacobian matrix.
[0031] In this context, the closed-chain state refers to the state where the ankle joint is in contact with the ground (or supporting surface) through the sole of the foot, forming one or more closed mechanical loops between the ankle joint, foot, linkage mechanism, and motor stator. Conversely, the open-chain state refers to the free state where the foot is suspended in the air and the end of the ankle joint has no external constraints. In the closed-chain state, the control objective changes from position tracking to torque tracking.
[0032] Furthermore, the Jacobian matrix can be used to represent the first-order velocity relationship between motor angles and joint angles in a closed-loop state. The Jacobian matrix is not a manually set gain matrix, but is calculated in real-time each control cycle based on the current joint configuration, link length, and hinge geometry. The Jacobian matrix can be automatically updated as the target humanoid robot's posture changes.
[0033] The initial pure torque can be the torque obtained from preliminary control analysis under closed-chain conditions of the ankle joint. Specifically, the joint space composite torque can be mapped from joint space to motor drive space using the pseudo-inverse or transpose of the Jacobian matrix to obtain the initial pure torque. This initial pure torque characterizes the original torque components required to output from each motor drive shaft to generate the desired joint space composite torque. Subsequently, this initial pure torque can be used as the torque feedforward reference value of the current loop or sent to the motor controller after further amplitude limiting and filtering, thereby achieving precise decoupling and transmission from joint space torque requirements to motor drive commands.
[0034] For example, the formula for determining the initial pure torque is: τ_motor = J_motor2Joint T · τ_joint Where τ_motor represents the initial pure torque; J_motor2Joint T τ_joint represents the transpose of the Jacobian matrix; τ_joint represents the joint space resultant torque.
[0035] Optionally, when determining whether the ankle joint motor is in a closed-chain state, the foot contact state can be determined based on the motor feedback information. If the foot contact state is in the support phase, the ankle joint motor is determined to be in a closed-chain state. Conversely, if the foot contact state is in the swing phase, the ankle joint motor is determined to be in an open-chain state.
[0036] The foot contact state refers to the contact state between the target humanoid robot's lower limbs and the ground. Specifically, the foot contact state includes a support phase and a swinging phase. The support phase is when the target humanoid robot's lower limbs are in contact with the ground and bear gravity, while the swinging phase is when the target humanoid robot's feet leave the ground and swing forward without contacting the ground.
[0037] Optionally, determining the Jacobian matrix includes: determining the motor angle vector and joint angle vector corresponding to the ankle joint motor at the current moment; performing inverse kinematic analysis based on the motor angle vector and joint angle vector to obtain the link pose vector, and determining the Jacobian matrix based on the link pose vector.
[0038] The motor angle vector represents the vector formed by the rotor angles of one or more motors driving the ankle joint at the current moment. The motor angle vector directly originates from the position feedback of the motor encoder and characterizes the absolute rotation angle of each motor's output shaft. The joint angle vector represents the vector formed by the actual posture angles of the ankle joint at the current moment. The joint angle vector is obtained by kinematic mapping calculation from the motor feedback information and characterizes the actual configuration of the ankle joint in joint space. The link pose vector represents the vector of the spatial pose (position and attitude) of each transmission link (such as crank, rocker, connecting rod, etc.) in the ankle joint drive system at the current moment. The link pose vector can be obtained analytically based on inverse kinematics; this vector is an intermediate variable in calculating the Jacobian matrix and reflects the real-time geometric configuration of the transmission mechanism.
[0039] In one alternative approach, the specific process for determining the Jacobian matrix is as follows: First, the system acquires the motor angle vector and joint angle vector at the current moment. The motor angle vector is directly fed back by the motor encoder, and the joint angle vector is obtained using the solution method described in the previous embodiment. Then, based on the mechanism geometry model of the ankle joint drive system (such as a four-bar linkage, crank-slider linkage, etc.), inverse kinematic analysis is performed using the motor angle vector and joint angle vector as inputs to solve for the spatial pose of each transmission link at the current moment, obtaining the link pose vector. Finally, the partial derivative of the link pose vector with respect to the motor angle vector is calculated (or a velocity constraint equation is established using the vector closed-loop method and the coefficient matrix is extracted) to construct the Jacobian matrix at the current moment. This Jacobian matrix reflects the instantaneous velocity transmission ratio of the transmission mechanism in the current configuration and can be updated in real time with changes in link pose, thereby accurately describing the nonlinear mapping relationship between the joint space and the motor drive space. This provides an accurate transmission model for subsequently converting the joint space composite torque into the initial pure torque on the motor side through Jacobian decoupling.
[0040] For example, the steps to determine the Jacobian matrix are as follows: Step A: Perform analytical inverse kinematics on the current (q_pitch, q_roll) to obtain the pose vectors r_bar, r_rod, r_C of the two-bar linkage and the motor angles θ1 and θ2; Step B: Construct the constraint Jacobian block J_x (2×6), motor axis mapping J_θ (2×2), and joint-to-rigid-body velocity mapping J_q (6×2) from the link vectors; Step C: Let J_Temp = J_x · J_q, and solve the linear equation to get J_motor2Joint = J_Temp -1 ·J_θ, J_Joint2motor = J_θ -1 · J_Temp; Step D: The torque channel uses τ_motor = J_motor2JointT • τ_joint; The velocity channel uses the above J for forward / inverse mapping.
[0041] S250. Multiply the initial pure torque by the sign correction coefficient of the ankle joint motor to obtain the closed-loop pure torque, and control the ankle joint motor based on the closed-loop pure torque.
[0042] The sign correction coefficient is used to redirect the torque in the control coordinate system to the agreed positive direction of the motor drive. Specifically, a coefficient with positive and negative directions can be set as the sign correction coefficient to redirect the torque direction of the initial pure torque to the agreed positive direction of the motor drive. For example, the sign correction coefficient can be +1 or -1. Further, the closed-loop pure torque can be the pure torque used to control the ankle joint motor in the closed-loop state. Specifically, the initial pure torque can be multiplied by the sign correction coefficient of the ankle joint motor to correct the torque direction, and the corrected torque can be used as the closed-loop pure torque. For example, the formula for determining the closed-loop pure torque is: τ_ff = τ_motor · motor_sign Where τ_motor is the initial pure torque; motor_sign is the sign correction coefficient of the ankle joint motor, usually +1 or -1, which comes from the model configuration (such as the motor_sign array) and is used to convert the torque in the control coordinate system to the motor drive convention positive direction.
[0043] Finally, the closed-chain pure torque can be sent to the ankle joint motor so that the ankle joint motor adjusts its output torque to the closed-chain pure torque in the closed-chain state, thereby realizing motion control of the ankle joint in the closed-chain state.
[0044] In addition, when the ankle joint motor is in an open-chain state, the impedance position parameters of the ankle joint motor can be determined, and the ankle joint motor can be controlled based on the impedance position parameters.
[0045] In the open-loop state, the ankle joint is not constrained by the ground, and the control target switches from "torque tracking" in the closed-loop stage to position tracking. This example adopts an impedance control method based on impedance position parameters, that is, on the basis of traditional position closed loop, a virtual impedance model is introduced, so that the ankle joint has a compliant response capability to external disturbances while tracking the target position.
[0046] Specifically, in open-chain mode, the system first acquires the nominal target angle and nominal target angular velocity output by the gait planner. Combining this with the ankle joint angle and ankle joint angular velocity calculated from motor feedback information, it calculates a virtual impedance torque using preset virtual stiffness and virtual damping parameters of the swing phase. This virtual impedance torque is then divided by the virtual stiffness and superimposed on the nominal target angle to generate an impedance position parameter. This impedance position parameter represents the desired position of the ankle joint motor in open-chain mode. Based on the error between this desired position and the actual position, as well as the error between the desired angular velocity and the actual angular velocity, the controller uses the swing phase PD gain to weighted synthesize the joint space synthesized torque. Finally, this torque is converted into a target torque on the motor side via transmission ratio mapping and output, thereby achieving compliant position tracking control in open-chain mode.
[0047] Optionally, the closed-loop pure torque can be sent to the controller corresponding to the ankle joint motor in the closed-loop state, and the impedance position parameters can be sent to the controller corresponding to the ankle joint motor in the open-loop state, in a parallel bus-based manner.
[0048] Parallel data transfer via bus typically refers to the process of simultaneously and concurrently transmitting multiple data bits to different devices or storage units in a computer system using a parallel bus. This mechanism significantly improves efficiency, as explained below: Parallel transmission mechanism: A parallel bus transmits data simultaneously through multiple parallel signal channels, with each signal line corresponding to one data bit. For example, a bus with 16 transmission lines can simultaneously send and transmit 16-bit binary code, thereby enabling high-speed data broadcasting or writing.
[0049] Time-sharing and sharing characteristics: The bus is a shared transmission medium for all components, but at any given time, only one component is allowed to send (distribute) information to the bus, while multiple devices can simultaneously receive the same information from the bus. This "single-transmit, multi-sided reception" mechanism is well-suited for the parallel broadcasting of instructions and data.
[0050] System control and coordination: Parallel data delivery is uniformly managed by the bus controller, which is mainly responsible for resource management, bus timing and arbitration, to ensure that data can be delivered in an orderly and conflict-free manner through the parallel channel when multiple components are competing.
[0051] In one alternative implementation of this example, the system uses bus communication (such as CAN, EtherCAT, or RS485) to interact with the ankle motor controllers. For situations where the left and right ankle joints may be in different closed-chain / open-chain states during the gait cycle (e.g., one side supporting while the other swings during walking), the system simultaneously sends control commands matching the current state to each ankle motor controller via the bus in a parallel manner. Specifically, for ankle motors in a closed-chain state, the system sends a closed-chain pure torque command to the corresponding controller; for ankle motors in an open-chain state, the system sends impedance position parameters to the corresponding controller. Both types of commands are transmitted in parallel within the same bus communication cycle, and each controller extracts and executes the corresponding command based on its local state identifier.
[0052] By sending parameters in parallel via a bus, different states are transmitted to the corresponding controllers of the ankle joint motors. Different types of control commands can be sent in parallel within the same bus cycle, enabling the left and right ankle joints to operate independently in closed-chain torque control and open-chain impedance position control modes, adapting to asymmetrical gait requirements such as walking and running. Furthermore, by centralizing state judgment and command selection in the main controller, the slave controllers only need to parse the corresponding commands, simplifying the logical complexity and computational burden on the slave controllers. This bus architecture supports simultaneous control of multiple joint motors, facilitating expansion to multi-joint collaborative control scenarios such as the knee and hip joints.
[0053] For example, in order to better understand the technical solution provided by the present invention, specific embodiments are described below: Figure 3 This is a flowchart illustrating a process for controlling the ankle joint of a robot, as provided in an embodiment of the present invention. Figure 3 As shown, the workflow for controlling the robot's ankle joint includes the following steps: At preset control intervals, motor feedback information from at least one ankle joint motor of the target humanoid robot is acquired. This motor feedback information includes at least one of the following: motor position information, motor speed information, and motor current information. The motor feedback information is then positively mapped to obtain the ankle joint angle and ankle joint angular velocity. The desired ankle joint position corresponding to the ankle joint motor is determined based on the joint angle and joint angular velocity, and the joint space composite torque is determined based on the desired ankle joint position. The initial pure torque is obtained by Jacobian decoupling based on the joint space composite torque and the Jacobian matrix. If the ankle joint motor is in a closed-loop configuration, the initial pure torque is multiplied by the sign correction coefficient of the ankle joint motor to obtain the closed-loop pure torque. If the ankle joint motor is in an open-loop configuration, the impedance position parameters corresponding to the ankle joint motor are determined. Finally, the corresponding control parameters are sent to each ankle joint motor in a parallel bus-based manner.
[0054] Furthermore, Figure 4This is a schematic diagram illustrating a bidirectional mapping relationship between motor space and joint space provided in an embodiment of the present invention. For example... Figure 4 As shown, the feedback information in the motor space can be positively mapped to obtain the parameters corresponding to the joint space, and then the parameters corresponding to the joint space can be decoupled and mapped to obtain the parameters corresponding to the motor space again.
[0055] The technical solution provided by this invention obtains motor feedback information from at least one ankle joint motor of the target humanoid robot at preset control intervals. For each ankle joint motor, the corresponding ankle joint angle and angular velocity are determined based on the motor feedback information. The desired ankle joint position corresponding to the ankle joint motor is determined based on the joint angle and angular velocity, and the joint space resultant torque is determined based on the desired ankle joint position. When the ankle joint motor is in a closed-loop state, the initial pure torque is obtained by Jacobian decoupling based on the joint space resultant torque and the Jacobian matrix. The initial pure torque is multiplied by the sign correction coefficient of the ankle joint motor to obtain the closed-loop pure torque, and the ankle joint motor is controlled based on the closed-loop pure torque. The technical solution of this invention solves the problem of error in the control parameters of the ankle joint motor in the closed-loop state in the prior art. It can map the joint space resultant torque to the corresponding torque parameters of the motor based on the Jacobian matrix, thereby improving the control stability of the ankle joint motor in the closed-loop state.
[0056] Figure 5 This is a schematic diagram of a robot ankle joint control device provided in an embodiment of the present invention. The embodiment of the present invention can be applied to scenarios where the ankle joint of a humanoid robot is controlled for motion. The device can be implemented by software and / or hardware and integrated into a computer device with application development capabilities.
[0057] like Figure 5 As shown, the robot ankle joint control device includes: a data acquisition module 310, a joint torque determination module 320, and a closed-chain torque determination module 330.
[0058] The data acquisition module 310 is used to acquire motor feedback information of at least one ankle joint motor of the target humanoid robot at preset control intervals; wherein the motor feedback information includes at least one of motor position information, motor speed information, and motor current information; the joint torque determination module 320 is used to determine the joint space composite torque corresponding to each ankle joint motor based on the motor feedback information; the closed-chain torque determination module 330 is used to determine the closed-chain pure torque based on the joint space composite torque and the Jacobian matrix when the ankle joint motor is in a closed-chain state, and to control the ankle joint motor based on the closed-chain pure torque.
[0059] The technical solution provided by this invention obtains motor feedback information of at least one ankle joint motor of a target humanoid robot at preset control intervals. The motor feedback information includes at least one of motor position information, motor speed information, and motor current information. For each ankle joint motor, the joint space resultant torque corresponding to that ankle joint motor is determined based on the motor feedback information. When the ankle joint motor is in a closed-loop state, the closed-loop pure torque is determined based on the joint space resultant torque and the Jacobian matrix, and the ankle joint motor is controlled based on the closed-loop pure torque. This invention solves the problem of error in the control parameters of ankle joint motors in a closed-loop state in the prior art. It can map the joint space resultant torque to the corresponding torque parameters of the motor based on the Jacobian matrix, thereby improving the control stability of the ankle joint motor in a closed-loop state.
[0060] In one optional embodiment, the joint torque determination module 320 includes: a joint space composite torque determination unit, configured to: determine the corresponding ankle joint angle and ankle joint angular velocity based on the motor feedback information of the ankle joint motor; determine the desired ankle joint position corresponding to the ankle joint motor based on the joint angle and joint angular velocity; and determine the joint space composite torque based on the desired ankle joint position.
[0061] In one optional implementation, the closed-chain torque determination module 330 includes: a Jacobian matrix determination unit, used to: determine the motor angle vector and joint angle vector corresponding to the ankle joint motor at the current moment; perform inverse kinematic analysis based on the motor angle vector and joint angle vector to obtain the link pose vector, and determine the Jacobian matrix based on the link pose vector.
[0062] In one optional implementation, the closed-loop torque determination module 330 includes: a closed-loop pure torque determination unit, configured to: obtain an initial pure torque by performing Jacobian decoupling based on the joint space composite torque and the Jacobian matrix; and multiply the initial pure torque by the sign correction coefficient of the ankle joint motor to obtain the closed-loop pure torque; wherein the sign correction coefficient is used to convert the torque in the control coordinate system to the motor drive conventional positive direction.
[0063] In one optional embodiment, the robot ankle joint control device further includes an open-chain state control module, configured to: determine the impedance position parameters corresponding to the ankle joint motor when the ankle joint motor is in an open-chain state, and control the ankle joint motor based on the impedance position parameters.
[0064] In one optional embodiment, the robot ankle joint control device further includes a bus parallel transmission module, used to: send the closed-loop pure torque to the controller corresponding to the ankle joint motor in the closed-loop state, and send the impedance position parameter to the controller corresponding to the ankle joint motor in the open-loop state in a bus parallel transmission manner.
[0065] In one optional implementation, the closed-chain torque determination module 330 includes: a closed-chain state determination unit, used to: determine the foot contact state based on the motor feedback information of the ankle joint motor, and determine that the ankle joint motor is in a closed-chain state when the foot contact state is a support phase state.
[0066] The robot ankle joint control device provided in the embodiments of the present invention can execute the robot ankle joint control method provided in any embodiment of the present invention, and has the corresponding functional modules and beneficial effects of the method execution.
[0067] Figure 6 This is a schematic diagram of the structure of a computer device provided in an embodiment of the present invention. Figure 6 A block diagram of an exemplary computer device 12 suitable for implementing embodiments of the present invention is shown. Figure 6 The computer device 12 shown is merely an example and should not be construed as limiting the functionality or scope of the embodiments of the present invention. The computer device 12 can be any terminal device with computing capabilities and can be configured in a robotic ankle joint control device.
[0068] like Figure 6 As shown, the computer device 12 is represented in the form of a general-purpose computing device. The components of the computer device 12 may include, but are not limited to: one or more processors or processing units 16, system memory 28, and bus 18 connecting different system components (including system memory 28 and processing unit 16).
[0069] Bus 18 can be one or more of several bus architectures, including a memory bus or memory controller, a peripheral bus, a graphics acceleration port, a processor, or a local bus using any of the various bus architectures. For example, these architectures include, but are not limited to, the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MAC) bus, the Enhanced ISA bus, the Video Electronics Standards Association (VESA) local bus, and the Peripheral Component Interconnect (PCI) bus.
[0070] Computer device 12 typically includes a variety of computer system readable media. These media can be any available media that can be accessed by computer device 12, including volatile and non-volatile media, removable and non-removable media.
[0071] System memory 28 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache 32. Computer device 12 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 34 may be used to read and write non-removable, non-volatile magnetic media (… Figure 6 Not shown; usually referred to as a "hard drive"). Although Figure 6 Not shown, a disk drive for reading and writing to a removable non-volatile disk (e.g., a "floppy disk") and an optical disk drive for reading and writing to a removable non-volatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In these cases, each drive may be connected to bus 18 via one or more data media interfaces. System memory 28 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of the embodiments of the present invention.
[0072] A program / utility 40 having a set (at least one) of program modules 42 may be stored, for example, in system memory 28. Such program modules 42 include, but are not limited to, an operating system, one or more application programs, other program modules, and program data. Each or some combination of these examples may include an implementation of a network environment. Program modules 42 typically perform the functions and / or methods described in the embodiments of the present invention.
[0073] Computer device 12 can also communicate with one or more external devices 14 (e.g., keyboard, pointing device, display 24, etc.), and with one or more devices that enable a user to interact with the computer device 12, and / or with any device that enables the computer device 12 to communicate with one or more other computing devices (e.g., network card, modem, etc.). This communication can be performed through input / output (I / O) interface 22. Furthermore, computer device 12 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 20. Figure 6 As shown, network adapter 20 communicates with other modules of computer device 12 via bus 18. It should be understood that, although... Figure 6 As not shown, it can be used in conjunction with computer device 12 with other hardware and / or software modules, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0074] Processing unit 16 executes various functional applications and data processing by running programs stored in system memory 28, such as implementing the robot ankle joint control method provided in this embodiment of the invention, which includes: At preset control intervals, motor feedback information of at least one ankle joint motor of the target humanoid robot is acquired; wherein, the motor feedback information includes at least one of: motor position information, motor speed information, and motor current information; for each ankle joint motor, the joint space resultant torque corresponding to the ankle joint motor is determined according to the motor feedback information; when the ankle joint motor is in a closed-loop state, the closed-loop pure torque is determined according to the joint space resultant torque and the Jacobian matrix, and the ankle joint motor is controlled based on the closed-loop pure torque.
[0075] This embodiment provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the robot ankle joint control method provided in any embodiment of the present invention, including: At preset control intervals, motor feedback information of at least one ankle joint motor of the target humanoid robot is acquired; wherein, the motor feedback information includes at least one of: motor position information, motor speed information, and motor current information; for each ankle joint motor, the joint space resultant torque corresponding to the ankle joint motor is determined according to the motor feedback information; when the ankle joint motor is in a closed-loop state, the closed-loop pure torque is determined according to the joint space resultant torque and the Jacobian matrix, and the ankle joint motor is controlled based on the closed-loop pure torque.
[0076] The computer storage medium of this invention can be any combination of one or more computer-readable media. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of computer-readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this document, a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0077] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, capable of sending, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device.
[0078] Program code contained on a computer-readable medium may be transmitted using any suitable medium, including but not limited to: wireless, wire, optical fiber, RF (Radio Frequency), etc., or any suitable combination thereof.
[0079] Computer program code for performing the operations of this invention can be written in one or more programming languages or a combination thereof. Programming languages include object-oriented programming languages such as C, Java, Smalltalk, C++, C#, and Python, as well as conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0080] Those skilled in the art will understand that the modules or steps of the present invention described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. Optionally, they can be implemented using computer-executable program code, thereby allowing them to be stored in a storage device for execution by a computing device, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, the present invention is not limited to any particular combination of hardware and software.
[0081] Note that the above description is merely a preferred embodiment of the present invention and the technical principles employed. Those skilled in the art will understand that the present invention is not limited to the specific embodiments described herein, and various obvious changes, readjustments, and substitutions can be made without departing from the scope of protection of the present invention. Therefore, although the present invention has been described in detail through the above embodiments, the present invention is not limited to the above embodiments, and may include many other equivalent embodiments without departing from the concept of the present invention, the scope of which is determined by the scope of the appended claims.
Claims
1. A method for controlling the ankle joint of a robot, characterized in that, include: At preset control intervals, motor feedback information of at least one ankle joint motor of the target humanoid robot is acquired; wherein, the motor feedback information includes at least one of motor position information, motor speed information and motor current information; For each ankle joint motor, the joint space resultant torque corresponding to the ankle joint motor is determined based on the motor feedback information. When the ankle joint motor is in a closed-loop state, the closed-loop pure torque is determined based on the joint space composite torque and the Jacobian matrix, and the ankle joint motor is controlled based on the closed-loop pure torque.
2. The method according to claim 1, characterized in that, The step of determining the corresponding joint space resultant torque based on the motor feedback information includes: The corresponding ankle joint angle and ankle joint angular velocity are determined based on the motor feedback information from the ankle joint motor. The desired ankle joint position corresponding to the ankle joint motor is determined based on the joint angle and joint angular velocity, and the joint space composite torque is determined based on the desired ankle joint position.
3. The method according to claim 1, characterized in that, Determining the Jacobian matrix includes: Determine the motor angle vector and joint angle vector corresponding to the ankle joint motor at the current moment; The link pose vector is obtained by inverse kinematic analysis based on the motor angle vector and joint angle vector, and the Jacobian matrix is determined based on the link pose vector.
4. The method according to claim 1, characterized in that, The step of determining the closed-loop pure torque based on the joint space composite torque and the Jacobian matrix includes: The initial pure torque is obtained by Jacobian decoupling based on the joint space composite torque and the Jacobian matrix. The closed-loop pure torque is obtained by multiplying the initial pure torque by the sign correction coefficient of the ankle joint motor; wherein the sign correction coefficient is used to convert the torque in the control coordinate system to the conventional positive direction of the motor drive.
5. The method according to claim 1, characterized in that, The method further includes: When the ankle joint motor is in an open-chain state, the impedance position parameters corresponding to the ankle joint motor are determined, and the ankle joint motor is controlled based on the impedance position parameters.
6. The method according to claim 5, characterized in that, The method further includes: The closed-loop pure torque is sent to the controller corresponding to the ankle joint motor in the closed-loop state in a parallel bus manner, and the impedance position parameter is sent to the controller corresponding to the ankle joint motor in the open-loop state.
7. The method according to claim 1, characterized in that, Determining that the ankle joint motor is in a closed-loop state includes: The foot contact state is determined based on the motor feedback information of the ankle joint motor. If the foot contact state is the support phase state, the ankle joint motor is determined to be in the closed-loop state.
8. A robotic ankle joint control device, characterized in that, The device includes: The data acquisition module is used to acquire motor feedback information of at least one ankle joint motor of the target humanoid robot at preset control intervals; wherein, the motor feedback information includes at least one of motor position information, motor speed information and motor current information; The joint torque determination module is used to determine the joint space composite torque corresponding to each ankle joint motor based on the motor feedback information. The closed-chain torque determination module is used to determine the closed-chain pure torque based on the joint space composite torque and the Jacobian matrix when the ankle joint motor is in a closed-chain state, and to control the ankle joint motor based on the closed-chain pure torque.
9. A computer device, characterized in that, The computer device includes: One or more processors; Memory, used to store one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the robot ankle joint control method as described in any one of claims 1-7.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When executed by the processor, the program implements the robot ankle joint control method as described in any one of claims 1-7.
