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.
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.
Make sure the module is flat against the PCB of the camera board and hasn’t been damaged.
- 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.
- 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
- 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
Now we check the robot model.
rostopic echo /tf_static and make sure the output looks like the following.
header: seq: 0 stamp: secs: 1535314941 nsecs: 653950257 frame_id: "base_link" child_frame_id: "base_footprint" transform: translation: x: 0.0 y: 0.0 z: -0.1 rotation: x: 0.0 y: 0.0 z: 0.0 w: 1.0 - header: seq: 0 stamp: secs: 1535314941 nsecs: 653983009 frame_id: "base_link" child_frame_id: "raspicam" transform: translation: x: 0.035 y: 0.085 z: 0.14 rotation: x: 0.385136504193 y: 0.385099407014 z: 0.593001082056 w: 0.593058206701
Launch the fiducial navigation software
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).
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.
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:
- If all of that is correct you should be able to see fiducials as desired and it should all work.