Adaptive control specific to task and environment of legged robot
Patent Information
- Application Number
- JP2023070622
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-12-06
- Filing Date
- 2023-04-24
- Publication Date
- 2026-02-25
- Estimated Expiration
- 2043-04-24
AI Technical Summary
Legged robots face challenges in adapting their reference trajectories efficiently in complex, changing environments due to the computational expense of real-time calculation and the impracticality of precomputing all possible trajectories.
A control system utilizing a probabilistic filter, such as a Kalman filter, to initialize and update reference trajectories based on feedback signals, encoding predetermined parameters for tasks, and iteratively adjusting these trajectories to meet performance goals, allowing for adaptive control in uncertain conditions.
Enables efficient and adaptive control of legged robots by simplifying reference trajectory generation and precision control, even in dynamic environments, using limited computational resources.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to control systems, and more particularly to systems and methods for reference trajectory state generation for legged robots. [Background technology]
[0002] Legged robots can assist humans in their daily needs or activities to enhance mobility. Activities that legged robots can assist include carrying loads such as groceries or construction materials, search and rescue missions, and household chores. To perform these activities, legged robots operate in unstructured, uncertain, and changing environments, and therefore, they are often inherently more complex. This complex nature of legged robots requires an adaptable control system that adapts to the changing environment and the changing intentions of the human being assisted. The control system also needs to be rapidly adaptable to accommodate the agility of the legged robot.
[0003] The control system of a legged robot includes a stance controller and a swing controller to follow a reference trajectory. The reference trajectory defines the task of the legged robot. The stance controller and swing controller are executed frequently. Because calculating the reference trajectory in real time is more computationally expensive, the reference trajectory is often pre-calculated, stored in memory, and not adjusted online. However, complex tasks and changing environments require the legged robot to adjust the reference trajectory. Also, it is not practically feasible to pre-calculate all possible reference trajectories required for the legged robot's motion and store them in a database.
[0004] Therefore, there is a need for a system that can adapt a given reference trajectory of a legged robot in a changing environment and / or adjust it according to the current needs of the legged robot in an efficient and feasible way. Summary of the Invention
[0005] Control of robotic systems often involves motion planning to generate reference trajectories that govern the control. Generating reference trajectories is a difficult and computationally expensive task, especially in the presence of a changing environment surrounding the robot. This problem is even more challenging for controlling legged robots. A legged robot has a body and multiple legs that require coordinated control. A reference trajectory for a legged robot is a combination of multiple reference trajectories that jointly define the coordinated motion of the legged robot's different actuators. Generating coordinated reference trajectories for each type of possible motion of a legged robot is a difficult task that requires expensive computing power that the robot often lacks.
[0006] The present disclosure is directed to a control system and method for controlling the movement of a legged robot. The control system initializes a stochastic filter with parameters associated with states of a reference trajectory of the legged robot in response to receiving a task. The task may be received from a supervisory controller and may include one or a combination of walking, turning left and right, climbing stairs, high-stepping gait, trotting, etc. The parameters of the stochastic filter are predetermined for the task and encode a reference trajectory that includes a combination of reference trajectories for coordinated motion primitives of different actuators of the legged robot to move the legged robot according to the task. The parameters are decoded to generate the reference trajectory.
[0007] Upon generating the reference trajectory, the probabilistic filter is executed to iteratively track the state of the reference trajectory that satisfies performance goals with respect to the state of the legged robot to update the parameters in response to receiving a feedback signal indicating a change in the state of the legged robot moving along the trajectory, where the performance goals include one or a combination of requirements regarding (i) a desired foot lift / step height of the legged robot, (ii) a desired walking speed of the legged robot, (iii) a desired turning speed of the legged robot, (iv) a desired stair height for ascending and descending stairs, (v) a desired energy consumption of the legged robot, (vi) a desired amount of foot slippage of the legged robot, and (vii) a desired ground reaction force of a leg of the legged robot. The feedback signal is received in response to detecting new contact with a surface by at least one leg of the legged robot. The reference trajectory is updated by decoding the updated parameters. Control inputs for actuators of the legged robot are generated based on the updated reference trajectory, and the actuators of the legged robot are controlled based on the corresponding control inputs.
[0008] The stochastic filter is configured to predict a current state of the reference trajectory based on a previous state of the reference trajectory using a predictive model. The stochastic filter accepts feedback signals indicative of a current state of the legged robot and / or a state of an environment surrounding the robot, and updates the current state of the reference trajectory based on the feedback signals using a measurement model that tests a performance objective, which is subject to measurement noise. The predictive model is an identity model and is subject to process noise, and the measurement model is subject to measurement noise. The stochastic filter includes an extended Kalman filter (EKF) or an unscented Kalman filter (UKF).
[0009] According to an embodiment, a control system for controlling a legged robot is provided. The control system includes a processor and a memory storing instructions that, when executed by the processor, cause the control system to initialize a stochastic filter with parameters associated with a state of a reference trajectory of the legged robot in response to receiving a task, the parameters being predetermined for the task and encoding a reference trajectory including a combination of different trajectories for coordinated motion primitives of different actuators of the legged robot that moves the legged robot according to the task. The control system is further configured to decode the parameters to generate a reference trajectory, and to execute the stochastic filter in response to receiving a feedback signal indicating a change in the state of the legged robot moving according to the trajectory, to iteratively track the state of the reference trajectory. The tracked state of the reference trajectory satisfies a performance goal for the state of the legged robot so as to update the parameters. The control system is further configured to update the reference trajectory by decoding the updated parameters and to generate a control input for an actuator of the legged robot based on the updated reference trajectory. The control system is further configured to control the actuator of the legged robot based on the corresponding control input.
[0010] According to another embodiment, a method for controlling a legged robot is provided. The method includes, in response to receiving a task, initializing a stochastic filter with parameters associated with a state of a reference trajectory of the legged robot, the parameters being predetermined for the task, and encoding a reference trajectory including a combination of different trajectories for coordinated motion primitives of different actuators of the legged robot that moves the legged robot according to the task. The method further includes decoding the parameters to generate the reference trajectory. The method further includes, in response to receiving a feedback signal indicating a change in the state of the legged robot moving according to the trajectory, executing the stochastic filter to iteratively track a state of the reference trajectory that satisfies a performance goal with respect to the state of the legged robot, thereby updating the parameters. The method further includes updating the reference trajectory by decoding the updated parameters and generating a control input for an actuator of the legged robot based on the updated reference trajectory. The method further includes controlling the actuator of the legged robot based on the corresponding control input.
[0011] According to yet another aspect of the present invention, a non-transitory computer-readable medium storing a program for causing a legged robot to execute a reference trajectory state generation process is provided. The process includes, in response to receiving a task, initializing a stochastic filter with parameters associated with a state of a reference trajectory of the legged robot, the parameters being predetermined for the task, and encoding a reference trajectory including a combination of different trajectories for coordinated motion primitives of different actuators of the legged robot that moves the legged robot according to the task. The process further includes decoding the parameters to generate the reference trajectory. The process further includes, in response to receiving a feedback signal indicating a change in the state of the legged robot moving according to the trajectory, executing the stochastic filter to iteratively track a state of the reference trajectory that satisfies a performance goal with respect to the state of the legged robot, thereby updating the parameters. The process further includes updating the reference trajectory by decoding the updated parameters and generating control inputs for actuators of the legged robot based on the updated reference trajectory. The process additionally includes controlling the actuators of the legged robot based on the corresponding control inputs.
[0012] An advantage of the present disclosure includes that since it is practically impossible to store all possible reference trajectories, instead only a set of pre-calculated reference trajectories are stored along with techniques for adapting the pre-calculated reference trajectories to fit the current task and / or current environment. [Brief explanation of the drawings]
[0013] [Figure 1] FIG. 1 is a block diagram of a control system for controlling the movement of a legged robot, according to some embodiments of the present disclosure. [Figure 2] FIG. 1 illustrates a probabilistic filter for predicting states of a reference trajectory for a legged robot, according to some embodiments of the present disclosure. [Figure 3] FIG. 1 illustrates a flowchart for estimating a reference trajectory for a legged robot, according to some embodiments of the present disclosure. [Figure 4] FIG. 1 is a block diagram of a control system for initiating and controlling the movement of a legged robot, according to some embodiments of the present disclosure. [Figure 5] FIG. 1 illustrates an example of a control system for a legged robot, according to some embodiments of the present disclosure. [Figure 6] FIG. 1 illustrates the generation of a reference trajectory according to a performance goal, according to some embodiments of the present disclosure. [Figure 7] FIG. 1 illustrates a flowchart of a method for operating a legged robot, according to some embodiments of the present disclosure. [Figure 8] FIG. 1 is a block diagram of a method for updating the state of a reference trajectory according to some embodiments of the present disclosure. [Figure 9] FIG. 1 is a block diagram of a method for updating parameters associated with a reference trajectory related to a task, according to some embodiments of the present disclosure. [Figure 10] FIG. 10 is a graph illustrating tracking the state of a reference trajectory in accordance with some embodiments of the present disclosure. [Figure 11] FIG. 1 illustrates a parameterization of a reference trajectory for a legged robot, according to some embodiments of the present disclosure. [Figure 12] FIG. 10 illustrates an example of the use of weighted functions to define parameters, according to some embodiments of the present disclosure. [Figure 13] FIG. 10 illustrates a table depicting parameter encoding / decoding according to some embodiments of the present disclosure. [Figure 14] FIG. 1 illustrates a Kalman filter for generating parameters of a reference trajectory, according to some embodiments of the present disclosure. [Figure 15] FIG. 10 illustrates a Gaussian distribution representing parameters of a reference trajectory, according to some embodiments of the present disclosure. [Figure 16] FIG. 10 illustrates Gaussian distributions with different variances, in accordance with some embodiments of the present disclosure. [Figure 17]FIG. 1 is a schematic diagram for updating predicted values of parameters of a reference trajectory, according to some embodiments of the present disclosure. [Figure 18] 10 illustrates an example of adapting a pre-calculated reference trajectory, according to some embodiments of the present disclosure. [Figure 19] 1A-1C illustrate a legged robot walking on different terrains, according to some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0014] Detailed Description In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure may be practiced without these specific details. In other instances, devices and methods are shown only in block diagram form in order to avoid obscuring the present disclosure.
[0015] As used in this specification and claims, the words "for example," "for example," "e.g.," "e.g.," and the verbs "comprise," "have," "include," and other verb forms thereof, when used in conjunction with a list of one or more components or other items, should each be construed as open-ended, meaning that the list should not be viewed as excluding other additional components or items. The phrase "based on" means based at least in part on. Furthermore, it should be understood that the phraseology and terminology used herein are for purposes of description and should not be considered limiting. Any headings used within this description are for convenience only and have no legal or restrictive effect.
[0016] The control of robotic systems often involves motion planning to generate a reference trajectory that governs the control. Generating a reference trajectory is a difficult and computationally expensive task, especially in the presence of an uncertain and / or changing environment surrounding the robot. To address environmental uncertainty, some methods use advanced techniques for motion planning and control to track a reference trajectory under uncertainty.
[0017] Some embodiments are based on conceptualizing the reference trajectory as a virtual system with a state, instead of or in addition to tracking and adjusting the state of a robot following a reference trajectory. The reference trajectory is thus a virtual system with a state that can change depending on the environment. This representation makes it possible to track and adjust the state of the reference trajectory itself by adapting some principles borrowed from tracking and adjusting the state of a robot.
[0018] For example, some control methods use a stochastic filter that tracks the state of the robot based on changes in control inputs to the robot. Such filters include, for example, a Kalman filter. Exemplary embodiments parameterize the stochastic filter based on the state of a reference trajectory to track the state of the reference trajectory based on changes in the environment. This tracking can be subject to performance goals that are imposed on the tracked state by either a predictive model of the filter, a measurement model of the filter, or a combination thereof.
[0019] Advantages of the present disclosure include that tracking a reference trajectory that meets performance goals with respect to the environment allows for simplified generation of the reference trajectory, use of traditional control policies, desynchronization of reference trajectory modifications from the control, etc. Furthermore, the use of a stochastic filter such as a Kalman filter can be effectively executed by an embedded processor because the structure of the stochastic filter is simpler than the structure of a filter used to track the state of the robot due to a simplified predictive model that lacks the inertia of the robot's motion model.
[0020] Some embodiments are based on the fact that controlling a robot to perform a task often requires a reference trajectory for the robot to follow. For example, a drone intended to transport objects or monitor traffic may require a reference trajectory that includes the drone's position and its velocity. As another example, a cleaning robot intended to clean floors may use a reference trajectory to efficiently plan its movement. As another example, an assembly robot may use a reference trajectory to manipulate parts to safely assemble a product. Some robots, such as assembly robots, may need to reach a destination, such as a specific placement of parts, while some other robots, such as drones or mobile robots, may need to perform continuous tasks. Continuous tasks may require that the reference trajectory used in the controller be continuously recalculated or adapted to the robot's current task and current environment. The following description and explanation uses a legged robot as an example of such a robot that uses a reference trajectory to accomplish a task. However, the systems and methods in this disclosure should not be understood as limited to application to legged robots.
[0021] FIG. 1 shows a block diagram of a control system for controlling the movement of a legged robot, according to some embodiments of the present disclosure. Some embodiments are based on the recognition that a purpose of the control system 100 is to control the legged robot 110 in an engineering process. To this end, the control system 100 may be operatively coupled to the legged robot 110. The control system 100 may include at least one processor 120, a transceiver 130, a memory 180, and a bus 140. The memory 180 may be implemented as a storage medium such as a random access memory (RAM), a read-only memory (ROM), a hard disk, or any combination thereof. For example, the memory may store instructions executable by the at least one processor 120. The at least one processor 120 may be embodied as a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. The at least one processor 120 may be operatively connected to the memory 180 and / or the transceiver 130 via the bus 140. According to one embodiment, the at least one processor 120 may be configured as a feedback controller 150, a reference trajectory generator 160, and / or a stochastic filter 170. Accordingly, the feedback controller 150, the reference trajectory generator 160, and the stochastic filter 170 may be embodied within a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. Alternatively, the feedback controller 150 may be embodied external to the control system 100 and in communication with the control system 100. In one configuration, the reference trajectory generator 160 may be operably coupled to the feedback controller 150, which may in turn be coupled to the legged robot 110. For example, the feedback controller 150 may be, but is not limited to, a proportional-integral-derivative (PID) controller, an optimal controller, a neural network controller, or the like. The stochastic filter 170 includes a Kalman filter, such as, but not limited to, an unscented Kalman filter (UKF) or an extended Kalman filter (EKF).
[0022] According to an embodiment, the feedback controller 150 may be configured to determine a sequence of control inputs to control a set of actuators 190 of the legged robot 110. Furthermore, controlling the actuators 190 of the legged robot 110 includes coordinating a motor that controls the center of mass (CoM) of the legged robot 110 and a motor associated with each leg of the legged robot 110. For example, the control inputs may, in some cases, be associated with physical quantities such as voltage, pressure, force, torque, etc. In an exemplary embodiment, the feedback controller 150 may determine a sequence of control inputs such that the sequence of control inputs changes the state of the legged robot 110 to perform a particular task, such as tracking a reference. Once the sequence of control inputs is determined, the transceiver 130 may be configured to transmit the sequence of control inputs as input signals 102 to the legged robot 110. As a result, the state of the legged robot 110 may be changed in accordance with the input signals 102 to perform a particular task. For example, the transceiver 130 may be a radio frequency (RF) transceiver, etc.
[0023] The state of the legged robot 110 may also be measured using one or more sensors installed on the legged robot 110. The one or more sensors may send a feedback signal 104 to the transceiver 130. The transceiver 130 may receive the feedback signal 104. In an exemplary embodiment, the feedback signal 104 may include a sequence of measurements, each corresponding to a sequence of control inputs. For example, the sequence of measurements may be state measurements output by the legged robot 110 in accordance with the sequence of control inputs. Thus, each measurement in the sequence of measurements may indicate a state of the legged robot 110 caused by the corresponding control input. Each measurement in the sequence of measurements may, in some cases, be associated with a physical quantity, such as current, flow, velocity, or position. In this manner, the control system 100 may iteratively submit a sequence of control inputs and receive a feedback signal. In an exemplary embodiment, to determine the sequence of control inputs for the current iteration, the control system 100 uses the feedback signal 104, which includes a sequence of measurements indicative of the current state of the legged robot 110.
[0024] To determine the sequence of control inputs for the current iteration, the feedback controller 150 may be configured to determine, at each control step, current control inputs for controlling the legged robot 110 based on the feedback signal 104, which includes current measurements of the current state of the legged robot 110. According to an embodiment, to determine the current control inputs, the feedback controller 150 may be configured to apply a control policy. As used herein, a control policy may be a set of mathematical equations that map all or a subset of the states of the legged robot 110 to control inputs. The mapping may be analytical or based on a solution to an optimization problem. In response to applying the control policy, the current measurements of the current state may be converted to current control inputs based on values of parameters of a reference trajectory in the feedback controller 150 and the reference trajectory generator 160. As used herein, the parameters of the reference trajectory may be a desired walking speed of the legged robot 110, a desired stride height of the feet of the legged robot 110, a desired rotational speed of the legged robot 110, etc. In particular, the parameters of the reference trajectory should not be confused with the control inputs, which are the outputs of the control policy, or the state of the legged robot 110 .
[0025] FIG. 2 illustrates a stochastic filter 170 that predicts the state of a reference trajectory of a legged robot 110, according to some embodiments of the present disclosure. Accordingly, the stochastic filter 170 accepts a feedback signal 104, where the feedback signal 104 includes the state of the legged robot 110 and / or the state of the environment in which the legged robot 110 is operating. The stochastic filter 170 may accept one or a combination of the states of the legged robot 110, which may be the current state of the legged robot 110, along with the state of the environment. The feedback signal 104 is processed by a prediction model 210 and a measurement model 220 of the stochastic filter 170 to control the state of a reference trajectory 230 of the legged robot 110. The prediction model 210 is an identity model and is subject to process noise, and the measurement model 220 is affected by measurement noise. The stochastic filter 170 updates the current state of the reference trajectory based on the feedback signal using the measurement model, which tests a performance objective, which is affected by measurement noise. For example, the prediction model 210 predicts the current state of the reference trajectory 230 based on previous states of the reference trajectory 230, and the measurement model 220 updates the current state of the reference trajectory based on the current state of the legged robot 110 and the state of the environment in which the legged robot is operating. The prediction model 210 may be an identity model subject to process noise, configured to predict the state of the reference trajectory within a variance defined by the process noise.
[0026] In one embodiment, the probabilistic filter 170 includes a Kalman filter. A Kalman filter is used to adjust a pre-calculated reference trajectory to the current task and / or the current environment. A Kalman filter is a process (or method) that generates estimates of unknown variables using a series of measurements observed over a period of time, including statistical noise and other imprecisions. In fact, these generated estimates of the unknown variables may be more accurate than estimates of the unknown variables generated using a single measurement. A Kalman filter generates estimates of the unknown variables by estimating a joint probability distribution over the unknown variables. A Kalman filter is a two-step process including a prediction step and an update step. In the prediction step, the Kalman filter uses a predictive model to predict the current state, along with the uncertainty governed by process noise. For example, to reduce the uncertainty in the state while predicting the current state, the predictive model may be artificially designed to be subject to process noise. In fact, the predicted current state may be represented by a joint probability distribution over the current state.
[0027] FIG. 3 shows a flowchart of a method 300 for estimating a reference trajectory for a legged robot 110, according to some embodiments of the present disclosure. Robots of all types are required to perform continuous tasks, which require that the reference trajectory used within the controller be continuously recalculated or adapted to the robot's current task and current environment. Tasks include, but are not limited to, combinations of straight walking, turning left and right, climbing stairs, high-stepping gait, trotting, etc. Therefore, the value of the reference trajectory estimated by the stochastic filter 170 is iteratively updated based on performance goals. The performance goals include one or a combination of requirements regarding (i) the desired foot lift / step height of the legged robot, (ii) the desired walking speed of the legged robot, (iii) the desired turning speed of the legged robot, (iv) the desired stair height for climbing and descending stairs, (v) the desired energy expenditure of the legged robot, (vi) the desired amount of foot slippage of the legged robot, and (vii) the desired ground reaction forces of the legs of the legged robot.
[0028] The method 300 begins with receiving 310 a first task. For example, a task for the robot to turn left is received by the control system 100. In response to receiving 310 the first task, the stochastic filter 170 is initialized with parameters associated with the current state of the reference trajectory of the legged robot 110. These parameters are predetermined for the left turn task and are used to encode the reference trajectory for the left turn task. This encoding may include a combination of different trajectories for a set of coordinated motion primitives for different actuators 190 of the legged robot 110 such that the legged robot 110 may turn left.
[0029] Therefore, based on this initialization, an estimation 320 of the value of the reference trajectory associated with the first task is performed. In one example, parameters associated with the state of the reference trajectory of the legged robot 110 are decoded for the estimation.
[0030] Additionally, a feedback signal 104 may be received indicating a change in the state of the legged robot 110 moving according to the reference trajectory. In response to receiving the feedback signal 104, the stochastic filter 170 is iteratively executed to track the state of the reference trajectory of the legged robot 110. Additionally, a check 330 is performed to identify whether a performance goal is met with respect to the state of the legged robot 110 in order to update the parameters of the stochastic filter 170. If the performance goal is met, the method 300 proceeds to update the reference trajectory until receiving 340 a second task; otherwise, the method proceeds directly to receiving a second task.
[0031] Also, the reference trajectory is updated by decoding the updated parameters of the stochastic filter 170. Furthermore, this updated trajectory is then used to generate a control input, such as the input signal 102, for the actuator 190 of the legged robot 110. The actuator 190 is then controlled according to the corresponding control input.
[0032] FIG. 4 shows a block diagram of a control system for initiating and controlling the movement of a legged robot 110 according to some embodiments of the present disclosure. The control system 100, described above with reference to FIG. 1, communicates with a supervisory controller 410 and has access to a database 420. The control system 100 receives tasks from the supervisory controller 410. Tasks may also be received from other sources, such as, but not limited to, external sensors 430, voice commands, or remote calls. Tasks may include any one or a combination of walking, turning left or right, climbing stairs, high-stepping gait, trotting, etc. The supervisory controller 410 may be external to the control system 100 or may be embedded within the control system 100 or the legged robot 110. Furthermore, upon receiving a task, the control system 100 selects predetermined parameters from the database 420 based on the task and initializes the parameters of the probabilistic filter 170 with the selected predetermined parameters. The database 420 may be external to the control system 100 or embedded within the control system 100. The parameters are predetermined for a task and encode a reference trajectory including a combination of different reference trajectories for coordinated motion primitives of different actuators of the legged robot that moves the legged robot according to the task. The parameters include one or more parameters of the reference trajectory, such as (i) foot lift height / step height of the legged robot, (ii) walking speed of the legged robot, (iii) turning speed of the legged robot, and (iv) stair height for ascending and descending stairs. The predetermined or pre-calculated parameters are selected based on performance goals such that the selected parameters are closest to some norm of a required target value.
[0033] For example, given several predetermined reference trajectories, predetermined parameters of the reference trajectory that results in the lowest cost may be selected. The parameters of the selected pre-calculated reference trajectory may then be used and further adapted to meet the task and required target values. For example, the parameters of the pre-calculated reference trajectory associated with the lowest cost may be used to initialize the probabilistic filter 170. The requirement target values may be compared to pre-calculated reference trajectories in a database of reference trajectories.
[0034] The pre-computed reference trajectories in the database of reference trajectories may have associated requirement values that may be used to compare the pre-computed reference trajectories with required target values to determine which pre-computed reference trajectory most closely matches the current task and its required target values. For example, a squared 2-norm may be calculated between the requirement target value and the associated requirement values of the pre-computed reference trajectories in the database of reference trajectories. The pre-computed reference trajectory that yields the smallest squared 2-norm may then be selected.
[0035] In some embodiments, the adapted reference trajectory currently utilized by control system 100 is continuously compared to the required values of pre-calculated reference trajectories in the database of reference trajectories 420. For example, a squared 2-norm may be calculated between the required target value and the adapted reference trajectory currently employed by control system 100. Additionally, a squared 2-norm may be calculated between the required target value and a pre-calculated reference trajectory in the database of reference trajectories. The adapted reference trajectory may be replaced by another pre-calculated reference trajectory if the squared 2-norm is potentially lower. One advantage of continuously comparing the adapted reference trajectory to the pre-calculated reference trajectory is that if the requirement target value shifts, it may be more efficient to switch reference trajectories and re-initialize the tracking algorithm with a new set of parameters associated with the newly selected pre-calculated reference trajectory.
[0036] 5 illustrates an example of a control system for a legged robot according to some embodiments of the present disclosure. To control the movement of the legs of the legged robot 110, the control system 100 sends input signals 102, which may be torque commands, to the electric motors of the legged robot 110. For example, a four-legged legged robot 110 may have three electric motors per leg, including an electric motor for actuating a knee joint 510, an electric motor for actuating a hip joint 520, and an electric motor for actuating a femoral joint 530. The electric motor 510 for actuating the knee joint may control flexion and extension of the knee joint. The electric motor for actuating the hip joint 520 may control abduction and adduction of the leg. The electric motor for actuating the femoral joint 530 may control flexion and extension of the leg. In this example, the control system 100 sends 12 electric motor commands to the four legs of the legged robot 110. The control system 100 may include a stance controller 560, a swing controller 550, and a contact detection 570. The stance controller 560 stabilizes the legged robot 110 using the legs that are in contact with the ground. The swing controller 550 moves the legs that are not in contact with the ground to correct the position of the legged robot and / or achieve forward movement. The stance controller 560 and the swing controller 550 may be designed to follow as closely as possible a reference trajectory calculated using the reference trajectory generator 160. The feedback signal 104 controls the operation of the stance controller 560 and the swing controller 550, such that each of the stance controller and the swing controller generates a torque command for the movement of the legged robot based on the feedback signal 104. The feedback signal 104 is received in response to detecting new contact with a surface by at least one leg of the legged robot 110. For example, one of the four legs of the legged robot contacts a surface or terrain associated with the ground, requiring stabilization of the legged robot 110. As a result, a feedback signal 104 is received from a new contact of the leg of the legged robot 110 .Furthermore, the current state of the reference trajectory of the legged robot 110 is updated, and the reference trajectory generator 160 generates an updated reference trajectory. The updated reference trajectory generated by the reference trajectory generator 160 results in the generation of new or updated torque commands by the stance controller 560 and the swing controller 550 for movement of the legged robot 110 to follow the updated reference trajectory. In this manner, the feedback signal 104 is configured to control the operation of the stance controller 560 and the swing controller 550 to generate (updated) torque commands so that the legged robot 110 can follow the updated reference trajectory.
[0037] In some embodiments, a database of reference trajectories 420 is used to store pre-computed reference trajectories in memory. The pre-computed reference trajectories may include walking patterns of the legged robot 110 at different walking speeds, different turning radii, etc. In some embodiments, a probabilistic filter 170, such as a Kalman filter, is utilized to take the pre-computed reference trajectories and adjust them to the current task and / or the current environment. One advantage of adjusting the pre-computed reference trajectories to the current task and / or the current environment is to more accurately control the legged robot 110 with a limited amount of pre-computed reference trajectories. Hereinafter, pre-computed reference trajectories refer to reference trajectories stored in the database of reference trajectories 420.
[0038] The stance controller 560 may be a model predictive controller (MPC) that aims to follow the reference trajectory of the CoM of the legged robot. The MPC may calculate the reaction forces of the legs in contact with the ground,
[0039]
number
[0040]
number
[0041]
number
[0042] FIG. 6 illustrates the generation of a reference trajectory according to a performance goal, according to some embodiments of the present disclosure. In some previous systems, the reference trajectory is generated using optimization 610, and only the environment is considered by the feedback controller 150. However, in certain embodiments of the present disclosure, the reference trajectory generator tracks the performance goal 630 in addition to considering the environment to generate the reference trajectory, thereby improving the accuracy of control. In this scenario, the tracking reference trajectory generator 620 includes states used to generate the reference trajectory. The states of the tracking reference trajectory generator 620 may be different from the states from the legged robot 110. For example, the states of the reference trajectory generator may include the walking speed of the legged robot 110, the foot lift height of the legged robot 110, the turning speed or turning angle of the legged robot 110, etc. The states of the reference trajectory generator may then be used to generate a reference trajectory for the feedback controller 150 to follow.
[0043] 7 shows a flowchart for performing a method 700 for operating a legged robot according to some embodiments of the present disclosure. The method 700 includes the legged robot 110 receiving 702 a task, such as a task for the legged robot 110 to ascend and descend a number of stairs. The control system 100 may be configured to receive the task, such as by entering a task description on a user interface of the control system 100. In another example, the task may be received by voice command. In yet another example, the task may be received from a supervisory controller, such as supervisory controller 410 shown in FIG. 4.
[0044] In response to receiving a task, the stochastic filter 170 is initialized 170 with a set of predetermined parameters associated with the received task, the parameters encoding a reference trajectory comprising a combination of different trajectories for coordinated motion primitives of different actuators 190 of the legged robot 110 that causes the legged robot 110 to move in accordance with the received task. In one example, the predetermined parameters associated with the received task may be stored in a database 420, and the control system 100 is configured to select the predetermined parameters from the database 420 based on the task and initialize the parameters of the stochastic filter 170 with the selected predetermined parameters.
[0045] The method 700 further includes generating 706 a reference trajectory for the legged robot 110 by decoding the parameters, and tracking 708 a state of the legged robot 110 to update the parameters. Tracking the state of the reference trajectory for the legged robot 110 is shown in FIG. 10 .
[0046] The method 700 further includes updating 710 the reference trajectory by decoding the updated parameters and generating 712 control inputs to actuators 190 present in the legged robot 110 to control 714 the actuators 190, thereby controlling movement of the legged robot 110. Updating the reference trajectory 710 is further described in connection with FIG.
[0047] 8 shows a block diagram of a method 800 for updating the state of the reference trajectory according to some embodiments of the present disclosure. Updating 808 the state of the reference trajectory of the legged robot 110 includes measuring 802 the state of the reference trajectory and applying a feedback signal related to the state of the environment 806 on the current state 804 and predicted state 802 of the legged robot 110 to obtain 808 an updated state of the reference trajectory. Furthermore, the state update 808 is in accordance with the performance goal 630. This is further described in relation to FIG. 9.
[0048] 9 shows a block diagram of a method 900 for updating parameters associated with a reference trajectory associated with a task. The method 900 includes receiving 902 a task to be performed by the legged robot 110 and initializing 904 a probabilistic filter with a predetermined set of parameters associated with the reference trajectory associated with the received task. This was previously described in connection with FIGS. 4, 5, and 7.
[0049] The method 900 further includes determining 906 a set of performance goals, such as performance goals 630, for the received task and updating 908 parameters associated with a reference trajectory associated with the task to satisfy the performance goals 630. For example, as defined above in connection with FIG. 3, the performance goals 630 may include one or a combination of requirements related to: (i) a desired foot lift / step height for the legged robot, (ii) a desired walking speed for the legged robot, (iii) a desired turning speed for the legged robot, (iv) a desired stair height for ascending and descending stairs, (v) a desired energy expenditure for the legged robot, (vi) a desired amount of foot slippage for the legged robot, and (vii) a desired ground reaction force for the legs of the legged robot. Satisfaction of the performance goals 630 is observed by tracking the state of the reference trajectory being followed by the legged robot 110, as shown in FIG. 10.
[0050] 10 illustrates tracking the states of a reference trajectory, according to some embodiments of the present disclosure. In one example, the legged robot 110 may be required to walk at a specific desired walking speed 1010 provided by a performance goal 630. However, environmental and noise effects may cause a difference between the walking speed 1020 actually achieved by the legged robot 110 and the state 1030 representing the walking speed in the reference trajectory generator 160. In this example, tracking the performance goal 630 enables the legged robot 110 to walk at the desired walking speed 1010 by adjusting the state 1030 in the reference trajectory generator 160. In this scenario, the state 1030 of the reference trajectory generator 160 is a means for achieving the desired walking speed 1010 of the legged robot 110. Thus, the state of the reference trajectory generator 160 tracks the specific requirements provided by the performance goal 630.
[0051]
number
[0052]
number
[0053]
number
[0054]
number
[0055]
number
[0056]
number
[0057] 11 shows parameterization of a reference trajectory for a legged robot, according to some embodiments of the present disclosure. Parameterization of the reference trajectory includes parameterizing the reference trajectories of the CoM and legs of the legged robot. In this illustrative example, the reference trajectory of the CoM 1110 and the reference trajectories of the legs 1120 of the legged robot may be parameterized using the walking speed 1130 of the legged robot 110 and / or the foot lift height 1140 of the legged robot 110.
[0058] 12 shows an example of using weighted basis functions to define parameters, according to one embodiment. In the figure, there are three basis functions: basis function 1210, basis function 1220, and basis function 1230. Also shown is a parameter true function 1240 that maps previous states to the current state along with the motion model. By combining the basis functions and using different weights for each basis function, they can be combined to reproduce the parameter true function, and therefore the true motion model.
[0059] FIG. 13 shows a table 1300 illustrating the encoding / decoding of parameters 1301 associated with a reference trajectory associated with a task using basis functions. The table shows the type of basis function 1302 for each parameter and example basis functions 1303. Some example parameters include walking speed 1301a, foot lift / step height 1301b, turning speed 1301c, and stair height 1301d. A task may include a basis function for the center of mass 1302a and a basis function for the foot 1302b. For example, for walking speed 1301a, the reference trajectory of the center of mass may be calculated by using a center of mass basis function 1302a, which may be a linear or constant basis function 1303a, or a combination thereof. For example, the reference position of the center of mass may be calculated by extrapolating the walking speed 1301a parameter in combination with a linear basis function.
[0060]
number
[0061] The task may be to achieve a specific foot lift height 1301b. For example, the task may use a basis function for the foot 1302b, which may be given by a cycloid basis function 1303b. In this example, the reference trajectory of the foot is given by the initial position of the foot, the foot landing position, and a cycloid basis function connecting the initial position and the landing position, thereby achieving the foot lift height. Therefore, a cycloid basis function 1303c with a variable landing height may be used. Alternatively, the task may be to ascend and descend stairs. In this example, the foot landing position may be changed to take into account the height of the stairs.
[0062] The parameters and basis functions shown in table 1300 are for illustrative purposes only and should not be construed as limiting the scope of the present disclosure in any way.
[0063] FIG. 14 illustrates a stochastic filter 170, e.g., a Kalman filter, for generating parameters of a reference trajectory, according to some embodiments of the present disclosure. Hereinafter, for purposes of the description of FIG. 14 , the stochastic filter 170 will be interchangeably referred to as the Kalman filter 170 without departing from the scope of the present disclosure. According to an embodiment, the state of the Kalman filter 170 is defined by the parameters of the reference trajectory. To this end, the purpose of the Kalman filter 170 is to iteratively generate parameters of the reference trajectory. In an exemplary embodiment, the Kalman filter 170 may iteratively generate parameters of the reference trajectory using a prediction model 1410 and a measurement model 1440. The prediction model 1410 is equivalent to the prediction model 210 shown in FIG. 2 , and the measurement model 1440 is equivalent to the measurement model 220 shown in FIG. 2 , without limiting the scope of the present disclosure. For example, the prediction model 1410 and the measurement model 1440 may be artificially designed.
[0064] To generate the parameters of the reference trajectory in the current iteration (e.g., at time step k), the prediction model 1410 may be configured to predict the values of the parameters of the reference trajectory using prior knowledge 1420 of the parameters of the reference trajectory. For example, the prior knowledge 1420 of the parameters of the reference trajectory may be generated in a previous iteration (e.g., at time step k-1). The prior knowledge 1420 of the parameters of the reference trajectory may be a joint probability distribution (or Gaussian distribution) over the parameters of the reference trajectory in the previous iteration. The joint probability distribution over the parameters of the reference trajectory in the previous iteration may be calculated using the mean θ calculated in the previous iteration. k-1|k-1 and variance (or covariance) P k-1|k-1 For example, the joint probability distribution in a previous iteration may be generated based on the joint probability distribution generated in a previous iteration (e.g., at time step k-2).
[0065] According to an embodiment, the value of the parameter of the reference trajectory predicted in the current iteration may also be a joint probability distribution 1430 (or a Gaussian distribution 1430). For example, the output of the prediction model 1410 may be a joint probability distribution 1430 when the prediction model 1410 is configured to predict multiple parameters of the reference trajectory. Alternatively, the output of the prediction model 1410 may be a Gaussian distribution 1430 when the prediction model 1410 is configured to predict a single parameter of the reference trajectory. For example, the joint probability distribution 1430 may be a Gaussian distribution 1430 for the mean θ calculated in the current iteration. k|k-1 and variance (or covariance) P k|k-1 For example, the Gaussian distribution output by the prediction model 1410 while predicting a single parameter of the reference trajectory is as shown in FIG.
[0066] FIG. 15 illustrates a Gaussian distribution 1510 representing parameters of a reference trajectory, according to some embodiments of the present disclosure. FIG. 15 is described in relation to FIG. 14. The Gaussian distribution 1510 may be predicted by a prediction model 1410. For example, the Gaussian distribution 1510 may correspond to the Gaussian distribution 1430. The Gaussian distribution 1510 may have a mean 1520 (e.g., mean θ k|k-1 ) and variance 1530 (e.g., variance P k|k-1 ), where the mean 1520 defines the central location of the Gaussian distribution 1510 and the variance 1530 defines a measure of the spread (or width) of the Gaussian distribution 1510.
[0067] Referring to FIG. 14 , according to an embodiment, the predictive model 1410 may be subject to process noise. As used herein, process noise may be an assumption that defines how quickly a parameter of a reference trajectory changes over time. The process noise may control how quickly a parameter of a reference trajectory changes over time within a variance defined by the process noise. The process noise may be artificially designed. For example, for different process noise assumptions, the predictive model 1410 may output different Gaussian distributions for one particular parameter of the reference trajectory, and the different Gaussian distributions may have different variances. For example, different Gaussian distributions output by the predictive model 1410 for one particular parameter of the reference trajectory are shown in FIG. 16 .
[0068] FIG. 16 illustrates Gaussian distributions 1610, 1620, and 1630 with different variances, according to some embodiments of the present disclosure. FIG. 16 is described in relation to FIG. 14. The Gaussian distributions 1610, 1620, and 1630 may be predicted by the prediction model 1410. Each of these Gaussian distributions 1610, 1620, and 1630 may have a different variance relative to one another, but the mean 1640 of the Gaussian distributions 1610, 1620, and 1630 may be the same. Among other Gaussian distributions, the Gaussian distribution with a small variance and the mean 1640 with the highest probability may be more certain about the correct parameters of the reference trajectory.
[0069] 14 , a prediction model 1410, subject to process noise, may be configured to predict values of parameters of the reference trajectory, which are output as a joint probability distribution 1430 (or a Gaussian distribution 1430). Once the joint probability distribution 1430 is output by the prediction model 1410 in a current iteration, a measurement model 1440 may be configured to update the predicted values of the parameters of the reference trajectory to generate current values of the parameters of the reference trajectory based on a sequence of measurements 1450. In an exemplary embodiment, the sequence of measurements 1450 may be a sequence of measurements received by the transceiver 130.
[0070] 17 shows a schematic diagram 1710 for updating predicted values of parameters of a reference trajectory, according to some embodiments of the present disclosure. FIG. 17 is described in relation to FIG. 14. The schematic diagram 1710 includes a predicted Gaussian distribution 1720, parameters of the reference trajectory 1730, and an updated Gaussian distribution 1740. For example, the predicted Gaussian distribution 1720 may have a mean value P k|k-1 and variance P k|k-1 and the Gaussian distribution 1430 defined by: For example, the reference trajectory parameters 1730 may be parameters of a reference trajectory that may be used to control the legged robot 110 to achieve a particular reference trajectory with respect to the performance goal 630.
[0071] The performance goals 630 may include requirements for the legged robot 110's behavior, such as walking at a particular walking speed, turning at a particular speed, achieving a particular foot lift height, etc. The requirements for the legged robot 110's behavior may be used to adjust parameters of the reference trajectory, such as foot lift height 1140 or walking speed 1030, as described above in FIG.
[0072] Additionally, the reference trajectory parameters 1730 may be derived from a predicted Gaussian distribution 1720, where the measurements are close to zero probability with the predicted Gaussian distribution 1720. To this end, the measurement model 1440 may update the predicted Gaussian distribution 1720 so that the predicted Gaussian distribution 1720 approaches the updated Gaussian distribution 1740. In other words, the measurement model 1440 may update the mean and variance associated with the predicted Gaussian distribution 1720 with the mean (e.g., mean θ ) corresponding to the updated Gaussian distribution 1740. k|k ) and variance (e.g., variance P k|k ) may be updated.
[0073] 14 , the measurement model 1440 may update the predicted values of the parameters of the reference trajectory based on the sequence of measurements 1450 to generate current values of the parameters of the reference trajectory according to the performance goal 630. According to one embodiment, the measurement model 1440 may output the generated current values of the parameters of the reference trajectory as a joint probability distribution 1480 (or Gaussian distribution 1480), which is a function of a quantity 1470, e.g., mean θ k|k and variance P k|k The Kalman filter 170 may repeat this procedure to generate the parameters of the reference trajectory at the next iteration 1490 (e.g., at time step k+1), ie, iteratively.
[0074] In some embodiments, Kalman filter 170 collectively adjusts the parameters of the reference trajectories due to the interdependence of the requirements in performance objectives 630 and the parameters of the reference trajectories. One advantage of using Kalman filter 170 is that the interdependence of the parameters of the reference trajectories is taken into account by joint probability distribution 1480.
[0075] Some embodiments are based on adapting a pre-calculated reference trajectory to the current environment or the current task. For example, the pre-defined reference trajectories may include a left-turn reference trajectory, a right-turn reference trajectory, a walking reference trajectory at a certain average speed, a trotting reference trajectory at a certain average speed, etc. The memory may store a selection of reference trajectories, but the tasks that the robot needs to perform may be more complex to be covered by a fixed number of pre-calculated reference trajectories. Advantages of the present disclosure include that not all possible tasks and reference trajectories need to be stored in the memory. Instead, only the pre-calculated reference trajectories need to be stored with the method and system, and the pre-calculated reference trajectories need to be adapted to fit the current task and / or the current environment.
[0076] 18 illustrates an example of adapting a pre-calculated reference trajectory according to some embodiments of the present disclosure. In one example, the legged robot 110 may need to make a 90-degree left turn 1820 at a speed of 1.3 m / s, but may only have a pre-defined reference trajectory 1810 of a 90-degree left turn at a speed of 1 m / s. Thus, some embodiments use the pre-defined reference trajectory 1810 with a 90-degree left turn at a speed of 1 m / s and an algorithm to adapt the pre-defined reference trajectory 1810 to meet the requirement of a 90-degree left turn 1820 at a speed of 1.3 m / s. In another example, the legged robot 110 may need to make a 40-degree left turn 1840 at a speed of 1.3 m / s, but may only have a pre-defined reference trajectory 1830 of a 20-degree left turn at a speed of 1.3 m / s. Some embodiments use a predefined reference trajectory 1830 with a 90 degree left turn at a speed of 1 m / s and an algorithm to adapt the predefined reference trajectory 1830 to meet the requirements of a 40 degree left turn 1840 at a speed of 1.3 m / s.
[0077]
number
[0078]
number
[0079] Some embodiments continuously compare the adapted reference trajectory currently utilized by the controller with the requirement values of pre-calculated reference trajectories in the database of reference trajectories 420. For example, a squared 2-norm may be calculated between the requirement target value and the adapted reference trajectory currently used in the controller. Additionally, a squared 2-norm may be calculated between the requirement target value and a pre-calculated reference trajectory in the database of reference trajectories 420. The adapted reference trajectory may be replaced by another pre-calculated reference trajectory if the squared 2-norm is potentially lower. One advantage of continuously comparing the adapted reference trajectory with the pre-calculated reference trajectory is that if the requirement target value shifts, it may be more efficient to switch reference trajectories and re-initialize the tracking algorithm with a new set of parameters associated with the newly selected pre-calculated reference trajectory.
[0080] Some embodiments adapt the parameters of the reference trajectory to meet the requirements of a particular task or a particular environment. The parameters of the reference trajectory are adjusted after every step of the robot.
[0081]
number
[0082] where N is the time to take one step and θ k-N are the parameters of the reference trajectory at time step kN, and θ k are the parameters of the reference trajectory at time step k, and Δθ k is the parameter update at time step k. The parameters of the reference trajectory may be predicted not to change between time steps (21), which may be useful when the legged robot 110 is performing a continuous task where the specifications in the performance goal 630 do not change. Alternatively, the parameters of the reference trajectory may be predicted to change between time steps,
[0083]
number
[0084] This may be useful if the specifications in performance objectives 630 change between time steps.
[0085] Some embodiments are based on the recognition that the predictive model of the reference trajectory parameters is part of a virtual system that can be freely defined. For example, if the legged robot 110 needs to change its walking speed, the reference trajectory parameters associated with the walking speed may be predicted to change depending on how quickly the walking speed should be reduced. In other words, the predictive model anticipates the change in specifications and modifies the reference trajectory parameters.
[0086] Some embodiments are based on the recognition that the environment can be taken into account by the reference trajectory generator. Some embodiments use the state of the reference trajectory together with a tracking formulation to consider the environmental influences on the control. For example, this may be achieved by the state of the reference trajectory generator tracking the performance target 630. Tracking may be achieved by using principles of feedback control and / or estimation to drive the state of the reference trajectory to meet the performance target 630. For example, the parameter update Δθ k may be determined using the gradient of the performance objective 630 with respect to the parameters of the reference trajectory, or using other principles of feedback control and tracking. k may be considered stochastic. Furthermore, the performance goal 630 may be considered stochastic. In such an exemplary situation, the parameter update Δθ k Maximum likelihood estimation may be used to determine the parameter update Δθ. In this example, a probabilistic filter, such as a Kalman filter 170, is used to determine the parameter update Δθ. k may be determined.
[0087] Some embodiments may use the parameter update Δθ kTo calculate the parameter θ , a recursive implementation using a Kalman filter 170 as shown in FIG. 14 is used. The prior knowledge 1420 of the reference trajectory parameters is calculated by the parameter θ . k may be selected to control how quickly σ changes over time,
[0088]
number
[0089] In an implementation of the Kalman filter 170, an unscented Kalman filter (UKF) may be used, where the performance objective 630 in (13) is interpreted as having a prior distribution.
[0090]
number
[0091]
number
[0092]
number
[0093] In this Kalman filter implementation, the prior probabilities regarding how the parameters of the reference trajectory changes will change may be interpreted as a prediction model, and the prior probabilities regarding the performance objectives may be interpreted as a measurement model. The prediction model anticipates changes in specifications and changes the parameters of the reference trajectory accordingly. The measurement model uses estimates and sensor measurements to correct the predictions and consider the environment in generating the reference trajectory.
[0094] The discrepancy between the legged robot 110 and a model of the legged robot 110 may be calculated using sensor measurements onboard the legged robot 110. The model of the legged robot 110 may be obtained from kinematic or dynamic characteristics of the legged robot 110. Advantages of considering the discrepancy between the legged robot 110 and a model of the legged robot 110 to adapt the parameters of the reference trajectory include more accurate control of the legged robot 110, because inaccuracies can be compensated for by the generation of the reference trajectory.
[0095] Additionally, using a model of the legged robot 110 provides the advantage of faster convergence of the adaptation algorithm because the robot's inertia and the physical characteristics of the legged robot's motion are used to drive the adaptation to the parameters. Another advantage of the disclosed systems and methods is that the model of the legged robot may be tailored to the available computational resources. For example, if the computational resources of the legged robot are limited, a simplified model of the legged robot may be used, which has the advantage of being easily realizable on hardware. Alternatively, if the computational resources of the legged robot are higher, a high-fidelity model of the legged robot may be used, which has the advantage of being more accurate and may allow for faster convergence.
[0096] In other words, the Kalman filter 170 uses an estimate of the performance objectives 630 of the simulated motion of the legged robot 110 to adapt the parameters of the reference trajectory. Advantages of using such an estimate of the sigma points include fast and safe adaptation of the parameters of the reference trajectory due to the model of the legged robot. Because the sigma points affect the behavior of the legged robot via the reference trajectory, it makes sense to simulate the motion of the legged robot.
[0097]
number
[0098] FIG. 19 illustrates the legged robot 110 walking on different terrains, such as an asphalt road or a gravel road, according to some embodiments of the present disclosure. The performance goal 630(13) may be selected to achieve a specific target speed, a specific foot lift height, while minimizing energy expenditure and the amount of foot slippage. Minimizing foot slippage in this example may increase the robustness of the legged robot 110. In a scenario in which the legged robot 110 walks on an asphalt road 1910, foot slippage may be low due to the higher friction of the asphalt road 1910. Therefore, in this scenario, the legs of the legged robot 110 may have more traction, allowing the legged robot 110 to walk faster. On the other hand, in a scenario in which the legged robot 110 walks on a gravel road 1920, foot slippage may be greater due to the uneven terrain. Therefore, in this scenario, the legs of the legged robot 110 may have less traction, so the legged robot 110 may need to walk at a slower speed to avoid falling. In these examples, then, one advantage of the present disclosure is that the method finds a reference trajectory that optimizes the trade-off between requirements. In a scenario where the legged robot 110 walks on an asphalt road 1910, the coefficient of friction is high and the possibility of foot slippage is lower. Therefore, the method causes the legged robot 110 to walk at a faster speed because the risk of slipping is lower. On the other hand, in a scenario where the legged robot 110 walks on a gravel road 1920, the possibility of foot slippage is higher. Therefore, the method may automatically cause the robot to walk at a slower speed because the risk of slipping is higher. Another advantage of the present disclosure is that the recursive and filter-based design provides smooth transitions between different gaits, which is important for robustness and stability.
[0099] The above description provides exemplary embodiments only and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the above description of exemplary embodiments will provide one of ordinary skill in the art with an enabling description for implementing one or more exemplary embodiments. Contemplated are various changes that may be made in the function and arrangement of elements without departing from the spirit and scope of the disclosed subject matter as set forth in the claims.
[0100] Specific details are given in the above description to provide a thorough understanding of the embodiments. However, it will be understood by those skilled in the art that the embodiments may be practiced without these specific details. For example, systems, processes, and other elements in the disclosed subject matter may be shown as components in block diagram form to avoid obscuring the embodiments in unnecessary detail. In other instances, well-known processes, structures, and techniques may be shown without unnecessary detail to avoid obscuring the embodiments. Furthermore, like reference numbers and names in the various drawings indicate like elements.
[0101] Also, particular embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. While a flowchart may describe operations as a sequential process, many of the operations may be performed in parallel or simultaneously. Additionally, the order of operations may be rearranged. A process may terminate when its operations are completed, but may have additional steps not discussed or included in the diagram. Moreover, not all operations in any particularly described process may occur in all embodiments. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, the termination of the function may correspond to a return of the function to the calling function or the main function.
[0102] Furthermore, embodiments of the disclosed subject matter may be implemented, at least in part, either manually or automatically. The manual or automatic implementation may be performed, or at least assisted, through the use of a machine, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored on a machine-readable medium. The necessary tasks may be performed by a processor.
[0103] The various methods or processes outlined herein may be coded as software executable on one or more processors using any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and / or programming or scripting tools, and may be compiled as executable machine language code or intermediate code that runs on a framework or virtual machine. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.
[0104] Embodiments of the present disclosure may be embodied as methods, of which an example is provided. Acts performed as part of a method may be ordered in any suitable manner. Thus, embodiments may be constructed in which acts are performed in an order different from that illustrated, including simultaneously performing some acts shown as sequential acts in an exemplary embodiment. While the present disclosure has been described with reference to certain preferred embodiments, it will be understood that various other adaptations and modifications may be made within the spirit and scope of the present disclosure. It is therefore the intent of the appended claims to cover all such variations and modifications that fall within the true spirit and scope of the present disclosure.
Claims
1. 1. A control system for controlling a legged robot, comprising: a processor; and a memory having instructions stored thereon, the instructions, when executed by the processor, causing the control system to: In response to receiving a task, initialize a stochastic filter with parameters associated with states of a reference trajectory of the legged robot, the parameters being predetermined for the task, and encoding the reference trajectory including a combination of different trajectories for coordinated motion primitives of different actuators of the legged robot that moves the legged robot according to the task, the parameters being defined based on a combination of a set of weighted basis functions, the set of basis functions including a linear basis function for a center of mass of the legged robot and a cycloidal basis function for feet of the legged robot, and the instructions, when executed by the processor, further cause the control system to: decoding the parameters to generate the reference trajectory; responsive to receiving a feedback signal indicative of a change in a state of the legged robot moving according to the reference trajectory, executing the stochastic filter to iteratively track the state of the reference trajectory that satisfies a performance goal for the state of the legged robot, and updating the parameters; updating the reference trajectory by decoding the updated parameters; generating a control input for an actuator of the legged robot based on the updated reference trajectory; A control system for controlling a legged robot, the control system controlling the actuators of the legged robot based on the corresponding control inputs.
2. The probabilistic filter predicting a current state of the reference trajectory based on a previous state of the reference trajectory using a predictive model; receiving the feedback signal indicative of one or a combination of a current state of the legged robot and a state of an environment surrounding the legged robot; The control system of claim 1 , configured to update the current state of the reference trajectory based on the feedback signal using a measurement model that tests the performance objective, the measurement model being subject to measurement noise.
3. The control system of claim 2 , wherein the feedback signal is received in response to detecting new contact with a surface by at least one leg of the legged robot.
4. The control system of claim 3 , wherein the feedback signal is configured to control operation of at least a stance controller and a swing controller associated with the legged robot.
5. The control system of claim 4 , wherein the stance controller and the swing controller are each configured to generate torque commands for movement of the legged robot based on the feedback signals.
6. The control system of claim 2 , wherein the predictive model is an identity model subject to process noise that predicts the state of the reference trajectory within a variance defined by the process noise.
7. 2. The control system of claim 1, wherein the performance goals include one or a combination of requirements regarding (i) a desired foot lift height / step height of the legged robot, (ii) a desired walking speed of the legged robot, (iii) a desired turning speed of the legged robot, (iv) a desired stair height for ascending and descending stairs, (v) a desired energy expenditure of the legged robot, (vi) a desired amount of foot slippage of the legged robot, and (vii) a desired ground reaction force of the legs of the legged robot.
8. receiving the task from a supervisory controller; selecting predetermined parameters from a database based on said task; The control system of claim 1 , further configured to initialize the parameters of the stochastic filter with the selected predetermined parameters.
9. initializing the parameters of the stochastic filter with a predetermined set of parameters associated with a received reference trajectory associated with the task; determining a set of performance goals for the received task; The control system of claim 8 , further configured to update the parameters associated with the reference trajectory associated with the task to meet the performance goal.
10. The control system of claim 1 , wherein the tasks include one or a combination of walking straight, turning right or left, climbing stairs, walking with a high leg, and trotting.
11. The control system of claim 1 , wherein the stochastic filter is an extended Kalman filter (EKF) configured to calculate a Kalman gain by calculating a gradient of the performance target.
12. The control system of claim 1 , wherein the stochastic filter is an unscented Kalman filter (UKF) configured to calculate a Kalman gain by evaluating the parameters with respect to the performance target.
13. A method for controlling a legged robot, comprising: in response to receiving a task, initializing a stochastic filter with parameters associated with states of a reference trajectory of the legged robot, the parameters being predetermined for the task and encoding the reference trajectory comprising a combination of different trajectories for coordinated motion primitives of different actuators of the legged robot that moves the legged robot according to the task, the parameters being defined based on a combination of a set of weighted basis functions, the set of basis functions comprising linear basis functions for a center of mass of the legged robot and cycloidal basis functions for feet of the legged robot, the method further comprising: decoding the parameters to generate the reference trajectory; responsive to receiving a feedback signal indicative of a change in a state of the legged robot moving according to the reference trajectory, executing the stochastic filter to iteratively track the state of the reference trajectory that satisfies a performance goal for the state of the legged robot, and updating the parameters; updating the reference trajectory by decoding the updated parameters; generating a control input for an actuator of the legged robot based on the updated reference trajectory; and controlling the actuators of the legged robot based on the corresponding control inputs.
14. predicting a current state of the reference trajectory based on a previous state of the reference trajectory using a predictive model; receiving the feedback signal indicative of one or a combination of a current state of the legged robot and a state of an environment surrounding the legged robot; 14. The method of claim 13, further comprising: updating the current state of the reference trajectory based on the feedback signal using a measurement model that tests the performance objective, the measurement model being subject to measurement noise.
15. The method of claim 14 , wherein the feedback signal is received in response to detecting a new contact with a surface by at least one leg of the legged robot.
16. The method of claim 15 , wherein the feedback signal is configured to control operation of at least a stance controller and a swing controller associated with the legged robot.
17. 17. The method of claim 16, wherein the stance controller and the swing controller are each configured to generate torque commands for movement of the legged robot based on the feedback signal.
18. The method of claim 14 , wherein the predictive model is an identity model subject to process noise that predicts the state of the reference trajectory within a variance defined by the process noise.
19. A non-transitory computer-readable medium storing a program for causing a legged robot to execute a reference trajectory state generation process, the reference trajectory state generation process comprising: and initializing a probabilistic filter with parameters associated with states of a reference trajectory of the legged robot in response to receiving a task, the parameters being predetermined for the task and encoding the reference trajectory comprising a combination of different trajectories for coordinated motion primitives of different actuators of the legged robot that moves the legged robot according to the task, the parameters being defined based on a combination of a set of weighted basis functions, the set of basis functions comprising linear basis functions for a center of mass of the legged robot and cycloidal basis functions for feet of the legged robot, the process further comprising: decoding the parameters to generate the reference trajectory; responsive to receiving a feedback signal indicative of a change in a state of the legged robot moving according to the reference trajectory, executing the stochastic filter to iteratively track the state of the reference trajectory that satisfies a performance goal for the state of the legged robot, and updating the parameters; updating the reference trajectory by decoding the updated parameters; generating a control input for an actuator of the legged robot based on the updated reference trajectory; and controlling the actuators of the legged robot based on the corresponding control inputs.