Missing Plugin in world generated by Traffic-Editor (#654)

Posted by @SirFireByte:

Hey everyone,
i am trying to build a simulation environment for work and struggled to get the turtlebot4 with nav2 to run. For the simulation i created a .building.yaml with the traffic editor and generated a .world file in the cmakelist. I then spawned the turtlebot in the world. When testing this setup, the scan topic was never populated in gazebo. After some debugging i noticed, that the generated .world file missed the sensor plugin needed to for the tb4. Is there a way to include these plugins during generating the world file or do i need to just take this world file and add the plugins manually?

On another topic: I assume the reason, why the free-fleet example uses namespaces, even though it is not intended to is because gazebo is still running on the same devices and thus namespace are nessecary to differenciate the gazebo topics correct?

Chosen answer

Answer chosen by @SirFireByte at 2025-04-03T10:10:07Z.
Answered by @aaronchongth:

Hello @SirFireByte. The world generation step uses a template at the moment to populate the .sdf file, rmf_traffic_editor/rmf_building_map_tools/building_map/templates at main · open-rmf/rmf_traffic_editor · GitHub, hence it will not have all the plugins users are expecting to have. You can create your own template world file and change the command used in your CMakeLists.txt to use a different template when generating the world. See https://github.com/open-rmf/rmf/discussions/645#discussioncomment-12687017. If you reckon that this plugin is generic enough, and is useful for the community, feel free to open a PR to help add it into the upstream template used. We’d be happy to review the changes!

On another topic: I assume the reason, why the free-fleet example uses namespaces, even though it is not intended to is because gazebo is still running on the same devices and thus namespace are nessecary to differenciate the gazebo topics correct?

That’s right. It’s also the way that the nav2_bringup sets it up conveniently. But for user’s testing and demo’s sake, it is still useful to run RMF with multiple robots on free_fleet as an example simulation. In the wild, we fully expect robots to be non-namespaced, following the architecture diagram shown, GitHub - open-rmf/free_fleet: A free fleet management system..

Posted by @aaronchongth:

Hello @SirFireByte. The world generation step uses a template at the moment to populate the .sdf file, rmf_traffic_editor/rmf_building_map_tools/building_map/templates at main · open-rmf/rmf_traffic_editor · GitHub, hence it will not have all the plugins users are expecting to have. You can create your own template world file and change the command used in your CMakeLists.txt to use a different template when generating the world. See https://github.com/open-rmf/rmf/discussions/645#discussioncomment-12687017. If you reckon that this plugin is generic enough, and is useful for the community, feel free to open a PR to help add it into the upstream template used. We’d be happy to review the changes!

On another topic: I assume the reason, why the free-fleet example uses namespaces, even though it is not intended to is because gazebo is still running on the same devices and thus namespace are nessecary to differenciate the gazebo topics correct?

That’s right. It’s also the way that the nav2_bringup sets it up conveniently. But for user’s testing and demo’s sake, it is still useful to run RMF with multiple robots on free_fleet as an example simulation. In the wild, we fully expect robots to be non-namespaced, following the architecture diagram shown, GitHub - open-rmf/free_fleet: A free fleet management system..


This is the chosen answer.

Posted by @SirFireByte:

Hey @aaronchongth , thanks for the answer. Adapting the template file worked. The plugins missing where gz-sim-sensors-system and gz-sim-imu-system. I belive they are used in many robot descriptions so it might be worth to add them in the template.

Otherwise i checked and tried to find if the multibook or the docs in the traffic-editor are mentoning the use of template-file and couldnt find anything. If i grasp the current development of Open-rmf correct rmf-site is supposed to replace the traffic-editor. Depending on how long it will be in active development, it might make sense to add the information about the use of template in the multibook or in the readme of traffic-editor.

Posted by @aaronchongth:

Yes, that feature was only added rather recently, hence the lack of documentation at this point. Let me drop a ping to the original author, he may have a better sense whether this should be documented. @arjo129 FYI.

Posted by @arjo129:

Hey @SirFireByte , I have not got round to writing documentation. It absolutely makes sense to add a section to the multi-robot book. I have a small example here of loading sensors into the world using the new feature. This line specifically loads a template and this template loads the usual set of sensor systems.