[ros-users] roscore not starting -- multiple network interfaces a problem?
Patrick Bouffard
bouffard at eecs.berkeley.edu
Sun Feb 27 08:59:22 UTC 2011
Hi, I've just setup a new Ubuntu 10.10 box that will be running some
ROS nodes, occasionally including roscore. I installed diamondback
from debs this evening. This particular machine has a more complex
networking setup than others I've setup before and I suspect that is
giving me issues with running ROS.
I'm pretty sure everything is setup as it ought to be in terms of my
.bashrc (just source /opt/ros/diamondback/setup.bash). But when I run
roscore it just hangs. After waiting awhile, after pressing Ctrl+C
once, the following is output:
{{{
^C... logging to
/home/bouffard/.ros/log/ea02b894-424c-11e0-a499-00226bbd5586/roslaunch-lynx-3561.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://lynx:52141/
ros_comm version 1.4.4
SUMMARY
========
PARAMETERS
* /rosversion
* /rosdistro
NODES
auto-starting new master
process[master]: started with pid [3576]
ROS_MASTER_URI=http://lynx:11311/
setting /run_id to ea02b894-424c-11e0-a499-00226bbd5586
process[rosout-1]: started with pid [3589]
started core service [/rosout]
}}}
At this point things seem to be working; roswtf returns no errors or
warnings, I can run, e.g., rxconsole, rostopic list outputs /rosout
and /rosout_agg, etc. But having to hit Ctrl+C is not so great.
Also, without roscore running, if I run roswtf it also hangs after displaying:
{{{
bouffard at lynx:~$ roswtf
Loaded plugin tf.tfwtf
No package or stack in context
================================================================================
Static checks summary:
No errors or warnings
================================================================================
}}}
If I then hit Ctrl+C I get the following traceback:
{{{
^CTraceback (most recent call last):
File "/opt/ros/diamondback/ros/bin/roswtf", line 35, in <module>
roswtf.roswtf_main()
File "/opt/ros/diamondback/stacks/ros_comm/utilities/roswtf/src/roswtf/__init__.py",
line 93, in roswtf_main
_roswtf_main()
File "/opt/ros/diamondback/stacks/ros_comm/utilities/roswtf/src/roswtf/__init__.py",
line 208, in _roswtf_main
master = master_online()
File "/opt/ros/diamondback/stacks/ros_comm/utilities/roswtf/src/roswtf/__init__.py",
line 100, in master_online
master.getPid('/roswtf')
File "/usr/lib/python2.6/xmlrpclib.py", line 1199, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request
verbose=self.__verbose
File "/usr/lib/python2.6/xmlrpclib.py", line 1235, in request
self.send_content(h, request_body)
File "/usr/lib/python2.6/xmlrpclib.py", line 1349, in send_content
connection.endheaders()
File "/usr/lib/python2.6/httplib.py", line 908, in endheaders
self._send_output()
File "/usr/lib/python2.6/httplib.py", line 780, in _send_output
self.send(msg)
File "/usr/lib/python2.6/httplib.py", line 739, in send
self.connect()
File "/usr/lib/python2.6/httplib.py", line 720, in connect
self.timeout)
File "/usr/lib/python2.6/socket.py", line 554, in create_connection
sock.connect(sa)
File "<string>", line 1, in connect
KeyboardInterrupt
bouffard at lynx:~$
}}}
Just to check that it wasn't something in the latest diamondback
release candidate, I dist-upgrade'd and tried these same commands on
another couple machines (that have been running some version of ROS
for awhile and are similarly configured, Ubuntu 10.0, diamondback
debs) with no problems.
Based on the roswtf traceback and the main weirdness of the current
box being its network config (it has three wired network interfaces),
I'm suspecting it has something to do with that. However, I still see
the same behaviour if I sudo ifdown all the interfaces besides lo.
I'm not a networking expert but I noticed on the EnvironmentVariables
wiki page: ".. ROS components bind to all available network
interfaces.". Could this have something to do with my issues?
Here's the output of ifconfig -a in case that helps:
{{{
bouffard at lynx:~$ ifconfig -a
eth1 Link encap:Ethernet HWaddr xx:xx;xx:xx:xx:xx
inet addr:128.32.43.208 Bcast:128.32.43.255 Mask:255.255.255.0
inet6 addr: fe80::218:8bff:fe74:766d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1066 errors:0 dropped:0 overruns:0 frame:0
TX packets:504 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:329324 (329.3 KB) TX bytes:116257 (116.2 KB)
Interrupt:17
eth2 Link encap:Ethernet HWaddr xx:xx;xx:xx:xx:xx
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::e291:f5ff:fe94:cc3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1264 errors:0 dropped:0 overruns:0 frame:0
TX packets:1342 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:78005 (78.0 KB) TX bytes:67277 (67.2 KB)
Interrupt:17 Base address:0xef00
eth3 Link encap:Ethernet HWaddr xx:xx;xx:xx:xx:xx
inet addr:10.32.43.1 Bcast:10.32.43.255 Mask:255.255.255.0
inet6 addr: fe80::222:6bff:febd:5586/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:235591 errors:0 dropped:0 overruns:0 frame:0
TX packets:451507 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:17233068 (17.2 MB) TX bytes:629352191 (629.3 MB)
Interrupt:16 Base address:0x2e00
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8526 errors:0 dropped:0 overruns:0 frame:0
TX packets:8526 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:817773 (817.7 KB) TX bytes:817773 (817.7 KB)
}}}
eth1 is the connection to the internet, eth2 is a crossover cable to
another machine, and eth3 connected to a private subnet. Iptables is
configured to allow machines on the 10.32.43.x subnet to access the
internet via eth1. It's possible something I did in setting that up
had the side-effect of messing with ROS, as I said I'm no networking
expert. Hopefully one of you is! :)
Thanks,
Pat
More information about the ros-users
mailing list