Isaac ROS AprilTag
Prerequisites
Before deploying AprilTag, ensure that the Isaac ROS basic environment has been successfully set up on your reComputer Installation Guide. If ROS2 is not installed, refer to this document.
Isaac ROS AprilTag Package Topics
Subscribed Topics:
ROS Topic | Interface | Description |
---|---|---|
image | sensor_msgs/Image | Input camera stream. |
camera_info | sensor_msgs/CameraInfo | Input camera intrinsics stream. |
Published Topics:
ROS Topic | Type | Description |
---|---|---|
tag_detections | isaac_ros_apriltag_interfaces/AprilTagDetectionArray | Array of AprilTag detection messages. |
tf | tf2_msgs/TFMessage | Poses of detected AprilTags (TagFamily:ID) relative to the camera's frame_id. |
1. Isaac ROS AprilTag Environment Setup
Create Workspace (Skip if already done)
mkdir -p ~/workspaces/isaac_ros-dev/src
echo "export ISAAC_ROS_WS=${HOME}/workspaces/isaac_ros-dev/" >> ~/.bashrc
source ~/.bashrc
Clone Packages and ROS Bag Data
cd ${ISAAC_ROS_WS}/src
git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_apriltag.git
cd ${ISAAC_ROS_WS}/src/isaac_ros_apriltag && \
git lfs pull -X "" -I "resources/rosbags/quickstart.bag"
Enter Docker Container
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh
2. Testing with ROS Bag Data
Install AprilTag Package (Inside Docker)
sudo apt-get install -y ros-humble-isaac-ros-apriltag
Launch AprilTag Node
ros2 launch isaac_ros_apriltag isaac_ros_apriltag.launch.py
Open New Terminal (Inside Docker)
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh
Play ROS Bag
ros2 bag play --loop src/isaac_ros_apriltag/resources/rosbags/quickstart.bag
Visualize in RViz2
Open RViz2 in a local terminal and add Image and TF components:
ros2 run rviz2 rviz2

3. Testing with USB Camera
Ensure ROS2 is installed locally.
Create USB Camera Workspace
cd ~/
mkdir -p usbcam/src
cd usbcam/src
Clone and Build usb_cam
Package
git clone https://github.com/ros-drivers/usb_cam.git
cd ..
colcon build
echo "source ~/usbcam/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
Check Camera Format
Connect the camera and verify its device path (e.g., /dev/video*
). Test with:
cd ~/usbcam
ros2 run usb_cam usb_cam_node_exe

Supported Pixel Formats:
rgb8
, yuyv
, yuyv2rgb
, uyvy
, uyvy2rgb
, m4202rgb
, mono8
, mono16
, y102mono8
, raw_mjpeg
Configure Camera
- Modify
pixel_format
in/usbcam/src/usb_cam/config/params_1.yaml
.

- Adjust
frame_id
(default:camera
). - Remap topic names in
/usbcam/src/usb_cam/launch/camera_config.py
(lines 58 and 62) to match AprilTag requirements (/image
and/camera_info
).

Rebuild and Launch Camera
cd ~/usbcam
colcon build
ros2 launch usb_cam camera.launch.py
Run AprilTag Node (Inside Docker)
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh
ros2 launch isaac_ros_apriltag isaac_ros_apriltag.launch.py
Visualize in RViz2
Set Fixed Frame to the camera’s frame_id
, add an Image component subscribed to /image
, and enable TF.
Note: This test uses a 200mm × 200mm AprilTag.

Tech Support & Product Discussion
Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.