ForPC: Force-Aware Whole-Body Control for Precise Humanoid Cart Pushing
TL;DR A two-stage RL controller lets a Unitree G1 push a cart by inferring its hand forces and the cart's motion from its own joint signals, with no force sensors. In simulation it cuts cart-velocity error by up to 68.2% over a locomotion-only policy, and it transfers zero-shot to a real G1 pushing a 30 kg payload at 0.5 m/s.
What they do
When a humanoid pushes a cart with both hands, the forces that move the cart also push back on the robot, and the payload changes how the cart responds. The cart has no motion sensors and the G1’s hands have no force sensors. ForPC infers both quantities from onboard signals and feeds them to a whole-body RL policy that tracks commanded forward, lateral and yaw cart velocities.
How it works
- Locomotion prior. A walking policy learns to track base velocities while random forces and moments act on the palms and the arm and waist postures vary around the pushing pose. It is then frozen.
- Force-guided inference. A teacher encodes privileged contact forces and states into a force latent and a state latent. A student predicts both from a 32-frame history of joint motion, joint torques and the cart’s relative heading (an AprilTag seen by the head camera).
- Residual task policy. From the latents it outputs 3 base-velocity command adjustments, 15 arm and waist residuals and 12 leg residuals. Rewards penalize internal force (the two hands pushing against each other), grasp slip and wrist saturation.
- Trained in Isaac Lab; evaluated in Isaac Sim and, as a sim-to-sim test, in MuJoCo.
Results
- Velocity tracking at 15 and 25 kg: lowest RMSE in all 12 simulator, payload and motion combinations, up to 68.2% below Loco-only. The gap is largest when turning.
- Route tracking (640 trials per setting): cross-track RMSE down by up to 74.2% and heading RMSE by up to 76.7%. Success is 100% at both payloads, against 89.1% and 76.6% for Loco-only.
- Force awareness cuts the share of hand load lost to opposing hands by up to 34.6 percentage points. Decoded hand forces reach R² of 0.97 (forward) and 0.78 (lateral).
- Real G1, zero-shot: forward, lateral and in-place rotation of the cart, plus a navigation-driven delivery with a payload swap mid-run and no controller reset, carrying up to 30 kg at 0.5 m/s.
Limitations
The hardware runs are demonstrations without tracking metrics; all numbers above come from simulation. The cart heading relies on an AprilTag, the hands keep a fixed grasp, and one cart was tested on flat indoor floors. Other wheeled objects and cluttered environments are left to future work.
Videos
Figures




Abstract
Humanoid robots are expected to take over strenuous material handling in manufacturing, logistics, and healthcare, where operating existing wheeled carts would let them move heavy loads without modifying the workplace. However, humanoid cart pushing remains challenging because the bimanual grasp closes a force-coupled loop in which the contact wrenches that drive the cart also disturb the robot's balance, and payload changes alter the coupled dynamics. We propose ForPC, a force-aware whole-body control framework that regulates cart velocity through two-stage reinforcement learning. A locomotion prior is first trained under varied hand loads and upper-body postures to provide balance support. A force latent and a state latent are then inferred from onboard observations, without external force sensors, and fed to a residual policy that coordinates bounded arm, waist, and leg adjustments with base-velocity commands. Multi-objective rewards penalize bimanual internal opposition, grasp slip, and actuator saturation, encouraging the policy to apply contact force on demand without human demonstrations. Sim-to-sim experiments show that ForPC reduces cart-velocity RMSE by up to 68.2% relative to a locomotion-only baseline (Loco-only) and cross-track RMSE by up to 74.2% on the multi-bend route. Trained solely in simulation, the policy also transfers to a physical Unitree G1 without real-world training or fine-tuning and, with no payload-specific adjustment, pushes a cart carrying up to 30 kg at 0.5 m/s. These results suggest that humanoid robots could eventually replace humans for efficient material handling in daily life.
Summaries are written automatically from each paper's text. Figures and videos come from the paper and its project page; all credit goes to the authors.
