This repository contains a set of examples to quickly and easily start with mesh_navigation. We provide different scenarios where our approach excels over state-of-the art 2D or 2.5D approaches. We will explain different parameter sets in more detail and show how to fine-tune mesh_navigation in various scenarios. Our example worlds consists of both real-world and hand-modelled scenarios. With the hand-modelled examples we particularly aim to support low-end computers or laptops.
Note: Because of an great interest of people we talked to, we decided to release this repository in an unfinished state. It is still under construction and will be extended by more synthetic and real-world recorded worlds and detailed docs. It's open-source: Feel free to contribute.
- You need a working ROS 2 installation. We target
humble
at the moment. - Go into a ROS 2 workspace's source directory
cd $YOUR_ROS_WS/src
. - Clone the tutorial code
git clone [email protected]:naturerobots/mesh_navigation_tutorials.git
- Get the tutorial's ROS 2 dependencies
- Clone source dependencies: Run
vcs import --input mesh_navigation_tutorials/source_dependencies.yaml
in your ROS 2 workspace source directory. - Get packaged dependencies: Run
rosdep install --from-paths . --ignore-src -r -y
from within your ROS 2 workspace source directory.
- Clone source dependencies: Run
- Build: Go to workspace root
cd $YOUR_ROS_WS
and runcolcon build --packages-up-to mesh_navigation_tutorials
.
ros2 launch mesh_navigation_tutorials mesh_navigation_tutorial_launch.py world_name:=floor_is_lava
You change floor_is_lava
by any world name that is available with this repository (see all by calling launch file with --show-args
). Those are:
When running a simulated world, you can save some resources by not running the gazebo GUI: Add the start_gazebo_gui:=False
launch argument.
In rviz, you should be able to see the mesh map. This map is being used for navigation.
In order to make the robot move, find the "Mesh Goal" tool at the top. With it, you can click on any part of the mesh. Click and hold to set a goal pose. The MbfGoalActions rviz plugin contains a very tiny state machine that performs the following actions:
- subscribe to that goal pose
- get a path to that pose
- execute that path
For more detailed instructions on how to parameterize things or what things can be changed see the wiki