isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble isaac_ros_apriltag

Repository Summary

Description NVIDIA-accelerated Apriltag detection and pose estimation.
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_apriltag.git
VCS Type git
VCS Version main
Last Updated 2025-02-28
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
isaac_ros_apriltag 3.2.5

README

Isaac ROS AprilTag

NVIDIA-accelerated AprilTag detection and pose estimation.

image

Overview

Isaac ROS AprilTag contains a ROS 2 package for detection of AprilTags, a type of fiducial marker that provides a point of reference or measure. AprilTag detections are NVIDIA-accelerated for high performance.

image

A common graph of nodes connects from an input camera through rectify and resize to AprilTag. Rectify warps the input camera image into a rectified, undistorted output image; this node may not be necessary if the camera driver provides rectified camera images. Resize is often used to downscale higher resolution cameras into the desired resolution for AprilTags if needed. The input resolution to AprilTag is selected by the required detection distance for the application, as a minimum number of pixels are required to perform an AprilTag detection and classification. For example, an 8mp input image of 3840×2160 may be much larger than necessary and a 4:1 downscale to 1920x1080 could make more efficient use of compute resources and satisfy the required detection distance of the application. Each of the green nodes in the above diagram is NVIDIA accelerated, allowing for a high-performance compute graph from Argus Camera to ApriTag. For USB and Ethernet cameras, the graph is accelerated from Rectify through AprilTag detection.

image

As illustrated above, detections are provided in an output array for the number of AprilTag detections in the input image. Each entry in the array contains the ID (two-dimensional bar code) for the AprilTag, the four corners ((x0, y0), (x1, y1), (x2, y2), (x3, y3)) and center (x, y) of the input image, and the pose of the AprilTag.

[!Note] This package provides the option through the backend parameter to leverage either the GPU or CPU on all NVIDIA-powered platforms or PVA on Jetson devices for AprilTag detection.

[!Note] This package is a NVIDIA-accelerated drop-in replacement for the CPU version of ROS AprilTag

[!Note] For more information, including the paper and the reference CPU implementation, refer to the AprilTag page

Isaac ROS NITROS Acceleration

This package is powered by NVIDIA Isaac Transport for ROS (NITROS), which leverages type adaptation and negotiation to optimize message formats and dramatically accelerate communication between participating nodes.

Performance

Sample Graph

Input Size

AGX Orin

Orin NX

Orin Nano Super 8GB

x86_64 w/ RTX 4090

AprilTag Node



720p



178 fps


6.3 ms @ 30Hz

116 fps


9.4 ms @ 30Hz

123 fps


8.6 ms @ 30Hz

596 fps


0.86 ms @ 30Hz

AprilTag Graph



720p



178 fps


9.1 ms @ 30Hz

111 fps


11 ms @ 30Hz

120 fps


11 ms @ 30Hz

596 fps


1.4 ms @ 30Hz


Documentation

Please visit the Isaac ROS Documentation to learn how to use this repository.


Packages

Latest

Update 2024-12-10: Added PVA and CPU backends for detector with support for new tag families

CONTRIBUTING

Isaac ROS Contribution Rules

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).


isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble

isaac_ros_apriltag repository

gpu ros nvidia jetson ros2 apriltag fiducial-marker ros2-humble