Motion control method and device, electronic equipment and storage medium
Patent Information
- Application Number
- CN202410370843.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-28
- Publication Date
- 2026-09-29
- Estimated Expiration
- 2044-03-28
AI Technical Summary
但是相关技术中,由于地形复杂等原因,导致足式机器人在行走时稳定性较差
[0063]本公开实施例所提供的运动控制方法,在机器人运动过程中,获取所述机器人的运动数据和至少一个腿部关节的状态,并基于所述至少一个腿部关节的状态确定所述机器人的摆动足是否落地;并响应于所述机器人的摆动足落地,根据所述运动数据和所述至少一个腿部关节的状态确定所述机器人的摆动足与支撑足之间的相对位置;最后根据所述机器人的摆动足与支撑足之间的相对位置确定所述机器人所处环境的地形条件,并根据所述地形条件控制所述机器人进行运动。由于摆动足触地时与支撑足之间的相对位置能够在一定程度上表征地形条件,因此该方法可以在机器人行走过程中实时判断地形条件,并以适应于地形条件的运动方式进行运动,从而可以提高机器人运动过程中对地形的适应能力,提高机器人运动的稳定性。
Smart Images

Figure CN118106991B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of robotics, specifically to a motion control method, device, electronic device, and storage medium. Background Technology
[0002] In recent years, robotics technology has been continuously developing, becoming increasingly intelligent and automated, with improvements in the richness, stability, and flexibility of its movements. Robots can replace users in performing specific tasks in their production and daily lives, thus bringing convenience. Legged robots can mimic the walking of animals or humans; for example, bipedal robots can imitate human walking, and quadrupedal robots can imitate the walking of animals such as dogs. However, due to complex terrain and other factors, the stability of legged robots during walking is relatively poor. Summary of the Invention
[0003] To overcome the problems existing in the related technologies, this disclosure provides a motion control method, device, electronic device, and storage medium to solve the defects in the related technologies.
[0004] According to a first aspect of the present disclosure, a motion control method is provided, the method comprising:
[0005] During the robot's movement, the robot's motion data and the state of at least one leg joint are acquired, and the state of the robot's swinging foot is determined based on the state of the at least one leg joint.
[0006] In response to the landing of the robot's swinging foot, the relative position between the robot's swinging foot and supporting foot is determined based on the motion data and the state of the at least one leg joint;
[0007] The terrain conditions of the robot's environment are determined based on the relative position between the robot's swinging foot and supporting foot, and the robot's movement is controlled according to the terrain conditions.
[0008] In one possible embodiment of this disclosure, determining whether the robot's swinging foot has landed based on the state of the at least one leg joint includes:
[0009] The contact force of the swing foot is determined based on the state of the joint on the leg where the swing foot of the robot is located.
[0010] Whether the swinging foot lands is determined based on the contact force of the swinging foot.
[0011] In one possible embodiment of this disclosure, determining the relative position between the robot's swinging foot and supporting foot based on the motion data and the state of the at least one leg joint includes:
[0012] The position of each foot of the robot is determined based on the motion data and the state of the at least one leg joint;
[0013] The height difference between the swing foot and the support foot of the robot is determined based on the position of each foot of the robot.
[0014] In one possible embodiment of this disclosure, the robot includes multiple pairs of feet, wherein two feet in the pairs alternately serve as a supporting foot and a swinging foot;
[0015] Determining the height difference between the swing foot and the supporting foot of the robot based on the position of each foot includes:
[0016] Based on the position of each foot of the robot, the height difference between the supporting foot and the swinging foot in at least one foot pair of the robot is determined, and the statistical result of the obtained at least one height difference is determined as the height difference between the swinging foot and the supporting foot of the robot.
[0017] In one possible embodiment of this disclosure, the step of determining the height difference between the swing foot and the supporting foot of the robot in response to the landing of the robot's swing foot, based on the position of each foot of the robot, includes:
[0018] In response to the landing of the swinging foot in any foot pair of the robot, the height difference between the swinging foot and the supporting foot in the foot pair is determined based on the positions of the two feet in the foot pair.
[0019] In one possible embodiment of this disclosure, determining the height difference between the swing foot and the supporting foot of the robot based on the position of each foot includes:
[0020] Based on the position of each foot of the robot, the height difference between the swing foot and the supporting foot of the robot in the current gait cycle is determined, and the height difference obtained in the current gait cycle is smoothed based on the height difference obtained in at least one previous gait cycle.
[0021] In one possible embodiment of this disclosure, determining the terrain conditions of the robot's environment based on the height difference between the robot's swinging foot and supporting foot includes:
[0022] In response to the height difference between the robot's swinging foot and supporting foot being less than or equal to a first threshold, the terrain conditions of the robot's environment are determined to be hard ground; or,
[0023] In response to the height difference between the robot's swinging foot and supporting foot being greater than a first threshold, the terrain conditions of the robot's environment are determined to be soft ground.
[0024] In one possible embodiment of this disclosure, determining the terrain conditions of the robot's environment based on the height difference between the robot's swinging foot and supporting foot includes:
[0025] In response to the height difference between the robot's swinging foot and supporting foot being less than a second threshold, the terrain conditions of the robot's environment are updated to include hard ground; or,
[0026] In response to the height difference between the robot's swinging foot and supporting foot exceeding a third threshold, the terrain conditions of the robot's environment are updated to soft ground; or,
[0027] In response to the fact that the height difference between the robot's swing foot and support foot is not less than the second threshold and not greater than the third threshold, the terrain conditions of the robot's environment are kept unchanged.
[0028] In one possible embodiment of this disclosure, controlling the robot to move according to the terrain conditions includes:
[0029] In response to the terrain condition being hard ground, the robot is controlled to move according to a planned gait; or,
[0030] In response to the terrain being soft ground, the robot raises the highest point and landing point of its swing foot in the planned gait, and controls the robot to move according to the planned gait.
[0031] In one possible embodiment of this disclosure, the state of the leg joint includes joint angle and joint torque.
[0032] According to a second aspect of the present disclosure, a motion control device is provided, the device comprising:
[0033] The acquisition module is used to acquire the robot's motion data and the state of at least one leg joint during the robot's movement, and to determine whether the robot's swinging foot has landed based on the state of the at least one leg joint.
[0034] A determining module is configured to, in response to the landing of the robot's swinging foot, determine the relative position between the robot's swinging foot and supporting foot based on the motion data and the state of the at least one leg joint;
[0035] The control module is used to determine the terrain conditions of the robot's environment based on the relative position between the robot's swinging foot and supporting foot, and to control the robot to move according to the terrain conditions.
[0036] In one possible embodiment of this disclosure, when the acquisition module determines whether the robot's swinging foot has landed based on the state of the at least one leg joint, it is used to:
[0037] The contact force of the swing foot is determined based on the state of the joint on the leg where the swing foot of the robot is located.
[0038] Whether the swinging foot lands is determined based on the contact force of the swinging foot.
[0039] In one possible embodiment of this disclosure, the determining module is used to:
[0040] The position of each foot of the robot is determined based on the motion data and the state of the at least one leg joint;
[0041] The height difference between the swing foot and the support foot of the robot is determined based on the position of each foot of the robot.
[0042] In one possible embodiment of this disclosure, the robot includes multiple pairs of feet, wherein two feet in the pairs alternately serve as a supporting foot and a swinging foot;
[0043] The determining module is used for:
[0044] Based on the position of each foot of the robot, the height difference between the supporting foot and the swinging foot in at least one foot pair of the robot is determined, and the statistical result of the obtained at least one height difference is determined as the height difference between the swinging foot and the supporting foot of the robot.
[0045] In one possible embodiment of this disclosure, the determining module is used to:
[0046] In response to the landing of the swinging foot in any foot pair of the robot, the height difference between the swinging foot and the supporting foot in the foot pair is determined based on the positions of the two feet in the foot pair.
[0047] In one possible embodiment of this disclosure, the determining module is used to:
[0048] Based on the position of each foot of the robot, the height difference between the swing foot and the supporting foot of the robot in the current gait cycle is determined, and the height difference obtained in the current gait cycle is smoothed based on the height difference obtained in at least one previous gait cycle.
[0049] In one possible embodiment of this disclosure, when the control module determines the terrain conditions of the robot's environment based on the height difference between the robot's swinging foot and supporting foot, it is used to:
[0050] In response to the height difference between the robot's swinging foot and supporting foot being less than or equal to a first threshold, the terrain conditions of the robot's environment are determined to be hard ground; or,
[0051] In response to the height difference between the robot's swinging foot and supporting foot being greater than a first threshold, the terrain conditions of the robot's environment are determined to be soft ground.
[0052] In one possible embodiment of this disclosure, when the control module determines the terrain conditions of the robot's environment based on the height difference between the robot's swinging foot and supporting foot, it is used to:
[0053] In response to the height difference between the robot's swinging foot and supporting foot being less than a second threshold, the terrain conditions of the robot's environment are updated to include hard ground; or,
[0054] In response to the height difference between the robot's swinging foot and supporting foot exceeding a third threshold, the terrain conditions of the robot's environment are updated to soft ground; or,
[0055] In response to the fact that the height difference between the robot's swing foot and support foot is not less than the second threshold and not greater than the third threshold, the terrain conditions of the robot's environment are kept unchanged.
[0056] In one possible embodiment of this disclosure, when the control module controls the robot to move according to the terrain conditions, it is used to:
[0057] In response to the terrain condition being hard ground, the robot is controlled to move according to a planned gait; or,
[0058] In response to the terrain being soft ground, the robot raises the highest point and landing point of its swing foot in the planned gait, and controls the robot to move according to the planned gait.
[0059] In one possible embodiment of this disclosure, the state of the leg joint includes joint angle and joint torque.
[0060] According to a third aspect of the present disclosure, an electronic device is provided, the electronic device including a memory and a processor, the memory being used to store computer instructions executable on the processor, and the processor being used to implement the motion control method described in any of the above embodiments when executing the computer instructions.
[0061] According to a fourth aspect of the present disclosure, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the methods described in any of the above embodiments.
[0062] The technical solutions provided by the embodiments of this disclosure may include the following beneficial effects:
[0063] The motion control method provided in this disclosure acquires motion data and the state of at least one leg joint during robot movement, and determines whether the robot's swing foot has landed based on the state of the at least one leg joint. In response to the landing of the swing foot, the relative position between the swing foot and the supporting foot is determined based on the motion data and the state of the at least one leg joint. Finally, the terrain conditions of the robot's environment are determined based on the relative position between the swing foot and the supporting foot, and the robot's movement is controlled according to the terrain conditions. Since the relative position between the swing foot and the supporting foot when the swing foot touches the ground can characterize the terrain conditions to a certain extent, this method can determine the terrain conditions in real time during robot walking and move in a manner adapted to the terrain conditions, thereby improving the robot's adaptability to terrain and enhancing the stability of robot movement. Attached Figure Description
[0064] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with the invention and, together with the description, serve to explain the principles of the invention.
[0065] Figure 1 This is a schematic diagram of the robot architecture shown in an exemplary embodiment of this disclosure;
[0066] Figure 2 This is a flowchart illustrating a motion control method according to an exemplary embodiment of this disclosure;
[0067] Figure 3A and attached Figure 3B This is a schematic diagram illustrating the process of a swinging foot landing on a hard surface from swinging to landing, as shown in an exemplary embodiment of this disclosure.
[0068] Figure 4A and attached Figure 4B This is a schematic diagram illustrating the process of a swinging foot landing on a hard surface from swinging to landing, as shown in an exemplary embodiment of this disclosure.
[0069] Figure 5 This is a schematic diagram of vectors from the center of the robot's torso to each foot, illustrating an exemplary embodiment of this disclosure;
[0070] Figure 6A This is a schematic diagram of the gait trajectory of a robot walking on a hard surface, as shown in an exemplary embodiment of this disclosure;
[0071] Figure 6B This is a schematic diagram of the gait trajectory of a robot walking on a hard surface, as shown in an exemplary embodiment of this disclosure;
[0072] Figure 7 This is a schematic diagram of the structure of a motion control device shown in an exemplary embodiment of the present disclosure;
[0073] Figure 8 This is a structural block diagram of an electronic device illustrated in an exemplary embodiment of the present disclosure. Detailed Implementation
[0074] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this disclosure as detailed in the appended claims.
[0075] The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. The singular forms “a,” “the,” and “the” as used in this disclosure and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to and includes any and all possible combinations of one or more of the associated listed items.
[0076] It should be understood that although the terms first, second, third, etc., may be used in this disclosure to describe various information, such information should not be limited to these terms. These terms are used only to distinguish information of the same type from one another. For example, without departing from the scope of this disclosure, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to determination."
[0077] In recent years, robotics technology has been continuously developing, becoming increasingly intelligent and automated, with improvements in the richness, stability, and flexibility of its movements. Robots can replace users in performing specific tasks in their production and daily lives, thus bringing convenience. Legged robots can mimic the walking of animals or humans; for example, bipedal robots can imitate human walking, and quadrupedal robots can imitate the walking of animals such as dogs. However, due to complex terrain and other factors, the stability of legged robots during walking is relatively poor.
[0078] Based on this, in a first aspect, at least one embodiment of this disclosure provides a motion control method that can be applied to robots, such as bipedal robots (humanoid robots) and quadrupedal robots (robot dogs).
[0079] Next, taking a quadruped robot as an example, combined with the attached... Figure 1 A simplified explanation of the robot's structure is provided below. The quadruped robot has four legs, each with three degrees of freedom, for a total of 12 degrees of freedom. These degrees of freedom allow the robot to control the relative positions of each foot in the robot's coordinate system (i.e., the coordinate system shown in the attached diagram).
[0080] Please refer to the appendix. Figure 2 The example illustrates the flow of the method, including steps S201 to S203.
[0081] In step S201, during the robot's movement, motion data of the robot and the state of at least one leg joint are acquired, and it is determined whether the robot's swinging foot has landed based on the state of the at least one leg joint.
[0082] The leg joint can be equipped with a position sensor that can measure the joint angle; furthermore, the joint torque can be calculated by measuring the current of the joint motor. In other words, the state of the leg joint can include joint angle, joint torque, etc.
[0083] The robot has at least one motion sensor installed on its torso, which can collect motion data. For example, an IMU sensor is installed at the center of the robot's torso to collect IMU data. The IMU sensor includes an accelerometer and an angular velocity sensor, which can measure the acceleration on at least three coordinate axes and the angular velocity around each coordinate axis. In other words, the IMU data can include the aforementioned acceleration, angular velocity, etc.
[0084] In step S202, in response to the landing of the robot's swinging foot, the relative position between the robot's swinging foot and supporting foot is determined based on the motion data and the state of the at least one leg joint.
[0085] The relative position between the swing foot and the supporting foot can be considered as the height difference between them. The applicant discovered that the height difference between the swing foot and the supporting foot varies depending on the terrain. For example, the height difference is small or even zero when walking on hard ground, but large when walking on soft ground. This is because the supporting foot has sunk into the soft ground and is below the surface.
[0086] In step S203, the terrain conditions of the robot's environment are determined based on the relative position between the robot's swinging foot and supporting foot, and the robot is controlled to move according to the terrain conditions.
[0087] For example, the terrain conditions of the robot's environment are determined based on the relative position of the swing foot and the supporting foot when the robot walks on different terrain conditions, and the relative position between the swing foot and the supporting foot determined in step S202.
[0088] The motion control method provided in this disclosure acquires motion data and the state of at least one leg joint during robot movement, and determines whether the robot's swing foot has landed based on the state of the at least one leg joint. In response to the landing of the swing foot, the relative position between the swing foot and the supporting foot is determined based on the motion data and the state of the at least one leg joint. Finally, the terrain conditions of the robot's environment are determined based on the relative position between the swing foot and the supporting foot, and the robot's movement is controlled according to the terrain conditions. Since the relative position between the swing foot and the supporting foot when the swing foot touches the ground can characterize the terrain conditions to a certain extent, this method can determine the terrain conditions in real time during robot walking and move in a manner adapted to the terrain conditions, thereby improving the robot's adaptability to terrain and enhancing the stability of robot movement.
[0089] In some embodiments of this disclosure, in step S201, it can be determined whether the robot's swinging foot has landed in the following manner:
[0090] First, based on the state of the joints on the leg where the swing foot of the robot is located, the contact force of the swing foot is determined. The contact force of the swing foot can be an external force acting on the sole of the foot. For example, the contact force F of the swing foot can be determined according to the following formula. i :
[0091]
[0092] In the above formula, τ is the joint torque, q is the joint angle, and J is the joint torque. i (q) is the Jacobian matrix corresponding to the foot force, and R represents the rotation matrix from the local coordinate system of the robot (e.g., the coordinate system with the robot's torso as the origin) to the world coordinate system.
[0093] Next, it is determined whether the swing foot has landed based on the contact force of the swing foot. For example, if the contact force of the swing foot is greater than a contact force threshold (e.g., it can be 0), it is determined that the swing foot has landed; otherwise, it is determined that the swing foot has not landed.
[0094] Please refer to the appendix. Figure 3A and attached Figure 3B The process of a swinging leg swinging and landing on a hard surface is shown, and the robot shown is attached to it. Figure 1 The quadruped robot shown. (Attached) Figure 3AThe right foreleg and left hind leg are the supporting feet, which generate the supporting force F. FR F RL The feet on the two legs, with the left front leg and right hind leg being the swinging feet, i.e., the feet on the two legs that do not touch the ground; (attached) Figure 3B The supporting force F is generated after the left front leg and right hind leg touch the ground. FL F RR .
[0095] Please refer to the appendix. Figure 4A and attached Figure 4B The process of the swinging leg moving from the soft ground to landing, as shown, is illustrated in the diagram. The robot shown is an attached... Figure 1 The quadruped robot shown. (Attached) Figure 4A The right foreleg and left hind leg are the supporting feet, which generate the supporting force F. FR F RL The feet on the two legs, with the left front leg and right hind leg being the swinging feet, i.e., the feet on the two legs that do not touch the ground; (attached) Figure 4B The supporting force F is generated after the left front leg and right hind leg touch the ground. FL F RR .
[0096] This step can obtain the joint angle and joint torque of the left front leg and right hind leg in real time when they are not touching the ground, so as to obtain the support force of the left front leg and right hind leg in real time, and determine the landing of the swing foot when the support force is greater than the support force threshold.
[0097] In some embodiments of this disclosure, the height difference between the robot's swing leg and supporting leg can be determined in step S202 in the following manner:
[0098] First, the position of each foot of the robot is determined based on the motion data and the state of at least one leg joint. For example, the position and orientation of the torso where the IMU sensor is located, as well as the position of each foot, can be calculated based on kinematic equations such as anterior kinematics, according to the IMU data and the state of at least one leg joint. The position of each foot can be represented by its coordinates in the world coordinate system; or by a vector from the torso to the foot. Please refer to the appendix. Figure 5 , attached Figure 1 The positions of the four legs in the quadruped robot shown can be expressed as r in the world coordinate system using the vector from the center of the robot's torso to the end of each leg. i (i = FL, FR, RL, RR) is used to represent the front leg, right front leg, left hind leg, and right hind leg, respectively.
[0099] Next, based on the position of each foot of the robot, the height difference between the swing foot and the supporting foot of the robot is determined.
[0100] It should be understood that when the robot comprises multiple pairs of feet, with two feet in each pair alternately serving as a supporting foot and a swinging foot, the height difference between the supporting foot and the swinging foot in at least one pair of feet (e.g., each pair) can be determined based on the position of each foot of the robot. The statistical result of the obtained height difference (e.g., average, maximum, minimum, median, etc., hereinafter described using the average as an example) is then determined as the height difference between the swinging foot and the supporting foot of the robot. For example, see attached... Figure 1 The quadruped robot shown has its left and right forelegs forming one foot pair, and its left and right hind legs forming another foot pair. The positions of the four feet are expressed as r in the world coordinate system using the vector from the robot's torso center to each foot tip. i (i = FL, FR, RL, RR) is used to represent this; in the appendix Figure 3B Or attach Figure 4B In the scenario shown where the swinging foot lands (i.e., just touches the ground), the height difference l between the two forelegs can be calculated using the following formula. F The height difference between the feet on the two hind legs R :
[0101] l F =S z (r FL -r FR )
[0102] l R =S z (r RR -r RL )
[0103]
[0104] Then calculate the average height difference l between the supporting foot and the swinging foot according to the following formula. n :
[0105]
[0106] If the height difference between the supporting foot and the swinging foot in multiple foot pairs is calculated in the above example, then in response to the landing of the swinging foot in any foot pair of the robot, the height difference between the swinging foot and the supporting foot in the foot pair can be determined based on the positions of the two feet in the foot pair. That is, if the swinging feet in multiple foot pairs do not land simultaneously due to errors or other reasons, the height difference between the swinging foot and the supporting foot in a certain foot pair can be calculated when the swinging foot lands, until the height difference between the swinging foot and the supporting foot in a specific number of foot pairs (e.g., all foot pairs or a certain proportion of foot pairs) is calculated and then the average value is taken.
[0107] For example, this step can determine the height difference between the swing foot and the supporting foot of the robot in the current gait cycle based on the position of each foot of the robot; and smooth the height difference obtained in the current gait cycle based on the height difference obtained in at least one previous gait cycle, for example, by determining the average of the height value obtained in the current gait cycle and the height difference obtained in at least one previous gait cycle as the smoothing result.
[0108] A time window of N steps can be preset to buffer the height difference between the swinging foot and the supporting foot across N gait cycles, including the current gait cycle. The average of these N height differences is then used as the smoothed result of the height difference obtained in the current gait cycle. Specifically, the height difference obtained in the current gait cycle is smoothed according to the following formula:
[0109]
[0110] In the above formula, l est To smooth the results, l n The height difference is obtained during the nth gait cycle.
[0111] The height difference between the swing foot and the supporting foot in each gait cycle can be determined in the manner provided in the previous embodiment, or other methods can be used to determine the height difference between the swing foot and the supporting foot in each gait cycle. This disclosure does not limit this.
[0112] In some embodiments of this disclosure, the terrain conditions of the robot's environment can be determined in step S203 in the following manner:
[0113] If the height difference obtained in the current gait cycle is not smoothed in step S202, the terrain conditions of the robot's environment can be determined based on the height difference obtained in the current gait cycle; if the height difference obtained in the current gait cycle is smoothed in step S202, the terrain conditions of the robot's environment can be determined based on the smoothing result of the height difference obtained in the current gait cycle.
[0114] Topographical conditions can include both hard and soft ground. Please refer to the appendix. Figure 3A and attached Figure 3B The process shown, and the appendix Figure 4A and attached Figure 4B The applicant observed that when the robot walks on a hard surface, the height difference between its swing foot and supporting foot is small, while when the robot walks on a soft surface, the height difference between its swing foot and supporting foot is large.
[0115] For example, step S203 may determine that the terrain conditions of the robot's environment are hard ground in response to the height difference between the robot's swing foot and supporting foot being less than or equal to a first threshold; or, in response to the height difference between the robot's swing foot and supporting foot being greater than the first threshold, determine that the terrain conditions of the robot's environment are soft ground. That is, this example uses a single threshold to determine whether the terrain conditions are hard or soft ground.
[0116] For another example, step S203 may update the terrain conditions of the robot's environment to hard ground in response to the height difference between the robot's swing foot and supporting foot being less than a second threshold; or, in response to the height difference between the robot's swing foot and supporting foot being greater than a third threshold, update the terrain conditions of the robot's environment to soft ground; or, in response to the height difference between the robot's swing foot and supporting foot being neither less than the second threshold nor greater than the third threshold, keep the terrain conditions of the robot's environment unchanged. In other words, this example uses dual thresholds to determine whether the terrain conditions are hard or soft ground, thereby avoiding frequent changes in terrain conditions due to the height difference fluctuating around the threshold during gait cycle updates, and improving the accuracy of terrain determination results.
[0117] Among them, the robot's gait trajectory when walking on hard ground is as follows: Figure 6A As shown, the robot's gait trajectory when walking on soft ground is as follows: Figure 6B As shown, the applicant discovered that when the robot walks on soft ground, its supporting legs sink into the ground. Therefore, it needs to switch to swinging legs and swing them to a higher height to avoid tripping on the ground.
[0118] In some embodiments of this disclosure, when controlling the robot to move according to the terrain conditions in step S203, the robot may be controlled to move according to the planned gait if the terrain conditions are hard ground; or, if the terrain conditions are soft ground, the robot may raise the highest point and landing point of the swing foot in the planned gait and control the robot to move according to the planned gait.
[0119] By raising the highest point of the swing leg, the robot can avoid tripping over the ground during the swinging motion after the supporting leg switches to the swing leg; by raising the landing point of the swing leg, it can avoid the swing leg embedding itself into the ground upon landing. Therefore, the stability and safety of the robot when walking on soft ground can be improved.
[0120] According to a second aspect of the embodiments of this disclosure, a motion control device is provided; please refer to the appendix. Figure 7 The device includes:
[0121] The acquisition module 701 is used to acquire the motion data of the robot and the state of at least one leg joint during the robot's movement, and to determine whether the robot's swinging foot has landed based on the state of the at least one leg joint.
[0122] The determining module 702 is configured to determine the relative position between the robot's swinging foot and supporting foot in response to the landing of the robot's swinging foot, based on the motion data and the state of the at least one leg joint.
[0123] The control module 703 is used to determine the terrain conditions of the robot's environment based on the relative position between the robot's swinging foot and supporting foot, and to control the robot to move according to the terrain conditions.
[0124] In one possible embodiment of this disclosure, when the acquisition module determines whether the robot's swinging foot has landed based on the state of the at least one leg joint, it is used to:
[0125] The contact force of the swing foot is determined based on the state of the joint on the leg where the swing foot of the robot is located.
[0126] Whether the swinging foot lands is determined based on the contact force of the swinging foot.
[0127] In one possible embodiment of this disclosure, the determining module is used to:
[0128] The position of each foot of the robot is determined based on the motion data and the state of the at least one leg joint;
[0129] The height difference between the swing foot and the support foot of the robot is determined based on the position of each foot of the robot.
[0130] In one possible embodiment of this disclosure, the robot includes multiple pairs of feet, wherein two feet in the pairs alternately serve as a supporting foot and a swinging foot;
[0131] The determining module is used for:
[0132] Based on the position of each foot of the robot, the height difference between the supporting foot and the swinging foot in at least one foot pair of the robot is determined, and the statistical result of the obtained at least one height difference is determined as the height difference between the swinging foot and the supporting foot of the robot.
[0133] In one possible embodiment of this disclosure, the determining module is used to:
[0134] In response to the landing of the swinging foot in any foot pair of the robot, the height difference between the swinging foot and the supporting foot in the foot pair is determined based on the positions of the two feet in the foot pair.
[0135] In one possible embodiment of this disclosure, the determining module is used to:
[0136] Based on the position of each foot of the robot, the height difference between the swing foot and the supporting foot of the robot in the current gait cycle is determined, and the height difference obtained in the current gait cycle is smoothed based on the height difference obtained in at least one previous gait cycle.
[0137] In one possible embodiment of this disclosure, when the control module determines the terrain conditions of the robot's environment based on the height difference between the robot's swinging foot and supporting foot, it is used to:
[0138] In response to the height difference between the robot's swinging foot and supporting foot being less than or equal to a first threshold, the terrain conditions of the robot's environment are determined to be hard ground; or,
[0139] In response to the height difference between the robot's swinging foot and supporting foot being greater than a first threshold, the terrain conditions of the robot's environment are determined to be soft ground.
[0140] In one possible embodiment of this disclosure, when the control module determines the terrain conditions of the robot's environment based on the height difference between the robot's swinging foot and supporting foot, it is used to:
[0141] In response to the height difference between the robot's swinging foot and supporting foot being less than a second threshold, the terrain conditions of the robot's environment are updated to include hard ground; or,
[0142] In response to the height difference between the robot's swinging foot and supporting foot exceeding a third threshold, the terrain conditions of the robot's environment are updated to soft ground; or,
[0143] In response to the fact that the height difference between the robot's swing foot and support foot is not less than the second threshold and not greater than the third threshold, the terrain conditions of the robot's environment are kept unchanged.
[0144] In one possible embodiment of this disclosure, when the control module controls the robot to move according to the terrain conditions, it is used to:
[0145] In response to the terrain condition being hard ground, the robot is controlled to move according to a planned gait; or,
[0146] In response to the terrain being soft ground, the robot raises the highest point and landing point of its swing foot in the planned gait, and controls the robot to move according to the planned gait.
[0147] In one possible embodiment of this disclosure, the state of the leg joint includes joint angle and joint torque.
[0148] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments of the method in the first aspect, and will not be elaborated upon here.
[0149] According to a third aspect of the embodiments of this disclosure, please refer to the appendix. Figure 8 The diagram illustrates, for example, a block diagram of an electronic device. For instance, device 800 could be a robot, mobile phone, computer, digital broadcasting terminal, messaging device, game console, tablet device, medical device, fitness equipment, personal digital assistant, etc.
[0150] Reference Figure 8 The device 800 may include one or more of the following components: a processing component 802, a memory 804, a power supply component 806, a multimedia component 808, an audio component 810, an input / output (I / O) interface 812, a sensor component 814, and a communication component 816.
[0151] Processing component 802 typically controls the overall operation of device 800, such as operations associated with display, telephone calls, data communication, camera operation, and recording. Processing component 802 may include one or more processors 820 to execute instructions to complete all or part of the steps of the methods described above. Furthermore, processing component 802 may include one or more modules to facilitate interaction between processing component 802 and other components. For example, processing component 802 may include a multimedia module to facilitate interaction between multimedia component 808 and processing component 802.
[0152] Memory 804 is configured to store various types of data to support the operation of device 800. Examples of this data include instructions for any application or method operating on device 800, contact data, phonebook data, messages, pictures, videos, etc. Memory 808 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.
[0153] The power supply component 806 provides power to the various components of the device 800. The power supply component 806 may include a power management system, one or more power sources, and other components associated with generating, managing, and distributing power to the device 800.
[0154] Multimedia component 808 includes a screen that provides an output interface between the device 800 and the user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touchscreen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touch, swipe, and gestures on the touch panel. The touch sensors may sense not only the boundaries of the touch or swipe action but also the duration and pressure associated with the touch or swipe operation. In some embodiments, multimedia component 808 includes a front-facing camera and / or a rear-facing camera. When the device 800 is in an operating mode, such as a shooting mode or a video mode, the front-facing camera and / or the rear-facing camera may receive external multimedia data. Each front-facing camera and rear-facing camera may be a fixed optical lens system or have focal length and optical zoom capabilities.
[0155] Audio component 810 is configured to output and / or input audio signals. For example, audio component 810 includes a microphone (MIC) configured to receive external audio signals when device 800 is in an operating mode, such as call mode, recording mode, and voice recognition mode. The received audio signals may be further stored in memory 804 or transmitted via communication component 816. In some embodiments, audio component 810 also includes a speaker for outputting audio signals.
[0156] I / O interface 812 provides an interface between processing component 802 and peripheral interface modules, such as keyboards, click wheels, buttons, etc. These buttons may include, but are not limited to, home buttons, volume buttons, power buttons, and lock buttons.
[0157] Sensor assembly 814 includes one or more sensors for providing status assessments of various aspects of device 800. For example, sensor assembly 814 can detect the on / off state of device 800, the relative positioning of components such as the display and keypad of device 800, changes in the position of device 800 or a component of device 800, the presence or absence of user contact with device 800, the orientation or acceleration / deceleration of device 800, and temperature changes of device 800. Sensor assembly 814 may also include a proximity sensor configured to detect the presence of nearby objects without any physical contact. Sensor assembly 814 may also include a light sensor, such as a CMOS or CCD image sensor, for use in imaging applications. In some embodiments, sensor assembly 814 may also include an accelerometer, a gyroscope, a magnetometer, a pressure sensor, or a temperature sensor.
[0158] Communication component 816 is configured to facilitate wired or wireless communication between device 800 and other devices. Device 800 can access wireless networks based on communication standards, such as WiFi, 2G or 3G, 4G or 5G, or combinations thereof. In one exemplary embodiment, communication component 816 receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, communication component 816 also includes a near-field communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID) technology, Infrared Data Association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
[0159] In an exemplary embodiment, device 800 may be implemented by one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components to perform the motion control method of the aforementioned electronic device.
[0160] Fourthly, in exemplary embodiments, this disclosure also provides a non-transitory computer-readable storage medium including instructions, such as a memory including instructions, which can be executed by a processor of a device to perform the motion control method of the electronic device. For example, the non-transitory computer-readable storage medium may be a ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, and optical data storage device, etc.
[0161] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the disclosure herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the following claims.
[0162] It should be understood that this disclosure is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this disclosure is limited only by the appended claims.
Claims
1. A motion control method, characterized in that, The method includes: During the robot's movement, the robot's motion data and the state of at least one leg joint are acquired, and the state of the robot's swinging foot is determined based on the state of the at least one leg joint. In response to the landing of the robot's swinging foot, the relative position between the robot's swinging foot and supporting foot is determined based on the motion data and the state of the at least one leg joint; The terrain conditions of the robot's environment are determined based on the relative position between the robot's swinging foot and supporting foot, and the robot's movement is controlled according to the terrain conditions. Determining the relative position between the robot's swinging foot and supporting foot based on the motion data and the state of at least one leg joint includes: The position of each foot of the robot is determined based on the motion data and the state of the at least one leg joint; Based on the position of each foot of the robot, determine the height difference between the swinging foot and the supporting foot of the robot that has just landed.
2. The motion control method according to claim 1, characterized in that, Determining whether the robot's swinging foot has landed based on the state of at least one leg joint includes: The contact force of the swing foot is determined based on the state of the joint on the leg where the swing foot of the robot is located. Whether the swinging foot lands is determined based on the contact force of the swinging foot.
3. The motion control method according to claim 1, characterized in that, The robot includes multiple pairs of feet, in which two feet alternately serve as a supporting foot and a swinging foot; Determining the height difference between the swing foot and the supporting foot of the robot based on the position of each foot includes: Based on the position of each foot of the robot, the height difference between the supporting foot and the swinging foot in at least one foot pair of the robot is determined, and the statistical result of the obtained at least one height difference is determined as the height difference between the swinging foot and the supporting foot of the robot.
4. The motion control method according to claim 3, characterized in that, In response to the landing of the robot's swinging foot, determining the height difference between the robot's swinging foot and supporting foot based on the position of each foot includes: In response to the landing of the swinging foot in any foot pair of the robot, the height difference between the swinging foot and the supporting foot in the foot pair is determined based on the positions of the two feet in the foot pair.
5. The motion control method according to claim 1, characterized in that, Determining the height difference between the swing foot and the supporting foot of the robot based on the position of each foot includes: Based on the position of each foot of the robot, the height difference between the swing foot and the supporting foot of the robot in the current gait cycle is determined, and the height difference obtained in the current gait cycle is smoothed based on the height difference obtained in at least one previous gait cycle.
6. The motion control method according to claim 1, characterized in that, The step of determining the terrain conditions of the robot's environment based on the height difference between the robot's swinging foot and supporting foot includes: In response to the height difference between the robot's swinging foot and supporting foot being less than or equal to a first threshold, the terrain conditions of the robot's environment are determined to be hard ground; or, In response to the height difference between the robot's swinging foot and supporting foot being greater than a first threshold, the terrain conditions of the robot's environment are determined to be soft ground.
7. The motion control method according to claim 1, characterized in that, The step of determining the terrain conditions of the robot's environment based on the height difference between the robot's swinging foot and supporting foot includes: In response to the height difference between the robot's swinging foot and supporting foot being less than a second threshold, the terrain conditions of the robot's environment are updated to include hard ground; or, In response to the height difference between the robot's swinging foot and supporting foot exceeding a third threshold, the terrain conditions of the robot's environment are updated to soft ground; or, In response to the fact that the height difference between the robot's swing foot and support foot is not less than the second threshold and not greater than the third threshold, the terrain conditions of the robot's environment are kept unchanged.
8. The motion control method according to claim 1, characterized in that, The step of controlling the robot to move according to the terrain conditions includes: In response to the terrain condition being hard ground, the robot is controlled to move according to a planned gait; or, In response to the terrain being soft ground, the robot raises the highest point and landing point of its swing foot in the planned gait, and controls the robot to move according to the planned gait.
9. The motion control method according to any one of claims 1 to 8, characterized in that, The state of the leg joints includes joint angles and joint torques.
10. A motion control device, characterized in that, The device includes: The acquisition module is used to acquire the robot's motion data and the state of at least one leg joint during the robot's movement, and to determine whether the robot's swinging foot has landed based on the state of the at least one leg joint. A determining module is configured to, in response to the landing of the robot's swinging foot, determine the relative position between the robot's swinging foot and supporting foot based on the motion data and the state of the at least one leg joint; The control module is used to determine the terrain conditions of the robot's environment based on the relative position between the robot's swinging foot and supporting foot, and to control the robot to move according to the terrain conditions. The determining module is used for: The position of each foot of the robot is determined based on the motion data and the state of the at least one leg joint; Based on the position of each foot of the robot, determine the height difference between the swinging foot and the supporting foot of the robot that has just landed.
11. An electronic device, characterized in that, The electronic device includes a memory and a processor, the memory being used to store computer instructions that can be executed on the processor, and the processor being used to implement the method of any one of claims 1 to 9 when executing the computer instructions.
12. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the program is executed by the processor, it implements the method of any one of claims 1 to 9.
Citation Information
Patent Citations
Motion planning method of quadruped robot on complex terrain
CN107538490A
Footstep contact detection
CN114401887A