![]() |
rmf_demos repositoryrmf_demos rmf_demos_assets rmf_demos_bridges rmf_demos_fleet_adapter rmf_demos_gz rmf_demos_maps rmf_demos_tasks |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rmf_demos | 2.7.0 |
rmf_demos_assets | 2.7.0 |
rmf_demos_bridges | 2.7.0 |
rmf_demos_fleet_adapter | 2.7.0 |
rmf_demos_gz | 2.7.0 |
rmf_demos_maps | 2.7.0 |
rmf_demos_tasks | 2.7.0 |
README
RMF Demos
The Open Robotics Middleware Framework (Open-RMF) enables interoperability among heterogeneous robot fleets while managing robot traffic that share resources such as space, building infrastructure systems (lifts, doors, etc) and other automation systems within the same facility. Open-RMF also handles task allocation and conflict resolution among its participants (de-conflicting traffic lanes and other resources). These capabilities are provided by various libraries in Open-RMF. For more details about Open RMF, refer to the comprehensive documentation provided here.
This repository contains demonstrations of the above mentioned capabilities of RMF. It serves as a starting point for working and integrating with Open-RMF.
You can also find a nice demonstration of Open-RMF using Nav2
and MoveIt!
built into the Ionic Release Demo.
(Click to watch video)
System Requirements
These demos were built and tested on
-
Note: The
main
branches of the core RMF libraries are fully supported on ROS 2 Humble, Iron, and Jazzy as well, but you will need to use the distro-specific branches forrmf_traffic_editor
andrmf_simulation
.
Installation
Instructions can be found here.
FAQ
Answers to frequently asked questions can be found here.
Roadmap
A near-term roadmap of the Open-RMF project can be found in the user manual here.
RMF-Web quick start
Full web application of Open-RMF: rmf-web.
Start the backend API server via docker
with host network access, using the default configuration. The API server will be accessible at localhost:8000
by default.
docker run \
--network host \
-it \
-e ROS_DOMAIN_ID=<ROS_DOMAIN_ID> \
-e RMW_IMPLEMENTATION=<RMW_IMPLEMENTATION> \
ghcr.io/open-rmf/rmf-web/api-server:latest
Note: The API server is also configurable by mounting the configuration file and setting the environment variable
RMF_API_SERVER_CONFIG
. In the default configuration, the API serer will use an internal non-persistent database.
Start the frontend dashboard via docker
with host network access, using the default configuration. The dashboard will be accessible at localhost:3000
by default.
docker run \
--network host \
-it \
ghcr.io/open-rmf/rmf-web/dashboard:latest
Note: The dashboard via
docker
is not runtime-configurable and is best used for quick integrations and testing. To configure the dashboard, check out rmf-web-dashboard-resources and the dashboard configuration section.
In order to interact with the default configuration of the web application, the server_uri
launch parameter will need to be changed to ws://localhost:8000/_internal
, for example,
ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:8000/_internal"
By specifying server_uri
, the fleetadapter will update rmf-web
api-server
with the latest task and robot states. User can then monitor on-going states and initiate rmf task with an interactive web dashboard.
Demo Worlds
- Hotel World
- Office World
- Airport Terminal World
- Clinic World
- Campus World
- Manufacturing & Logistics World
Hotel World
This hotel world consists of a lobby and 2 guest levels. The hotel has two lifts, multiple doors and 3 robot fleets (4 robots). This demonstrates an integration of multiple fleets of robots with varying capabilities working together in a multi-level building.
Demo Scenario
To launch the world and the schedule visualizer,
```bash source ~/rmf_ws/install/setup.bash ros2 launch rmf_demos_gz hotel.launch.xml
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
![]() |
rmf_demos repositoryrmf_demos rmf_demos_assets rmf_demos_bridges rmf_demos_fleet_adapter rmf_demos_gz rmf_demos_maps rmf_demos_tasks |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-05-26 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rmf_demos | 2.4.0 |
rmf_demos_assets | 2.4.0 |
rmf_demos_bridges | 2.4.0 |
rmf_demos_fleet_adapter | 2.4.0 |
rmf_demos_gz | 2.4.0 |
rmf_demos_maps | 2.4.0 |
rmf_demos_tasks | 2.4.0 |
README
RMF Demos
The Open Robotics Middleware Framework (Open-RMF) enables interoperability among heterogeneous robot fleets while managing robot traffic that share resources such as space, building infrastructure systems (lifts, doors, etc) and other automation systems within the same facility. Open-RMF also handles task allocation and conflict resolution among its participants (de-conflicting traffic lanes and other resources). These capabilities are provided by various libraries in Open-RMF. For more details about Open RMF, refer to the comprehensive documentation provided here.
This repository contains demonstrations of the above mentioned capabilities of RMF. It serves as a starting point for working and integrating with Open-RMF.
You can also find a nice demonstration of Open-RMF using Nav2
and MoveIt!
built into the Ionic Release Demo.
(Click to watch video)
System Requirements
These demos were built and tested on
-
Note: RMF is fully supported on ROS 2 Humble and Iron as well, but those will require ros_gz to be built from source.
Installation
Instructions can be found here.
FAQ
Answers to frequently asked questions can be found here.
Roadmap
A near-term roadmap of the Open-RMF project can be found in the user manual here.
RMF-Web quick start
Full web application of Open-RMF: rmf-web.
Start the backend API server via docker
with host network access, using the default configuration. The API server will be accessible at localhost:8000
by default.
docker run \
--network host \
-it \
-e ROS_DOMAIN_ID=<ROS_DOMAIN_ID> \
-e RMW_IMPLEMENTATION=<RMW_IMPLEMENTATION> \
ghcr.io/open-rmf/rmf-web/api-server:latest
Note: The API server is also configurable by mounting the configuration file and setting the environment variable
RMF_API_SERVER_CONFIG
. In the default configuration, the API serer will use an internal non-persistent database.
Start the frontend dashboard via docker
with host network access, using the default configuration. The dashboard will be accessible at localhost:3000
by default.
docker run \
--network host \
-it \
ghcr.io/open-rmf/rmf-web/dashboard:latest
Note: The dashboard via
docker
is not runtime-configurable and is best used for quick integrations and testing. To configure the dashboard, check out rmf-web-dashboard-resources and the dashboard configuration section.
In order to interact with the default configuration of the web application, the server_uri
launch parameter will need to be changed to ws://localhost:8000/_internal
, for example,
ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:8000/_internal"
By specifying server_uri
, the fleetadapter will update rmf-web
api-server
with the latest task and robot states. User can then monitor on-going states and initiate rmf task with an interactive web dashboard.
Demo Worlds
- Hotel World
- Office World
- Airport Terminal World
- Clinic World
- Campus World
- Manufacturing & Logistics World
Hotel World
This hotel world consists of a lobby and 2 guest levels. The hotel has two lifts, multiple doors and 3 robot fleets (4 robots). This demonstrates an integration of multiple fleets of robots with varying capabilities working together in a multi-level building.
Demo Scenario
To launch the world and the schedule visualizer,
```bash source ~/rmf_ws/install/setup.bash ros2 launch rmf_demos_gz hotel.launch.xml
Or, run with ignition simulator
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
![]() |
rmf_demos repositoryrmf_demos rmf_demos_assets rmf_demos_bridges rmf_demos_fleet_adapter rmf_demos_gz rmf_demos_maps rmf_demos_tasks |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | kilted |
Last Updated | 2025-05-10 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rmf_demos | 2.6.0 |
rmf_demos_assets | 2.6.0 |
rmf_demos_bridges | 2.6.0 |
rmf_demos_fleet_adapter | 2.6.0 |
rmf_demos_gz | 2.6.0 |
rmf_demos_maps | 2.6.0 |
rmf_demos_tasks | 2.6.0 |
README
RMF Demos
The Open Robotics Middleware Framework (Open-RMF) enables interoperability among heterogeneous robot fleets while managing robot traffic that share resources such as space, building infrastructure systems (lifts, doors, etc) and other automation systems within the same facility. Open-RMF also handles task allocation and conflict resolution among its participants (de-conflicting traffic lanes and other resources). These capabilities are provided by various libraries in Open-RMF. For more details about Open RMF, refer to the comprehensive documentation provided here.
This repository contains demonstrations of the above mentioned capabilities of RMF. It serves as a starting point for working and integrating with Open-RMF.
You can also find a nice demonstration of Open-RMF using Nav2
and MoveIt!
built into the Ionic Release Demo.
(Click to watch video)
System Requirements
These demos were built and tested on
-
Note: The
main
branches of the core RMF libraries are fully supported on ROS 2 Humble, Iron, and Jazzy as well, but you will need to use the distro-specific branches forrmf_traffic_editor
andrmf_simulation
.You can use
rmf_demos
with any ROS distro by explicitly setting thegazebo_version:=#
launch parameter, replacing#
with the appropriate version of Gazebo for that ROS distro, e.g.8
forJazzy
.
Installation
Instructions can be found here.
FAQ
Answers to frequently asked questions can be found here.
Roadmap
A near-term roadmap of the Open-RMF project can be found in the user manual here.
RMF-Web quick start
Full web application of Open-RMF: rmf-web.
Start the backend API server via docker
with host network access, using the default configuration. The API server will be accessible at localhost:8000
by default.
docker run \
--network host \
-it \
-e ROS_DOMAIN_ID=<ROS_DOMAIN_ID> \
-e RMW_IMPLEMENTATION=<RMW_IMPLEMENTATION> \
ghcr.io/open-rmf/rmf-web/api-server:latest
Note: The API server is also configurable by mounting the configuration file and setting the environment variable
RMF_API_SERVER_CONFIG
. In the default configuration, the API serer will use an internal non-persistent database.
Start the frontend dashboard via docker
with host network access, using the default configuration. The dashboard will be accessible at localhost:3000
by default.
docker run \
--network host \
-it \
ghcr.io/open-rmf/rmf-web/dashboard:latest
Note: The dashboard via
docker
is not runtime-configurable and is best used for quick integrations and testing. To configure the dashboard, check out rmf-web-dashboard-resources and the dashboard configuration section.
In order to interact with the default configuration of the web application, the server_uri
launch parameter will need to be changed to ws://localhost:8000/_internal
, for example,
ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:8000/_internal"
By specifying server_uri
, the fleetadapter will update rmf-web
api-server
with the latest task and robot states. User can then monitor on-going states and initiate rmf task with an interactive web dashboard.
Demo Worlds
- Hotel World
- Office World
- Airport Terminal World
- Clinic World
- Campus World
- Manufacturing & Logistics World
Hotel World
This hotel world consists of a lobby and 2 guest levels. The hotel has two lifts, multiple doors and 3 robot fleets (4 robots). This demonstrates an integration of multiple fleets of robots with varying capabilities working together in a multi-level building.
Demo Scenario
To launch the world and the schedule visualizer,
```bash source ~/rmf_ws/install/setup.bash ros2 launch rmf_demos_gz hotel.launch.xml
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
![]() |
rmf_demos repositoryrmf_demos rmf_demos_assets rmf_demos_bridges rmf_demos_fleet_adapter rmf_demos_gz rmf_demos_maps rmf_demos_tasks |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rmf_demos | 2.7.0 |
rmf_demos_assets | 2.7.0 |
rmf_demos_bridges | 2.7.0 |
rmf_demos_fleet_adapter | 2.7.0 |
rmf_demos_gz | 2.7.0 |
rmf_demos_maps | 2.7.0 |
rmf_demos_tasks | 2.7.0 |
README
RMF Demos
The Open Robotics Middleware Framework (Open-RMF) enables interoperability among heterogeneous robot fleets while managing robot traffic that share resources such as space, building infrastructure systems (lifts, doors, etc) and other automation systems within the same facility. Open-RMF also handles task allocation and conflict resolution among its participants (de-conflicting traffic lanes and other resources). These capabilities are provided by various libraries in Open-RMF. For more details about Open RMF, refer to the comprehensive documentation provided here.
This repository contains demonstrations of the above mentioned capabilities of RMF. It serves as a starting point for working and integrating with Open-RMF.
You can also find a nice demonstration of Open-RMF using Nav2
and MoveIt!
built into the Ionic Release Demo.
(Click to watch video)
System Requirements
These demos were built and tested on
-
Note: The
main
branches of the core RMF libraries are fully supported on ROS 2 Humble, Iron, and Jazzy as well, but you will need to use the distro-specific branches forrmf_traffic_editor
andrmf_simulation
.
Installation
Instructions can be found here.
FAQ
Answers to frequently asked questions can be found here.
Roadmap
A near-term roadmap of the Open-RMF project can be found in the user manual here.
RMF-Web quick start
Full web application of Open-RMF: rmf-web.
Start the backend API server via docker
with host network access, using the default configuration. The API server will be accessible at localhost:8000
by default.
docker run \
--network host \
-it \
-e ROS_DOMAIN_ID=<ROS_DOMAIN_ID> \
-e RMW_IMPLEMENTATION=<RMW_IMPLEMENTATION> \
ghcr.io/open-rmf/rmf-web/api-server:latest
Note: The API server is also configurable by mounting the configuration file and setting the environment variable
RMF_API_SERVER_CONFIG
. In the default configuration, the API serer will use an internal non-persistent database.
Start the frontend dashboard via docker
with host network access, using the default configuration. The dashboard will be accessible at localhost:3000
by default.
docker run \
--network host \
-it \
ghcr.io/open-rmf/rmf-web/dashboard:latest
Note: The dashboard via
docker
is not runtime-configurable and is best used for quick integrations and testing. To configure the dashboard, check out rmf-web-dashboard-resources and the dashboard configuration section.
In order to interact with the default configuration of the web application, the server_uri
launch parameter will need to be changed to ws://localhost:8000/_internal
, for example,
ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:8000/_internal"
By specifying server_uri
, the fleetadapter will update rmf-web
api-server
with the latest task and robot states. User can then monitor on-going states and initiate rmf task with an interactive web dashboard.
Demo Worlds
- Hotel World
- Office World
- Airport Terminal World
- Clinic World
- Campus World
- Manufacturing & Logistics World
Hotel World
This hotel world consists of a lobby and 2 guest levels. The hotel has two lifts, multiple doors and 3 robot fleets (4 robots). This demonstrates an integration of multiple fleets of robots with varying capabilities working together in a multi-level building.
Demo Scenario
To launch the world and the schedule visualizer,
```bash source ~/rmf_ws/install/setup.bash ros2 launch rmf_demos_gz hotel.launch.xml
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
![]() |
rmf_demos repositoryrmf_demos rmf_demos_assets rmf_demos_dashboard_resources rmf_demos_gz rmf_demos_ign rmf_demos_maps rmf_demos_panel rmf_demos_tasks |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | galactic |
Last Updated | 2021-12-01 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rmf_demos | 1.3.2 |
rmf_demos_assets | 1.3.2 |
rmf_demos_dashboard_resources | 1.3.2 |
rmf_demos_gz | 1.3.2 |
rmf_demos_ign | 1.3.2 |
rmf_demos_maps | 1.3.2 |
rmf_demos_panel | 1.3.2 |
rmf_demos_tasks | 1.3.2 |
README
RMF Demos
The Robotics Middleware Framework (RMF) enables interoperability among heterogeneous robot fleets while managing robot traffic that share resources such as space, building infrastructure systems (lifts, doors, etc) and other automation systems within the same facility. RMF also handles task allocation and conflict resolution among its participants (de-conflicting traffic lanes and other resources). These capabilities are provided by various libraries in RMF. More details about RMF, refer to the comprehensive documentation provided here.
This repository contains demonstrations of the above mentioned capabilities of RMF. It serves as a starting point for working and integrating with RMF.
(Click to watch video)
System Requirements
These demos were developed and tested on
Installation
Instructions can be found here.
FAQ
Answers to frequently asked questions can be found here.
Roadmap
A near-term roadmap of the RMF project can be found in the user manual here.
RMF-Web
Full web application of RMF: rmf-web.
Demo Worlds
Note: When running the demos on Ubuntu 18.04 (not officially supported), you are required to explicitly supply gazebo_version launch argument. Eg: ros2 launch rmf_demos_gz office.launch.xml gazebo_version:=9
To run the demos using Ignition instead of Gazebo, change the commands from
ros2 launch rmf_demos_gz [...]
toros2 launch rmf_demos_ign [...]
RMF Panel
Click this link: https://open-rmf.github.io/rmf-panel-js/
For a full-proof web application of RMF, please refer to rmf-web.
The RMF panel is a web based dashboard for interacting with rmf_demos. It allows users to send task requests to RMF and monitor the status of robots and submitted tasks. For more details.
There are two main modes of submitting tasks to RMF via the Panel:
- Submit a Task: Used to submit a single task.
- Submit a List of Tasks: Used to submit a batch of tasks. A
.json
file containing a list of tasks may be loaded via theChoose file
button. Some example files are found inrmf_demos_panel/task_lists
.
Office World
An indoor office environment for robots to navigate around. It includes a beverage dispensing station, controllable doors and laneways which are integrated into RMF.
source ~/rmf_demos_ws/install/setup.bash
ros2 launch rmf_demos_gz office.launch.xml
# Or, run with ignition simulator
ros2 launch rmf_demos_ign office.launch.xml
Now we will showcase 2 types of Tasks: Delivery and Loop
To send task requests, open rmf_demos web panel: https://open-rmf.github.io/rmf-panel-js/
To submit a delivery task, select Delivery
from the Select a request type
dropdown list. Next, select coke
from the Select delivery task
list. Choose an desired start time for task and click submit.
Or, submit a task via CLI:
ros2 run rmf_demos_tasks dispatch_loop -s coe -f lounge -n 3 --use_sim_time
ros2 run rmf_demos_tasks dispatch_delivery -p pantry -pd coke_dispenser -d hardware_2 -di coke_ingestor --use_sim_time
To submit a loop task, select Loop
from the Select a request type
dropdown list. Choose desired start and end locations and click submit.
To run a scenario with multiple task requests, load office_tasks.json
from rmf_demos_panel/task_lists
in the Submit a list of tasks
section. This should populate the preview window with a list of tasks. Click submit and watch the demonstration unfold.
The office demo can be run in secure mode using ROS 2 DDS-Security integration. Click here to learn more.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
![]() |
rmf_demos repositoryrmf_demos rmf_demos_assets rmf_demos_dashboard_resources rmf_demos_gz rmf_demos_ign rmf_demos_maps rmf_demos_panel rmf_demos_tasks |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | foxy |
Last Updated | 2021-12-01 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rmf_demos | 1.3.2 |
rmf_demos_assets | 1.3.2 |
rmf_demos_dashboard_resources | 1.3.2 |
rmf_demos_gz | 1.3.2 |
rmf_demos_ign | 1.3.2 |
rmf_demos_maps | 1.3.2 |
rmf_demos_panel | 1.3.2 |
rmf_demos_tasks | 1.3.2 |
README
RMF Demos
The Robotics Middleware Framework (RMF) enables interoperability among heterogeneous robot fleets while managing robot traffic that share resources such as space, building infrastructure systems (lifts, doors, etc) and other automation systems within the same facility. RMF also handles task allocation and conflict resolution among its participants (de-conflicting traffic lanes and other resources). These capabilities are provided by various libraries in RMF. More details about RMF, refer to the comprehensive documentation provided here.
This repository contains demonstrations of the above mentioned capabilities of RMF. It serves as a starting point for working and integrating with RMF.
(Click to watch video)
System Requirements
These demos were developed and tested on
Installation
Instructions can be found here.
FAQ
Answers to frequently asked questions can be found here.
Roadmap
A near-term roadmap of the RMF project can be found in the user manual here.
RMF-Web
Full web application of RMF: rmf-web.
Demo Worlds
Note: When running the demos on Ubuntu 18.04 (not officially supported), you are required to explicitly supply gazebo_version launch argument. Eg: ros2 launch rmf_demos_gz office.launch.xml gazebo_version:=9
To run the demos using Ignition instead of Gazebo, change the commands from
ros2 launch rmf_demos_gz [...]
toros2 launch rmf_demos_ign [...]
RMF Panel
Click this link: https://open-rmf.github.io/rmf-panel-js/
For a full-proof web application of RMF, please refer to rmf-web.
The RMF panel is a web based dashboard for interacting with rmf_demos. It allows users to send task requests to RMF and monitor the status of robots and submitted tasks. For more details.
There are two main modes of submitting tasks to RMF via the Panel:
- Submit a Task: Used to submit a single task.
- Submit a List of Tasks: Used to submit a batch of tasks. A
.json
file containing a list of tasks may be loaded via theChoose file
button. Some example files are found inrmf_demos_panel/task_lists
.
Office World
An indoor office environment for robots to navigate around. It includes a beverage dispensing station, controllable doors and laneways which are integrated into RMF.
source ~/rmf_demos_ws/install/setup.bash
ros2 launch rmf_demos_gz office.launch.xml
# Or, run with ignition simulator
ros2 launch rmf_demos_ign office.launch.xml
Now we will showcase 2 types of Tasks: Delivery and Loop
To send task requests, open rmf_demos web panel: https://open-rmf.github.io/rmf-panel-js/
To submit a delivery task, select Delivery
from the Select a request type
dropdown list. Next, select coke
from the Select delivery task
list. Choose an desired start time for task and click submit.
Or, submit a task via CLI:
ros2 run rmf_demos_tasks dispatch_loop -s coe -f lounge -n 3 --use_sim_time
ros2 run rmf_demos_tasks dispatch_delivery -p pantry -pd coke_dispenser -d hardware_2 -di coke_ingestor --use_sim_time
To submit a loop task, select Loop
from the Select a request type
dropdown list. Choose desired start and end locations and click submit.
To run a scenario with multiple task requests, load office_tasks.json
from rmf_demos_panel/task_lists
in the Submit a list of tasks
section. This should populate the preview window with a list of tasks. Click submit and watch the demonstration unfold.
The office demo can be run in secure mode using ROS 2 DDS-Security integration. Click here to learn more.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
![]() |
rmf_demos repositoryrmf_demos rmf_demos_assets rmf_demos_bridges rmf_demos_fleet_adapter rmf_demos_gz rmf_demos_maps rmf_demos_tasks |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rmf_demos | 2.7.0 |
rmf_demos_assets | 2.7.0 |
rmf_demos_bridges | 2.7.0 |
rmf_demos_fleet_adapter | 2.7.0 |
rmf_demos_gz | 2.7.0 |
rmf_demos_maps | 2.7.0 |
rmf_demos_tasks | 2.7.0 |
README
RMF Demos
The Open Robotics Middleware Framework (Open-RMF) enables interoperability among heterogeneous robot fleets while managing robot traffic that share resources such as space, building infrastructure systems (lifts, doors, etc) and other automation systems within the same facility. Open-RMF also handles task allocation and conflict resolution among its participants (de-conflicting traffic lanes and other resources). These capabilities are provided by various libraries in Open-RMF. For more details about Open RMF, refer to the comprehensive documentation provided here.
This repository contains demonstrations of the above mentioned capabilities of RMF. It serves as a starting point for working and integrating with Open-RMF.
You can also find a nice demonstration of Open-RMF using Nav2
and MoveIt!
built into the Ionic Release Demo.
(Click to watch video)
System Requirements
These demos were built and tested on
-
Note: The
main
branches of the core RMF libraries are fully supported on ROS 2 Humble, Iron, and Jazzy as well, but you will need to use the distro-specific branches forrmf_traffic_editor
andrmf_simulation
.
Installation
Instructions can be found here.
FAQ
Answers to frequently asked questions can be found here.
Roadmap
A near-term roadmap of the Open-RMF project can be found in the user manual here.
RMF-Web quick start
Full web application of Open-RMF: rmf-web.
Start the backend API server via docker
with host network access, using the default configuration. The API server will be accessible at localhost:8000
by default.
docker run \
--network host \
-it \
-e ROS_DOMAIN_ID=<ROS_DOMAIN_ID> \
-e RMW_IMPLEMENTATION=<RMW_IMPLEMENTATION> \
ghcr.io/open-rmf/rmf-web/api-server:latest
Note: The API server is also configurable by mounting the configuration file and setting the environment variable
RMF_API_SERVER_CONFIG
. In the default configuration, the API serer will use an internal non-persistent database.
Start the frontend dashboard via docker
with host network access, using the default configuration. The dashboard will be accessible at localhost:3000
by default.
docker run \
--network host \
-it \
ghcr.io/open-rmf/rmf-web/dashboard:latest
Note: The dashboard via
docker
is not runtime-configurable and is best used for quick integrations and testing. To configure the dashboard, check out rmf-web-dashboard-resources and the dashboard configuration section.
In order to interact with the default configuration of the web application, the server_uri
launch parameter will need to be changed to ws://localhost:8000/_internal
, for example,
ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:8000/_internal"
By specifying server_uri
, the fleetadapter will update rmf-web
api-server
with the latest task and robot states. User can then monitor on-going states and initiate rmf task with an interactive web dashboard.
Demo Worlds
- Hotel World
- Office World
- Airport Terminal World
- Clinic World
- Campus World
- Manufacturing & Logistics World
Hotel World
This hotel world consists of a lobby and 2 guest levels. The hotel has two lifts, multiple doors and 3 robot fleets (4 robots). This demonstrates an integration of multiple fleets of robots with varying capabilities working together in a multi-level building.
Demo Scenario
To launch the world and the schedule visualizer,
```bash source ~/rmf_ws/install/setup.bash ros2 launch rmf_demos_gz hotel.launch.xml
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).