Robot and control method, device and storage medium thereof
By acquiring the posture information of the robot and the standing surface, establishing dynamic equations, and calculating the target torque of the joints, the balance problem of the robot on the dynamic standing surface was solved, and the balance control of the robot on the dynamic standing surface was realized, thus improving the control stability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- BEIJING XIAOMI ROBOT TECH CO LTD
- Filing Date
- 2023-07-27
- Publication Date
- 2026-05-08
AI Technical Summary
Traditional robot control algorithms cannot effectively address the balance problem of robots on dynamic standing surfaces, especially on unstable standing surfaces, which increases the complexity and difficulty of control and makes it difficult to maintain robot stability.
By acquiring the posture information of the robot and the standing surface, dynamic equations are established, target dynamic equations are determined, control optimization tasks are constructed, target torques of each joint are calculated, and balance control between the robot and the standing surface is achieved.
It enables balance control of the robot on a dynamic standing surface, expands the robot's application scenarios, improves control stability, and is suitable for movement in complex terrain.
Smart Images

Figure CN116810794B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of intelligent robot technology, specifically to a robot and its control method, device, and storage medium. Background Technology
[0002] Legged robots are robots designed to mimic legged animals or humans in nature. Legged robots have a high degree of freedom, thus possessing excellent mobility and stability in various complex terrains.
[0003] In related technologies, the control of legged robots mainly focuses on the stability of the robot itself. However, when the robot is on a dynamic standing surface, the standing surface itself is in an unstable state, and traditional robot control algorithms cannot cope with this scenario. Summary of the Invention
[0004] To address the balance problem of robots on dynamic standing surfaces and improve robot control stability, this disclosure provides a robot control method, apparatus, robot, and storage medium.
[0005] In a first aspect, embodiments of this disclosure provide a robot control method, including:
[0006] Obtain the robot's first posture information, and determine the robot's second posture information on the standing surface based on the first posture information;
[0007] Based on the robot's dynamic equations and the dynamic equations of the standing surface, determine the target dynamic equations of the robot on the standing surface;
[0008] The control optimization task of the robot is established based on the target dynamic equation, and the target torque of each joint of the robot is obtained based on the first posture information, the second posture information and the control optimization task.
[0009] The robot's joints are moved according to the target torque.
[0010] In some embodiments, the first posture information includes the position information of the robot's torso center point and the joint angle of each joint, and the second posture information includes the pitch angle and roll angle of the standing surface; determining the second posture information of the robot's standing surface based on the first posture information includes:
[0011] Based on the position information of the center point of the torso and the joint angle of each joint, the position information of each foot of the robot in the world coordinate system is determined;
[0012] The plane equation of the standing surface is determined based on the position information of each foot of the robot in the world coordinate system;
[0013] The pitch angle and roll angle of the standing surface are determined based on the plane equation of the standing surface.
[0014] In some implementations, determining the position information of each foot of the robot in the world coordinate system based on the position information of the torso center point and the joint angle of each joint includes:
[0015] Determine a first vector from the center point of the robot's torso to each foot.
[0016] Based on the first vector from each foot tip to the center point of the torso, determine the second vector from the origin of the world coordinate system to the center point of the torso;
[0017] Based on the second vector and each of the first vectors, determine the position information of each foot in the world coordinate system.
[0018] In some embodiments, determining the target dynamic equation of the robot on the standing surface based on the robot's dynamic equation and the dynamic equation of the standing surface includes:
[0019] Based on the correspondence between the angular acceleration of each joint of the robot and the plantar force, the dynamic equations of the robot are determined;
[0020] Based on the correspondence between the angular acceleration of the standing surface and the supporting force, the dynamic equation of the standing surface is determined, wherein the supporting force and the plantar force are equal in magnitude and opposite in direction.
[0021] The target dynamic equation of the robot on the standing surface is obtained by fusing the dynamic equations of the robot and the standing surface.
[0022] In some implementations, the task of establishing the robot's control optimization based on the target dynamic equation includes:
[0023] A first control task is established based on the angular acceleration of the robot and the standing surface, a second control task is established based on the position of the robot's feet, and a third control task is established based on the force of the robot's feet.
[0024] Based on the first control task, the second control task, and the third control task, establish the target control task of the robot on the standing surface;
[0025] Based on the target dynamic equation, a constraint task for the target control task is established, and the control optimization task is obtained.
[0026] In some implementations, establishing the constraint task for the target control task based on the target dynamic equation to obtain the control optimization task includes:
[0027] Based on the target dynamic equation, preset constraints, and preset weights for each control task, a constraint task for the target control task is established, resulting in the control optimization task.
[0028] In some implementations, obtaining the target torque of each joint of the robot based on the first posture information, the second posture information, and the control optimization task includes:
[0029] Based on the first posture information, the second posture information, and the control optimization task, the desired angular acceleration and target foot force of each joint of the robot are determined;
[0030] The target torque for each joint is determined based on the desired angular acceleration and the target plantar force.
[0031] Secondly, embodiments of this disclosure provide a robot control device, including:
[0032] The attitude determination module is configured to acquire the robot's first attitude information and determine the robot's second attitude information on the standing surface based on the first attitude information.
[0033] The dynamics equation module is configured to determine the target dynamics equation of the robot on the standing surface based on the dynamics equation of the robot and the dynamics equation of the standing surface;
[0034] The torque determination module is configured to establish the robot's control optimization task based on the target dynamic equation, and to obtain the target torque of each joint of the robot based on the first posture information, the second posture information, and the control optimization task.
[0035] The motion control module is configured to control the movement of each joint of the robot according to the target torque.
[0036] In some implementations, the first attitude information includes the position information of the robot's torso center point and the joint angle of each joint, and the second attitude information includes the pitch angle and roll angle of the standing surface; the attitude determination module is configured to:
[0037] Based on the position information of the center point of the torso and the joint angle of each joint, the position information of each foot of the robot in the world coordinate system is determined;
[0038] The plane equation of the standing surface is determined based on the position information of each foot of the robot in the world coordinate system;
[0039] The pitch angle and roll angle of the standing surface are determined based on the plane equation of the standing surface.
[0040] In some implementations, the attitude determination module is configured to:
[0041] Determine a first vector from the center point of the robot's torso to each foot.
[0042] Based on the first vector from each foot tip to the center point of the torso, determine the second vector from the origin of the world coordinate system to the center point of the torso;
[0043] Based on the second vector and each of the first vectors, determine the position information of each foot in the world coordinate system.
[0044] In some implementations, the dynamic equation module is configured as follows:
[0045] Based on the correspondence between the angular acceleration of each joint of the robot and the plantar force, the dynamic equations of the robot are determined;
[0046] Based on the correspondence between the angular acceleration of the standing surface and the supporting force, the dynamic equation of the standing surface is determined, wherein the supporting force and the plantar force are equal in magnitude and opposite in direction.
[0047] The target dynamic equation of the robot on the standing surface is obtained by fusing the dynamic equations of the robot and the standing surface.
[0048] In some implementations, the torque determination module is configured to:
[0049] A first control task is established based on the angular acceleration of the robot and the standing surface, a second control task is established based on the position of the robot's feet, and a third control task is established based on the force of the robot's feet.
[0050] Based on the first control task, the second control task, and the third control task, establish the target control task of the robot on the standing surface;
[0051] Based on the target dynamic equation, a constraint task for the target control task is established, and the control optimization task is obtained.
[0052] In some implementations, the torque determination module is configured to:
[0053] Based on the target dynamic equation, preset constraints, and preset weights for each control task, a constraint task for the target control task is established, resulting in the control optimization task.
[0054] In some implementations, the torque determination module is configured to:
[0055] Based on the first posture information, the second posture information, and the control optimization task, the desired angular acceleration and target foot force of each joint of the robot are determined;
[0056] The target torque for each joint is determined based on the desired angular acceleration and the target plantar force.
[0057] Thirdly, this disclosure provides a robot, including:
[0058] processor; and
[0059] A memory storing computer instructions for causing a processor to perform the method according to any embodiment of the first aspect.
[0060] Fourthly, embodiments of this disclosure provide a storage medium storing computer instructions for causing a computer to perform the method described according to any embodiment of the first aspect.
[0061] The robot control method of this disclosure includes acquiring first posture information of the robot and determining second posture information of the standing surface based on the first posture information; determining a target dynamic equation based on the robot's dynamic equation and the dynamic equation of the standing surface; establishing a control optimization task for the robot based on the target dynamic equation; obtaining target torques for each joint of the robot based on the first posture information, the second posture information, and the control optimization task; and controlling the movement of each joint of the robot based on the target torques. In this disclosure, by performing dynamic analysis and optimized control of the robot's posture and the posture of the standing surface, the balance problem of the robot on a dynamic standing surface is solved, achieving balance control of the robot on a dynamic standing surface, expanding the application scenarios of the robot, such as robot skateboarding, robot anthropomorphic motion, etc., and improving the robot's control stability. Attached Figure Description
[0062] To more clearly illustrate the technical solutions in the specific embodiments of this disclosure or the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0063] Figure 1 This is a structural schematic diagram of a robot according to some embodiments of this disclosure.
[0064] Figure 2 This is a schematic diagram of the robot's motion scene according to some embodiments of this disclosure.
[0065] Figure 3 This is a structural block diagram of a robot according to some embodiments of this disclosure.
[0066] Figure 4 This is a flowchart of a robot control method according to some embodiments of the present disclosure.
[0067] Figure 5 This is a flowchart of a robot control method according to some embodiments of the present disclosure.
[0068] Figure 6 This is a schematic diagram of a robot control method according to some embodiments of this disclosure.
[0069] Figure 7 This is a flowchart of a robot control method according to some embodiments of the present disclosure.
[0070] Figure 8 This is a flowchart of a robot control method according to some embodiments of the present disclosure.
[0071] Figure 9 This is a flowchart of a robot control method according to some embodiments of the present disclosure.
[0072] Figure 10 This is a structural block diagram of a robot control device according to some embodiments of the present disclosure. Detailed Implementation
[0073] The technical solutions of this disclosure will now be clearly and completely described with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this disclosure, not all of them. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without inventive effort are within the scope of protection of this disclosure. Furthermore, the technical features involved in the different embodiments of this disclosure described below can be combined with each other as long as they do not conflict with each other.
[0074] Legged robots are robots designed to mimic legged animals or humans in nature. Traditional legged robots include bipedal and quadrupedal robots. Legged robots have a high degree of freedom, which gives them excellent mobility and stability in various complex terrains. For example, common quadrupedal robots include 12-DOF robots. This high degree of freedom ensures the robot's obstacle-crossing ability and motion stability.
[0075] In related technologies, research on legged robots mainly focuses on the robot's own motion stability, with almost no attention paid to the robot's balance on dynamic standing surfaces. For example, when a robot stands on a dynamic standing surface such as a skateboard or a semi-circular balancing sphere, the surface on which the robot stands is inherently unbalanced. Controlling the robot requires ensuring not only its own balance but also the balance of the standing surface, which greatly increases the complexity and difficulty of robot control. Traditional control algorithms struggle to maintain robot stability.
[0076] Based on the problems existing in the above-mentioned related technologies, the present disclosure provides a robot and its control method, device and storage medium, which aims to solve the balance problem of the robot on a dynamic standing surface and improve the control stability of the robot.
[0077] The robot in this disclosure can be a legged robot, which generally includes bipedal and quadrupedal robots; this disclosure does not limit this. For example... Figure 1 The diagram shows a simplified structural schematic of a quadruped robot. The following section will combine... Figure 1 The quadruped robot of this disclosure is described.
[0078] See Figure 1 As shown, the quadruped robot includes a torso 10, two front legs 20 and two hind legs 30. The two front legs 20 are connected to the two sides of the front part of the torso 10, and the two hind legs 30 are connected to the two sides of the rear part of the torso 10.
[0079] Each mechanical leg of the quadruped robot includes a lower leg link and a thigh link. Each mechanical leg includes three joint motors: a knee forward swing motor, a hip forward swing motor, and a hip lateral swing motor. The knee forward swing motor drives the forward and backward rotation of the lower leg link relative to the thigh link, the hip forward swing motor drives the forward and backward rotation of the thigh link relative to the torso 10, and the hip lateral swing motor drives the left and right relative movement of the thigh link relative to the torso 10. Thus, the knee forward swing motor, hip forward swing motor, and hip lateral swing motor provide three degrees of freedom for each leg of the quadruped robot, giving the quadruped robot a total of 12 degrees of freedom.
[0080] In this public example scenario, see Figure 2 As shown, the standing surface 200 on which the robot stands can be a dynamic standing surface that is in motion. For example, when the robot stands on a skateboard, the surface of the skateboard is the standing surface 200, which has pitch and roll degrees of freedom in free space, that is... Figure 2 In the example, the standing plane 200 and the horizontal plane can produce a pitch angle θ. p and roll angle θ r .
[0081] It is understandable that in this scenario, since the standing surface 200 on which the robot is located is itself a dynamic standing surface, in order to achieve the robot's standing balance, in addition to ensuring the robot's own balance, it is also necessary to ensure the balance of the standing surface 200. Therefore, traditional control methods for stabilizing the robot's own motion are not applicable in this scenario.
[0082] Figure 3 The following diagram illustrates the structural block diagram of the robot in some embodiments of this disclosure, in conjunction with... Figure 3 The principles of robot control will be explained.
[0083] like Figure 3 As shown, in some embodiments, the robot 600 of this disclosure includes a processor 601, a memory 602, an IMU sensor 604, a joint sensor 605, and a joint motion execution unit 606.
[0084] The processor 601, memory 602, IMU sensor 604, joint sensor 605, and joint motion execution unit 606 can establish a communicable connection between any two of them via bus 603.
[0085] The processor 601 can be any type of processor with one or more processing cores. It can execute single-threaded or multi-threaded operations, used for parsing instructions to perform operations such as data acquisition, logical operations, and outputting processing results.
[0086] The memory 602 may include a non-volatile computer-readable storage medium, such as at least one disk storage device, flash memory device, etc. The memory may have a program storage area for storing non-volatile software programs, non-volatile computer-executable programs, and modules, which can be invoked by the processor 601 to cause the processor 601 to execute one or more method steps. The memory 602 may also include a volatile random access storage medium, or a storage portion such as a hard disk, as a data storage area for storing the processing results and data output by the processor 601.
[0087] IMU sensor 604 is an inertial measurement unit (IMU), which can be located in the torso 10 of robot 600 to detect the attitude information of the torso 10. In some embodiments, IMU sensor 604 may include, for example, a three-axis or six-axis gyroscope, an accelerometer, etc.
[0088] Joint sensors 605 are position sensors, and they are respectively installed at each joint of the robot 600, such as those described above. Figure 1In the example quadruped robot, a joint sensor 605 can be set for each joint of each leg of the robot, so that the joint sensor 605 can detect the joint angle when the joint moves.
[0089] The joint motion execution unit 606 refers to a functional module used to provide torque to drive joint movement. For example, in some embodiments, the joint motion execution unit 606 may be a joint motor located at each joint position of the robot. Figure 1 , Figure 2 In the example quadruped robot, the joint motion execution unit 606 includes a knee joint forward swing motor, a hip joint forward swing motor, and a hip joint lateral swing motor on each leg, for a total of 12 joint motors.
[0090] Of course, those skilled in the art will understand that the joint motion execution unit 606 described in this disclosure is not limited to a joint motor, but can also be any other drive device capable of providing joint motion torque, such as a hydraulic drive device. In the following embodiments of this disclosure, the joint motion execution unit 606 is uniformly described as a joint motor, but those skilled in the art will understand that this is not a limitation.
[0091] The above combination Figures 1-3 The structure and principle of the robot in some embodiments of this disclosure have been described. In fact, the quadruped robot also includes other structures or electrical components, which can be understood and fully implemented by those skilled in the art with reference to the relevant technology. This disclosure will not elaborate on these aspects further.
[0092] Based on the robot in the above example, this disclosure provides a robot control method that can be executed by the robot's processor 601. The following describes the method in conjunction with... Figure 4 The implementation method is described below.
[0093] like Figure 4 As shown, in some embodiments, the robot control method of this disclosure includes:
[0094] S410. Obtain the robot's first posture information and determine the robot's second posture information based on the first posture information.
[0095] Combination Figure 2 As shown in the scenario, when the robot stands on a dynamic standing surface 200, the robot's posture control not only includes the robot's own posture control, but also the posture control of the standing surface 200, so as to keep both the robot and the standing surface 200 in a balanced state.
[0096] In this embodiment of the disclosure, the first posture information refers to the posture information of the robot itself, while the second posture information refers to the posture information of the standing surface 200.
[0097] In some implementations, the robot's first posture information includes the position information of the torso center point and the joint angle of each joint of the robot. As can be seen from the foregoing, the position information of the robot's torso center point can be detected by the IMU sensor 604 located on the robot's torso 10, and the joint angle of each joint can be detected by the joint sensor 605 located on each joint of the robot.
[0098] The second attitude information for the standing surface 200 includes the pitch angle θ of the standing surface 200. p and roll angle θ r Since the motion of the standing surface 200 is a passive motion caused by the external force of the robot, the second attitude information of the standing surface 200 cannot be directly measured and needs to be calculated based on the robot's first attitude information.
[0099] For example, in some implementations, combined with Figure 2 As shown in the example, when the quadruped robot stands on the standing surface 200, its four feet make four contact points with the standing surface 200. It is known that a plane can be determined based on at least three points. Therefore, in this embodiment, the plane equation of the standing surface 200 can be obtained by fitting the positions of the four feet, and then the pitch angle θ of the standing surface 200 can be calculated based on the plane equation. p and roll angle θ r This yields the second attitude information.
[0100] The process of calculating the second attitude information based on the first attitude information will be described in the following implementation method, and will not be detailed here.
[0101] S420. Based on the robot's dynamic equations and the dynamic equations of the standing surface, determine the target dynamic equations of the robot on the standing surface.
[0102] It is understood that, in this embodiment of the present disclosure, the purpose of controlling the robot is to keep both the robot and the standing surface 200 horizontal, thereby achieving the robot's balance on the dynamic plane. The control method for the robot involves controlling the torque of the 12 joint motors throughout the robot's body. By outputting appropriate torques from these 12 joint motors, the robot achieves balance on the standing surface 200. Therefore, the goal of robot control is to determine the target torque for each joint motor.
[0103] When controlling a robot, dynamic equations describing the robot's motion are required. However, the example scenario disclosed herein differs from traditional robot motion control scenarios, for example... Figure 2 For example, since the robot is on a dynamic standing surface 200, when describing the robot's motion, it is necessary to consider not only the robot's own motion, but also the motion of the standing surface 200.
[0104] In this embodiment of the disclosure, the motion of the robot itself can be described by the robot's dynamic equation, the motion of the standing surface 200 can be described by the dynamic equation of the standing surface, and the target dynamic equation obtained by combining the two is the dynamic equation describing the motion of the robot on the standing surface 200.
[0105] In some implementations, the dynamic equations of the robot can be constructed first, followed by the dynamic equations of the standing surface 200. Then, the target dynamic equations of the robot's motion on the standing surface are obtained based on the robot's dynamic equations and the dynamic equations of the standing surface. This process is described below and will not be detailed here.
[0106] S430. Establish the robot's control optimization task based on the target dynamic equation, and obtain the target torque of each joint of the robot based on the first posture information, the second posture information and the control optimization task.
[0107] It is understandable that the motion control of a robot is essentially a process of solving for the variables to be solved in the system based on the current state of the system. More specifically, it is a process of solving for the torque of each joint motor based on the robot's current posture information.
[0108] Therefore, for robot motion control problems, it is necessary to pre-construct control tasks. There is not necessarily only one control task, but one or more control tasks need to be constructed according to specific control requirements. The target control task obtained after combining all control tasks is the total task for robot motion control.
[0109] In this embodiment, the aforementioned target dynamics equation describes the robot's motion on the standing surface 200; that is, the robot's motion control needs to satisfy this target dynamics equation. Therefore, the target dynamics equation can serve as a constraint for the target control task. Of course, the constraints for the target control task include not only this constraint but also other constraints. By introducing constraints into the established target control task, the control optimization task can be obtained.
[0110] The control optimization task is essentially the final solution equation. Given the robot's first attitude information and the second attitude information of its standing surface, the control optimization task involves only one variable to be solved. Therefore, in this embodiment, after constructing the control optimization task based on the target dynamics equation, the aforementioned first and second attitude information can be substituted into the control optimization task to obtain the final result for the variable to be solved.
[0111] It is worth noting that in some embodiments of this disclosure, the variables to be solved in the control optimization task are generally the angular acceleration of the motors of each joint of the robot, the foot force, and the angular acceleration of the standing surface. By substituting these variables into the robot's dynamic equations, the target torque of each joint of the robot can be calculated.
[0112] The process of solving the target torque of each joint for a specific construction task is described in the following implementation method.
[0113] S440: Control the movement of each joint of the robot according to the target torque.
[0114] As mentioned above, the target torque for each joint is the torque that each joint motor needs to output. Thus, the target torque can be sent to each joint motor for execution, so that each joint motor outputs the target torque, ensuring that the robot and the standing surface 200 are in a balanced state.
[0115] Alternatively, it can be understood that the motion control of the robot is a dynamic control process, that is, the above method process is repeatedly executed in each control cycle, so that the robot can maintain its balance on the standing surface 200 until it receives an exit command, at which point the above control process stops.
[0116] As can be seen from the above, in this embodiment of the invention, the balance problem of the robot on a dynamic standing surface is solved by dynamic analysis and optimized control of the robot's posture and standing surface posture, thereby realizing the balance control of the robot on a dynamic standing surface, expanding the application scenarios of the robot, such as robot skateboarding, robot humanoid motion, etc., and improving the control stability of the robot.
[0117] In some implementations, the robot's first posture information includes the position information of the robot's torso center point and the joint angles of each joint. Combined with... Figures 1 to 3 As shown, the position information of the center point of the torso can be detected by the IMU sensor 604 installed on the torso 10, and the joint angle of each joint can be detected by the joint motion execution unit 606 installed at the joint. The joint motion execution unit 606 is also known as the joint motor.
[0118] like Figure 5As shown, in some embodiments, the process of determining the second attitude information of the standing surface 200 based on the first attitude information in the robot control method of this disclosure includes:
[0119] S510. Based on the position information of the center point of the torso and the joint angle of each joint, determine the position information of each foot of the robot in the world coordinate system.
[0120] As mentioned above, in order to calculate the second posture information of the standing surface 200, it is first necessary to establish the planar equation of the standing surface 200. Establishing the planar equation of the standing surface 200 requires the position information of the robot's four feet in the world coordinate system, which is the coordinate of the feet in the world coordinate system.
[0121] See Figure 6 As shown, C r This is the original coordinate system of the robot's torso 10, with its origin O. r This is the center point of the robot's torso. The x-direction is the projection direction of the vector from the robot's tail to its head onto the horizontal plane. The z-direction is the direction opposite to the direction of gravity. The y-direction is perpendicular to both the x and z directions. C w It is a world coordinate system, with its origin O. w This refers to the midpoint of the line connecting the robot's feet, with the coordinate axis direction aligned with the original coordinate system C. r same.
[0122] In this embodiment of the disclosure, the center point of the torso is known to be in the original coordinate system C. r The location information, that is, the origin O of the coordinate system. r And the joint angles of each joint, requiring the calculation of foot ends P1, P2, P3, P4 in world coordinate system C. w Location information, combined with the following Figure 7 The implementation method is described below.
[0123] like Figure 7 As shown, in some embodiments, the robot control method of this disclosure, in the process of determining the position information of each foot in the world coordinate system, includes:
[0124] S511. Determine the first vector from each foot of the robot to the center point of the torso.
[0125] S512. Based on the first vector from each foot tip to the center point of the torso, determine the second vector from the center point of the torso to the origin of the world coordinate system.
[0126] S513. Based on the second vector and each first vector, determine the position information of each foot in the world coordinate system.
[0127] Combination Figure 6As shown, given the joint angles of each joint in each leg of the robot, the forward dynamics algorithm can be used to first calculate the coordinates of each foot end P1, P2, P3, P4 in the original coordinate system C. r Location information, since the center point of the torso is in the original coordinate system C r O of the coordinate system r Thus, the center point O of the torso can be calculated. r The vectors to each foot tip P1, P2, P3, P4 are also known as the first vectors described in this disclosure. For example, in one example, the first vectors from the center point of the torso to each foot tip are respectively represented as:
[0128] After obtaining the first vector from the center point of the torso to each foot, the origin O of the world coordinate system can be represented based on each of these first vectors. w To the center point O of the torso r The vector, namely the second vector described in this disclosure. Represented as:
[0129]
[0130] Combination Figure 6 As shown, after obtaining the second vector and each first vector The origin O of the world coordinate system can then be calculated separately. w The vector to each foot represents the position of each foot in the world coordinate system.
[0131] In some implementations, they are represented by r1, r2, r3, and r4, respectively. Therefore, the position information of each foot tip in the world coordinate system can be represented as:
[0132]
[0133]
[0134]
[0135]
[0136] S520. Determine the plane equation of the standing surface based on the position information of each foot of the robot in the world coordinate system.
[0137] It is understood that a plane can be determined based on the coordinates of at least three points in free space. Therefore, in this embodiment of the present disclosure, the plane equation of the standing surface 200 can be constructed based on the position information of each foot in the world coordinate system.
[0138] For example, in one instance, the plane equation of the standing surface can be expressed as:
[0139] ax + by + z = d (6)
[0140] In formula (6), a, b, and d are parameters of the plane equation. Given the coordinates of four points P1, P2, P3, and P4 on this plane, respectively, use [x...] i ,y i ,z i (i = 1, 2, 3, 4) means that substituting it into formula (6) will yield 4 equations. These 4 equations contain three unknowns: a, b, and d. Therefore, in some implementations, the plane with the smallest sum of squared distances to the 4 points can be obtained by using pseudo-inverse operations, which is represented as:
[0141]
[0142]
[0143] In formulas (7) and (8), the superscript "+" indicates a pseudo-inverse operation, and "^" indicates an estimated value. Therefore, based on the pseudo-inverse operation process of formulas (7) and (8), the coefficients a, b, and d of the plane equation can be calculated, thereby determining the plane equation of the standing surface 200.
[0144] S530. Determine the pitch angle and roll angle of the standing surface based on the plane equation of the standing surface.
[0145] In this disclosure, combined with Figure 6 As shown, the second attitude information of the standing surface 200 includes the pitch angle θ of the standing surface 200. p and roll angle θ r .
[0146] See Figure 6 As shown, after obtaining the plane equation of the standing plane 200, the pitch angle θ of the standing plane 200 can be calculated based on the plane equation. p and roll angle θ r For example, in one scenario, the normal vector of the standing plane 200 can be calculated based on the plane equation. Then, the pitch angle θ of the standing plane can be obtained using the angle between the normal vector and the world coordinate system. p and roll angle θ r , is represented as:
[0147]
[0148]
[0149] Through the above process, the planar equation of the standing surface 200 and the corresponding second attitude information can be obtained, including the pitch angle θ of the standing surface 200. p and roll angle θ r .
[0150] like Figure 8 As shown, in some embodiments, the robot control method of this disclosure, in the process of determining the target dynamic equations of the robot on the standing surface, includes:
[0151] S421. Determine the robot's dynamic equations based on the correspondence between the angular acceleration of each joint and the foot force.
[0152] In this embodiment of the disclosure, the robot's dynamic equations are expressed as follows:
[0153]
[0154] In formula (11), q=[q f ;q j ] represents the robot's generalized degrees of freedom, specifically the 18 degrees of freedom including the floating base. It is an 18-dimensional vector, where the 6 degrees of freedom of the floating base represent the torso 10, which can move arbitrarily in space, and the 12 active degrees of freedom correspond to the 12 active joints. M(q) represents the robot's dynamic inertia matrix, which is an 18*18 dimensional matrix. The vector contains centripetal force, gravity, and Coriolis force components and is an 18-dimensional vector. J(q) represents the Jacobian matrix of the plantar forces, a 12*18 dimensional matrix. F represents the plantar forces generated by all the robot's feet and is a 12-dimensional vector. τ=[τ f ;τ j ] represents torque, which is an 18-dimensional vector including 6-dimensional floating base forces and torques and 12-dimensional joint torques. Since the floating bases are passive degrees of freedom, the first 6 dimensions of τ are zero.
[0155] In this embodiment, since the first 6 dimensions of the torque τ are zero, the selection matrix S6, where S6∈R, can be taken as the first 6 rows. 6×18 =[I 6×6 0 6×12 Eliminating τ, the dynamic equation of the above formula (11) is transformed into:
[0156]
[0157]
[0158] The angular acceleration of each joint of the robot can be expressed by the dynamic equation of formula (13). The correspondence between the force F on the sole of the foot and the force F.
[0159] S422. Based on the relationship between the angular acceleration of the standing surface and the supporting force, determine the dynamic equation of the standing surface.
[0160] See Figure 6 In the example scenario, according to Newton's third law, the supporting force exerted by the standing surface 200 on the robot is equal in magnitude and opposite in direction to the force exerted by the robot's feet on the standing surface. Therefore, the dynamic equation of the standing surface can be represented by -F, as follows:
[0161]
[0162]
[0163] In formula (14), L is a 2*12 matrix representing the mapping of force to the equivalent torque of the standing surface. θ represents the attitude of the standing surface, which is two-dimensional, namely the pitch angle θ mentioned above. p and roll angle θ r I b The moment of inertia representing the standing surface is a 2x2 matrix. [] × Let [a] denote the cross product matrix. × b = a × b.
[0164] The angular acceleration of the standing surface can be expressed by the dynamic equation of formula (14). The correspondence between the support force -F and the support force.
[0165] S423. The robot's dynamic equation and the dynamic equation of the standing surface are fused together to obtain the target dynamic equation of the robot on the standing surface.
[0166] In this embodiment of the disclosure, after obtaining the dynamic equations of the robot and the dynamic equations of the standing surface, the two can be fused to obtain the dynamic equations of the robot on the standing surface, which is also the target dynamic equation.
[0167] In some implementations, the robot's dynamic equations and the dynamic equations of its standing surface can be unified into a single linear method, with optimization variables including the robot's generalized degrees of freedom. Standing face angle acceleration The robot's foot force F is expressed as:
[0168]
[0169]
[0170] The target dynamic equation of the robot on the standing surface is shown in formula (16). According to formula (16), the variable in the target dynamic equation is the robot's joint angular acceleration. Standing face angle acceleration And the robot's foot force F.
[0171] After constructing the target dynamic equations of the robot on the standing surface through the above process, a control optimization task for robot control can be constructed. The following section combines... Figure 8 Please provide an explanation.
[0172] like Figure 9 As shown, in some embodiments, the robot control method of this disclosure, the process of establishing a robot control optimization task includes:
[0173] S431. Establish a first control task based on the angular acceleration of the robot and the standing surface, establish a second control task based on the position of the robot's feet, and establish a third control task based on the force of the robot's feet.
[0174] It is important to understand that, for robot motion control, each control task can be represented in the form of the following control equations:
[0175] Ax=b (17)
[0176] In formula (17), x is the variable to be solved, A represents the task matrix, and b represents the task objective. A and b are determined based on the specific task content.
[0177] In this embodiment of the disclosure, the control tasks for the robot include three tasks, namely the first control task, the second control task, and the third control task as described in this disclosure.
[0178] The primary control task is to control the robot's 6-dimensional torso and 2-dimensional standing state. This can be represented as the angular acceleration of the 6-dimensional torso and 2-dimensional standing state being equal to the desired acceleration, expressed as:
[0179]
[0180] In the first control task, A0 and b0 can be represented as:
[0181] A0∈R 8×32 =[I8 0 8×24 (19)
[0182]
[0183] in, It is achieved based on PD control of the torso workspace, specifically as follows:
[0184]
[0185] In formula (21), the subscripts des and fb represent the desired state and the feedback state, respectively, and K p0 and K d0 It is a diagonal matrix representing the coefficient matrix of the PD controller.
[0186] The second control task is the control of the foot workspace. In this embodiment, preventing the robot's foot from sliding relative to the standing surface can be considered a task, which is ensured by PD control, as follows:
[0187]
[0188] In formula (12), This represents the 12-dimensional acceleration of the plantar workspace. J can be obtained from the current robot state and is a known quantity. Therefore, in the second control task, A1 and b1 can be expressed as:
[0189] A1∈R 12×32 =[J 0 12×14 ] (twenty three)
[0190]
[0191] in, It is calculated by PD control based on feedback and planning, as shown below:
[0192]
[0193] In formula (25), the subscripts des and fb represent the desired state and the feedback state, respectively, and K p1 and K d1 It is a diagonal matrix representing the coefficient matrix of the PD controller.
[0194] The third control task is plantar force control, represented as:
[0195] F = F * (26)
[0196] In formula (26), F * This represents the desired plantar force, which can originate from higher-level instructions, or be made closer to zero or the result of the previous calculation. Therefore, in the third control task, A2 and b2 can be represented as:
[0197] A2∈D 12×32 =[0 12×20 I 12×12 (27)
[0198] b2∈R 12×1 =F * (28)
[0199] Thus, through the above process, the first control task, the second control task, and the third control task of the form Ax = b are obtained.
[0200] S432. Based on the first control task, the second control task, and the third control task, establish the target control task for the robot on the standing surface.
[0201] In this embodiment of the disclosure, the first control task, the second control task, and the third control task are combined into a target control task of the form Ax = b, thus completing the construction of the control task, which is represented as:
[0202]
[0203]
[0204] S433. Based on the target dynamic equation, establish the constraint task for the target control task to obtain the control optimization task.
[0205] In this embodiment of the disclosure, the target control task is constructed through the aforementioned method and process. Next, it is necessary to add constraint tasks to the target control task. In some embodiments, the constraint tasks include equality constraints and inequality constraints. Among them, the equality constraint is to require the robot's motion on the standing surface to satisfy the target dynamic equation of the aforementioned formula (16).
[0206] In some implementations, the constraint task for the target control task also includes a preset weight for each control task. This preset weight indicates that among the three control tasks included in the target control task, all three control tasks need to be executed simultaneously, but their dimensions and importance differ. Therefore, the parameters A and b of the target control task can be adjusted using the preset weight, as shown below:
[0207] A w =W m A (31)
[0208] b w =W m b (32)
[0209] In formulas (31) and (32), for the 32-dimensional task of this disclosure example, the weight vector W v ∈E 32×1 Each element in the matrix represents the weight coefficient of each row. Diagonalizing the weight vector transforms it into a diagonal matrix W. m ∈R 32×32By multiplying by matrices A and b respectively, the parameters A and b can be adjusted to obtain the weighted task matrix A. w and b w .
[0210] For equality constraints, mathematically, equality constraints can be represented by C. e X = lb e =ub e Let C represent this, where C e It is the equality constraint matrix, lb e and ub e This represents the equal upper and lower bound vectors. In this embodiment, the equality constraints must satisfy the target dynamic equation shown in formula (16), therefore, the corresponding C e , lb e and ub e This can be expressed as:
[0211]
[0212]
[0213] Regarding inequality constraints, in this embodiment, since actions such as stepping down or crossing legs that could cause joint limitation or internal interference in the robot are not involved, only two types of inequality constraints need to be considered: foot force and joint torque. Mathematically, inequality constraints can be described as lb. i ≤C i X≤ub i Let C represent this, where C i It is the inequality constraint matrix, lb i and ub i Represents the upper and lower bound vectors.
[0214] In some embodiments of this disclosure, constraints on the target control task can be established based on the target dynamic equation, preset constraints, and preset weights for each control task. The target dynamic equation is the aforementioned equality constraint, the preset constraints may include the aforementioned inequality constraints, and the preset weights for each control task are the weight matrices of the aforementioned formulas (31) and (32).
[0215] In this embodiment of the disclosure, a final control optimization task is obtained by adding a preset task to the target control task. For example, in some embodiments, the open-source quadratic form optimization solver QPOASES can be used to construct the control optimization task. Based on the solution requirements of QPOASES and the aforementioned target control task and constraint tasks, the final constructed control optimization task can be expressed as follows:
[0216]
[0217] stlb≤CX≤ub
[0218] In formula (35),
[0219] H∈R 32×32 =A T A
[0220] g∈R 32×1 =-A T b
[0221]
[0222]
[0223]
[0224] In this embodiment, the first and second attitude information obtained above can be substituted into formula (35), so that only the variable to be solved, X, is an unknown in formula (35), and the optimal solution X can be obtained by using QPOASES. opt ∈R 30×1 , is represented as:
[0225]
[0226] In formula (36), This represents the desired angular acceleration of each joint of the robot. F represents the desired angular acceleration of the standing plane. opt This represents the target foot force. Then, the desired angular acceleration can be expressed. and target foot force F opt Substitute back into the robot dynamics equations of formula (11), and use the selection matrix S 12 Select the joint torque outputs in the last 12 rows to obtain the target torque for each joint. Represented as:
[0227]
[0228] It is understandable that the solution obtained from formula (37) This means that the target torque that each joint of the robot needs to output can be understood as the robot and the standing surface maintaining a balanced state when the robot outputs the target torque at each shutdown.
[0229] Therefore, in this embodiment of the disclosure, the target torque of each joint is obtained. Then, the target torque can be... The 12 joint motors sent to the robot control each joint motor to output the corresponding target torque, ensuring that the robot and the standing surface 200 are in a balanced state.
[0230] Alternatively, it can be understood that the motion control of the robot is a dynamic control process, that is, the above method process is repeatedly executed in each control cycle, so that the robot can maintain its balance on the standing surface 200 until it receives an exit command, at which point the above control process stops.
[0231] As can be seen from the above, in this embodiment of the invention, the balance problem of the robot on a dynamic standing surface is solved by dynamic analysis and optimized control of the robot's posture and standing surface posture, thereby realizing the balance control of the robot on a dynamic standing surface, expanding the application scenarios of the robot, such as robot skateboarding, robot humanoid motion, etc., and improving the control stability of the robot.
[0232] Based on the robot example described above, this disclosure provides a robot control device that can be applied to the aforementioned robot. The following describes the device in conjunction with... Figure 10 The implementation method is described below.
[0233] like Figure 10 As shown, in some embodiments, the robot control device of this disclosure includes:
[0234] The attitude determination module 1 is configured to acquire the robot's first attitude information and determine the robot's second attitude information on the standing surface based on the first attitude information.
[0235] Dynamics equation module 2 is configured to determine the target dynamics equation of the robot on the standing surface based on the robot's dynamics equation and the dynamics equation of the standing surface;
[0236] The torque determination module 3 is configured to establish the robot's control optimization task based on the target dynamic equation, and to obtain the target torque of each joint of the robot based on the first posture information, the second posture information and the control optimization task.
[0237] Motion control module 4 is configured to control the movement of each joint of the robot according to the target torque.
[0238] As can be seen from the above, in this embodiment of the invention, the balance problem of the robot on a dynamic standing surface is solved by dynamic analysis and optimized control of the robot's posture and standing surface posture, thereby realizing the balance control of the robot on a dynamic standing surface, expanding the application scenarios of the robot, such as robot skateboarding, robot humanoid motion, etc., and improving the control stability of the robot.
[0239] In some implementations, the first attitude information includes the position information of the robot's torso center point and the joint angles of each joint, and the second attitude information includes the pitch angle and roll angle of the standing plane; the attitude determination module 1 is configured as follows:
[0240] Based on the position information of the center point of the torso and the joint angle of each joint, determine the position information of each foot of the robot in the world coordinate system;
[0241] Based on the position information of each foot of the robot in the world coordinate system, determine the plane equation of the standing surface;
[0242] Determine the pitch and roll angles of the standing plane based on the plane equation of the standing plane.
[0243] In some implementations, attitude determination module 1 is configured as follows:
[0244] Determine the first vector from the robot's torso center point to each foot tip;
[0245] Based on the first vector from each foot tip to the center point of the torso, determine the second vector from the origin of the world coordinate system to the center point of the torso;
[0246] Based on the second vector and each of the first vectors, determine the position information of each foot in the world coordinate system.
[0247] In some implementations, the dynamic equation module 2 is configured as follows:
[0248] Based on the relationship between the angular acceleration of each joint of the robot and the plantar force, the dynamic equations of the robot are determined.
[0249] Based on the relationship between the angular acceleration of the standing surface and the supporting force, the dynamic equation of the standing surface is determined, and the supporting force and the plantar force are equal in magnitude and opposite in direction.
[0250] By fusing the robot's dynamic equations and the dynamic equations of the standing surface, the target dynamic equations of the robot on the standing surface are obtained.
[0251] In some implementations, the torque determination module 3 is configured as follows:
[0252] The first control task is established based on the angular acceleration of the robot and the standing surface, the second control task is established based on the position of the robot's feet, and the third control task is established based on the force of the robot's feet.
[0253] Based on the first control task, the second control task, and the third control task, establish the target control task for the robot on the standing surface.
[0254] Based on the target dynamic equation, a constraint task for the target control task is established, resulting in a control optimization task.
[0255] In some implementations, the torque determination module 3 is configured as follows:
[0256] Based on the target dynamic equation, preset constraints, and preset weights for each control task, a constraint task for the target control task is established, resulting in a control optimization task.
[0257] In some implementations, the torque determination module 3 is configured as follows:
[0258] Based on the first posture information, the second posture information, and the control optimization task, the desired angular acceleration and target foot force of each joint of the robot are determined.
[0259] The target torque for each joint is determined based on the desired angular acceleration and the target plantar force.
[0260] As can be seen from the above, in this embodiment of the invention, the balance problem of the robot on a dynamic standing surface is solved by dynamic analysis and optimized control of the robot's posture and standing surface posture, thereby realizing the balance control of the robot on a dynamic standing surface, expanding the application scenarios of the robot, such as robot skateboarding, robot humanoid motion, etc., and improving the control stability of the robot.
[0261] In some embodiments, this disclosure provides a robot comprising:
[0262] processor; and
[0263] The memory stores computer instructions for causing the processor to execute the methods of any of the foregoing embodiments.
[0264] In this disclosure, the robot can be, for example, as described above. Figures 1 to 3 The quadruped robot shown can also be a bipedal robot, which will not be discussed further in this disclosure.
[0265] In some embodiments, this disclosure provides a storage medium storing computer instructions for causing a computer to perform the methods of any of the foregoing embodiments.
[0266] Obviously, the above embodiments are merely examples for clear illustration and are not intended to limit the embodiments. Those skilled in the art will recognize that other variations or modifications can be made based on the above description. It is neither necessary nor possible to exhaustively list all embodiments here. However, obvious variations or modifications derived therefrom are still within the scope of protection of this disclosure.
Claims
1. A robot control method, characterized in that, include: The robot's first posture information is obtained, and the robot's second posture information on the standing surface is determined based on the first posture information. The standing surface is a dynamic standing surface, and the second posture information includes the pitch angle and roll angle of the standing surface. Based on the robot's dynamic equations and the dynamic equations of the standing surface, determine the target dynamic equations of the robot on the standing surface; The control optimization task of the robot is established based on the target dynamic equation, and the target torque of each joint of the robot is obtained based on the first posture information, the second posture information and the control optimization task. The robot's joints are moved according to the target torque. Determining the target dynamic equation of the robot on the standing surface based on the robot's dynamic equation and the dynamic equation of the standing surface includes: Based on the correspondence between the angular acceleration of each joint of the robot and the plantar force, the dynamic equations of the robot are determined; Based on the correspondence between the angular acceleration of the standing surface and the supporting force, the dynamic equation of the standing surface is determined, wherein the supporting force and the plantar force are equal in magnitude and opposite in direction. The target dynamic equation of the robot on the standing surface is obtained by fusing the dynamic equations of the robot and the standing surface.
2. The method according to claim 1, characterized in that, The first posture information includes the position information of the robot's torso center point and the joint angle of each joint; the step of determining the second posture information of the robot's standing surface based on the first posture information includes: Based on the position information of the center point of the torso and the joint angle of each joint, the position information of each foot of the robot in the world coordinate system is determined; The plane equation of the standing surface is determined based on the position information of each foot of the robot in the world coordinate system; The pitch angle and roll angle of the standing surface are determined based on the plane equation of the standing surface.
3. The method according to claim 2, characterized in that, The step of determining the position information of each foot of the robot in the world coordinate system based on the position information of the center point of the torso and the joint angle of each joint includes: Determine a first vector from the center point of the robot's torso to each foot. Based on the first vector from each foot tip to the center point of the torso, determine the second vector from the origin of the world coordinate system to the center point of the torso; Based on the second vector and each of the first vectors, determine the position information of each foot in the world coordinate system.
4. The method according to claim 1, characterized in that, The task of establishing the robot's control optimization based on the target dynamic equation includes: A first control task is established based on the angular acceleration of the robot and the standing surface, a second control task is established based on the position of the robot's feet, and a third control task is established based on the force of the robot's feet. Based on the first control task, the second control task, and the third control task, establish the target control task of the robot on the standing surface; Based on the target dynamic equation, a constraint task for the target control task is established, and the control optimization task is obtained.
5. The method according to claim 4, characterized in that, The process of establishing constraints on the target control task based on the target dynamic equation to obtain the control optimization task includes: Based on the target dynamic equation, preset constraints, and preset weights for each control task, a constraint task for the target control task is established, resulting in the control optimization task.
6. The method according to claim 1, characterized in that, The step of obtaining the target torque of each joint of the robot based on the first posture information, the second posture information, and the control optimization task includes: Based on the first posture information, the second posture information, and the control optimization task, the desired angular acceleration and target foot force of each joint of the robot are determined; The target torque for each joint is determined based on the desired angular acceleration and the target plantar force.
7. A robot control device, characterized in that, include: The attitude determination module is configured to acquire the robot's first attitude information and determine the robot's second attitude information on the standing surface based on the first attitude information, wherein the standing surface is a dynamic standing surface and the second attitude information includes the pitch angle and roll angle of the standing surface. The dynamics equation module is configured to determine the target dynamics equation of the robot on the standing surface based on the dynamics equation of the robot and the dynamics equation of the standing surface; The torque determination module is configured to establish the robot's control optimization task based on the target dynamic equation, and to obtain the target torque of each joint of the robot based on the first posture information, the second posture information, and the control optimization task. A motion control module is configured to control the movement of each joint of the robot according to the target torque; The dynamic equation module is configured as follows: Based on the correspondence between the angular acceleration of each joint of the robot and the plantar force, the dynamic equations of the robot are determined; Based on the correspondence between the angular acceleration of the standing surface and the supporting force, the dynamic equation of the standing surface is determined, wherein the supporting force and the plantar force are equal in magnitude and opposite in direction. The target dynamic equation of the robot on the standing surface is obtained by fusing the dynamic equations of the robot and the standing surface.
8. A robot, characterized in that, include: processor; and A memory storing computer instructions for causing a processor to perform the method according to any one of claims 1 to 6.
9. A storage medium, characterized in that, The computer contains computer instructions for causing the computer to perform the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Quadruped robot attitude control method and device
CN111309039A
Bionic quadruped robot control system and method based on foot end force adjustment
CN115202372A