← Back to Blog
navigationfleetamrros2

Open-RMF: Open-Source Robot Fleet Management System

Discover Open-RMF — multi-vendor open-source framework for managing robot fleets, integrating ROS 2 for smart factories.

Nguyen Anh Tuan30 tháng 1, 20266 min read
Open-RMF: Open-Source Robot Fleet Management System

What is Open-RMF?

Open-RMF (Open Robotics Middleware Framework) is open-source framework for managing multi-vendor robot fleets in single facility. Developed by Open Source Robotics Alliance (OSRA), Open-RMF solves hardest problem in robot fleet management: how can robots from different manufacturers -- each with proprietary protocol and navigation stack -- coordinate and operate together without collision or resource conflict?

In practice, typical electronics factory might use MiR AMR for part transport, Locus robot for warehouse picking, and custom AGV for assembly line. Without Open-RMF, each fleet runs separate management system -- leading to path conflicts, deadlock at elevators, and wasted resources.

Open-RMF creates abstraction layer above each fleet.

Robot AMR moving in modern warehouse

Open-RMF Architecture

Open-RMF uses modular design where each component handles specific function:

┌─────────────────────────────────────────────────┐
│              Open-RMF Core                       │
│  ┌─────────────┐  ┌──────────────┐              │
│  │ Task        │  │ Traffic      │              │
│  │ Dispatcher  │  │ Manager      │              │
│  └──────┬──────┘  └──────┬───────┘              │
│         │                │                       │
│  ┌──────┴────────────────┴───────┐              │
│  │        Schedule Database       │              │
│  └──────┬────────────────┬───────┘              │
│         │                │                       │
│  ┌──────┴──────┐  ┌─────┴───────┐              │
│  │Fleet Adapter│  │Fleet Adapter│  ...          │
│  │  (MiR)      │  │  (Custom)   │              │
│  └──────┬──────┘  └──────┬──────┘              │
└─────────┼────────────────┼──────────────────────┘
          │                │
     ┌────┴────┐     ┌────┴────┐
     │ MiR AMR │     │ Custom  │
     │ Fleet   │     │ AGV     │
     └─────────┘     └─────────┘

Fleet Adapter — Bridge Between Robot and System

Fleet Adapter is most critical component, acting as "translator" between each manufacturer's proprietary protocol and Open-RMF standard API. Each robot type needs dedicated adapter. Open-RMF provides fleet_adapter_template in Python for quick adapter development.

Adapter responsibilities:

Traffic Manager — Resolve Path Conflicts

Traffic Manager handles path conflicts between robots (even different manufacturers). Uses schedule-based conflict resolution: each robot "books" road segments, and Traffic Manager ensures no 2 robots occupy same lane simultaneously.

Task Dispatcher — Assign Tasks to Robots

Task Dispatcher receives task requests from operator (dashboard or API) and assigns to best robot based on:

Why Multi-Vendor Fleet is Difficult

Each manufacturer uses different protocol. MiR uses REST API, Fetch uses MQTT, many Chinese AGVs use custom Modbus TCP. Even ROS 2-based robots often use different topic/action names per manufacturer.

Core problems:

Open-RMF solves by creating abstraction layer above each fleet.

Dashboard monitoring robot fleet with real-time map

Installing Open-RMF with ROS 2

System Requirements

Install from Binary Packages

# Install ROS 2 Humble (if not present)
sudo apt update && sudo apt install -y ros-humble-desktop

# Install Open-RMF packages
sudo apt install -y \
  ros-humble-rmf-fleet-adapter \
  ros-humble-rmf-task-ros2 \
  ros-humble-rmf-traffic-ros2 \
  ros-humble-rmf-visualization

# Source environment
source /opt/ros/humble/setup.bash

Build from Source (for Development)

mkdir -p ~/rmf_ws/src
cd ~/rmf_ws/src

# Clone core repos
git clone https://github.com/open-rmf/rmf.git
git clone https://github.com/open-rmf/rmf_demos.git
git clone https://github.com/open-rmf/free_fleet.git

# Install dependencies
cd ~/rmf_ws
rosdep install --from-paths src --ignore-src -r -y

# Build
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.bash

Run Demo Simulation

Open-RMF includes Gazebo simulation scenarios:

# Demo factory with 2 different robot fleets
ros2 launch rmf_demos_gz office.launch.xml

# Open web dashboard (default port 3000)
# Visit http://localhost:3000 for real-time map

Demo office includes:

Write Fleet Adapter for Custom Robot

import rclpy
from rclpy.node import Node
from rmf_fleet_adapter import adpt
import rmf_adapter.vehicletraits as traits
import rmf_adapter.geometry as geometry

class MyFleetAdapter(Node):
    def __init__(self):
        super().__init__('my_fleet_adapter')

        # Define robot characteristics
        profile = traits.Profile(
            footprint=geometry.make_final_convex_circle(0.3),
            vicinity=geometry.make_final_convex_circle(0.5)
        )
        vehicle_traits = traits.VehicleTraits(
            linear=traits.Limits(0.7, 0.5),   # max vel, max accel
            angular=traits.Limits(0.6, 0.8),
            profile=profile
        )

        # Register fleet with Open-RMF
        self.adapter = adpt.Adapter.make('my_fleet_adapter')
        self.fleet_handle = self.adapter.add_fleet(
            'my_custom_fleet',
            vehicle_traits,
            self.navigation_graph
        )

        self.get_logger().info('Fleet adapter initialized!')

    def navigate(self, robot_name, destination):
        """Send movement command to actual robot"""
        # Replace with API call to robot controller
        self.get_logger().info(
            f'Navigating {robot_name} to {destination}'
        )

def main():
    rclpy.init()
    adapter = MyFleetAdapter()
    rclpy.spin(adapter)

if __name__ == '__main__':
    main()

Comparison with Proprietary Solutions

Criterion Open-RMF VDA5050 MiR Fleet
License Apache 2.0 (free) Open standard (free spec) Proprietary (paid)
Multi-vendor Native support Communication standard, needs orchestrator MiR robots only
ROS 2 integration Native Requires bridge No support
Traffic management Schedule-based, built-in Not included (protocol only) Zone-based, basic
Task dispatch Built-in, configurable Not included Built-in for MiR
Community GitHub active, OSRA backing VDA consortium MiR support team
Customization Fully customizable Per spec Limited

VDA5050 -- European Communication Standard

VDA5050 is communication standard between AGV/AMR and master controller, developed by German Auto Association (VDA) and German Machine Builders (VDMA). Defines MQTT protocol standard for robots from different manufacturers to communicate with single master controller. However, VDA5050 is just protocol -- you still build traffic manager and task dispatcher yourself, while Open-RMF provides complete system.

MiR Fleet -- Only for MiR Ecosystem

MiR Fleet Manager is commercial solution from Mobile Industrial Robots (owned by Teradyne). Powerful and easy to install, but manages only MiR robots. If warehouse adds AGV from another manufacturer, MiR Fleet cannot help.

Modern manufacturing facility with robots and automation

Learning Resources

Open-RMF has extensive documentation and active community:

When to Use Open-RMF?

Should use when:

Consider alternatives when:

VnRobo is integrating Open-RMF into fleet management solution, combined with real-time monitoring dashboard, creating product suitable for Vietnamese factories -- where multi-vendor fleet is becoming standard.


Related Posts

Related Posts

Deep DiveDigital Twins và ROS 2: Simulation trong sản xuất
simulationros2digital-twinPart 6

Digital Twins và ROS 2: Simulation trong sản xuất

Ứng dụng simulation trong công nghiệp — digital twins, ROS 2 + Gazebo/Isaac integration cho nhà máy thông minh.

3/4/202611 min read
ROS 2 từ A đến Z (Phần 4): ros2_control và Hardware
ros2tutorialrobot-armPart 4

ROS 2 từ A đến Z (Phần 4): ros2_control và Hardware

Kết nối ROS 2 với phần cứng thực — viết hardware interface cho motor driver và đọc encoder với ros2_control framework.

26/3/202611 min read
Multi-robot Coordination: Thuật toán phân công task
fleetamrprogramming

Multi-robot Coordination: Thuật toán phân công task

Các thuật toán phân công nhiệm vụ cho đội robot — từ Hungarian algorithm, auction-based đến RL-based task allocation.

20/3/202612 min read