← Back to all work

Six papers,one Unitree A1

Since July I've been reimplementing recent legged-locomotion papers and trying them on a Unitree A1. Some I wrote from scratch, some I built on community ports. One of them, a blind DreamWaQ policy, walks outdoors. This page is the long version: what each attempt was, how far it got, and what broke.

July to October 2026. Trained in Isaac Lab, checked in MuJoCo, run on the A1's Jetson Xavier NX.

The DreamWaQ policy in Isaac Sim on rough ground, taking 2 m/s shoves. It has no camera; everything it knows about the ground comes from its joints and IMU.

How far each one got

Each paper has its own page with the full story. Every attempt has the same ladder: train in simulation, pass a check in a second simulator (MuJoCo), run on the robot while it hangs from a hoist or rope, then walk on the ground. Each bar shows the last rung it reached.

Timeline

  1. Extreme Parkour on the official Isaac Gym code.
  2. First A1 teacher on a community Isaac Lab port of Extreme Parkour.
  3. First learned policy runs on the A1, hanging, holding a stance.
  4. Parkour student policy on the robot, on a hoist.
  5. APT-RL begins: the motion library, then the RL side.
  6. The rear-drag investigation on the parkour teacher.
  7. DreamWaQ begins.
  8. DreamWaQ on a rope in the morning, walking outdoors in the evening.
  9. 29.5-minute outdoor DreamWaQ session, two policies switchable from the remote.
  10. HIMLoco.
  11. Extreme Parkour depth student runs a full course in MuJoCo.
  12. PIE and MOVE, both from scratch.
  13. APT-RL passes its first gate: walking on the learned prior.
  14. Best APT-RL teacher so far: 0.835 success on obstacle terrain, in sim.
  15. APT-RL: teaching it to cross gaps and to choose its gait.

Hardware

The A1 runs everything onboard on its Jetson Xavier NX, with a RealSense D435 for the depth-camera policies. I also designed a new head that houses a Livox Mid-360 lidar alongside the D435: a rigid printed mount, a filler block and a TPU bumper skin, checked with impact simulations. The latest revision, Rev D3.3, stacks the sensors behind a wedge front, with the lidar tilted up and the camera down, and lets the filler form the whole head. Its impact study found a thin neck behind the lidar, a margin weak spot whose fix is designed but not yet analysed.

The sensor head: design and impact study

CAD render of the A1 with the Rev D3.3 sensor head: a dark wedge-shaped block on the nose with the lidar dome on top
Rev D3.3 of the head on the A1, rendered from the CAD.

What carried over

  • A second simulator before the robot. Every policy has to pass in MuJoCo before it runs on hardware. When the parkour student froze on the robot, reproducing it exactly in MuJoCo settled that the policy was at fault, not the port.
  • Write down the contract. I keep a document of the observation order, scaling, default pose and gains, with tests on both sides. Most hardware failures here were silent mismatches, not physics.
  • Know the robot's quirks. The A1's remote sends a different header from the one documented. A 1 Hz low-level probe still takes over the motors. A factory ROS service on the robot had to be found and disabled.
  • Run several seeds. One run proves nothing.
  • Watch the video. A metric can pass while the robot drags its feet or lies face down.

How this was done

Nearly all of the code here was written by Claude Code agent sessions. I chose the papers, set the direction and the pass/fail bars, ran every hardware session, and called it when a result didn't hold up ("you call that a walk?"). The agents wrote the implementations, ran the experiment loops on two local GPUs, and kept the run logs this page is built from. That's how six papers fit into eleven weeks.