Feeling Through the Load: Compliant Quadruped

Locomotion under Payload Interactions

Under Review

Abstract

Quadruped robots are increasingly expected to carry objects while moving through human environments. But what happens when a person interacts directly with the payload rather than with the robot? If the payload is unrestrained, the robot must distinguish intentional external interactions from ordinary payload motion, while still keeping the load balanced and maintaining stable locomotion. How can a quadruped infer and compliantly respond to such interactions using only onboard measurements? In this work, we develop a force-aware locomotion framework that treats payload interactions as commands that shape the motion of the combined robot-payload system. Our approach separates the learning of force-aware locomotion and force estimation on an unrestrained payload. We combine a compliant load-carrying policy with a causal force estimator, trained through estimator-in-the-loop data aggregation and finetuning, to predict interactions from onboard robot measurements. Our simulations and real-world experiments show that the resulting controller can maintain stable payload-carrying locomotion, yield compliantly to external interactions, and use the inferred force to support human-guided changes in the robot’s trajectory.

Video

Feeling Through the Load: Overview




We propose a force-aware locomotion approach that enables a quadruped robot to compliantly respond to interactions applied directly to an unrestrained payload while keeping the payload balanced. We model the robot–payload system using a virtual mass-spring-damper reference, allowing the robot to yield according to a commanded impedance while continuing to transport the payload safely. We propose a three-stage learning pipeline to make this behavior deployable without instrumenting the payload. We first train a privileged force-conditioned policy with objectives that encourage compliant locomotion and payload retention. We then train recurrent modules to adapt to unknown system properties and estimate the payload interaction force using only onboard robot measurements. Finally, we fine-tune the locomotion policy using the estimated forces so that it remains robust to estimation errors while preserving the desired compliant response.



Implementation Details

We train all components on a single laptop equipped with an NVIDIA GeForce RTX 5090 Laptop GPU with 24 GB of memory, a 24-core Intel Core Ultra 9 290HX Plus CPU, and 32 GB of system memory. All simulation and learning stages run on a single GPU without distributed training.

The privileged policy and recurrent adaptation module are trained using 2,048 parallel simulation environments. PPO collects 32 steps per environment before each update and uses four optimization epochs with four minibatches. The privileged policy is trained for 200 million environment steps, while recurrent adaptation uses an additional 50 million steps. The force estimator has a 256-dimensional recurrent hidden state and is trained for 20 epochs, with 200 optimization steps per epoch, sequences of 64 steps, and a batch size of 64. After one round of estimator-in-the-loop data aggregation, the actor is fine-tuned for another 20 million environment steps while the estimator and adaptation module remain frozen.

For one training seed, privileged policy learning took approximately 1 hour 40 minutes, recurrent latent adaptation took 25 minutes, the two force-estimator optimization rounds took approximately 5 minutes, and estimator-aware policy fine-tuning took 10 minutes. The core optimization stages therefore required approximately 2 hours 15 minutes. Estimator rollout collection and policy evaluation were performed separately and are not included in this total.


Payload-Retention Reward

The final objective augments the original FACET reward with terms for keeping the payload near the center of its support, reducing relative slip, retaining the payload, and keeping the carrying surface level.

Hyperparameter Value Hyperparameter Value
αm — margin reward 2.0 αs — slip reward 0.05
αr — retention reward 1.0 αu — level-surface reward 0.5
σm — margin sensitivity 0.5 wx, wy — support half-width 0.10 m
dmax — maximum horizontal offset 0.16 m

Force-Estimator Loss

Hyperparameter Value
Fmin — actionable force 5 N
βprob — activity loss 1.0
βdir — direction loss 1.0
βmag — magnitude loss 1.0
βvec — vector loss 0.5
β0 — inactive suppression 0.1
βM — mass auxiliary loss 0.10
ε — normalization constant 10−6
δ — Huber transition 1.0

Adaptation and Fine-Tuning

Hyperparameter Value
Adaptation coefficient — latent loss 1.0
λA — anchor loss 1.0
w(yt = 1) — active anchor 1.0
w(yt = 0) — inactive anchor 2.0
Anchor threshold — active force 5 N
Privileged-policy learning rate 5 × 10−4
Adaptation learning rate 5 × 10−4
Estimator learning rate 3 × 10−4
Fine-tuning learning rate 1 × 10−4

Real-world Experiments



We deploy our controller on a Unitree Go2 carrying an unrestrained 4 kg payload. During straight-line walking, the robot closely tracks the commanded speed of 0.25 m/s while maintaining near-zero lateral velocity. When a person pushes the payload, the robot yields to the interaction and uses the estimated force to generate a new route toward the original goal. The result plots show a representative interaction response and the distributions of trunk tilt and planar speed across ten trials. Overall, the interactions produce an average lateral route deformation of 0.345 m, while the robot returns to the goal with an average error of 0.045 m.

See the paper video for videos of simulation and real-world experiments, and representative out-of-distribution tests and failure cases.

BibTeX