Biped robot body center of mass planning method, control method, device and robot
By acquiring the robot's initial centroid position and motion difference information, the target centroid position is directly determined using a heuristic feedforward strategy. This solves the response delay problem caused by traditional filtering methods and enables fast response and high dynamic control of robot centroid planning.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- GUANGZHOU XIAOPENG MOTORS TECH CO LTD
- Filing Date
- 2024-12-31
- Publication Date
- 2026-06-05
AI Technical Summary
Traditional centroid estimation methods, such as Kalman filtering, cause response delays during robot movement, making it difficult to achieve high dynamic control and affecting robot balance and movement speed.
By acquiring the robot's initial center of mass position and motion difference information, a heuristic feedforward strategy is used to directly determine the target center of mass position, avoiding the filtering process. The center of mass position is adjusted using weight coefficients by combining the torso posture angle, body height change and arm motion information.
It improves the response speed of robot center of mass planning and the speed of whole-body motion control, and enhances the robot's balance and range of motion when performing actions.
Smart Images

Figure CN119861627B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of robotics, specifically to a method, control method, device, and robot for planning the center of mass of a bipedal robot. Background Technology
[0002] A robot is a machine device that can perceive its environment, make autonomous decisions, and perform tasks. It can be applied in fields such as industrial manufacturing, logistics and warehousing, medical care, and home services. For example, in the service industry, robots can help customers carry their luggage and deliver food.
[0003] Multilegged or humanoid robots need to coordinate upper body movements and lower body balance to avoid falling when performing tasks. Robots can be controlled to perform specific actions and maintain balance based on whole-body dynamics and reference trajectories generated from center-of-mass estimation. However, traditional center-of-mass estimation uses filtering techniques, such as Kalman filtering, which introduces systematic response delays. This delays affect the robot's ability to plan the center of mass during movement, making it difficult to achieve highly dynamic control. Summary of the Invention
[0004] In view of this, the present invention provides a method, control method, device and robot for planning the center of mass of a bipedal robot body, so as to improve the response speed of the robot's center of mass during movement.
[0005] In a first aspect, the present invention provides a method for planning the center of mass of a bipedal robot. The method includes: acquiring the initial center of mass position and motion difference information of the robot, wherein the initial center of mass position is the center of mass position of the robot before performing the target action, and the motion difference information is the motion information of the robot when performing the target action as planned in advance; determining the target center of mass position of the robot based on the motion difference information and the initial center of mass position, wherein the target center of mass position of the robot is the center of mass position of the robot after performing the target action.
[0006] The bipedal robot body center of mass planning method provided in this embodiment obtains the robot's initial body center of mass position and motion difference information when determining the center of mass position corresponding to the target action. Then, based on the motion difference information and the initial body center of mass position, the target body center of mass position is determined. No filtering is required, which can improve the response of center of mass planning, thereby improving the speed and range of motion control of the robot's whole body motion and achieving the purpose of high dynamic control.
[0007] In one optional implementation, the motion difference information includes the torso attitude angle. Determining the target fuselage center of mass position based on the motion difference information and the initial fuselage center of mass position includes: determining the target fuselage center of mass position for the current control cycle based on the initial fuselage center of mass position, the torso attitude angle, and the first weighting coefficient.
[0008] In this embodiment, the displacement of the robot's center of mass caused by the tilting of the robot's body (torso) can be accurately determined, thereby accurately obtaining the position of the target body's center of mass.
[0009] In one optional implementation, determining the target fuselage center of gravity position for the current control cycle based on the initial fuselage center of gravity position, the torso attitude angle, and the first weighting coefficient includes: determining the target fuselage center of gravity position for the current control cycle using the following formula based on the initial fuselage center of gravity position, the torso attitude angle, and the first weighting coefficient:
[0010]
[0011] in, p represents the position of the target fuselage's center of mass. root_tgt Indicates the initial position of the fuselage center of mass, α1 represents the first weighting coefficient, and θ root_tgt Indicates the torso posture angle.
[0012] In one optional implementation, the motion difference information includes the change in fuselage height. Determining the target fuselage center of gravity position based on the motion difference information and the initial fuselage center of gravity position includes: determining the target fuselage center of gravity position for the current control cycle based on the initial fuselage center of gravity position, the change in fuselage height, and a second weighting coefficient.
[0013] In this embodiment, the displacement of the robot's center of mass caused by knee bending can be accurately determined, thereby accurately obtaining the position of the target body's center of mass.
[0014] In one optional implementation, determining the target fuselage center of gravity position based on the initial fuselage center of gravity position, the fuselage height change, and the second weighting coefficient includes: determining the target fuselage center of gravity position for the current control cycle using the following formula based on the initial fuselage center of gravity position, the fuselage height change, and the second weighting coefficient:
[0015]
[0016] in, p represents the position of the target fuselage's center of mass. root_x_tgt β1 represents the initial fuselage center of mass position, β1 represents the second weighting coefficient, and δh represents the change in fuselage height.
[0017] In one optional implementation, the motion difference information includes position information of at least one arm and velocity information of at least one arm. Determining the target fuselage center of gravity position based on the motion difference information and the initial fuselage center of gravity position includes: determining the target fuselage center of gravity position of the current control cycle based on the initial fuselage center of gravity position, the position information of at least one arm, the velocity information of at least one arm, a third weighting coefficient, and a fourth weighting coefficient.
[0018] In this embodiment, the displacement of the robot's center of mass caused by the arm's movement can be accurately determined, thereby accurately obtaining the position of the target body's center of mass.
[0019] In one optional implementation, determining the target fuselage center of gravity position for the current control cycle based on the initial fuselage center of gravity position, the position information of at least one arm, the velocity information of at least one arm, a third weighting coefficient, and a fourth weighting coefficient includes: determining the target fuselage center of gravity position for the current control cycle using the following formula based on the initial fuselage center of gravity position, the position information of at least one arm, the velocity information of at least one arm, the third weighting coefficient, and the fourth weighting coefficient:
[0020]
[0021] in, p represents the position of the target fuselage's center of mass. root_xy_tgt ∑p represents the initial fuselage center of mass position, α2 represents the third weighting coefficient, and ∑p arm_xy_tgt This represents the position information of at least one arm, β2 represents the fourth weighting coefficient, and ∑v arm_xy_tgt This indicates the speed information of at least one arm.
[0022] In one optional implementation, the motion difference information includes at least two of the following: torso attitude angle, fuselage height change, position information of at least one arm, and velocity information, and the number of target fuselage center of mass positions is at least two.
[0023] Secondly, the present invention provides a method for controlling the motion of a bipedal robot. The method includes: acquiring the initial center-of-gravity position and motion difference information of the robot, wherein the initial center-of-gravity position is the position of the robot's center of gravity before performing a target action, and the motion difference information is the motion information of the robot when performing the target action, which is pre-planned; determining the target center-of-gravity position based on the motion difference information and the initial center-of-gravity position, wherein the target center-of-gravity position is the position of the robot's center of gravity after performing the target action; and determining the target motion difference information based on the target center-of-gravity position, so that the robot is in a balanced state when performing the target action, wherein the target motion difference information is the motion information of the robot when performing the target action, which is planned based on the target center-of-gravity position.
[0024] Thirdly, the present invention provides a bipedal robot body center of mass planning device, the device comprising: an acquisition module, used to acquire the robot's initial body center of mass position and motion difference information, wherein the initial body center of mass position is the center of mass position of the robot before performing the target action, and the motion difference information is the pre-planned motion information of the robot when performing the target action; and a first determination module, used to determine the target body center of mass position based on the motion difference information and the initial body center of mass position, wherein the target body center of mass position is the center of mass position of the robot after performing the target action.
[0025] Fourthly, the present invention provides a bipedal robot body motion control device, the device comprising: an acquisition module, configured to acquire the robot's initial body center of mass position and motion difference information, wherein the initial body center of mass position is the center of mass position of the robot before performing the target action, and the motion difference information is the motion information of the robot when performing the target action pre-planned; a first determination module, configured to determine the target body center of mass position based on the motion difference information and the initial body center of mass position, wherein the target body center of mass position is the center of mass position of the robot after performing the target action; and a second determination module, configured to determine the target motion difference information based on the target body center of mass position, so that the robot is in a balanced state when performing the target action, wherein the target motion difference information is the motion information of the robot when performing the target action planned based on the target body center of mass position.
[0026] Fifthly, the present invention provides a robot comprising: a memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the computer instructions to perform the centroid planning method of the first aspect or any corresponding embodiment described above, or to perform the motion control method of the second aspect or any corresponding embodiment described above. Attached Figure Description
[0027] To more clearly illustrate the technical solutions in the specific embodiments or related technologies of the present invention, the drawings used in the description of the specific embodiments or related technologies will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0028] Figure 1 This is a flowchart illustrating a method for planning the center of mass of a bipedal robot according to an embodiment of the present invention.
[0029] Figure 2 This is a flowchart illustrating another method for planning the center of mass of a bipedal robot according to an embodiment of the present invention;
[0030] Figure 3This is a flowchart illustrating another method for planning the center of mass of a bipedal robot according to an embodiment of the present invention;
[0031] Figure 4 This is a flowchart illustrating another method for planning the center of mass of a bipedal robot according to an embodiment of the present invention;
[0032] Figure 5 This is a flowchart illustrating a method for controlling the motion of a bipedal robot according to an embodiment of the present invention.
[0033] Figure 6 This is a schematic diagram of the bipedal robot body motion control system according to an embodiment of the present invention;
[0034] Figure 7 This is a structural block diagram of a bipedal robot body center of mass planning device according to an embodiment of the present invention;
[0035] Figure 8 This is a structural block diagram of a bipedal robot body motion control device according to an embodiment of the present invention;
[0036] Figure 9 This is a schematic diagram of the hardware structure of a robot according to an embodiment of the present invention. Detailed Implementation
[0037] 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 embodiments of the present invention, not all embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative effort are within the scope of protection of the present invention.
[0038] In the field of robotics, the position of the center of mass is crucial for robots. Center of mass planning helps robots generate stable motion trajectories and prevents them from losing balance. Center of mass planning refers to pre-calculating the desired trajectory of the center of mass based on the robot's task and motion state.
[0039] Specifically, the planning of the center of mass needs to satisfy equilibrium constraints, meaning that the center of mass (COM) or center of pressure (COP) must be within a range where the ground reaction force at the foot can be balanced. Here, COM refers to the center of the object's mass distribution, and COP refers to the point of application of the resultant pressure force on the contact surface when the object is in contact with the supporting surface.
[0040] If the center of mass (COP) exceeds the support range provided by the robot's feet, the robot will lose balance and tip over. For example, when a bipedal robot stands, its center of mass needs to remain within the support polygon formed by its two feet to ensure that the ground reaction force can balance the robot's weight and maintain stability. The torque generated by gravity and ground reaction force can be calculated based on the position of the COP relative to the robot's center of mass. If these torques are not balanced, the robot will tip over. For example, for a monopedal robot, the COP must be on the same vertical line as the center of mass (ignoring horizontal force balance) to ensure that the robot's forces and torques in the vertical direction are balanced, thus maintaining its standing posture.
[0041] However, due to the complex structure and variable motion state of robots, and the influence of various factors such as sensor accuracy and external interference, it is difficult to accurately and efficiently estimate the COM, which affects the speed at which the robot plans its center of mass during motion (i.e., affects the response speed of the robot's center of mass during motion).
[0042] This invention provides a method for planning the center of mass of a bipedal robot. Based on a heuristic feedforward strategy, the motion information for the robot to perform the target action is used as feedforward and input into the center of mass planning module to adjust the center of mass position. This can increase the response speed of the robot in planning the center of mass position and improve the speed and range of motion of the robot's whole body.
[0043] The bipedal robot body center of mass planning method provided by this invention can be applied to robots that require balance control during movement, such as bipedal robots, multi-legged robots (such as quadruped robots), or robots with multiple arms.
[0044] According to an embodiment of the present invention, a method for planning the center of mass of a bipedal robot body is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a robot such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.
[0045] This embodiment provides a method for planning the center of mass of a bipedal robot, which can be used in the center of mass planning module of a robot. Figure 1 This is a flowchart illustrating a method for planning the center of mass of a bipedal robot according to an embodiment of the present invention, as shown below. Figure 1 As shown, the method includes the following steps:
[0046] Step S101: Obtain the initial center of mass position and motion difference information of the robot.
[0047] The initial center of mass position of the robot body is the center of mass position of the robot before it performs the target action. The motion difference information is the motion information of the robot when it performs the target action in a pre-planned manner. The body can refer to the entire structure of the robot, including the robot's torso and limbs.
[0048] Specifically, the target action can be the action performed by the robot during the task execution process. For example, the target action can be squatting, squatting to pick up an object, climbing stairs, or crossing an obstacle. Motion information can be information about the motion state of the robot's trunk and limbs when performing the target action. For example, the posture angle of the trunk when the robot squats, the knee flexion angle of the lower limbs, the change in body height caused by the knee flexion of the lower limbs, the position of the upper limbs, and the movement speed of the upper limbs.
[0049] The initial center of mass position of the robot body can be the center of mass position of the robot body in the previous action before the robot performs the target action. For example, if the robot needs to perform the target action (such as squatting) after walking normally, the initial center of mass position of the robot body can be the center of mass position corresponding to the standing state before squatting. The initial center of mass position of the robot body can be determined in advance by the center of mass planning module. The calculation method of the initial center of mass position of the robot body can be the same as the conventional center of mass position calculation method in this field, and will not be described in detail here.
[0050] Motion difference information can be the motion information of a robot when it performs a target action at a historical moment. Motion difference information can be determined by collecting motion information of robots of the same type when performing the target action, or it can be predicted by a neural network model.
[0051] Motion difference information can include the difference between the current attitude angle of the torso and the original attitude angle, the difference between the current height value and the original height value of the fuselage, and the difference between the current position of the arm's end effector and the original position of the arm's end effector.
[0052] Step S102: Determine the target fuselage center of gravity position based on the motion difference information and the initial fuselage center of gravity position.
[0053] The target body center of mass position is the position of the robot's center of mass after performing the target action.
[0054] That is, the target body center of mass position is the center of mass position planned by the center of mass planning module based on the motion difference information and the initial body center of mass position for the robot to perform the target action, so that the robot's controller can adjust the motion difference information based on the target body center of mass position, so that the robot can complete the target action in a balanced state.
[0055] Specifically, after determining the motion difference information, the center of mass offset can be determined based on the motion difference information. Then, the initial center of mass position of the robot body is adjusted based on the center of mass offset, and the adjusted initial center of mass position of the robot body is determined as the target center of mass position of the robot body. The correspondence between the motion difference information and the center of mass offset can be determined experimentally and pre-configured in the robot's storage module.
[0056] The bipedal robot body center of mass planning method provided in this embodiment obtains the robot's initial body center of mass position and motion difference information when determining the center of mass position corresponding to the target action. Then, based on the motion difference information and the initial body center of mass position, the target body center of mass position is determined. No filtering is required, which can improve the response of center of mass planning, thereby improving the speed and range of motion control of the robot's whole body motion and achieving the purpose of high dynamic control.
[0057] In this embodiment, the motion difference information includes at least one of the following: torso attitude angle, fuselage height change, position information of at least one arm, and velocity information of at least one arm. Different motion difference information leads to different methods for determining the target fuselage center of gravity position.
[0058] Among them, the torso posture angle can refer to the difference between the current torso posture angle and the original posture angle, and the original posture angle can be the torso posture angle when the robot is upright; the change in body height can refer to the difference between the current body height value and the original height value, and the original height value can be the body height value when the robot is upright; the position information of at least one arm can refer to the difference between the current position of the arm tip and the original position of the arm tip, and the original position of the arm tip can be the position of the arm tip when the arm is hanging down naturally; the speed information of at least one arm can refer to the difference between the current speed of the arm tip and the original speed of the arm tip, and the original speed of the arm tip can be the speed of the arm tip when the arm is hanging down naturally.
[0059] The following, in conjunction with the accompanying drawings, details the methods for determining the target fuselage center of mass position in the current control cycle when the motion difference information is the torso attitude angle, the change in fuselage height, and the position and velocity information of at least one arm.
[0060] Figure 2 This is a flowchart illustrating another method for planning the center of mass of a bipedal robot according to an embodiment of the present invention. Figure 2 The process of determining the target fuselage center of mass position using motion difference information as the torso attitude angle is explained, such as... Figure 2 As shown, the method includes the following steps:
[0061] Step S201: Obtain the initial position of the robot's center of mass and motion difference information.
[0062] Please see details Figure 1 Step S101 of the illustrated embodiment will not be described again here.
[0063] Step S202: Determine the target fuselage center of mass position for the current control cycle based on the initial fuselage center of mass position, torso attitude angle, and first weighting coefficient.
[0064] The torso posture angle can be the posture angle of the torso in the body coordinate system. The first weighting coefficient is a preset value, which can be determined by the designer based on the ratio of the robot's overall body weight to the upper limb weight and the upper limb mass distribution, and pre-configured in the robot's storage module. The bipedal robot has multiple control cycles T. The process of determining the target body center of mass position described above is determined within the same control cycle. For example, the control cycle T can be 0.001s or 0.002s. In other embodiments, the control cycle can be adjusted according to control requirements.
[0065] Specifically, the target fuselage center of mass position in the current control cycle can be determined based on the correspondence between the target fuselage center of mass position and the initial fuselage center of mass position, the torso attitude angle, and the first weighting coefficient.
[0066] For example, based on the initial fuselage center of mass position, torso attitude angle, and first weighting coefficient, the target fuselage center of mass position for the current control cycle can be determined using formula (1):
[0067]
[0068] In formula (1), p represents the position of the target fuselage's center of mass. root_tgt Indicates the initial position of the fuselage center of mass, α1 represents the first weighting coefficient, and θ root_tgt Indicates the torso posture angle.
[0069] Specifically, after obtaining the initial fuselage center of mass position and torso attitude angle, the initial fuselage center of mass position and torso attitude angle can be used as feedforward input formula (1) to determine the target fuselage center of mass position in the current control cycle.
[0070] In this embodiment, the displacement of the robot's center of mass caused by the tilt of the robot body (torso) can be accurately determined by formula (1), thereby accurately obtaining the position of the target body's center of mass.
[0071] Figure 3 This is a flowchart illustrating another method for planning the center of mass of a bipedal robot according to an embodiment of the present invention. Figure 3 The process of determining the target fuselage center of mass position for the current control cycle using motion difference information as the fuselage height change is explained, such as... Figure 3 As shown, the method includes the following steps:
[0072] Step S301: Obtain the initial position of the robot's center of mass and motion difference information.
[0073] Please see details Figure 1 Step S101 of the illustrated embodiment will not be described again here.
[0074] Step S302: Determine the target fuselage center of mass position for the current control cycle based on the initial fuselage center of mass position, the fuselage height change, and the second weighting coefficient.
[0075] The second weighting coefficient is a preset value, which can be determined by the designer based on the ratio of the robot's overall body weight to the leg weight and the leg mass distribution, and is configured in advance in the robot's storage module. The bipedal robot includes multiple control cycles during movement. For example, the duration of a control cycle can be 0.002s, etc.
[0076] Changes in robot height can be caused by the robot squatting. When the robot has a forward-bending knee design, the impact on COM is limited when the robot is standing with straight knees. However, during the squatting process, the knee bending angle is large, causing the mass distribution of the legs to be relatively forward compared to the body, which requires corresponding COM compensation.
[0077] Specifically, the target fuselage center of mass position in the current control cycle can be determined based on the correspondence between the target fuselage center of mass position and the initial fuselage center of mass position, the change in fuselage height, and the second weighting coefficient.
[0078] For example, based on the initial fuselage center of mass position, the fuselage height change, and the second weighting coefficient, the target fuselage center of mass position for the current control cycle can be determined using formula (2):
[0079]
[0080] In formula (2), p represents the position of the target fuselage's center of mass. root_x_tgt β1 represents the initial fuselage center of mass position, β1 represents the second weighting coefficient, and δh represents the change in fuselage height. Specifically, p is the position of the target fuselage centroid in the x-axis direction of the fuselage coordinate system. root_x_tgt Specifically, the initial fuselage centroid position is defined in the x-axis direction of the fuselage coordinate system, where h represents the height difference relative to the default height, and δ represents a coefficient determined based on the knee angle.
[0081] In this embodiment, the displacement of the robot's center of mass caused by knee bending can be accurately determined by formula (2), thereby accurately obtaining the position of the target body's center of mass.
[0082] Figure 4This is a flowchart illustrating another method for planning the center of mass of a bipedal robot according to an embodiment of the present invention. Figure 4 The process of determining the target fuselage center of mass position in the current control cycle is explained using motion difference information, which includes the position information and velocity information of at least one arm. Figure 4 As shown, the method includes the following steps:
[0083] Step S401: Obtain the initial position of the robot's center of mass and motion difference information.
[0084] Please see details Figure 1 Step S101 of the illustrated embodiment will not be described again here.
[0085] Step S402: Determine the target fuselage center of mass position for the current control cycle based on the initial fuselage center of mass position, the position information of at least one arm, the velocity information of at least one arm, the third weighting coefficient, and the fourth weighting coefficient.
[0086] The third and fourth weighting coefficients are preset values, which can be determined by the designer based on the ratio of the robot's overall body weight to the weight of its upper limbs, the mass distribution of the upper limbs, and the movement speed of the upper limbs. These values are then pre-configured in the robot's storage module. The bipedal robot includes multiple control cycles during its movement. For example, the duration of a control cycle can be 0.002s.
[0087] When robots perform functional tasks, they may need to use their arms frequently. The arm's movements affect the mass distribution and center of gravity position of the upper limbs, requiring corresponding COM compensation. Furthermore, considering the large range of motion and high speed of the arm, the planned speed of the arm needs to be processed when determining the center of gravity position to improve the adjustment speed of the center of gravity.
[0088] Specifically, the target fuselage center of mass position in the current control cycle can be determined based on the correspondence between the target fuselage center of mass position and the initial fuselage center of mass position, the position information of at least one arm, the velocity information of at least one arm, the third weighting coefficient, and the fourth weighting coefficient.
[0089] For example, based on the initial fuselage center of mass position, the position information of at least one arm, the velocity information of at least one arm, the third weighting coefficient, and the fourth weighting coefficient, the target fuselage center of mass position for the current control cycle can be determined by formula (3):
[0090]
[0091] In formula (3), p represents the position of the target fuselage's center of mass. root_xy_tgt ∑p represents the initial fuselage center of mass position, α2 represents the third weighting coefficient, and ∑parm_xy_tgt This represents the position information of at least one arm, β2 represents the fourth weighting coefficient, and ∑v arm_xy_tgt This indicates the speed information of at least one arm.
[0092] Specifically, p is the position of the target fuselage centroid in the x-axis and y-axis directions of the fuselage coordinate system. root_xy_tgt Specifically, at the initial center of mass positions of the robot body in the x-axis and y-axis directions of the body coordinate system, the robot can have multiple arms, and when the multiple arms swing, ∑p arm_xy_tgt Specifically, it is the sum of the position vectors of multiple arms in the x-axis and y-axis directions of the fuselage coordinate system, ∑v arm_xy_tgt Specifically, it is the sum of the velocity vectors of multiple arms in the x-axis and y-axis directions of the fuselage coordinate system.
[0093] In this embodiment, the displacement of the robot's center of mass caused by the arm movement can be accurately determined by formula (3), thereby accurately obtaining the position of the target body's center of mass.
[0094] In some implementations, the motion difference information may include at least two of the following: torso posture angle, change in body height, position information of at least one arm, and velocity information. The number of target body center of mass positions is at least two, and multiple target body center of mass positions can form the center of mass trajectory of the robot performing the target action.
[0095] Specifically, when the robot's execution of a target action involves multiple positional changes such as the torso, upper limbs, and lower limbs, the target action can be broken down, and the trajectory of the target body's center of mass can be determined by combining the above-mentioned methods.
[0096] For example, taking a robot crouching down to pick up something as an example, the process of determining the target body center of mass position in each control cycle is explained.
[0097] First, the motion difference information for the robot crouching to pick up an object can be determined from historical data. This motion difference information can include the torso bending at a specific angle, the body crouching to a specific height, and the arm picking up the object at a specific angle and speed. When the robot's torso bends at a specific angle, the pitch angle changes. The target body center of gravity position can be obtained by adjusting the body center of gravity using formula (1), and then sent to the controller. The controller adjusts the motion difference information based on the target body center of gravity position to maintain the robot's balance when bending over. When the robot crouches, the body height changes, which can be... The target body center of mass position is obtained by adjusting the center of mass position using formula (2), and then sent to the controller. The controller adjusts the motion difference information based on the target body center of mass position to keep the robot balanced when squatting. When the robot's arm picks up something at a specific angle and speed, the arm position and speed change. The target body center of mass position can be obtained by adjusting the center of mass position using formula (3), and then sent to the controller. The controller adjusts the motion difference information based on the target body center of mass position to keep the robot balanced when reaching out to pick up something.
[0098] This embodiment also provides a method for controlling the motion of a bipedal robot body, which can be used in robots including the aforementioned center of mass planning module. Figure 5 This is a flowchart illustrating a bipedal robot body motion control method according to an embodiment of the present invention, as shown below. Figure 5 As shown, the method includes the following steps:
[0099] Step S501: Obtain the initial position of the robot's center of mass and motion difference information.
[0100] Please see details Figure 1 Step S101 of the illustrated embodiment will not be described again here.
[0101] Step S502: Determine the target fuselage center of gravity position based on the motion difference information and the initial fuselage center of gravity position.
[0102] Please see details Figure 1 Step S102 of the illustrated embodiment will not be described again here.
[0103] Step S503: Determine the target motion difference information based on the target body center of mass position, so that the robot is in a balanced state when performing the target action.
[0104] Among them, the target motion difference information is the motion information of the robot when it performs the target action, which is planned by the target body center of mass position.
[0105] Specifically, after determining the target fuselage center of mass position, the motion information of each joint of the robot corresponding to the target fuselage center of mass position can be determined based on the robot's dynamic model. For example, the method of determining the target motion difference information based on the target fuselage center of mass position can be the same as the method in this field of solving the expected information based on the center of mass position.
[0106] The motion control method provided in this embodiment, when performing whole-body balance control, obtains the robot's initial body center of mass position and motion difference information as input feedforward to determine the target body center of mass position, which can improve the robot's center of mass response speed during movement, thereby improving the speed at which the robot determines the target motion difference information based on the target body center of mass position, and achieving the purpose of high dynamic control.
[0107] For example, the centroid planning module in a robot includes a default centroid planner and a feedforward centroid planner, such as Figure 6 As shown, when performing full-body balance control on the robot, the initial body center of mass position can be obtained from the default center of mass planner. The center of mass offset based on motion difference information can be determined from the feedforward center of mass planner. The target body center of mass position can be obtained based on the initial body center of mass position and the center of mass offset. Then, the target body center of mass position is input into the controller. The controller determines the control torque for controlling the movement of each joint of the robot based on the target body center of mass position. Then, the robot moves each joint based on the control torque to complete the target action while maintaining balance.
[0108] This embodiment also provides a bipedal robot body center of mass planning device and a bipedal robot body motion control device. These devices are used to implement the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can refer to a combination of software and / or hardware that performs a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0109] This embodiment provides a device for planning the center of mass of a bipedal robot, such as... Figure 7 As shown, it includes:
[0110] The acquisition module 701 is used to acquire the robot's initial body center of mass position and motion difference information. The initial body center of mass position is the center of mass position of the robot before it performs the target action, and the motion difference information is the motion information of the robot when it performs the target action in a pre-planned manner.
[0111] The first determining module 702 is used to determine the target body center of mass position based on the motion difference information and the initial body center of mass position, wherein the target body center of mass position is the center of mass position of the robot after performing the target action.
[0112] In some alternative implementations, the first determining module 702 includes:
[0113] The first determining unit is used to determine the target fuselage center of mass position in the current control cycle based on the initial fuselage center of mass position, the torso attitude angle, and the first weighting coefficient.
[0114] In some alternative implementations, the first determining unit includes:
[0115] The first determining subunit is used to determine the target fuselage center of mass position for the current control cycle based on the initial fuselage center of mass position, the torso attitude angle, and the first weighting coefficient, using the following formula:
[0116]
[0117] in, p represents the position of the target fuselage's center of mass. root_tgt Indicates the initial position of the fuselage center of mass, α1 represents the first weighting coefficient, and θ root_tgt Indicates the torso posture angle.
[0118] In some alternative implementations, the first determining module 702 includes:
[0119] The second determining unit is used to determine the target fuselage center of mass position for the current control cycle based on the initial fuselage center of mass position, the fuselage height change, and the second weighting coefficient.
[0120] In some alternative implementations, the second determining unit includes:
[0121] The second sub-determination unit is used to determine the target fuselage center of gravity position for the current control cycle based on the initial fuselage center of gravity position, the fuselage altitude change, and the second weighting coefficient, using the following formula:
[0122]
[0123] in, p represents the position of the target fuselage's center of mass. root_x_tgt β1 represents the initial fuselage center of mass position, β1 represents the second weighting coefficient, and δh represents the change in fuselage height.
[0124] In some alternative implementations, the first determining module 702 includes:
[0125] The third determining unit is used to determine the target fuselage center of mass position in the current control cycle based on the initial fuselage center of mass position, the position information of at least one arm, the velocity information of at least one arm, the third weighting coefficient, and the fourth weighting coefficient.
[0126] In some optional implementations, the third determining unit includes:
[0127] The third determining subunit is used to determine the target fuselage center of mass position for the current control cycle based on the initial fuselage center of mass position, the position information of at least one arm, the velocity information of at least one arm, the third weighting coefficient, and the fourth weighting coefficient, using the following formula:
[0128]
[0129] in, p represents the position of the target fuselage's center of mass. root_xy_tgt ∑p represents the initial fuselage center of mass position, α2 represents the third weighting coefficient, and ∑p arm_xy_tgt This represents the position information of at least one arm, β2 represents the fourth weighting coefficient, and ∑v arm_xy_tgt This indicates the speed information of at least one arm.
[0130] In some alternative implementations, the motion difference information includes at least two of the following: torso attitude angle, fuselage height change, position information of at least one arm, and velocity information, and the number of target fuselage center of mass positions is at least two.
[0131] This embodiment provides a bipedal robot body motion control device, such as... Figure 8 As shown, it includes:
[0132] The acquisition module 701 is used to acquire the robot's initial body center of mass position and motion difference information. The initial body center of mass position is the center of mass position of the robot before it performs the target action, and the motion difference information is the motion information of the robot when it performs the target action in a pre-planned manner.
[0133] The first determining module 702 is used to determine the target body center of mass position based on the motion difference information and the initial body center of mass position, wherein the target body center of mass position is the center of mass position of the robot after performing the target action;
[0134] The second determining module 801 is used to determine the target motion difference information based on the target body center of mass position, so that the robot is in a balanced state when performing the target action. The target motion difference information is the motion information of the robot when performing the target action planned by the target body center of mass position.
[0135] Further functional descriptions of the above modules and units are the same as those in the corresponding embodiments described above, and will not be repeated here.
[0136] In this embodiment, the centroid planning device and motion control device are presented in the form of functional units. Here, a unit refers to an application-specific integrated circuit (ASIC), a processor and memory that execute one or more software or fixed programs, and / or other devices that can provide the above functions.
[0137] This invention also provides a robot having the centroid planning device or motion control device described above.
[0138] Please see Figure 9 , Figure 9 This is a schematic diagram of the structure of a robot provided in an optional embodiment of the present invention, such as... Figure 9 As shown, the robot includes one or more processors 910, a memory 920, and interfaces for connecting the various components, including high-speed interfaces and low-speed interfaces. The various components communicate with each other via different buses and can be mounted on a common motherboard or otherwise installed as needed. The processors can process instructions executed within the robot, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as a display device coupled to the interface). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories and multiple memory modules, if desired. Similarly, multiple computer devices can be connected, each providing some of the necessary operations (e.g., as a server array, a set of blade servers, or a multiprocessor system). Figure 9 Take the 910 processor as an example.
[0139] The processor 910 may be a central processing unit, a network processor, or a combination thereof. The processor 910 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The programmable logic device may be a complex programmable logic device (CAMP), a field-programmable gate array (FPGA), a general-purpose array logic (GDA), or any combination thereof.
[0140] The memory 920 stores instructions executable by at least one processor 910 to cause the at least one processor 910 to perform the method shown in the above embodiments.
[0141] The memory 920 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the robot's use. Furthermore, the memory 920 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 920 may optionally include memory remotely located relative to the processor 910, and these remote memories can be connected to the robot via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0142] The memory 920 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as flash memory, hard disk or solid-state drive; the memory 920 may also include a combination of the above types of memory.
[0143] The robot also includes a communication interface 930 for communicating with other devices or communication networks.
[0144] This invention also provides a computer-readable storage medium. The methods described above according to embodiments of the invention can be implemented in hardware or firmware, or implemented as computer code that can be recorded on a storage medium, or implemented as computer code downloaded via a network and originally stored on a remote storage medium or a non-transitory machine-readable storage medium and then stored on a local storage medium. Thus, the methods described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium can be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium can also include combinations of the above types of memory. It is understood that computers, processors, microprocessor controllers, or programmable hardware include storage components capable of storing or receiving software or computer code, which, when accessed and executed by a robot, processor, or hardware, implements the methods shown in the above embodiments.
[0145] A portion of this invention can be applied as a computer program product, such as computer program instructions, which, when executed by a robot, can invoke or provide the methods and / or technical solutions according to the invention through the robot's operation. Those skilled in the art will understand that the computer program instructions exist in computer-readable media in forms including, but not limited to, source files, executable files, and installation package files. Correspondingly, the ways in which the computer program instructions are executed by the robot include, but are not limited to: the robot directly executing the instructions; the robot compiling the instructions and then executing the corresponding compiled program; the robot reading and executing the instructions; or the robot reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to the robot.
[0146] It should be understood that various parts of the present invention can be implemented in hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented in software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, it can be implemented using any one or a combination of the following techniques known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having suitable combinational logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.
[0147] In the description of this specification, the references to terms such as "this embodiment," "an embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics described in connection with that embodiment or example, which are included in at least one embodiment or example of the present invention. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification, as well as the features of different embodiments or examples.
[0148] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this invention, "a plurality of" means at least two, such as two, three, etc., unless otherwise explicitly specified.
[0149] Although embodiments of the present invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the present invention, and such modifications and variations all fall within the scope defined by the present invention.
Claims
1. A method for planning the center of mass of a bipedal robot, characterized in that, The method includes: The robot's initial center of mass position and motion difference information are obtained. The initial center of mass position is the position of the robot's center of mass before performing the target action. The motion difference information is the pre-planned motion information of the robot when performing the target action. The motion difference information includes at least one of the following: torso posture angle, body height change, position information of at least one arm, and velocity information of at least one arm. The torso posture angle refers to the difference between the current torso posture angle and the original posture angle, where the original posture angle is the torso posture angle when the robot is upright. The body height change refers to the difference between the current body height value and the original body height value, where the original body height value is the body height value when the robot is upright. The position information of at least one arm refers to the difference between the current position of the arm's end and the original position of the arm's end, where the original position of the arm's end is the position of the arm's end when it is naturally hanging down. The velocity information of at least one arm refers to the difference between the current velocity of the arm's end and the original velocity of the arm's end, where the original velocity of the arm's end is the velocity of the arm's end when it is naturally hanging down. Based on the motion difference information and the initial fuselage center of mass position, the target fuselage center of mass position is determined, wherein the target fuselage center of mass position is the center of mass position of the robot after performing the target action; When the motion difference information includes at least two of the following: trunk posture angle, body height change, position information of at least one arm, and velocity information, the target action is split into trunk, upper limb, and lower limb. The number of target body center of mass positions is at least two, and the at least two target body center of mass positions form the center of mass trajectory of the robot performing the target action.
2. The method according to claim 1, characterized in that, The motion difference information includes the torso attitude angle. Determining the target fuselage center of gravity position based on the motion difference information and the initial fuselage center of gravity position includes: The target fuselage center of mass position for the current control cycle is determined based on the initial fuselage center of mass position, the torso attitude angle, and the first weighting coefficient.
3. The method according to claim 2, characterized in that, Determining the target fuselage center of gravity position for the current control cycle based on the initial fuselage center of gravity position, the torso attitude angle, and the first weighting coefficient includes: Based on the initial fuselage center of gravity position, the torso attitude angle, and the first weighting coefficient, the target fuselage center of gravity position for the current control cycle is determined using the following formula: in, This indicates the position of the target fuselage's center of mass. This indicates the initial position of the fuselage center of mass. This represents the first weighting coefficient. This indicates the torso posture angle.
4. The method according to claim 1, characterized in that, The motion difference information includes the change in fuselage height. Determining the target fuselage center of gravity position based on the motion difference information and the initial fuselage center of gravity position includes: The target fuselage center of mass position for the current control cycle is determined based on the initial fuselage center of mass position, the fuselage height change, and the second weighting coefficient.
5. The method according to claim 4, characterized in that, Determining the target fuselage center of gravity position for the current control cycle based on the initial fuselage center of gravity position, the fuselage height change, and the second weighting coefficient includes: Based on the initial fuselage center of gravity position, the fuselage height change, and the second weighting coefficient, the target fuselage center of gravity position for the current control cycle is determined using the following formula: in, This indicates the position of the target fuselage's center of mass. This indicates the initial position of the fuselage center of mass. This represents the second weighting coefficient. This indicates the change in fuselage height.
6. The method according to claim 1, characterized in that, The motion difference information includes position information of at least one arm and velocity information of the at least one arm. Determining the target fuselage center of gravity position based on the motion difference information and the initial fuselage center of gravity position includes: The target fuselage center of mass position for the current control cycle is determined based on the initial fuselage center of mass position, the position information of the at least one arm, the velocity information of the at least one arm, the third weighting coefficient, and the fourth weighting coefficient.
7. The method according to claim 6, characterized in that, The step of determining the target fuselage center of gravity position for the current control cycle based on the initial fuselage center of gravity position, the position information of the at least one arm, the velocity information of the at least one arm, the third weighting coefficient, and the fourth weighting coefficient includes: Based on the initial fuselage center of gravity position, the position information of the at least one arm, the velocity information of the at least one arm, the third weighting coefficient, and the fourth weighting coefficient, the target fuselage center of gravity position for the current control cycle is determined using the following formula: in, This indicates the position of the target fuselage's center of mass. This indicates the initial position of the fuselage center of mass. This represents the third weighting coefficient. This indicates the position information of the at least one arm. This represents the fourth weighting coefficient. This indicates the speed information of the at least one arm.
8. A method for controlling the motion of a bipedal robot body, characterized in that, The method includes: The robot's initial center of mass position and motion difference information are obtained. The initial center of mass position is the position of the robot's center of mass before performing the target action. The motion difference information is the pre-planned motion information of the robot when performing the target action. The motion difference information includes at least one of the following: torso posture angle, body height change, position information of at least one arm, and velocity information of at least one arm. The torso posture angle refers to the difference between the current torso posture angle and the original posture angle, where the original posture angle is the torso posture angle when the robot is upright. The body height change refers to the difference between the current body height value and the original body height value, where the original body height value is the body height value when the robot is upright. The position information of at least one arm refers to the difference between the current position of the arm's end and the original position of the arm's end, where the original position of the arm's end is the position of the arm's end when it is naturally hanging down. The velocity information of at least one arm refers to the difference between the current velocity of the arm's end and the original velocity of the arm's end, where the original velocity of the arm's end is the velocity of the arm's end when it is naturally hanging down. Based on the motion difference information and the initial body center of mass position, the target body center of mass position is determined, wherein the target body center of mass position is the center of mass position of the robot after performing the target action; when the motion difference information includes at least two of the following: torso posture angle, body height change, position information of at least one arm, and velocity information, the target action is divided into torso, upper limb, and lower limb, and the number of target body center of mass positions is at least two, and the at least two target body center of mass positions form the center of mass trajectory of the robot performing the target action; Based on the target body center of mass position, target motion difference information is determined so that the robot is in a balanced state when performing the target action. The target motion difference information is the motion information of the robot when performing the target action, planned based on the target body center of mass position.
9. A device for planning the center of mass of a bipedal robot, characterized in that, The device includes: The acquisition module is used to acquire the robot's initial body center of mass position and motion difference information. The initial body center of mass position is the position of the robot's center of mass before performing the target action. The motion difference information is the pre-planned motion information of the robot when performing the target action. The motion difference information includes at least one of the following: torso posture angle, body height change, position information of at least one arm, and velocity information of at least one arm. The torso posture angle refers to the difference between the current torso posture angle and the original posture angle, where the original posture angle is the torso posture angle when the robot is upright. The body height change refers to the difference between the current body height value and the original height value, where the original height value is the body height value when the robot is upright. The position information of at least one arm refers to the difference between the current position of the arm's end and the original position of the arm's end, where the original position of the arm's end is the position of the arm's end when it is naturally hanging down. The velocity information of at least one arm refers to the difference between the current velocity of the arm's end and the original velocity of the arm's end, where the original velocity of the arm's end is the velocity of the arm's end when it is naturally hanging down. The first determining module is used to determine the target body center of gravity position based on the motion difference information and the initial body center of gravity position, wherein the target body center of gravity position is the center of gravity position of the robot after performing the target action; when the motion difference information includes at least two of the following: torso posture angle, body height change, position information of at least one arm, and speed information, the target action is divided into torso, upper limb, and lower limb, and the number of target body center of gravity positions is at least two, and the at least two target body center of gravity positions form the center of gravity trajectory of the robot performing the target action.
10. A motion control device for a bipedal robot body, characterized in that, The device includes: The acquisition module is used to acquire the robot's initial body center of mass position and motion difference information. The initial body center of mass position is the position of the robot's center of mass before performing the target action. The motion difference information is the pre-planned motion information of the robot when performing the target action. The motion difference information includes at least one of the following: torso posture angle, body height change, position information of at least one arm, and velocity information of at least one arm. The torso posture angle refers to the difference between the current torso posture angle and the original posture angle, where the original posture angle is the torso posture angle when the robot is upright. The body height change refers to the difference between the current body height value and the original height value, where the original height value is the body height value when the robot is upright. The position information of at least one arm refers to the difference between the current position of the arm's end and the original position of the arm's end, where the original position of the arm's end is the position of the arm's end when it is naturally hanging down. The velocity information of at least one arm refers to the difference between the current velocity of the arm's end and the original velocity of the arm's end, where the original velocity of the arm's end is the velocity of the arm's end when it is naturally hanging down. The first determining module is used to determine the target body center of gravity position based on the motion difference information and the initial body center of gravity position, wherein the target body center of gravity position is the center of gravity position of the robot after performing the target action; when the motion difference information includes at least two of the following: torso posture angle, body height change, position information of at least one arm, and velocity information, the target action is divided into torso, upper limb, and lower limb, and the number of target body center of gravity positions is at least two, and the at least two target body center of gravity positions form the center of gravity trajectory of the robot performing the target action; The second determining module is used to determine the target motion difference information based on the target body center of mass position, so that the robot is in a balanced state when performing the target action. The target motion difference information is the motion information of the robot when performing the target action planned based on the target body center of mass position.
11. A robot, characterized in that, include: The system includes a memory and a processor, which are interconnected. The memory stores computer instructions, and the processor executes the computer instructions to perform the bipedal robot body center of mass planning method according to any one of claims 1 to 7, or the bipedal robot body motion control method according to claim 8.