Hi everyone!
I’m currently working on a simulation tool to facilitate the development of multi-robot systems using ROS2, particularly focusing on navigation and planning (Nav2 @smac). I’m seeking advice on best practices for setting up such systems. Specifically, should we configure the robots with different Domain IDs, different topic namespaces, or both?
I would love to hear all your thoughts and insights on what features or improvements would be most beneficial to incorporate into a simulator, ranging from small-scale (2+ robots) to large-scale (in the 100s to 1000s of robots). My goal is to address some of the gaps present in existing simulators like Gazebo. What aspects should I focus on to enhance the usability and functionality of a simulator for multi-robot nav?
Thanks!
2 Likes
One feature we really needed at a previous company was support for different levels of fidelity. This is particularly interesting when simulating larger fleets, but also applies when testing different aspects of the system for just one robot. For instance, to test higher-level logic, say a behavior tree or some event logic, you don’t need to simulate physics or even check for collisions. Simply assuming that the path is clear is sufficient for this test, but you do need the robot’s location to change. This is comparable to mock-functions in unit tests and has the same benefits: you can simulate what you need much faster that way, with fewer resources.
What we ended up doing was build a second “simulator”, which barely deserves that name because it was so simple, to mock navigation. That worked fine, but was, of course, only a point solution. There are many levels of fidelity at which you need to run simulations and tests in robotics, and a more principled approach would be very desirable.
2 Likes
Thanks for your reply @chfritz!
Do you have any thoughts on whether the use of different ROS Domain IDs or namespaces are preferred with multi robot nav?