Mateo Haro, Julia Richter, Fan Yang, Cesar Cadena, Marco Hutter
📌 Meta-repository: This repository ties together the three components of the project as git submodules, each pinned to its
feature/path-aware-rlbranch. It contains no code of its own — see Repository Structure below for what lives where.
Long-range navigation is commonly addressed through hierarchical pipelines in which a global planner generates a path, decomposed into waypoints, that a local planner follows sequentially. These systems are sensitive to global path quality: inaccurate remote sensing data can produce locally infeasible waypoints that degrade local execution, while limited global context hinders long-range efficiency.
This project introduces a path-aware reinforcement learning policy that conditions local navigation on a full reference path, without ever explicitly rewarding path following. The policy learns to opportunistically exploit path information — cutting corners, ignoring detours, and biasing exploration along informative waypoints — while remaining robust to noisy, suboptimal, or entirely missing guidance. This implicit conditioning lets the agent improve efficiency when the global plan is useful and gracefully fall back to baseline-level, goal-driven exploration when it isn't.
The work extends SRU (Spatially-Enhanced Recurrent Memory), a state-of-the-art end-to-end RL navigation framework, with:
- Path-conditioned navigation architecture — a Path Encoding module (self-attention + cross-attention with a learned query) that builds a structured, relative representation of the reference path and fuses it with the SRU's recurrent state.
- Path-conditioned training strategy — training on a controlled distribution of optimal, suboptimal (biased-heuristic GBFS), and noise-perturbed paths, plus a shortcut reward that reinforces bypassing unnecessary detours, so path-following behavior emerges implicitly rather than being enforced.
- Real-world deployment — validation in simulation (Isaac Lab maze environments) and on a Unitree B2W quadruped performing long-range (>90 m) indoor navigation.
Compared to the SRU baseline, the path-aware model improves SPL by 7.02% when given an optimal reference path, while matching baseline performance when the path is degraded, noisy, or removed entirely. See the paper for full details, ablations, and real-world results.
This meta-repo bundles the project as three submodules, each a fork of the corresponding SRU repository with path-conditioning added on feature/path-aware-rl:
| Submodule | Branch | Description |
|---|---|---|
| sru-navigation-learning | feature/path-aware-rl |
RL training framework (rsl_rl fork): SRU actor-critic, PPO/MDPO algorithms, extended with the Path Encoding module and path-conditioned training strategy. |
| sru-navigation-sim | feature/path-aware-rl |
IsaacLab task extension: maze/terrain environments, reward and observation definitions, extended with reference-path generation (PRM + A*/GBFS), the shortcut reward, and the relative path observation. |
| sru-robot-deployment | feature/path-aware-rl |
Real-robot deployment stack for the Unitree B2W: locomotion controller, navigation controller, teleoperation, extended to consume and forward reference-path waypoints to the onboard policy. |
Each submodule remains independently installable and documents its own setup in detail — this README covers how the pieces fit together. Consult each submodule's own README for API-level and configuration details.
git clone --recurse-submodules git@github.com:leggedrobotics/sru-path-aware-rl.git
cd sru-path-aware-rlIf already cloned without --recurse-submodules:
git submodule update --init --recursiveThe learning framework (rsl_rl fork) needs to be installed in place of the stock rsl_rl shipped with Isaac Lab:
cd /path/to/IsaacLab
./isaaclab.sh -p -m pip uninstall rsl-rl-lib -y
rm -rf _isaac_sim/kit/python/lib/python3.10/site-packages/rsl_rl
# Symlink or copy the submodule in as rsl_rl
ln -s /path/to/sru-path-aware-rl/sru-navigation-learning rsl_rl
cd rsl_rl && ../isaaclab.sh -p -m pip install -e .cd /path/to/IsaacLab
ln -s /path/to/sru-path-aware-rl/sru-navigation-sim source/isaaclab_nav_task
./isaaclab.sh -p -m pip install -e source/isaaclab_nav_task./isaaclab.sh -p source/isaaclab_nav_task/scripts/train.py \
--task Isaac-Nav-MDPO-B2W-v0 --num_envs 1024 --headlessFollow the setup in sru-robot-deployment to bring up the Gazebo simulation or the Unitree B2W with the trained, path-conditioned policy.
| Model | SR | SPL |
|---|---|---|
| Baseline (SRU) | 0.83 | 0.75 |
| Ours (optimal path) | 0.87 | 0.82 |
| Ours (non-optimal & noisy path) | 0.83 | 0.74 |
The path-aware model consistently exploits high-quality reference paths to reduce dead ends and unnecessary detours, while degrading gracefully to baseline behavior under poor or missing path information — including reaching the goal through unguided exploration when the reference path observation is entirely zeroed out.
This project builds directly on the SRU navigation stack developed at the Robotic Systems Lab, ETH Zurich:
| Repository | Description |
|---|---|
| sru-navigation-learning | Original SRU RL training framework |
| sru-navigation-sim | Original SRU IsaacLab simulation environments |
| sru-robot-deployment | Original SRU real-robot deployment stack |
| sru-pytorch-spatial-learning | Core SRU PyTorch module (standalone) |
If you use this code in your research, please cite both the path-conditioning extension and the underlying SRU work:
@inproceedings{haro2026pathconditioned,
title = {Path-conditioned Reinforcement Learning-based Local Planning for Long-Range Navigation},
author = {Haro, Mateo and Richter, Julia and Yang, Fan and Cadena, Cesar and Hutter, Marco},
booktitle = {2026 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
year = {2026},
note = {https://arxiv.org/pdf/2603.13888}
}
@article{yang2025sru,
author = {Yang, Fan and Frivik, Per and Hoeller, David and Wang, Chen and Cadena, Cesar and Hutter, Marco},
title = {Spatially-enhanced recurrent memory for long-range mapless navigation via end-to-end reinforcement learning},
journal = {The International Journal of Robotics Research},
year = {2025},
doi = {10.1177/02783649251401926},
url = {https://doi.org/10.1177/02783649251401926}
}This research was supported by the Swiss National Science Foundation (SNSF) as part of project No. 227617.
Corresponding author: Mateo Haro (maharo@ethz.ch)
Affiliation: Robotic Systems Lab (RSL), ETH Zurich