Paper · 2024-03-24 · cs.RO
Robust-Locomotion-by-Logic: Perturbation-Resilient Bipedal Locomotion via Signal Temporal Logic Guided Model Predictive Control
Plans push recovery for the Cassie biped with an MPC whose cost maximises the robustness degree of a signal temporal logic spec: the apex must re-enter a Riemannian safety region within two steps. Smooth min/max operators make it an NLP; learned leg-collision MLPs allow crossed-leg steps. Author-reported: larger tolerated impulses than ALIP-MPC and an LTL planner in simulation.
Model predictive control (MPC)Signal temporal logicInverse kinematics (IK)bipedal-locomotionpush-recoverymodel-predictive-controlformal-methodslegged-robots
AI-compiled by claude-haiku-5-5 on 2026-10-25, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
A walking robot that gets shoved has to place its feet in the right spots, quickly. This paper treats that recovery as a planning problem. A controller re-plans a few steps ahead many times per second. The goal is written as a logic rule: after a push, the robot should get back into a safe range of body motion within two steps. The controller also measures how far inside that range it is and tries to push that measure up.
Some good recoveries cross one leg in front of the other, so the planner needs a fast way to check that the legs will not hit each other. The authors learn that check from data instead of computing the full leg geometry each time.
The method was tested in simulation against two other planners and on the Cassie robot, on a treadmill platform and with a cable-pulling rig. For an engineer, the reusable parts are a logic-based goal, a smooth score for it, and a learned collision check.
TL;DR
This is a push-recovery planner for one bipedal robot, not a general locomotion method. It formulates recovery as a model predictive controller whose objective maximises the robustness degree of a signal temporal logic (STL) specification, solved as a smooth nonlinear program §V-B §VI-A. The main reported gains come from crossed-leg recoveries enabled by learned leg-collision networks §VI-C §VIII-B. All numbers are author-reported. No official code was found.
Problem
- Recovery planners for bipedal robots often reason poorly about task logic and give no systematic robustness measure §I.
- Traditional MPC fixes the timing of key events, such as the apex or the contact switch, to a knot point. That makes motions conservative §V-A.
- An earlier LTL-based planner from the same group needs a keyframe in every step. After a large perturbation the keyframe may not exist, and that planner cannot handle perturbations beyond a preset bound §III-B §I §VIII-E.
- An exact STL encoding with binary variables (mixed-integer programming) scales badly with horizon length §V-B tab. 3.
- Exact self-collision checks need iterative inverse kinematics, which is too slow inside an MPC. The authors approximate the collision distances with networks that take the reduced-order state as input §VI-C.
Method
Reduced-order model §III-A
- The body is a point mass (the CoM) on a massless, telescopic stance leg at constant height. Its dynamics are the linear inverted pendulum equations with ω = sqrt(g / p_CoM,z) eq. 2 §III-A.
- The state is augmented with the swing-foot position: x̄ = [p_CoM; v_CoM; p_swing], nine values. The input is the swing-foot velocity ū = ṗ_swing. The output used by the specification is y = [x̄; ū], twelve values §III-A §V-A.
- Contact switches when the swing-foot height reaches the terrain height. At that instant the local coordinates are reset with the map below eq. 3 §III-A:
\begin{bmatrix} p^+_{\rm CoM} \\ v^+_{\rm CoM} \\ p^+_{\rm swing} \end{bmatrix} = \begin{bmatrix} p^-_{\rm CoM} - p^-_{\rm swing} \\ v^-_{\rm CoM} \\ -p^-_{\rm swing} \end{bmatrix}
- The double-support phase (about 40 ms in the experiments) is treated as instantaneous §III-A.
- Within a step the MPC uses a second-order Taylor expansion to discretise the dynamics, and numerical integration between knots so that collisions can be checked at non-contact states §VI-A.
Keyframe §III-B
- The keyframe is the apex: the CoM state at the instant the CoM lies over the stance foot in the sagittal direction (p_CoM,x = 0) §III-B, def. keyframe.
- Robust recovery is posed as a liveness property. A keyframe with positive margin must occur within the planning horizon, not necessarily in every step §III-B §V-A.
Riemannian safety region §III-C, app. A
- The CoM phase space is reparameterised with a tangent coefficient σ and a cotangent coefficient ζ. Both are derived analytically from the LIPM §III-C app. A:
0 = p(0)^2\big(2v(0)^2 - v(t)^2 + \omega^2(p(t)^2 - p(0)^2)\big) - v(0)^2\, p(t)^2 + \frac{v(0)^2\,(v(t)^2 - v(0)^2)}{\omega^2} =: \sigma
\zeta = \zeta_0 \left(\frac{v(t)}{v(0)}\right)^{\omega^2} \frac{p(t)}{p(0)}
app. A, tangent and cotangent equations
- Here p(0), v(0) is the CoM state at contact switching on the nominal gait, and ζ0 = 1 app. A.
- The safety region is the set where σ lies within Σ = [σ_nom − δσ, σ_nom + δσ] and ζ lies within Z = [ζ_nom − δζ, ζ_nom + δζ], one region in the sagittal phase space and one in the lateral phase space. Each has four bounds, so there are eight bounds in total [def. riem] [def. riem_robust].
- Only one lateral region is active at a time, the one on the current stance leg §III-C.
- The Riemannian safety margin is the minimum signed distance from the keyframe to the eight bounds. It is positive inside the region and largest at its centre [def. riem_robust] §III-C.
STL specification §IV §V-A
- Syntax: predicates π := μ(y) − c ≥ 0, combined with ¬, ∧, ∨ and the temporal operators ◊ (eventually), □ (always) and U (until) eq. 4 §IV-A.
- Boolean semantics are in tab. 1. Quantitative robustness is in tab. 2: negation flips the sign, ∧ takes a minimum, ∨ a maximum, ◊ a maximum over the window and □ a minimum over the window tab. 2 §IV-A.
- Keyframe predicate: p_CoM,x ≤ 0 and p_CoM,x ≥ 0 together, because equality is not a supported predicate §V-A.
- Riemannian predicate: φ_riem is the conjunction of the eight bound constraints, r_l(y) ≥ 0 eq. 5 §V-A.
- Stability: φ_stable = ◊ over the last step of the horizon of (φ_keyframe ∧ φ_riem), with N = 2 future steps §V-A.
- Foothold limit: φ_foot keeps the swing foot between two lateral edges at all times. The edges are the treadmill edges in the hardware setting §V-A.
- Full locomotion specification: φ_loco = φ_stable ∧ □ φ_foot. It is satisfied exactly when its robustness is non-negative eq. 6 §V-A.
Smooth encoding §V-B
- The robustness of φ_loco is non-smooth because of its min and max operators. The authors replace them with a smooth minimum and a smooth maximum, each with its own constant k1 or k2 > 0 eq. 7 §V-B:
# Smooth operators for robustness [§V-B] [eq. 7]
def smooth_min(rhos, k1):
# Soft minimum; under-approximates min for k1 > 0 [eq. 7]
return -log(sum(exp(-k1 * rho) for rho in rhos)) / k1
def smooth_max(rhos, k2):
# Softmax-weighted average of the rhos [eq. 7]
weights = [exp(k2 * rho) for rho in rhos]
return sum(rho * w for rho, w in zip(rhos, weights)) / sum(weights)- The authors claim soundness: a non-negative smooth robustness implies that the exact specification holds §V-B.
MPC optimisation §VI-A eq. 8–15
- Decision variables: states X and controls U at M knot points, and step durations T for the current step and the next N steps §VI-A.
- The horizon runs from the latest measured state to the end of the N-th next step. With seven knots per step and three steps, M = 21 §VI-A §VII.
- Objective eq. 8: minimise w times the sum of squared swing-foot velocities, minus the smooth robustness of φ_loco.
- Constraints, in order eq. 9–15 §VI-A:
- continuous dynamics between knots eq. 9;
- reset map at contact switches eq. 10;
- self-collision margin ≥ ε at every knot eq. 11;
- step duration inside [T_min, T_max] eq. 12;
- initial state equal to the measured state eq. 13;
- swing-foot height equal to the terrain height at each contact switch eq. 14;
- state and control box limits, with CoM height fixed and the swing-foot velocity boxed eq. 15.
- The weight w controls the trade-off between the specification and control effort. A smaller w gives more aggressive recovery §VI-A.
Step durations §VI-B
- Step durations are continuous decision variables, using direct multiple shooting §VI-B.
- The upper bound prevents a fall from slow stepping. The lower bound keeps leg speed physically possible §VI-B.
- When the remaining time of the current step drops below a threshold, the current duration T⁰ is fixed to its last solved value. The threshold is not stated §VI-B.
Self-collision networks §VI-C fig. 11
- Each leg is approximated by three capsules: shin, tarsus and Achilles rod §VI-C.
- Six capsule pairs are considered high-risk. The other three pairs cannot collide within the joint range §VI-C.
- One small network per pair, with two hidden layers of 24 neurons, predicts the minimum distance for that pair §VI-C.
- Input: the reduced-order state [p_CoM; p_swing], six values §VI-C.
- Training data: 10⁶ configurations centred on the standing pose, with six analytically computed distances as labels §VI-C.
- Reported accuracy: maximum absolute error 0.03 m, mean absolute error 0.002 m. Evaluation runs above 1 MHz, versus under 1 kHz for the iterative-IK route §VI-C.
- The constraint in the MPC is that each predicted distance stays above ε = 0.03 m eq. 11 §VII.
Stepping stones §VIII-D
- Each stone is a rectangle at a random position and yaw. The stance foot must lie inside one stone at each foothold time. This is written as a disjunction over stones, conjoined over the N footholds eq. 16–18 §VIII-D.
Runtime and implementation §VII §X
- The NLP is built in pydrake and solved by SQP with SNOPT. The STL specification uses the STLPy library §VII.
- The planner runs at 50 Hz on one computer. A passivity-based whole-body controller tracks the plan at 2 kHz on a second computer, communicating over UDP through ROS 2 §VII §X.
- If the MPC fails to solve, the low-level controller keeps the previous plan §VII §X.
- The previous solution warm-starts the next solve. Analytic gradients of the networks, supplied through Drake, replace finite differences and make gradient evaluation about 100 times faster §X.
- Full-body joint angles come from numerical, position-based inverse kinematics driven by p_swing and p_CoM. Upright body, zero hip yaw, flat toes and the spring and loop-closure constraints fix the solution. The current measured joints are the initial guess §VII.
Hyperparameters
| Name | Value | Where | Notes |
|---|---|---|---|
| Future walking steps N | 2 | §V-A fig. 10 | Horizon covers the current step plus N steps |
| Knot points per step | 7 | §VII | Horizon has M = 21 knots |
| Robustness/effort weight w | 0.01 | §VII | Chosen to prioritise the specification |
| Collision margin ε | 0.03 m | §VII §VIII-A | Guards against sensor noise and network error |
| Step duration bounds [T_min, T_max] | [0.3, 0.5] s | §VII | T_min is physical, T_max is a design choice |
| Desired gait | 0.4 s step, 0.6 m/s apex velocity | §VII | |
| CoM height | 0.8 m, ±0.04 m in hardware | §VII | |
| Heading correction | about 0.03 rad every 5 s | §VII | Hardware only, from remote user control |
| Planner rate | 50 Hz | §VII §X | Intel i7-1260P |
| Low-level rate | 2 kHz | §VII | Passivity-based controller |
| Solver | SQP with SNOPT, via pydrake | §VII | |
| STL library | STLPy | §VII | |
| Collision networks | 6 networks, 2 hidden layers × 24 neurons | §VI-C | Activation, optimiser and epochs not stated |
| Collision network data | 10⁶ configurations | §VI-C | Sampling region not stated in the paper text |
| Collision network error | max 0.03 m, mean 0.002 m | §VI-C | |
| Smooth operator constants k1, k2 | not stated | §V-B | Positive, tunable |
| Sagittal tangent margin δσ | 0.1 | app. A | From apex velocity range 0.1 to 0.9 m/s |
| Sagittal cotangent margin δζ | 0.1 | app. A | Apex at 25 to 75 % of the step |
| Lateral tangent margin δσ | 0.0022 | app. A | From apex CoM position range 0.01 to 0.2 m |
| Lateral cotangent margin δζ | 0.01 | app. A | Apex at 25 to 75 % of the step |
| Scale of all four margins | 0.1 | app. A | Maximum robustness is 0.1 |
| Lateral nominal CoM | 0.11 m | app. A | |
| Simulation impulses | 0.1 s; 9 magnitudes 80–400 N; 12 directions 0–330°; phases 0, 25, 50, 75 % | §VIII-E | 432 trials |
| Ablation impulses | 0.1 s; 4 directions, phase 0; 10 magnitudes 10–100 N | §VIII-F | |
| Ship-motion sweep | 26 amplitudes 6–30°; 20 frequencies 0.07–0.7 Hz (log); 520 per axis | §VIII-G | Pitch axis; roll uses the same setup |
| Inclined surfaces | −12° to 12° in 4° steps (49 cases); 100 N; 12 directions | §VIII-H | |
| CAREN perturbations | 10, 15, 20 cm; 12 directions; 4 phases | §IX-A | |
| BumpEm pulls | 8 directions; phase 0; pull lasts 0.2 s | §IX-B | |
| CAREN tilt | roll or pitch up to 5° at 0.25 Hz; dual axis up to 4° (pitch 0.25 Hz, roll 0.16 Hz) | §IX-C | |
| IK consistency check | 5000 inputs × 200 initial guesses; error about 3×10⁻⁸ | §VIII-A | |
| Infeasible solves | below 1 % | §I §X | Count definition not stated |
Results
Author-reported. Setup: Cassie biped. Simulation in MATLAB Simulink Simscape, a full-body model from the robot maker §VII. Hardware on the CAREN treadmill platform and on the BumpEm cable rig §IX.
| Setting | Metric | Baseline | This paper | Source |
|---|---|---|---|---|
| MIP vs smooth encoding, N = 2 | Solve time (s) | MIP 0.305 ± 0.255 | smooth 0.040 ± 0.015 | tab. 3 |
| MIP vs smooth encoding, N = 3 | Solve time (s) | MIP 1.380 ± 1.030 | smooth 0.080 ± 0.010 | tab. 3 |
| MIP vs smooth encoding, N = 4 | Solve time (s) | MIP 2.210 ± 1.740 | smooth 0.115 ± 0.025 | tab. 3 |
| Robustness reached | Robustness degree | MIP 0.100 ± 0.000 (global optimum) | smooth 0.092 ± 0.007 (local) | tab. 3 |
| Simulated omnidirectional push, two steps | Max tolerated impulse per direction and phase | ALIP-MPC and LTL planner | STL-MPC region encloses the ALIP-MPC region in most directions and phases; no numbers in text | fig. 15 |
| Ablation, four directions, phase 0 | Robustness degree distributions | STL-MPC without collision networks, without STL, or with fixed contact timing | STL-MPC higher in all four directions | fig. 16 |
| Ablation, one case | Recovery at 30° and 185 N | Fixed apex timing fails | Recovers | §VIII-F |
| Dynamic ship-like surface, simulation | Tolerated amplitude vs frequency | ALIP-MPC | Larger pitch tolerance; roll similar | fig. 17 values only in figure |
| Inclined surfaces, 100 N | Success rate per inclination | not applicable | Success falls with inclination; better uphill | fig. 18 |
| Hardware, CAREN omnidirectional | Recovery | not applicable | All trials recovered but one (75 % phase, 180°, 20 cm) | §IX-A |
| Hardware, BumpEm | Max tolerated pull | not applicable | Values per direction in figure | fig. 21 |
| Hardware, orientation on CAREN | Tilt tolerated | not applicable | 5° single axis; 4° dual axis | §IX-C |
| Collision networks | Max and mean error; speed | iterative IK under 1 kHz | error 0.03 m max, 0.002 m mean; above 1 MHz | §VI-C |
The conclusions claim an 81 % increase in maximum impulse tolerance during leg-crossing §XI. The body text does not show that number. See Pitfalls.
Paper vs code
No official code. The abstract, the introduction and the body link no repository or project page. Searches with the GitHub repository API for the method name, stl cassie mpc, cassie locomotion lidar and cassie bipedal mpc signal temporal logic returned no results. A GitHub user search for "Ye Zhao" with Georgia Tech and LIDAR also returned nothing. A web search was not permitted in this session.
Pitfalls
- Keyframe predicate and sampling. The keyframe is written as two inequalities, p_x ≤ 0 and p_x ≥ 0 §V-A. Their combined robustness is −|p_x| (inference from the formula), which is zero only at p_x = 0. The paper does not say how the apex is made to fall exactly on a sampled knot, so an implementation must handle this explicitly, for example by an equality constraint at a knot or a tolerance.
- Smooth operator constants. k1 and k2 are never given §V-B. Soundness holds only in the paper's stated sense, and the choice changes the gradient and the robustness value. Report the values you use.
- Margin scaling. The four margin terms are scaled to 0.1 in words only, with no formula app. A. Effort is weighted by w = 0.01 §VII. The relative size of effort and robustness therefore depends on that scaling. Reproduce it exactly.
- Signed distance to the bounds. The paper defines ρ_riem as the minimum signed distance to the eight bounds [def. riem_robust], but gives no closed form for the distance to a curved bound. The manifolds are given app. A, not the distance computation.
- Collision networks. The active text gives the input as the six-value LIPM state §VI-C. Whether and how mirrored steps (left stance) are handled is not stated. The paper does not give the sampling region of the 10⁶ training points. A commented-out draft in the source gives a sampling box. That draft is not paper text, so this card does not use it.
- Solver timing. The text says the MIP is 5 to 10 times slower §VIII-C. The means in tab. 3 give about 7.6× for N = 2, about 17× for N = 3 and about 19× for N = 4. Use the table.
- Smooth solver is local. It reaches 0.092 against the MIP's global 0.100 in the authors' test tab. 3. The paper argues the speed is worth it, but a reimplementation may land in worse local optima.
- Infeasibility. The "below 1 %" figure §I §X has no stated denominator.
- Step-timing threshold. The remaining-time threshold that fixes T⁰ is not given §VI-B. Knot times for variable step durations are also not specified, beyond the statement that integration runs between knots §VI-A.
- Foothold bounds. The edge distances e_left and e_right for φ_foot are not numeric §V-A. The paper does not say whether φ_foot was active in the simulations, which include a stepping-stone case §VIII-D.
- Stepping-stone generation. The number of stones, their size and their spacing are not given beyond "random" §VIII-D.
- Ship-motion claim. The abstract's ship-motion result is simulation §VIII-G. The hardware test is a CAREN tilt oscillation, described as similar to ship motion §IX-C. No hardware ship test is reported.
- 81 % claim. The conclusion's 81 % figure §XI is not reproducible from the text. The comparison is only shown in fig. 15, whose values are not tabulated.
- Missing training details. The collision networks' activation function, optimiser, learning rate, epochs and input normalisation are not stated §VI-C.
- Reproduction depends on Drake. The analytic network gradients and the warm start are tied to pydrake §X. Without Drake, the 50 Hz rate is not expected.
- Terrain. The planner always places the next contact at the stance-foot height, so downhill slopes are harder §VIII-H. Rough terrain is discussed as future work with a height map assumed, not tested §X.
Lineage
- Builds on the authors' earlier conference version of the STL-guided planner §I.
- Replaces the authors' LTL-based planner, which needed a keyframe per step and used a hierarchy with behaviour trees §I §III-B.
- Uses a smooth-operator encoding of STL robustness §V-B, and compares it with a mixed-integer encoding §VIII-C tab. 3.
- Baselines in the experiments: an angular-momentum linear MPC (ALIP-MPC) and a time-adaptive multiple-shooting MPC with fixed contact-switching timing §VIII-E §VIII-F.
- The reduced-order model extends the linear inverted pendulum with swing-foot states §III-A.
Source and license
Adapted from “Robust-Locomotion-by-Logic: Perturbation-Resilient Bipedal Locomotion via Signal Temporal Logic Guided Model Predictive Control” by Zhaoyuan Gu, Yuntian Zhao, Yipu Chen, Rongming Guo, Jennifer K. Leestma, Gregory S. Sawicki, Ye Zhao (arXiv:2403.15993), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.