System and method for controlling a multi-legged robot

By decoupling the control of the torso and foot reference trajectories and combining geometric methods to detect and correct imbalances, the problems of complexity and energy consumption in the control of multi-legged robots are solved, and efficient and stable task execution is achieved.

CN122180628APending Publication Date: 2026-06-09MITSUBISHI ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-20
Publication Date
2026-06-09

AI Technical Summary

Technical Problem

Controlling multi-legged robots to perform tasks involves expensive and complex real-time calculation of torso trajectory and foot reference trajectories, increasing transportation costs and energy consumption. Furthermore, pre-determining trajectories is difficult to achieve in complex environments, and imbalance detection relies on machine learning or nonlinear optimization models, leading to reduced stability.

Method used

By decoupling the torso reference trajectory and the foot reference trajectory, the posture controller and the swing controller are calculated independently, and the imbalance is detected by combining geometric methods. The imbalance is corrected by measuring the joint position by sensors, which reduces the computational complexity and energy consumption.

Benefits of technology

It enables efficient and stable control of multi-legged robots in complex environments, reducing transportation costs and energy consumption, and improving task completion efficiency and stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122180628A_ABST
    Figure CN122180628A_ABST
Patent Text Reader

Abstract

The present disclosure discloses a system and method for controlling a robot to perform a task. The robot is a legged robot that includes a torso and a plurality of legs for supporting the torso above a ground surface. The system is configured to collect a reference trajectory that defines a sequence of states of the robot performing the task, and to execute a stance controller configured to compute and apply reaction forces of the plurality of legs of the robot in contact with the ground surface to push the torso based on the reference trajectory. The system is also configured to execute a swing controller of a plurality of swing controllers to swing a leg in response to detecting an imbalance in relative positions between the torso of the robot and the feet of the legs of the robot that is indicative of an imbalance in support of the torso of the robot above the ground surface.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to robotic locomotion, and more specifically to a system and method for controlling the robotic locomotion of a multi-legged robot. Background Technology

[0002] Mobile robots are widely used to perform a variety of tasks, such as warehouse logistics, search and rescue operations, and transporting loads. Different types of mobile robots are employed to perform different tasks. For example, wheeled robots are particularly used to perform various tasks in environments with smooth terrain, such as warehouses, offices, and roads. The ability to move laterally on wheels allows wheeled robots to achieve high speeds on smooth surfaces. On the other hand, multi-legged robots move by combining the motion of multiple legs and the body, thus providing greater mobility, especially on rough surfaces such as uneven terrain, stairs, grass, and forests.

[0003] However, achieving higher levels of mobility and precise motion is challenging because coordinating and synchronizing the body motion of the multi-legged robot and the individual leg motions of its legs is crucial for performing various tasks. Furthermore, determining the body reference trajectory for controlling the body motion and the leg reference trajectories for controlling the individual leg motions in real time is computationally expensive and complex. Additionally, pre-determining the body and leg reference trajectories is practically infeasible, as performing various tasks requires simultaneous, real-time execution of traversal operations on smooth or rough surfaces, stabilization of the multi-legged robot, and collision prevention to avoid unwanted collisions with objects. Moreover, collisions between the multiple legs of the multi-legged robot and the ground increase energy consumption, thereby increasing transportation costs.

[0004] Therefore, there is a need for a system and method for effectively controlling multi-legged robots to perform a variety of tasks. Summary of the Invention

[0005] One embodiment aims to provide a system and method for controlling a multi-legged robot to perform tasks, such as search and rescue, warehouse logistics, infrastructure inspection, security, and surveillance. The multi-legged robot includes a torso and multiple legs for supporting the torso above the ground. The multi-legged robot is configured to perform the task by following a reference trajectory. Furthermore, the system includes a posture controller and a swing controller. The posture controller is configured to control the torso of the multi-legged robot to perform the task. The swing controller is configured to control the legs of the multi-legged robot to perform the task.

[0006] In some implementations, the posture controller is also configured to determine a torso reference trajectory for controlling the torso. The posture controller is further configured to control the torso to follow the reference trajectory based on the torso reference trajectory. Additionally, a swing controller is further controlled to determine foot reference trajectories, thereby controlling the legs of the multi-legged robot. The posture controller is also configured to control the legs of the multi-legged robot to follow the reference trajectory based on the foot reference trajectories.

[0007] However, simultaneously calculating torso and foot reference trajectories in real time to control multiple legs to perform tasks is computationally expensive. Furthermore, simultaneous calculation of torso and foot reference trajectories increases transportation costs (COT), task completion time, and energy consumption.

[0008] To address this, some implementations are based on the understanding that the torso reference trajectory associated with the torso of the multi-legged robot and the foot reference trajectory associated with the legs of the multi-legged robot can be decoupled to overcome the aforementioned problems. Furthermore, due to the decoupling of the torso reference trajectory and the foot reference trajectory, the swing controller does not depend on changes in space commanded by the reference trajectory.

[0009] Some implementations are based on the objective of executing a swing controller in response to the execution of a posture controller, thereby decoupling the trunk reference trajectory and the foot reference trajectory. In other words, firstly, the posture controller is configured to determine a trunk reference trajectory for controlling the trunk. The posture controller is also configured to control the trunk to follow the trunk reference trajectory based on it. Therefore, in response to the execution of the posture controller, the swing controller determines the foot reference trajectory to control the legs to follow it.

[0010] In some implementations, the system may include multiple swing controllers to control multiple legs of the multi-legged robot. Furthermore, each of the multiple legs is associated with a corresponding swing controller among the multiple swing controllers. The corresponding swing controller is configured to determine a corresponding foot reference trajectory to control the corresponding leg among the multiple legs.

[0011] Therefore, some implementations are based on the objective of executing the swing controller in response to the execution of another swing controller among a plurality of swing controllers, in order to decouple the torso reference trajectory associated with the torso of the multi-legged robot from the reference trajectory associated with the plurality of swing controllers.

[0012] Furthermore, some implementations are based on the understanding that a swing controller is executed in response to the execution of a posture controller and the detection of an imbalance in the support of the multi-legged robot's torso above the ground. In some implementations, the relative position between the multi-legged robot's torso and the feet of the legs indicates an imbalance in the support of the multi-legged robot's torso above the ground. In some embodiments of the invention, the imbalance corresponds to a state of the robot detected based on the relative position between the robot's torso and the feet of at least one leg, indicating an imbalance in the support of the robot's torso above the ground. In some embodiments of the invention, an imbalance is specifically detected if the feet of the legs are outside a shape obtained by projecting the area around the connection point between the leg and the robot's torso onto the ground.

[0013] In some implementations, imbalance can be addressed by detecting it using a machine learning model or a nonlinear optimization model during the task. However, detecting imbalance using such models is computationally expensive due to their complexity. Furthermore, the complexity of these models increases latency during the task, which can potentially reduce the stability of the multi-legged robot.

[0014] Therefore, some implementations are based on using geometric methods to detect imbalances. Geometric methods overcome the complexity of machine learning and nonlinear optimization models because they are simpler to implement. As a result, geometric methods reduce latency in tasks, which can increase the stability of multi-legged robots.

[0015] Therefore, some implementations aim to detect imbalances based on measurements of the relative positions of the joints of multiple legs. Additionally or alternatively, some implementations aim to detect imbalances based on measurements of the relative positions of the joints of the legs corresponding to a velocity defined by a reference trajectory.

[0016] Some implementations are based on the understanding that imbalances can be detected outside a shape (e.g., an ellipse, a circle, a polygon, etc.) centered on the projection of the multi-legged robot's hip position onto the ground. Furthermore, one or more dimensions of said shape are functions of a velocity defined by said reference trajectory.

[0017] Additionally, some implementations execute a predetermined imbalance function to detect imbalance based on the relative positions of the leg joints. Furthermore, the predetermined imbalance function can detect imbalance based on input including measurements from sensors indicating the relative positions of the leg joints. These sensor measurements include, but are not limited to, joint angle measurements, joint velocity measurements, and joint torque. Based on this input, the predetermined imbalance function generates a binary output to indicate the detection of imbalance.

[0018] Furthermore, after detecting an imbalance via a predetermined imbalance function, some implementations estimate a swaying motion to correct the detected imbalance. Additionally or alternatively, based on the estimated swaying motion, one or more commands are generated to one or more actuators of the multi-legged robot. Furthermore, based on said one or more commands, the one or more actuators cause the legs to sway to correct the imbalance.

[0019] Some implementations are based on the purpose of correcting detected imbalances by moving the feet of the legs at the center of the shape. In some implementations, the feet of the legs are moved at the intended center of the shape based on the speed of the multi-legged robot to correct the detected imbalances.

[0020] Therefore, one embodiment discloses a control system for controlling a robot to perform a task, wherein the robot is a legged robot including a torso and a plurality of legs for supporting the torso above the ground, wherein the control system includes a processor; and a memory having instructions stored thereon, the instructions, when executed by the processor, causing the control system to: collect a reference trajectory defining a sequence of states in time and space for the robot to perform a task; execute a posture controller configured to calculate, based on the reference trajectory, the reaction forces of the plurality of legs of the robot in contact with the ground and apply the reaction forces to push the torso of the robot; and execute a swing controller among a plurality of swing controllers to swing one of the plurality of legs in response to detecting an imbalance in the support of the robot's torso above the ground, relative to the position of the robot's torso and the feet of the legs.

[0021] Therefore, another embodiment discloses a control method for controlling a robot to perform a task, wherein the robot is a legged robot including a torso and a plurality of legs for supporting the torso above the ground, the control method comprising the steps of: collecting a reference trajectory defining a sequence of states of the robot in time and space as it performs the task; executing a posture controller configured to calculate reaction forces of the plurality of legs of the robot in contact with the ground based on the reference trajectory and apply the reaction forces to push the torso of the robot; and executing a swing controller among a plurality of swing controllers to swing the legs in response to detecting an imbalance in the support of the robot's torso above the ground, relative to the torso and the feet of the legs. Attached Figure Description

[0022] [ Figure 1A ]

[0023] Figure 1A A schematic construction of a multi-legged robot according to some embodiments of the present disclosure is illustrated.

[0024] [ Figure 1B ]

[0025] Figure 1B A schematic diagram illustrating the principle of decoupling the posture controller and the swing controller according to some embodiments of the present disclosure is shown.

[0026] [ Figure 1C ]

[0027] Figure 1C A schematic diagram illustrating a method for controlling a multi-legged robot based on the decoupling of a posture controller and a swing controller, according to some embodiments of the present disclosure, is shown.

[0028] [ Figure 2 ]

[0029] Figure 2 A block diagram illustrating a control system for controlling a multi-legged robot according to some embodiments of the present disclosure is shown.

[0030] [ Figure 3A ]

[0031] Figure 3A A schematic diagram illustrating a method for collecting reference trajectories according to some embodiments of the present disclosure is shown.

[0032] [ Figure 3B ]

[0033] Figure 3B A schematic diagram illustrating an action controller according to some embodiments of the present disclosure is shown.

[0034] [ Figure 3C ]

[0035] Figure 3C A schematic diagram illustrating an implementation of the swing controller according to some embodiments of the present disclosure is shown.

[0036] [ Figure 4A ]

[0037] Figure 4A A flowchart illustrating the execution of a swing controller according to some embodiments of the present disclosure is provided.

[0038] [ Figure 4B ]

[0039] Figure 4B A schematic diagram illustrating an implementation of the swing controller according to some embodiments of the present disclosure is shown.

[0040] [ Figure 4C ]

[0041] Figure 4C A flowchart for detecting imbalances according to some embodiments of the present disclosure is illustrated.

[0042] [ Figure 4D ]

[0043] Figure 4D A schematic diagram illustrating an implementation of the swing controller according to some embodiments of the present disclosure is shown.

[0044] [ Figure 5A ]

[0045] Figure 5A A schematic diagram illustrating an implementation of an oscillation controller based on an imbalance function, according to some embodiments of the present disclosure, is shown.

[0046] [ Figure 5B ]

[0047] Figure 5B A schematic diagram illustrating one or more dimensions of a shape based on a velocity function, according to some embodiments of the present disclosure, is shown.

[0048] [ Figure 5C ]

[0049] Figure 5C A schematic diagram illustrating an imbalance detection based on shape projection according to some embodiments of the present disclosure is shown.

[0050] [ Figure 5D ]

[0051] Figure 5D A schematic diagram illustrating an imbalance detection based on shape projection according to some embodiments of the present disclosure is shown.

[0052] [ Figure 6A ]

[0053] Figure 6A A flowchart illustrating a method for performing a rotational gait according to some embodiments of the present disclosure is shown.

[0054] [ Figure 6B ]

[0055] Figure 6B A schematic diagram illustrating a method for performing a rotational gait according to some embodiments of the present disclosure is shown.

[0056] [ Figure 6C ]

[0057] Figure 6C A schematic diagram illustrating a method for performing a rotational gait according to some embodiments of the present disclosure is shown.

[0058] [ Figure 7A-1 ]

[0059] Figure 7A-1 A flowchart illustrating a walking gait according to some embodiments of the present disclosure is shown.

[0060] [ Figure 7A-2 ]

[0061] Figure 7A-2 A flowchart illustrating a walking gait according to some embodiments of the present disclosure is shown.

[0062] [ Figure 7B ]

[0063] Figure 7B A schematic diagram illustrating a walking gait according to some embodiments of the present disclosure is shown.

[0064] [ Figure 8 ]

[0065] Figure 8 Step planner algorithms according to some embodiments of the present disclosure are illustrated.

[0066] [ Figure 9A ]

[0067] Figure 9A A schematic diagram illustrating an method for detecting imbalance in a six-legged robot according to some embodiments of the present disclosure is shown.

[0068] [ Figure 9B ]

[0069] Figure 9B A schematic diagram illustrating an imbalance of a six-legged robot according to some embodiments of the present disclosure is shown.

[0070] [ Figure 10A ]

[0071] Figure 10A A schematic diagram illustrating an imbalance detection method for a bipedal robot according to some embodiments of the present disclosure is shown.

[0072] [ Figure 10B ]

[0073] Figure 10B A schematic diagram illustrating a method for correcting leg imbalance according to some embodiments of the present disclosure is shown.

[0074] [ Figure 11 ]

[0075] Figure 11 A schematic diagram illustrating a switching device that can be used to implement the control system of this disclosure is shown. Detailed Implementation

[0076] In the following description, numerous specific details are set forth for purposes of explanation in order to provide a thorough understanding of this disclosure. However, it will be apparent to those skilled in the art that this disclosure may be practiced without these specific details. In other examples, apparatus and methods are shown only in block diagram form to avoid obscuring this disclosure.

[0077] As used in this specification and claims, the terms “for example,” “like,” and “such as,” as well as the verbs “comprising,” “having,” “including,” and other verb forms thereof, when used in conjunction with a list of one or more components or other items, are to be interpreted as open-ended, meaning that the list is not considered to exclude other additional components or items. The term “based on” means at least partially based on. Furthermore, it should be understood that the wording and terminology used herein are for descriptive purposes and should not be considered restrictive. Any headings used in this specification are for convenience only and have no legal or limiting effect.

[0078] Figure 1A A schematic configuration 100a of a multi-legged robot 101 according to some embodiments of the present disclosure is illustrated. The multi-legged robot 101 includes a torso 103; a plurality of legs, such as legs 105a, 105b, 105c, and 105d; and one or more actuators 107. The plurality of legs support the torso 103 above the ground. For ease of explanation, a multi-legged robot 101 with four legs is considered. However, the multi-legged robot 101 may include two or more legs. Furthermore, one or more actuators 107 are shown as separate from the multi-legged robot 101. However, one or more actuators may be integrated within the multi-legged robot 101.

[0079] Furthermore, the posture controller 109 is associated with the torso 103 of the multi-legged robot 101. Multiple swing controllers (described as swing controllers 1, 111a; swing controllers 2, 111b; swing controllers 3, 111c; and swing controllers 4, 111d, collectively referred to below as swing controllers 111) are associated with the multiple legs. Additionally, in some embodiments, a corresponding swing controller among the multiple swing controllers is associated with a corresponding leg among the multiple legs; for example, swing controllers 1, 111a are associated with leg 105a, swing controllers 2, 111b with leg 105b, swing controllers 3, 111c with leg 105c, and swing controllers 4, 111d with leg 105d.

[0080] The multi-legged robot 101 is configured to perform tasks, such as search and rescue, warehouse logistics, infrastructure inspection, security, and surveillance. In some embodiments, the multi-legged robot 101 is also configured to perform tasks based on a reference trajectory 113. In some embodiments, the reference trajectory 113 corresponds to a path defining the motion of the multi-legged robot 101 for performing the task. Furthermore, the reference trajectory 113 defines a sequence of states of the multi-legged robot 101 in time and space as it performs the task. In some embodiments, the reference trajectory 113 may define the sequence of states of the multi-legged robot 101 at discrete timestamps corresponding to discrete locations (e.g., coordinates of a 3D location in Cartesian space). Furthermore, in some embodiments, the reference trajectory may define vectors of joint angles for each of the multiple legs of the multi-legged robot 101. Furthermore, in some embodiments, the reference trajectory 113 may define one or more velocities and one or more accelerations to control the multi-legged robot 101 to perform the task. Furthermore, in some embodiments, the reference trajectory 113 may define the orientation of the multi-legged robot 101 in time and space during task performance. Furthermore, in some embodiments, the reference trajectory can define the current contact force between at least one of the legs and the ground. Additionally, in some embodiments, the reference trajectory 113 can define the step height for at least one of the legs.

[0081] Some implementations are based on the understanding that it is necessary to coordinate and synchronize the torso motion associated with the torso 103 of the multi-legged robot 101 and the leg motions of the individual legs to perform various tasks. Therefore, in some implementations, a reference trajectory 113 may define a motion profile spanning a multidimensional space to coordinate and synchronize the torso motion associated with the torso 103 and the leg motions of the individual legs. However, simultaneously determining the motion trajectories spanned by the torso motion and the leg motions of the individual legs is a computationally expensive and complex task.

[0082] Therefore, one implementation aims to decouple the posture controller 109 from the multiple swing controllers 115. Decoupling 115 allows for independent calculation of trunk movements and leg movements of each of the multiple legs.

[0083] Figure 1B A schematic diagram 100b illustrates the principle of decoupling the posture controller and the swing controller 111 according to some embodiments of the present disclosure.

[0084] Schematic diagram 100b illustrates that posture controller 109 and swing controllers 111a to 111d are connected at 117. As a result, posture controller 109 and swing controller 111 depend on reference trajectory 113.

[0085] Specifically, in some embodiments, the posture controller 109 and the swing controller 111 are configured to simultaneously calculate reference trajectories based on reference trajectory 113, such as a torso reference trajectory for controlling the torso 103 of the multi-legged robot 101 and foot reference trajectories for controlling the multiple legs of the multi-legged robot 101.

[0086] However, simultaneously calculating the reference trajectory for real-time control of the multi-legged robot 101 is computationally expensive. Furthermore, simultaneous calculation of the reference trajectory increases energy consumption, thereby increasing transportation costs (COT) and task completion time. Additionally, pre-determining the torso and leg reference trajectories is practically infeasible because performing various tasks requires simultaneously and in real-time traversal operations in smooth or rough surface environments, stabilizing the multi-legged robot 101, and collision prevention operations to avoid unwanted collisions with objects.

[0087] To mitigate these drawbacks, the posture controller 109 and the swing controller 111 are decoupled 115. Specifically, based on the imbalance corresponding to the relative positions of the torso 103 and feet of the multi-legged robot 101, the swing controller 111 is decoupled from the posture controller 109 115. Therefore, the swing controller 111 is independent of the reference trajectory 113 121. (Refer to...) Figure 1C , Figure 3A , Figure 3B and Figure 3C Various implementations for controlling a multi-legged robot 101 based on imbalance are described.

[0088] Figure 1CA schematic diagram 100c illustrates a method for controlling a multi-legged robot 101 based on the decoupling 115 of a posture controller 109 and a swing controller 111, according to some embodiments of the present disclosure. Schematic diagram 100c illustrates some embodiments based on the purpose of collecting multiple reference trajectories 123. Multiple reference trajectories are collected from at least one high-level control command 125a or a storage medium 125b such as a memory or database.

[0089] Furthermore, the posture controller 109 is also configured to apply a first control law 127 based on the collected multiple reference trajectories 123. Additionally, the posture controller 109 is configured to calculate the reaction forces of the multiple legs of the multi-legged robot 101 in contact with the ground based on the reference trajectories 113, and apply said reaction forces to push the torso 103 of the multi-legged robot 101, based on the application 127 of the first control law.

[0090] Furthermore, an imbalance 129 is created based on the application of the first control law 127. Additionally, in some embodiments, the imbalance 129 may be created based on one or a combination of factors such as uneven terrain, sensor error, control algorithm error, external forces, uneven weight distribution, mechanical error, and insufficient gait planning.

[0091] Therefore, some implementations are based on the understanding that imbalance is mitigated by decoupling the posture controller 109 and the swing controller 111 by 115. Decoupling 115 allows the swing controller 111 to mitigate imbalance independently of multiple reference trajectories 123. To mitigate imbalance, some implementations are based on the purpose of detecting 131 the imbalance. Furthermore, some implementations are based on the purpose of detecting 133 the relative position between the torso 103 and the feet of the legs (e.g., the legs 105a of the multi-legged robot 101), which indicates imbalance 131.

[0092] Furthermore, the oscillation controller 1,111a is also configured to apply a second control law 135 based on the detected imbalance. Additionally, the posture controller 1,111a is also configured to mitigate the imbalance based on the application of the second control law 135, independent of the cause associated with the imbalance (not dependent on the reference trajectory 133).

[0093] Furthermore, based on this understanding, this disclosure provides a reference. Figure 2 A system for controlling a multi-legged robot 101 is described.

[0094] Figure 2A block diagram 200 illustrates a control system 201 for controlling a multi-legged robot 101 according to some embodiments of the present disclosure. The control system 201 is configured to control the multi-legged robot 101 to perform tasks. The control system 201 is coupled to the multi-legged robot 101. In some embodiments, the control system 201 may be integrated within the multi-legged robot 101.

[0095] The control system 201 includes a processor 203, a memory 207, a transceiver 209, and a bus 211. The memory 207 can be implemented as a storage medium. The storage medium may include one or a combination of RAM (Random Access Memory), ROM (Read-Only Memory), a hard disk, etc. The memory 207 may store instructions executable by at least one processor (e.g., processor 203). The at least one processor (e.g., processor 203) may be implemented as a single-core configuration or a multi-core configuration (e.g., a computing cluster). The processor 203 is connected to the memory 207 and / or the transceiver 209 via the bus 211.

[0096] Furthermore, processor 203 includes internal memory for storing one or more controllers (e.g., posture controller 109, swing controller 111) and one or more feedback reference trajectory generators (e.g., feedback torso reference trajectory generator 205a and feedback foot reference trajectory generator 205b). In some embodiments, one or more controllers and one or more feedback reference trajectory generators may be implemented externally to control system 201 and may communicate with control system 201 via a communication network. One or more controllers may correspond to one or a combination of proportional-integral-derivative (PID) controllers, optimal controllers, neural network controllers, etc. In some embodiments, one or more controllers may be referred to as "one or more feedback controllers". Furthermore, one or more feedback reference trajectory generators are coupled to said one or more controllers.

[0097] In some embodiments, the posture controller 109 is also configured to collect a reference trajectory 113. Furthermore, the posture controller 109 is configured to determine a control input sequence 213a based on the collected reference trajectory 113 to control one or more actuators 107 of the multi-legged robot 101. As a result, the control input sequence 213a depends on the reference trajectory 113. Additionally, the posture controller 109 is configured to determine the control input sequence 213a based on the reference trajectory 113 to change the state of the multi-legged robot 101 by actuating the torso 103. Additionally or alternatively, the transceiver 209 is configured to send the control input sequence 213a to one or more actuators 107 to actuate the torso 103 of the multi-legged robot 101. In some embodiments, the transceiver 209 may correspond to a radio frequency transceiver (RF).

[0098] Furthermore, in some embodiments, at least one swing controller (e.g., swing controller 1, 111a of swing controller 111) is configured to detect an imbalance in the relative position between the torso 103 and the foot of leg 105a of the multi-legged robot 101. Additionally, at least one swing controller is also configured to determine a control input sequence 213b based on the detected imbalance to control one or more actuators 107 of the multi-legged robot 101. As a result, the control input sequence 213b is independent of the reference trajectory 113. Furthermore, at least one swing controller of swing controller 111 is also configured to determine the control input sequence 213 by swinging at least one leg of the multi-legged robot 101 (e.g., leg 105a), thereby changing the state of the multi-legged robot 101. Transceiver 209 is also configured to send the control input sequence 213b to one or more actuators 107 to swing at least one leg, such as leg 105a, based on the detected imbalance. Additionally or alternatively, transceiver 209 is configured to send a control input sequence 213b to one or more actuators 107 to swing at least one leg of the multi-legged robot 101, such as leg 105a.

[0099] Furthermore, control input sequences 213a and 215b can be associated with physical quantities such as voltage, pressure, force, torque, etc. In some embodiments, control input sequences 213a and 213b can correspond to a torso reference trajectory and a foot reference trajectory, respectively.

[0100] Additionally, one or more sensors of the multi-legged robot 101 are configured to measure changes in the state of the multi-legged robot 101 associated with control input sequence 213a and changes in the state of the multi-legged robot 101 associated with control input sequence 213b. Furthermore, one or more sensors are configured to generate a feedback signal 215a based on the measured changes in the state of the multi-legged robot 101 associated with control input sequence 213a. Additionally, one or more sensors are also configured to generate a feedback signal 215b based on the measured changes in the state of the multi-legged robot 101 associated with control input sequence 213b. The one or more sensors are also configured to transmit feedback signals 215a and 215b to transceiver 209. Feedback signals 215a and 215b comprise sequences of measurement results corresponding to control input sequence 213a and control input sequence 213b, respectively. The sequence of measurement results can be measurements of the state of the multi-legged robot 101 based on control input sequence 213a and control input sequence 213b.

[0101] Furthermore, each measurement result in the measurement result sequence can indicate the state of the multi-legged robot 101 corresponding to control input sequences 213a and 213b. Additionally, each measurement result in the measurement result sequence can be an associated physical quantity.

[0102] Therefore, the control system 201 is also configured to iteratively transmit control input sequences 213a and 213b, and receive feedback signals 215a and 215b, respectively. In some embodiments, the control system 201 is also configured to determine the control input sequence 213a in the current iteration based on the feedback signal 215a. Furthermore, the control system 201 is also configured to determine the control input sequence 213b in the current iteration based on the feedback signal 215b. Specifically, to determine the control input sequence 213a in the current iteration, the posture controller 109 is configured to determine a first current control input for controlling the multi-legged robot 101 based on the feedback signal 215a at each control step. Furthermore, to determine the control input sequence 213b in the current iteration, at least one swing controller of the swing controller 111 is configured to determine a second current control input for controlling the multi-legged robot 101 based on the feedback signal 215b at each control step. Additionally, the feedback signal 215a includes a first current measurement result of the current state of the multi-legged robot 101. In addition, feedback signal 215b includes a second current measurement result of the current state of the multi-legged robot 101.

[0103] In some implementations, to determine the first current control input, the posture controller 109 is further configured to apply a control strategy to the control input sequence 213a. Furthermore, to determine the second control input, at least one of the swing controllers 111 is configured to apply a control strategy to the control input sequence 213b. The control strategy may correspond to a set of mathematical formulas that map all states or subsets of states of the multi-legged robot 101 to the control input sequences 213a and 213b. The mapping may be analytical or based on a solution to an optimization problem. The control strategy minimizes the difference between the desired state of the multi-legged robot and the current state of the multi-legged robot 101.

[0104] The posture controller 109 is also configured to apply a control strategy based on the values ​​of parameters of the feedback torso reference trajectory generated by the feedback torso reference trajectory generator 205a, to convert a first current measurement result of the current state into a first current control input. Furthermore, at least one swing controller of the swing controller 111 is configured to apply a control strategy based on the values ​​of parameters of the feedback foot reference trajectory generated by the feedback foot reference trajectory generator 205b, to convert a second current measurement result of the current state into a second current control input. As used herein, the parameters of the feedback torso reference trajectory and the feedback foot reference trajectory include, but are not limited to, the desired walking speed of the multi-legged robot 101, the desired foot height of the multi-legged robot 101, the desired rotational speed of the multi-legged robot 101, etc.

[0105] Therefore, refer to Figure 3A , Figure 3B and Figure 3C The control of the multi-legged robot 101 by the control system 201 is described.

[0106] Figure 3A A schematic diagram 300a illustrating a method for collecting a reference trajectory 113 according to some embodiments of the present disclosure is shown. Schematic diagram 300a includes a robot's center of mass (COM) 301, multiple foot positions (e.g., foot position 303a, foot position 303b, foot position 303c, and foot position 303d), and multiple joint angles (e.g., joint angle 305a, joint angle 305b, joint angle 305c, and joint angle 305d).

[0107] Furthermore, each foot position among the multiple foot positions is associated with a corresponding leg among the multiple legs. For example, foot position 303a is associated with leg 105a, foot position 303b with leg 105b, foot position 303c with leg 105c, and foot position 303d with leg 105d. Additionally, each foot position among the multiple foot positions can vary based on changes in a corresponding joint angle among the multiple joint angles. Furthermore, a corresponding joint angle can be defined based on the corresponding foot position and the robot's COM 301. For example, joint angle 305a is defined based on foot position 303a and the robot's COM 301, joint angle 305b is defined based on foot position 303b and the robot's COM 301, joint angle 305c is defined based on foot position 303c and the robot's COM 301, and joint angle 305d is defined based on foot position 303d and the robot's COM 301.

[0108] In addition, such as Figure 3AAs illustrated, processor 203 is configured to collect reference trajectories 113 to perform tasks. In some embodiments, the collected reference trajectories may correspond to a reference body state. Processor 203 is also configured to change the current state of multi-legged robot 101 based on the collected reference trajectories 113 to perform tasks.

[0109] In addition, the processor 203 is also configured to execute the posture controller 109 based on the collected reference trajectory 113.

[0110] Figure 3B A schematic diagram 300b illustrating an action controller 109 according to some embodiments of the present disclosure is shown. Schematic diagram 300b illustrates that the processor 203 is also configured to calculate the reaction forces of the multiple legs of the multi-legged robot 101 in contact with the ground and apply said reaction forces to propel the torso 103 along a reference trajectory 113. Furthermore, the ground reaction forces are associated with corresponding legs among the multiple legs; for example, ground reaction force 307a is associated with leg 105a, ground reaction force 307b with leg 105b, ground reaction force 307c with leg 105c, and ground reaction force 307d with leg 105d.

[0111] In addition, the processor 203 is also configured to execute the swing controllers among the multiple swing controllers 111a to 111d, such as swing controller 1, 111a, based on the execution of the posture controller 109.

[0112] Figure 3C A schematic diagram 300c illustrating an execution of the swing controller 1,111a according to some embodiments of the present disclosure is shown. Schematic diagram 300c illustrates a processor 203 configured to execute the swing controller 1,111a to swing the leg 105a in response to detecting an unbalanced relative position of the torso 103 of the multi-legged robot 101 above the ground (e.g., between the torso 103 and the foot position 303a of the foot of the leg 105a). In some embodiments, the processor 203 is also configured to detect the unbalance based on measurements of the relative positions of the joints of the legs 105a among the plurality of legs.

[0113] Therefore, refer to Figure 4A The execution flowchart of the swing controller 1,111a is explained.

[0114] Figure 4AA flowchart illustrating a method 400a for performing a swing controller 1,111a according to an exemplary embodiment is shown. In one or more embodiments, the control system 201 may perform one or more portions of method 400a and may be implemented, for example, in a processor 203. Accordingly, the control system 201 may provide means for combining other components of the system 201 to implement embodiments of other processes described herein. Although method 400a is illustrated as a sequence of steps, it is contemplated that various embodiments of method 400a may be performed in any order or combination and need not include all illustrated steps.

[0115] In box 401, reference trajectories 113 are collected to define the state sequence in time and space of the multi-legged robot 101 as it performs a task.

[0116] In box 403, based on the collected reference trajectory 113, a posture controller is executed to control the torso 103 of the multi-legged robot 101. Specifically, the posture controller 109 is configured to control the torso 103 to follow the reference trajectory 113.

[0117] In box 405, based on the execution of posture controller 109, swing controller 1,111a is executed to swing leg 105a. Specifically, swing controller 1,111a is configured to swing leg 105a to follow reference trajectory 113.

[0118] Reference Figure 4B , Figure 4C and Figure 4D Different implementations of the swing controller 1111a are described.

[0119] Figure 4B A schematic diagram 400c illustrating an execution of swing controller 1,111a according to some embodiments of the present disclosure is shown. Schematic diagram 400c illustrates a processor 203 configured to execute a posture controller 109 407 based on a collected reference trajectory 113. The posture controller 109 is also configured to control the torso 103 of the multi-legged robot 101 based on changes in space commanded by the reference trajectory 113. Additionally or alternatively, the posture controller 109 is further configured to change the position of the torso 103 to follow the reference trajectory. Furthermore, the processor 203 is also configured to execute swing controller 1,111a 409 in response to the execution 407 of the posture controller 109. As a result, swing controller 1,111a is independent of changes in space commanded by the reference trajectory 411. Furthermore, the processor 203 is configured to execute swing controller 1,111a 409 in response to the execution 409 of the posture controller 109 to swing the leg 105a.

[0120] Some implementations are based on the purpose of executing the swing controller 1,111a according to this imbalance. In some implementations, the processor 203 is configured to detect the imbalance based on measurements of the relative positions of the joints of one of the plurality of legs corresponding to the velocity defined by the reference trajectory 113. Therefore, referring to Figure 4D A flowchart for detecting imbalances is described.

[0121] Figure 4C A flowchart illustrating a method 400c for detecting imbalance according to some embodiments of the present disclosure is provided. In one or more embodiments, the control system 201 may execute one or more portions of method 400c and may be implemented, for example, in processor 203. Accordingly, the control system 201 may provide means for combining other components of the system 201 to implement embodiments of other processes described herein. Although method 400c is illustrated as a sequence of steps, it is contemplated that various embodiments of method 400c may be performed in any order or combination and need not include all the illustrated steps.

[0122] In box 413, the velocity is defined by reference trajectory 113. In some implementations, the velocity is defined based on velocity parameters associated with reference trajectory 113. Furthermore, multi-legged robot 101 is also configured to follow reference trajectory 113 based on the velocity defined by the reference trajectory. Additionally, multi-legged robot 101 is also configured to perform tasks by following reference trajectory 113 based on the defined velocity.

[0123] In box 415, the current state of the multi-legged robot 101 is changed, for example, by swinging the legs 105 of the multi-legged robot 101 based on the velocity defined by the reference trajectory 113.

[0124] In block 417, measurements of the relative positions of the joints of the legs 105a of the multi-legged robot 101 are received based on the changed current state of the multi-legged robot 101. In some embodiments, the measurements of the relative positions of the leg joints are received as feedback signals 215 transmitted by one or more sensors based on the changed current state of the multi-legged robot 101.

[0125] In box 419, an imbalance is detected based on the received measurements of the relative positions of the joints of the legs 105a of the multi-legged robot 101 corresponding to the velocities defined by reference trajectory 113. (Refer to...) Figure 5A , Figure 5B , Figure 5C and Figure 5D Various implementations for detecting imbalances based on measurements of the relative positions of the joints of the legs of a multi-legged robot 101 are described.

[0126] Some implementations perform the purpose of the swing controller 1,111a based on the execution of the posture controller 109 and the detected imbalance.

[0127] Figure 4D Schematic diagram 400d illustrates an execution of the swing controller 1,111a according to some embodiments of the present disclosure. Schematic diagram 400e illustrates the execution 421 of the posture controller 109 based on a reference trajectory 113. Furthermore, the execution 421 of the posture controller 109 changes the current state of the multi-legged robot 101 based on a velocity defined by the reference trajectory 113. The processor 203 is also configured to receive measurements of the relative positions of the legs 105a of the multi-legged robot 101. In addition, the processor 203 is also configured to execute 423 of the swing controller 1,111a in response to the execution 421 of the posture controller 109 and a detected imbalance.

[0128] Furthermore, in some embodiments, the processor 203 is configured to detect imbalance based on a predetermined imbalance function. Additionally or alternatively, the predetermined imbalance function may be referred to as an "imbalance function". See also... Figure 5A , Figure 5B , Figure 5C and Figure 5D This describes various implementation methods for detecting imbalances based on imbalance functions.

[0129] Figure 5A A schematic diagram 500a illustrates an implementation of a swing controller (e.g., swing controller 1, 111a) based on an imbalance function 505 according to some embodiments of the present disclosure.

[0130] Schematic diagram 500a illustrates the input to the imbalance function 505. This input includes measurements from one or more sensors 501 indicating the relative positions of the joints of the legs (e.g., leg 105a) of the multi-legged robot 101. The measurements from one or more sensors 501 include joint angle measurements, joint velocity measurements, or joint torque measurements 503, or a combination thereof. Furthermore, processor 203 is configured to generate a binary output 507 based on the imbalance function 505. The binary output 507 of the imbalance function 505 indicates whether an imbalance is not detected 509 or an imbalance is detected 513. If an imbalance 513 is detected, processor 203 is configured to estimate a swinging motion 515 to correct the imbalance. Furthermore, processor 203 is configured to generate one or more commands for one or more actuators 107 associated with the multiple legs based on the estimation of the swinging motion 515. Furthermore, processor 203 is configured to execute the swinging motion 517 based on the generated control commands. Furthermore, if no imbalance 509 is detected, the oscillation motion 511 is not estimated.

[0131] Some implementations are based on the understanding that the imbalance function 505 can detect imbalances based on a shape centered on the projection of the hip position onto the ground. Specifically, the imbalance function 505 detects imbalances corresponding to at least one foot position outside the shape centered on the projection of the hip position onto the ground. Furthermore, this shape can correspond to at least one of a circle, square, ellipse, etc. (See also...) Figure 5C and Figure 5D Various implementations for detecting imbalances based on a shape centered on the projection of the hip position onto the ground are described.

[0132] Therefore, refer to Figure 5B An example implementation for defining one or more dimensions of a shape is described.

[0133] Figure 5B A schematic diagram 500b illustrates one or more dimensions of shape 519 based on function 525, according to some embodiments of the present disclosure. Schematic diagram 500b illustrates one or more dimensions, such as the major axis of shape 519. 523a and short axis 523b is a function of velocity 525 defined by reference trajectory 113. In some implementations, shape 519 may be referred to as a "safety foot placement area".

[0134] Furthermore, the processor 203 is also configured to project the corresponding foot position associated with the corresponding leg on the ground onto the ground via the hip of the corresponding leg. Imbalance is detected outside the shape 519 centered on 521. (Refer to...) Figure 5C and Figure 5D This describes various implementation methods for detecting imbalances based on imbalance functions.

[0135] Figure 5CA schematic diagram 500c illustrating an imbalance detection based on an imbalance function 505 according to some embodiments of the present disclosure is shown. Schematic diagram 500c illustrates the respective foot positions of the multi-legged robot 101 within their respective shapes centered on their respective projections from the hip position to the ground. Specifically, the foot position 303a associated with leg 105a is located inside shape 527a centered on the projection 529a from the hip position to the ground, the foot position 303b associated with leg 105b is located inside shape 527b centered on the projection 529b from the hip position to the ground, the foot position 303c associated with leg 105c is located inside shape 527c centered on the projection 529c from the hip position to the ground, and the foot position 303d associated with leg 105d is located inside shape 527d centered on the projection 529d from the hip position to the ground. Furthermore, based on the determination that the positions of each foot of the multi-legged robot 101 are within the corresponding shape centered on the corresponding projection of the corresponding hip position to the ground, the imbalance function 505 indicates that no imbalance 513 has been detected.

[0136] Figure 5D A schematic diagram 500d illustrating an imbalance detection based on an imbalance function 505 according to some embodiments of the present disclosure is shown. Schematic diagram 500d illustrates that the foot position 303a associated with leg 105a is outside a shape 527a centered on the projection 529a of the hip position to the ground; the foot position 303b associated with leg 105b is inside a shape 527b centered on the projection 529b of the hip position to the ground; the foot position 303c associated with leg 105c is inside a shape 527c centered on the projection 529c of the hip position to the ground; and the foot position 303d associated with leg 105d is inside a shape 527d centered on the projection 529d of the hip position to the ground. Furthermore, based on the determination that the respective foot positions of the multi-legged robot 101 are not inside the corresponding shape centered on the corresponding projection of the corresponding hip position to the ground, the imbalance function 505 indicates that an imbalance 513 has been detected.

[0137] In some implementations, the multi-legged robot 101 may employ a trot gait to perform tasks. Therefore, referring to... Figure 6A A flowchart is described.

[0138] Figure 6AA flowchart illustrating a method 600a for implementing a rotational gait according to some embodiments of the present disclosure is shown. In one or more embodiments, the control system 201 may execute one or more portions of method 600a and may be implemented, for example, in processor 203. Accordingly, the control system 201 may provide means for combining other components of the system 201 to implement embodiments of other processes described herein. Although method 600a is illustrated as a sequence of steps, it is contemplated that various embodiments of method 600a may be performed in any order or combination and need not include all illustrated steps.

[0139] In block 601, measurement results from one or more sensors are received. In some embodiments, the measurement results from one or more sensors are received as feedback signals 215. Additionally, measurement results from one or more sensors corresponding to the current state of the multi-legged robot 101 are received.

[0140] In block 603, the positions of each leg relative to the torso 103 of the multi-legged robot 101 are determined based on the received measurements. In some embodiments, a state estimation function can determine the positions of each leg relative to the torso 103 based on the received measurements. Furthermore, the state estimation function may correspond to a forward motion function. The forward motion function can determine the positions of each leg relative to the torso 103 based on received measurements, such as joint angle measurements, joint velocity measurements, or joint torques.

[0141] In frame 605, based on the positions of each foot relative to the torso 103, it is determined whether at least one leg is currently swinging.

[0142] In box 609, if at least one leg is swinging, the swinging of that at least one leg continues and the first new swing is not initiated.

[0143] However, if at least one leg is not swinging, then in block 611, it is determined whether the positions of each foot relative to the torso 103 of the multi-legged robot 101 are within the safe foot placement area. If the positions of each foot relative to the torso 103 of the multi-legged robot 101 are within the safe foot placement area, then in block 613, the first new swing is not initiated.

[0144] However, if the positions of the individual legs relative to the torso 103 of the multi-legged robot 101 are not within the safe foot placement area, then in box 615, a first new swing corresponding to the first leg that is furthest outside the safe foot placement area and a second new swing corresponding to the second leg that is diagonally positioned relative to the first leg are initiated.

[0145] Therefore, refer to Figure 6B and Figure 6CVarious implementation methods for achieving rotational gait are described.

[0146] Figure 6B A schematic diagram 600b illustrating a rotating gait according to some embodiments of the present disclosure is shown. Schematic diagram 600b shows that each foot position relative to the torso 103 is outside the safe foot placement area, indicating an imbalance 513 has been detected. Specifically, the foot position 303a associated with leg 105a relative to the torso 103 is not within the safe foot placement area 527a. The foot position 303b associated with leg 105b relative to the torso 103 is not within the safe foot placement area 527b. The foot position 303c associated with leg 105c relative to the torso 103 is not within the safe foot placement area 527c. The foot position 303d associated with leg 105d relative to the torso 103 is not within the safe foot placement area 527d.

[0147] Furthermore, in some embodiments, the processor 203 is configured to correct the imbalance by performing a rotational gait based on the detected imbalance 513.

[0148] Figure 6C A schematic diagram 600c illustrating an execution of a rotating gait according to some embodiments of the present disclosure is shown. The processor 203 is configured to execute the swing controller 1, 111a to initiate a first new swing 617a of the leg 105a located furthest outside the safe foot placement area 527a based on determining that the positions of the respective feet relative to the torso 103 are not within the corresponding safe foot placement area, and simultaneously execute the swing controller 3, 111c to initiate a second new swing 617b of the leg 105c located diagonally opposite the first leg 105a.

[0149] In some implementations, the multi-legged robot 101 can perform tasks using a walking gait. Therefore, referring to... Figure 7A-1 and Figure 7A-2 Describe the flowchart.

[0150] Figure 7A-1 and Figure 7A-2 A flowchart illustrating a method 700a for achieving a walking gait according to some embodiments of the present disclosure is shown. Accordingly, the control system 201 may provide means for combining other components of the system 201 to implement embodiments of other processes described herein. Although method 700a is described as a sequence of steps, it is contemplated that various embodiments of method 700a may be performed in any order or combination, and it is not necessary to include all the illustrated steps.

[0151] In block 701, measurement results from one or more sensors are received. In some embodiments, the measurement results from one or more sensors are received as feedback signals 215. Additionally, measurement results from one or more sensors corresponding to the current state of the multi-legged robot 101 are received.

[0152] In block 703, based on the received measurements, the positions of each leg relative to the torso 103 of the multi-legged robot 101 are determined. In some embodiments, a state estimation function can determine the positions of each leg relative to the torso 103 based on the received measurements. Furthermore, the state estimation function can correspond to a forward motion function. The forward motion function can determine the positions of each leg relative to the torso 103 based on received measurements, such as joint angle measurements, joint velocity measurements, or joint torques.

[0153] In box 705, based on the received measurement results, it is determined whether the at least one leg is swinging.

[0154] If at least one leg is swinging, then in box 709, the swinging of at least one leg continues. Additionally, in box 711, it is determined whether only one of the multiple legs of the multi-legged robot 101 is swinging.

[0155] If not only one of the multiple legs is swinging, then in box 713, the first new swing corresponding to the first leg of the multi-legged robot 101 is not initiated.

[0156] However, if only one of the multiple legs is swinging, then in box 715, it is determined whether the foot position of the diagonally positioned leg corresponding to that single leg is within the safe foot placement area relative to the torso 103.

[0157] If the foot position of the diagonally positioned leg relative to the torso 103 is within the safe foot placement area, then in block 719, the first new swing corresponding to the first leg of the multi-legged robot 101 is not initiated.

[0158] If the diagonally positioned leg is not within the safe foot placement area relative to the foot position of the torso 103, then in frame 721, the third new swing of the diagonally positioned leg begins.

[0159] Returning to box 705, if at least one leg is not currently swinging, then in box 723, determine whether the positions of each foot relative to the torso 103 are within the safe foot placement area.

[0160] If each foot position relative to the torso 103 is within the safe foot placement area, then in frame 725, the first new swing corresponding to the first leg of the multi-legged robot 101 is not initiated.

[0161] However, if the positions of the individual feet relative to the torso 103 are not within the safe foot placement area, then in box 727, a first new swing is initiated corresponding to the first leg of the multi-legged robot 101 that is furthest outside the safe foot placement area.

[0162] according to Figure 7B This describes an exemplary implementation for achieving walking gait.

[0163] Figure 7B A schematic diagram 700b illustrating a walking gait according to some embodiments of the present disclosure is shown. Schematic diagram 700b illustrates that the processor 203 is also configured to execute the swing controller 3,111c to initiate a third swing, such as a third swing 731, based on determining that only one leg (e.g., leg 105a) is currently in swing 729 and the foot position 303c of the diagonally positioned leg (e.g., leg 105c) is outside the safe foot placement area 527c relative to the torso 103.

[0164] Therefore, refer to Figure 8 An algorithm for controlling a multi-legged robot 101 is described.

[0165] Figure 8 A step planner algorithm 800 according to some embodiments of the present disclosure is illustrated. For iteration, in step 801, the robot's current state X is determined based on the state estimation function. cur and current foot position p cur The estimate is:

[0166] Where f cur It is the ground reaction force, q cur This is the current joint angle. This is the current joint velocity; the IMU is the inertial measurement unit data.

[0167] In some embodiments, the attitude controller 109 is also configured to determine the ground reaction force as

[0168] in, Is with f t The force vector associated with leg i of a subset of , and It is the rotation matrix from the world coordinate system to the body coordinate system from leg i at time step t.

[0169] Furthermore, in some embodiments, each of the plurality of swing controllers is configured to calculate the ground reaction force for each foot I for all three joints of the multi-legged robot 101. The ground reaction force can be given as follows:

[0170] in It is joint torque. and It represents the current joint position and velocity of foot i. It is a Jacobian determinant, K p and K d Kd is the proportional-derivative (PD) gain matrix (3×3 diagonal positive semi-definite). and It is the reference and current foot position in the body coordinate system. and It is the reference foot speed in the body coordinate system. It is the reference foot acceleration in the body coordinate system. The torque is caused by the Coriolis force and centrifugal force. It is the torque caused by gravity, and It is the operational quality matrix.

[0171] In step 803, the desired robot body velocity V is received. des (2). In some implementations, the desired speed can be received from the robot operator. In addition, in some implementations, the desired speed can be received from a higher-level planning module.

[0172] In step 805, based on the current foot position on the x-axis Robot hip position on the x-axis The difference between them determines the distance from the hip to the foot. .

[0173]

[0174] In some implementations, for each leg of the multi-legged robot 101, the current foot position is determined based on forward kinematics and measurements from one or more sensors. and current foot position .

[0175] In step 807, based on the current foot position on the y-axis and the position of the robot's hip on the y-axis The difference between them determines the distance from the hip to the foot. .

[0176]

[0177] In step 809, for each leg of the multi-legged robot 101 in contact with the ground, an imbalance function is executed to determine whether the position of at least one leg is outside the shape. The imbalance function can be given as follows:

[0178] Furthermore, the imbalance function can determine the position of at least one foot based on inequality conditions. The inequality conditions can be given as follows:

[0179] In step 811, based on determining whether the at least one leg is outside the shape, the next foot swing trajectory and the corresponding torso trajectory (corresponding to an additional term for the desired velocity of the multi-legged robot 101 on the x-axis) are determined as follows:

[0180] Where X z The height of the multi-legged robot is ΔT, g is the gravitational term, and ΔT is the force of gravity. sw It is for the foot timing of the swing phase, and B is the body coordinate system.

[0181] Furthermore, an additional term corresponding to the desired velocity of the multi-legged robot 101 on the y-axis is determined as follows:

[0182] In addition, the generation includes the reference foot position p ref Reference foot speed and reference acceleration The output of .

[0183] In step 813, based on the current foot position p curr The center of the shape and additional terms corresponding to the desired velocity of the multi-legged robot on the x-axis. And an additional term corresponding to the desired velocity of the multi-legged robot on the y-axis. To determine the foot reference trajectory. Furthermore, the following sine wave implementation is used to generate the trajectory from the current foot position p. curr To the next foot position p next Reference footstep trajectory:

[0184] Where p step It is the height of the step, and It is the maximum vertical acceleration.

[0185] In addition, maximum acceleration and maximum acceleration It can be given as

[0186] In some implementations, the sinusoidal implementation can be modified based on one or more tasks (e.g., climbing tasks, traversing tasks, etc.). Furthermore, in some implementations, the sinusoidal implementation can be modified to change one or more contact points of the multi-legged robot 101.

[0187] Furthermore, in step 815, based on the robot's current state X cur And the expected robot body speed V des To determine the state of the reference ontology.

[0188] Furthermore, in step 817, the processor 203 is also configured to place each of the multiple legs into a standing position based on a determination of the completion of the swing of at least one of the legs of the multi-legged robot. In some embodiments, the processor 203 is also configured to use the current step speed The value changed to 0 12×1 This is used to position each of the multiple legs in a standing position. In some embodiments, the processor 203 is also configured to accelerate the current step. The value changed to 0 12 ×1 This allows each leg out of a plurality of legs to be placed in a standing position. Furthermore, the processor 203 is configured to input the current foot contact matrix C. cur The value is changed to 1 4×1 Furthermore, processor 203 is also configured to determine the next step position p. next Next step speed acceleration at the next step position Contact matrix C with the next step next To swing the next leg of the multi-legged robot 101. Step 817 can be described as follows:

[0189] However, if the swing of at least one leg is not completed, then in step 819, the processor 203 is configured to continue the swing of the at least one leg by iterating through the reference trajectory 113. The processor 203 is also configured to iterate through the reference foot position p. ref Reference foot speed Reference foot acceleration Foot contact matrix C ref The processor 203 iterates through the reference trajectory 113. Furthermore, after iterating through the reference trajectory, the processor 203 is also configured to base its iterations on the next step position p. next Next step speed acceleration at the next step position Contact matrix C with the next step next To swing the next leg of the multi-legged robot 101. Step 819 can be described as follows:

[0190] Where iter represents the current iteration. In some implementations, the multi-legged robot 101 may correspond to a six-legged robot. Therefore, an exemplary implementation for correcting detected imbalances in a six-legged robot is described with reference to FIG9.

[0191] Figure 9A A schematic diagram 900a illustrating an attempt to detect imbalance in a six-legged robot 901 according to some embodiments of the present disclosure is shown. The six-legged robot 901 includes a torso 903 and six legs, such as legs 905a, 905b, 905c, 905d, 905e, and 905f.

[0192] The schematic diagram 900a illustrates the following: the foot position 907a associated with leg 905a is outside the shape 909a centered on the projection 911a of the hip position; the foot position 907b associated with leg 905b is within the shape 909b centered on the projection 911b of the hip position; the foot position 907c associated with leg 905c is within the shape 909c centered on the projection 911c of the hip position; the foot position 907d associated with leg 905d is within the shape 909d centered on the projection 911d of the hip position; the foot position 907e associated with leg 905e is within the shape 909e centered on the projection 911e of the hip position; and the foot position 907a associated with leg 905a is outside the shape 909a centered on the projection 911a of the hip position. Furthermore, based on the determination that the foot position associated with leg 905a is outside the shape 909a centered on the projection 911a of the hip position, the imbalance function 505 detects an imbalance 913.

[0193] Figure 9B A schematic diagram 900b illustrating an attempt to correct an imbalance in a hexa-legged robot 901 according to some embodiments of the present disclosure is shown. Schematic diagram 900b illustrates a processor 203 configured to correct an imbalance 913 by performing a swinging motion of the foot of leg 905a at the center of shape 909, based on a detected imbalance 911. Additionally or alternatively, the processor 203 is also configured to correct an imbalance 915 by moving the foot of leg 905a at a desired center of shape 909a based on a velocity (e.g., a desired robot body velocity of the hexa-legged robot 901).

[0194] In some implementations, the multi-legged robot 101 may correspond to a bi-legged robot. Therefore, an exemplary implementation for correcting detected imbalances in a bi-legged robot is described with reference to FIG10.

[0195] Figure 10AA schematic diagram 1000a illustrates an embodiment of the present disclosure for detecting imbalance in a bipedal robot 1001. The bipedal robot includes two arms, such as arms 1003a and 1003b; two legs, such as legs 1005a and 1005b; a torso 1007; and a center of mass 1009. Schematic diagram 1000a illustrates that the foot position 1011a associated with leg 1005a is inside a shape 1013a centered on a projection 1015a of the hip position, and the foot position 1011b associated with leg 1005a is outside a shape 1013b centered on a projection 1015b of the hip position. Furthermore, based on the determination that the foot position 1011b associated with leg 1005a is outside a shape 1013b centered on a projection 1015b of the hip position, an imbalance function 505 detects an imbalance 1017.

[0196] Figure 10B A schematic diagram 1000b illustrating an attempt to correct an imbalance in a bipedal robot 1001 according to some embodiments of the present disclosure is shown. Schematic diagram 1000b illustrates that a processor 203 is also configured to perform a swinging motion to correct a detected imbalance 1019 by moving the foot of leg 1005b at the center of shape 1013b, based on a detected imbalance 1017. Additionally or alternatively, the processor 203 is also configured to correct the detected imbalance 1019 by moving the foot of leg 1005b at a desired center of shape 1013b based on a velocity (e.g., a desired robot body velocity of the bipedal robot 1001).

[0197] Therefore, refer to Figure 11 A computing device 1100 for controlling a multi-legged robot 101 corresponding to various embodiments of the present disclosure is described.

[0198] Figure 11This is a schematic diagram illustrating a computing device 1100 for implementing the control system 201 and method of the present disclosure. The computing device 1100 includes a power supply 1101, a processor 1103, a memory 1105, and a storage device 1107, all of which are connected to a bus 1109. Furthermore, a high-speed interface 1111, a low-speed interface 1113, a high-speed expansion port 1115, and a low-speed connection port 1117 can be connected to the bus 1109. Additionally, a low-speed expansion port 1119 is connected to the bus 1109. Furthermore, an input interface 1121 can be connected via the bus 1109 to an external receiver 1123 and an output interface 1125. A receiver 1127 can be connected via the bus 1109 to external transmitters 1129 and 1131. Also connected to the bus 1109 are external memory 1133, external sensors 1135, a machine 1137, and an environment 1139. Furthermore, one or more external input / output devices 1141 can be connected to the bus 1109. The network interface controller (NIC) 1143 may be adapted to be connected to the network 1145 via the bus 1109, wherein data or other data may be presented, in particular, on a third-party display device, a third-party imaging device, and / or a third-party printing device outside the computer device 1100.

[0199] Memory 1105 may store instructions executable by computer device 1100 and any data usable by the methods and systems of this disclosure. Memory 1105 may include random access memory (RAM), read-only memory (ROM), flash memory, or any other suitable memory system. Memory 1105 may be one or more volatile memory cells and / or non-volatile memory cells. Memory 1105 may also be another form of computer-readable medium, such as a magnetic disk or optical disk.

[0200] Storage device 1107 may be adapted to store supplemental data and / or software modules used by computer device 1100. Storage device 1107 may include a hard disk drive, optical drive, thumb drive, drive array, or any combination thereof. Furthermore, storage device 1107 may contain computer-readable media, such as floppy disk devices, hard disk devices, optical disk devices, magnetic tape devices, flash memory or other similar solid-state storage devices, or device arrays, including those in storage area networks or other configurations. Instructions may be stored in an information carrier. When executed by one or more processing devices (e.g., processor 1103), these instructions perform one or more methods, such as those described above.

[0201] The computing device 1100 can be linked to a display interface or user interface (HMI) 1147 via a bus 1109. The HMI 1147 is adapted to connect the computing device 1100 to a display device 1149 and a keyboard 1151. The display device 1149 may include a computer monitor, camera, television, projector, or mobile device, etc. In some implementations, the computing device 1100 may include a printer interface for connection to a printing device, which may include a liquid inkjet printer, solid ink printer, large-scale commercial printer, thermal printer, UV printer, or dye-sublimation printer, etc.

[0202] High-speed interface 1111 manages bandwidth-intensive operations of computing device 1100, while low-speed interface 1113 manages lower bandwidth-intensive operations. This functional allocation is merely an example. In some implementations, high-speed interface 1111 may be connected to memory 1105, user interface (HMI) 1147, keyboard 1151, and display 1149 (e.g., via a graphics processor or accelerator), as well as high-speed expansion port 1115, which can accept various expansion cards via bus 1109. In another implementation, low-speed interface 1113 is connected to storage device 1107 and low-speed expansion port 1117 via bus 1109. Low-speed expansion port 1117, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, Wireless Ethernet), may be connected to one or more input / output devices 1141. Computing device 1100 may be connected to server 1153 and rack server 1155. Computing device 1100 may be implemented in several different forms. For example, computing device 1100 can be implemented as part of rack server 1155.

[0203] Various embodiments of this disclosure are based on the decoupling of various controllers associated with the multi-legged robot 101 to reduce energy consumption, thereby reducing transportation costs (COT) and task completion time. Furthermore, the various embodiments employ easily implemented geometric methods to detect imbalances, which reduces computational costs. These geometric methods include detecting imbalances based on the position of the corresponding foot of the corresponding leg outside a corresponding shape centered on the corresponding projection of the corresponding hip position to the ground. Moreover, based on the detected imbalances, the various embodiments control the multi-legged robot 101 in various implementations, such as walking gait implementations and rotational gait implementations.

[0204] This specification provides only exemplary embodiments and is not intended to limit the scope, applicability, or configuration of this disclosure. Rather, the following description of exemplary embodiments will provide those skilled in the art with enabling descriptions for implementing one or more exemplary embodiments. Various changes may be made to the function and arrangement of elements without departing from the spirit and scope of the subject matter disclosed as set forth in the appended claims.

[0205] Specific details are set forth in the following description to provide a thorough understanding of the embodiments. However, those skilled in the art will appreciate that the embodiments can be practiced without these specific details. For example, systems, processes, and other elements in the disclosed subject matter may be shown as components in the form of block diagrams to avoid obscuring the embodiments with unnecessary details. In other cases, well-known processes, structures, and techniques may be shown without unnecessary details to avoid obscuring the embodiments. Furthermore, the same reference numerals and labels denote the same elements in the various figures.

[0206] Furthermore, each implementation can be described as a process, depicted as a flowchart, flow diagram, data flow diagram, structure diagram, or block diagram. Although a flowchart can describe operations as a sequential process, many operations can be executed in parallel or concurrently. Additionally, the order of operations can be rearranged. A process can terminate when its operations are completed, but the process may have additional steps not discussed or included in the diagram. Furthermore, not all operations in any specifically described process can occur in all implementations. A process can correspond to a method, function, procedure, subroutine, subroutine, etc. When a process corresponds to a function, the termination of the function can correspond to the function returning to the calling function or the main function.

[0207] Furthermore, implementations of the disclosed subject matter can be carried out, at least partially, manually or automatically. This can be performed, or at least assisted by, the use of machines, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, for manual or automatic implementation. When implemented in software, firmware, middleware, or microcode, program code or code segments for performing the necessary tasks can be stored in a machine-readable medium. The processor can then perform the necessary tasks.

[0208] The various methods or processes outlined herein can be encoded as software that can be executed on one or more processors employing any of a variety of operating systems or platforms. Furthermore, such software can be written using a variety of suitable programming languages ​​and / or programming or scripting tools, and can also be compiled into executable machine language code or intermediate code that executes on a framework or virtual machine. Typically, the functionality of program modules can be combined or distributed as needed in various implementations.

[0209] The embodiments of this disclosure can be implemented as a method, examples of which have been provided. The actions performed as part of this method can be ordered in any suitable manner. Therefore, embodiments can be constructed in which actions are performed in a different order than those shown, which may include performing some actions simultaneously, even if they are shown as sequential actions in the illustrative embodiments.

[0210] Furthermore, the embodiments of this disclosure and the functional operations described in this specification can be implemented in digital electronic circuits, in tangibly implemented computer software or firmware, in computer hardware including the structures disclosed in this specification and their structural equivalents, or in one or more combinations thereof. Additionally, some embodiments of this disclosure can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible, non-transient program carrier, for execution by a data processing device or for controlling the operation of a data processing device. Furthermore, program instructions can be encoded on artificially generated propagation signals (e.g., machine-generated electrical, optical, or electromagnetic signals), the generated signals used to encode information for transmission to a suitable receiver device for execution by the data processing device. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access storage device, or one or more combinations thereof.

[0211] According to embodiments of this disclosure, the term "data processing apparatus" can include all kinds of means, devices, and machines for processing data, such as programmable processors, computers, or multiple processors or computers. The apparatus may include special-purpose logic circuitry, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these.

[0212] A computer program (which may also be referred to or described as a program, software, software application, module, software module, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but is not required to, correspond to a file in a file system. A program may be stored as a part of a file that holds other programs or data, such as one or more scripts stored in a markup language document, a single file dedicated to the program in question, or multiple co-located files, such as a file storing one or more modules, subroutines, or code sections.

[0213] Computer programs can be deployed to execute on one or more computers located at a single site or distributed across multiple sites and interconnected via a communication network. Computers suitable for executing computer programs include, for example, those based on general-purpose or special-purpose microprocessors or both, and any other type of central processing unit (CPU). Typically, the CPU receives instructions and data from read-only memory or random access memory or both. The basic components of a computer are the CPU for executing or carrying out instructions and one or more memory devices for storing instructions and data.

[0214] Typically, a computer will also include one or more mass storage devices for storing data, such as disks, magneto-optical disks, or optical disks, or operatively coupled to receive data from or transfer data to one or more mass storage devices, or both. However, a computer does not need to have such devices. Furthermore, a computer may be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (such as a Universal Serial Bus (USB) flash drive), to name just a few.

[0215] To provide interaction with the user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user, and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual, auditory, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. Furthermore, the computer can interact with the user by sending documents to and receiving documents from the device used by the user; for example, by sending web pages to a web browser on the user's client device in response to a request received from a web browser.

[0216] Implementations of the subject matter described in this specification can be implemented in a computing system that includes back-end components (e.g., as a data server), middleware components (e.g., an application server), front-end components (e.g., a client computer with a graphical user interface or web browser through which a user can interact with the implementation of the subject matter described in this specification), or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected via digital data communication (e.g., a communication network) of any form or medium. Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), such as the Internet.

[0217] This computing system may include clients and servers. Clients and servers are typically geographically separated and usually interact through a communication network. The client-server relationship arises from computer programs running on individual computers that have client-server relationships with each other.

[0218] While this disclosure has been described with reference to certain preferred embodiments, it should be understood that various other adaptations and modifications can be made within the spirit and scope of this disclosure. Therefore, the aspects of the appended claims cover all such variations and modifications within the true spirit and scope of this disclosure.

Claims

1. A control system for controlling a robot to perform tasks, wherein, The robot is a legged robot comprising a torso and multiple legs for supporting the torso above the ground, wherein the control system includes a processor; and a memory having instructions stored thereon, the instructions causing the control system to: Collect reference trajectories that define the state sequence of the robot in time and space as it performs the task; The posture controller is configured to calculate the reaction forces of the robot's multiple legs in contact with the ground based on the reference trajectory and apply the reaction forces to propel the robot's torso; and The swing controller among a plurality of swing controllers is executed to swing one of the plurality of legs in response to the detection of an imbalance in the support of the robot's torso above the ground, relative to the position of the robot's torso and the feet of the legs.

2. The control system according to claim 1, wherein, The swing controller is independent of changes in the space commanded by the reference trajectory.

3. The control system according to claim 1, wherein, The processor is also configured to execute the swing controller in response to the execution of the posture controller.

4. The control system according to claim 1, wherein, The processor is also configured to execute the swing controller in response to another execution of another swing controller among the plurality of swing controllers.

5. The control system according to claim 1, wherein, The processor is also configured to execute the oscillation controller in response to the execution of the posture controller and the detection of the imbalance.

6. The control system according to claim 1, wherein, The processor is also configured to detect the imbalance based on measurements of the relative positions of the joints of the plurality of legs.

7. The control system according to claim 1, wherein, The processor is also configured to detect the imbalance based on measurements of the relative positions of the joints of the plurality of legs, corresponding to the velocity defined by the reference trajectory.

8. The control system according to claim 7, wherein, The processor is also configured to detect the imbalance based on the foot position of the leg outside a shape centered on the projection of the hip position onto the ground, wherein one or more dimensions of the shape are functions of a velocity defined by the reference trajectory.

9. The control system according to claim 1, wherein, In order to swing the leg, the processor is also configured to: A predetermined imbalance function is executed to detect the imbalance of the foot of the leg based on the relative positions of the joints of the leg; Estimate the swing motion of the leg to correct the detected imbalance; Based on the estimated oscillation motion, generate one or more commands for one or more actuators of the robot; as well as The one or more actuators are controlled based on the one or more commands to perform the oscillating motion.

10. The control system according to claim 9, wherein, The predetermined imbalance function detects an imbalance corresponding to the position of the foot on the ground outside the shape centered on the projection of the hip position of the leg onto the ground.

11. The control system according to claim 9, wherein, The swing controller is independent of the reference trajectory, allowing the predetermined imbalance function and the swing motion to be calculated independently of the reference trajectory.

12. The control system according to claim 9, wherein, The input to the predetermined imbalance function includes measurements from sensors that indicate the relative positions of the joints of the legs.

13. The control system according to claim 12, wherein, The measurements from the sensors indicating the relative positions of the joints of the legs include one or a combination of joint angle measurements, joint velocity measurements, and joint torque.

14. The control system according to claim 9, wherein, The output of the predetermined imbalance function includes a binary output indicating that an imbalance has been detected.

15. The control system according to claim 14, wherein, The processor is also configured to: The imbalance is detected based on the binary output of the imbalance function; and The oscillating motion is performed in response to the detection of the imbalance.

16. The control system according to claim 15, wherein, The processor is also configured to perform the swinging motion by moving the foot of the leg at the center of the shape to correct the detected imbalance.

17. The control system according to claim 16, wherein, The processor is also configured to perform the swinging motion to correct the detected imbalance by moving the foot of the leg to the intended center of the shape based on the robot's speed.

18. A control method for controlling a robot to perform a task, wherein, The robot is a legged robot comprising a torso and multiple legs for supporting the torso above the ground, and the control method includes the following steps: Collect reference trajectories that define the state sequence of the robot in time and space as it performs the task; The posture controller is configured to calculate the reaction forces of the robot's multiple legs in contact with the ground based on the reference trajectory and apply the reaction forces to propel the robot's torso; and The swing controller, one of a plurality of swing controllers, is executed to swing the leg in response to the detection of an imbalance in the support of the robot's torso above the ground, relative to the position of the robot's torso and the foot of the leg.