Repository Summary
Description | Tutorials for using our mesh navigation software |
Checkout URI | https://github.com/naturerobots/mesh_navigation_tutorials.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-01-02 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
mesh_navigation_tutorials | 0.0.1 |
mesh_navigation_tutorials_sim | 0.0.1 |
README
Mesh Navigation Tutorials
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.
Requirements and Installation
- 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 git@github.com: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
.
Run the Examples
Launch
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:
Name | World | Default Map | Description |
---|---|---|---|
tray | ![]() |
![]() |
This world is a rectangular area with a wall around the perimeter. |
floor_is_lava | ![]() |
![]() |
This world contains a square area with with two pits and a connecting section at a slightly higher elevation. |
parking_garage | ![]() |
![]() |
This world represents a parking garage with multiple floors connected by ramps. |
When running a simulated world, you can save some resources by not running the gazebo GUI: Add the start_gazebo_gui:=False
launch argument.
Rviz GUI
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
Detailed Instructions
For more detailed instructions on how to parameterize things or what things can be changed see the wiki
Related Repositories
CONTRIBUTING
Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.