Documentation Status

Cannot load information on name: fiducials, distro: electric, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: fiducials, distro: fuerte, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: fiducials, distro: groovy, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: fiducials, distro: hydro, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
fiducials: fiducial_detect | fiducial_lib | fiducial_pose | fiducial_slam

Package Summary

Released Continuous integration Documented

The fiducials package

Cannot load information on name: fiducials, distro: jade, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: fiducials, distro: lunar, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

Overview

This package provides a system that allows a robot to determine its position and orientation by looking at a number of fiducial markers (similar to QR codes) that are fixed in the environment of the robot. Initially, the position of one marker is specified, or automatically determined. After that, a map (in the form of a file of 6DOF poses) is created by observing pairs of fiducial markers and determining the translation and rotation between them.

Getting Started

A camera is required, and it is necessary to know the position of the camera relative to the robot's base_link. Software for the Raspberry Pi is available at:

https://github.com/UbiquityRobotics/raspicam_node

To download and build the fiducials package:

See the catkin workspace tutorial for details of how to create a workspace.

cd ~/catkin_ws/src
git clone https://github.com/UbiquityRobotics/fiducials.git
cd ..
catkin_make

Alternatively, install from binary packages:

sudo apt-get install ros-kinetic-fiducials

Fiducial markers can be generated with a command like this:

rosrun aruco_detect create_markers.py 100 112 fiducials.pdf

Once printed, they can be affixed to the environment. They don't need to be placed in any particular pattern but the density should be such that two or more markers can be seen by the camera on the robot, so the map can be built. Placing them on the ceiling reduces problems with occlusion, but is not required, since a full 6DOF pose is estimated.

Two nodes should be run, aruco_detect, which handles the detection of the fiducials, and fiducial_slam, which combines the fiducial pose estimates and builds the map and makes an estimate of the robot's position. The map is in the form of a text file specifying the 6DOF pose of each of the markers, and is automatically saved.

There are launch files for both of these nodes:

roslaunch aruco_detect aruco_detect.launch
roslaunch fiducial_slam fiducial_slam.launch

A launch file is also provided to visualize the map in rviz.

roslaunch fiducial_slam fiducial_rviz.launch

fiducials_rviz.png Red cubes represent fiducials that are currently in view of the camera. Green cubes represent fiducials that are in the map, but not currently in the view of the camera. The blue lines show connected pairs of fiducials that have been observed in the camera view at the same time.

Wiki: fiducials (last edited 2017-03-20 00:17:24 by SawYer)