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

roslaunch ssh error

asked 2016-02-25 10:10:59 -0500

bigbrett gravatar image

updated 2016-02-28 18:24:39 -0500

Hi,

I am getting the following error when attempting to launch a series of nodes across two machines..

  • beaglebone black (ubuntu@bbone): ubuntu 14.04 LTS (3.14 kernel) and ROS indigo
  • Linux workstation (thayer@T1538): ubuntu 14.04 LTS (3.14 kernel) and ROS indigo

I have verified that both machines have the correct ROS_MASTER_URI environment variables set, and I have full bi-directional internet connectivity between the two. I can get success if I start up roscore and bring up each node on the respective machines one at a time, but can't get the launch file to work. Also, FWIW, the sys.excepthook is missing lost sys.stderr error message occurs often on the beaglebone after killing roscore if it is running, however has never affected functionality in any way. Does this point to a deeper issue?

Error message:

thayer@T1538:~/catkin_ws/src/mvp_ros/launch$ roslaunch mvp_ros rangetest.launch 
... logging to /home/thayer/.ros/log/b097f6ac-dbd8-11e5-a8ba-78acc0a5686d/roslaunch-T1538-9473.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://T1538:44498/
remote[bbone-0] starting roslaunch
remote[bbone-0]: creating ssh connection to bbone:22, user[ubuntu]
launching remote roslaunch child with command: [env ROS_MASTER_URI=http://localhost:11311 /opt/ros/indigo/env.sh roslaunch -c bbone-0 -u http://T1538:44498/ --run_id b097f6ac-dbd8-11e5-a8ba-78acc0a5686d]
remote[bbone-0]: ssh connection created
remote[bbone-0]: Exception while registering with roslaunch parent [http://T1538:44498/]: Traceback (most recent call last):
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/server.py", line 506, in _register_with_server
    code, msg, _ = server.register(name, self.uri)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1233, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1587, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.7/xmlrpclib.py", line 1273, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1301, in single_request
    self.send_content(h, request_body)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1448, in send_content
    connection.endheaders(request_body)
  File "/usr/lib/python2.7/httplib.py", line 975, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 835, in _send_output
    self.send(msg)
  File "/usr/lib/python2.7/httplib.py", line 797, in send
    self.connect()
  File "/usr/lib/python2.7/httplib.py", line 778, in connect
    self.timeout, self.source_address)
  File "/usr/lib/python2.7/socket.py", line 553, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno -2] Name or service not known

The traceback for the exception was written to the log file
Unhandled exception in thread started by 
sys.excepthook is missing
lost sys.stderr

[bbone-0] killing on exit
remote roslaunch failed to launch: bone
The traceback for the exception was written to the log file

Launch File:

<launch>
    <machine name="bone" address="bbone" default="true" user="ubuntu" password="ubuntu"/>
    <machine name="thayer" address="localhost" default="true"/>

    <node ...
(more)
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
2

answered 2016-02-28 18:45:29 -0500

bigbrett gravatar image

updated 2016-02-28 18:49:56 -0500

Found the solution after much digging....

The error lay in the version of paramiko on my computer, as seen here. I updated paramiko and then that error went away. I also needed to provide an env-loader option in my .launch file when I declared the remote machine. Once I did this, everything worked.

I don't have enough points to accept my own answer, but if someone else could flag it as accepted, that would be great.

edit flag offensive delete link more
0

answered 2016-02-28 18:45:11 -0500

ahendrix gravatar image

You say you have "full internet connectivity", but it looks like name resolution is failing.

In the first log, the beginning and the end of the traceback stand out:

remote[bbone-0]: Exception while registering with roslaunch parent [ http://T1538:44498/ ]: Traceback (most recent call last):

and

gaierror: [Errno -2] Name or service not known

It looks like your beaglebone is trying to connect to http://T1538:44498/ and failing because it can't resolve the hostname of your laptop.

As suggested in the Name Resolution section of the Network Setup guide, you should set up the ROS_IP environment variable, or configure your /etc/hosts file on each machine.

edit flag offensive delete link more

Comments

Thanks for the response. I have since fixed the network configuration, but that was not the problem causing that error. See my answer above for the actual issue.

bigbrett gravatar image bigbrett  ( 2016-02-28 18:46:29 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2016-02-25 10:10:59 -0500

Seen: 2,300 times

Last updated: Feb 28 '16