Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Robot Operating System 2.0
  3. apriltag_ros

apriltag_ros

MITC++

A ROS 2 node for detecting AprilTag fiducial markers in camera images and publishing their poses and metadata.

GitHubGitHub
355 stars166 forks0 contributors

What is apriltag_ros?

AprilTag ROS 2 Node is a ROS 2 package that provides a node for detecting AprilTag fiducial markers in camera images. It uses the AprilTag library to identify tags, estimate their 3D poses relative to the camera, and publish the results as TF transforms and detection messages. This enables robots and autonomous systems to use AprilTags for localization, calibration, and object tracking within the ROS 2 framework.

Target Audience

ROS 2 developers and roboticists working on perception, navigation, or calibration tasks that require reliable marker-based pose estimation. It is particularly useful for teams building autonomous robots, drones, or industrial automation systems that utilize AprilTags.

Value Proposition

Developers choose this node for its seamless integration with ROS 2, configurable detection parameters, and support for efficient intra-process communication. It provides a standardized way to incorporate AprilTag detection into ROS 2 pipelines without reinventing the wheel.

Overview

ROS 2 node for AprilTag detection

Use Cases

Best For

  • Robot localization and navigation using AprilTag landmarks
  • Camera calibration and hand-eye calibration in robotic systems
  • Object tracking and pose estimation in autonomous drones
  • Industrial automation tasks requiring precise marker detection
  • Educational projects teaching ROS 2 and computer vision integration
  • Prototyping perception pipelines for fiducial marker-based applications

Not Ideal For

  • Projects not using ROS 2 or requiring integration with other robotics frameworks like ROS 1 or non-ROS systems
  • Applications needing detection of other fiducial markers such as ArUco or QR codes for compatibility with existing tools
  • Real-time systems with strict latency requirements where ROS 2 message passing adds unacceptable delay
  • Simple proof-of-concept setups where installing and configuring ROS 2 packages and YAML files is overkill

Pros & Cons

Pros

Seamless ROS 2 Integration

Publishes directly to the standard `/tf` topic and uses ROS 2 image transport, making it easy to integrate into existing ROS 2 perception pipelines. Evidence: subscriptions to `image_rect` and `camera_info`, with output on `/tf` and `detections` topics.

Highly Configurable Detection

Allows fine-tuning of detection parameters like threads, decimation, and blur via YAML files, enabling optimization for different environments. README shows parameters such as `detector.threads` and `decimate` with default values.

Selective Tag Publishing

Supports publishing transforms only for specific tag IDs with customizable frame names and sizes, reducing unnecessary data flow. Configuration includes `tag.ids`, `tag.frames`, and `tag.sizes` lists that must match in length.

Efficient Composable Node

Provides a composable node for intra-process communication, minimizing data copies and improving performance in integrated systems. Example launch file demonstrates `use_intra_process_comms` with other nodes like `camera_ros`.

Cons

Requires Rectified Images

Assumes input images are already rectified, necessitating additional camera calibration and preprocessing steps before detection. README states it subscribes to rectified images on `image_rect`, which may not be available out-of-the-box.

Complex Configuration Setup

Setup involves creating and managing YAML configuration files with precise parameter lists, which can be cumbersome and error-prone for new users. Configuration requires matching lengths for `ids`, `frames`, and `sizes`, as noted in the README.

Limited to AprilTag Markers

Only supports AprilTag markers, excluding other popular fiducial systems like ArUco that might be preferred in some applications. Project description and configuration focus solely on AprilTag families such as 36h11.

Dependent on Camera Calibration

Accurate pose estimation relies on correct camera intrinsics from `CameraInfo`, requiring calibrated cameras and up-to-date calibration data. README emphasizes that camera intrinsics `P` are used for pose computation, adding a dependency.

Frequently Asked Questions

Quick Stats

Stars355
Forks166
Contributors0
Open Issues1
Last commit5 days ago
CreatedSince 2017

Tags

#robotics#pose-estimation#camera-calibration#object-tracking#ros2#apriltag#fiducial-markers#computer-vision#autonomous-systems

Built With

Y
YAML
C
C++
R
ROS 2

Included in

Robot Operating System 2.02.1k
Auto-fetched 19 hours ago

Related Projects

navigationnavigation

ROS 2 Navigation Framework and System

Stars4,499
Forks1,881
Last commit1 day ago
slam_toolboxslam_toolbox

Slam Toolbox for lifelong mapping and localization in potentially massive maps with ROS

Stars2,574
Forks698
Last commit1 day ago
darknet_rosdarknet_ros

YOLO ROS: Real-Time Object Detection for ROS

Stars2,438
Forks1,205
Last commit2 years ago
rosbridge_suiterosbridge_suite

Server Implementations of the rosbridge v2 Protocol

Stars1,228
Forks587
Last commit4 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub