Contact-UAN: Unsupervised Actuator Networks as a Residual World Model for Humanoid Control
Organizations: Improbable AI Lab, MIT
Abstract
Humanoid policies trained in simulation can transfer qualitatively to hardware while failing to transfer the force interactions learned during training, compromising torque efficiency, load regulation, and robustness to impacts. This failure can arise from actuator sim-to-real gaps because forces depend on actuator torques. We introduce Contact-UAN, a residual world model that preserves a simulator's physics priors while correcting actuator dynamics to align simulated rollouts with recorded hardware rollouts. For humanoid motion with contact, this requires contact-consistent replay: if hardware playback in simulation begins with misaligned contact wrenches, the residual model learns to correct reset artifacts rather than actuator discrepancies. Using only onboard proprioception, Contact-UAN infers the simulator-side stance-foot pose needed to initialize replay with consistent contact forces. We show that a UAN trained on 6.5 minutes of real-world walking data generalizes to tasks that benefit from accurate force and impulse regulation and produces policies that transfer seamlessly to the real world, yielding 20% lower running torque, 43% lower force-tracking error, extreme compliance, accurate impedance control, and dynamic, robust jumps.
Figures & tables
Appendix figures & tables20 assets
Supplementary material from the paper’s appendix.
Appendix
| Setting | Base velocity | Contact status | Foot height | Foot proj. gravity |
|---|---|---|---|---|
| Output dimension | 3 | 2 | 1 per foot | 3 per foot |
| Hidden layers | ||||
| Loss | MSE | BCE-logits | MSE | MSE |
| Observation | Noise range |
|---|---|
| Base angular velocity | |
| Projected gravity | |
| Joint position | |
| Joint velocity | |
| Previous target | none |
| Actuator group | Joints |
|---|---|
| 7520_14 | Hip pitch, hip yaw, waist yaw |
| 7520_22 | Hip roll, knee |
| 5020_2x | Waist roll, waist pitch, ankle pitch, ankle roll |
| 5020 | Shoulder pitch, shoulder roll, shoulder yaw, elbow, wrist roll |
| 4010 | Wrist pitch, wrist yaw |
| Element | condim | friction | solref | solimp |
|---|---|---|---|---|
| Foot collision geoms | ||||
| Terrain/ground geom |
| Parameter | UAN | WTW | Running | Force-control | Jumping |
|---|---|---|---|---|---|
| Optimization | |||||
| Parallel environments | 4096 | 4096 | 4096 | 4096 | 16384 |
| Steps per environment | 24 | 24 | 24 | 24 | 24 |
| Learning epochs | 5 | 5 | 5 | 5 | 5 |
| Mini-batches | 4 | 4 | 4 | 4 | 4 |
| Learning rate | , adaptive (target KL 0.01) for all | ||||
| Term | Math | Weight |
|---|---|---|
| joint_position_mse | ||
| joint_velocity_mse | ||
| residual_rate_l2 |
| Term | Math | Weight |
| Task rewards | ||
| track_linear_velocity | ||
| track_angular_velocity | ||
| Regularization | ||
| upright | ||
| pose | ||
| Term | Math | Weight |
| Task rewards | ||
| track_force_ee | ||
| track_lin_vel_xy_exp | ||
| track_ang_vel_z_exp | ||
| Regularization | ||
| upright | ||
| Term | Dim. | Noise |
|---|---|---|
| Reference joint positions and velocities (current frame) | 58 | – |
| Reference height | 1 | – |
| Reference projected gravity | 3 | – |
| Reference root velocity | 6 | – |
| Projected gravity (IMU) | 3 | 0.05 |
| Base angular velocity (IMU) | 3 | 0.2 |
| Term | Math | Pretraining | Fine-tuning |
|---|---|---|---|
| Motion tracking | |||
| motion_global_root_pos | |||
| motion_global_root_ori | |||
| motion_body_pos | |||
| motion_body_ori | |||
| motion_body_lin_vel | |||
| Condition | Trigger | Pretraining | Fine-tuning |
|---|---|---|---|
| Episode timeout | s | s | |
| Anchor height error | m | – | |
| Anchor gravity mismatch | – | ||
| End-effector height error | m | – | |
| Minimum root height | – | m | |
| Maximum root tilt | – |
| Perturbation | easy | medium | hard |
|---|---|---|---|
| Damping offset | |||
| Frictionloss offset | |||
| Action delay | step | steps | steps |
| Encoder bias | rad | rad | rad |
| Armature multiplier |
| Parameter | Value |
|---|---|
| Architecture | |
| Backbone | GRU ensemble |
| Ensemble size | 5 |
| RNN hidden size | 256 |
| RNN layers | 2 |
| Head MLP (state / ext. / contact / term.) | |
| Parameter | Baseline PPO | MOPO-PPO (RWM-U) |
|---|---|---|
| Rollout collection | ||
| Parallel envs | 4096 | 4096 |
| Steps per environment | 24 | 24 |
| Rollout source | simulator | learned WM |
| Outer iterations | 20,000 | 5,000 |
| Optimization | ||
| Model | Replay | Survival | XY error | Yaw error | Power |
|---|---|---|---|---|---|
| (rad) | (%) | (m/s) | (rad/s) | (W) | |
| Position residual | 0.00349 | 97.34 | 0.391 | 0.185 | 69.29 |
| Torque residual | 0.00571 | 98.17 | 0.387 | 0.214 | 69.25 |
| Supervised torque | 0.00565 | 97.56 | 0.394 | 0.215 | 71.90 |
Humanoid Robot Control
Humanoid robot control develops methods for coordinating bipedal balance, locomotion, and whole-body interaction with people and objects.
See all 202 papers