[论文翻译]MIT Mini Cheetah:通过整体脉冲控制和模型预测控制实现的高动态四足运动


Highly Dynamic Quadruped Locomotion via Whole-Body Impulse Control and Model Predictive Control 通过整体脉冲控制和模型预测控制实现的高动态四足运动


Donghyun Kim1, Jared Di Carlo2, Benjamin Katz1, Gerardo Bledt1, and Sangbae Kim1Authors are with the
1 Department of Mechanical Engineering at the Massachusetts Institute of Technology
2 Department of Electrical Engineering and Computer Science at the Massachusetts Institute of Technology, Cambridge, MA, 02139, USA.


Dynamic legged locomotion is a challenging topic because of the lack of established control schemes which can handle aerial phases, short stance times, and high-speed leg swings. In this paper, we propose a controller combining whole-body control (WBC) and model predictive control (MPC). In our framework, MPC finds an optimal reaction force profile over a longer time horizon with a simple model, and WBC computes joint torque, position, and velocity commands based on the reaction forces computed from MPC. Unlike existing WBCs, which attempt to track commanded body trajectories, our controller is focused more on the reaction force command, which allows it to accomplish high speed dynamic locomotion with aerial phases. The newly devised WBC is integrated with MPC and tested on the Mini-Cheetah quadruped robot. To demonstrate the robustness and versatility, the controller is tested on six different gaits in a number of different environments, including outdoors and on a treadmill, reaching a top speed of 3.7 m/s.

由于没有成熟的控制方案可以处理空中相位,短站姿时间和高速腿部摆动,因此动态腿部移动是一个具有挑战性的主题。在本文中,我们提出了一种结合了全身控制(WBC)和模型预测控制(MPC)的控制器。在我们的框架中,MPC使用简单的模型找到了较长时间范围内的最佳反作用力曲线,而WBC根据从MPC计算出的反作用力来计算关节扭矩,位置和速度指令。与现有的WBC试图跟踪命令的身体轨迹不同,我们的控制器更专注于反作用力命令,这使它可以完成具有空中相位的高速动态运动。新设计的WBC与MPC集成在一起,并在Mini-Cheetah四足机器人上进行了测试。3.7 米/s


To fully exploit the hardware capability of legged systems, we need a controller that can address the challenging issues related to dynamic locomotion, such as body control during short stance periods, aerial phases, and high speed swing leg motion control. Several successful cases for both running bipeds [1, 2] and quadrupeds [3] have been presented, but they are either difficult to scale up to high degree-of-freedom systems [1] or heavily rely on specific system dynamics [2] or are undocumented [3]. Whole-body control (WBC) is a strong candidate as a dynamic motion controller because of its dynamically consistent formulation and general framework, which makes it easy to extend to various systems and tasks. However, existing WBCs focus on how to follow the given trajectory by manipulating contact forces, which makes it nontrivial to address motion involving frequent non-contact phases such as high speed running.

为了充分利用腿式系统的硬件功能,我们需要一种控制器,该控制器可以解决与动态运动相关的挑战性问题,例如,在短时站立期间的身体控制,空中阶段以及高速摆腿运动控制。两种运行的两足动物的几个成功的案例[ 12 ]和四足动物 [ 3 ]已经提出,但它们扩展到程度的自由度较高的系统或者困难 [ 1 ]或严重依赖于特定的系统动力学 [ 2 ]或无证件 [ 3 ]。全身控制(WBC)是动态运动控制器的强大候选者,因为它的动态一致配方和通用框架使其易于扩展到各种系统和任务。但是,现有的WBC专注于如何通过控制接触力来遵循给定的轨迹,这使得解决涉及频繁非接触阶段(例如高速行驶)的运动变得不平凡。

 The proposed control architecture consists of two parts: Model predictive control and whole-body control. The reaction forces computed by MPC are modified by WBC to incorporate body stabilization and swing leg control. The final commands found in WBC are sent to the robot to perform dynamic locomotion.

Fig. 1: Control Architecture. The proposed control architecture consists of two parts: Model predictive control and whole-body control. The reaction forces computed by MPC are modified by WBC to incorporate body stabilization and swing leg control. The final commands found in WBC are sent to the robot to perform dynamic locomotion.


 Using the user commanded gait type, speed, and direction from the RC-controller, the MPC computes desired reaction forces and foot/body position commands. From these, WBC computes joint torque, position, and velocity commands that are delivered to the each joint-level controller. Each component’s update frequency is represented by the color of its box.

Fig. 2: Overall Control Framework. Using the user commanded gait type, speed, and direction from the RC-controller, the MPC computes desired reaction forces and foot/body position commands. From these, WBC computes joint torque, position, and velocity commands that are delivered to the each joint-level controller. Each component’s update frequency is represented by the color of its box.

To tackle the issue, we formulate WBC to follow both the reaction force and body trajectory commands. The idea of reaction force tracking originates from the impulse planning used in Cheetah 2 [4], which demonstrates successful dynamic bounding and jumping. The underlying idea of [4] is to plan reaction forces, which are impulses, rather than CoM trajectory, which is not practical to follow when the locomotion is extremely dynamic and has significant periods of under-actuation. In this paper, we embrace the impulse planning idea in WBC and formulate whole-body impulse control (WBIC) that can incorporate both body posture stabilization and reaction force execution. In terms of formulation, WBIC is not significantly different from the existing whole-body controllers [5, 6, 7], but the additional feature, which is an incorporation of pre-computed reaction forces by relaxing the floating base control, plays an important role in dynamic locomotion control. In our formulation, the WBIC is mostly used to track the ground reaction force profile rather than a body trajectory.

为了解决这个问题,我们制定了WBC来遵循反作用力和身体轨迹命令。反作用力跟踪的思想源于Cheetah 2 [ 4 ]中使用的冲动计划,该计划证明了成功的动态边界和跳跃。[ 4 ]的基本思想这是为了计划反作用力,它是脉冲,而不是CoM轨迹,当运动非常动态并且有大量的欠驱动时,要遵循这一点是不切实际的。在本文中,我们在WBC中采用了冲动计划的思想,并制定了可以结合体位稳定和反作用力执行的全身冲动控制(WBIC)。在制剂方面,WBIC不是从现有的全身控制器显著不同[ 567 ],但附加功能是通过放松浮动基础控制来合并预先计算的反作用力,在动态运动控制中起着重要作用。在我们的公式中,WBIC主要用于跟踪地面反作用力曲线,而不是身体轨迹。

To find the reaction force command, we utilize model predictive control (MPC). In our previous work, we demonstrated that convex MPC can perform various dynamic gaits at high speed on both Cheetah 3 [8] and Mini-Cheetah [9]. Utilization of MPC enhances the versatility of locomotion, enabling us to switch between various gaits by simply changing the contact sequence. However, using MPC with a simple model has a fundamental limitation in position control because of its low update frequency (40 Hz in our implementations) and model simplifications. WBC provides a solution to the MPC’s limitation by running a high-frequency feedback loop while still accounting for full-body dynamics with contact.

为了找到反作用力命令,我们利用模型预测控制(MPC)。在我们之前的工作中,我们证明了凸面MPC可以在Cheetah 3 [ 8 ]和Mini-Cheetah [ 9 ]上高速执行各种动态步态。MPC的使用增强了运动的多功能性,使我们能够通过简单地更改接触顺序来在各种步态之间进行切换。但是,将MPC与简单模型一起使用会限制位置控制,因为它的更新频率较低(在我们的实现中为40 Hz),并且模型简化。WBC通过运行高频反馈回路,同时仍考虑了接触的全身动力学,为MPC的局限性提供了解决方案。

On the other hand, the prediction horizon of MPC compliments the WBC perfectly to fill in the WBC’s limitation that it cannot consider more than a single time step ahead. This limited time horizon issue has been addressed in [10, 11] which developed an MPC formulation using full-body dynamics. However, even their highly optimized solvers barely fit into a 200 Hz update frequency and the demonstrated results are not very dynamic compared to other controllers presented on the same robots. We believe that effective integration of MPC and WBC has a fundamental benefit over long-time horizon WBC. Moreover, by utilizing convex optimization, our implementation is not only fast, but also reliable because the solver does not get stuck in a strange local minimum.

另一方面,MPC的预测范围很好地补充了WBC,以填补WBC的局限性,即WBC不能考虑仅一步之遥。这种有限的时间范围问题一直在解决[ 1011 ]其中开发了使用全体动力学的MPC的制剂。但是,即使是高度优化的求解器也几乎无法适应200 Hz的更新频率,并且与同一机器人上提供的其他控制器相比,所展示的结果也不是那么动态。我们认为,MPC和WBC的有效整合相对于长期的WBC具有根本的好处。此外,通过利用凸优化,我们的实现不仅快速,而且可靠,因为求解器不会陷入奇异的局部最小值中。

To integrate the MPC with the WBC, we modified our previous WBC formulation [5] to be compatible with the MPC and to handle dynamic locomotion with aerial phases. However, the novelty of our work does not come from the integration of two methods, MPC and WBC, since the incorporation of WBC with a high-level trajectory generator such as a motion optimizer [12], locomotion planner [13, 14], or MPC [15] is an established control framework. Our contribution lies in the method of how we utilize the results of MPC in the WBC. In our formulation, we use reaction forces computed by MPC as desired reaction forces in our WBC rather than attempting to track body trajectories computed by MPC. This is different from [15] that forces the robot to follow the CoM trajectory found by MPC and uses the reaction forces found by MPC only for regulating internal forces. However, attempting to track a CoM trajectory with a WBC will not be effective for gaits like galloping, where the CoM is never controllable. Our WBIC controls the body posture and swing foot but with a relaxation variable that allows the floating base movement to be different from the commanded trajectory. By doing so, WBC can perform behaviors with uncontrollable center of mass (CoM), movement such as jumping or bounding, by controlling the reaction forces found by MPC.

为了将MPC与WBC集成在一起,我们修改了以前的WBC公式[ 5 ]以与MPC兼容并处理具有空中相位的动态运动。然而,我们的工作的新颖性并非来自两种方法,MPC和WBC的整合,因为WBC的掺入具有高层次的轨迹生成诸如运动优化器[ 12 ],运动计划器[ 1314 ],或MPC [ 15 ]是一个已建立的控制框架。我们的贡献在于如何利用WBC中MPC的结果的方法。在我们的公式中,我们将MPC计算的反作用力用作WBC中的所需反作用力,而不是尝试跟踪MPC计算的身体轨迹。这与[ 15 ]不同迫使机器人遵循MPC找到的CoM轨迹,并使用MPC找到的反作用力仅用于调节内部力。但是,尝试用WBC跟踪CoM轨迹对于像疾驰这样的步态是无效的,因为CoM是无法控制的。我们的WBIC控制身体姿势和摇摆脚,但具有放松变量,使浮动基础运动与命令轨迹不同。这样,WBC可以通过控制MPC发现的反作用力,以无法控制的质心(CoM)进行运动,例如跳跃或跳动。

Integrating WBC and MPC makes our controller versatile and robust. Versatile means that, in our controller, changing behavior or adding more tasks (e.g. manipulation if there are additional limbs) can be done by simply re-configuring the desired motions. For example, selecting different gaits can be done by changing the footstep pattern and timing in our formulation, and the low-level details such as swing foot control and body stabilization are automatically accomplished by our control scheme. Our controller will automatically handle gaits with significant flight periods, such as hopping, pronking, or bounding, without the need for manually planning around periods of flight or underactuation.


“Robust” means that our controller is reliable enough to maintain the robot’s balance while executing a locomotion command, even in the presence of large disturbances. More importantly, the proposed method can be implemented and demonstrates highly dynamic locomotion in a real robot. In our experiments with the Mini-Cheetah robot, we accomplished a 3.7 m/s running speed, corresponding to a Froude number of 4.65. Most documented legged robots’ Froude numbers are smaller than 2 [2, 16], except Cheetah 2 demonstrated 6.4m/s bounding (Froude number 7.1) [4]. To the best of our knowledge, our results demonstrate some of the most agile locomotion of any quadruped robot.

“鲁棒”意味着我们的控制器在执行运动命令时即使在存在较大干扰的情况下也足够可靠,可以保持机器人的平衡。更重要的是,所提出的方法可以实现,并在真实的机器人中演示了高度动态的运动。在Mini-Cheetah机器人的实验中,我们完成了3.7 米/s运行速度,对应于4.65的Froude数。最记录腿式机器人弗劳德数是小于2 [ 216 ],除了猎豹2证明6.4米/s边界(弗劳德数7.1)[ 4 ]。据我们所知,我们的结果证明了四足机器人中一些最敏捷的运动。

Additionally, in order to successfully implement the algorithm on hardware, we developed an efficient dynamics engine including rotor dynamics [17] and linear algebra optimizations through template formatting. These techniques enable the MPC to run at 30 Hz and WBIC to run at 500 Hz on the low power computer installed in the Mini-Cheetah robot. In summary, the major contributions of this paper are two folds: 1) developing a versatile and robust control scheme for highly dynamic locomotion of quadruped robots, and 2) demonstrating high speed running and various gaits in real hardware, on the Mini-Cheetah robot.

另外,为了成功地在硬件上实现该算法,我们开发了一种高效的动力引擎,其中包括转子动力[ 17 ]和通过模板格式化的线性代数优化。这些技术使MPC可以在安装在Mini-Cheetah机器人上的低功耗计算机上以30 Hz的频率运行,而WBIC可以以500 Hz的频率运行。总而言之,本文的主要贡献有两个方面:1)开发用于四足机器人的高动态运动的通用且鲁棒的控制方案,以及2)在小型猎豹机器人上演示高速运行和实际硬件中的各种步态。


The key idea of our method is to reduce complexity by separating locomotion control into two simpler controllers. This first controller finds optimal reaction force profiles along a one full gait cycle of locomotion using an MPC with the following simple lumped mass model:

$$ m \ddot{p} = \sum_{i=1}^{n_c} \mathbf{f}_i - \mathbf{c}_g $$

$$\frac{d}{dt}\left(I{\omega}\right)=\sum_{i=1}^{n_c}\mathbf{r}_i\times \mathbf{f}_i $$

where p, $f_i$, and $c_g$ are three dimensional vectors representing the robot’s position, reaction force, and gravitational acceleration with respect to the global frame. m is the robot’s body mass and $n_c$ is the number of contacts. $I∈R^(3×3) $ is the rotational inertia tensor and ω is the angular velocity of the body. $r_i $is the position of i-th contact point with respect to the CoM of the robot, which is equivalent to the moment arm of the contact force.

p, $f_i$, 和$c_g$ 是三维矢量,表示机器人相对于整体框架的位置,反作用力和重力加速度。m是机器人的体重, $n_c$ 是接触点的数量。 $I∈R^(3×3) $是旋转惯性张量, ω 是身体的角速度。 $r_i $是第i个接触点相对于机器人的位置 ,它等于接触力的力矩臂。


In the second process, we use WBIC to achieve high bandwidth control through the use of full-body dynamics and high frequency feedback control. This better dynamics model will determine more accurate torque commands than the lumped mass model. The multi-body dynamics can be written as

where A, b, g, τ, fr, and Jc are the generalized mass matrix, Coriolis force, gravitation force, joint torque, augmented reaction force and contact Jacobian, respectively. \ddot{q}_f\in \mathbb{R}^6 is the acceleration of the floating base and \ddot{q}_j\in\mathbb{R}^{n_j} is the vector of joint accelerations, where nj is the number of joints. We use 06 to represent a 6 dimensional zero vector and 0n to represent a n-dimensional zero vector in this paper.

A, b, g, τ, fr, 和Jc 分别是广义质量矩阵,科里奥利力,万有引力,关节扭矩,增强反作用力和接触雅可比行列式。 $\ddot{q}_f\in \mathbb{R}^6$ 是浮基的加速度,并且$\ddot{q}_j\in\mathbb{R}^{n_j}$是关节加速度的向量,其中 $n_j$ 是关节的数量。我们用$\mathbf{0}6$ 代表6维零向量,并且$ \mathbf{0}{n}$ 代表一个 ñ本文中的零维向量。

Our hybrid control scheme combining these two controllers is described in Fig. 2. Beside MPC and WBIC, we use a Kalman Filter-based state estimator to compute global body position and velocity based on kinematics and acceleration data. We also developed a custom dynamics engine that efficiently includes the effects of rotor dynamics on the mass matrix and Coriolis vector. Although the the state estimator and dynamics engine contributed significantly to the locomotion performance, we will not explain them in detail since they are out of the scope of this paper.

我们的混合控制方案结合了这两个控制器,如图2所示 。除了MPC和WBIC,我们还使用基于卡尔曼滤波器的状态估计器,根据运动学和加速度数据来计算全局人体位置和速度。我们还开发了一种自定义动力学引擎,该引擎有效地包括了转子动力学对质量矩阵和科里奥利矢量的影响。尽管状态估计器和动力学引擎对运动性能做出了很大的贡献,但是由于它们不在本文的讨论范围之内,因此我们将不对其进行详细说明。


The objective of our MPC to find reaction forces which make the lumped mass follow the given trajectory. In the optimization process of the MPC, a contact sequence is predefined by the gait scheduler and step planner. This keeps the formulation convex, meaining the optimization problem is both fast to solve and can be always solved to a unique global minimum. This is not always obtainable in nonlinear optimization.



Even the simple lumped mass model is not completely linear due to the cross product term for the moment arm and the orientation dynamics. To accomplish a convex MPC formulation, we applied three simplifications [8]. The first assumption is that the roll and pitch angles are small. Based on this assumption, we can simplify the coordinate transformation as follows.
由于力矩臂和方向动力学的叉积项,即使是简单的集总模型也不是完全线性的。为了完成凸MPC公式,我们应用了三个简化 [ 8 ]。第一个假设是侧倾角和俯仰角很小。基于此假设,我们可以简化坐标转换,如下所示。
$$ \dot{\Theta} \approx R_z(\psi){\omega} $$
$$ _\mathcal{G}{I} \approx R_z(\psi) _\mathcal{B}{I} {R}_z(\psi)^{\top} $$

where is angular velocity of the body with roll (ϕ), pitch (θ), and yaw (ψ) Euler angle representation. Rz(ψ) is a rotation matrix translating angular velocity in the global frame, ω, to the local (body) coordinate. $ _\mathcal{G}{I}$ and $ _\mathcal{B}{I} $are the inertia tensor seen from the global and local (body) frame, respectively.

$R_z(\psi)$ 是在全局框架中转换角速度的旋转矩阵, ω,以当地(身体)坐标为准。$ _\mathcal{G}{I}$和$ _\mathcal{B}{I} $ 是分别从整体和局部(身体)框架中看到的惯性张量。

The second assumption we made is that states are close to the commanded trajectory. Based on this assumption, we create a time-varying linearization of the dynamics using commanded ψ in a rotational matrix, Rz(ψ), and set the moment arm in Eq. (2) with the predetermined one from the commanded trajectory and step locations. The last assumption is that the pitch and roll velocities are small and off-diagonal terms of the inertia tensor are also small. With the assumption, we approximate Eq. (2) with the following:

我们做出的第二个假设是状态接近命令轨迹。基于此假设,我们使用命令创建动力学的时变线性化ψ 在旋转矩阵中 Rz(ψ),并在等式中设置力矩臂。(2)从命令的轨迹和步距位置中选择预定的一个。最后一个假设是俯仰和横滚速度很小,惯性张量的非对角项也很小。假设,我们近似方程。(2)具有以下内容:

$$ \frac{d}{dt}\left({I}{\omega} \right) =
{I}\dot{{\omega}} + {\omega}\times\left( {I} {\omega} \right) \approx {I}\dot{{\omega}}. $$

With the above three simplifications, the discrete dynamics of the system can be expressed as
$$ \mathbf{x}(k+1) = {A}_k\mathbf{x}(k) + {B}_k\hat{\mathbf{f}} (k)+ \hat{\mathbf{g}} $$


$$ \mathbf{x} = [{\Theta}^{\top} , \mathbf{p}^{\top} , {\omega}^{\top}, \dot{\mathbf{p}}^{\top}] $$

$$ \hat{f} = [ f_1 , \cdots , f_n ] $$

$$ \hat{ g} = [0_{1\times3} , 0_{1\times3} , 0_{1\times3}, g^{\top}] $$

We use the formulation described in [8] to construct a QP which minimizes
我们使用[ 8 ]中描述的公式来构建最小化的QP

$$ \min_{\mathbf{x},\mathbf{f}}\sum_{k=0}^{m}||\mathbf{x}(k+1) - \mathbf{x}^{ ref }(k+1)||q + || \mathbf{f}(k)||_{R} $$

subject to dynamics and initial condition constraints. Additionally, friction cones are approximated by the following ground reaction force constraints

$$ \mid f_{x}\mid\leq\mu f_{z},\quad\mid f_{y}\mid\leq\mu f_{z},\quad f_{z} $$

To reduce the size of the problem, we eliminate variables which correspond to ground reaction forces for feet which are not touching the ground. This reduces the size of both the cost and constraint matrix, and in practice gives us a speed up of over 10 times. Since all contacts in our problem are point contacts, we do not need to account for the non-flip condition that is described in [18].

为了减小问题的严重性,我们消除了与不接触地面的脚的地面反作用力相对应的变量。这减少了成本和约束矩阵的大小,并且在实践中使我们的速度提高了10倍以上。由于我们问题中的所有接触都是点接触,因此我们不需要考虑[ 18 ]中描述的非翻转条件。


We use a periodic phase-based gait scheduler introduced in [19] that needs only two parameters to specify a gait type; phase offset and stance period for each foot. Since most gaits are basically periodic, proper spacing of swing and stance period in one cycle is enough to define different gaits. We can easily change the gait frequency by changing the cycle duration. Because gaits are defined by a portion of stance/swing period in the cycle, the gait types are maintained even when the gait frequency changes.

我们使用[ 19 ]中介绍的基于周期阶段的步态调度器,该步态调度器仅需要两个参数来指定步态类型。每只脚的相位偏移和站立时间。由于大多数步态基本上都是周期性的,因此在一个周期内适当的摆幅间隔和站姿周期足以定义不同的步态。我们可以通过更改周期持续时间轻松地更改步态频率。因为步态是由周期中的部分站立/摆动周期定义的,所以即使步态频率发生变化,步态类型也可以保持不变。


We choose the upcoming foot step location with the following equation:

$$ \mathbf{r_i }^{cmd}= p_{shoulder,i }+p_{ symmetry} + p_{ centrifugal} $$

$$ p_{shoulder, i} = p_k + R_z ( \psi_k)I_i, $$
$$ p_{ symmetry} = \frac{t_{ stance}}{2}\mathbf{v} + k \left(\mathbf{v} - v^{ cmd} \right)$$
$$ p_{ centrifugal} = \frac{1}{2}\sqrt{\frac{h}{g}} v\times{\omega}^{ cmd},$$

In Eq. (13), $p_k$is the body position at the k-th timestep and $I_i$ is i-th leg shoulder location with respect to the body’s local frame. Therefore, $p_{shoulder,i} $ is the i-th shoulder location with respect to the global frame. $ p_symmetry$ is a so-called Raibert heuristic [20] that forces the leg’s landing angle and leaving angle be identical if the robot is traveling at the commanded velocity. In our setup, we use 0.03 for the feedback gain, k.

在等式中 (13), $p_k$ 是身体在 ķ的时间步长和 $I_i$ 是第i个腿部相对于身体局部框架的肩膀位置。所以, $p_{shoulder,i} $ 是个相对于全局框架的第i个肩膀位置。 $ p_symmetry$ 是所谓的Raibert启发式算法[ 20 ],如果机器人以命令的速度行进,它会迫使腿部的着陆角和离开角相同。在我们的设置中,我们使用0.03作为反馈增益,ķ。


Using the reaction forces found by the MPC, the WBIC computes joint position, velocity, and torque commands. For joint position, velocity, and acceleration computation, we utilize an inverse kinematics algorithm that strictly holds task priority. To compute the torque command, we use quadratic programming to find the reaction forces, reducing the both errors in acceleration command tracking and reaction force command tracking while satisfying inequality constraints on the resultant reaction forces.

Joint position and velocity commands are used to stabilize a posture through joint-level position controllers. In addition to the torque command, which is the final output of common WBC, WBIC computes a desired joint position and velocity. Utilizing joint position feedback is beneficial for dynamic locomotion control because of its collocated control input and high frequency update. In the case of Mini-Cheetah, the frequency of joint PD control is 40kHz/, which is 80 times faster than the high-level full body control. The effectiveness of joint position feedback in whole-body control is well demonstrated in the author’s previous work, passive-ankle biped walking [14]. In [14], the robot accomplish the stable body posture control and accurate swing foot control by utilizing joint position control. WBIC uses similar strategy to obtain reliable motion stabilization.

Although we take a similar approach to the author’s previous work [14], we use operational space control instead of configuration impedance control. We made this change based on difference between actuators used in each robot: proprioceptive actuators in Mini-Cheetah and series elastic actuators in Mercury. Since the proprioceptive actuator is highly backdrivable and provides open-loop joint torque control through the motor current control, it is more effective to directly control operational impedance rather than relying on joint impedance control that can delay the operational space control. The following sections explain the formulation of WBIC in detail.

关节位置和速度命令用于通过关节级位置控制器来稳定姿势。除了扭矩命令(这是普通WBC的最终输出)之外,WBIC还会计算所需的关节位置和速度。利用关节位置反馈,由于其并置的控制输入和高频更新,对于动态运动控制是有益的。对于Mini-Cheetah,联合PD控制的频率为40ķHž/,比高级全身控制快80倍。作者先前的工作,被动脚踝两足动物步行[ 14 ]很好地证明了关节位置反馈在全身控制中的有效性 。在[ 14 ]中,机器人通过利用关节位置控制来实现稳定的身体姿势控制和精确的摆脚控制。WBIC使用类似的策略来获得可靠的运动稳定性。

尽管我们对作者先前的工作采用了类似的方法[ 14 ],但我们使用操作空间控制代替了配置阻抗控制。我们根据每个机器人中使用的执行器之间的差异进行了此更改:Mini-Cheetah中的本体感觉执行器和Mercury中的系列弹性执行器。由于本体感觉致动器是高度可逆驱动的,并且通过电动机电流控制来提供开环关节转矩控制,因此直接控制操作阻抗比依靠关节阻抗控制来延迟操作空间控制更为有效,因为关节阻抗控制会延迟操作空间。以下各节详细说明了WBIC的制定。


To execute prioritized tasks, we utilize a null-space projection technique, which enables a strict task hierarchy in a computationally efficient way. When is a vector representing full configuration space, the iteration rules are the following.

为了执行优先任务,我们利用零空间投影技术,该技术以计算有效的方式实现了严格的任务层次。什么时候 是代表完整配置空间的向量,迭代规则如下。

$$ \Delta q_i = \Delta q_{i-1} + {J_{i| pre}}^{\dagger}( e_i -J_i \Delta q_{i-1} ), $$
$$ \dot{q_i}^{cmd}=\dot{q_{i-1}}^{cmd}+{J_{i|pre}}^{\dagger}\left(\dot{x_i}^{des}-J_i \dot{q}_{i-1}^{cmd}\right)$$

$$ \dot{q_i}^{cmd} = \ddot{q_{i-1}^{cmd} + \overline{J_{i|pre}^{dyn}}\left( \dot(x_i}^{cmd} - \dot{J_i}\dot{q} -J_i \ddot{q}_{i-1}^{cmd} \right)$$


$$ J_{i|pre} = J_i N_{i-1}, $$
$$N_{i-1} = N_{0} N_{1|0} \cdots N_{i-1|i-2}, $$

$$N_{0} = I - J_c^{\dagger}J_c $$
$$ N_{i|i-1} = I - {J_{i|i-1}}^{\dagger} J_{i|i-1}.$$
Here, i≥1, and

$$ \Delta q_0,\ \dot{q}_0^{ cmd} = \mathbf{0} $$
$$ \ddot{q}_0^{ cmd} = \overline{J_c^{ dyn}}(-J_c\dot{q}).$$
$\mathbf{e}_i$ is the position error defined by $\mathbf{x}_i^{des} - \mathbf{x}_i$ and $\ddot{\mathbf{x}}^{cmd}_i$ is the acceleration command of i-th task defined by

$$\ddot{\mathbf{x}}^{ cmd}_i = \ddot{\mathbf{x}}^{ des} + {K}_p \left(\mathbf{x}^{ des}_i - \mathbf{x}_i\right) + {K}_d\left(\dot{\mathbf{x}}^{ des} - \dot{\mathbf{x}}\right), $$

where ${K}_p$ and ${K}d$ are position and velocity feedback gains, respectively. Note that there is no feedback gain in Eq.\eqref{eq:delta_q}, which can be interpreted as using unity gains. ${J}{i|pre}$is the projection of the i-th task Jacobian into the null space of the prior tasks. ${J}_c$ is a contact Jacobian, which is equivalent to the {J}_c in Eq.\eqref{eq:full_dyn}. We use two types of pseudo-inverses; one is an SVD-based pseudo-inverse denoted by ${\cdot }^{\dagger}$ and the other is dynamically consistent pseudo-inverse defined by

在哪里 {K}_p{K}_d分别是位置和速度反馈增益。注意,方程式中没有反馈增益。(16),这可以解释为使用单位增益。 {J}_{i|pre} 是第i个任务Jacobian在先前任务的空间的投影。 {J}_c 是一个联系雅可比,等于 {J}_c 在等式中 (3)。我们使用两种类型的伪逆。一个是基于SVD的伪逆,表示为\{\cdot \}^{\dagger} 另一个是动态一致的伪逆,定义为

$$ \overline{{J}} = {A}^{-1}{J}^{\top}\left( {J} {A}^{-1} {J}^{\top} \right)^{-1}. $$

When computing acceleration (Eq.\eqref{eq:qddot_cmd}), we use the dynamically consistent pseudo-inverse. Therefore, the projected Jacobian, {J}_{i|pre}^{ dyn}, is different from the ones used in kinematics computations. The dynamically consistent Jacobians use \overline{\{\cdot \}} instead of \{\cdot \}^{\dagger} in the null space matrix computation (Eq.~\eqref{eq:null_space_matrix}).

当计算加速度时(式(18)),我们使用动态一致的伪逆。因此,预计的雅可比行列式Ĵdÿñ一世|p[RË,与运动学计算中所使用的不同。动态一致的Jacobian使用¯的¯{⋅} 代替 {⋅}†在零空间矩阵计算中(等式(20))。

Eq. (16) and (17) are used to find desired joint position and velocity for joint PD controller, respectively. We compute the desired joint position by adding the joint position portion of Eq. (16) to the measured joint position,

等式 (16)和(17)分别用于找到关节PD控制器的期望关节位置和速度。我们通过添加方程式的关节位置部分来计算所需的关节位置。(16)到测得的关节位置,

$$ q_j^{ cmd} = q_j + \Delta q_j. $$

The computed joint commands, $q_j^{ cmd}$ and $\dot{q}_j^{ cmd}$, are sent to the joint-level PD controller, and the acceleration commands \ddot{q}^{ cmd} are delivered to the QP optimization to find a torque command.

计算的联合命令, $q_j^{ cmd}$和 $\dot{q}_j^{ cmd}$,被发送到联合级PD控制器,并且加速命令 $\ddot{q}^{ cmd}$ 交付给QP优化以查找扭矩命令。


We compute the final reaction force with the acceleration command found in the previous step and the reaction force obtained in MPC. For the optimization, we use the open-source QP solver \cite{Goldfarb:1983ik} that is efficient for small problems. The formulation of our QP problem is
$$ \min_{{\Delta}_fr, {\Delta}_f} \quad{\Delta}_fr^{\top} Q_1 {\Delta}_fr+ {\Delta}_f^{\top} Q_2 {\Delta}_f $$

$$ A_f(A\ddot{q} + b + g) = S_fJ_{c}^{\top}f_r $$

$$ f_r^{ MPC} + {\Delta}_{fr}$$

where $f_r^{MPC}$ and ${S}f$ are reaction forces computed by the MPC and the floating base selection matrix, respectively.
$J_c$ and W are the augmented contact Jacobian and contact constraint matrix that are equivalent to the terms used in Eq. and Eq.eqref{eq:mpc_qp}, respectively. ${\Delta}
{f}$ and ${\Delta}_fr$ are relaxation variables for the floating base acceleration and reaction forces.

Because of the relaxation of floating base acceleration, task accelerations can differ from the ones computed in Section.~\ref{sec:null_space}. The difference is intended to allow for the base to be uncontrolled during a flight phase, but has a risk to introduce tracking errors to other tasks. We ignore the effect on the other tasks because changing task commands as a response of the unpredictable floating base motion is not desirable in the real hardware control. For example, when a robot jumps, we need to address a floating base acceleration in the computation of foot acceleration command to keep the strict task priority. However, in most real hardware experiments, considering a floating base acceleration incorporating with complex dynamics and gravitational force does not help enhancing the swing foot control. Therefore, we simply relax the floating base dynamics rather than strictly govern the prioritized task execution by utilizing complex algorithms such as hierarchical quadratic programming \cite{escande2014hierarchical}.

由于浮动基础加速度的松弛,任务加速度可能与本节中计算的加速度有所不同。 静脉注射。这种差异是为了使基地在飞行阶段不受控制,但存在将跟踪误差引入其他任务的风险。我们忽略了对其他任务的影响,因为在实际的硬件控制中不希望更改任务命令作为不可预测的浮动基础运动的响应。例如,当机器人跳跃时,我们需要在脚加速度命令的计算中解决浮动基础加速度,以保持严格的任务优先级。但是,在大多数实际的硬件实验中,考虑具有复杂动力和重力的浮动基础加速度并不能帮助增强摆脚控制。所以,[ 22 ]。

Since all terms on the right hand side are known, we can easily solve it and obtain the joint torque command, τj.
由于右侧的所有项都是已知的,因此我们可以轻松地对其进行求解并获得联合扭矩命令 τj


 Mini-cheetah uses 12 proprioceptive actuators to control 4 limbs. The numbering of joints starts from right front abduction/adduction joint and progresses to hip and knee flexion/extension joints.
Fig. 3: Configuration of Mini-Cheetah. Mini-cheetah uses 12 proprioceptive actuators to control 4 limbs. The numbering of joints starts from right front abduction/adduction joint and progresses to hip and knee flexion/extension joints.

Task kp (s/−2) kd (s/−1)
Body Orientation [100100100]⊤ [101010]⊤
Body Position [100100100]⊤ [101010]⊤
Foot Position [100100100]⊤ [101010]⊤

TABLE I: Task and Gain Setup

The Mini-Cheetah robot [23] is used to verify the effectiveness of the proposed controller. The task setup and feedback gains of WBIC used in the experiments are summarized in Table. I. The tasks are listed in order of priority. In the QP problem, the weight for the reaction force (Q1) is 1 and the weight for the floating base control (Q2) is 0.1. Every joint feedback controller shares the same gains, kp=3 Nm/rad and kd=0.3 Nms/rad, except abduction joints, which have a higher derivative gain, 1. The same parameter and task setup is used over all tests. The labels of feet and joints used in the description coincide with the labels depicted in Fig. 3. A video recording of the experiments can be found in https://youtu.be/6JlVol3eyNI.

迷你猎豹机器人[ 23 ]用于验证所提出控制器的有效性。表中总结了实验中使用的WBIC的任务设置和反馈增益。 I。任务按优先级顺序列出。在QP问题中,反作用力的权重(Q1)为1,浮动基础控件的权重(Q2)为0.1。每个联合反馈控制器共享相同的收益,ķp=3 Nm/rad 和 ķd=0.3 Nms/rad,外展关节除外,后者的导数增益更高。1.所有测试均使用相同的参数和任务设置。在说明书中使用的脚和关节的标签与图3中描绘的标签一致 。实验的视频记录可以在https://youtu.be/6JlVol3eyNI中找到。


 Mini-Cheetah trots at

Fig. 4: Running Experiment. Mini-Cheetah trots at 3.7m/s. (b) The observed maximum speed is 4 m/s but the robot quickly lost its balance after reaching this speed. The highest stable speed reached was is 3.7 m/s. (c) and (d) show the joint velocity, torque, and power.We only include data from three joints (abduction, hip, and knee) from the front left leg, but the other legs are similar. From the observed maximum velocity, torque, and power, we can see that our controller utilizes maximum hardware capacity of Mini-Cheetah. (d) and (e) show how the trajectory and reaction forces tracking work together to accomplish dynamic running. The robot’s height goes up and down around the constant height command while making jumps and landing, which is accomplished by following the vertical reaction force command (fz). (e) Reaction forces computed by MPC update only 4 times during a stance period, but WBIC computes the forces every 2 ms/ and makes a modification from the force commands to control body posture and swing feet.
图4:运行实验。迷你猎豹小跑在3.7米/s。(b)观察到的最大速度为4 米/s但机器人达到此速度后很快失去了平衡。达到的最高稳定速度是3.7 米/s。(c)和(d)显示了关节速度,扭矩和功率。我们仅包括左前腿三个关节(外展,髋关节和膝盖)的数据,而其他腿相似。从观察到的最大速度,扭矩和功率,我们可以看到我们的控制器利用了Mini-Cheetah的最大硬件容量。(d)和(e)显示了轨迹和反作用力跟踪如何共同完成动态运行。在进行跳跃和着陆时,机器人的高度围绕恒定高度命令上下移动,这是通过遵循垂直反作用力命令来完成的(Fž)。(e)由MPC计算的反作用力在一个站位期间仅更新4次,但WBIC会在每一次计算时2个 米s/ 并对力命令进行了修改,以控制身体姿势和摆动脚。

In our previous work [9], Mini-Cheetah accomplished the running speed of 2.45 m/s in maximum. Considering the size of the robot, the speed is comparable to the state-of-the-art such as WildCat (8 m/s) and Cheetah 2 (6.4 m/s), but was limited by the stability of the previous MPC-only controller, rather than the Mini-Cheetah hardware. Our new controller combining MPC and WBIC achieves a maximum forward velocity of 3.7 m/s, which is one of the fastest untethered quadruped robot running speed.
在我们之前的工作中 [ 9 ],Mini-Cheetah实现了2.45 米/s最多。考虑到机器人的尺寸,其速度与WildCat(8米/s)和猎豹2(6.4 米/s),但受到以前的仅MPC控制器而不是Mini-Cheetah硬件的稳定性的限制。我们的新型控制器结合了MPC和WBIC,可实现最大前向速度3.7 米/s,这是最快的不受限制的四足机器人运行速度之一。

For high speed running, we add one more feature in the step location algorithm. As the speed goes up, Mini-Cheetah narrows the step-width of the front feet and widens the hind feet to avoid collisions between the front and hind legs. Fig. 4(a) shows that the right front leg and right hind legs are crossed but do not collide with each other because of the step-width adjustment.

Fig. 4 summarizes the test results of a high speed running on a treadmill. The robot’s velocity estimated by the local foot speed and accelerometer is presented in Fig. 4(b). The maximum velocity we observed is 4 m/s, but the robot falls over right after the speed. Therefore it is more reasonable to see 3.7 m/s as our record. Fig. 4(c) and (d) show how each joint operates during the high speed running. The maximum joint velocity and torque at the hip joints are 34 rad/s and 25.5 Nm/, respectively. Considering that the maximum joint velocity and torque are 40 rad/s and 17 Nm/, we can conclude that the hardware capability is fully utilized in the test. The maximum capacity utilization is also confirmed by the power output presented in Fig. 4(d), which records 280 W/, which is larger than the maximum actuator power, 250 W/, specified in [9]. Note that the torque presented in the data is not measured joint torque but commanded torque to motor controller. Therefore, it can have larger number than the actuator limit, and in that case when the commanded torque is larger than the limit, the actuator output is truncated by the maximum output torque.
为了实现高速运行,我们在步距定位算法中增加了一项功能。随着速度的提高,Mini-Cheetah会缩窄前脚的步长,并加宽后脚,以避免前腿和后腿之间发生碰撞。图 4(a)示出了右前腿和右后腿交叉但由于步长调节而彼此不碰撞。

4总结了在跑步机上高速运行的测试结果。图4(b)显示了由本地脚速度和加速度计估算的机器人速度 。我们观察到的最大速度是4 米/s,但机器人会在速度之后立即摔倒。因此,看到它更合理3.7 米/s作为我们的记录。图 4(c)和(d)显示了在高速行驶过程中每个关节的工作方式。髋关节的最大关节速度和扭矩为34 [R一种d/s 和 25.5 ñ米/, 分别。考虑到最大关节速度和扭矩为40 [R一种d/s 和 17 ñ米/,我们可以得出结论,测试中充分利用了硬件功能。最大容量利用率也由图4(d)所示的功率输出确定,该功率 记录如下:280 w ^/大于最大执行器功率, 250 w ^/在[ 9 ]中指定。请注意,数据中显示的扭矩不是测得的关节扭矩,而是命令给电机控制器的扭矩。因此,其数量可以大于致动器极限,并且在这种情况下,当命令转矩大于极限时,致动器输出将被最大输出转矩截断。

Fig. 4(d) and (e) show how the trajectory and reaction force tracking cooperate together to perform high speed running including aerial phase. The command for body posture is constant, which is the same command as for MPC, but WBIC does not force the robot to exactly follow the commanded trajectory. Instead, WBIC finds the solution satisfying the reaction force commands computed by MPC while controlling the body posture and swing feet as much as possible. Therefore, the measured height and pitch in Fig.(d) goes up and down around the constant commands since the robot jumps and lands as MPC plans.


Fig. 5 shows outdoor dynamic locomotion of various gait types. In the test, we use the same gains and weights over all gait types as we mentioned above. Over the entire outdoor test, the only inputs that we provide to the controller are gait type, running speed and direction, and all of them are transferred to the robot through a remote controller. Fig. 5 is a summary of the outdoor test. As the results show, our controller is capable of performing the various gaits in a stable and robust way. The robot follows the commanded velocity and direction well as can be seen in Fig. 5(c). Mini-Cheetah can run at speeds over 1 m/s with every gait type. Fig. 5(b) shows that our controller commands correct reaction force profiles as a desired gait type is changed.

The controller is also robust to different terrain types. The green field was wet and slippery because of the rain from the day before the test, but Mini-Cheetah stably keeps its body posture and accurately controls the swing legs. The robot can also run over the gravel terrain, which has significant roughness and rolling elements that cause body and step control to be difficult.
5示出了各种步态类型的户外动态运动。在测试中,我们对所有步态类型使用了与上面提到的相同的增益和权重。在整个户外测试中,我们提供给控制器的唯一输入是步态类型,运行速度和方向,所有这些都通过遥控器传输到机器人。图 5是室外测试的总结。结果表明,我们的控制器能够以稳定而强大的方式执行各种步态。如图5(c)所示,机器人很好地遵循了命令的速度和方向 。迷你猎豹可以以超过1个 米/s各种步态类型。图 5(b)显示,随着所需步态类型的改变,我们的控制器命令纠正了反作用力曲线。


 Our controller can demonstrate various dynamic running by switching the gait types. (b) The commanded vertical reaction forces are presented. (c) The commanded velocity and direction are presented with the measured velocity and yaw angle. The results show that the actual system follows the given commands well.
Fig. 5: Demonstration of Various Gaits. Our controller can demonstrate various dynamic running by switching the gait types. (b) The commanded vertical reaction forces are presented. (c) The commanded velocity and direction are presented with the measured velocity and yaw angle. The results show that the actual system follows the given commands well.


In this paper, we propose a new control scheme that can accomplish various dynamic locomotion of a quadruped robot with minimal user intervention. The effective combination of MPC and WBC is verified by the experimental results on the Mini-Cheetah robot. We accomplish high speed running up to 3.7 m/s by fully utilizing the hardware capability. In the outdoor tests, Mini-Cheetah demonstrates various gaits with speed over 1 m/s and push-recovery on rough terrain.

The immediate next step will be an implementation of the identical control framework to Cheetah 3 robot. We expect that no additional work is required for the implementation since the formulation is independent from the system parameters. Simple switch of system dynamics will enable high performance locomotion on Cheetah 3. A more interesting extension will be adding manipulation tasks on the cheetah robots with an additional manipulator. Although we do not mention various tasks except locomotion, WBC is naturally applicable to loco-manipulation tasks. With a small addition to the current scheme, our controller will be able to manage both locomotion and manipulation.

The proposed control scheme does not have a limitation not only in the task types but also for a topology of the target system. Therefore, we can apply this method to biped locomotion. We plan to extend our controller to biped walking and running in the near future with small additions such as a new contact sequence and step location planner.

在本文中,我们提出了一种新的控制方案,该方案可以在最少的用户干预下完成四足机器人的各种动态运动。在Mini-Cheetah机器人上的实验结果证明了MPC和WBC的有效结合。我们实现高速运行,直至3.7 米/s通过充分利用硬件功能。在户外测试中,Mini-Cheetah展示了多种步态,速度超过1个 米/s 并在崎岖的地形上进行推回。

下一步将是实现与Cheetah 3机器人相同的控制框架。我们期望实现不需要额外的工作,因为该公式与系统参数无关。系统动力学的简单切换将在Cheetah 3上实现高性能的运动。更有趣的扩展将是在带有附加操纵器的Cheetah机器人上添加操纵任务。尽管除了运动之外我们没有提及其他各种任务,但是WBC自然适用于运动操作任务。除了当前方案外,我们的控制器将能够管理运动和操纵。



This work was supported by the National Science Foundation [NSF- IIS-1350879], Naver Labs, and the Air Force Office of Scientific Research.


  • [1] K. Sreenath, H.-W. Park, I. Poulakakis, and J. Grizzle, “Embedding active force control within the compliant hybrid zero dynamics to achieve stable, fast running on MABEL,” International Journal of Robotics Research, vol. 32, no. 3, Mar. 2013.
  • [2] C. Hubicki, A. Abate, P. Clary, S. Rezazadeh, M. Jones, A. Peekema, J. Van Why, R. Domres, A. Wu, W. Martin, H. Geyer, and J. Hurst, “Walking and Running with Passive Compliance: Lessons from Engineering: A Live Demonstration of the ATRIAS Biped,” IEEE Robotics & Automation Magazine, vol. 25, no. 3, pp. 23–39, Sep. 2016.
  • [3] B. Dynamics. Introducing wildcat. Boston Dynamics. [Online]. Available: https://www.youtube.com/watch?v=wE3fmFTtP9g
  • [4] H.-W. Park, P. M. Wensing, and S. Kim, “High-speed bounding with the MIT Cheetah 2: Control design and experiments:,” The International Journal of Robotics Research, vol. 36, no. 2, pp. 167–192, Mar. 2017.
  • [5] D. Kim, J. Lee, J. Ahn, O. Campbell, H. Hwang, and L. Sentis, “Computationally-Robust and Efficient Prioritized Whole-Body Controller with Contact Constraints,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2018.
  • [6] B. Henze, M. A. Roa, and C. Ott, “Passivity-based whole-body balancing for torque-controlled humanoid robots in multi-contact scenarios,” The International Journal of Robotics Research, p. 0278364916653815, Jul. 2016.
  • [7] L. Righetti and S. Schaal, “Quadratic programming for inverse dynamics with optimal distribution of contact forces,” in 12th International Conference on Humanoid Robots (Humanoids). IEEE, 2012, pp. 538–543.
  • [8] J. Di Carlo, P. M. Wensing, B. Katz, G. Bledt, and S. Kim, “Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2018, pp. 1–9.
  • [9] B. Katz, J. Di Carlo, and S. Kim, “Mini Cheetah - A Platform for Pushing the Limits of Dynamic Quadruped Control.” in International Conference on Robotics and Automation (ICRA), 2019.
  • [10] M. Neunert, M. Stäuble, M. Giftthaler, C. D. Bellicoso, J. Carius, C. Gehring, M. Hutter, and J. Buchli, “Whole-Body Nonlinear Model Predictive Control Through Contacts for Quadrupeds ,” IEEE Robotics and Automation Letters, vol. 3, Jul. 2018.
  • [11] J. Koenemann, A. del Prete, Y. Tassa, E. Todorov, O. Stasse, M. Bennewitz, and N. Mansard, “Whole-body model-predictive control applied to the HRP-2 humanoid,” 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 3346–3351, Sep. 2015.
  • [12] S. Feng, E. Whitman, X. Xinjilefu, and C. G. Atkeson, “Optimization-based Full Body Control for the DARPA Robotics Challenge,” Journal of Field Robotics, vol. 32, no. 2, pp. 293–312, Mar. 2015.
  • [13] T. Koolen, S. Bertrand, G. Thomas, T. De Boer, T. Wu, J. Smith, J. Englsberger, and J. Pratt, “Design of a Momentum-Based Control Framework and Application to the Humanoid Robot Atlas,” International Journal of Humanoid Robotics, vol. 13, no. 01, pp. 1 650 007–35, Mar. 2016.
  • [14] D. Kim, S. Jorgensen, J. Lee, J. Ahn, J. Luo, and L. Sentis, “Dynamic Locomotion For Passive-Ankle Biped Robots And Humanoids Using Whole-Body Locomotion Control,” arXiv.org, Jan. 2019.
  • [15] R. Grandia, F. Farshidian, A. Dosovitskiy, R. Ranftl, and M. Hutter, “Frequency-Aware Model Predictive Control,” IEEE Robotics and Automation Letters, vol. 4, no. 2, pp. 1517–1524, Apr. 2019.
  • [16] J. Hwangbo, J. Lee, A. Dosovitskiy, D. Bellicoso, V. Tsounis, V. Koltun, and M. Hutter, “Learning agile and dynamic motor skills for legged robots,” Science Robotics, vol. 4, no. 26, p. eaau5872, 2019.
  • [17] A. Jain, Robot and Multibody Dynamics, ser. Analysis and Algorithms. Boston, MA: Springer Science & Business Media, Dec. 2010.
  • [18] S. Caron, Q.-C. Pham, and Y. Nakamura, “Stability of Surface Contacts for Humanoid Robots: Closed-Form Formulae of the Contact Wrench Cone for Rectangular Support Areas,” arXiv.org, Jan. 2015.
  • [19] G. Bledt, P. M. Wensing, S. Ingersoll, and S. Kim, “Contact model fusion for event-based locomotion in unstructured terrains,” in IEEE International Conference on Robotics and Automation (ICRA), May 2018, pp. 1–8.
  • [20] M. H. Raibert, H. B. Brown, and M. Chepponis, “Experiments in Balance with a 3D One-Legged Hopping Machine,” The International Journal of Robotics Research, vol. 3, no. 2, pp. 75–92, 1984.
  • [21] D. Goldfarb and A. Idnani, “A numerically stable dual method for solving strictly convex quadratic programs,” Mathematical Programming, vol. 27, no. 1, pp. 1–33, Sep. 1983.
  • [22] A. Escande, N. Mansard, and P.-B. Wieber, “Hierarchical quadratic programming: Fast online humanoid-robot motion generation,” The International Journal of Robotics Research, vol. 33, no. 7, pp. 1006–1028, 2014.
  • [23] B. G. Katz, “A Low Cost Modular Actuator for Dynamic Robots,” Master’s thesis, Massachusetts Institute of Technology, 2018.