0
$\begingroup$

Rosanswers logo

We have a set up where there is a single robot running ROS and we connect laptops to it. We need to use foreign relays to connect ROS running on the laptops to the robot. If the laptops both try to spawn foreign relay nodes on the robot which have the same name, the nodes die and respawn due to name conflicts. After continuously respawning nodes for somewhere between 20 minutes and 2 hours, nodes stop respawning and rosmaster appears to lock up. It takes 100% of a cpu core and commands that query rosmaster, such as "rostopic list", just hang. Additionally, rosmaster stops printing log statements. When we try to control-C the code, the nodes have to escalate to SIGTERM in order to be killed.

The following launch file is a simplified test case of the issues we are seeing:

<launch>
  <node name="pose_ekf" pkg="robot_pose_ekf" type="robot_pose_ekf" respawn="true"/>
</launch>

It just launches an ekf node. I have a similar test case that launches a foreign relay node, but it seems to work with any roscpp node . If you launch this file twice on the same computer, it will result in nodes continuously respawning, and after 5 - 30 minutes (nodes respawn much more quickly in this test than in our system with the robot), rosmaster will lock up.

We are using ROS Fuerte on Ubuntu 12.04.

We can get around this issue on our robot by ensuring that we do not have node name conflicts, but I was wondering what actually is causing rosmaster to lock up, and if it is fixed in a newer version of ROS.


Originally posted by grieneis on ROS Answers with karma: 16 on 2014-01-31

Post score: 0


Original comments

Comment by ahendrix on 2014-01-31:
Also, you shouldn't need foreign relays for simple network communication.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Definitely a bug in rosmaster. Not likely to be fixed in newer versions.


Originally posted by ahendrix with karma: 47576 on 2014-01-31

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.