A ROS 2 node for detecting AprilTag fiducial markers in camera images and publishing their poses and metadata.
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.
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.
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.
ROS 2 node for AprilTag detection
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
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.
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.
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.
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`.
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.
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.
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.
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.