yahboom
HomeTutorialsProduct
Solution
Blog
Online Store
About Us
EN/中文
Store
ROSMASTER A1 PRO📖
00.Configuration and Operation Guide
  • 0. Unboxing and Review
  • 1.Assembly Videos
  • 2.User Manual
  • 3.Enter Docker (For Raspberry Pi)
  • 4.A1Pro Front Wheel Servo Calibration
  • 5.USB Camera Calibration
  • 6.Depth Camera Calibration
  • 7.FAQ
  • 8.Desktop Configuration Center and Remote Control Guide
01.Chassis Control Course
  • 1.Robot Information Publishing
  • 2.Robot Handle Control
  • 3.Robot Keyboard Control
  • 4.Linear Velocity Calibration
  • 5.Angular Velocity Calibration
  • 6.Robot URDF Model
  • 7.Robot EKF State Estimation
02.Lidar Course
  • 1.Lidar Introduction and Use
  • 2.Lidar Obstacle Avoidance
  • 3.Lidar Following
  • 4.Lidar Patrol
  • 5.GMapping-SLAM Mapping
  • 6.Cartographer-SLAM Mapping
  • 7.Slam-Toolbox Mapping
  • 8.Lifelong Mode Mapping
  • 9.Navigation2 Single Point Navigation
  • 10.Navigation2 Multi Point Navigation
  • 11.Cartographer Relocalization Navigation
  • 12.Slam-Toolbox Localization Navigation
  • 13.Synchronous Mapping And Navigation
  • 14.Aruco Visual Relocalization Navigation
  • 15.Mobile App Mapping And Navigation
  • 16.AprilTag Transport
  • 17.Color Block Transport
03.USB Camera-Depth Camera Course
  • 1.USB Camera Introduction
  • 2.USB Camera Intrinsic Calibration
  • 3.Nuwa-HP60C Camera Introduction (Depth Camera Only)
  • 4.Depth Camera Distance Measurement (Depth Camera Only)
  • 5.Depth Pseudo Color Image (Depth Camera Only)
  • 6.Block Volume Calculation (Depth Camera Only)
  • 7.Edge Detection (Depth Camera Only)
  • 8.RTAB-Map SLAM Mapping (Depth Camera Only)
  • 9.RTAB-Map Navigation (Depth Camera Only)
04.Robotic Arm and 3D Space Gripping Course
  • 0.Robotic Arm Basic Usage
  • 1.Robotic Arm Kinematics
  • 2.Robotic Arm Chassis Coordination Control
  • 3.AprilTag ID Sorting
  • 4.AprilTag Height Anomaly Sorting
  • 5.AprilTag Tracking and Grasping
  • 6.Color Block Sorting
  • 7.Color Block Height Anomaly Sorting
  • 8.Color Block Tracking and Grasping
  • 9.Wood Block Shape Sorting
  • 10.KCF Tracking and Grasping Objects
  • 11.Mediapipe Gesture ID Sorting AprilTag
  • 12.Mediapipe Gesture Height Sorting AprilTag
  • 13.Desktop Tracking and Grasping AprilTag
  • 14.3D Spatial Tracking AprilTag
  • 15.Line Following Obstacle Clearing
  • 16.Transformer Model Tracking Algorithm
05.Road Network Planning and Navigation
  • 1.Introduction To Road Network Planning
  • 2.Road Network Annotation
  • 3.Planning And Navigation Between Waypoints
  • 4.Road Network Navigation In Any Pose
  • 5.Path Re-planning
06.OpenClaw Basic Course
  • 1.Introduction to OpenClaw
  • 2.OpenClaw Core Concepts
  • 3.OpenClaw API-KEY Configuration
  • 4.OpenClaw Switch Models
  • 5.OpenClaw System Prompt Words
  • 6.OpenClaw Common CLI Commands
07.OpenClaw Interaction Method
  • 1.OpenClaw Webchat Interaction
  • 2.OpenClaw Tui Interaction
  • 3.OpenClaw Voice Dialogue Interaction
  • 4.OpenClaw WhatsApp Interaction
08.OpenClaw Development
  • 1.OpenClaw Connecting to Robot MCP Service
  • 2.Robot CLI Command Tool
  • 3.robot-control plugin tool
  • 4.reply-bridge plugin tool
  • 5.OpenClaw Multimodal Vision
  • 6.OpenClaw Chassis Control
  • 7.OpenClaw Robotic Arm Control
  • 8.OpenClaw Skills Development
  • 9.OpenClaw Scheduled Tasks
  • 10.OpenClaw Multi-Agent Intelligent Agent
  • 11.OpenClaw Active Interaction
  • 12.OpenClaw Vector Memory
09.OpenClaw Embodied Intelligent Application
  • 1.OpenClaw Target Tracking
  • 2.OpenClaw Arm Tracking And Grasping
  • 3.OpenClaw Arm Fixed-point Placement
  • 4.OpenClaw Waste Sorting
  • 5.OpenClaw SLAM Mapping And Navigation
  • 6.OpenClaw Navigation Transport
  • 7.OpenClaw AprilTag Grasping
  • 8.OpenClaw Color Line Patrol
  • 9.OpenClaw Visual Distance Measurement
10.OpenClaw Scenario Sandbox
  • 1.Map Description and Prop Placement
  • 2.Build Sand Table Map
  • 3.Visual Relocation Markers
  • 4.Map Mapping Markers
  • 5.OpenClaw Scenario Sandbox Comprehensive Case
11.AI Model Basics
  • 1.AI Large Model Types and Principles
  • 2.RAG Retrieval Enhancement and Model Training Samples
  • 3.Embodied Intelligent Robot System Architecture
  • 4.Embodied Intelligent Functions Core Source Code
12.AI Model Development
  • 1.Register a Model Service Provider Aaccount
  • 2.Configuring API-KEY
  • 3.Introduction to Dify
  • 4.Basic Dify Features
  • 5.AI Large Model Development - chatbot
  • 6.Deploy the RAG Knowledge Base
  • 7.RAG Knowledge Base + chatbot
  • 8.AI Agent Workflow
  • 9.Custom Wake-up Response
13.AI Model - Text Version
  • 1.Semantic Understand and Command Follow
  • 2.Multimodal Visual Understand
  • 3.Multimodal Visual Understand + Robotic Arm Gripping
  • 4.Multimodal Visual Understand+SLAM Navigation
  • 5.Robotic Arm Gripping+Multimodal Visual Understand+SLAM Navigation
  • 6.Intention Estimation
14.AI Model - Voice Version
  • 1.Semantic Understand and Command Follow
  • 2.Multimodal Visual Understand
  • 3. Multimodal Large Model+Robotic Arm Gripping
  • 4.Multimodal Visual Understand+SLAM Navigation
  • 5.Robotic Arm Gripping+Multimodal Visual Understand+SLAM Navigation
  • 6.Intention Estimation
15.Mediapipe Visual Course
  • 1.Hand Detection
  • 2.Posture Detection
  • 3.Overall Detection
  • 4.Facial Landmark Detection
  • 5.Face Detection
  • 6.Face Special Effects
  • 7.3D Object Recognition
  • 8.Brush
  • 9.Finger Control
  • 10.Palm Target Positioning
  • 11.Fingertip Trajectory Recognition
  • 12.Fingertip Gesture Control Cobotic Arm
  • 13.Gesture Grabbing and Releasing Objects
  • 14.Finger Control Robotic Arm
  • 15.Medipipe Gesture Control Robotic arm Cction Group
16.MoveIt2 Simulation Course
  • 1.MovelT2 Configuration
  • 2.MovelT2 Simulation-Reality Linkage
  • 3.Random Movement
  • 4.Forward Kinematics Design
  • 5.Inverse Kinematics Design
  • 6.Cartesian Path
  • 7.Scene Design
  • 8.Trajectory Planning
  • 9.Collision Detection
  • 10.3D Perception Obstacle‑Avoidance
17.Multi-vehicle Course
  • 1.Multi-vehicle Control
  • 2.Multi-vehicle Navigation
  • 3.Multi-vehicle Formation
18.YOLO26 Development
  • 1.CLI Use
  • 2.Object Detection
  • 3.Instance Segmentation
  • 4.Pose Estimation
  • 5.Image Classification
  • 6.Oriented Object Detection
  • 7.YOLOv26 + DeepSORT Tracking
  • 8.Monocular Depth Estimation
19.Control Board STM32 Driver Course
  • 0.Notes (Must Read)
  • 1.About Expansion Board
  • 2.STM32 Development Environment
  • 3.Button Control
  • 4.FreeRTOS Application
  • 5.Serial Communication
  • 6.SBUS Model Aircraft Remote Control
  • 7.CAN Bus Communication
  • 8.RGB Colorful Light Bar
  • 9.Timer Interrupt to Control PWM Servo
  • 10.Control Serial Port Servos
  • 11.Nine-axis Attitude Sensor to Obtain Data
  • 12.Control Motor
  • 13.Timer Captures the Encoder Data
  • 14.1 Kinematic Analysis of Mecanum Wheel
  • 14.2 Kinematic Analysis of Ackerman
  • 14.3 Kinematic Analysis of 4WD
  • 15.PID Control Robot Movement
20.Docker Course
  • 1.Docker Introduction and Installation
  • 2.Docker Basic Commands
  • 3.Docker Submission and Multi-Terminal Access
  • 4. Docker Startup Script
  • 5.Docker-Vscode Environment Construction
21.Image Processing Basics Course
  • 1. Introduction to Open Source CV
  • 2. Image reading and display
  • 3. Image writing
  • 4. Image quality
  • 5. Pixel Operation
  • 6. Image zoom
  • 7. Image cutting
  • 8. Image translation
  • 9. Image Mirroring
  • 10. Affine Transformation
  • 11. Image Rotation
  • 12. Perspective Transformation
  • 13. Grayscale processing
  • 14. Image Binarization
  • 15. Edge Detection
  • 16. Line drawing
  • 17. Rectangle and circle drawing
  • 18. Drawing text and pictures
22.Linux System Course
  • 1.Introduction to Linux system
  • 2.Ubuntu file system
  • 3.Ubuntu common commands
  • 4.Ubuntu common editors
  • 5.Ubuntu software operation commands
  • 6.Virtual machine installation
  • 7.SSH remote control
  • 8.VNC remote control
  • 9.Transfer files remotely
  • 10.Driver library and communication
  • 11.Static IP and hotspot mode
  • 12.Bind device ID
  • 13.Capacity expansion and resource allocation
  • 14.Update system software sources
  • 15.Set root user password
  • 16.sudo free password
  • 17.Connect to WiFi network
  • 18.View system version
  • 19.Customized service management
  • 20.Back up system image
23.ROS2 Basic Course
  • 1.Introduction to ROS2
  • 2.ROS2 install Humble
  • 3.ROS2 development environment
  • 4.ROS2 workspace
  • 5.ROS2 function package
  • 6.ROS2 node
  • 7.ROS2 topic communication
  • 8.ROS2 service communication
  • 9.ROS2 action communication
  • 10.ROS2 custom interface message
  • 11.ROS2 parameter service case
  • 12.ROS2 meta-function package
  • 13.ROS2 distributed communication
  • 14.ROS2 DDS
  • 15.ROS2 time related API
  • 16.ROS2 common command tools
  • 17.ROS2 rviz2 use
  • 18.ROS2 rqt toolbox
  • 19.ROS2 Launch startup file configuration
  • 20.ROS2 recording and playback tool
  • 21.ROS2 URDF model
  • 22.ROS2 Gazebo simulation platform
  • 23.ROS2 TF2 coordinate transformation
24.Main Control Course
Jetson Orin Nano_NX
  • 1.Jetson Orin board introduction
  • 2.Restore the factory image system
  • 3.Backup SSD system
  • 4.SSD expansion
  • 5.Network configuration
  • 6.SSH remote login
  • 7.VNC remote control
  • 8.Remote file transfer
  • 9.Jtop tool
  • 10.Exchange space expansion
Raspberry Pi
  • 1. Introduction to Raspberry PI 5
  • 2. Raspberry PI system installation and backup
  • 3. Powering the Raspberry PI 5
  • 4. Startup of Raspberry PI 5
  • 5. Update and upgrade operating system
  • 6. Introduction to raspi-config tool
  • 7. config.txt file description
  • 8. Network Configuration
  • 9. remote access
  • 10. Transfer files remotely
  • 11. Set display resolution and rotation
  • 12. Set screen to sleep
  • 13. Play audio and video
  • 14. Using USB camera
  • 15. Using MIPI camera
  • 16. Get real-time temperature of Raspberry Pi
RDKX5
  • 1.Introduction to RDK X5 board
  • 2.Write system file
  • 3.Hardware interface description
  • 4.Install case and other accessories
  • 5.Network configuration
  • 6.Remote login
  • 7.Update system
  • 8.srpi-config user guide
  • 9.config. txt configuration file
  • 10.Self-startup setting
  • 11.RDK exclusive command usage
  • 12.Linux command usage
  • 13.GPIO readwrite operation
  • 14.Image classification algorithm
  • 15.Use USB camera
  • 16.Use MIPI camera
  • 17.Binocular camera depth algorithm
  • 18. Controlling RGB Cooling Fans
Download
  • SystemFile
  • Code
  • 3D_Model_File
  • Software_Tools
  • Hardware_Info
  • Introduction_Manual
  • Script_File
  • Dify AI Agent
Download ZIP

Welcome to ROSMASTER A1 PRO repository

14.Aruco Visual Relocalization Navigation

🏷️ ArUco / AprilTag Visual Spatial Relocalization Navigation

1. Course Content

  • Master using AprilTag / ArUco spatial visual anchors combined with camera PnP pose solving to achieve millimeter-level global rapid relocalization and navigation for mobile robots.

  • Master the closed-loop workflow of automatically triggering pose recalibration when laser SLAM localization drift or "robot kidnapping" occurs by recognizing tag codes in the field of view.

  • Master the recording calibration (Record mode) of tag codes in the global map coordinate system and the operation of real-time self-healing relocalization (Relocalize mode).

  • This case uses 3 * 3 * 3 AprilTag wooden blocks


2. Visual Spatial Relocalization Principle Analysis

In actual industrial AGV/AMR scenarios, lidar localization is prone to feature degradation causing localization step loss or jumping in long straight corridors, large open areas, or dynamic crowd interference; additionally, when the robot is manually transported (robot kidnapping), traditional algorithms have difficulty instantaneously recovering the true pose.

This system uses high-precision AprilTag / ArUco visual tag codes arranged in the environment as spatial global absolute anchors:

  1. PnP Spatial Pose Solving: Onboard camera real-time detects tag corners in the image, combined with camera intrinsic matrix, solves the six-degree-of-freedom spatial transformation of the tag relative to the camera through Perspective-n-Point (PnP) algorithm.

  2. Spatial Coordinate System Inverse Chain Solving: Combined with the tag's global pose pre-recorded in the map, the robot's absolute pose in the map is inversely calculated through homogeneous matrix transformation.


3. Preparation and Running (Phase 1: Record Tag Code Global Position)

Before formally using visual relocalization:

  • It is necessary to first record and save the global coordinates of the tag codes arranged on walls or floors into the configuration file in a high-precision lidar localization environment.

  • It is necessary to first learn Chapter 7 (Cartographer Algorithm Mapping), build the yaml map and pose map.

This phase requires starting the following nodes in sequence:

3.1 Start Chassis and Sensors

Run in Terminal 1 (start chassis driver, lidar, and RGB depth camera):

xxxxxxxxxx
ros2 launch yahboomcar_nav laser_bringup_launch.py

3.2 Start RViz Navigation Visualization

Run in Terminal 2 (it is recommended to open RViz on the virtual machine if the VM and robot are on the same LAN):

xxxxxxxxxx
ros2 launch yahboomcar_nav display_nav_launch.py

image-20260831175851580

3.3 Start Cartographer Pure Localization Node

Run in Terminal 3 to load .pbstream pose graph and start pure localization core:

xxxxxxxxxx
ros2 launch yahboomcar_nav localization_imu_odom.launch.py use_rviz:=false load_state_filename:=$HOME/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/map.pbstream

image-20260831180335141

Tip
After pure localization starts, if in a weak feature area, you can use the 2D Pose Estimate tool in RViz top toolbar to assist aligning initial pose: image-20260831183237862

3.4 Start Nav2 Navigation Controller

Run in Terminal 4 to start navigation controller (loads corresponding static raster map):

xxxxxxxxxx
ros2 launch yahboomcar_nav navigation_cartodwb_launch.py maps:=$HOME/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/map.yaml

image-20260831180626622

image-20260831183334315


3.5 Start AprilTag Recording Mode

Run in Terminal 5 (start detection node and pose recorder):

xxxxxxxxxx
ros2 launch yahboomcar_nav apriltag_relocation.launch.py mode:=record

  1. In RViz2 interface, click Add, select By topic → /apriltag/image_rect to add Image plugin to view camera detection feed in real-time:

  2. Remote control the robot to drive to the front of the tag code; ensure the camera image clearly observes the tag code and shows 3D coordinate axes and green recognition box:

3.6 View Tag ID and Record Pose

Run in Terminal 6 to view the currently detected tag ID:

xxxxxxxxxx
ros2 topic echo /detections --once

image-20260901100839109

After confirming the detected ID (for example ID is 9), call the service to persistently write the tag's global coordinates in the map into the configuration file:

xxxxxxxxxx
ros2 service call /save_april_tag_pose apriltag_localization/srv/SaveAprilTagPose "{tag_id: 9}"

image-20260901100901601

Note
After successful recording, the system will write that tag's precise pose in map coordinate system into aritag_relocation.yaml. If there are multiple tag codes, sequentially remote control the robot to the front of each tag and call the above service.


4. Phase 2: Visual Relocalization Autonomous Navigation Practical Test

After completing recording of all tag codes, close Terminal 5's recording program, and then enter the visual-assisted relocalization navigation phase.

4.1 Start Visual Relocalization Mode

Run in Terminal 5:

xxxxxxxxxx
ros2 launch yahboomcar_nav apriltag_relocation.launch.py mode:=relocalize

image-20260901101003440

The terminal will print relocalization logs:

xxxxxxxxxx
[apriltag_relocalization-2] [INFO] [1788228563.080564578] [apriltag_relocalization]: Detected map tag 9 — attempting relocalization...
[apriltag_relocalization-2] [INFO] [1788228563.091297259] [apriltag_relocalization]: Tag 9: published /initialpose  pos=[3.791, 4.700, 0.318]  (dist=0.27m)

4.2 Visual Self-Healing Relocalization and Autonomous Navigation

  1. Simulate Localization Deviation/Kidnapping: In RViz2, intentionally use 2D Pose Estimate to set the robot's initial pose to a clearly erroneous deviating position; at this time, the lidar point cloud and map contours have serious misalignment.

  2. Instant Self-Healing Alignment: Remote control the robot to rotate or move; as long as any recorded AprilTag tag code enters the camera field of view, the apriltag_relocalization node will, within milliseconds, calculate the true pose through TF chain solving and publish to /initialpose, and the robot model and lidar point cloud instantly restore alignment.

  3. Goal Point Autonomous Obstacle-Avoiding Navigation: Click the Nav2 Goal (or 2D Goal Pose) tool at the top of RViz to give a goal point on the map; the robot, based on the precisely calibrated pose, smoothly drives to the destination while avoiding obstacles.

Note

When the experiment ends, press Ctrl+C in each terminal window to stop the program.


5. Core Source Code and Algorithm Parameter Analysis

5.1 Visual Relocalization Unified Scheduling Launch Analysis

File Path:

xxxxxxxxxx
$HOME/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/launch/nav2/apriltag_relocation.launch.py

Launch Core Design Analysis

xxxxxxxxxx
def generate_launch_description():
    ...
    # 1. Automatically adapt camera type (Nuwa / USB)
    # Dynamically select image topic and optical coordinate system based on camera_type
    # Nuwa camera: /ascamera_hp60c/camera_publisher/rgb0/image, camera_color_optical_frame
    # USB camera:  /usb_cam/image_raw, camera

    # 2. AprilTag core detection node (both modes start)
    apriltag_detect = Node(
        package='apriltag_localization',
        executable='apriltag_node',
        name='apriltag',
        parameters=[param_file, {'detection_enabled': LaunchConfiguration('detection_enabled')}],
        remappings=[
            ('image_rect', LaunchConfiguration('image_topic')),
            ('image_rect/camera_info', LaunchConfiguration('camera_info_topic')),
        ],
        output='screen',
    )

    # 3. record mode: Start pose recorder node
    apriltag_recorder = Node(
        package='apriltag_localization',
        executable='apriltag_recorder',
        name='apriltag_recorder',
        output='screen',
        parameters=[{
            'output_file_path': LaunchConfiguration('aritag_record_file'),
            'target_frame': LaunchConfiguration('target_frame'),
            'camera_frame': LaunchConfiguration('camera_frame'),
        }],
        condition=IfCondition(is_record),
    )

    # 4. relocalize mode: Start relocalization solving and pose publishing node
    relocalization_node = Node(
        package='apriltag_localization',
        executable='apriltag_relocalization',
        name='apriltag_relocalization',
        output='screen',
        parameters=[{
            'aritag_record_file': LaunchConfiguration('aritag_record_file'),
            'cooldown_duration': LaunchConfiguration('cooldown_duration'),
            'map_frame': LaunchConfiguration('map_frame'),
            'robot_base_frame': LaunchConfiguration('robot_base_frame'),
            'camera_frame': LaunchConfiguration('camera_frame'),
        }],
        condition=IfCondition(is_relocalize),
    )

5.2 Spatial Relocalization Solving Core Source Analysis

File Path:

xxxxxxxxxx
$HOME/yahboomcar_ros2_ws/yahboomcar_ws/src/apriltag_localization/src/apriltag_relocalization.cpp

Spatial Homogeneous Transformation and Pose Publishing Core Implementation

xxxxxxxxxx
bool AprilTagRelocalization::doRelocalize(int tag_id, const TagPose & map_pose, const rclcpp::Time & stamp)
{
    std::string tag_frame = "tag" + std::to_string(tag_id);
    
    // 1. Get camera-to-tag real-time TF: T_camera_tag (output by AprilTag detection node PnP solving)
    geometry_msgs::msg::TransformStamped tf_cam_tag = tf_buffer_.lookupTransform(
        camera_frame_, tag_frame, tf2::TimePointZero, tf2::durationFromSec(0.5));

    // 2. Get camera-to-chassis static TF: T_camera_base
    geometry_msgs::msg::TransformStamped tf_cam_base = tf_buffer_.lookupTransform(
        camera_frame_, robot_base_frame_, tf2::TimePointZero, tf2::durationFromSec(0.5));

    // 3. Spatial homogeneous matrix composition:
    // T_map_base = T_map_tag (YAML storage) * (T_camera_tag)^-1 * T_camera_base
    tf2::Transform T_map_tag, T_cam_tag, T_cam_base, T_tag_cam, T_map_base;
    T_map_tag.setOrigin(tf2::Vector3(map_pose.px, map_pose.py, map_pose.pz));
    T_map_tag.setRotation(tf2::Quaternion(map_pose.qx, map_pose.qy, map_pose.qz, map_pose.qw));
    
    T_tag_cam = T_cam_tag.inverse();
    T_map_base = T_map_tag * T_tag_cam * T_cam_base;

    // 4. Construct and publish /initialpose initial pose topic
    geometry_msgs::msg::PoseWithCovarianceStamped pose_msg;
    pose_msg.header.stamp = stamp;
    pose_msg.header.frame_id = map_frame_;
    pose_msg.pose.pose.position.x = T_map_base.getOrigin().x();
    pose_msg.pose.pose.position.y = T_map_base.getOrigin().y();
    pose_msg.pose.pose.position.z = T_map_base.getOrigin().z();

    // 5. Dynamic covariance self-adaptation (farther distance, larger covariance)
    double distance = T_cam_tag.getOrigin().length();
    double pos_var = 0.1 + 0.05 * distance;
    double yaw_var = 0.05 + 0.02 * distance;
    pose_msg.pose.covariance[0]  = pos_var;  // x covariance
    pose_msg.pose.covariance[7]  = pos_var;  // y covariance
    pose_msg.pose.covariance[35] = yaw_var;  // yaw covariance

    initialpose_pub_->publish(pose_msg);
    return true;
}

5.3 Core Parameter Interpretation

Parameter Configuration File Path:

xxxxxxxxxx
$HOME/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/params/aritag_relocation.yaml

Core Parameter Description Table

Parameter ModuleParameter NameCurrent Config ValueCore Function and Physical Meaning
AprilTag Detectionfamily36h11Tag code dictionary family (recommended to use 36h11, highest anti-false-detection rate)
AprilTag Detectionsize0.048Tag code black-white square physical side length (meters), used for PnP ranging calibration
AprilTag Detectionpose_estimation_methodpnpPose estimation algorithm (PnP perspective n-point pose solving)
AprilTag Detectionmax_hamming1Maximum allowed Hamming error correction bits, filter incorrect recognition
AprilTag Detectionthreads1Detection multi-threading concurrency count
Relocalization Nodecooldown_duration5.0Single Tag ID relocalization cooldown time (seconds), prevent high-frequency update jitter
Relocalization Nodemap_framemapGlobal map reference coordinate frame
Relocalization Noderobot_base_framebase_footprintRobot chassis reference coordinate frame
Relocalization Nodecamera_frameAuto-adaptedCamera optical reference coordinate frame (camera_color_optical_frame / camera)

YAML Configuration File Complete Source

# =====================================================================
# aritag_relocation.yaml
# AprilTag Recording and Relocalization Unified Parameter File
# =====================================================================

# ----- apriltag detection node parameters (node name: apriltag) -----
apriltag:
  ros__parameters:
    image_transport: raw        # Image transport format: "raw" or "compressed"
    family: 36h11               # Tag family name: 16h5, 25h9, 36h11
    size: 0.048                 # Default Tag side length (meters)
    profile: false              # Whether to output performance analysis information

    max_hamming: 1              # Maximum allowed Hamming distance (error correction bits)
    detector:
      threads: 1                # Thread count
      decimate: 2.0             # Quadrilateral detection resolution downsampling multiplier
      blur: 0.0                 # Gaussian blur standard deviation
      refine: 1                 # Whether to refine alignment of strong gradients
      sharpening: 0.25          # Decoded image sharpening degree
      debug: 0                  # Whether to output debug images

    pose_estimation_method: "pnp"   # Tag pose estimation algorithm
    tag:
      ids:    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
      frames: [tag1, tag2, tag3, tag4, tag5, tag6, tag7, tag8, tag9, tag10, tag11, tag12, tag13, tag14, tag15, tag16, tag17, tag18, tag19, tag20]

# ----- apriltag_relocalization node parameters -----
apriltag_relocalization:
  ros__parameters:
    cooldown_duration: 5.0          # Single Tag ID relocalization cooldown time (seconds)
    map_frame: map                  # Map coordinate frame
    robot_base_frame: base_footprint  # Robot chassis coordinate frame

# ----- apriltag_recorder node parameters -----
apriltag_recorder:
  ros__parameters:
    target_frame: map               # Global coordinate frame used for recording
Synchronous Mapping And Navigation
Mobile App Mapping And Navigation

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文