this articles is a part of
The FACC'25 event

FACC'25

April Tags cơ bn

Thông tin cơ bản về cơ chế của các AprilTags, những kiến thức cần biết để xử lý dữ liệu AprilTag

Level

Intermediate

Source

Author

Aggregate

Translator

FTC26749 aDudu

Date Published

Sep 23, 2025

Tổng quan về AprilTag

1. AprilTags là gì?

AprilTags là một hệ thống thẻ hiệu (tags) trực quan do các nhà nghiên cứu tại Đại học Michigan phát triển để cung cấp khả năng định vị với độ chính xác cao và chi phí thấp cho nhiều ứng dụng khác nhau. AprilTags là một hệ thống fiducial marker (mã nhãn thị giác) giúp robot nhận dạng ID và ước lượng pose, thường là 6-DOF (gồm 3 con số vị trí (x,y,z) và 3 con số hướng (roll, pitch, yaw) — tức là “vị trí + hướng” của thẻ so với camera) từ một ảnh đơn.

2. Họ 36h11 là gì?

  • Tất cả các thẻ sẽ được in sao cho "thân" chính của thẻ có chiều dài 6.5 inch (165.1 mm). Biểu đồ cho thấy kích thước của một mục tiêu định vị AprilTag.

Thông tin bổ sung về hệ thống thẻ và những người tạo ra nó có thể được tìm thấy trên trang web của họ. Tài liệu này cố gắng tóm tắt nội dung cho các mục đích liên quan đến các cuộc thi robotics của FIRST.

  • Ưu điểm: nhẹ, nhanh, cung cấp pose 6-DOF, dễ in và kiểm soát chất lượng.

  • Nhược điểm: phụ thuộc calibration & điều kiện ảnh; cần tag kích cỡ phù hợp để xác định ở khoảng cách cần.

Trong các cuộc thi của FIRST:

  • Giúp robot xác định chính xác vị trí của mình trên sân đấu.

  • Xác định backdrop / navigation targets & chọn đường chạy.

  • Reset / xác thực vị trí robot (vision-based localization).

  • Giúp robot căn chỉnh chính xác khi thực hiện nhiệm vụ.

  • AprilTags đã được phát triển từ năm 2011 và đã được cải tiến qua nhiều năm để tăng cường độ tin cậy và tốc độ phát hiện. Bắt đầu từ năm 2023, FIRST cung cấp một số thẻ được đặt rải rác khắp sân, mỗi thẻ ở một vị trí (pose) đã biết trước.

  • Để sử dụng tại nhà, các tệp thẻ có thể được in ra và đặt xung quanh khu vực luyện tập của bạn. Gắn chúng lên một vật liệu lót cứng để đảm bảo thẻ phẳng, vì thuật toán xử lý giả định rằng các thẻ là phẳng.

Lý thuyết cơ bản

  1. Tag Families

Tag Family là tập hợp các thẻ có cùng kiểu lưới/độ dài bit (định dạng in). Hiện nay có 2 loại Tag Family phổ biến là tag36h11tag41h12. Các family còn lại khác nhau ở kích thước bit và khả năng chịu lỗi (hamming distance hay còn gọi là số bit khác tối thiểu giữa hai thẻ; Hamming distance lớn → ít nhầm lẫn nhưng có thể giảm tổng số ID khả dụng). Vì vậy, việc chọn family có đủ số lượng ID và độ bền lỗi phù hợp là một điều quan trọng trong các giải đấu của FIRST.

  1. Pose Estimation - Hiểu kết quả

Sau khi biên dịch được tag, ta ước lượng rvec (vector trục/angle) và tvec (translation) bằng solvePnP. Kết quả có ý nghĩa:

  • tvec (x,y,z): vị trí origin của tag (tag-centered origin) biểu diễn trong hệ tọa độ camera frame (đơn vị mét nếu ta cung cấp tag_size tính bằng mét). Thường z là khoảng cách dọc trục nhìn của camera đến tag (positive ra phía trước camera).

  • rvec (hoặc R ma trận xoay 3×3): mô tả hướng của tag so với camera. Bạn có thể chuyển sang Euler angles (yaw/pitch/roll) để điều khiển

Quan trọng: solvePnP và apriltag trả tvec theo camera frame: nghĩa là nếu tvec = [tx, ty, tz], thì tọa độ tag origin tính theo camera là (tx, ty, tz).

  1. Kết luận về accuracy

  • Calibration là yếu tố quyết định độ chính xác của pose. Thiếu calibration → sai lệch khoảng cách và góc lớn.

  • Kích thước vật lý của tag (tag_size) phải đúng: lỗi ở tag_size sẽ tỉ lệ trực tiếp với lỗi về khoảng cách.

  • Pixel size (kích thước tag trên ảnh): để có pose ổn định, cạnh tag trên ảnh nên có ít nhất ~30–50 pixel (tối thiểu). Vì khi cạnh tag nhỏ (ít pixel) thì vị trí góc đo sai nhiều → pose không ổn định.

Một cách sử dụng nâng cao hơn của AprilTags là sử dụng vị trí các góc của chúng để hỗ trợ ước tính vị trí (pose estimation). Mỗi hình ảnh được tìm kiếm AprilTags bằng thuật toán được mô tả trên trang này. Sử dụng các giả định về cách ống kính camera biến dạng thế giới 3D thành mảng 2D các pixel trong camera, một ước tính về vị trí của camera so với thẻ được tính toán. Việc hiệu chỉnh camera tốt là cần thiết để các giả định về hành vi ống kính của nó được chính xác.

ID của thẻ cũng được giải mã từ hình ảnh. Với mỗi ID thẻ, vị trí của thẻ trên sân có thể được tra cứu. Biết được vị trí của thẻ trên sân và vị trí của camera so với thẻ, các lớp hình học 3D có thể được sử dụng để ước tính vị trí của camera trên sân.

Nếu vị trí của camera trên robot đã biết, vị trí của robot trên sân cũng có thể được ước tính. Những ước tính này có thể được tích hợp vào các lớp ước tính vị trí của WPILib.

Sự nhập nhằng 2D đến 3D: Quá trình dịch bốn góc đã biết của mục tiêu trong hình ảnh (hai chiều) thành một vị trí trong thế giới thực so với camera (ba chiều) vốn dĩ mang tính mơ hồ. Nghĩa là, có nhiều vị trí trong thế giới thực khác nhau dẫn đến việc các góc mục tiêu xuất hiện ở cùng một chỗ trong hình ảnh camera.

Con người thường có thể sử dụng manh mối về ánh sáng hoặc nền để hiểu các vật thể được định hướng trong không gian như thế nào. Tuy nhiên, máy tính không có lợi thế này. Chúng có thể bị đánh lừa bởi các mục tiêu trông có vẻ tương tự.

Việc xác định vị trí nào là "chính xác" có thể được thực hiện theo một số cách khác nhau:

  • Sử dụng lịch sử odometry từ tất cả các cảm biến để chọn vị trí (pose) gần nhất với vị trí bạn dự đoán robot sẽ ở.

  • Loại bỏ các vị trí rất khó xảy ra (vd: bên ngoài chu vi sân, hoặc trên không trung).

  • Bỏ qua các ước tính vị trí ở rất gần nhau (và khó phân biệt).

  • Sử dụng nhiều camera để nhìn vào cùng một mục tiêu, sao cho ít nhất một camera có thể tạo ra một ước tính vị trí tốt.

  • Nhìn vào nhiều mục tiêu cùng một lúc, sử dụng mỗi mục tiêu để tạo ra nhiều ước tính vị trí. Loại bỏ các ước tính ngoại lai, sử dụng những ước tính tập trung gần nhau.

Ứng dụng

  • Trong bối cảnh các cuộc thi robotics của FIRST, AprilTags hữu ích để giúp robot của bạn biết nó đang ở đâu trên sân, từ đó có thể tự căn chỉnh đến một vị trí mục tiêu nào đó.

  • Căn chỉnh 2D: Một chiến lược đơn giản để sử dụng các mục tiêu là di chuyển robot cho đến khi mục tiêu nằm ở giữa hình ảnh. Giả sử sân và robot được chế tạo sao cho gamepiece, vị trí ghi điểm, mục tiêu hình ảnh và camera đều được căn chỉnh, phương pháp này sẽ cung cấp một cách thức đơn giản để tự động căn chỉnh robot đến vị trí ghi điểm. Sử dụng camera, xác định trọng tâm (centroid) của các AprilTags trong tầm nhìn. Nếu ID của thẻ là chính xác, áp dụng các lệnh điều khiển hệ thống di chuyển để xoay robot sang trái hoặc phải cho đến khi thẻ nằm ở giữa hình ảnh camera. Phương pháp này không yêu cầu hiệu chỉnh camera hoặc thực hiện bước phép chiếu đồng nhất (homography).

  • Căn chỉnh 3D: Một cách sử dụng nâng cao hơn của AprilTags là sử dụng vị trí các góc của chúng để hỗ trợ ước tính vị trí (pose estimation).

Nếu vị trí của camera trên robot đã biết, vị trí của robot trên sân cũng có thể được ước tính.

Các nguồn tham khảo

ADUDU

A proud team of passionate Robotics Enthusiasts competing in nation-wide Technology competitions in Vietnam, the FIRST Tech Challenge and the FIRST Robotics Competition.

Copyright ©

, all rights reserved

Made by aDudu's Programming Department

made by aDudu

April Tags cơ bản

Edit Content