AprilTags
From Tekkotsu Wiki
AprilTags are an implementation of Augmented Reality Tags from Edwin Olson's APRIL Laboratory at the University of Michigan. They are visual markers designed for robust detection by machines. See the ARTag.net web site for basic information and alternative implementations of the augmented reality tag idea. Here are some YouTube demo videos. And here are the two 2004 technical reports by Mark Fiala describing his ARTag implementation: NRC-47166 and NRC-47419.
AprilTags Install Instructions
A C++ port of Edwin Olson's April Tags code is built in to Tekkotsu, so no additional installation is necessary to use it. The instructions below are for installing Olson's Java-based TagTest real-time demo on Easy Peasy or Ubuntu Linux systems.
1. Install necessary packages.
sudo -s apt-get update apt-get install git-core ant libjogl-java libjogl-jni apt-get install subversion gtk-doc-tools libglib2.0-dev libusb-1.0-0-dev
2. Install libdc1394 (camera support).
cd /usr/local svn co https://libdc1394.svn.sourceforge.net/svnroot/libdc1394 libdc1394 cd libdc1394/trunk/libdc1394 autoreconf -i -s ./configure # Make sure you see "IIDC-over-USB support: Enabled" make make install
3. Install lcm. Download the source from Google Code into /tmp, then:
cd /opt wget http://lcm.googlecode.com/files/lcm-0.5.1.tar.gz tar -xvzf lcm-0.5.1.tar.gz cd lcm-0.5.1 ./configure make make install
4. Install April.
cd /usr/local git clone git://april.eecs.umich.edu/home/git/april.git cd april/java export CLASSPATH=/usr/share/java/jogl.jar:/usr/share/java/gluegen-rt.jar:\ /usr/local/share/java/lcm.jar ant
5. Install shell script to run the TagTest demo.
cd /usr/local/april/bin cat >tagtest <<EOF export CLASSPATH=/usr/share/java/jogl.jar:/usr/share/java/gluegen-rt.jar:\ /usr/local/share/java/lcm.jar:/usr/local/april/java/april.jar export LD_LIBRARY_PATH=/usr/local/lib cd /usr/local/april/java java -ea -server -Djava.library.path=/usr/local/april/lib april.tag.TagTest EOF chmod +x tagtest
To run the demo, type /usr/local/april/bin/tagtest. Click on the "Debug" checkbox and then control-right click on the display and go to "Select Buffers" to call up a menu of display options. Click on the "Detach" menu item. You can also click-and-drag in the 3D display (the right half of the main window) to rotate the view.
Generating Your Own AprilTags
To generate .png files for each tag in the 36h11 family, use the following commands:
cd /usr/local/april/java export CLASSPATH=/usr/local/april/java/april.jar java april.tag.TagFamily april.tag.Tag36h11 /tmp/tag36h11
You can then use a program like gv to display /tmp/tag36h11/alltags.ps, or use gimp or display to show the mosaic.png file or one of the individual tag .png files. A few sample tags are shown below.
To generate a new tag family, such as the 16h5 family, use the following commands:
cd /usr/local/april/java export CLASSPATH=/usr/local/april/java/april.jar java april.tag.TagFamilyGenerator 16 5 >/tmp/Tag16h5.java
Install the file Tag16h5.java in /usr/local/april/java/src/april/tag and then use the instructions above to generate the alltags.ps file and individual .png files.