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

Multirobot with one master using different namespaces

asked 2013-06-12 06:16:40 -0600

Rafael gravatar image

updated 2013-06-12 06:49:36 -0600

Hello,

This is a follow up question from question 60760 multirobot-interaction-using-turtlebot.

When I implemented the advice on that question, which indicated that each turtlebot should run on its own namespace, I got the following errors in these 3 processes:

process[robot_pose_ekf-6]: started with pid [23337]
[ERROR] [1371052770.749560864]: No analyzers initialzed in AnalyzerGroup /turtlebot246/diagnostic_aggregator/analyzers
[ERROR] [1371052770.751441041]: Analyzer group for diagnostic aggregator failed to initialize!

process[cmd_vel_mux-7]: started with pid [23350]
[ERROR] [1371052771.860666093]: CmdVelMux : configuration file not found []

process[bumper2pointcloud-8]: started with pid [23386]
[ERROR] [1371052772.502205005]: Kobuki : no device port given on the parameter server (e.g. /dev/ttyUSB0)[/turtlebot246/mobile_base].
[ERROR] [1371052772.502885732]: Kobuki : could not initialise! Please restart.

How can I fix these errors?

The master is the workstation and both robots connect to it. I am trying to start each robot in a different namespace like this:

ROS_NAMESPACE=turtlebot246 roslaunch turtlebot_bringup minimal.launch

Without the namespace assignment the robots function properly (as long as there is only one active at a time).

Thank you very much,

Rafael

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
2

answered 2013-06-12 07:05:00 -0600

updated 2013-06-12 07:06:51 -0600

I can't help you much because I don't have a turtlebot to test, so I hope other people can chime in.

In general, remapping often brings bugs into the light with code that hasn't been tested in a multi robot scenario. :-)

Some general advice:

  • Some of your errors look like they are caused by missing parameters. When a node is called "foo", it expects its private parameters to be at "foo/...". Now if you remap the namespaces, the nodes get pushed down to "namespace/foo" and expect their parameters there. Try to do a rosparam dump tmp.yaml with and without remapping and try to spot the differences (and missing differences). Better restart the master in between to clear out the parameters.
  • TF isn't affected by remapping, so you need to set the tf_prefix parameter for all nodes that use TF. But your errors don't seem to be related to TF (that will start later, when you connect a second Turtlebot). Some code even doesn't support tf_prefix. For instance, we've only patched that support into robot_pose_ekf last month, so you'll have to wait for the next release of the navigation stack (1.10.4) before you can use multiple instances of robot_pose_ekf at once. Or build it from source, of course.
edit flag offensive delete link more

Comments

Hi Martin, thanks again for your answer. The only difference is related with the error in the second process. The one with the assigned namespace reads: turtlebot246: - cmd_vel_mux: {yaml_cfg_file: ''} Should I set this file directly in the parameters? how do I find out which file to set? Thx

Rafael gravatar image Rafael  ( 2013-06-13 07:29:11 -0600 )edit

Question Tools

Stats

Asked: 2013-06-12 06:16:40 -0600

Seen: 705 times

Last updated: Jun 12 '13