-
Notifications
You must be signed in to change notification settings - Fork 2
Troubleshooting
You may see errors like the following:
- error launching XXX: No such file or directory
This and other similar errors are due to ROS being extremely picky about networking.
Firstly, check which network you're trying to talk to Q.bo on. The hostnames will be different depending on whether you are on the wired or the wireless connection.
Secondly, check the following:
- On your machine:
- Your hostname must match the name other machines use on the network. I.e. if your machine is called
student001
then typingping student001
on the Q.bo must reach your machine. - The
ROS_HOSTNAME
environment variable must be set to that hostname. - The
ROS_MASTER_URI
environment variable must be set to, in this case,http://student001:11311
. Replacestudent001
as appropriate. - The command
ssh qbo@binky
must log you into the Q.bo without a password. Use the ssh-copy-id program.
- Your hostname must match the name other machines use on the network. I.e. if your machine is called
- On the Q.bo:
- Your hostname must be contactable by the Q.bo. I.e. the command
ping student001
must work replacing your hostname as appropriate.
- Your hostname must be contactable by the Q.bo. I.e. the command
NOTE: When we use 'hostname', we mean 'hostname', i.e. student001
, not student001.eng.cam.ac.uk
which is a fully qualified name.
This is because the version of SSH shipped with ROS cannot understand the ~/.ssh/known_hosts
generated by the latest SSH. Firstly remove the existing entry:
$ ssh-keygen -f "/home/rjw57/.ssh/known_hosts" -R binky.eng.cam.ac.uk
Then log in again forcing the use of the RSA algorithm:
$ ssh -oHostKeyAlgorithms='ssh-rsa' qbo@binky
See a related ROS forum answer.
If the qbo_arduqbo
node keeps dying on the robot, then there's probably already one running. Unfortunately the Q.bo is setup to launch its own copy of ROS on startup. A quick way to kill this process is to run pkill via SSH:
$ ssh qbo@binky pkill -f qbo_startup
Check your ROS_HOSTNAME
environment variable. (It should be binky
if you're on the wired connection, for example.) As outlined above, ROS is very picky. If ROS_HOSTNAME
is wrong but ROS_MASTER_URI
is correct then you'll see the topic via rostopic list
but no data will be published to them. This is confusing until you know the cause.