This package is a working simulation of mesh navigation which uses move_base_flex for turtlebot3.
The map is from the repo of the pluto robot and most of the files in this repo are from one of those four repos :
- pluto robot : the maps and the mesh_navigation yaml config
- mesh navigation
- move_base_flex
- turtlebot3_mbf : the idea and the launch file for the simulation
git-lfs: sudo apt install git-lfs
Turtlebot simulation: sudo apt install ros-noetic-turtlebot3-gazebo ros-noetic-turtlebot3-navigation
move_base_flex: sudo apt install ros-noetic-move-base-flex
mesh_navigation: sudo apt install ros-noetic-mesh-navigation ros-noetic-rviz-map-plugin
It uses git lfs to store binary files.
Start simulation: TURTLEBOT3_MODEL=burger roslaunch turtlebot3_mesh_nav sim.launch
Start mesh nav server: roslaunch turtlebot3_mesh_nav move_base_flex.launch
To start the navigation you should publish on topic /move_base_flex/move_base/goal
(for some reason the topic used on the pluto robot repo is /move_base_flex/get_path/goal
which only generates the global path but doesn't actually transfer the result to the local planner. Please read the move_base_action.cpp of move_base_flex to understand how the informations are transfered in the navigation stack)
Also, you can simply do: roslaunch turtlebot3_mesh_nav start_experiment.launch
. Be aware that the turtlebot will slip on the terrain for this path.
graph TD
A[move_base_simple/goal] --> B(move_base_flex/move_base)
C(move_base) <--> B
style A fill:#f9f
style B fill:#f9f
style C fill:#f9f
F([make_plan])<-->D
B --> D(move_base_flex/get_path)
D --> E(move_base_flex/exe_path)
Square : topic, rounded corner square : action server, rounded side square : service server
In purple the action/service/topic created by move_base_legacy_relay (pkg mbf_costmap_nav: script/move_base_legacy_relay.py). Others created by mbf_abstract_nav.
Assembled by Sébastien K. for CoHoMa 2023 - U2IS Team.