/rmf_traffic_editor

GUI, CLI, and ROS 2 messages for robot traffic flows in buildings

Primary LanguageC++Apache License 2.0Apache-2.0

rmf_traffic_editor

Welcome!

This repository has the following directories:

  • rmf_traffic_editor: GUI for annotating floorplans to create traffic patterns
  • rmf_building_map_tools: Python-based tools to use and manipulate the map files created by rmf_traffic_editor, such as:
    • building_map_server: a ROS 2 node to serve maps using rmf_building_map_msgs
    • translators to simulators such as Gazebo
    • translators to navigation packages such as rmf_core (e.g. rmf_ros2)
    • scripts that handle downloading of gazebo models. pit_crew, building_map_model_downloader...
  • rmf_traffic_editor_assets: Gazebo model thumbnails, in used by traffic_editor GUI

Installation

This repository is structured as a collection of ROS 2 packages and can be built using colcon. For full installation of RMF, please refer to here.

The rmf_building_map_tools package requires the following Python 3 dependencies to generate worlds:

sudo apt install python3-shapely python3-yaml python3-requests

Usage

rmf_traffic_editor consists of a interface and tools to create a simulation .world file from a sketched building floor plan. These simulation .world file can be used by other applications, not just limited to RMF.

Traffic Editor GUI

Instructions of traffic_editor is located here

To run traffic_editor GUI, run:

source install/setup.bash
traffic-editor

Building Map Tools

Once done with the editing of the building map with traffic_editor, user can now generate the simulated world file from the saved .building.yaml file (${building_map_path}).

Generate a world file from building map

ros2 run rmf_building_map_tools building_map_generator gazebo \
  ${building_map_path} ${output_world_path} ${output_model_dir}

switch arg gazebo to ignition for generating a world file for ignition

Download models used in newly created traffic editor building map.

ros2 run rmf_building_map_tools building_map_model_downloader \
  ${building_map_path} -f -e ~/.gazebo/models

Generate Traffic Navigation Path File

ros2 run rmf_building_map_tools building_map_generator nav \
  ${building_map_path} ${output_nav_graphs_dir}