-
 

Package Summary

Tags No category tags.
Version 3.2.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/christianrauch/apriltag_ros.git
VCS Type git
VCS Version master
Last Updated 2024-07-07
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

AprilTag detection node

Additional Links

No additional links.

Maintainers

  • Christian Rauch

Authors

No additional authors.

AprilTag ROS2 Node

This ROS2 node uses the AprilTag library to detect AprilTags in images and publish their pose, id and additional metadata.

For more information on AprilTag, the paper and the reference implementation: https://april.eecs.umich.edu/software/apriltag.html

Topics

Subscriptions:

The node subscribes via a image_transport::CameraSubscriber to rectified images on topic image_rect. The set of topic names depends on the type of image transport (parameter image_transport) selected (raw or compressed):

  • image_rect (raw, type: sensor_msgs/msg/Image)
  • image_rect/compressed (compressed, type: sensor_msgs/msg/CompressedImage)
  • camera_info (type: sensor_msgs/msg/CameraInfo)

Publisher:

  • /tf (type: tf2_msgs/msg/TFMessage)
  • detections (type: apriltag_msgs/msg/AprilTagDetectionArray)

The camera intrinsics P in CameraInfo are used to compute the marker tag pose T from the homography H. The image and the camera intrinsics need to have the same timestamp.

The tag poses are published on the standard TF topic /tf with the header set to the image header and child_frame_id set to either tag<family>:<id> (e.g. “tag36h11:0”) or the frame name selected via configuration file. Additional information about detected tags is published as AprilTagDetectionArray message, which contains the original homography matrix, the hamming distance and the decision_margin of the detection.

Configuration

The node is configured via a yaml configurations file. For the complete ROS yaml parameter file syntax, see: https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser.

The configuration file has the format:

apriltag:                 # node name
  ros__parameters:
    # setup (defaults)
    image_transport: raw  # image format: "raw" or "compressed"
    family: 36h11         # tag family name: 16h5, 25h9, 36h11
    size: 1.0             # default tag edge size in meter
    profile: false        # print profiling information to stdout

    # tuning of detection (defaults)
    max_hamming: 0        # maximum allowed hamming distance (corrected bits)
    detector:
      threads: 1          # number of threads
      decimate: 2.0       # decimate resolution for quad detection
      blur: 0.0           # sigma of Gaussian blur for quad detection
      refine: 1           # snap to strong gradients
      sharpening: 0.25    # sharpening of decoded images
      debug: 0            # write additional debugging images to current working directory

    # (optional) list of tags
    # If defined, 'frames' and 'sizes' must have the same length as 'ids'.
    tag:
      ids:    [<id1>, <id2>, ...]         # tag IDs for which to publish transform
      frames: [<frame1>, <frame2>, ...]   # frame names
      sizes:  [<size1>, <size1>, ...]     # tag-specific edge size, overrides the default 'size'

The family (string) defines the tag family for the detector and must be one of 16h5, 25h9, 36h11, Circle21h7, Circle49h12, Custom48h12, Standard41h12, Standard52h13. size (float) is the tag edge size in meters, assuming square markers.

Instead of publishing all tag poses, the list tag.ids can be used to only publish selected tag IDs. Each tag can have an associated child frame name in tag.frames and a tag specific size in tag.sizes. These lists must either have the same length as tag.ids or may be empty. In this case, a default frame name of the form tag<family>:<id> and the default tag edge size size will be used.

The remaining parameters are set to the their default values from the library. See apriltag.h for a more detailed description of their function.

See tags_36h11.yaml for an example configuration that publishes specific tag poses of the 36h11 family.

Nodes

Standalone Executable

The apriltag_node executable can be launched with topic remappings and a configuration file:

ros2 run apriltag_ros apriltag_node --ros-args \
    -r image_rect:=/camera/image \
    -r camera_info:=/camera/camera_info \
    --params-file `ros2 pkg prefix apriltag_ros`/share/apriltag_ros/cfg/tags_36h11.yaml

Composable Node

For more efficient intraprocess communication, a composable node is provided:

$ ros2 component types
apriltag_ros
  AprilTagNode

This AprilTagNode component can be loaded with other nodes into a “container node” process where they used shared-memory communication to prevent unnecessary data copies. The example launch file v4l2_36h11.launch.yml loads the AprilTagNode component together with the v4l2_camera::V4L2Camera component from the v4l2_camera package (sudo apt install ros-$ROS_DISTRO-v4l2-camera) into one container and enables use_intra_process_comms for both:

ros2 launch apriltag_ros v4l2_36h11.launch.yml

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged apriltag_ros at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 3.2.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/christianrauch/apriltag_ros.git
VCS Type git
VCS Version master
Last Updated 2024-07-07
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

AprilTag detection node

Additional Links

No additional links.

Maintainers

  • Christian Rauch

Authors

No additional authors.

AprilTag ROS2 Node

This ROS2 node uses the AprilTag library to detect AprilTags in images and publish their pose, id and additional metadata.

For more information on AprilTag, the paper and the reference implementation: https://april.eecs.umich.edu/software/apriltag.html

Topics

Subscriptions:

The node subscribes via a image_transport::CameraSubscriber to rectified images on topic image_rect. The set of topic names depends on the type of image transport (parameter image_transport) selected (raw or compressed):

  • image_rect (raw, type: sensor_msgs/msg/Image)
  • image_rect/compressed (compressed, type: sensor_msgs/msg/CompressedImage)
  • camera_info (type: sensor_msgs/msg/CameraInfo)

Publisher:

  • /tf (type: tf2_msgs/msg/TFMessage)
  • detections (type: apriltag_msgs/msg/AprilTagDetectionArray)

The camera intrinsics P in CameraInfo are used to compute the marker tag pose T from the homography H. The image and the camera intrinsics need to have the same timestamp.

The tag poses are published on the standard TF topic /tf with the header set to the image header and child_frame_id set to either tag<family>:<id> (e.g. “tag36h11:0”) or the frame name selected via configuration file. Additional information about detected tags is published as AprilTagDetectionArray message, which contains the original homography matrix, the hamming distance and the decision_margin of the detection.

Configuration

The node is configured via a yaml configurations file. For the complete ROS yaml parameter file syntax, see: https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser.

The configuration file has the format:

apriltag:                 # node name
  ros__parameters:
    # setup (defaults)
    image_transport: raw  # image format: "raw" or "compressed"
    family: 36h11         # tag family name: 16h5, 25h9, 36h11
    size: 1.0             # default tag edge size in meter
    profile: false        # print profiling information to stdout

    # tuning of detection (defaults)
    max_hamming: 0        # maximum allowed hamming distance (corrected bits)
    detector:
      threads: 1          # number of threads
      decimate: 2.0       # decimate resolution for quad detection
      blur: 0.0           # sigma of Gaussian blur for quad detection
      refine: 1           # snap to strong gradients
      sharpening: 0.25    # sharpening of decoded images
      debug: 0            # write additional debugging images to current working directory

    # (optional) list of tags
    # If defined, 'frames' and 'sizes' must have the same length as 'ids'.
    tag:
      ids:    [<id1>, <id2>, ...]         # tag IDs for which to publish transform
      frames: [<frame1>, <frame2>, ...]   # frame names
      sizes:  [<size1>, <size1>, ...]     # tag-specific edge size, overrides the default 'size'

The family (string) defines the tag family for the detector and must be one of 16h5, 25h9, 36h11, Circle21h7, Circle49h12, Custom48h12, Standard41h12, Standard52h13. size (float) is the tag edge size in meters, assuming square markers.

Instead of publishing all tag poses, the list tag.ids can be used to only publish selected tag IDs. Each tag can have an associated child frame name in tag.frames and a tag specific size in tag.sizes. These lists must either have the same length as tag.ids or may be empty. In this case, a default frame name of the form tag<family>:<id> and the default tag edge size size will be used.

The remaining parameters are set to the their default values from the library. See apriltag.h for a more detailed description of their function.

See tags_36h11.yaml for an example configuration that publishes specific tag poses of the 36h11 family.

Nodes

Standalone Executable

The apriltag_node executable can be launched with topic remappings and a configuration file:

ros2 run apriltag_ros apriltag_node --ros-args \
    -r image_rect:=/camera/image \
    -r camera_info:=/camera/camera_info \
    --params-file `ros2 pkg prefix apriltag_ros`/share/apriltag_ros/cfg/tags_36h11.yaml

Composable Node

For more efficient intraprocess communication, a composable node is provided:

$ ros2 component types
apriltag_ros
  AprilTagNode

This AprilTagNode component can be loaded with other nodes into a “container node” process where they used shared-memory communication to prevent unnecessary data copies. The example launch file v4l2_36h11.launch.yml loads the AprilTagNode component together with the v4l2_camera::V4L2Camera component from the v4l2_camera package (sudo apt install ros-$ROS_DISTRO-v4l2-camera) into one container and enables use_intra_process_comms for both:

ros2 launch apriltag_ros v4l2_36h11.launch.yml

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged apriltag_ros at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 3.2.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/christianrauch/apriltag_ros.git
VCS Type git
VCS Version master
Last Updated 2024-07-07
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

AprilTag detection node

Additional Links

No additional links.

Maintainers

  • Christian Rauch

Authors

No additional authors.

AprilTag ROS2 Node

This ROS2 node uses the AprilTag library to detect AprilTags in images and publish their pose, id and additional metadata.

For more information on AprilTag, the paper and the reference implementation: https://april.eecs.umich.edu/software/apriltag.html

Topics

Subscriptions:

The node subscribes via a image_transport::CameraSubscriber to rectified images on topic image_rect. The set of topic names depends on the type of image transport (parameter image_transport) selected (raw or compressed):

  • image_rect (raw, type: sensor_msgs/msg/Image)
  • image_rect/compressed (compressed, type: sensor_msgs/msg/CompressedImage)
  • camera_info (type: sensor_msgs/msg/CameraInfo)

Publisher:

  • /tf (type: tf2_msgs/msg/TFMessage)
  • detections (type: apriltag_msgs/msg/AprilTagDetectionArray)

The camera intrinsics P in CameraInfo are used to compute the marker tag pose T from the homography H. The image and the camera intrinsics need to have the same timestamp.

The tag poses are published on the standard TF topic /tf with the header set to the image header and child_frame_id set to either tag<family>:<id> (e.g. “tag36h11:0”) or the frame name selected via configuration file. Additional information about detected tags is published as AprilTagDetectionArray message, which contains the original homography matrix, the hamming distance and the decision_margin of the detection.

Configuration

The node is configured via a yaml configurations file. For the complete ROS yaml parameter file syntax, see: https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser.

The configuration file has the format:

apriltag:                 # node name
  ros__parameters:
    # setup (defaults)
    image_transport: raw  # image format: "raw" or "compressed"
    family: 36h11         # tag family name: 16h5, 25h9, 36h11
    size: 1.0             # default tag edge size in meter
    profile: false        # print profiling information to stdout

    # tuning of detection (defaults)
    max_hamming: 0        # maximum allowed hamming distance (corrected bits)
    detector:
      threads: 1          # number of threads
      decimate: 2.0       # decimate resolution for quad detection
      blur: 0.0           # sigma of Gaussian blur for quad detection
      refine: 1           # snap to strong gradients
      sharpening: 0.25    # sharpening of decoded images
      debug: 0            # write additional debugging images to current working directory

    # (optional) list of tags
    # If defined, 'frames' and 'sizes' must have the same length as 'ids'.
    tag:
      ids:    [<id1>, <id2>, ...]         # tag IDs for which to publish transform
      frames: [<frame1>, <frame2>, ...]   # frame names
      sizes:  [<size1>, <size1>, ...]     # tag-specific edge size, overrides the default 'size'

The family (string) defines the tag family for the detector and must be one of 16h5, 25h9, 36h11, Circle21h7, Circle49h12, Custom48h12, Standard41h12, Standard52h13. size (float) is the tag edge size in meters, assuming square markers.

Instead of publishing all tag poses, the list tag.ids can be used to only publish selected tag IDs. Each tag can have an associated child frame name in tag.frames and a tag specific size in tag.sizes. These lists must either have the same length as tag.ids or may be empty. In this case, a default frame name of the form tag<family>:<id> and the default tag edge size size will be used.

The remaining parameters are set to the their default values from the library. See apriltag.h for a more detailed description of their function.

See tags_36h11.yaml for an example configuration that publishes specific tag poses of the 36h11 family.

Nodes

Standalone Executable

The apriltag_node executable can be launched with topic remappings and a configuration file:

ros2 run apriltag_ros apriltag_node --ros-args \
    -r image_rect:=/camera/image \
    -r camera_info:=/camera/camera_info \
    --params-file `ros2 pkg prefix apriltag_ros`/share/apriltag_ros/cfg/tags_36h11.yaml

Composable Node

For more efficient intraprocess communication, a composable node is provided:

$ ros2 component types
apriltag_ros
  AprilTagNode

This AprilTagNode component can be loaded with other nodes into a “container node” process where they used shared-memory communication to prevent unnecessary data copies. The example launch file v4l2_36h11.launch.yml loads the AprilTagNode component together with the v4l2_camera::V4L2Camera component from the v4l2_camera package (sudo apt install ros-$ROS_DISTRO-v4l2-camera) into one container and enables use_intra_process_comms for both:

ros2 launch apriltag_ros v4l2_36h11.launch.yml

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged apriltag_ros at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 3.2.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/christianrauch/apriltag_ros.git
VCS Type git
VCS Version master
Last Updated 2024-07-07
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

AprilTag detection node

Additional Links

No additional links.

Maintainers

  • Christian Rauch

Authors

No additional authors.

AprilTag ROS2 Node

This ROS2 node uses the AprilTag library to detect AprilTags in images and publish their pose, id and additional metadata.

For more information on AprilTag, the paper and the reference implementation: https://april.eecs.umich.edu/software/apriltag.html

Topics

Subscriptions:

The node subscribes via a image_transport::CameraSubscriber to rectified images on topic image_rect. The set of topic names depends on the type of image transport (parameter image_transport) selected (raw or compressed):

  • image_rect (raw, type: sensor_msgs/msg/Image)
  • image_rect/compressed (compressed, type: sensor_msgs/msg/CompressedImage)
  • camera_info (type: sensor_msgs/msg/CameraInfo)

Publisher:

  • /tf (type: tf2_msgs/msg/TFMessage)
  • detections (type: apriltag_msgs/msg/AprilTagDetectionArray)

The camera intrinsics P in CameraInfo are used to compute the marker tag pose T from the homography H. The image and the camera intrinsics need to have the same timestamp.

The tag poses are published on the standard TF topic /tf with the header set to the image header and child_frame_id set to either tag<family>:<id> (e.g. “tag36h11:0”) or the frame name selected via configuration file. Additional information about detected tags is published as AprilTagDetectionArray message, which contains the original homography matrix, the hamming distance and the decision_margin of the detection.

Configuration

The node is configured via a yaml configurations file. For the complete ROS yaml parameter file syntax, see: https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser.

The configuration file has the format:

apriltag:                 # node name
  ros__parameters:
    # setup (defaults)
    image_transport: raw  # image format: "raw" or "compressed"
    family: 36h11         # tag family name: 16h5, 25h9, 36h11
    size: 1.0             # default tag edge size in meter
    profile: false        # print profiling information to stdout

    # tuning of detection (defaults)
    max_hamming: 0        # maximum allowed hamming distance (corrected bits)
    detector:
      threads: 1          # number of threads
      decimate: 2.0       # decimate resolution for quad detection
      blur: 0.0           # sigma of Gaussian blur for quad detection
      refine: 1           # snap to strong gradients
      sharpening: 0.25    # sharpening of decoded images
      debug: 0            # write additional debugging images to current working directory

    # (optional) list of tags
    # If defined, 'frames' and 'sizes' must have the same length as 'ids'.
    tag:
      ids:    [<id1>, <id2>, ...]         # tag IDs for which to publish transform
      frames: [<frame1>, <frame2>, ...]   # frame names
      sizes:  [<size1>, <size1>, ...]     # tag-specific edge size, overrides the default 'size'

The family (string) defines the tag family for the detector and must be one of 16h5, 25h9, 36h11, Circle21h7, Circle49h12, Custom48h12, Standard41h12, Standard52h13. size (float) is the tag edge size in meters, assuming square markers.

Instead of publishing all tag poses, the list tag.ids can be used to only publish selected tag IDs. Each tag can have an associated child frame name in tag.frames and a tag specific size in tag.sizes. These lists must either have the same length as tag.ids or may be empty. In this case, a default frame name of the form tag<family>:<id> and the default tag edge size size will be used.

The remaining parameters are set to the their default values from the library. See apriltag.h for a more detailed description of their function.

See tags_36h11.yaml for an example configuration that publishes specific tag poses of the 36h11 family.

Nodes

Standalone Executable

The apriltag_node executable can be launched with topic remappings and a configuration file:

ros2 run apriltag_ros apriltag_node --ros-args \
    -r image_rect:=/camera/image \
    -r camera_info:=/camera/camera_info \
    --params-file `ros2 pkg prefix apriltag_ros`/share/apriltag_ros/cfg/tags_36h11.yaml

Composable Node

For more efficient intraprocess communication, a composable node is provided:

$ ros2 component types
apriltag_ros
  AprilTagNode

This AprilTagNode component can be loaded with other nodes into a “container node” process where they used shared-memory communication to prevent unnecessary data copies. The example launch file v4l2_36h11.launch.yml loads the AprilTagNode component together with the v4l2_camera::V4L2Camera component from the v4l2_camera package (sudo apt install ros-$ROS_DISTRO-v4l2-camera) into one container and enables use_intra_process_comms for both:

ros2 launch apriltag_ros v4l2_36h11.launch.yml

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged apriltag_ros at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 3.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/AprilRobotics/apriltag_ros.git
VCS Type git
VCS Version master
Last Updated 2023-03-27
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

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.

Additional Links

Maintainers

  • Danylo Malyuta
  • Wolfgang Merkt

Authors

  • Danylo Malyuta
README
No README found. See repository README.
CHANGELOG

Changelog for package apriltag_ros

3.2.1 (2022-04-05)

  • Fixed propagation of apriltag and Eigen headers and libraries (#124)
  • Drop old C++11 as it breaks with new log4cxx.
  • Contributors: Jochen Sprickerhof, Remo Diethelm, Wolfgang Merkt

3.2.0 (2022-03-10)

  • Add transport hint option (#108)
  • Move to using the apriltag CMake target (#104)
  • Set the tag's parent frame to the camera optical frame (#101)
  • Fix bug in K matrix in single_image_client (#103)
  • Add configurable max_hamming_distance for the AprilTag Detector (#93)
  • Introduce lazy processing for ContinuousDetector (#80)
  • Contributors: Akshay Prasad, Amal Nanavati, Christian Rauch, Hongzhuo Liang, Wolfgang Merkt

3.1.2 (2020-07-15)

  • Add support for tagCircle21h7, tagCircle49h12 (#69)
  • Add support for tagCustom48h12 (#65)
  • Contributors: Anthony Biviano, Kyle Saltmarsh, Wolfgang Merkt, kai wu

3.1.1 (2019-10-07)

  • Add support for tagStandard41h12 and tagStandard52h13 (#63, #59).
  • Add gray image input support (#58).
  • Contributors: Alexander Reimann, Moritz Zimmermann, Samuel Bachmann, Wolfgang Merkt

3.1.0 (2019-05-25)

  • Prepare for release (3.1) and fix catkin_lint errors
  • Upgrade to AprilTag 3, fix installation, and performance improvements (#43) Upgrade to AprilTag 3, fix installation, and performance improvements
  • Rename package to apriltag_ros
  • Contributors: Wolfgang Merkt

1.0.0 (2018-05-14)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

Plugins

Recent questions tagged apriltag_ros at Robotics Stack Exchange

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 3.2.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/christianrauch/apriltag2_node.git
VCS Type git
VCS Version master
Last Updated 2024-07-07
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

AprilTag detection node

Additional Links

No additional links.

Maintainers

  • Christian Rauch

Authors

No additional authors.

AprilTag ROS2 Node

This ROS2 node uses the AprilTag library to detect AprilTags in images and publish their pose, id and additional metadata.

For more information on AprilTag, the paper and the reference implementation: https://april.eecs.umich.edu/software/apriltag.html

Topics

Subscriptions:

The node subscribes via a image_transport::CameraSubscriber to rectified images on topic image_rect. The set of topic names depends on the type of image transport (parameter image_transport) selected (raw or compressed):

  • image_rect (raw, type: sensor_msgs/msg/Image)
  • image_rect/compressed (compressed, type: sensor_msgs/msg/CompressedImage)
  • camera_info (type: sensor_msgs/msg/CameraInfo)

Publisher:

  • /tf (type: tf2_msgs/msg/TFMessage)
  • detections (type: apriltag_msgs/msg/AprilTagDetectionArray)

The camera intrinsics P in CameraInfo are used to compute the marker tag pose T from the homography H. The image and the camera intrinsics need to have the same timestamp.

The tag poses are published on the standard TF topic /tf with the header set to the image header and child_frame_id set to either tag<family>:<id> (e.g. “tag36h11:0”) or the frame name selected via configuration file. Additional information about detected tags is published as AprilTagDetectionArray message, which contains the original homography matrix, the hamming distance and the decision_margin of the detection.

Configuration

The node is configured via a yaml configurations file. For the complete ROS yaml parameter file syntax, see: https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser.

The configuration file has the format:

apriltag:                 # node name
  ros__parameters:
    # setup (defaults)
    image_transport: raw  # image format: "raw" or "compressed"
    family: 36h11         # tag family name: 16h5, 25h9, 36h11
    size: 1.0             # default tag edge size in meter
    profile: false        # print profiling information to stdout

    # tuning of detection (defaults)
    max_hamming: 0        # maximum allowed hamming distance (corrected bits)
    detector:
      threads: 1          # number of threads
      decimate: 2.0       # decimate resolution for quad detection
      blur: 0.0           # sigma of Gaussian blur for quad detection
      refine: 1           # snap to strong gradients
      sharpening: 0.25    # sharpening of decoded images
      debug: 0            # write additional debugging images to current working directory

    # (optional) list of tags
    # If defined, 'frames' and 'sizes' must have the same length as 'ids'.
    tag:
      ids:    [<id1>, <id2>, ...]         # tag IDs for which to publish transform
      frames: [<frame1>, <frame2>, ...]   # frame names
      sizes:  [<size1>, <size1>, ...]     # tag-specific edge size, overrides the default 'size'

The family (string) defines the tag family for the detector and must be one of 16h5, 25h9, 36h11, Circle21h7, Circle49h12, Custom48h12, Standard41h12, Standard52h13. size (float) is the tag edge size in meters, assuming square markers.

Instead of publishing all tag poses, the list tag.ids can be used to only publish selected tag IDs. Each tag can have an associated child frame name in tag.frames and a tag specific size in tag.sizes. These lists must either have the same length as tag.ids or may be empty. In this case, a default frame name of the form tag<family>:<id> and the default tag edge size size will be used.

The remaining parameters are set to the their default values from the library. See apriltag.h for a more detailed description of their function.

See tags_36h11.yaml for an example configuration that publishes specific tag poses of the 36h11 family.

Nodes

Standalone Executable

The apriltag_node executable can be launched with topic remappings and a configuration file:

ros2 run apriltag_ros apriltag_node --ros-args \
    -r image_rect:=/camera/image \
    -r camera_info:=/camera/camera_info \
    --params-file `ros2 pkg prefix apriltag_ros`/share/apriltag_ros/cfg/tags_36h11.yaml

Composable Node

For more efficient intraprocess communication, a composable node is provided:

$ ros2 component types
apriltag_ros
  AprilTagNode

This AprilTagNode component can be loaded with other nodes into a “container node” process where they used shared-memory communication to prevent unnecessary data copies. The example launch file v4l2_36h11.launch.yml loads the AprilTagNode component together with the v4l2_camera::V4L2Camera component from the v4l2_camera package (sudo apt install ros-$ROS_DISTRO-v4l2-camera) into one container and enables use_intra_process_comms for both:

ros2 launch apriltag_ros v4l2_36h11.launch.yml

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged apriltag_ros at Robotics Stack Exchange

No version for distro eloquent. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 3.2.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/christianrauch/apriltag_ros.git
VCS Type git
VCS Version master
Last Updated 2024-07-07
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

AprilTag detection node

Additional Links

No additional links.

Maintainers

  • Christian Rauch

Authors

No additional authors.

AprilTag ROS2 Node

This ROS2 node uses the AprilTag library to detect AprilTags in images and publish their pose, id and additional metadata.

For more information on AprilTag, the paper and the reference implementation: https://april.eecs.umich.edu/software/apriltag.html

Topics

Subscriptions:

The node subscribes via a image_transport::CameraSubscriber to rectified images on topic image_rect. The set of topic names depends on the type of image transport (parameter image_transport) selected (raw or compressed):

  • image_rect (raw, type: sensor_msgs/msg/Image)
  • image_rect/compressed (compressed, type: sensor_msgs/msg/CompressedImage)
  • camera_info (type: sensor_msgs/msg/CameraInfo)

Publisher:

  • /tf (type: tf2_msgs/msg/TFMessage)
  • detections (type: apriltag_msgs/msg/AprilTagDetectionArray)

The camera intrinsics P in CameraInfo are used to compute the marker tag pose T from the homography H. The image and the camera intrinsics need to have the same timestamp.

The tag poses are published on the standard TF topic /tf with the header set to the image header and child_frame_id set to either tag<family>:<id> (e.g. “tag36h11:0”) or the frame name selected via configuration file. Additional information about detected tags is published as AprilTagDetectionArray message, which contains the original homography matrix, the hamming distance and the decision_margin of the detection.

Configuration

The node is configured via a yaml configurations file. For the complete ROS yaml parameter file syntax, see: https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser.

The configuration file has the format:

apriltag:                 # node name
  ros__parameters:
    # setup (defaults)
    image_transport: raw  # image format: "raw" or "compressed"
    family: 36h11         # tag family name: 16h5, 25h9, 36h11
    size: 1.0             # default tag edge size in meter
    profile: false        # print profiling information to stdout

    # tuning of detection (defaults)
    max_hamming: 0        # maximum allowed hamming distance (corrected bits)
    detector:
      threads: 1          # number of threads
      decimate: 2.0       # decimate resolution for quad detection
      blur: 0.0           # sigma of Gaussian blur for quad detection
      refine: 1           # snap to strong gradients
      sharpening: 0.25    # sharpening of decoded images
      debug: 0            # write additional debugging images to current working directory

    # (optional) list of tags
    # If defined, 'frames' and 'sizes' must have the same length as 'ids'.
    tag:
      ids:    [<id1>, <id2>, ...]         # tag IDs for which to publish transform
      frames: [<frame1>, <frame2>, ...]   # frame names
      sizes:  [<size1>, <size1>, ...]     # tag-specific edge size, overrides the default 'size'

The family (string) defines the tag family for the detector and must be one of 16h5, 25h9, 36h11, Circle21h7, Circle49h12, Custom48h12, Standard41h12, Standard52h13. size (float) is the tag edge size in meters, assuming square markers.

Instead of publishing all tag poses, the list tag.ids can be used to only publish selected tag IDs. Each tag can have an associated child frame name in tag.frames and a tag specific size in tag.sizes. These lists must either have the same length as tag.ids or may be empty. In this case, a default frame name of the form tag<family>:<id> and the default tag edge size size will be used.

The remaining parameters are set to the their default values from the library. See apriltag.h for a more detailed description of their function.

See tags_36h11.yaml for an example configuration that publishes specific tag poses of the 36h11 family.

Nodes

Standalone Executable

The apriltag_node executable can be launched with topic remappings and a configuration file:

ros2 run apriltag_ros apriltag_node --ros-args \
    -r image_rect:=/camera/image \
    -r camera_info:=/camera/camera_info \
    --params-file `ros2 pkg prefix apriltag_ros`/share/apriltag_ros/cfg/tags_36h11.yaml

Composable Node

For more efficient intraprocess communication, a composable node is provided:

$ ros2 component types
apriltag_ros
  AprilTagNode

This AprilTagNode component can be loaded with other nodes into a “container node” process where they used shared-memory communication to prevent unnecessary data copies. The example launch file v4l2_36h11.launch.yml loads the AprilTagNode component together with the v4l2_camera::V4L2Camera component from the v4l2_camera package (sudo apt install ros-$ROS_DISTRO-v4l2-camera) into one container and enables use_intra_process_comms for both:

ros2 launch apriltag_ros v4l2_36h11.launch.yml

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged apriltag_ros at Robotics Stack Exchange

No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 3.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/dmalyuta/apriltags2_ros.git
VCS Type git
VCS Version master
Last Updated 2023-03-27
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

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.

Additional Links

Maintainers

  • Danylo Malyuta
  • Wolfgang Merkt

Authors

  • Danylo Malyuta
README
No README found. See repository README.
CHANGELOG

Changelog for package apriltag_ros

3.2.1 (2022-04-05)

  • Fixed propagation of apriltag and Eigen headers and libraries (#124)
  • Drop old C++11 as it breaks with new log4cxx.
  • Contributors: Jochen Sprickerhof, Remo Diethelm, Wolfgang Merkt

3.2.0 (2022-03-10)

  • Add transport hint option (#108)
  • Move to using the apriltag CMake target (#104)
  • Set the tag's parent frame to the camera optical frame (#101)
  • Fix bug in K matrix in single_image_client (#103)
  • Add configurable max_hamming_distance for the AprilTag Detector (#93)
  • Introduce lazy processing for ContinuousDetector (#80)
  • Contributors: Akshay Prasad, Amal Nanavati, Christian Rauch, Hongzhuo Liang, Wolfgang Merkt

3.1.2 (2020-07-15)

  • Add support for tagCircle21h7, tagCircle49h12 (#69)
  • Add support for tagCustom48h12 (#65)
  • Contributors: Anthony Biviano, Kyle Saltmarsh, Wolfgang Merkt, kai wu

3.1.1 (2019-10-07)

  • Add support for tagStandard41h12 and tagStandard52h13 (#63, #59).
  • Add gray image input support (#58).
  • Contributors: Alexander Reimann, Moritz Zimmermann, Samuel Bachmann, Wolfgang Merkt

3.1.0 (2019-05-25)

  • Prepare for release (3.1) and fix catkin_lint errors
  • Upgrade to AprilTag 3, fix installation, and performance improvements (#43) Upgrade to AprilTag 3, fix installation, and performance improvements
  • Rename package to apriltag_ros
  • Contributors: Wolfgang Merkt

1.0.0 (2018-05-14)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

Plugins

Recent questions tagged apriltag_ros at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 3.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/AprilRobotics/apriltag_ros.git
VCS Type git
VCS Version master
Last Updated 2023-03-27
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

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.

Additional Links

Maintainers

  • Danylo Malyuta
  • Wolfgang Merkt

Authors

  • Danylo Malyuta
README
No README found. See repository README.
CHANGELOG

Changelog for package apriltag_ros

3.2.1 (2022-04-05)

  • Fixed propagation of apriltag and Eigen headers and libraries (#124)
  • Drop old C++11 as it breaks with new log4cxx.
  • Contributors: Jochen Sprickerhof, Remo Diethelm, Wolfgang Merkt

3.2.0 (2022-03-10)

  • Add transport hint option (#108)
  • Move to using the apriltag CMake target (#104)
  • Set the tag's parent frame to the camera optical frame (#101)
  • Fix bug in K matrix in single_image_client (#103)
  • Add configurable max_hamming_distance for the AprilTag Detector (#93)
  • Introduce lazy processing for ContinuousDetector (#80)
  • Contributors: Akshay Prasad, Amal Nanavati, Christian Rauch, Hongzhuo Liang, Wolfgang Merkt

3.1.2 (2020-07-15)

  • Add support for tagCircle21h7, tagCircle49h12 (#69)
  • Add support for tagCustom48h12 (#65)
  • Contributors: Anthony Biviano, Kyle Saltmarsh, Wolfgang Merkt, kai wu

3.1.1 (2019-10-07)

  • Add support for tagStandard41h12 and tagStandard52h13 (#63, #59).
  • Add gray image input support (#58).
  • Contributors: Alexander Reimann, Moritz Zimmermann, Samuel Bachmann, Wolfgang Merkt

3.1.0 (2019-05-25)

  • Prepare for release (3.1) and fix catkin_lint errors
  • Upgrade to AprilTag 3, fix installation, and performance improvements (#43) Upgrade to AprilTag 3, fix installation, and performance improvements
  • Rename package to apriltag_ros
  • Contributors: Wolfgang Merkt

1.0.0 (2018-05-14)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

Plugins

Recent questions tagged apriltag_ros at Robotics Stack Exchange