Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

AprilTag

The standard visual fiducial marker system for robot localization and pose estimation

License

BSD-2-Clause

Overview

AprilTag is a visual fiducial system developed by the APRIL Robotics Laboratory at the University of Michigan. Printable 2D barcode-style tags are detected in camera images and yield full 6-DOF pose of each tag relative to the camera, with strong robustness to lighting, angle and partial occlusion. The core detector is a small, dependency-free C library designed to run on anything from a desktop GPU workstation to a microcontroller-class CPU.

AprilTag detects square binary fiducial markers in camera images and computes each tag's precise 3D position, orientation and identity relative to the camera. The version 3 detector adds flexible tag layouts (circular and custom grids) and a decode-sharpening step that improves small-tag detection. The library is plain C99 with zero external dependencies, making it trivially embeddable; official wrappers exist for Python, and community-maintained ROS 1/ROS 2 nodes (apriltag_ros) publish tag poses as TF frames. Pre-generated tag families (tag36h11, tag25h9, tagCircle, tagCustom) are distributed in the companion apriltag-imgs repository, and the tag coordinate system and size conventions are precisely documented for calibration-grade use.

Why it matters

AprilTags are the de-facto standard fiducial in robotics research and industry — used for ground-truth rigs, camera and hand-eye calibration, drone landing pads, warehouse robot docking and multi-robot localization. When a robotics paper says 'we tracked the object with fiducials', it almost always means AprilTags.

Problem it solves

Robots often need centimeter-accurate, identity-aware pose estimates of known objects, docks or calibration targets without training a vision model. AprilTag gives a printable target plus a lightweight detector that turns any calibrated camera into a reliable 6-DOF pose sensor.

Key takeaways

  • Detects printable fiducial tags and returns identity plus full 6-DOF pose per tag
  • Plain C99 with no external dependencies — runs from desktop CPUs down to embedded boards
  • Tag families tag36h11, tag25h9, tagCircle and tagCustom cover standard and custom layouts
  • AprilTag 3 decode sharpening improves detection of small and distant tags
  • First-class ROS 1/ROS 2 integration via apriltag_ros publishes tags as TF frames

Who it is for

  • Robotics researchers needing ground-truth or calibration targets
  • ROS developers adding docking or landing alignment
  • Drone and AMR builders
  • Computer-vision students

Limitations

  • Requires a calibrated camera for accurate metric pose
  • Pose accuracy degrades at extreme viewing angles and long range relative to tag size
  • Tags must be physically placed in the environment — not a natural-feature tracker
  • Rolling-shutter cameras and motion blur reduce detection reliability

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.