Launch File Structure - ept221/multibot GitHub Wiki

Launch File Structure

The main launch file is start.launch. It is responsible for loading all other launch files, running the shared map server, and starting the rviz node. First, start.launch includes world.launch which creates the Gazebo world, and then starts the map server node. Then, it includes one or more single.launch files to spawn turtlebots into the world. Finally, start.launch runs an rviz node to visualize the system. Each single.launch file creates a turtlebot and pushes it down into its own uniquely identifying namespace. First, the single.launch file spawns a turtlebot into Gazebo by including the simBot.launch file and then starts the robot's navigation stack by including the amcl.launch and move_base.launch files. Finally, single.launch starts a node which corrects the pose estimate messages published by rviz so that they are properly formatted for the multi-robot system.

Structure Diagram:

Launch file structure for a system with two robots:
Files beginning with an * are from external packages
and their child launch files are not shown. All other
files are local to the multi package, and all share
a common directory path: multibot/launch. All extentions
to these local files are .launch.

start
|
- world
| |
| - *gazebo_ros/launch/empty_world.launch
|
|
|
- single
| |
| - simBot
| | |
| | - kobuki
| |   |
| |   - *turtlebot_bringup/launch/includes/kobuki/bumper2pc.launch.xml
| | 
| - amcl
| |
| - move_base
|   |
|   - *turtlebot_navigation/launch/includes/velocity_smoother.launch.xml
|   |
|   - *turtlebot_navigation/launch/includes/safety_controller.launch.xml
|
|
|
- single
  |
  - simBot
  | |
  | - kobuki
  |   |
  |   - *turtlebot_bringup/launch/includes/kobuki/bumper2pc.launch.xml
  | 
  - amcl
  |
  - move_base
    |
    - *turtlebot_navigation/launch/includes/velocity_smoother.launch.xml
    |
    - *turtlebot_navigation/launch/includes/safety_controller.launch.xml