Generate, Track, Improve: Perceptive Multi‑Skill Humanoid Locomotion with RL‑Fine‑Tuned Motion Generators

Zachary Olkin, William D. Compton, Aaron D. Ames

Department of Control and Dynamical Systems, California Institute of Technology

Supplementary video. Watch on YouTube.
01

Abstract

General purpose humanoids require locomotion controllers that are multi-skill, perceptive, dynamic, and robust enough to go anywhere humans can. In this work, we present a two layer locomotion architecture: (1) a perceptive flow matching motion generator plans whole body trajectories from raw depth images while a (2) perceptive tracking policy trained with control-guided RL follows these motions. Both policies are trained on a library of terrain consistent motion clips created with dynamically optimized human data which yields both accurate velocity tracking and terrain consistent references.

Our central contribution is a simple yet effective off-policy RL fine tuning loop that improves the motion generator. A structured search method is used with the generator to gather data for advantage weighted regression. This off-policy loop is much more sample efficient than on-policy residual fine tuning and improves terrain consistency on unseen geometries and skill compositions. We find that successful terrain traversals increased by up to 25 percentage points and skill selection improved by up to 80 percentage points.

By using raw depth images to perceive the environment no odometry or height maps are needed, and outdoor deployment is easy. With two cameras, the policy can see terrain coming from further away and adjust its velocity regardless of the commanded speed so it can traverse the terrain. A single policy pair enables a Unitree G1 humanoid to walk, run, stand, jump on and off of boxes, and traverse stairs in outdoor environments.

02

Method

The pipeline has four parts: a data pipeline that turns human motion capture into a library of terrain-consistent motion clips, a tracker trained with CLF-RL to follow those clips, a generator trained with flow matching to produce them from depth images, and an RL fine-tuning loop that improves the generator. On the robot, the tracker runs at 50 Hz and the generator re-plans a 1.24 s whole-body trajectory every 0.24 s.

Pipeline diagram: human data to optimization to motion clips and motion library; tracking training with CLF rewards and PPO; flow matching training on depth images; RL fine tuning of the generator with a critic in IsaacSim.
Fig. 2. Overview of the method. Human data is translated into motion clips through optimization and generative models. A perceptive tracking policy is trained with CLF-RL to track the motion library. The library and tracker are then used to collect the depth images the robot sees in each state, which, paired with the commanded velocity, train the flow matching generator. Finally, the generator is fine-tuned with off-policy RL.
03

Hardware

Deployed on a Unitree G1 with a ZED X (upper, forward-facing) and a ZED X Mini (lower, looking at the legs and ground). The generator and tracker run on an onboard Jetson Thor, with depth processed on a Jetson Orin. Indoors and outdoors use the same policies with no changes.

04

Skills in Simulation

05

RL Fine-Tuning of the Generator

Each iteration collects rollouts, trains a critic to label advantages, and updates the generator, shifting its output distribution toward the high-advantage modes.

The generator outputs almost 3,000 numbers per plan, so Gaussian noise on its actions is a poor way to explore. Instead, rollouts are diversified by perturbing the conditioning (and storing the nominal conditioning as the label), resampling the flow matching initial noise, and spawning the robot in states the original policy might not reach.

A critic built on the generator's frozen prefix encoder is fit by fitted value iteration. Its advantages then weight the flow matching loss, in the style of advantage weighted regression:

\[\begin{gathered}\mathcal{L}=\frac{1}{B}\sum_{i=1}^{B}\frac{w_i}{H\ell}\,\big\lVert v_\theta(x^i_t,t_i,s_i)-v^*\big\rVert_F^2\\ w=\min\{\exp(\tilde A/\beta),\,L\}\end{gathered}\]

Rewards favor terrain consistency first (penetration and contact via signed distance fields). Velocity tracking and success only pay out when the plan is terrain consistent. Five iterations take about six hours on one H100.

Pre-trained vs. fine-tuned

Each comparison uses the same terrain, the same random seed, and the same frozen tracker. Only the generator differs. When a run falls, its side freezes on the last frame.

Bar charts: success rate, mean contact penalty, and fraction of episodes with every mode correct, for pre-trained vs fine-tuned generators across terrains.
Fig. 4. Effects of the RL fine-tuning on out-of-distribution and in-distribution terrains. (a) Success rate. (b) Mean contact penalty (lower is more terrain consistent). (c) Fraction of sampled episodes that choose every skill correctly: on one stairs terrain, this goes from 0% to about 80%. Error bars are 95% confidence intervals.

Why off-policy AWR?

We compare AWR against filtered behavior cloning, arrival filtering (keep every rollout that reaches the goal), plain behavior cloning/self-distillation, and AWR without perturbed conditioning. AWR matches or beats every alternative in both success rate and terrain consistency. Plain BC fails badly, so some selection signal is essential. Removing the conditioning perturbations costs 4–6 points of success.

A residual policy trained with PPO on the full 2,728-dimensional output reached a success rate about 13 points lower than AWR, after using more than 160× the data and 30× the wall-clock time.

Forest plot of success rate and contact penalty relative to AWR for AWR without perturbation, arrival filtering, filtered BC, and plain BC across three settings.
Fig. 5. Fine-tuning algorithms relative to AWR, with 95% confidence intervals.
06

Velocity Tracking & Ablations

The velocity command does not need to know about the terrain. The upper camera sees obstacles coming, and the generator slows the robot down for stairs or a box jump, then returns to the commanded speed.

Root height and forward velocity over time for flat, stairs up, box, and stairs down terrains at 0.8, 1.6, and 2.2 m/s commands.
Fig. 6. The robot slows down on its own when it approaches terrain, then tracks the command again. Percentages are successes over 150 trials per terrain.

Both cameras matter

A generator trained without the forward-facing upper camera often runs into the box, because it cannot see it in time to slow down.

Table IV. Success rate on in-distribution terrain, pre-trained generator.
TerrainBoth camerasLower only
Flat100%100%
Box100%57.3%
Stairs up82.7%71.3%
Stairs down97.3%88.0%

Optimized references track velocity better

Table III. Flat-ground velocity RMSE (m/s) of the motion clips, with 95% CIs.
Command vxOursMotion Bricks
(−1.0, −0.2]0.484 [0.357, 0.598]0.462 [0.346, 0.562]
(−0.2, +1.0]0.230 [0.191, 0.271]0.368 [0.308, 0.434]
(+1.0, +2.5]0.442 [0.312, 0.563]0.896 [0.813, 0.976]
07

Citation

@article{olkin2026generate,
  title   = {Generate, Track, Improve: Perceptive Multi-Skill Humanoid
             Locomotion with RL-Fine-Tuned Motion Generators},
  author  = {Olkin, Zachary and Compton, William D. and Ames, Aaron D.},
  year    = {2026}
}