Robot Parkour Learning
TL;DR Five parkour skills are trained in simulation with RL that first lets the robot pass through obstacles and then enforces real contact, then distilled into one depth-camera policy for low-cost quadrupeds. On a real A1 it climbs 0.40 m obstacles and leaps 0.60 m gaps with 80% success.
What they do
Parkour on low-cost quadrupeds (Unitree A1 and Go1): climbing, leaping gaps, crawling under barriers, tilting through narrow slits and running, all from one end-to-end policy that uses only onboard depth and proprioception. Every skill is learned with the same simple reward (move forward at about 1 m/s, an energy penalty, an alive bonus) and no reference motion data.
How it works
- Skill policies. One GRU policy per skill, trained with PPO in IsaacGym using privileged obstacle information (distance, height, width, type) and randomized physics.
- Soft-then-hard dynamics. Inspired by direct collocation, obstacles start out penetrable. A penalty on penetration volume and depth at sampled collision points (denser around the motors), together with an automatic difficulty curriculum, gradually enforces contact. Fine-tuning then uses solid obstacles.
- Distillation. DAgger distills the five skills into one GRU policy on a 48x64 depth image, with the teacher chosen by obstacle type.
- Deployment. Depth images are processed so sim and real look alike (noise and artifacts in sim; hole filling and smoothing on the robot). Depth arrives at 10 Hz, the policy runs at 50 Hz, and torque is capped at 25 Nm.
Results
- Soft-dynamics pre-training reaches about 95% success across the four obstacle skills in simulation. RND and hard-dynamics-only training never learn to climb or leap.
- Distilled policy on harder test terrains in simulation: 86% climb, 80% leap, 100% crawl, 73% tilt. Blind, MLP and No Distill variants score at most 1% on climbing and leaping.
- Real A1, 10 trials per setting: 0.40 m climbs (1.53x robot height) at 80%, 0.60 m gaps at 80%, 0.2 m crawls at 90%, and 0.28 m slits by tilting. It does best on every skill against a blind policy and the built-in MPC controllers.
- Outdoors it leaps a 0.6 m gap and climbs consecutive 0.42 m steps. When a climb fails, it backs off and tries again, a behavior nobody programmed.
Limitations
Simulation environments are built by hand, so each new skill needs new obstacles added to simulation. The policy sees depth only, not RGB.
Videos
Figures




Abstract
Parkour is a grand challenge for legged locomotion that requires robots to overcome various obstacles rapidly in complex environments. Existing methods can generate either diverse but blind locomotion skills or vision-based but specialized skills by using reference animal data or complex rewards. However, autonomous parkour requires robots to learn generalizable skills that are both vision-based and diverse to perceive and react to various scenarios. In this work, we propose a system for learning a single end-to-end vision-based parkour policy of diverse parkour skills using a simple reward without any reference motion data. We develop a reinforcement learning method inspired by direct collocation to generate parkour skills, including climbing over high obstacles, leaping over large gaps, crawling beneath low barriers, squeezing through thin slits, and running. We distill these skills into a single vision-based parkour policy and transfer it to a quadrupedal robot using its egocentric depth camera. We demonstrate that our system can empower two different low-cost robots to autonomously select and execute appropriate parkour skills to traverse challenging real-world environments.
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.
