Description
This project implements a Robot Fleet Management system using ROS 2 Humble. It allows multiple robots to communicate,
share information, and work collaboratively to complete tasks within an environment. The system is designed for automation in warehouses,
factories, or any scenario requiring the coordination of multiple robots.
I would like to extend my gratitude to the following projects and repositories, which have been invaluable resources:
-
TurtleBot3 by ROBOTIS-GIT
A fantastic resource for ROS-based robot development. -
Open RMF by open_rmf
Providing crucial libraries for the development of multi-fleet robotic systems. -
RMF Demos by open_rmf
Offering insightful demonstrations and examples on the use of RMF (Robotics Middleware Framework). -
RMF Traffic Editor by open_rmf
A vital tool for editing and managing traffic schedules in robotic fleet management. -
ROSCON_Workshop Providing code for Open-RMF workshop at ROSCon 2022 Kyoto.
- Operating System: Ubuntu 22.04 (Jammy)
- ROS 2 Humble: Follow the installation steps here.
- Colcon build system: ROS 2 development tools like
colcon
are required.
Install ros package as below
sudo apt install ros-humble-cyclonedds
sudo apt install ros-humble-rmf-fleet-msgs
sudo apt install ros-humble-cyclonedds
sudo apt install ros-humble-rmf-fleet-msgs
sudo apt install ros-humble-rmf*
sudo apt install ros-humble-ament-python
sudo apt install ros-humble-ament-package
sudo apt install ros-humble-ament-pycodestyle
sudo apt install ros-humble-nav2-bringup
sudo apt install ros-humble-navigation2
sudo apt install ros-humble-gazebo-ros-pkgs
python3 -m pip uninstall shapely
sudo apt install python3-shapely
Install python package as below
pip3 install flask==2.0.1
pip3 install Flask-CORS
pip3 install Flask-SocketIO==4.3.2
pip3 install websockets==13.1
pip3 install werkzeug==2.0.2
pip install setuptools==58.2.0
pip3 install fastapi==0.79.0
pip3 install uvicorn==0.18.2
Clone this repository to your workspace
cd <your_ws>/src
git clone https://github.com/JirawatChayayan/robot_rmf_simmulation.git .
Build your workspace
cd <your_ws>
colcon build
Add the following environment variable to your terminal (you can also add this to your ~/.bashrc)*
export SPAWN_ROBOT=3
export TURTLEBOT3_MODEL=burger
Starting gazebo and navigation stack for simulate
ros2 launch turtlebot3_bringup simulator_launch.launch.py
result after run this launch file
Starting freefleet server and robot management fleet
ros2 launch turtlebot3_bringup freefleet_and_rmf_server.launch.xml
result after run this launch file
Starting control robot by RMF panel here
Please try to play with Loop mode for delivery tasks (delivery mode is not yet implemented). Follow the image below for testing:
Some robots will move to the goal like this:
The Robot Fleet Management System project serves as a foundational framework for multi-robot coordination using ROS 2 Humble. With this system, various environments like warehouses and factories can benefit from automated robotic fleets. It provides scalability, flexibility, and adaptability through the use of open-source tools, and offers room for further improvements, including dynamic task allocation and real-world deployment. By leveraging the contributions from TurtleBot3 and Open RMF, the system is designed for both research and practical application.