ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

My advise is to use a xacro file with a namespace or prefix argument, that is the same as the topic namespace for this robot. When using Gazebo the description file also lists the plugins to be used, that may include:

  • topics to be published or subscribed, that have to be different between robots (namespaces)
  • frame names to be written in some messages (e.g. imu frame), that should also be robot-specific (prefixes)

Remapping /tf to /robotX/tf is another issue, that is more about all nav stack nodes sending and receiving many useless transforms on /tf while they are only interested in the transforms that involve the one robot they navigate. To my knowledge, both ways work fine in a local multi-robot simulation. You may not want that for multiple real robots exchanging countless and useless transforms over wifi.

Prefixing the frames may be omitted when using a separate tf topic for each robot, but then you cannot display the whole fleet in e.g. RViz without some kind of complex bridge that would add prefixes on-the-fly in all messages their appear in (tf but also LaserScan or others). This may be a minor problem, or not.

Note that with Ignition Gazebo, there is no publication from the simulation to tf which is normal as tf is about estimations while the simulation is about ground truth. Ignition can publish e.g. the real pose, that you may forward to your favorite tf topic.