Troubleshooting procedure for fiducial localization problems

  1. Check the fiducial is the correct size the thick dark square that is the exterior of the dark parts of the fiducial should be exactly 14.0 cm along each edge.

  2. Make sure that there is a white border around the big black box of the fiducial. The camera must see white around the black square - a 2 cm border is recommended. Our fiducial system generates pages correctly by default and has cut symbols on it that are workable.

  3. Make sure the module is flat against the PCB of the camera board and hasn’t been damaged.

  1. Make sure the camera is mounted at the correct location and that it is correctly oriented in the default position it should look like this:


Note: Please ignore the connection to the sonar board - this type of connection is particular to our engineering robots only.

  1. Check that you have a charged button battery in the CR2032 battery holder on the back of the robot. If you don’t have this attached then the real time clock will not work and this can cause the tf to fail and the robot to get confused as to the location of the camera.

Now we check the various pieces of software are correct

  1. Make sure you have the latest software by typing

sudo apt update; sudo apt upgrade

Then run it again to verify that everything got upgraded correctly

  1. Reboot

  2. Now we check the robot model.

run rostopic echo /tf_static and make sure the output looks like the following.

      seq: 0
        secs: 1535314941
        nsecs: 653950257
      frame_id: "base_link"
    child_frame_id: "base_footprint"
        x: 0.0
        y: 0.0
        z: -0.1
        x: 0.0
        y: 0.0
        z: 0.0
        w: 1.0
      seq: 0
        secs: 1535314941
        nsecs: 653983009
      frame_id: "base_link"
    child_frame_id: "raspicam"
        x: 0.035
        y: 0.085
        z: 0.14
        x: 0.385136504193
        y: 0.385099407014
        z: 0.593001082056
        w: 0.593058206701
  1. Launch the fiducial navigation software

  2. Launch RViz it should look something like this:

note that the fiducials that are seen by the robots (the red ones) match those that you can see in the image. (in the example you are looking from above so the image is reversed).

  1. Run htop to verify that there isn’t anything that is taking up large numbers of CPU cycles or memory that isn’t ROS related.

  2. Camera calibration is not usually necessary as we provide a default camera calibration file that should work in most cases. However, even in mass produced cameras of the same type, there is always some camera to camera variation, that can only be eliminated through careful calibration. If there is aberrant behavior and all other sources of problems have been eliminated, or if you simply want the best possible accuracy and performance from your system then do camera calibration. A tutorial for camera calibration can be found at:

  1. If all of that is correct you should be able to see fiducials as desired and it should all work.

Great documentation @davecrawley

So do I need to cut my fiducials? I was testing with the full a4 image printed on 3mm PVC!! But I can easily cut them! just tell me if make difference ! Thanks for all the support

You do not have to cut them, but if you want to cut them the smallest you should cut it is the little right angle marks around the outside of the fiducials.

Just make sure that the fiducial is 14cmx14cm :slight_smile:

But I am more excited about printing on PVC! It looks great! Can you tell me more about this process?


Ok then i will not cut them for now!

I have print the fiducials in my company as i have big uv printers to print them cheap :slight_smile: