Skip to content

A ROS2 package designed to to detect and estimate pose of ArUco fractal markers

License

Notifications You must be signed in to change notification settings

dimianx/aruco_fractal_tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f83cdeb · Mar 25, 2025

History

9 Commits
Mar 25, 2025
Aug 2, 2024
Aug 2, 2024
Aug 2, 2024
Mar 25, 2025

Repository files navigation

ArUco Fractal Tracker

This ROS2 package is designed to detect and estimate the pose of ArUco fractal markers.

Example Detection

Features

  • Detects ArUco fractal marker in images.
  • Estimates the pose of detected marker with respect to a camera optical frame.
  • Publishes the marker pose as a geometry_msgs::msg::PoseStamped.
  • Broadcasts the transform from the camera optical frame to the marker frame using TF.
  • Retrieves camera calibration parameters dynamically from a sensor_msgs::msg::CameraInfo topic

Installation

Prerequisites

  • ROS2: Make sure you have ROS2 installed on your system. This package has been tested with ROS2 Foxy, but it should work with other ROS2 distributions as well.
  • OpenCV: For image processing.
  • ArUco Library: Required for marker detection.

Building

  1. Clone this repository into your ROS2 workspace:

    cd <your_workspace>/src
    git clone https://github.com/dimianx/aruco_fractal_tracker.git
  2. Navigate to the workspace root and build the package:

    cd <your_workspace>
    colcon build
  3. Source your workspace:

    source <your_workspace>/install/setup.bash

Usage

Running the Node

To run the ArUco Fractal Tracker node, use the following command:

ros2 run aruco_fractal_tracker aruco_fractal_tracker_node --ros-args \
  -p marker_configuration:="<path_to_marker_config>" \
  -p marker_size:=<marker_size> \
  --remap image_input_topic:=<your_camera_image_topic> \
  --remap image_output_topic:=<output_processed_image_topic> \
  --remap poses_output_topic:=<marker_pose_topic> \
  --remap camera_info_topic:=<your_camera_info_topic>

Note: Replace <path_to_marker_config>, <marker_size>, <your_camera_image_topic>, <output_processed_image_topic>, <marker_pose_topic>, and <your_camera_info_topic> with your actual file path, marker size, and topic names.

Parameters

  • marker_configuration (string): The configuration file for the ArUco fractal markers.
  • marker_size (double): The size of the marker in meters.

Topics

The node uses the following topics:

  • image_input_topic (input): The topic from which the node subscribes to images for processing.
  • image_output_topic (output): The topic on which the node publishes images with detected markers and pose information.
  • poses_output_topic (output): The topic on which the node publishes the pose of the detected marker as a geometry_msgs::msg::PoseStamped.

Example Marker

An example ArUco fractal marker configuration is provided in the example_marker folder. This folder contains both the marker image and configuration file necessary for testing the node. To use this example marker:

  1. Navigate to the example_marker folder.
  2. Print out the marker image (marker.png) and place it in the camera's field of view.
  3. Use the provided configuration file (marker_configuration.yaml) to run the node.

To generate your own marker, see this article: Fractal Markers: a new approach for long-range camera pose estimation under occlusion.

References

About

A ROS2 package designed to to detect and estimate pose of ArUco fractal markers

Topics

Resources

License

Stars

Watchers

Forks