Abstract
Legged locomotion poses significant challenges due to its nonlinear, underactuated and hybrid dynamic properties. These challenges are exacerbated by the high-speed motion and presence of aerial phases in dynamic legged locomotion, which highlights the requirement for online planning based on current states to cope with uncertainty and disturbances. This article proposes a real-time planning and control framework integrating motion planning and whole-body control. In the framework, the designed motion planner allows a wider body rotation range and fast reactive behaviors based on the 3-D single rigid body model. In addition, the combination of a Bézier curve based trajectory interpolator and a heuristic-based foothold planner helps generate continuous and smooth foot trajectories. The developed whole-body controller uses hierarchical quadratic optimization coupled with the full system dynamics, which ensures tasks are prioritized based on importance and joint commands are physically feasible. The performance of the framework is successfully validated in experiments with a torque-controlled quadrupedal robot for generating dynamic motions.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
1 Introduction
Legged robots offer significant advantages over wheeled or tracked robots, as these advantages help traverse challenging terrain and unstructured environments. The ability to perform dynamic locomotion over unstructured terrain in unpredictable environments is extremely essential in real-world deployments. However, control of dynamic legged locomotion remains a challenging problem due to the difficulty in dynamical stabilization and the presence of unknown external disturbances. To achieve robust planning and control of dynamic locomotion, it is critical and necessary to adjust the motion plan according to the current robot state.
In recent years, some progresses have been achieved in dynamic legged locomotion with bipedal [1,2,3,4,5] and quadrupedal [6,7,8,9,10,11,12,13,14,15] robots. These solutions can be classified into optimization-based approaches [1, 2, 7, 10, 11] and learning-based approaches [4, 12, 13]. The optimization-based approach has been widely used, but it often needs to solve computationally expensive nonlinear optimization and suffers convergence issues, which makes them challenging to be implemented in real-time. The learning-based approach builds a neural network directly mapping sensor measurements to desired motor control signals but often requires high-quality training data and can not be adjusted partially. Compared with learning-based approaches that lack safety guarantees, the optimization-based approach is more suitable for the motion control of robots because it has the potential to take full-body dynamics and all physical constraints into consideration.
The optimization-based approach can be divided into trajectory optimization approaches [3, 16, 17] and predictive control approaches [7, 10, 11] according to whether they can be run online. The trajectory optimization approach solves the locomotion problem offline over the long-time horizon of a specific motion while optimizing over a large number of variables consisting of contact sequences, contact timings, contact locations and the whole-body trajectory. These variables can be obtained automatically while taking into account physical constraints such as full-body dynamics, joint motion limits, unilateral contact constraints, and friction cone constraints. Conversely, the predictive control approach emphasizes solving the locomotion problem online over the short-time horizon and correcting motions to cope with model mismatches and unpredictable disturbances.
In the last few years, the trajectory optimization approach has been widely used in legged locomotion to generate complex trajectories with whole-body dynamics to explore more possible behaviors, solving the locomotion problem over a long-time horizon at once [3, 16,17,18,19]. For example, a method has been developed for whole-body trajectory generation of multi-limbed robotic systems with unilateral constraints introduced by contact with the environment, which can eliminate the requirement for a priori contact mode ordering and satisfy all dynamic and contact constraints [16]. Although many impressive results are presented, the trajectory optimization approach is too slow to be applied online on the real robot because of the high computational cost of nonlinear optimization problems.
Instead, some works in the predictive control approach focus on the online motion generation and execution on the real robot [6, 10, 11, 20]. For instance, The locomotion problem is formulated as a convex optimization by simplifying the robot dynamics and expressing the robot’s orientation as Euler angles. While realizing the online planning of robot motions, some limitations are also introduced, such as the base cannot have a large range of roll and pitch motions, and the joint torque limits cannot be considered. A representation-free model predictive control framework is proposed to control various 3-D motions of a quadrupedal robot with the rotation matrix representation [11]. Since the rotation matrix is the natural representation of the special orthogonal group SO(3), representing orientation with the rotation matrix instead of Euler angles and quaternions can avoid the singularity and ambiguity issues [21, 22]. Although the orientation limitation is removed, the joint torque limit still can not be imposed. The use of simplified models and the omission of important constraints may make the generated trajectories unrealizable in the real robot.
To combine the advantages of the trajectory optimization approach and predictive control approach, there are some methods [7, 23, 24] trying to solve the locomotion problem online with differential dynamic programming (DDP), considering the whole-body dynamics and other physical constraints. These DDP-like methods only optimize a local control policy rather than control-state trajectories by iteratively solving a low-order Taylor approximation of the nonlinear locomotion problem, which makes them computationally efficient, but also limits their applicability as state constraints cannot be easily incorporated.
Most of the above works use only one model, some use a reduced-order model [6, 10, 11, 25], and some use a full-order model [7, 16, 23, 24, 26]. Actually, the whole locomotion control problem can be decomposed into a motion planning module and a motion tracking module [27,28,29,30]. The latter serves as a trajectory stabilizer calculating joint commands to track the task-space and joint-space trajectory references generated by the motion planner compliantly. The decomposition offers the possibility to use different models in motion generation and execution.
Thanks to the decomposition, this paper proposes a real-time planning and control framework shown in Fig. 1 for robust, dynamic quadrupedal locomotion containing two main modules: motion planning and whole-body control. The motion planner generates task-space references such as base motions, center-of-mass (CoM) motions, feet contact positions and forces, as well as limb motion reference trajectories. The tracking controller can execute various tasks and accomplish multiple control objectives, accounting for whole-body dynamics, manipulating contact forces to control the floating base, and transforming task space references into joint-space commands. Although the gait scheduler and the state estimator are also included in the proposed framework, they will not be explained in detail here since they are out of the scope of this paper. Actually, many gait generation approaches [31, 32] and body pose estimation methods [33,34,35,36] can be used to schedule gait and estimate the base state of quadrupedal robots.
The contributions of this research can be summarized below:
-
1.
A real-time planning and control framework is developed for quadrupedal robots capable of performing robust and dynamic locomotion, mainly consisting of a motion planner and a whole-body controller.
-
2.
The 3-D single rigid body model (3D-SRBM) achieves a balance of expressivity and simplicity in the planning phase, allowing to conduct the planning and tracking of base orientation on SO(3) manifold to realize a wider body rotation range while allowing the planner to run in a receding horizon fashion to cope with disturbances.
-
3.
A trajectory interpolator based on the Bézier curve is integrated with a heuristic-based foothold planner, which provides continuous and smooth Cartesian velocity and position of foot-ends simultaneously.
-
4.
The developed whole-body controller uses hierarchical quadratic optimization coupled with the full system dynamics and physical constraints, which ensures tasks are prioritized based on importance, and joint commands sent to actuators are physically feasible.
-
5.
The effectiveness of the framework is validated in real-world experiments on the A1 robot.
The rest of this paper is organized as follows. The following section presents the motion planner generating body trajectory commands, desired foot reference trajectories, and contact forces. Section 3 presents the whole-body controller formulating the control problem as a series of quadratic programs. Section 4 describes the control framework’s use on the physical robot. Finally, Sect. 5 gives discussions and concludes the paper.
2 Motion Planning
The motion planner receives operator input and generates body motion reference, foot motion trajectories, and optional reaction force profiles. Planning is achieved via three components, detailed in the following sections and illustrated in Fig. 2. The body motion reference sub-module is responsible for generating desired body velocity and pose that are used in the foot placement planning and contact force optimization sub-modules with the scheduled gait and estimated robot state to plan foot positions and reaction forces.
2.1 3D-SRBM
The 3D-SRBM shown in Fig. 3 especially fits those robots with lightweight legs in which the robot base makes the largest contribution to the total mass of the whole robot. The underlying assumptions are: (1) their negligible limb masses do not contribute significantly to the momentum of the whole robotic system, and (2) the leg configuration does not influence the body inertia. This slightly more complex model approximates the robot as a single rigid body subject to external forces at the contact patches, thus it is still possible to consider the angular momentum in the planning phase even though it ignores limb dynamics.
The state of the 3D-SRBM can be collected into a tuple as
where \({\varvec{p}}_{B} \in {\mathbb {R}}^{3}\) and \({\dot{{\varvec{p}}}_{B}} \in {\mathbb {R}}^{3}\) are the CoM position and velocity, respectively. \({\varvec{R}}_{B} \in \text {SO(3)} = \left\{ {\varvec{R}} \in {\mathbb {R}}^{3\times 3} \vert {\varvec{R}}^\mathrm{{T}}{\varvec{R}} = {\mathbb {I}}, \text {det}({\varvec{R}}) = +1 \right\}\) is the body orientation evolving on the SO(3) manifold. \(\text {det}(\cdot )\) calculates the determinant of a rotation matrix and \({\mathbb {I}}\) indicates the \(3 \times 3\) identity matrix. \(^{B}\varvec{\omega }_{B} \in {\mathbb {R}}^{3}\) represents the angular velocity of the robot body expressed in the body frame \(\{B\}\).
Equations of motion of the 3D-SRBM are given by
where m is the body mass; \({\varvec{f}}_i\) and \({\varvec{a}}_\mathrm{{g}}\) are three dimensional vectors representing the contact force, and gravitational acceleration; \(^{B}{\varvec{I}} \in {\mathbb {R}}^{3 \times 3}\) is the equivalent rotational inertia tensor expressed in the body frame \(\{B\}\); n is the number of contacts; \({\varvec{r}}_i\) is the location of i-th foot \({\varvec{p}}_{i}\) relative to the CoM of the robot\({\varvec{p}}_{B}\), which is equivalent to the moment arm of the contact force; \({\varvec{f}}_{i}\) is the contact force of the i-th foot. By default, and unless otherwise stated, all of the above quantities are relative to the inertial frame \(\{W\}\).
In the dynamics shown in Eqs. (2) and (3), \({\varvec{r}}_i\) is known when the foothold location \({\varvec{p}}_i\) is planned in advance. The contact force \({\varvec{f}}_{i} \in {\mathbb {R}}^{3}\) is chosen as the system input. These contact forces create an external wrench
where \(i \in \{1,2,3,4\}\) is the foot index for the front left (FL), front right (FR), rear left (RL), and rear right (RR), respectively. \({\varvec{f}}\) and \(^{B}\varvec{\tau }\) are the total force and torque, respectively; the hat operator \(\hat{(\cdot )}\) represents the cross-product operation.
Therefore, The dynamics of the rigid body Eqs. (2) and (3) can be rewritten as
2.2 Body Motion Reference
The body pose trajectory evolves on the special Euclidean SE(3) group. Although its motion can be divided as a translational motion in vector space and a rotational motion in special orthogonal group SO(3), it is still impossible to directly apply vector operations to the trajectory due to the special structure of SO(3) manifold. Unlike other representations such as the Euler angles and the unit quaternions, the natural nine parameters representation of the body orientation as an element of SO(3) is unique and non-singular. Therefore, it is more appropriate to use the rotation matrix representation.
The desired velocity \({\varvec{V}}_{B,k} = \left( ^{W}\varvec{\omega }_{B,k}, ^{W}{\varvec{v}}_{B,k}\right)\) and pose \({\varvec{X}}_{B,k} = \left( {\varvec{R}}_{B,k}, {\varvec{p}}_{B,k} \right)\) are updated at every time step k. The above values are calculated with a reference velocity input \({\varvec{V}} = \left( \varvec{\omega }_{k+1}^\mathrm{{cmd}}, {\varvec{v}}_{k+1}^\mathrm{{cmd}} \right)\) expressed in the body coordinate from a complex path planner or a user-operated joystick. The desired body velocity and pose are updated as
where \(\Delta t\) is the timestep, and the mapping function \(\text {Exp}: {\mathbb {R}}^{3} \rightarrow \text {SO(3)}\) is the retraction for \(\text {SO(3)}\).
2.3 Foot Placement Planning
The desired foothold location is determined by a foot placement planner designed based on the Raibert Heuristic [37] and Capture Point [38]. The main idea is to force the leg’s landing angle to be the same as its leaving angle if the robot moves at the commanded speed. the location of foot i is calculated with the following equation:
where \({\varvec{p}}_{B}\) is the body position, \({\varvec{R}}_{z}\left( \psi \right)\) is the body orientation expressed as a rotation matrix, only the rotation along z-axis is considered. \(^{B}{{\varvec{l}}_{i}}\) is the position of hip i relative to the body position \({\varvec{p}}_{B}\), \(T_\mathrm{{st}}\) is the stance time for each foot, \({\varvec{v}}_{i}\) is the velocity of hip i, \({\varvec{v}}_{i}^\mathrm{{cmd}}\) is the desired velocity of hip i which can be calculated by the body linear and angular velocity commands, and K represents a gain, usually taking the value 0.03.
Although the expected foothold location is given by Eq. (10), the foot still needs to lift off and touch down periodically to make the robot move. During the swing phase, when the foot lifts off in the air, the planned velocity and position of the foot should be smooth enough for the whole-body controller to track. The Bézier curve is chosen to generate the swing foot trajectory, for it just needs a set of discrete control points to define a smooth and continuous curve.
Given the start foot-end position \({\varvec{p}}_{i,k}^\mathrm{{s}}\) recorded when the foot lifts off, the desired foot-end position \({\varvec{p}}_{i,k}^\mathrm{{e}}\) calculated by Eq. (10), the phase signal \(\phi _{i,k}\) from the gait scheduler, and the maximum foot clearance \(h_f\), the quadratic Bézier curve that requires only three control points is naturally suitable for interpolating out the reference velocity and position of foot i in swing-phase at the k-th timestep. Figure 4 illustrates the diagram of generating swing foot trajectory with the quadratic Bézier curve.
The conventional procedure to use the quadratic Bézier curve is to first determine the coordinates of the control point \({\varvec{p}}_{i,k}^\mathrm{\mathrm{{c}}}\). Then it inputs the coordinates of start point \({\varvec{p}}_{i,k}^\mathrm{{s}}\), control point \({\varvec{p}}_{i,k}^\mathrm{{c}}\) and end point \({\varvec{p}}_{i,k}^\mathrm{{e}}\) into standard Bézier curve algorithms. If the projection of control point \({\varvec{p}}_{i,k}^\mathrm{{c}}\) on the x–y plane coincides with the middle point \({\varvec{p}}_{i,k}^\mathrm{{m}}\), the conventional procedure can be simplified to firstly obtain foot position and velocity with only the start and end points, and then correct the z-component with the desired foot clearance. These two steps are shown as follows
where, \(B_{k}\) is the Bézier curve, \(B_{k}^{'}\) is the derivative of the Bézier curve, \(T_\mathrm{{sw}}\) is the swing time for each foot, \({\varvec{p}}_{i,k}^\mathrm{{ref}}\) and \({\varvec{v}}_{i,k}^\mathrm{{ref}}\) are interpolated foot-end position and velocity. The foot height and vertical velocity are corrected with
2.4 Contact Force Optimization
The desired contact forces are calculated by an optimization problem making the robot follow the given body trajectory updated by equations from (6) to (9). To make the optimization convex, some approximations [6] can be made. To be specific, the system dynamics Eq. (5) and the contact friction cone constraint should be linearized.
The body orientation can be parametrized as Z–Y–X Euler angles \(\varvec{\Theta } = \begin{bmatrix} \phi&\theta&\psi \end{bmatrix}^\mathrm{{T}}\), where \(\phi\), \(\theta\) and \(\psi\) are the roll, pitch and yaw angles, respectively. Therefore, the transformation from the body frame to the inertial frame can be decomposed as
where \({\varvec{R}}_{x}(\phi )\), \({\varvec{R}}_{y}(\theta )\) and \({\varvec{R}}_{z}(\psi )\) are rotations of \(\phi\), \(\theta\) and \(\psi\) about the X-, Y-, and Z-axis, respectively.
With this parametrization, the relationship between the body angular velocity and the rate of change of Euler angles can be expressed as
If roll and pitch angles are small and the body is not erected or inverted, the rate of Euler angles is
It is worth noting that the rotation order is critical, with other order, the above approximation will not hold.
If the angular velocity is small, the term \(\varvec{\omega } \times \left( {\varvec{I}}\varvec{\omega }\right)\) will not contribute significantly to the body orientation dynamics. Then, the orientation dynamics can be approximated with
With small roll and pitch angles assumption, the inertia tensor and the orientation dynamics become
After combining Eqs. (2), (19) and (20), the linearized robot dynamics can be expressed as
where
When the foot is in stance phase, a friction cone constraint must be imposed on the contact force \({\varvec{f}} \in {\mathbb {R}}^{3}\) as follows
Since the friction cone constraint poses some computational challenges, a better option is to consider its conservative pyramid approximation
Given a desired body pose \({\varvec{q}}_{B}^\mathrm{{des}} = \begin{bmatrix} {\varvec{p}}_{B}^\mathrm{{T}}&\varvec{\Theta }^\mathrm{{T}} \end{bmatrix}^\mathrm{{T}}\) and velocity \(\dot{{\varvec{q}}}_{B}^\mathrm{{des}} = \begin{bmatrix} \dot{{\varvec{p}}}_{B}^\mathrm{{T}}&\dot{\varvec{\Theta }}^\mathrm{{T}} \end{bmatrix}^\mathrm{{T}}\), we use PD control to compute the desired acceleration
where \(K_\mathrm{{p}}\) is position gain, and \(K_\mathrm{{d}}\) is velocity gain. \({\varvec{q}}_{B}\) and \(\dot{{\varvec{q}}}_{B}\) are the current body pose and velocity. With equations from (23) to (24) and Eq. (27), a Quadratic Program (QP) can be constructed to find contact forces, which includes an acceleration error cost, contact selection constraints and linearized friction cone constraints.
where \({\textbf{Q}}\) and \({\textbf{R}}\) represent diagonal weight matrices, and \({\varvec{H}}\) is the friction pyramid matrix corresponding to friction cone constraints Eq. (26), and \({\varvec{D}}\) is the contact selection matrix for swing feet.
3 Whole-Body Control
After the motion planner generates reference motions and reaction forces, the whole-body controller computes joint torque, velocity and position commands. Motion tracking is achieved through three submodules and the interaction between them is illustrated in Fig. 5. First, the task formulation sub-module formulates task-space tasks as linear functions of generalized accelerations and external forces and puts them in a task hierarchy. Then, the hierarchy is solved by the hierarchical optimization sub-module to get the optimal generalized accelerations and external forces. Finally, the desired joint torques is calculated from the optimal accelerations and forces in the hybrid joint controller sub-module.
3.1 System Underactuation
The quadruped robot shown in Fig. 6 belongs to the multi-body dynamic system, and its equations of motion is relatively complicated, written as
where \({\varvec{q}} \in {\mathbb {R}}^{n_q}\) and \({\varvec{v}} \in {\mathbb {R}}^{n_v}\) are generalized coordinates and velocities, and for those robotic systems with floating-bases, \(n_q\) is different with \(n_v\). \({\varvec{M}}({\varvec{q}}) \in {\mathbb {R}}^{n_v \times n_v}\) stands for the generalized inertia matrix of the robot, and \({\varvec{h}}({\varvec{q}}, {\varvec{v}}) \in {\mathbb {R}}^{n_v}\) is the nonlinear term (including Coriolis, centrifugal and gravity forces). \({\varvec{S}} = \begin{bmatrix} {\varvec{0}}_{n_{j} \times (n_{v}-n_{j})}&{\varvec{I}}_{n_{j} \times n_{j}} \end{bmatrix}\) is the selection matrix, representing the system under-actuation that the floating-base is not directly actuated by joint torques \(\tau \in {\mathbb {R}}^{n_{j}}\). \({\varvec{J}}_{c} = \begin{bmatrix} {\varvec{J}}_{c_1}^\mathrm{{T}}&\ldots&{\varvec{J}}_{c_{n_c}}^\mathrm{{T}} \end{bmatrix} ^\mathrm{{T}} \in {\mathbb {R}}^{3n_c \times n_v}\) is the Jacobian matrix mapping contact forces \(\varvec{\lambda } \in {\mathbb {R}}^{3n_c}\) to the joint-space torques.
The equations of motion Eq. (29) of a physical system describes the relationship between the accelerations \(\dot{{\varvec{v}}}\), the external contact forces \(\varvec{\lambda }\) and the joint torques \(\varvec{\tau }\). For a quadruped robot, its equations of motion can be decomposed into underactuated and actuated parts
where Eq. (30) excluding joint torques is the first 6 equations of Eq. (29) related to the floating base, and Eq. (31) is the rest of the equations. Equation (30) expresses the relationship between the centroidal momentum of the whole robot and external contact forces. The joint torques \(\varvec{\tau }\) only appear in Eq. (31) and is linearly dependent on \(\dot{{\varvec{v}}}\), so \(\varvec{\lambda }\) can be expressed as
For any combination of generalized accelerations \(\dot{{\varvec{v}}}\) and external contact forces \(\varvec{\lambda }\), there always exists a solution for joint torques \(\varvec{\tau }\). All occurrences of the joint torques can be replaced with Eq. (32), so it is enough to use Eq. (30) instead of Eq. (29) as the dynamic constraint during the optimization. The optimization variable \({\varvec{z}}\) can be chosen as
This decomposition largely reduces the number of optimization variables. As a result, it reduces solution time and allows the controller to run at a frequency of 500 Hz in real test.
3.2 Task Formulation
All robot tasks are often modelled in the form of a general task \({\textbf{T}}\) expressed as constraints on the optimization variable \({\varvec{z}}\), including linear equality and/or inequality:
where \({\varvec{A}} \in {\mathbb {R}}^{m \times (n_{v} + 3n_{c})}\) is the equality constraint matrix, \({\varvec{b}} \in {\mathbb {R}}^{m}\) is the equality constraint vector, \({\varvec{C}} \in {\mathbb {R}}^{k \times (n_{v} + 3n_{c})}\) is the inequality constraint matrix, and \({\varvec{d}} \in {\mathbb {R}}^{k}\) is the inequality constraint vector. \({\varvec{s}}_\mathrm{{eq}} \in {\mathbb {R}}^{m}\) and \({\varvec{s}}_\mathrm{{in}} \in {\mathbb {R}}^{k}\) are slack variables. It should be noted that, for a specific task, the above equality constraint and inequality constraint may exist together or independently.
(1) Dynamic consistency To ensure physical consistency, the underactuated part Eq. (30) can be expressed in the general task form Eq. (34) with
which serves as the dynamic consistency constraint.
(2) Torque saturation limits To ensure the solved joint torques are physically consistent, the joint torque limitations should be considered. The torque limitation constraint can be formulated in the general task form Eq. (34) with
where \(\varvec{\tau }^\mathrm{{min}}\) and \(\varvec{\tau }^\mathrm{{max}}\) are the lower and upper torque limits, respectively.
(3) Contact force limits When the point feet are in contact with the ground, friction cone constraints on the resulting reaction forces \(\varvec{\lambda } \in {\mathbb {R}}^{3n_c}\) should be enforced. All contact force constraints for active contacts have been derived from Eq. (25) to Eq. (26), so the contact force limits constraint is expressed as
(4) Contact motion task When the point feet are in stance phase, three constraint equations are introduced \({\varvec{p}}_{i}(t) = \textrm{const}\). Then, the constraint is differentiated twice to generate the following:
where \({\varvec{J}}_{\textrm{c}_{i}}\) is the corresponding end-effector Jacobian. By stacking the above constraints for all active contacts together, the contact motion task can be formulated as
(5) Contact force regularization task Given reference contact forces \(\varvec{\lambda }^\mathrm{{ref}}\) generated by Eq. (28), we can also directly penalize the optimization variable \({\varvec{z}}\) from reference values, with
This contact force regularization task is helpful for directly controlling specific contact forces. It also provides regularization on the optimization variable \({\varvec{z}}\) to solve the QP problem faster.
(6) Cartesian space position control task For the body with position \({\varvec{p}} \in {\mathbb {R}}^{3}\) and linear velocity \(\dot{{\varvec{p}}} \in {\mathbb {R}}^{3}\), the relationship between linear velocity in Cartesian space and the generalized velocity is
which can be differentiated as
The deviation from the desired Cartesian linear acceleration can be penalized with
where \({\varvec{K}}_\mathrm{{p}}^\mathrm{{pos}}\) and \({\varvec{K}}_\mathrm{{d}}^\mathrm{{pos}}\) are proportional gain and derivative gain, usually taking diagonal positive definite matrices. \({\varvec{p}}^\mathrm{{ref}}\), \(\dot{{\varvec{p}}}^\mathrm{{ref}}\) and \(\ddot{{\varvec{p}}}^\mathrm{{ref}}\) are specified by a high level motion planner, \({\varvec{p}}\) and \(\dot{{\varvec{p}}}\) are computed with forward kinematics using the estimated state. Many tasks, such as CoM position control task, Swing foot position control task, are specified with this form.
(7) Cartesian space orientation control task For the body with orientation \({\varvec{R}} \in \text {SO(3)}\) and angular velocity \(\varvec{\omega } \in {\mathbb {R}}^{3}\), the relationship between angular velocity in Cartesian space and the generalized velocity is
which can be differentiated as
The deviation from the desired Cartesian angular acceleration can be penalized with
where \({\varvec{K}}_\textrm{p}^\mathrm{{ori}}\) and \({\varvec{K}}_\textrm{d}^\mathrm{{ori}}\) proportional gain and derivative gain, usually taking diagonal positive definite matrices. \({\varvec{R}}^\mathrm{{ref}}\), \(\varvec{\omega }^\mathrm{{ref}}\) and \(\dot{\varvec{\omega }}^\mathrm{{ref}}\) are specified by a high level motion planner, \({\varvec{R}}\) and \(\varvec{\omega }\) are computed by forward kinematics with the estimated state, and \(\text {Log}: \text {SO(3)} \rightarrow {\mathbb {R}}^{3}\) is the logarithm map. Some tasks such as Base orientation control task are specified with this form.
(8) Minimum motion task In order to determine all joint states and avoid internal drift, the research also introduces a task spanning the configuration space. For example, the deviation can be penalised from the nominal configuration and velocity with
where \({\varvec{q}}_{n_{\tau }}^\mathrm{{nom}}\) and \({\varvec{v}}_{n_{\tau }}^\mathrm{{nom}}\) are the nominal generalized positions and velocities of actuated joints, \({\varvec{K}}_\mathrm{{p}}^\mathrm{{nom}}\) and \({\varvec{K}}_\mathrm{{d}}^\mathrm{{nom}}\) are proportional and derivative gains. It is worth mentioning that these tasks are generally assigned the lowest priority.
3.3 Hierarchical Optimization
The general task Eq. (34) can be formulated as solving a QP problem:
The equivalent QP problem is
where \({\varvec{Z}}=\begin{bmatrix} {\varvec{z}}^\mathrm{{T}}&{\varvec{s}}_\mathrm{{in}}^\mathrm{{T}} \end{bmatrix}^\mathrm{{T}}\) is the equivalent optimization variable, the Hessian matrix \({\varvec{P}}\) and the gradient vector \({\varvec{c}}\) can be calculated from \({\varvec{P}}=\bar{{\varvec{A}}}^\mathrm{{T}}\bar{{\varvec{A}}}\) and \({\varvec{c}}=-\bar{{\varvec{A}}}^\mathrm{{T}}\bar{{\varvec{b}}}\). The expressions of the augmented equality constraint matrix \(\bar{{\varvec{A}}}\), augmented equality constraint vector \(\bar{{\varvec{b}}}\), augmented inequality constraint matrix \(\bar{{\varvec{C}}}\), augmented inequality constraint vector \(\bar{{\varvec{d}}}\) are
For a set of tasks with priorities \({\textbf{T}}_{1}, \ldots , {\textbf{T}}_{n}\), they can be solved under strict prioritization. For the task with priority p, it is defined as:
The null space projector of this task is defined as:
where \(\{\cdot \}^{\dagger }\) is the singular value decomposition (SVD) based pseudo-inverse. The augmented task Jacobian \(\bar{{\varvec{A}}}_{p}\) is defined as:
The null space projector of the augmented task Jacobian \(\bar{{\varvec{A}}}_{p}\) is
An efficient recursive implementation is
Considering tasks \({\textbf{T}}_{1}, {\textbf{T}}_{2}, \ldots , {\textbf{T}}_{p+1}\), the augmented optional solution is
where \(\bar{{\varvec{N}}_{1}} = {\varvec{N}}_{1}\) and \(\bar{{\varvec{z}}}_{1} = {\varvec{z}}_{1}\). \({\varvec{z}}_{p+1}^{*}\) is solved from the optimization problem:
After collecting \({\varvec{z}}\), \({\varvec{s}}_\mathrm{{in}}\) together \({\varvec{Z}}=\begin{bmatrix} {\varvec{z}}^\mathrm{{T}}&{\varvec{s}}_\mathrm{{in}}^\mathrm{{T}} \end{bmatrix}^\mathrm{{T}}\) and stacking inequality constraints to make the notation shorter, similar to the process from Eq. (48) to Eq. (49), the QP problem Eq. (56) becomes:
where the Hessian matrix \({\varvec{P}}\) and the gradient \({\varvec{c}}\) can be calculated from \({\varvec{P}}=\bar{{\varvec{A}}}^\mathrm{{T}}\bar{{\varvec{A}}}\) and \({\varvec{c}}=-\bar{{\varvec{A}}}^\mathrm{{T}}{\varvec{b}}\) with:
3.4 Hybrid Joint Controller
After solving a set of QP problems, the optimal generalized accelerations \(\dot{{\varvec{v}}}^{*}\) can be obtained from Eqs. (56) and (33), and the optimal joint torques \(\varvec{\tau }^{*}\) can be calculated with Eq. (32). The desired joint velocity \({\varvec{v}}_{j}^\mathrm{{des}}\) and position \({\varvec{q}}_{j}^\mathrm{{des}}\) can be computed by adding the joint position and velocity portions to the measured joint velocity \({\varvec{v}}_{j}\) and position \({\varvec{q}}_{j}\) as
The joint action \(\left( {\varvec{q}}_{j}^\mathrm{{des}}, K_{\text {p},j}, {\varvec{v}}_{j}^\mathrm{{des}}, K_{\text {d},j}, \varvec{\tau }^{*}\right)\) is sent the hybrid joint controller to compute motor torque commands as
4 Experiment
The proposed planning and control framework is validated through experiments on a quadrupedal robot A1 developed by Unitree Robotics. The robot has 18 degrees of freedom, a height of 0.4 m, and a weight of 14 kg. Four experiments were performed, namely body twisting, sharp turning, multi-gaited locomotion, and disturbance response. A video recording of the experiments is supported by the video submission.
The whole framework including gait generator, motion planner, whole-body controller and state estimator is executed on a dedicated computer with a frequency of 500 Hz. For modelling of kinematics and dynamics, the open-source library Pinocchio [39] is used, which is a C++ implementation of the modern rigid body algorithms for multibody systems [40]. To solve each QP problem numerically, a numerical optimization package OSQP [41] and its C++ interface OSQP-Eigen are used.
All experiments use the same parameters, feedback gains, and task arrangements. The equivalent body property in Eq. (23) and feedback gains in Eq. (27) used in the motion planning module are collected in Tables 1 and 2, respectively. The task hierarchy used in the whole-body control module is summarized in Table 3. The hierarchy first maintains the stability of the robot and then plans movements to achieve task requirements. In detail, satisfying the dynamic constraints and hardware limitations has the highest priority. Then, satisfying the task enforces kinematic contact constraints as a second priority. After that, tasks tracking task-space motion and force references have the third priority. Last, the task of avoiding internal drift and keeping a better-looking posture has the lowest priority.
4.1 Body Twisting
To examine the body orientation tracking performance of the proposed framework, the body twisting experiment is conducted. Figure 7 presents video snapshots of the robot performing a body twisting motion. The robot is commanded to rotate its body in x-, y- and z-directions respectively while standing with all feet and its CoM position unchanged. The operator sends angular velocity commands, and then the motion planner calculates the reference body velocity and pose trajectories, which are tracked by a whole-body controller with equations from (6) to (9).
Figure 8 shows the body orientation reference tracking data. Comparing Fig. 8a, c, e, it can be found that tracking errors in the x-direction are larger than those in the other two directions due to the asymmetry of the robot in the three directions. Also, the robot’s internal frictional resistance in the x-direction is greater, making it more difficult to control. From Fig. 8b, d, f, it can be seen that the angular velocity tracking is more accurate, even when the angular velocity changes rapidly from -2 rad/s to +2 rad/s within 1 s.
The current maximum angle tracking error is about 0.12 rad, which causes by the robot prioritising the stability and limiting the Base orientation control task. It can be improved by adjusting the weight of the Base orientation control task in Table 3 and feedback gains \({\varvec{K}}_\mathrm{{p}}^\mathrm{{ori}}\) and \({\varvec{K}}_\mathrm{{d}}^\mathrm{{ori}}\) in Eq. (46). However, we believe that prioritising the stability of the robot itself is more important in a mission. It is not cost-effective to sacrifice stability and safety for better performance. Also, although the base orientations are presented as Euler angles for intuitive understanding, they are presented as rotation matrices in the planning and control processes, which won’t cause singularity and ambiguity issues.
4.2 Sharp Turning
A sharp turning experiment demonstrates the framework’s ability to make the robot turn at a high angular velocity, which is essential when the robot traverses confined and crowded environments. Figure 9 presents video snapshots of the robot performing a sharp turning motion. In the experiment, the robot executes manoeuvres including moving forward, performing an S-Turn, and then moving straight again. During the whole process, the robot runs at a constant forward velocity of 0.8 m/s in the trot-run gait.
Figure 10 presents the sharp turning experiment data. Figure 10a shows a comparison between the commanded yaw velocity and the actual yaw velocity, Fig. 10b shows the reference yaw angle generated by the motion planner and the actual yaw angle extracted by the state estimator. As can be seen from these two sub-pictures, the reference is nicely tracked and the robot can still withstand an instantaneous angular velocity of up to 1.8 rad/s when running fast. Figure 10c shows the top view of the motion in the ground plane, including the x–y positions of CoM and all feet extracted from the state estimator.
4.3 Multi-gaited Locomotion
To demonstrate that the planning and control framework can stabilize basic locomotion gaits, the multi-gaited locomotion experiment is presented. A set of gaits including static-walk, trot-walk, trot and trot-run, are tested in this experiment. Figure 11 shows the snapshots of all gaits during the experiment. The description of the gaits are shown below:
-
Static-Walk only one leg is in the swing, and the robot is statically stable at all times.
-
Trot-Walk the robot lifts diagonal legs at the same time at low speed, and exist time all four feet make contact with the ground.
-
Trot the robot lifts diagonal legs at the same time at a higher speed, and only two legs make contact with the ground at any time.
-
Trot-Run the robot lifts diagonal legs at the same time, and exist time when all four feet are in the air.
The difference between trot-walk, trot and trot-run gaits is the longer moment of suspension between each beat.
From the top and middle subplots in Fig. 12, different gaits are selected as the speed changes. This gait selection is consistent with the gait-changing behaviour of quadruped animals. From the bottom subplot in Fig. 12, the height trajectory shows a more dramatic height change as the speed of the gait increase because the longer aerial phase of all feet makes it harder to maintain the height of the body. For the same reason, in the trot-run gait, the aerial phase becomes the longest, where exists time none of the feet is making contact with the ground. This makes the robot unable to maintain body height and causes a lower mean value in the graph.
Figure 13 shows the trajectory of the front left foot in x–z plane. From the left subplot, the step length increases and then decreases as its speed increases and decreases, which is enforced by the rule illustrated in Eq. (10). The right subplot shows the process of lifting foot height illustrated in Eqs. (15) and (16).
This experiment shows that the proposed framework is independent of gait type, and can be applied to different gaits. It also shows the stability of the framework between gait changes.
4.4 Disturbance Response
To evaluate the disturbance rejection capability of the control framework, robot A1 gets kicked from the side when it is trotting in place. Figure 14 presents the snapshots of this experiment. It can be seen that the robot can still remain balanced after strong kicks.
Figure 15 shows the changes in CoM velocity and position over time in the presence of external disturbance. These disturbance forces cause a sudden change in the CoM velocity, especially in the y direction, and the increase in y direction velocity results in a side-stepping motion. Since the CoM position control task penalizes deviations from the desired and actual CoM positions, the robot will walk back to its original standing position.
Figure 16 presents the y reaction forces and the y motion for a specific foot (front-left). Two recovery strategies are used when the robot reacts to the unpredictable external disturbance resulting from the first kicking. As shown in Fig. 16a, in the stance phase, the foot adjusts the ground reaction forces to resist the disturbance while satisfying in the constraint of the friction cone. This is realized by optimizing the desired contact forces in the motion planning module illustrated in Sect. 2.4, and tracking these forces via the Contact force regularization task in the whole-body control module. As shown in Fig. 16b, in the swing phase, it reacts to the external disturbance through a side-stepping motion which is realized by adjusting the foothold position according to the actual CoM velocity illustrated in Sect. 2.3. The difference between the reaction force generated by the motion planner and the whole body controller is due to the modelling of the robot being different, where the motion planner uses the 3D-SRBM and the whole body controller uses full-body dynamic model. For the same reason, the foot position planned by the motion planner is different from the one planned by the whole-body controller.
5 Conclusion
A real-time planning and control framework is proposed and deployed in a real robot, which enables the robot to perform various dynamic locomotion and be robust to external disturbance. The existing methods using the same model in the planning and control phases, where simplified models can not ensure physical consistency and full-order models make computationally expensive. To take advantage of both methods, this research employs both the 3D-SRBM and the full-body dynamic model to build a more comprehensive framework suitable for different tasks. The proposed control framework does not have a limitation in gait types and gait transitions. The experiment result proved the practicability of quadruped robots with the proposed framework in open environments and under disturbances. The above advantages are very beneficial to deploy quadruped robots in complex real environment to complete tasks. The immediate next step will be focused on extending the framework to generate base and foot trajectories that guide the motion of the robot over obstacles with a sequence of suitable footholds. To fully explore coupling effects between the base and limbs and provide sufficient flexibility to generate more complex whole-body motions, future work will replace the 3D-SRBM used in the motion planner with a mixed model combining the centroidal dynamics model and the whole-body kinematics model.
Data accessibility
The datasets generated during and/or analysed during the current study are available from the corresponding author on reasonable request.
References
Zhou, C. X., Wang, X., Li, Z. B., & Tsagarakis, N. (2017). Overview of gait synthesis for the humanoid COMAN. Journal of Bionic Engineering, 14(1), 15–25.
Kuindersma, S. (2020). Recent progress on Atlas, the world’s most dynamic humanoid robot. https://youtu.be/EGABAx52GKI.
Chignoli, M., Kim, D., Stanger-Jones, E., & Kim, S. (2021). The MIT humanoid robot: Design, motion planning, and control for acrobatic behaviors. In Proceedings of the IEEE-RAS International Conference on Humanoid Robots, Munich, Germany, 2021, pp. 1–8.
Duan, H., Dao, J., Green, K., Apgar, T., Fern, A., & Hurst, J. (2021). Learning task space actions for bipedal locomotion. In Proceedings of the IEEE International Conference on Robotics and Automation, Xi’an, China, 2021, pp. 1276–1282.
Dafarra, S., Romualdi, G., & Pucci, D. (2022). Dynamic complementarity conditions and whole-body trajectory optimization for humanoid robot locomotion. IEEE Transactions on Robotics, 38(6), 3414–3433.
Carlo, J. D., Wensing, P. M., Katz, B., Bledt, G., & Kim, S. (2018). Dynamic locomotion in the MIT Cheetah 3 through convex model predictive control. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Madrid, Spain, 2018, pp. 1–9.
Neunert, M., Stauble, M., Giftthaler, M., Bellicoso, C. D., Carius, J., Gehring, C., Hutter, M., & Buchli, J. (2018). Whole-body nonlinear model predictive control through contacts for quadrupeds. IEEE Robotics and Automation Letters, 3(3), 1458–1465.
Xin, G., Xin, S., Cebe, O., Pollayil, M. J., Angelini, F., Garabini, M., Vijayakumar, S., & Mistry, M. (2021). Robust footstep planning and lqr control for dynamic quadrupedal locomotion. IEEE Robotics and Automation Letters, 6(3), 4488–4495.
Bledt, G., Wensing, P. M., & Kim, S. (2017). Policy regularized model predictive control to stabilize diverse quadrupedal gaits for the MIT Cheetah. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Vancouver, Canada, 2017, pp. 4102—4109.
Bledt, G., & Kim, S. (2020). Extracting legged locomotion heuristics with regularized predictive control. In Proceedings of the IEEE International Conference on Robotics and Automation, Paris, France, 2020, pp. 406–412.
Ding, Y., Pandala, A., Li, C., Shin, Y.-H., & Park, H.-W. (2021). Representation-free model predictive control for dynamic motions in quadrupeds. IEEE Transactions on Robotics, 37(4), 1154–1171.
Hwangbo, J., Lee, J., Dosovitskiy, A., Bellicoso, D., Tsounis, V., Koltun, V., & Hutter, M. (2019). Learning agile and dynamic motor skills for legged robots. Science Robotics, 4(26), eaau5872.
Lee, J., Hwangbo, J., & Hutter, M. (2020). Learning quadrupedal locomotion over challenging terrain. Science Robotics, 5(47), eabc5986.
Zhou, L. L., Li, T. F., Liu, Z. Y., & Li, Y. B. (2021). An efficient gait-generating method for electrical quadruped robot based on humanoid power planning approach. Journal of Bionic Engineering, 18, 1463–1474.
Kim, Y. K., Seol, W., & Park, J. (2021). Biomimetic quadruped robot with a spinal joint and optimal spinal motion via reinforcement learning. Journal of Bionic Engineering, 18, 1280–1290.
Posa, M., Cantu, C., & Tedrake, R. (2014). A direct method for trajectory optimization of rigid bodies through contact. International Journal of Robotics Research, 33(1), 69–81.
Herzog, A., Rotella, N., Schaal, S., & Righetti, L. (2015). Trajectory generation for multi-contact momentum control. In Proceedings of the IEEE-RAS International Conference on Humanoid Robots, Seoul, Korea (South), 2015, pp. 874–880.
Kuindersma, S., Deits, R., Fallon, M., Valenzuela, A., Dai, H., Permenter, F., Koolen, T., Marion, P., & Tedrake, R. (2016). Optimization based locomotion planning, estimation, and control design for the atlas humanoid robot. Autonomous Robots, 40, 429–455.
Budhiraja, R., Carpentier, J., & Mansard, N. (2019). Dynamics consensus between centroidal and whole-body models for locomotion of legged robots. In Proceedings of the IEEE International Conference on Robotics and Automation, Montreal, Canada, 2019, pp. 6727–6733.
Kim, D., Carlo, J.D., Katz, B., Bledt, G., & Kim, S. (2019). Highly dynamic quadruped locomotion via whole-body impulse control and model predictive control. Preprint at arXiv:1909.06586.
Shuster, M. D. (1993). A survey of attitude representations. Journal of the Aeronautical Sciences, 41, 439–517.
Bhat, S. P., & Bernstein, D. S. (1998). A topological obstruction to global asymptotic stabilization of rotational motion and the unwinding phenomenon. In Proceedings of the American Control Conference, Philadelphia, USA, 1998, pp. 2785–2789.
Farshidian, F., Jelavic, E., Satapathy, A., Giftthaler, M., & Buchli, J. Real-time motion planning of legged robots: A model predictive control approach. In Proceedings of the IEEE-RAS International Conference on Humanoid Robotics, Birmingham, UK, 2017, pp. 577–584.
Katayama, S., & Ohtsuka, T. (2022). Whole-body model predictive control with rigid contacts via online switching time optimization. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Kyoto, Japan, 2022, pp. 8858–8865.
Yu, H. T., Gao, H. B., & Deng, Z. Q. (2021). Toward a unified approximate analytical representation for spatially running spring-loaded inverted pendulum model. IEEE Transactions on Robotics, 37(2), 691–698.
Tassa, Y., Erez, T., & Todorov, E. (2012). Synthesis and stabilization of complex behaviors through online trajectory optimization. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Vilamoura-Algarve, Portugal, 2012, pp. 4906–4913.
Herzog, A., Rotella, N., Mason, S., Grimminger, F., Schaal, S., & Righetti, L. (2016). Momentum control with hierarchical inverse dynamics on a torque-controlled humanoid. Autonomous Robots, 40, 473–491.
Zhou, C. X., Fang, C., Wang, X., Li, Z. B., & Tsagarakis, N. (2016). A generic optimization-based framework for reactive collision avoidance in bipedal locomotion. In Proceedings of the IEEE International Conference on Automation Science and Engineering, Fort Worth, USA, 2016, pp. 1026–1033.
Xing, H. J., Ding, L., Gao, H. B., Li, W. H., & Tavakoli, M. (2022). Dual-user haptic teleoperation of complementary motions of a redundant wheeled mobile manipulator considering task priority. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 52(10), 6283–6295.
Li, J., Gao, H. B., Wan, Y. H., Humphreys, J., Peers, C., Yu, H. T., & Zhou, C. X. (2022). Whole-body control for a torque-controlled legged mobile manipulator. Actuators, 11(11), 304.
Yang, Y. X., Zhang, T. N., Coumans, E., Tan, J., & Boots, B. (2021). Fast and efficient locomotion via learned gait transitions. In Proceedings of the Annual Conference on Robot Learning, London, UK, 2021, pp. 773–783.
Humphreys, J., Li, J., Gao, H. B., & Zhou, C. X. (2022). Bio-inspired gait transitions for quadruped locomotion. (Under review).
Bloesch, M., Hutter, M., Hoepflinger, M., Leutenegger, S., Gehring, C., Remy, C.D., & Siegwart, R. (2012). State estimation for legged robots—consistent fusion of leg kinematics and IMU. In Proceedings of the Robotics: Science and Systems, Sydney, Australia, 2012.
Xinjilefu, X., Feng, S., & Atkeson, C. G. (2014). Dynamic state estimation using quadratic programming. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Chicago, USA, 2014, pp. 989–994.
Raghavan, V. S., Kanoulas, D., Zhou, C. X., Caldwell, D. G. & Tsagarakis, N. G. (2018). A study on low-drift state estimation for humanoid locomotion, using lidar and kinematic-inertial data fusion. In Proceedings of the IEEE-RAS International Conference on Humanoid Robots, Beijing, China, 2018, pp. 1–8.
Hartley, R., Ghaffari, M., Eustice, R. M., & Grizzle, J. W. (2020). Contact-aided invariant extended Kalman filtering for robot state estimation. International Journal of Robotics Research, 39, 402–430.
Raibert, M. H. (1986). Legged robots that balance. MIT Press.
Pratt, J., Carff, J., Drakunov, S., & Goswami, A. (2006). Capture point: A step toward humanoid push recovery. In Proceedings of the IEEE-RAS International Conference on Humanoid Robots, Genova, Italy, 2006, pp. 200–207.
Carpentier, J., Saurel, G., Buondonno, G., Mirabel, J., Lamiraux, F., Stasse, O., & Mansard, N. (2019). The Pinocchio C++ library: A fast and flexible implementation of rigid body dynamics algorithms and their analytical derivatives. In Proceedings of the IEEE/SICE International Symposium on System Integration, Paris, France, 2019, pp. 614–619.
Featherstone, R. (2008). Rigid body dynamics algorithms. Springer.
Stellato, B., Banjac, G., Goulart, P., Bemporad, A., & Boyd, S. (2020). OSQP: An operator splitting solver for quadratic programs. Mathematical Programming Computation, 12, 637–672.
Funding
This work is supported by the China Scholarship Council under Grant [2020]06120186, the Engineering and Physical Sciences Research Council [Grant number EP/V026801/2], the Advanced Machinery and Productivity Institute [Innovate UK project number 84646], and the National Natural Science Foundation of China under Grant 52175011.
Author information
Authors and Affiliations
Contributions
All authors contributed to the study’s conception and design. Material preparation, data collection and analysis were performed by JL, YW and CZ. The first draft of the manuscript was written by JL and YW, and all authors commented on previous versions of the manuscript. The study was performed under the instruction of HG, HY and CZ. All authors read and approved the final manuscript.
Corresponding authors
Ethics declarations
Conflict of interest
The authors have no relevant financial or non-financial interests to disclose.
Ethical approval
No approval of research ethics committees was required to accomplish the goals of this study because experimental work was conducted with an unregulated invertebrate species.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Supplementary Information
Below is the link to the electronic supplementary material.
Supplementary file 1 (mp4 101074 KB)
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Li, J., Gao, H., Wan, Y. et al. A Real-Time Planning and Control Framework for Robust and Dynamic Quadrupedal Locomotion. J Bionic Eng 20, 1449–1466 (2023). https://doi.org/10.1007/s42235-023-00347-9
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s42235-023-00347-9