![]() |
rmf_simulation repositoryrmf_building_sim_common rmf_building_sim_gz_classic_plugins rmf_building_sim_gz_plugins rmf_robot_sim_common rmf_robot_sim_gz_classic_plugins rmf_robot_sim_gz_plugins |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_simulation.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-13 |
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_building_sim_common | 2.0.2 |
rmf_building_sim_gz_classic_plugins | 2.0.2 |
rmf_building_sim_gz_plugins | 2.0.2 |
rmf_robot_sim_common | 2.0.2 |
rmf_robot_sim_gz_classic_plugins | 2.0.2 |
rmf_robot_sim_gz_plugins | 2.0.2 |
README
rmf_simulation
This repository contains simulation plugins used in Open-RMF. It currently supports Gazebo Classic 11 and Gazebo Fortress.
Simulation plugins are split in Building simulation and Robot simulation plugins
Building Simulation
Building simulation plugins are located under rmf_building_sim_*
and used to simulate different aspect of buildings such as doors, lifts and crowds (currently through the Menge library). Utility plugins to help with simulation, such as UI widgets to toggle battery consumption and set charging behavior, as well as toggling floor visibility, are also placed in this category.
Door plugin
The door plugin is a model plugin that can be attached to door models to make them interface with Open-RMF. It adds a publisher for door state and a subscription to door requests. An example SDF snippet is below:
<plugin name="door" filename="libdoor.so">
<v_max_door>0.5</v_max_door>
<a_max_door>0.3</a_max_door>
<a_nom_door>0.15</a_nom_door>
<dx_min_door>0.01</dx_min_door>
<f_max_door>500.0</f_max_door>
<door name="main_door" type="DoubleSwingDoor" left_joint_name="left_joint" right_joint_name="right_joint" />
</plugin>
Where:
-
v_max_door
is the maximum velocity of the door joints. -
a_max_door
is the maximum acceleration of the door joints. -
a_nom_door
is the nominal acceleration that the door controller will aim for when opening / closing doors. -
dx_min_door
is the threshold used to determine whether the door is open, closed or moving. Specifically if all the door joints are withindx_min_door
of their closed position the door will be considered closed, if they are withindx_min_door
of their open position the door will be considered closed, otherwise it will be considered moving. -
f_max_door
is the maximum effort for the physics simulation. -
door
is a child element with a series of child attributes:-
name
is the name of the door, as seen by Open-RMF. -
type
is a string that describes the door type, supported door types can be found inrmf_building_map_tools
repo. -
left_joint_name
andright_joint_name
are the names of the left and right joint for the door, for double doors both are expected to be names of joints in the model, for single doors one of them can be empty or set toempty_joint
to make the simulation plugin ignore it.
-
Lift plugin
The lift plugin is a model plugin that can be attached to lifts to make them interface with Open-RMF. It adds a publisher for lift state and a subscription to lift requests. An example SDF snippet is below:
<plugin name="lift" filename="liblift.so">
<lift_name>lift_1</lift_name>
<floor name="L1" elevation="0.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L1_lift_1_door" />
</floor>
<floor name="L2" elevation="10.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L2_lift_1_door" />
</floor>
<initial_floor>L1</initial_floor>
<v_max_cabin>2.0</v_max_cabin>
<a_max_cabin>1.2</a_max_cabin>
<a_nom_cabin>1.0</a_nom_cabin>
<dx_min_cabin>0.001</dx_min_cabin>
<f_max_cabin>25323.0</f_max_cabin>
<cabin_joint_name>cabin_joint</cabin_joint_name>
</plugin>
Where:
-
lift_name
is the name of the lift, as seen by Open-RMF. -
floor
describes a floor, there can be any amount offloor
elements with:-
name
attribute with the name of the floor, as seen by Open-RMF. -
elevation
attribute with the height in meters of the floor, relative to the ground plane. -
door_pair
child element with acabin_door
attribute to specify which cabin door should open at this floor and ashaft_door
attribute to specify which shaft door should open. These names should match the names of doors in the world file.
-
-
initial_floor
The floor that the lift should start at. -
v_max_cabin
,a_max_cabin
,a_nom_cabin
,dx_min_cabin
andf_max_cabin
are motion parameters with the same meaning as the ones in the door plugin. -
cabin_joint_name
is the name of the main joint of the cabin, which is the one to be actuated vertically.
Crowd simulation
Crowd simulation configuration is added as a world plugin and is more complex and autogenerated, for an in depth description check the documentation here
Toggle charging
Toggle charging is a world plugin, added by default to all Open-RMF worlds that adds a GUI to toggle charging behaviors, such as enabling / disabling battery consumption or setting chargers to instantly refill the robot battery to reduce idle time in simulations.
It is added with the following snippet:
<plugin name="toggle_charging" filename="libtoggle_charging.so" />
Toggle floors
Toggle charging is a world plugin, added by default to all Open-RMF worlds, that adds a GUI plugin with buttons to enable / disable visibility of specific floors, to make visualization of intermediate floors easier.
An example SDF snippet:
```xml
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).
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_simulation.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_building_sim_gz_plugins | 2.3.2 |
rmf_robot_sim_common | 2.3.2 |
rmf_robot_sim_gz_plugins | 2.3.2 |
README
rmf_simulation
This repository contains simulation plugins used in Open-RMF. It currently supports Gazebo Classic 11 and Gazebo Fortress.
Simulation plugins are split in Building simulation and Robot simulation plugins
Building Simulation
Building simulation plugins are located under rmf_building_sim_*
and used to simulate different aspect of buildings such as doors, lifts and crowds (currently through the Menge library). Utility plugins to help with simulation, such as UI widgets to toggle battery consumption and set charging behavior, as well as toggling floor visibility, are also placed in this category.
Door plugin
The door plugin is a model plugin that can be attached to door models to make them interface with Open-RMF. It adds a publisher for door state and a subscription to door requests. An example SDF snippet is below:
<plugin name="door" filename="libdoor.so">
<v_max_door>0.5</v_max_door>
<a_max_door>0.3</a_max_door>
<a_nom_door>0.15</a_nom_door>
<dx_min_door>0.01</dx_min_door>
<f_max_door>500.0</f_max_door>
<door name="main_door" type="DoubleSwingDoor" left_joint_name="left_joint" right_joint_name="right_joint" />
</plugin>
Where:
-
v_max_door
is the maximum velocity of the door joints. -
a_max_door
is the maximum acceleration of the door joints. -
a_nom_door
is the nominal acceleration that the door controller will aim for when opening / closing doors. -
dx_min_door
is the threshold used to determine whether the door is open, closed or moving. Specifically if all the door joints are withindx_min_door
of their closed position the door will be considered closed, if they are withindx_min_door
of their open position the door will be considered closed, otherwise it will be considered moving. -
f_max_door
is the maximum effort for the physics simulation. -
door
is a child element with a series of child attributes:-
name
is the name of the door, as seen by Open-RMF. -
type
is a string that describes the door type, supported door types can be found inrmf_building_map_tools
repo. -
left_joint_name
andright_joint_name
are the names of the left and right joint for the door, for double doors both are expected to be names of joints in the model, for single doors one of them can be empty or set toempty_joint
to make the simulation plugin ignore it.
-
Lift plugin
The lift plugin is a model plugin that can be attached to lifts to make them interface with Open-RMF. It adds a publisher for lift state and a subscription to lift requests. An example SDF snippet is below:
<plugin name="lift" filename="liblift.so">
<lift_name>lift_1</lift_name>
<floor name="L1" elevation="0.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L1_lift_1_door" />
</floor>
<floor name="L2" elevation="10.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L2_lift_1_door" />
</floor>
<initial_floor>L1</initial_floor>
<v_max_cabin>2.0</v_max_cabin>
<a_max_cabin>1.2</a_max_cabin>
<a_nom_cabin>1.0</a_nom_cabin>
<dx_min_cabin>0.001</dx_min_cabin>
<f_max_cabin>25323.0</f_max_cabin>
<cabin_joint_name>cabin_joint</cabin_joint_name>
</plugin>
Where:
-
lift_name
is the name of the lift, as seen by Open-RMF. -
floor
describes a floor, there can be any amount offloor
elements with:-
name
attribute with the name of the floor, as seen by Open-RMF. -
elevation
attribute with the height in meters of the floor, relative to the ground plane. -
door_pair
child element with acabin_door
attribute to specify which cabin door should open at this floor and ashaft_door
attribute to specify which shaft door should open. These names should match the names of doors in the world file.
-
-
initial_floor
The floor that the lift should start at. -
v_max_cabin
,a_max_cabin
,a_nom_cabin
,dx_min_cabin
andf_max_cabin
are motion parameters with the same meaning as the ones in the door plugin. -
cabin_joint_name
is the name of the main joint of the cabin, which is the one to be actuated vertically.
Crowd simulation
Crowd simulation configuration is added as a world plugin and is more complex and autogenerated, for an in depth description check the documentation here
Toggle charging
Toggle charging is a world plugin, added by default to all Open-RMF worlds that adds a GUI to toggle charging behaviors, such as enabling / disabling battery consumption or setting chargers to instantly refill the robot battery to reduce idle time in simulations.
It is added with the following snippet:
<plugin name="toggle_charging" filename="libtoggle_charging.so" />
Toggle floors
Toggle charging is a world plugin, added by default to all Open-RMF worlds, that adds a GUI plugin with buttons to enable / disable visibility of specific floors, to make visualization of intermediate floors easier.
An example SDF snippet:
```xml
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).
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_simulation.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_building_sim_gz_plugins | 2.5.0 |
rmf_robot_sim_common | 2.5.0 |
rmf_robot_sim_gz_plugins | 2.5.0 |
README
rmf_simulation
This repository contains simulation plugins used in Open-RMF. It currently supports Gazebo Classic 11 and Gazebo Fortress.
Simulation plugins are split in Building simulation and Robot simulation plugins
Building Simulation
Building simulation plugins are located under rmf_building_sim_*
and used to simulate different aspect of buildings such as doors, lifts and crowds (currently through the Menge library). Utility plugins to help with simulation, such as UI widgets to toggle battery consumption and set charging behavior, as well as toggling floor visibility, are also placed in this category.
Door plugin
The door plugin is a model plugin that can be attached to door models to make them interface with Open-RMF. It adds a publisher for door state and a subscription to door requests. An example SDF snippet is below:
<plugin name="door" filename="libdoor.so">
<v_max_door>0.5</v_max_door>
<a_max_door>0.3</a_max_door>
<a_nom_door>0.15</a_nom_door>
<dx_min_door>0.01</dx_min_door>
<f_max_door>500.0</f_max_door>
<door name="main_door" type="DoubleSwingDoor" left_joint_name="left_joint" right_joint_name="right_joint" />
</plugin>
Where:
-
v_max_door
is the maximum velocity of the door joints. -
a_max_door
is the maximum acceleration of the door joints. -
a_nom_door
is the nominal acceleration that the door controller will aim for when opening / closing doors. -
dx_min_door
is the threshold used to determine whether the door is open, closed or moving. Specifically if all the door joints are withindx_min_door
of their closed position the door will be considered closed, if they are withindx_min_door
of their open position the door will be considered closed, otherwise it will be considered moving. -
f_max_door
is the maximum effort for the physics simulation. -
door
is a child element with a series of child attributes:-
name
is the name of the door, as seen by Open-RMF. -
type
is a string that describes the door type, supported door types can be found inrmf_building_map_tools
repo. -
left_joint_name
andright_joint_name
are the names of the left and right joint for the door, for double doors both are expected to be names of joints in the model, for single doors one of them can be empty or set toempty_joint
to make the simulation plugin ignore it.
-
Lift plugin
The lift plugin is a model plugin that can be attached to lifts to make them interface with Open-RMF. It adds a publisher for lift state and a subscription to lift requests. An example SDF snippet is below:
<plugin name="lift" filename="liblift.so">
<lift_name>lift_1</lift_name>
<floor name="L1" elevation="0.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L1_lift_1_door" />
</floor>
<floor name="L2" elevation="10.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L2_lift_1_door" />
</floor>
<initial_floor>L1</initial_floor>
<v_max_cabin>2.0</v_max_cabin>
<a_max_cabin>1.2</a_max_cabin>
<a_nom_cabin>1.0</a_nom_cabin>
<dx_min_cabin>0.001</dx_min_cabin>
<f_max_cabin>25323.0</f_max_cabin>
<cabin_joint_name>cabin_joint</cabin_joint_name>
</plugin>
Where:
-
lift_name
is the name of the lift, as seen by Open-RMF. -
floor
describes a floor, there can be any amount offloor
elements with:-
name
attribute with the name of the floor, as seen by Open-RMF. -
elevation
attribute with the height in meters of the floor, relative to the ground plane. -
door_pair
child element with acabin_door
attribute to specify which cabin door should open at this floor and ashaft_door
attribute to specify which shaft door should open. These names should match the names of doors in the world file.
-
-
initial_floor
The floor that the lift should start at. -
v_max_cabin
,a_max_cabin
,a_nom_cabin
,dx_min_cabin
andf_max_cabin
are motion parameters with the same meaning as the ones in the door plugin. -
cabin_joint_name
is the name of the main joint of the cabin, which is the one to be actuated vertically.
Crowd simulation
Crowd simulation configuration is added as a world plugin and is more complex and autogenerated, for an in depth description check the documentation here
Toggle charging
Toggle charging is a world plugin, added by default to all Open-RMF worlds that adds a GUI to toggle charging behaviors, such as enabling / disabling battery consumption or setting chargers to instantly refill the robot battery to reduce idle time in simulations.
It is added with the following snippet:
<plugin name="toggle_charging" filename="libtoggle_charging.so" />
Toggle floors
Toggle charging is a world plugin, added by default to all Open-RMF worlds, that adds a GUI plugin with buttons to enable / disable visibility of specific floors, to make visualization of intermediate floors easier.
An example SDF snippet:
```xml
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).
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_simulation.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-16 |
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_building_sim_gz_plugins | 2.6.0 |
rmf_robot_sim_common | 2.6.0 |
rmf_robot_sim_gz_plugins | 2.6.0 |
README
rmf_simulation
This repository contains simulation plugins used in Open-RMF. It currently supports Gazebo Classic 11 and Gazebo Fortress.
Simulation plugins are split in Building simulation and Robot simulation plugins
Building Simulation
Building simulation plugins are located under rmf_building_sim_*
and used to simulate different aspect of buildings such as doors, lifts and crowds (currently through the Menge library). Utility plugins to help with simulation, such as UI widgets to toggle battery consumption and set charging behavior, as well as toggling floor visibility, are also placed in this category.
Door plugin
The door plugin is a model plugin that can be attached to door models to make them interface with Open-RMF. It adds a publisher for door state and a subscription to door requests. An example SDF snippet is below:
<plugin name="door" filename="libdoor.so">
<v_max_door>0.5</v_max_door>
<a_max_door>0.3</a_max_door>
<a_nom_door>0.15</a_nom_door>
<dx_min_door>0.01</dx_min_door>
<f_max_door>500.0</f_max_door>
<door name="main_door" type="DoubleSwingDoor" left_joint_name="left_joint" right_joint_name="right_joint" />
</plugin>
Where:
-
v_max_door
is the maximum velocity of the door joints. -
a_max_door
is the maximum acceleration of the door joints. -
a_nom_door
is the nominal acceleration that the door controller will aim for when opening / closing doors. -
dx_min_door
is the threshold used to determine whether the door is open, closed or moving. Specifically if all the door joints are withindx_min_door
of their closed position the door will be considered closed, if they are withindx_min_door
of their open position the door will be considered closed, otherwise it will be considered moving. -
f_max_door
is the maximum effort for the physics simulation. -
door
is a child element with a series of child attributes:-
name
is the name of the door, as seen by Open-RMF. -
type
is a string that describes the door type, supported door types can be found inrmf_building_map_tools
repo. -
left_joint_name
andright_joint_name
are the names of the left and right joint for the door, for double doors both are expected to be names of joints in the model, for single doors one of them can be empty or set toempty_joint
to make the simulation plugin ignore it.
-
Lift plugin
The lift plugin is a model plugin that can be attached to lifts to make them interface with Open-RMF. It adds a publisher for lift state and a subscription to lift requests. An example SDF snippet is below:
<plugin name="lift" filename="liblift.so">
<lift_name>lift_1</lift_name>
<floor name="L1" elevation="0.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L1_lift_1_door" />
</floor>
<floor name="L2" elevation="10.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L2_lift_1_door" />
</floor>
<initial_floor>L1</initial_floor>
<v_max_cabin>2.0</v_max_cabin>
<a_max_cabin>1.2</a_max_cabin>
<a_nom_cabin>1.0</a_nom_cabin>
<dx_min_cabin>0.001</dx_min_cabin>
<f_max_cabin>25323.0</f_max_cabin>
<cabin_joint_name>cabin_joint</cabin_joint_name>
</plugin>
Where:
-
lift_name
is the name of the lift, as seen by Open-RMF. -
floor
describes a floor, there can be any amount offloor
elements with:-
name
attribute with the name of the floor, as seen by Open-RMF. -
elevation
attribute with the height in meters of the floor, relative to the ground plane. -
door_pair
child element with acabin_door
attribute to specify which cabin door should open at this floor and ashaft_door
attribute to specify which shaft door should open. These names should match the names of doors in the world file.
-
-
initial_floor
The floor that the lift should start at. -
v_max_cabin
,a_max_cabin
,a_nom_cabin
,dx_min_cabin
andf_max_cabin
are motion parameters with the same meaning as the ones in the door plugin. -
cabin_joint_name
is the name of the main joint of the cabin, which is the one to be actuated vertically.
Crowd simulation
Crowd simulation configuration is added as a world plugin and is more complex and autogenerated, for an in depth description check the documentation here
Toggle charging
Toggle charging is a world plugin, added by default to all Open-RMF worlds that adds a GUI to toggle charging behaviors, such as enabling / disabling battery consumption or setting chargers to instantly refill the robot battery to reduce idle time in simulations.
It is added with the following snippet:
<plugin name="toggle_charging" filename="libtoggle_charging.so" />
Toggle floors
Toggle charging is a world plugin, added by default to all Open-RMF worlds, that adds a GUI plugin with buttons to enable / disable visibility of specific floors, to make visualization of intermediate floors easier.
An example SDF snippet:
```xml
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_simulation repositoryrmf_building_sim_common rmf_building_sim_gazebo_plugins rmf_building_sim_ignition_plugins rmf_robot_sim_common rmf_robot_sim_gazebo_plugins rmf_robot_sim_ignition_plugins |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_simulation.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_building_sim_common | 1.3.1 |
rmf_building_sim_gazebo_plugins | 1.3.1 |
rmf_building_sim_ignition_plugins | 1.3.1 |
rmf_robot_sim_common | 1.3.1 |
rmf_robot_sim_gazebo_plugins | 1.3.1 |
rmf_robot_sim_ignition_plugins | 1.3.1 |
README
RMF simulator plugins
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_simulation repositoryrmf_building_sim_common rmf_building_sim_gazebo_plugins rmf_building_sim_ignition_plugins rmf_robot_sim_common rmf_robot_sim_gazebo_plugins rmf_robot_sim_ignition_plugins |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_simulation.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_building_sim_common | 1.3.1 |
rmf_building_sim_gazebo_plugins | 1.3.1 |
rmf_building_sim_ignition_plugins | 1.3.1 |
rmf_robot_sim_common | 1.3.1 |
rmf_robot_sim_gazebo_plugins | 1.3.1 |
rmf_robot_sim_ignition_plugins | 1.3.1 |
README
RMF simulator plugins
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_simulation repositoryrmf_building_sim_common rmf_building_sim_gz_classic_plugins rmf_building_sim_gz_plugins rmf_robot_sim_common rmf_robot_sim_gz_classic_plugins rmf_robot_sim_gz_plugins |
|
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_simulation.git |
VCS Type | git |
VCS Version | iron |
Last Updated | 2023-12-20 |
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_building_sim_common | 2.1.2 |
rmf_building_sim_gz_classic_plugins | 2.1.2 |
rmf_building_sim_gz_plugins | 2.1.2 |
rmf_robot_sim_common | 2.1.2 |
rmf_robot_sim_gz_classic_plugins | 2.1.2 |
rmf_robot_sim_gz_plugins | 2.1.2 |
README
rmf_simulation
This repository contains simulation plugins used in Open-RMF. It currently supports Gazebo Classic 11 and Gazebo Fortress.
Simulation plugins are split in Building simulation and Robot simulation plugins
Building Simulation
Building simulation plugins are located under rmf_building_sim_*
and used to simulate different aspect of buildings such as doors, lifts and crowds (currently through the Menge library). Utility plugins to help with simulation, such as UI widgets to toggle battery consumption and set charging behavior, as well as toggling floor visibility, are also placed in this category.
Door plugin
The door plugin is a model plugin that can be attached to door models to make them interface with Open-RMF. It adds a publisher for door state and a subscription to door requests. An example SDF snippet is below:
<plugin name="door" filename="libdoor.so">
<v_max_door>0.5</v_max_door>
<a_max_door>0.3</a_max_door>
<a_nom_door>0.15</a_nom_door>
<dx_min_door>0.01</dx_min_door>
<f_max_door>500.0</f_max_door>
<door name="main_door" type="DoubleSwingDoor" left_joint_name="left_joint" right_joint_name="right_joint" />
</plugin>
Where:
-
v_max_door
is the maximum velocity of the door joints. -
a_max_door
is the maximum acceleration of the door joints. -
a_nom_door
is the nominal acceleration that the door controller will aim for when opening / closing doors. -
dx_min_door
is the threshold used to determine whether the door is open, closed or moving. Specifically if all the door joints are withindx_min_door
of their closed position the door will be considered closed, if they are withindx_min_door
of their open position the door will be considered closed, otherwise it will be considered moving. -
f_max_door
is the maximum effort for the physics simulation. -
door
is a child element with a series of child attributes:-
name
is the name of the door, as seen by Open-RMF. -
type
is a string that describes the door type, supported door types can be found inrmf_building_map_tools
repo. -
left_joint_name
andright_joint_name
are the names of the left and right joint for the door, for double doors both are expected to be names of joints in the model, for single doors one of them can be empty or set toempty_joint
to make the simulation plugin ignore it.
-
Lift plugin
The lift plugin is a model plugin that can be attached to lifts to make them interface with Open-RMF. It adds a publisher for lift state and a subscription to lift requests. An example SDF snippet is below:
<plugin name="lift" filename="liblift.so">
<lift_name>lift_1</lift_name>
<floor name="L1" elevation="0.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L1_lift_1_door" />
</floor>
<floor name="L2" elevation="10.0">
<door_pair cabin_door="CabinDoor_lift_1_lift_1_door" shaft_door="ShaftDoor_lift_1_L2_lift_1_door" />
</floor>
<initial_floor>L1</initial_floor>
<v_max_cabin>2.0</v_max_cabin>
<a_max_cabin>1.2</a_max_cabin>
<a_nom_cabin>1.0</a_nom_cabin>
<dx_min_cabin>0.001</dx_min_cabin>
<f_max_cabin>25323.0</f_max_cabin>
<cabin_joint_name>cabin_joint</cabin_joint_name>
</plugin>
Where:
-
lift_name
is the name of the lift, as seen by Open-RMF. -
floor
describes a floor, there can be any amount offloor
elements with:-
name
attribute with the name of the floor, as seen by Open-RMF. -
elevation
attribute with the height in meters of the floor, relative to the ground plane. -
door_pair
child element with acabin_door
attribute to specify which cabin door should open at this floor and ashaft_door
attribute to specify which shaft door should open. These names should match the names of doors in the world file.
-
-
initial_floor
The floor that the lift should start at. -
v_max_cabin
,a_max_cabin
,a_nom_cabin
,dx_min_cabin
andf_max_cabin
are motion parameters with the same meaning as the ones in the door plugin. -
cabin_joint_name
is the name of the main joint of the cabin, which is the one to be actuated vertically.
Crowd simulation
Crowd simulation configuration is added as a world plugin and is more complex and autogenerated, for an in depth description check the documentation here
Toggle charging
Toggle charging is a world plugin, added by default to all Open-RMF worlds that adds a GUI to toggle charging behaviors, such as enabling / disabling battery consumption or setting chargers to instantly refill the robot battery to reduce idle time in simulations.
It is added with the following snippet:
<plugin name="toggle_charging" filename="libtoggle_charging.so" />
Toggle floors
Toggle charging is a world plugin, added by default to all Open-RMF worlds, that adds a GUI plugin with buttons to enable / disable visibility of specific floors, to make visualization of intermediate floors easier.
An example SDF snippet:
```xml
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).