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

##### author

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.

## ABSTRACT 摘要

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.

## IINTRODUCTION 介绍

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.

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.

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.

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.

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.

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.

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.

WBC 和 MPC 的集成使我们的控制器具有多功能性和鲁棒性。多功能意味着，在我们的控制器中，只需简单地重新配置所需的动作，即可更改行为或添加更多任务（例如，如果有其他肢体，则进行操作）。例如，选择不同的步态可以通过更改我们的配方中的脚步模式和时机来完成，而低级细节（例如，摇摆脚控制和车身稳定性）则可以通过我们的控制方案自动完成。我们的控制器将自动处理具有较大飞行周期的步态，例如跳跃，俯仰或划界，而无需在飞行周期或启动不足时手动进行计划。

“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.

## IIHYBRID CONTROL ARCHITECTURE 混合控制架构

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.

## III MODEL PREDICTIVE CONTROL 模型预测控制

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.

### III-A MPC FORMULATION

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.

$$\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:

$$\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}}$$

where,

$$\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

$$\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].

### III-BGAIT SCHEDULER 步态调度器

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.

### III-CFOOT STEP PLANNER 脚步计划器

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

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

$$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.

## IVWHOLE-BODY IMPULSE CONTROL 整体脉冲控制

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.
WBIC 使用 MPC 发现的反作用力来计算关节位置，速度和扭矩命令。对于关节位置，速度和加速度的计算，我们利用严格保持任务优先级的逆运动学算法。为了计算转矩指令，我们使用二次编程来找到反作用力，从而在满足合成反作用力的不等式约束的同时，减少了加速度指令跟踪和反作用力指令跟踪中的两个误差。

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)$$

where

$$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

$$\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}).

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,

$$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.

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}.

Since all terms on the right hand side are known, we can easily solve it and obtain the joint torque command, τj.

## VEXPERIMENTAL RESULTS 实验结果

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.

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.

### V-AHIGH SPEED RUNNING

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.

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.

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.

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.
4（d）和（e）显示了轨迹和反作用力跟踪如何一起协作以执行包括空中相位在内的高速行驶。用于身体姿势的命令是恒定的，与用于 MPC 的命令相同，但是 WBIC 不会强制机器人完全遵循命令的轨迹。相反，WBIC 会找到满足 MPC 计算的反作用力命令的解决方案，同时尽可能地控制身体姿势和摆动脚。因此，由于机器人按照 MPC 计划跳跃和着陆，图（d）中测得的高度和螺距围绕恒定命令上下移动。

### V-BOUTDOOR TEST 户外测试

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）显示，随着所需步态类型的改变，我们的控制器命令纠正了反作用力曲线。

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.

## VICONCLUSION AND DISCUSSION 结论与讨论

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.

## ACKNOWLEDGMENTS

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

## REFERENCES

• [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.