Ask Your Question
0

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:

echo $ROS_MASTER_URI
http://localhost:11311

where localhost is 192.168.0.105

On the laptop:

echo $ROS_MASTER_URI
http://localhost:11311

where localhost is once again 192.168.0.105 (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
0

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
0

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:

export ROS_MASTER_URI=http://192.168.0.105:11311

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

ping 192.168.0.105

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 127.0.0.1. Doing so will break many system services which depend on localhost.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

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

Seen: 662 times

Last updated: Nov 01 '15