/andino_rmf

OpenRMF integration of Andino simulation

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Andino Fleet with OpenRMF

This package intends to utilize OpenRMF to send a high-level task planning to Andino robot fleet. To achieve this goal, three main developments are included as the following.

Project dependencies

  • ROS 2: Humble Hawksbill
  • OS: Ubuntu 22.04 Jammy Jellyfish
  • Simulation:
  • Task Planning:
    • OpenRMF : The Open-RMF platform for multi-fleet robot management
  • Python module:
    • nudged : A Python lib to estimate scale, rotation, and translation between two sets of 2D points required by RMF system
    • transform3d : Code to convert between various geometric transformations

📥 Installation

  1. Clone this repository
git clone https://github.com/ekumenlabs/andino_rmf
  1. Set up docker environment: Refer to docker readme

Once the container is running and dependencies have been installed you can proceed to package building.

📦 Build

The package contains some dependencies that must be installed in order to build it:

rosdep install --from-paths src -i -y

Then build the package and source the install workspace. To do so run the following commands:

colcon build
source install/setup.bash

Usage

This launch file will start everything for the fleet management. Specifically, it will start simulation with robots, controllers for each robot, manager for the fleet, the adapter that connects to RMF and the core nodes from RMF.

ros2 launch andino_rmf_sim andino_office.launch.py

Demo

We need to install rmf_demos package as we are utilizing the task command from that package. At this point, we can send the configured command to the fleet and that we are using one of the default tasks for our example.

In a new terminal,

source install/setup.bash

For example, send a patrol task from point room2 to room6, only 1 (n=1) round.

ros2 run rmf_demos_tasks dispatch_patrol -p room2 room6 -n 1 --use_sim_time