[Documentation] [TitleIndex] [WordIndex

Package Summary

A ROS wrapper of the AprilTag 3 visual fiducial detection algorithm. Provides full access to the core AprilTag 3 algorithm's customizations and makes the tag detection image and detected tags' poses available over ROS topics (including tf). The core AprilTag 3 algorithm is extended to allow the detection of tag bundles and a bundle calibration script is provided (bundle detection is more accurate than single tag detection). Continuous (camera image stream) and single image detector nodes are available.

Package Summary

A ROS wrapper of the AprilTag 3 visual fiducial detection algorithm. Provides full access to the core AprilTag 3 algorithm's customizations and makes the tag detection image and detected tags' poses available over ROS topics (including tf). The core AprilTag 3 algorithm is extended to allow the detection of tag bundles and a bundle calibration script is provided (bundle detection is more accurate than single tag detection). Continuous (camera image stream) and single image detector nodes are available.

Overview

io_diagram.png

The package works as shown in the above figure. The following default input topics are subscribed to (which can be remapped based on your needs):

The behavior of the ROS wrapper is fully defined by the two configuration files config/tags.yaml (which defines the tags and tag bundles to look for) and config/settings.yaml (which configures the core AprilTag 2 algorithm itself). Then, the following topics are output:

Tutorials

The tutorials teach you how to operate the wrapper. The main idea is to fill out config/tags.yaml with the standalone tags and tag bundles which you would like to detect (bundles potentially require a calibration process) and config/settings.yaml with the wrapper and AprilTag 2 core parameters. Then, you simply run the continuous or single image detector. The tutorials walk you through how to do this.

Citing

While this ROS wrapper is original code originating from the author's master thesis, the core AprilTag 2 algorithm in apriltags2/ is wholly the work of the APRIL Robotics Lab at The University of Michigan. If you use this package, please kindly cite:

@mastersthesis{malyuta:2017mt,
  author = {Danylo Malyuta},
  title = {{Guidance, Navigation, Control and Mission Logic for Quadrotor Full-cycle Autonomy}},
  language = {english},
  type = {Master thesis},
  school = {Jet Propulsion Laboratory},
  address = {4800 Oak Grove Drive, Pasadena, CA 91109, USA},
  month = dec,
  year = {2017}
}
@inproceedings{Wang2016,
  author = {Wang, John and Olson, Edwin},
  booktitle = {2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  doi = {10.1109/IROS.2016.7759617},
  isbn = {978-1-5090-3762-9},
  month = {oct},
  pages = {4193--4198},
  publisher = {IEEE},
  title = {{AprilTag 2: Efficient and robust fiducial detection}},
  year = {2016}
}

Nodes

apriltags2_ros

Detector for a continuous image (i.e. video) stream.

Subscribed Topics

image_rect (sensor_msgs/Image) camera_info (sensor_msgs/CameraInfo)

Published Topics

tag_detections (apriltags2_ros/AprilTagDetectionArray) tag_detections_image (sensor_msgs/Image)

Parameters

tag_family (string, default: tag36h11) tag_border (int, default: 1) tag_threads (int, default: 4) tag_decimate (double, default: 1.0) tag_blur (double, default: 0.0) tag_refine_edges (int, default: 1) tag_refine_decode (int, default: 0) tag_refine_pose (int, default: 0) publish_tf (bool, default: false) camera_frame (string, default: camera) publish_tag_detections_image (bool, default: false)

Provided tf Transforms

tagcamera

apriltags2_ros_single_image_server

Detector of tags in a single provided image (via a ROS service which it serves). This is useful for e.g. analyzing a single frame of a video stream (which you maybe think had a faulty tag detection). Starting with, as a baseline, the same description as the apriltags2_ros node, this node does not subscribe to any topics, does not output the /tag_detections_image topic (the output image is saved in an image save filepath as described below) and does not use the parameters camera_frame and publish_tag_detections_image. The information below describes additional features of this node.

Services

single_image_tag_detection (apriltags2_ros/AnalyzeSingleImage)

apriltags2_ros_single_image_client

A client for the single image tag detection service provided by the apriltags2_ros_single_image_server node. This node is developed specifically for interacting with this service. Starting with, as a baseline, the same description as the apriltags2_ros node, this node does not subscribe to any topics, does not publish any topics and does not use the parameters camera_frame and publish_tag_detections_image. The information below describes additional features of this node.

Services Called

single_image_tag_detection (apriltags2_ros/AnalyzeSingleImage)

Parameters

image_load_path (string) image_save_path (string) fx (double) fy (double) cx (double) cy (double)

2019-12-14 12:25