Skip to main content

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 TopicInterfaceDescription
imagesensor_msgs/ImageInput camera stream.
camera_infosensor_msgs/CameraInfoInput camera intrinsics stream.

Published Topics:

ROS TopicTypeDescription
tag_detectionsisaac_ros_apriltag_interfaces/AprilTagDetectionArrayArray of AprilTag detection messages.
tftf2_msgs/TFMessagePoses 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

  1. Modify pixel_format in /usbcam/src/usb_cam/config/params_1.yaml.
  1. Adjust frame_id (default: camera).
  2. 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.

Loading Comments...