Overview
Thetag_pose_publisher node provides robot localisation by computing pose estimates from AprilTag detections. It combines multiple TF transforms to determine the robot’s position in the map frame based on the relative position between the camera and detected AprilTags.
The node computes an independent map->base_footprint transform using:
map->tag- Static transform defining the tag’s known position in the mapcamera->tag- Dynamic transform from AprilTag detectionbase_footprint->camera- Static transform from the robot’s URDF
Parameters
The TF frame name of the AprilTag in the map. This represents the tag’s known, static position in the world coordinate system.
The TF frame name published by the AprilTag detector representing the tag as seen by the camera. This frame is dynamically updated as the tag is detected.
The TF frame name of the camera’s optical frame. This is the reference frame for AprilTag detections.
The TF frame name of the robot base for which pose estimates are published. Typically
base_footprint for ground robots.The TF frame name of the global map coordinate system. Published poses are expressed in this frame.
Published Topics
/tag_pose
Type:geometry_msgs/msg/PoseWithCovarianceStamped
Description: Robot pose estimate in the map frame derived from AprilTag detection. Published at 10 Hz when a tag is visible. The covariance matrix includes:
- X/Y position covariance:
max((distance * 0.1)^2, 0.01)m² - Yaw covariance:
(distance * 0.05)^2 + 0.01rad² - Z, roll, pitch covariances: 1e6 (effectively ignored in 2D localisation)
Subscribed Topics
This node does not subscribe to topics. It uses TF transforms instead:- Listens for transforms between
tag_frameandmap_frame - Listens for transforms between
detected_tag_frameandcamera_frame - Listens for transforms between
target_frameandcamera_frame