

TỔNG QUAN VỀ ODOMETRY TRONG FTC
1. Các đại lượng và linh kiện cơ bản
Odometry giúp robot tính toán vị trí (x, y) và góc quay (θ) của nó trên sân thi đấu, nhờ vào:
IMU (Inertial Measurement Unit): đo góc quay (heading, orientation)
Encoder: cảm biến đo số vòng quay bánh xe (để tính quãng đường di chuyển).
Odometry Pods: các bánh xe nhỏ gắn encoder, chuyên dùng để theo dõi vị trí (chính xác hơn so với encoder trong motor drive).
2. Linh kiện chính
A. IMU
Được tích hợp trong REV Control Hub / Expansion Hub.
Dùng để đo góc quay (yaw, pitch, roll), trong odometry ta thường chỉ dùng yaw (heading).
Code mẫu IMU cơ bản (Java, FTC SDK):
B. Encoder
Encoder thường có sẵn trong motor GoBilda, NeveRest, REV HD Hex.
Trả về ticks (đếm số xung) → từ đó tính ra quãng đường:

Code mẫu đọc encoder từ motor:
c. Odometry Pods / Encoder
Là bánh xe encoder riêng, không dùng để di chuyển mà chỉ để đo vị trí.
Thường có 3 pod
X (trái, phải) → đo tiến/lùi.
Y (ngang) → đo dịch ngang.
Kết hợp cùng IMU để xác định chính xác (x, y, heading).
Code mẫu đọc odometry pods: (sử dụng encoder của động cơ [built-in encoder])
3. Tích hợp Odometry + IMU → Tính toán vị trí (x, y, θ)
Lưu ý: Phần giải thích thuật toán và hướng dẫn lập trình chi tiết sẽ được đặt ở phía dưới (phần V của tài liệu), đây chỉ là phần code tham khảo cho odometry
Pseudo-code (ví dụ):
4. Code mẫu ví dụ: Robot tự in ra vị trí
Lưu ý:
Các bạn nên bắt đầu với IMU vì nó dễ dùng nhất để kiểm tra góc quay.
Sau đó học cách đọc encoder trong motor.
Cuối cùng mới lắp odometry pods để đạt độ chính xác cao.
Nên vẽ sơ đồ sân và log vị trí robot để dễ debug.

