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

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.

Robotics Middleware Framework

(Click to watch video)

System Requirements

These demos were built and tested on

  • Ubuntu 24.04 LTS

  • ROS 2 - Rolling

  • Gazebo Ionic

    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 for rmf_traffic_editor and rmf_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

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).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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)](https://developercertificate.org/).

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

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.

Robotics Middleware Framework

(Click to watch video)

System Requirements

These demos were built 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 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

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).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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)](https://developercertificate.org/).

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

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.

Robotics Middleware Framework

(Click to watch video)

System Requirements

These demos were built and tested on

  • Ubuntu 24.04 LTS

  • ROS 2 - Rolling

  • Gazebo Ionic

    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 for rmf_traffic_editor and rmf_simulation.

    You can use rmf_demos with any ROS distro by explicitly setting the gazebo_version:=# launch parameter, replacing # with the appropriate version of Gazebo for that ROS distro, e.g. 8 for Jazzy.

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

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).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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)](https://developercertificate.org/).

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

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.

Robotics Middleware Framework

(Click to watch video)

System Requirements

These demos were built and tested on

  • Ubuntu 24.04 LTS

  • ROS 2 - Rolling

  • Gazebo Ionic

    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 for rmf_traffic_editor and rmf_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

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).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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)](https://developercertificate.org/).
Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository

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)

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.

Robotics Middleware Framework

(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 [...] to ros2 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:

  1. Submit a Task: Used to submit a single task.
  2. Submit a List of Tasks: Used to submit a batch of tasks. A .json file containing a list of tasks may be loaded via the Choose file button. Some example files are found in rmf_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).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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)](https://developercertificate.org/).

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)

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.

Robotics Middleware Framework

(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 [...] to ros2 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:

  1. Submit a Task: Used to submit a single task.
  2. Submit a List of Tasks: Used to submit a batch of tasks. A .json file containing a list of tasks may be loaded via the Choose file button. Some example files are found in rmf_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).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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)](https://developercertificate.org/).

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

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.

Robotics Middleware Framework

(Click to watch video)

System Requirements

These demos were built and tested on

  • Ubuntu 24.04 LTS

  • ROS 2 - Rolling

  • Gazebo Ionic

    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 for rmf_traffic_editor and rmf_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

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).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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)](https://developercertificate.org/).
Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository

Repo symbol

rmf_demos repository