Skip to content

sair-lab/mat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learning When to Jump for Off-road Navigation

Zhipeng Zhao  |  Taimeng Fu  |  Shaoshu Su  |  Qiwei Du
Ehsan Tarkesh Esfahani  |  Karthik Dantu  |  Souma Chowdhury  |  Chen Wang

Robotics: Science and Systems (RSS) 2026

📄 PDF   •   🌐 Website   •   🎥 YouTube

ROS Noetic BeamNG.tech Control

🚀 Features

A Complete Off-Road Autonomous Navigation System

Off-Road Navigation: Complete ROS-based system for perception, planning, and control in off-road.
Motion-aware Traversability (MAT): The map proposed in this paper, where each location's traversability is modeled as a function of vehicle speed.
CUDA-based MPPI: Real-time trajectory optimization node built with MPPI-Generic.
BeamNG Integration: Realistic soft-body vehicle dynamics and off-road terrain interaction.


🏗 System Components

BeamNG Simulation

Component Description
Sensors Interface Scenario loading, sensor data streaming from BeamNG.
Agent Control Interface Controlling a specific vehicle in BeamNG via AI/commands.

Navigation Modules

Component                        Description
Terrain Mapping lidar scan → local point clouds.
Traversability Analysis local point clouds → traversability map.
Global Waypoints A mission-level publisher → goal points.
MPPI Planner goal point → local path (path optimization).
PID Controller local path → commands (throttle/brake, steering).

🛠 Quick Start

1. Prerequisites

Build & Source your ROS environment:

catkin_make
source ~/catkin_ws/devel/setup.bash

2. Configuration

Check the config files under example/config/:

  • simulation.config: Set your BeamNG Port & Host, Scenario
  • navigation_sim.config: Enable/disable Navigation Modules & set file paths.

3. Launching

Single-entry Execution: Launch all modules in one terminal & RViz for interactive navigation.

# Ensure the script is executable
chmod +x ./example/nav_start.sh

# Run the system
./example/nav_start.sh 
Start your off-road autonomous navigation in one of two Modes:
1. Click a goal in RViz (default).
2. Follow waypoints from `NAV_WAYPOINT_FILE` by setting `ENABLE_GLOBAL_WAYPOINTS=true` in `navigation_sim.config`.

Or, you can refer to example/launch_commands.md for direct roslaunch commands to start any individual module you want.

📚 Citation

@inproceedings{zhao2026learning,
  title = {Learning When to Jump for Off-road Navigation},
  author = {Zhao, Zhipeng and Fu, Taimeng and Su, Shaoshu and Du, Qiwei and Esfahani, Ehsan Tarkesh and Dantu, Karthik and Chowdhury, Souma and Wang, Chen},
  booktitle = {Robotics: Science and Systems (RSS)},
  year = {2026},
  url = {https://arxiv.org/abs/2602.00877}
}

Acknowledgments

We gratefully acknowledge the following repositories that parts of our codebase were adapted from or built upon:

About

[RSS 2026] Learning When to Jump for Off-road Navigation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors