node on rqt_graph is in red color always
Hi,
This question is for experienced ROS users. First about My setup which involves, a raspberrypi (B+ model, wheezy OS, ROS groovy deb installation) and desktop PC (AMD dual core, Ubuntu 12.04.5, ROS groovy). I use a simple wifi-router to setup connection between the two machines. I also have followed the network setup very carefully, which are as follows:
Case 1: (Initial Setup)
machine A (Desktop-PC; ROS MASTER): ROS_HOSTNAME=desktop-PC; ROS_MASTER_URI=http://desktop-PC:11311;ROS_IP=192.168.xxx.5
(IP address of my PC)
machine B (raspberrypi): ROS_HOSTNAME=desktop-PC; ROS_MASTER_URI=http://desktop-PC:11311;ROS_IP=192.168.xxx.10
(IP address of my raspberrypi)
now having said that, I start roscore on machine A, and with the above network setup I am able to view rosnodes on my raspberrypi with $ rosnode list
. following which, I setup the turtlesim_node
on machine B after which I setup the turtle_teletop node
on machine A . Now, when I issue command using the teletop node the turtle on machine B does not move. a quick check on rqt_graph, reveals that my turtlesim_node is in red color. (something is wrong!).
Case 2:(Slight Change in the Network setup)
machine A (Desktop-PC; ROS MASTER): ROS_HOSTNAME=desktop-PC; ROS_MASTER_URI=http://desktop-PC:11311;ROS_IP=192.168.xxx.5
(IP address of my PC)
machine B (raspberrypi): ROS_HOSTNAME=desktop-PC; ROS_MASTER_URI=http://desktop-PC:11311;ROS_IP=192.168.xxx.5
(IP address of my PC)
now the change is done only with ROS_IP. The remaining setup are similar to that in case 1 . Now, when I issue command using the teletop node on machine A to the turtle on machine B , it moves!.But, a quick refresh on rqt_graph, reveals that my turtlesim_node is still in red color. (I feel something is really wrong! or I am missing a point here!).
so, again I kindly request ROS users to clarify this issue.
Thanks,
Murali
Following the this note, note that
ROS_HOSTNAME
should take precedence overROS_IP
, and you really shouldn't need to set both. Try instead settingROS_HOSTNAME
on the RPi to the hostname of the RPi (not the desktop).and for completeness, try not setting
ROS_IP
at all. Alternatively, useROS_IP
as you have it in Case 1, and don't setROS_HOSTNAME
. Also note, that for some network configurations, adding a.local
to the end ofROS_HOSTNAME
can help with name resolution.For a more detailed explanation, watch my ROSCon talk from 2013 to get a better idea of how all of these environment variables interact and impact topic negotiation: https://vimeo.com/67806888
Thank you, @jarvisschultz and @ahendrix , for the quick response. will try again with the above idea in mind.