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

ROS Master Communciation Error - BeagleboneBlack

asked 2015-10-29 14:30:08 -0500

rking1020 gravatar image

Our setup: Laptop running Ubuntu, serially connected to a BeagleboneBlack running Debian Wheezy. From the laptop, SSH-ing serially into the BBB is successful. Roscore is running on latop.

However, when any ROS command is attempted while SSHed into the beaglebone, the following error occurs:

ERROR: Unable to communicate with master!

On the beaglebone:


where localhost is

On the laptop:


where localhost is once again (the IP address of the laptop)

To debug, we try running roswtf on the BBB and receive the following error:

root@beaglebone:~/twf_catkin_ws# roswtf
Loaded plugin tf.tfwtf
No package or stack in context
Static checks summary:

Found 1 warning(s).
Warnings are things that may be just fine, but are sometimes at fault

WARNING You are missing core ROS Python modules: rosinstall -- bloom -- rosrelease --

Found 1 error(s).

ERROR Not all paths in PYTHONPATH [/root/twf_catkin_ws/devel/lib/python2.7/dist-packages:/root/catkin_ws/devel/lib/python2.7/dist-packages:/opt/ros/hydro/lib/python2.7/dist-packages] point to a directory:
 * /root/catkin_ws/devel/lib/python2.7/dist-packages


ROS Master does not appear to be running.
Online graph checks will not be run.
ROS_MASTER_URI is [http://localhost:11311]

Being new to ROS, we are confused as to the relationship between the PythonPath and how the BBB communicates with master. I realize these two could be unrelated. Any help or suggestions is greatly appreciated!

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2015-11-01 10:33:15 -0500

Here's the wiki page that explains how to setup multiple machines for ROS.

edit flag offensive delete link more

answered 2015-10-29 16:11:31 -0500

ahendrix gravatar image

The python path is unrelated.

When you set ROS_MASTER_URI to http://localhost:11311 , you're telling ROS that it should try to connect to a master on the local machine. Since there is no ros master running on the BeagleBone, you will get an error for any command that you run on the BeagleBone with that ROS_MASTER_URI

On the BeagleBone, you should set your ROS_MASTER_URI to the IP of your laptop:


And on the BeagleBone, you should confirm that you have network connectivity to your laptop:


If you do not have network connectivity from your BeagleBone to your laptop, you will need to fix that before ROS will work between the two.

You should NOT, UNDER ANY CIRCUNSTANCES, change /etc/hosts to make localhost anything other than Doing so will break many system services which depend on localhost.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2015-10-29 14:30:08 -0500

Seen: 886 times

Last updated: Nov 01 '15