Autonomous
Trail Racing

International Journal of Robotics Research
Under review

A bicycle robot races a kilometer-scale mountain-bike trail at 3.26 m/s on average, with peaks above 5 m/s, on onboard perception and compute alone.

Abstract

We paint the trail into the terrain the policy trains on, then make that same trail visible to the real robot. Navigation reduces to following what it perceives.

Navigating off-road trails on a mountain bike requires diverse locomotion skills, including aerial maneuvers, cornering, and slip recovery, paired with sophisticated perception for scene understanding. Translating these capabilities to autonomous, two-wheeled robots remains a formidable challenge. We show that autonomous, high-speed trail navigation can be achieved through a single idea: encoding the trail as a semantic layer of the terrain. In simulation, this layer embeds the navigation task into the training environment; during deployment, it is reconstructed onboard from camera and LiDAR data.

First, we introduce a unified learning framework that treats local navigation and locomotion as a joint optimization problem, bypassing the twist or pose command interface of classical control hierarchies. With fixed reward weights, the same framework produces both trail racing and agile parkour, shaped only through terrain semantics and episode length. Second, our perception pipeline combines a frozen vision foundation model with a lightweight dual-head decoder that predicts per-pixel terrain semantics and confidence scores, which are fused with LiDAR range measurements into an egocentric semantic elevation map at 30 Hz onboard an NVIDIA AGX Orin.

We validate our framework on the Ultra Mobility Vehicle (UMV), a bicycle robot that autonomously raced across all sections of a kilometer-long, unstructured mountain bike trail at speeds exceeding 5 m/s and averaging 3.26 m/s. In simulation, our policy fails up to an order of magnitude less often than hierarchical baselines while driving faster. We release our simulation and perception tools as open source.

Grid of photos: the UMV on roots, rocks, waves and drops in the forest, with its semantic map overlaid; below, a timelapse of indoor parkour.
Figure 2. Autonomous trail racing and dynamic parkour. (A) The UMV navigates a mountain-bike trail in Zurich at more than 5 m/s on onboard perception and computation, across roots, rocks, waves and tabletop drops; the traversable path is encoded in the two-layer grid map (third row). (B) With only the episode length and mesh as tuning degrees, the same learning pipeline produces agile parkour: a slalom, a 5 m/s ramp, a 1.2 m gap, a five-step staircase landing and a track-stand, all within 8 s.

Six runs. One kilometer of forest trail.

The Allmend trail in Zurich, raced in six segments by one generic policy. Scroll to follow the robot through its fourteen skill elements, or select a checkpoint on the map.

Trail length
969m
Elevation drop
59m
Raced autonomously
946m
Average speed
3.26m/s
Peak speed
5.2m/s
Versus teleoperation
2.3× faster

Start

Top of the Allmend trail

Run
-
Avg speed
-
Distance
-
Time
-

One generic racing policy, trained on 46 km of procedurally generated trails, raced the Allmend trail with no target path and no human operator. The whole trail was labeled traversable, so the racing line emerges from the policy itself.

The UMV approaching across a rock bed under beech trees
1

Rock bed

Upper section, run 1

The upper section opens with wide areas of built skill elements and natural obstacles.

The UMV cresting a pump-track wave
2

Seven pump-track waves

Upper section, run 2

Rebuilt from a slalom into waves between scanning the trail and deployment. The policy rode it as it found it.

The UMV riding alongside a wooden skinny
3

Two skinnies

Upper section, run 2

The robot tended to ride alongside skinnies rather than on top: narrow features are largely invisible to the sparse height scan until the front wheel touches them.

The UMV dropping off a rocky tabletop
4

Rocky tabletop drop

Upper section, run 3

No descent point is imposed. The robot commits to a descent line from its approach angle.

The UMV on a wooden tabletop
5

Wooden tabletop drop

Upper section, run 3

A second drop zone, built from timber, handled the same way.

The UMV riding the banked wall-ride
6

Wall-ride

Upper section, run 3

Never forced onto the wall, since the gravel beside it was also traversable. Trained to corner on flat and banked ground, the policy picks one by its entry speed.

The UMV leaning into a tight turn
7

Tight turn

Upper section, run 3

A hairpin straight after the wall-ride.

The UMV crossing a fallen log
8

Fallen log

Upper section, run 3

A natural log lying across the trail.

The UMV riding over a locked seesaw
9

Locked seesaw ramp

Upper section, run 3

The robot rode over the seesaw instead of the bypass, likely because simulated slopes span the full track width in training.

The UMV cresting a natural hill on the lower flow trail
10

Natural hill

Lower section, run 4

Past the pedestrian path the trail becomes a flow trail. The longest continuous run: 220 m at 3.8 m/s, peaking at 5.2 m/s.

The UMV in an overgrown curve
11

Long, overgrown curve

Lower section, run 5

The trail narrows between dense vegetation.

The UMV leaning through an S-shaped descending curve
12

Descending S-curve

Lower section, run 6

Back-to-back direction changes while losing height.

The UMV on a steep descent
13

Steep descent

Lower section, run 6

The steepest part of the lower trail.

The UMV on a narrow segment above a drop-off
14

Cliff-side segment

Lower section, run 6

A narrow segment with a sharp drop-off on one side, and the end of the trail.

Six runs, 946 m of trail, no operator in the loop.

PartCheckpointsSpeedDistanceTime
Upper13.52 m/s126 m35.8 s
2, 33.01 m/s138 m45.8 s
4 to 93.04 m/s189 m62.2 s
Lower103.80 m/s220 m57.9 s
113.09 m/s134 m43.4 s
12 to 143.10 m/s139 m44.8 s
TotalEntire trail3.26 m/s946 m

Replay a run from the robot's own logs.

The terrain SemMap built, the 16 × 16 scan the policy observed, the onboard camera and the measured speed, all recorded on the robot.

The 3D replay loads when you reach it.

0.0 s

Terrain: SemMap's egocentric elevation maps from the run, stitched at 0.2 m; violet cells are the trail class. Scan: the 16 × 16 points the policy sampled, at 10 Hz. Speed: state-estimator base velocity. Run 4 did not log the scan; its scan is rebuilt from the logged elevation map and pose (checked on run 3: heights within 6 mm, 96% same trail labels).

The trail is the interface.

No planner hands commands to a controller. The trail is embedded in the terrain during training and reconstructed by perception at deployment.

TENa

Terrain Embedded Navigation, the learning environment

The semantic path is encoded as a layer in the terrain mesh and treated as a soft boundary. Locomotion and local navigation collapse into a single optimization problem, with no twist or pose commands and no planning-and-tracking hierarchy.

Observes
Proprioception, a stand command, and a two-layer semantic height scan
Controls
Rear-wheel velocity, fork angle and two torso joints at 50 Hz
Trains on
The Trail Library of procedural trails, and high-fidelity digital twins
Tunes
Only the episode length and the mesh change between tasks

SemMap

Semantic Maps, the real-world perception

A frozen DINOv3 backbone and feature upsampler feed a lightweight dual-head decoder. One head predicts terrain classes; the other reconstructs the backbone features, and their cosine similarity becomes a per-pixel confidence. Traversability and confidence are fused with LiDAR into an egocentric 2.5D map.

Rates
Semantics up to 90 Hz in isolation; 30 Hz on the robot with map fusion, on an AGX Orin
Map
15 × 15 m, 0.1 m cells, confidence-weighted fusion
Adapts
Only the decoder is trained per environment, in minutes
Labels
A handful of cluster-selected images, labeled offline with SAM3

r = 1 rexplore + 0.2 rsurvive + 5 rstand

  • ExploreForward progress, saturating at a minimum speed
  • SurviveStay alive and inside the trail boundary
  • StandSettle into a stable track-stand in the final zone

There is no lap-time term. The exploration reward pays for forward speed only up to a minimum speed (2 m/s; 10 m/s for the policy specialized to the digital twin). Faster driving emerges as time-optimal behavior from the fixed episode length and the terminal standing reward, with identical weights for every task.

Diagram of the approach: the policy and its inputs, TENa training on the Trail Library and digital twins, and the SemMap pipeline from RGB image to semantic elevation map.
Figure 3. Approach overview. (A) Deployment: an MLP policy observes proprioception, an operator-triggered stand command and a semantic height scan, and outputs joint targets at 50 Hz. (B) Training on synthetic trails or high-fidelity digital twins, for trail racing and parkour alike. (C) SemMap: frozen DINOv3 and upsampler, a trainable dual-head decoder for segmentation and confidence, coefficient assignment to traversability, and elevation mapping fused with odometry and point clouds at 30 Hz.

From simulation to the forest, one gap at a time.

Each stage isolates one source of sim-to-real risk before the full stack meets the forest.

  1. 95-100%

    Simulation

    Success over 17 parkour tracks with one MDP; the same framework also trains ANYmal-D in simulation.

  2. 80%

    Motion-capture parkour

    Slalom, ramp jump over a 1.2 m gap, staircase landing.

  3. 6datasets

    Perception alone

    Robust to glare, shadow and blur; zero-shot on GrandTour.

  4. 130laps

    Indoor closed loop

    Continuous at 3.54 m/s; 6.85 s laps against 6.1 s in simulation.

  5. 946m

    The Allmend trail

    Full onboard autonomy in the forest, peaking above 5 m/s.

SimulationReal world, full onboard autonomy

Faster than teleoperation.

On the same upper section, the autonomous policy is 2.3× faster than the teleoperated UMV of prior work.

Dashed markers are simulation. The specialized policy is a theoretical result and is not expected to transfer to hardware. Rider speeds come from Strava and cover the whole trail, upper and lower sections combined, while the digital twin is the upper section only, so the two are not directly comparable.

Key figures from the paper.

Timelapses of simulated parkour tracks and a simulated digital-twin trail

Parkour and racing from one MDP

Every track shares one idea: a semantic trail joining a start and a final zone, embedded in the mesh. Wall-rides, gaps, drop-ins, hip-jumps and stair landings emerge from geometry and semantics alone.

Parkour tracks
17
Success rate, 1000 runs
95-100%
Active jump height
1.75 m
Allmend twin, average
9.81 m/s

Multimedia extensions.

E1Narrated overview of the method and resultsComing soon

Overview of the control and perception framework and its deployment on the UMV, from motion-capture-assisted indoor parkour to high-speed outdoor trail racing.

Full caption

Method. A comprehensive overview of the proposed control and perception framework, alongside its physical deployment on the UMV bicycle robot. The video highlights the system's real-world capabilities, featuring motion-capture-assisted indoor parkour and high-speed outdoor trail racing.

E2Autonomous racing on the Allmend trailComing soon

Six autonomous runs completing the kilometer-long Allmend trail, with base velocity and the segmented elevation map overlaid.

Full caption

Autonomous Trail Racing. Six autonomous runs of the UMV completing a kilometer-long mountain-bike trail in Zurich. Video overlays alternate between displaying the robot's base velocity (m/s) and the segmented elevation map (with the traversable trail highlighted in purple). Because the entire trail corridor was annotated as traversable, local path selection emerges naturally from the trained policy rather than following a strictly dictated trajectory. This emergent behavior is demonstrated through several distinct decisions: the robot spontaneously elects to navigate over a seesaw rather than taking an available bypass, and tends to drive alongside narrow technical features (“skinnies”) instead of balancing on top of them. Additionally, during tabletop drops, the system dynamically commits to a descent trajectory based on its approach angle without requiring predefined target points.

E6Perceptive indoor trail racingComing soon

130 continuous laps at 3.54 m/s with a generic racing policy; white fleece gives SemMap a visible trail indoors.

Full caption

Perceptive Indoor Trail Racing. The UMV is initialized within the track boundaries and engages the racing controller from a track-stand position. The robot successfully navigates the closed-loop track, ultimately completing 130 continuous laps at an average speed of 3.54 m/s. The deployed racing policy was not specialized for this specific layout, but rather generalized across a diverse set of randomized mountain-bike trails during training. To facilitate indoor testing, a white fleece is utilized to provide high visual contrast, enabling the SemMap pipeline to detect the trail boundaries just as it would in an outdoor environment.

E3Simulated parkourSoon

The UMV on 17 simulated parkour tracks, each with a specialized policy, ending every run in a stable track-stand.

Full caption

Simulated Parkour. A demonstration of the TENa framework generalizing across a diverse set of digital twins, highlighting distinct emergent behaviors during parkour tasks. The UMV successfully navigates 17 parkour environments, each traversed using a specialized policy. In every scenario, the robot is initialized in a designated starting zone, follows a virtual but observable track toward the target zone, and concludes the run by decelerating into a stable track-stand.

E4Simulated Allmend trailSoon

A policy specialized to a digital twin of the upper Allmend trail averages 9.8 m/s in simulation; a theoretical result, not expected to transfer to hardware.

Full caption

Simulated Allmend trail. The UMV is navigating a digital twin of the upper Allmend mountain-bike trail in Zurich. Telemetry overlays indicate a continuous base velocity, with the robot sustaining an average speed of 9.8 m/s. This is a theoretical result from a policy specialized to the digital twin and is not expected to transfer to hardware.

E5Motion-capture parkourSoon

Four consecutive motion-capture parkour runs: 5.0 m/s into the ramp, 0.4 s airborne, a track-stand within 0.5 s.

Full caption

MoCap-assisted Indoor Parkour. Four consecutive successful deployments of the UMV traversing the indoor parkour course. Entering the ramp at a peak base velocity of 5.0 m/s, the robot achieves liftoff at 3.3 m/s, remaining airborne for 0.4 s. It subsequently re-accelerates to 5.0 m/s over the stairs and decelerates to a stable track-stand within 0.5 s, completing the entire sequence in 8.0 s. Across 10 experimental trials, the system demonstrated an 80% overall success rate.

E7Simulated parkour with ANYmalSoon

ANYmal-D on 8 of the parkour tracks at maximum difficulty with the same MDP; not expected to transfer zero-shot.

Full caption

Simulated Parkour with ANYmal. The quadruped robot ANYmal successfully navigates 8 parkour environments at their maximum difficulty level. These environments represent a subset of the tracks previously traversed by the UMV. While the UMV serves as our primary evaluation platform, TENa is platform-agnostic. To demonstrate robust learning generalization across different kinematic morphologies, we applied our MDP formulation to an ANYmal-D quadruped robot. We note that we have not put any effort into style reward tuning and do not expect this policy to transfer zero-shot to the real hardware (e.g., the video reveals harsh knee joint collisions with the environment).

E8Allmend trail with ANYmalSoon

ANYmal-D on the Allmend digital twin with the same MDP; without style tuning its gait is asymmetric.

Full caption

Simulated Allmend Trail with ANYmal. The quadruped robot ANYmal successfully navigates the digital twin of the Allmend mountain-bike trail. While the UMV serves as our primary evaluation platform, TENa is platform-agnostic. To demonstrate robust learning generalization across different kinematic morphologies, we applied our MDP formulation to an ANYmal-D quadruped robot. We note that we have not put any effort into style reward tuning and do not expect this policy to transfer zero-shot to the real hardware (e.g., the video reveals an asymmetric running gait with the right-front leg being locked in).

E9SemMap perception overviewSoon

SemMap from onboard RGB to the semantic elevation map, across environments, with confidence-weighted fusion; up to 90 Hz in isolation, 30 Hz on the robot.

Full caption

SemMap perception system overview. Overview of the SemMap perception system: the semantic pipeline from onboard RGB, running at up to 90 Hz in isolation and at 30 Hz on the robot to match the camera, its fusion with LiDAR geometry into the semantic elevation map, transfer across diverse environments including the zero-shot Grand Tour TRIM-1 sequence, joint semantic and geometric inpainting, confidence-weighted fusion, and rapid adaptation to a new environment. Semantic elevation maps are shown in the rainbow and turbo colormaps, with the trail in pink and red, respectively.

Code, data and citation.

BibTeX

@misc{jenelten2026trailracing,
  title  = {Autonomous Trail Racing with a Bicycle Robot},
  author = {Jenelten, Fabian and Ishtaweera, Deepana and Garcia, Pablo and
            Margolese, Liana and Bogoslavskyi, Igor and Buonocore, Luca and
            Migliazza, Jan and Ecins, Aleksandrs and Wollschlaeger, Annika and
            Bellicoso, Dario and Nelson, Gabriel and Gawel, Abel and Hutter, Marco},
  note   = {Under review at The International Journal of Robotics Research},
  year   = {2026}
}

Click to zoom, pinch to zoom further, drag to pan, Esc to close