This package provides a detector for ArUco markers in ROS2.
Subscipes to a sensor_msgs::msg::Image
topic specified in the params file. This is the image on which aruco detection is performed.
The node sets default camera calibration parameters, but listens for a sensor_msgs::msg::CameraInfo
topic to override the calibration parameters.
Detects arUco markers on the image. Calculates the position of the markers and publishes over the /aruco_marker_poses
topic as a geometry_msgs::msg::PoseArray
message.
If the detect_board
param is set then the board posistion is published as a geometry_msgs::msg::PoseStamped
message over the /aruco_board_pose
topic. The position published is the centre of the rectangular board created in src/aruco_detector.cpp
in the createRectangularBoard
function.
The board position is used for autonomous docking in the TAC Challenge. This task requires and accurate position and therefore the board position is etimated through a kalman filter, to ensure more stable outputs.
If the visualize
param is set the detected arUco markers, and the board centre, if enabled, are visualized on the input image used for detection. The image is published over the /aruco_marker_image
as a sensor_msgs::msg::Image
message.
To use the ArUco detector, follow one of these steps:
-
Run the ArUco detector node to use default parameters specified in
src/aruco_detector_ros.cpp
:ros2 run aruco_detector aruco_detector_node
-
Launch the ArUco detector node to use parameters specified in
params/aruco_parameters.yaml
:ros2 launch aruco_detector aruco_detector_launch.py
The ArUco detector can be configured by modifying the parameters in the params/aruco_parameters.yaml
file.