Skip to content

Troubleshooting

Rich Wareham edited this page Sep 30, 2013 · 14 revisions

Connection

Common problems

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 typing ping 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. Replace student001 as appropriate.
    • The command ssh qbo@binky must log you into the Q.bo without a password. Use the ssh-copy-id program.
  • 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.

NOTE: When we use 'hostname', we mean 'hostname', i.e. student001, not student001.eng.cam.ac.uk which is a fully qualified name.

XXX is not in your SSH known_hosts file

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 "~/.ssh/known_hosts" -R binky

Then log in again forcing the use of the RSA algorithm:

$ ssh -oHostKeyAlgorithms='ssh-rsa' qbo@binky

See a related ROS forum answer.

[qbo_arduqbo-1] process has died

Note: obsolete since we re-installed the Q.bo. The answer is left here because one may still encounter it if someone else has left a copy of qbo_arduqbo running.

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

Running a node via rosrun on the Q.bo doesn't send any data

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.

I'm getting weird messages about dropped messages/incorrect timestamps

The ROS tf system is both a blessing and a curse. It is a blessing in that it handles a lot of the grunt work for us but it is very picky when it comes to time stamps. In general, you want rigidly connected things to be published on the same machine otherwise, even with NTP, the time stamps can get out of sync. A good example of this is the various static transform publishers in our qbo.launch file. These have to be run on the Q.bo itself so as to make sure the time stamps don't get out of sync with /base_footprint and /odom which are published by the Qb.o.

Note: rjw57 at least has lost a day to this.