Tutorial for AprilTag Detection with a USB Camera

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/concepts/fiducials/apriltag/rviz_usb_cam.png/

Overview

This tutorial walks you through a graph to estimate the 6DOF pose of AprilTags using images streamed from a USB camera.

Tutorial Walkthrough

  1. Complete the Isaac ROS AprilTag Quickstart section.

  2. Calibrate the camera following instructions in the camera calibration tutorial. For step 11, use isaac_ros_apriltag in place of <isaac_ros_package>

  3. Clone the ROS 2 usb_cam package

    cd ${ISAAC_ROS_WS}/src && git clone -b ros2 https://github.com/ros-drivers/usb_cam
    
  4. Launch the Docker container using the run_dev.sh script:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
        ./scripts/run_dev.sh
    
  5. Inside the container, build and source the workspace:

    cd /workspaces/isaac_ros-dev && \
      colcon build --symlink-install && \
      source install/setup.bash
    
  6. Finally, launch the provided launch file:

    Warning

    Make sure to set the camera_width and camera_height arguments based on your camera’s resolution.

    ros2 launch isaac_ros_apriltag isaac_ros_apriltag_usb_cam.launch.py camera_width:=1280 camera_height:=720
    
  7. Launch a second terminal inside the container

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
        ./scripts/run_dev.sh
    
  8. Run RViz2 using the preset config file

    rviz2 -d $(ros2 pkg prefix isaac_ros_apriltag --share)/rviz/usb_cam.rviz
    

Note

Your camera vendor may offer a specific ROS 2-compatible camera driver package and you can use that in place of the usb_cam package.

Warning

If you are using a different camera driver package ensure that the camera stream publishes Image and CameraInfo pairs to the topics /image and /camera_info, respectively.