Floor-falling control method of robot, robot and terminal device
By adjusting the robot's waist height through admittance control and PD control, the problem of the robot falling over during jumps was solved, and the robot was able to land stably.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- UBTECH ROBOTICS CORP LTD
- Filing Date
- 2023-12-01
- Publication Date
- 2026-07-07
Smart Images

Figure CN117873146B_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of robotics technology, and in particular relates to a landing control method for a robot, a robot, and a terminal device. Background Technology
[0002] With the development of technology, robots are being used in more and more fields. During task execution, robots may encounter situations requiring jumping. After jumping and landing, the robot's legs experience a tremendous impact force. The force sensors on the robot's legs read extremely high forces, causing a shift in the force on the robot's legs. Due to this shift in the force on the robot's legs, the robot will bounce again after contacting the ground. After repeated collisions and bounces, the robot will lose stability and fall. Summary of the Invention
[0003] This application provides a robot landing control method, a robot, and a terminal device, which can solve the problem that robots are prone to falling over when jumping.
[0004] In a first aspect, embodiments of this application provide a method for controlling the landing of a robot, including:
[0005] After detecting that the robot jumps and lands stably, the landing time of the robot, the impact force on the robot's legs, and the actual height of the robot's waist are obtained.
[0006] Calculate the actual stiffness of the robot's legs after landing based on the landing time;
[0007] The desired height of the robot's waist is calculated based on the actual stiffness of the robot's legs and the impact force on the legs.
[0008] The height control amount of the robot's waist is obtained based on the actual height of the waist and the desired height.
[0009] The robot's waist height after landing is adjusted according to the waist height control amount.
[0010] In one possible implementation of the first aspect, calculating the desired height of the robot's waist based on the actual stiffness of the robot's legs and the impact force experienced by the legs includes:
[0011] The actual stiffness of the robot's legs and the impact force experienced by the legs are input into the admittance control model to obtain the desired height of the robot's waist. The admittance control model includes:
[0012]
[0013]
[0014]
[0015] Among them, Z c The desired height of the robot's waist. For Z c The second derivative (the instantaneous acceleration due to the change in the robot's waist height); F a K represents the impact force experienced by the leg. s This represents the actual stiffness of the robot's legs. For Z c The first derivative (the instantaneous velocity of the robot's waist height change), D c and K c All are preset admittance coefficients. This is the preset control cycle.
[0016] In one possible implementation of the first aspect, obtaining the height control amount of the robot's waist based on the actual height of the waist and the desired height includes:
[0017] The actual height and the desired height of the waist are input into the proportional-derivative control model to obtain the height control value of the robot's waist. The proportional-derivative control model includes:
[0018]
[0019]
[0020]
[0021] Among them, Z s This refers to the height control value of the robot's waist. For Z s The second derivative (acceleration of the robot's waist height control quantity), K P and K d All parameters are preset, where H is the preset instantaneous height of the robot's waist upon landing, and Z... c Z represents the desired height of the robot's waist. r The actual height of the waist. For Z c The first derivative, For Z r The first derivative, For Z c The second derivative, For Z s The first derivative (the velocity of the robot's waist height control quantity), This is the preset control cycle.
[0022] Secondly, embodiments of this application provide a robot, including:
[0023] The parameter acquisition module is used to acquire the landing time of the robot, the impact force on the robot's legs, and the actual height of the robot's waist after detecting that the robot has jumped and landed stably.
[0024] The stiffness calculation module is used to calculate the actual stiffness of the robot's legs after landing, based on the landing time.
[0025] The height calculation module is used to calculate the desired height of the robot's waist based on the actual stiffness of the robot's legs and the impact force on the legs;
[0026] The control quantity calculation module is used to obtain the height control quantity of the robot's waist based on the actual height of the waist and the desired height.
[0027] The waist control module is used to adjust the robot's waist height after landing based on the waist height control amount.
[0028] Thirdly, embodiments of this application provide a terminal device, including: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the method described in any one of the first aspects above.
[0029] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program that, when executed by a processor, implements the method described in any one of the first aspects above.
[0030] Fifthly, embodiments of this application provide a computer program product that, when run on a terminal device, causes the terminal device to execute the method described in any one of the first aspects above.
[0031] The beneficial effects of the first aspect of this application compared to the prior art are as follows: After detecting that the robot has jumped and landed stably, this application obtains the landing time, the impact force on the robot's legs, and the actual height of the robot's waist; based on the landing time, it calculates the actual stiffness of the robot's legs after landing; based on the actual stiffness of the robot's legs and the impact force on the legs, it calculates the desired height of the robot's waist; based on the actual height and the desired height, it obtains the height control amount of the robot's waist; and based on the height control amount, it adjusts the height of the robot's waist after landing to achieve the purpose of tracking the actual height of the waist with the desired height. After the robot lands stably and smoothly, this application controls the height of the robot's waist by calculating the height control amount of the robot's waist, thereby achieving the purpose of adjusting the height of the robot's waist; by adjusting the height of the waist, the stiffness of the robot's legs can be changed, thereby balancing the force on the robot's legs, allowing the robot to stand stably on the ground and preventing the robot from falling.
[0032] It is understood that the beneficial effects of the second to fifth aspects mentioned above can be found in the relevant descriptions in the first aspect mentioned above, and will not be repeated here. Attached Figure Description
[0033] To more clearly illustrate the technical solutions in the embodiments of this application, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0034] Figure 1 This is a structural block diagram of a robot landing control method provided in an embodiment of this application;
[0035] Figure 2 This is a flowchart illustrating a robot landing control method provided in an embodiment of this application;
[0036] Figure 3 This is a flowchart illustrating a method for calculating the actual stiffness of a robot's legs according to an embodiment of this application.
[0037] Figure 4 This is a flowchart illustrating a method for calculating the desired height of a robot's waist according to an embodiment of this application.
[0038] Figure 5 This is a flowchart illustrating a method for calculating the waist height control amount of a robot according to an embodiment of this application;
[0039] Figure 6This is a flowchart illustrating a method for calculating the height control amount of the robot's waist according to another embodiment of this application;
[0040] Figure 7 This is a schematic diagram of the structure of a robot provided in one embodiment of this application;
[0041] Figure 8 This is a schematic diagram of the structure of a terminal device provided in an embodiment of this application. Detailed Implementation
[0042] It should be understood that, when used in this application specification and the appended claims, the term "comprising" indicates the presence of the described features, integrals, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components and / or a collection thereof.
[0043] It should also be understood that the term “and / or” as used in this application specification and the appended claims means any combination of one or more of the associated listed items and all possible combinations, and includes such combinations.
[0044] As used in this application specification and the appended claims, the term "if" may be interpreted, depending on the context, as "when," "once," "in response to determination," or "in response to detection." Similarly, the phrase "if determined" or "if detected [the described condition or event]" may be interpreted, depending on the context, as "once determined," "in response to determination," "once detected [the described condition or event]," or "in response to detection [the described condition or event]."
[0045] Furthermore, in the description of this application and the appended claims, the terms "first," "second," "third," etc., are used only to distinguish descriptions and should not be construed as indicating or implying relative importance.
[0046] References to "one embodiment" or "some embodiments" in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized.
[0047] With the development of technology, robots are becoming increasingly intelligent, capable of performing complex actions such as running and continuous jumping. During a robot's jump, it is crucial to ensure a stable landing while both feet are off the ground.
[0048] Current methods for controlling robot landing are mostly based on quadruped robots or relatively simple bipedal point-footed robots, and the jumping control of robots is mostly force control.
[0049] Specifically, existing robot control methods involve controlling the acceleration of the robot's waist after landing, based on the change in leg length, to ensure a successful landing. However, this method results in a significant impact force on the legs upon landing, causing a jump and ultimately leading to instability and a fall.
[0050] To address the aforementioned issues, this application proposes a landing control method for a robot. By calculating the desired height of the robot's waist, the height of the robot's waist is controlled to alter the stiffness of the robot's legs, thereby enabling the robot to land smoothly.
[0051] Specifically, this application employs compliant control using admittance control and PD control (proportional-derivative control).
[0052] The core of admittance control is to change the robot's original control trajectory to adapt to the external force when the robot is suddenly subjected to it.
[0053] Admittance controllers are typically: Where, x d x0 is the desired position, and x0 is the original position. For the desired speed (x) d (the first derivative), For the desired acceleration (x) d (the second derivative), The original velocity (the first derivative of x0), M is the original acceleration (the second derivative of x0). d D d K d All are preset admittance parameters, F ext The external force received.
[0054] The desired position can be obtained through the admittance controller, and the control quantity can be changed to follow the desired position through the PD controller, so as to achieve the effect of force control in the form of position control.
[0055] Specifically, in robot landing control, since the robot's legs will be subjected to a huge impact force from the ground when landing, admittance control can be applied to the robot's legs to obtain the desired height of the robot's waist after landing. Then, PD control is used to make the actual height of the robot's waist track the desired height of the robot's waist, thereby mitigating the impact of landing on the robot by controlling the height of the robot's waist.
[0056] However, the inventors also discovered that after the robot lands, its feet will be under great stress for a long time. If only the impact force on the robot's legs when it lands is used as the input of the admittance controller, the control quantity of the admittance controller is difficult to return to zero in a short time. Consequently, the control quantity of the robot's waist is also difficult to return to zero in a short time, making it difficult for the robot to achieve continuous jumping.
[0057] In order to enable the robot's waist control to quickly return to zero after landing and not affect the next jump, this application proposes variable stiffness leg control based on the idea of the changes in the legs when humans land from a height (when humans land from a height, their legs are initially relatively soft, and their waist position changes rapidly to adapt to the impact, but quickly, after the human adapts to the impact force from the ground and stands firmly on the ground, their legs instantly stiffen and they stand firmly on the ground).
[0058] Specifically, such as Figure 1 The logic block diagram of this application shown herein indicates that the method of this application may include:
[0059] After the robot lands, the landing time is obtained, and the stiffness of the robot's legs is adjusted based on the landing time to obtain the actual stiffness of the robot's legs.
[0060] The actual stiffness of the robot's legs is input into the admittance controller, which determines the desired height of the robot's waist based on the actual stiffness of the robot's legs and the impact force on the robot's legs.
[0061] The desired height of the robot's waist is input to the PD controller (proportional-derivative controller). The PD controller determines the height control amount of the robot's waist based on the desired height and the actual height of the robot's waist.
[0062] It should be noted that after the height control value of the robot's waist is applied to the robot's waist, the height of the robot's waist changes, which in turn changes the impact force on the robot's legs. This cycle continues until the impact force on the robot's legs becomes 0, and the robot lands successfully.
[0063] Below, in conjunction with the above Figure 1 The logic block diagram provides a detailed description of the robot landing control method proposed in this application.
[0064] Figure 2 A schematic flowchart of the landing control method for the robot provided in this application is shown, with reference to... Figure 2 The method is described in detail below:
[0065] S101, after detecting that the robot jumps and lands stably, obtain the landing time of the robot, the impact force on the robot's legs, and the actual height of the robot's waist.
[0066] In this embodiment, a stable landing means that the robot's legs are no longer subjected to significant impact from the ground, that is, the impact force on the robot's legs is less than a preset threshold.
[0067] Landing time refers to the time from when the robot's feet make contact with the ground until it lands stably.
[0068] In this embodiment, since the robot's landing control is performed according to a control cycle, the impact force on the robot's legs and the actual height of its waist are values that change over time. In the current control cycle, it is necessary to obtain the impact force on the robot's legs and the actual height of its waist within that cycle. The control cycle can be set as needed; for example, it can be set to 1 millisecond or 1.5 milliseconds.
[0069] The impact force on the robot's legs is the force exerted by the ground on the legs when the robot lands. This impact force is collected according to the control cycle. The impact force collected in different control cycles may vary.
[0070] The actual height of the robot's waist also needs to be collected according to the control cycle, and the actual height of the robot's waist collected in different control cycles will be different.
[0071] S102, Calculate the actual stiffness of the robot's legs after landing based on the landing time.
[0072] In this embodiment, the actual stiffness of the robot's legs increases rapidly after the robot lands. The actual stiffness of the robot's legs is directly proportional to the landing time; the longer the landing time, the greater the actual stiffness of the legs.
[0073] Specifically, the calculation methods for the actual leg stiffness include: inputting the landing time into a pre-set stiffness calculation model to obtain the actual leg stiffness; or, multiplying the landing time by a preset parameter to obtain the actual leg stiffness.
[0074] like Figure 3 As shown, specifically, the calculation method for the actual stiffness of the leg includes:
[0075] S1021, Obtain the preset initial stiffness of the robot's legs.
[0076] In this embodiment, the initial stiffness of the robot's legs is a preset stiffness value, which is a stiffness value determined through experiments.
[0077] S1022, Calculate the actual stiffness of the robot's legs after landing based on the initial stiffness of the legs and the landing time.
[0078] In this embodiment, the product of the landing time and a preset first parameter is calculated to obtain a first product value; the sum of the first product value and the initial stiffness of the leg is calculated to obtain the actual stiffness of the robot's leg after landing.
[0079] Specifically, according to K s =K INIT +k×t calculates the actual stiffness of the robot's legs after landing. Where K... s K represents the actual stiffness of the robot's legs after landing. INIT Let be the initial stiffness of the leg, k be the first parameter, and t be the landing time.
[0080] S103, Calculate the desired height of the robot's waist based on the actual stiffness of the robot's legs and the impact force on the legs.
[0081] In this embodiment, the impact force on the legs is corrected by using the actual stiffness of the legs to obtain the corrected impact force on the legs, and the desired height of the robot's waist is calculated using the corrected impact force on the legs.
[0082] Specifically, the corrected impact force on the leg is obtained by dividing the impact force on the leg by the actual stiffness of the leg.
[0083] S104, Based on the actual height of the waist and the desired height, obtain the height control amount of the robot's waist.
[0084] In this embodiment, the difference between the actual height and the desired height is calculated, and the height control amount corresponding to the difference is determined by looking up a table. Different height control amounts corresponding to different height differences are preset.
[0085] S105, Adjust the robot's waist height after landing according to the waist height control amount.
[0086] In this embodiment, a determined height control amount is applied to the robot's waist to control the robot's waist height to reach the desired height.
[0087] In this embodiment, after detecting that the robot has jumped and landed stably, the landing time, the impact force on the robot's legs, and the actual height of the robot's waist are obtained. Based on the landing time, the actual stiffness of the robot's legs after landing is calculated. Based on the actual stiffness of the robot's legs and the impact force on the legs, the desired height of the robot's waist is calculated. Based on the actual height and the desired height, a height control amount for the robot's waist is obtained. The height control amount is used to adjust the robot's waist height after landing, so as to achieve the purpose of tracking the actual waist height with the desired height. After the robot lands stably and smoothly, this application controls the robot's waist height by calculating the height control amount for the robot's waist, thereby achieving the purpose of adjusting the robot's waist height. By adjusting the waist height, the stiffness of the robot's legs can be changed, thereby balancing the force on the robot's legs, allowing the robot to stand stably on the ground and preventing the robot from falling.
[0088] like Figure 4 As shown, in one possible implementation, step S103 may include:
[0089] S1031, Obtain the instantaneous speed of the change in the robot's waist height.
[0090] In this embodiment, the instantaneous velocity of the waist height change in the current control cycle is calculated using the instantaneous velocity and instantaneous acceleration of the waist height change in the previous control cycle.
[0091] Specifically, the instantaneous velocity and instantaneous acceleration of the robot's waist height change in the (i-1)th control cycle are obtained; based on the instantaneous velocity and instantaneous acceleration of the robot's waist height change in the (i-1)th control cycle, the instantaneous velocity of the robot's waist height change in the ith control cycle is calculated.
[0092] In this embodiment, the i-th control cycle is the previous control cycle, and the i-th control cycle is the current control cycle. The instantaneous velocity of the waist height change is the instantaneous velocity of the desired waist height.
[0093] In this embodiment, the instantaneous velocity of the robot's waist height change in the (i-1)th control cycle is multiplied by the second parameter to obtain the first value; the instantaneous acceleration of the robot's waist height change in the (i-1)th control cycle is multiplied by the third parameter to obtain the second value; the first value is added to the second value to obtain the instantaneous velocity of the robot's waist height change in the ith control cycle.
[0094] S1032, Calculate the instantaneous acceleration of the robot's waist height change based on the actual stiffness of the robot's legs, the impact force on the legs, and the instantaneous velocity of the waist height change.
[0095] In one embodiment, the actual stiffness of the robot's legs and the impact force on the legs are input into a preset model to obtain the instantaneous velocity and instantaneous acceleration of the robot's waist height change.
[0096] In another embodiment, a first ratio is obtained by calculating the ratio of the impact force on the robot's leg to the actual stiffness of the robot's leg; based on the instantaneous velocity of the robot's waist height change in the i-th control cycle and the first ratio, the instantaneous acceleration of the robot's waist height change in the i-th control cycle is calculated.
[0097] S1033, Calculate the desired height of the robot's waist based on the instantaneous velocity and instantaneous acceleration.
[0098] In this embodiment, the instantaneous velocity is multiplied by a first coefficient to obtain a fifth value; the instantaneous acceleration is multiplied by a second coefficient to obtain a sixth value; and the fifth value is added to the sixth value to obtain the desired height of the robot's waist.
[0099] In another embodiment, the desired waist height of the robot in the i-th control cycle is calculated based on the instantaneous velocity of the change in waist height of the robot in the i-th control cycle and the instantaneous acceleration.
[0100] In another embodiment, instantaneous velocity and instantaneous acceleration are input into a preset height calculation model to obtain the desired height of the robot's waist.
[0101] In one possible implementation, step S103 may include:
[0102] The actual stiffness of the robot's legs and the impact force experienced by the legs are input into the admittance control model to obtain the desired height of the robot's waist. The admittance control model includes:
[0103]
[0104]
[0105]
[0106] Among them, Z c The desired height of the robot's waist. For Z c The second derivative (the instantaneous acceleration due to the change in the robot's waist height); F a K represents the impact force experienced by the leg. s This represents the actual stiffness of the robot's legs. For Z cThe first derivative (the instantaneous velocity of the robot's waist height change), D c and K c All are preset admittance coefficients. This is the preset control cycle.
[0107] Characterization: First, calculate the product of the instantaneous acceleration of the robot's waist height change in the (i-1)th control cycle and the control cycle, obtaining the second product. Then, add the second product to the instantaneous velocity of the waist height change in the (i-1)th control cycle to obtain the instantaneous velocity of the waist height change in the ith control cycle.
[0108] Characterization: The desired height of the robot's waist during the (i-1)th control cycle plus... The desired height of the robot's waist is obtained in the i-th control cycle.
[0109] like Figure 5 As shown, in one possible implementation, step S104 may include:
[0110] S1041, the speed at which the height control amount of the robot's waist is obtained.
[0111] S1042, calculate the acceleration of the waist height control amount of the robot based on the actual height of the waist and the desired height.
[0112] In this embodiment, the first derivative of the desired height, the first derivative of the actual height, and the second derivative of the desired height are calculated; using the actual height, desired height, the first derivative of the desired height, the first derivative of the actual height, and the second derivative of the desired height, the acceleration of the robot's waist height control is calculated.
[0113] S1043, Based on the speed and acceleration of the height control amount of the robot's waist, the height control amount of the robot's waist is obtained.
[0114] In this embodiment, the speed of the robot's waist height control is multiplied by the fourth parameter to obtain the seventh value; the acceleration of the robot's waist height control is multiplied by the fifth parameter to obtain the eighth value; and the seventh value is added to the eighth value to obtain the robot's waist height control amount.
[0115] like Figure 6 As shown, in one possible implementation, step S104 may further include:
[0116] S201, obtain the velocity and acceleration of the waist height control quantity of the robot in the (i-1)th control cycle.
[0117] S202, based on the speed and acceleration of the waist height control quantity of the robot in the (i-1)th control cycle, calculate the speed of the waist height control quantity of the robot in the i-th control cycle.
[0118] In this embodiment, the ninth value is obtained by multiplying the speed of the robot's waist height control amount in the (i-1)th control cycle by the sixth parameter; the tenth value is obtained by multiplying the acceleration of the robot's waist height control amount in the (i-1)th control cycle by the seventh parameter; and the speed of the robot's waist height control amount in the i-th control cycle is obtained by adding the ninth value to the tenth value.
[0119] S203, calculate the difference between the expected height of the robot's waist and the actual height in the i-th control cycle, and obtain the height difference of the robot's waist in the i-th control cycle.
[0120] S204, based on the height difference of the robot's waist in the i-th control cycle, calculate the acceleration of the height control amount of the robot's waist in the i-th control cycle.
[0121] Specifically, the first difference is obtained by subtracting the first derivative of the actual height from the first derivative of the desired height; the acceleration of the robot's waist height control quantity is calculated using the height difference, the first difference, and the second derivative of the desired height.
[0122] S205, based on the velocity and acceleration of the robot's waist height control amount in the i-th control cycle, obtain the robot's waist height control amount in the i-th control cycle.
[0123] In this embodiment, the velocity and acceleration of the robot's waist height control quantity in the i-th control cycle are input into a preset control quantity calculation model to obtain the robot's waist height control quantity in the i-th control cycle.
[0124] In another embodiment, the velocity of the robot's waist height control amount in the i-th control cycle is multiplied by the corresponding parameter to obtain a third product; the acceleration of the robot's waist height control amount in the i-th control cycle is multiplied by the corresponding parameter to obtain a fourth product; the robot's waist height control amount in the i-th control cycle is obtained based on the third product and the fourth product.
[0125] In one possible implementation, step S104 may further include:
[0126] The actual height and the desired height of the waist are input into the proportional-derivative control model to obtain the height control value of the robot's waist. The proportional-derivative control model includes:
[0127]
[0128]
[0129]
[0130] Among them, Z s This refers to the height control value of the robot's waist. For Z s The second derivative (acceleration of the robot's waist height control quantity), K P and K d All parameters are preset, where H is the preset instantaneous height of the robot's waist upon landing, and Z... c Z represents the desired height of the robot's waist. r The actual height of the waist. For Z c The first derivative, For Z r The first derivative, For Z c The second derivative, For Z s The first derivative (the velocity of the robot's waist height control quantity), This is the preset control cycle.
[0131] in, Characterization: First, calculate the product of the acceleration of the waist height control quantity of the robot in the (i-1)th control cycle and the control cycle, to obtain the third product. Then, add the third product to the velocity of the waist height control quantity in the (i-1)th control cycle to obtain the velocity of the waist height control quantity in the ith control cycle.
[0132] Similarly, Characterization: The height control value of the robot's waist during the (i-1)th control cycle plus... Obtain the height control value of the robot's waist in the i-th control cycle.
[0133] This application achieves a smooth landing by changing the robot's waist height after it lands, thereby reducing the force on the robot's feet and allowing the waist height to quickly return to its original height.
[0134] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0135] Corresponding to the robot landing control method described in the above embodiments, Figure 7A structural block diagram of the robot provided in the embodiments of this application is shown. For ease of explanation, only the parts related to the embodiments of this application are shown.
[0136] Reference Figure 7 The robot 300 may include: a parameter acquisition module 310, a stiffness calculation module 320, a height calculation module 330, a control quantity calculation module 340, and a waist control module 350.
[0137] The parameter acquisition module 310 is used to acquire the landing time of the robot, the impact force on the robot's legs, and the actual height of the robot's waist after detecting that the robot has jumped and landed stably.
[0138] The stiffness calculation module 320 is used to calculate the actual stiffness of the robot's legs after landing based on the landing time.
[0139] The height calculation module 330 is used to calculate the desired height of the robot's waist based on the actual stiffness of the robot's legs and the impact force on the legs;
[0140] The control quantity calculation module 340 is used to obtain the height control quantity of the robot's waist based on the actual height of the waist and the desired height;
[0141] The waist control module 350 is used to adjust the waist height of the robot after landing according to the waist height control amount.
[0142] In one possible implementation, the stiffness calculation module 320 can specifically be used for:
[0143] Obtain the preset initial stiffness of the robot's legs;
[0144] The actual stiffness of the robot's legs after landing is calculated based on the initial stiffness of the legs and the landing time.
[0145] In one possible implementation, the stiffness calculation module 320 can specifically be used for:
[0146] Calculate the product of the landing time and the preset first parameter to obtain the first product value;
[0147] The sum of the first product value and the initial stiffness of the leg is calculated to obtain the actual stiffness of the robot's leg after landing.
[0148] In one possible implementation, the height calculation module 330 can specifically be used for:
[0149] Obtain the instantaneous velocity of the change in the robot's waist height;
[0150] Calculate the instantaneous acceleration of the robot's waist height change based on the robot's actual leg stiffness, the impact force on the legs, and the instantaneous velocity of the waist height change.
[0151] Based on the instantaneous velocity and instantaneous acceleration, the desired height of the robot's waist is calculated.
[0152] In one possible implementation, the height calculation module 330 can specifically be used for:
[0153] Obtain the instantaneous velocity and instantaneous acceleration of the robot's waist height change during the (i-1)th control cycle;
[0154] Based on the instantaneous velocity and instantaneous acceleration of the robot's waist height change in the (i-1)th control cycle, calculate the instantaneous velocity of the robot's waist height change in the i-th control cycle.
[0155] Calculate the ratio of the impact force on the robot's leg to the actual stiffness of the robot's leg to obtain a first ratio;
[0156] Based on the instantaneous velocity of the robot's waist height change in the i-th control cycle and the first ratio, calculate the instantaneous acceleration of the robot's waist height change in the i-th control cycle.
[0157] Based on the instantaneous velocity and instantaneous acceleration of the robot's waist height change in the i-th control cycle, the desired waist height of the robot in the i-th control cycle is calculated.
[0158] In one possible implementation, the control quantity calculation module 340 can specifically be used for:
[0159] The speed at which the height control value of the robot's waist is obtained;
[0160] Calculate the acceleration of the waist height control amount of the robot based on the actual height of the waist and the desired height;
[0161] The height control value of the robot's waist is obtained based on the velocity and acceleration of the height control value of the robot's waist.
[0162] In one possible implementation, the control quantity calculation module 340 can specifically be used for:
[0163] Obtain the velocity and acceleration of the waist height control value of the robot in the (i-1)th control cycle;
[0164] Based on the velocity and acceleration of the waist height control amount of the robot in the (i-1)th control cycle, calculate the velocity of the waist height control amount of the robot in the i-th control cycle.
[0165] Accordingly, based on the actual height of the waist and the desired height, the acceleration of the robot's waist height control is calculated, including:
[0166] Calculate the difference between the expected height of the robot's waist and the actual height in the i-th control cycle to obtain the height difference of the robot's waist in the i-th control cycle;
[0167] Based on the height difference of the robot's waist in the i-th control cycle, calculate the acceleration of the robot's waist height control amount in the i-th control cycle.
[0168] Accordingly, based on the velocity and acceleration of the robot's waist height control, the robot's waist height control value is obtained, including:
[0169] Based on the velocity and acceleration of the robot's waist height control value in the i-th control cycle, the waist height control value of the robot in the i-th control cycle is obtained.
[0170] It should be noted that the information interaction and execution process between the above-mentioned devices / units are based on the same concept as the method embodiments of this application. For details on their specific functions and technical effects, please refer to the method embodiments section, and they will not be repeated here.
[0171] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional units and modules is merely an example. In practical applications, the above functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit. Furthermore, the specific names of the functional units and modules are only for easy differentiation and are not intended to limit the scope of protection of this application. The specific working process of the units and modules in the above system can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.
[0172] This application also provides a terminal device, see [link to relevant documentation] Figure 8The terminal device 400 may include: at least one processor 410, a memory 420, and a computer program stored in the memory 420 and executable on the at least one processor 410. When the processor 410 executes the computer program, it implements the steps in any of the above method embodiments, for example... Figure 2 Steps S101 to S105 in the illustrated embodiment. Alternatively, when the processor 410 executes the computer program, it implements the functions of each module / unit in the above-described device embodiments, for example... Figure 7 The parameters obtained by the parameter acquisition module 310 are shown to be connected to the waist control module 350.
[0173] For example, a computer program may be divided into one or more modules / units, one or more of which are stored in memory 420 and executed by processor 410 to complete this application. The one or more modules / units may be a series of computer program segments capable of performing a specific function, which are used to describe the execution process of the computer program in terminal device 400.
[0174] Those skilled in the art will understand that Figure 8 This is merely an example of a terminal device and does not constitute a limitation on the terminal device. It may include more or fewer components than shown, or combine certain components, or different components, such as input / output devices, network access devices, buses, etc.
[0175] The processor 410 can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor.
[0176] The memory 420 can be an internal storage unit of the terminal device or an external storage device, such as a plug-in hard drive, a smart media card (SMC), a secure digital card (SD), or a flash card. The memory 420 is used to store the computer program and other programs and data required by the terminal device. The memory 420 can also be used to temporarily store data that has been output or will be output.
[0177] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.
[0178] The robot landing control method provided in this application embodiment can be applied to terminal devices such as computers, tablets, laptops, netbooks, and personal digital assistants (PDAs). This application embodiment does not impose any restrictions on the specific type of terminal device.
[0179] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0180] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0181] In the embodiments provided in this application, it should be understood that the disclosed terminal devices, apparatuses, and methods can be implemented in other ways. For example, the terminal device embodiments described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interfaces, apparatuses, or units, and may be electrical, mechanical, or other forms.
[0182] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0183] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0184] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, all or part of the processes in the methods of the above embodiments can also be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by one or more processors, it can implement the steps of the various method embodiments described above.
[0185] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, all or part of the processes in the methods of the above embodiments can also be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by one or more processors, it can implement the steps of the various method embodiments described above.
[0186] Similarly, as a computer program product, when the computer program product is run on a terminal device, it enables the terminal device to implement the steps in the above-described method embodiments.
[0187] The computer program includes computer program code, which can be in the form of source code, object code, executable file, or some intermediate form. The computer-readable medium can include: any entity or device capable of carrying the computer program code, recording media, USB flash drive, portable hard drive, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signals, telecommunication signals, and software distribution media, etc. It should be noted that the content included in the computer-readable medium can be appropriately added or removed according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, computer-readable media may not include electrical carrier signals and telecommunication signals.
[0188] The above-described embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application, and should all be included within the protection scope of this application.
Claims
1. A method for controlling the landing of a robot, characterized in that, include: After detecting that the robot jumps and lands stably, the landing time of the robot, the impact force on the robot's legs, and the actual height of the robot's waist are obtained. The landing time is the duration from when the robot's feet make contact with the ground to when it lands stably. Calculate the actual stiffness of the robot's legs after landing based on the landing time; The desired height of the robot's waist is calculated based on the actual stiffness of the robot's legs and the impact force on the legs. The height control amount of the robot's waist is obtained based on the actual height of the waist and the desired height. The robot's waist height after landing is adjusted according to the waist height control amount.
2. The method as described in claim 1, characterized in that, The step of calculating the actual stiffness of the robot's legs after landing based on the landing time includes: Obtain the preset initial stiffness of the robot's legs; The actual stiffness of the robot's legs after landing is calculated based on the initial stiffness of the legs and the landing time.
3. The method as described in claim 2, characterized in that, The step of calculating the actual leg stiffness of the robot after landing, based on the initial leg stiffness and the landing time, includes: Calculate the product of the landing time and the preset first parameter to obtain the first product value; The sum of the first product value and the initial stiffness of the leg is calculated to obtain the actual stiffness of the robot's leg after landing.
4. The method as described in claim 1, characterized in that, The step of calculating the desired height of the robot's waist based on the actual stiffness of the robot's legs and the impact force experienced by the legs includes: Obtain the instantaneous velocity of the change in the robot's waist height; Calculate the instantaneous acceleration of the robot's waist height change based on the robot's actual leg stiffness, the impact force on the legs, and the instantaneous velocity of the waist height change. Based on the instantaneous velocity and instantaneous acceleration, the desired height of the robot's waist is calculated.
5. The method as described in claim 4, characterized in that, The instantaneous velocity of the change in the robot's waist height includes: Obtain the instantaneous velocity and instantaneous acceleration of the robot's waist height change during the (i-1)th control cycle; Based on the instantaneous velocity and instantaneous acceleration of the robot's waist height change in the (i-1)th control cycle, calculate the instantaneous velocity of the robot's waist height change in the i-th control cycle. Accordingly, based on the actual stiffness of the robot's legs, the impact force on the legs, and the instantaneous velocity of the change in waist height, the instantaneous acceleration of the robot's waist height change is calculated, including: Calculate the ratio of the impact force on the robot's leg to the actual stiffness of the robot's leg to obtain a first ratio; Based on the instantaneous velocity of the robot's waist height change in the i-th control cycle and the first ratio, calculate the instantaneous acceleration of the robot's waist height change in the i-th control cycle. Accordingly, based on the instantaneous velocity and instantaneous acceleration, the desired height of the robot's waist is calculated, including: Based on the instantaneous velocity and instantaneous acceleration of the robot's waist height change in the i-th control cycle, the desired waist height of the robot in the i-th control cycle is calculated.
6. The method according to any one of claims 1 to 5, characterized in that, The step of obtaining the height control amount of the robot's waist based on the actual height of the waist and the desired height includes: The speed at which the height control value of the robot's waist is obtained; Calculate the acceleration of the waist height control amount of the robot based on the actual height of the waist and the desired height; The height control value of the robot's waist is obtained based on the velocity and acceleration of the height control value of the robot's waist.
7. The method as described in claim 6, characterized in that, The speed at which the height control value of the robot's waist is obtained includes: Obtain the velocity and acceleration of the waist height control value of the robot in the (i-1)th control cycle; Based on the velocity and acceleration of the waist height control amount of the robot in the (i-1)th control cycle, calculate the velocity of the waist height control amount of the robot in the i-th control cycle. Accordingly, based on the actual height of the waist and the desired height, the acceleration of the robot's waist height control is calculated, including: Calculate the difference between the expected height of the robot's waist and the actual height in the i-th control cycle to obtain the height difference of the robot's waist in the i-th control cycle; Based on the height difference of the robot's waist in the i-th control cycle, calculate the acceleration of the robot's waist height control amount in the i-th control cycle. Accordingly, based on the velocity and acceleration of the robot's waist height control, the robot's waist height control value is obtained, including: Based on the velocity and acceleration of the robot's waist height control value in the i-th control cycle, the waist height control value of the robot in the i-th control cycle is obtained.
8. A robot, characterized in that, include: The parameter acquisition module is used to acquire the landing time of the robot, the impact force on the robot's legs, and the actual height of the robot's waist after detecting that the robot has jumped and landed stably. The landing time is the duration from when the robot's feet make contact with the ground to when it lands stably. The stiffness calculation module is used to calculate the actual stiffness of the robot's legs after landing, based on the landing time. The height calculation module is used to calculate the desired height of the robot's waist based on the actual stiffness of the robot's legs and the impact force on the legs; The control quantity calculation module is used to obtain the height control quantity of the robot's waist based on the actual height of the waist and the desired height. The waist control module is used to adjust the robot's waist height after landing based on the waist height control amount.
9. A terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the method as described in any one of claims 1 to 7.
10. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the method as described in any one of claims 1 to 7.