AprilTag

AprilTags on robots

Project AprilTags Visual Fiducial System
License BSD
Bugs/Discussion mailman page
GitHub Repo AprilTags
iOS Download AprilTag

AprilTag is a visual fiducial system, useful for a wide variety of tasks including augmented reality, robotics, and camera calibration. Targets can be created from an ordinary printer, and the AprilTag detection software computes the precise 3D position, orientation, and identity of the tags relative to the camera. The AprilTag library is implemented in C with no external dependencies. It is designed to be easily included in other applications, as well as be portable to embedded devices. Real-time performance can be achieved even on cell-phone grade processors.

Technical Description

The fiducial design and coding system are based on a near-optimal lexicographic coding system, and the detection software is robust to lighting conditions and view angle. This system is described in more detail in our AprilTag papers (AprilTag: A robust and flexible visual fiducial system, ICRA 2011; AprilTag 2: Efficient and robust fiducial detection, IROS 2016; Flexible Layouts for Fiducial Tags, under review). One useful application of AprilTags is camera calibration (AprilCal: Assisted and repeatable camera calibration, IROS 2013).

Various AprilTag families

AprilTags are conceptually similar to QR Codes, in that they are a type of two-dimensional bar code. However, they are designed to encode far smaller data payloads (between 4 and 12 bits), allowing them to be detected more robustly and from longer ranges. Further, they are designed for high localization accuracy— you can compute the precise 3D position of the AprilTag with respect to the camera.

ARToolkit is very similar in objective to AprilTags, though as our technical papers show, AprilTag outperforms ARToolkit in terms of detection rates and accuracy.

User Information

Pre-generated tag families

Each set includes individual PNGs of each tag, a mosaic PNG containing every tag, and a ready-to-print postscript file with one tag per page. All the files can be found on our github: apriltag-imgs.

Generating tag families

The code for generating new families and instructions for using it can be found on our github: apriltag-generation.

C Language Implementation

The C implementation is intended for software developers wanting to integrate AprilTags into their application. It has no external dependencies, but does not include image acquisition support.

Java Language Implementation

The previous Java implementation has been deprecated. The current C version can be called via JNI.

iOS Support Notes

The iOS version supports transmitting tag detections over UDP to another machine for additional processing. Data is transmitted on UDP port 7709, and an example decoder (in Java) is available here: AprilTagReceive.java

Note that conversion of tag coordinates to absolute positions requires you to calibrate your iPhone camera. (Approximate calibrations for common iOS devices coming soon!)

iOS Privacy Statement

The iOS version does not collect or send information of any kind to anyone.

Translations

AprilTag по-русски - https://mygpstools.com/apriltag