This repository introduces an innovative approach for outdoor navigation using ROS2.
This repository comprises two packages:
- local_navigation: Reconstructs the navigated area into a grid map incorporating elevation and RGB data.
- traversability_updater: Computes a navigability score based on previously traversed areas.
The animation below highlights highly navigable areas in yellow and green. As the robot traverses the grass, all mapped zones with similar characteristics are marked as highly navigable.
To reproduce our results, follow these instructions:
-
Requirements
- Ubuntu 24.04
- Ros2 Rolling
- Python 3.12.3
-
Create a workspace and clone the repository
mkdir -p global_navigation_ws/src cd global_navigation_ws/src git clone https://github.com/midemig/global_navigation -b rolling
-
Install dependences and build workspace
sudo apt install libg2o-dev rosdep update vcs import --recursive . < global_navigation/dependencies.repos cd .. rosdep install --from-paths src --ignore-src -r -y colcon build --symlink-install
-
Install python dependences
sudo apt install python3.12-venv python3 -m venv global_nav_env source global_nav_env/bin/activate pip3 install -r src/global_navigation/requirements.txt
-
Download and unzip the demo bagfile.
-
In a terminal, play the downloaded bag:
ros2 bag play cesped_00/ --clock -p
-
In another terminal, execute:
source global_nav_env/bin/activate export PYTHONPATH=$VIRTUAL_ENV/lib/python3.12/site-packages:$PYTHONPATH ros2 launch local_navigation demo.launch.py