

Kinematics là gì?
Bộ kinematics gồm các lớp cho các kiểu truyền động:
differential drive (dẫn động vi sai),
swerve drive (dẫn động module xoay),
mecanum drive (dẫn động bánh Mecanum),
Các lớp kinematics giúp chuyển đổi giữa một đối tượng tổng quát ChassisSpeeds (chứa vận tốc tuyến tính và góc của robot) và vận tốc riêng cho từng loại drivetrain:
vận tốc bánh trái/phải cho differential,
vận tốc bốn bánh cho mecanum,
trạng thái vận tốc & góc cho từng module trong swerve.
Odometry là gì?
Odometry là kỹ thuật sử dụng cảm biến trên robot để ước lượng vị trí của robot trên sân đấu theo thời gian thực.
Trong FTC điều này thường dùng:
nhiều encoder (số lượng tùy theo loại truyền động),
và có thể thêm gyro để đo hướng quay robot.
Các lớp odometry sử dụng:
các lớp kinematics,
cùng các dữ liệu tuần hoàn từ người dùng (speeds và angles), để tạo ra vị trí robot tương đối theo thời gian.
Odometry trong FTC được dùng như một cách thay thế cho hệ thống odometer mà các đội thường triển khai.
Lớp ChassisSpeeds
Đối tượng ChassisSpeeds là cốt lõi của WPILib kinematics và odometry.
Nó biểu diễn vận tốc của khung robot qua ba thành phần:
vx: vận tốc robot theo trục x (tiến về phía trước).vy: vận tốc robot theo trục y (đi ngang). (Giá trị dương là robot di chuyển sang trái.)omega: vận tốc góc (tốc độ quay) của robot theo radian/giây.
Với drivetrain không holonomic (ví dụ differential drive — không đi ngang),
giá trị vy sẽ luôn = 0 vì robot không thể di chuyển sang ngang. docs.ftclib.org
Tạo Đối tượng ChassisSpeeds
Constructor của ChassisSpeeds rất đơn giản, nhận ba tham số:
vx(m/s),vy(m/s),omega(rad/s).
Ví dụ:
Tạo ChassisSpeeds từ Vận tốc theo Tương đối Sân đấu
Bạn có thể tạo đối tượng ChassisSpeeds từ bộ vận tốc liên quan đến sân đấu khi biết hướng hiện tại của robot.
Điều này hữu ích khi lập trình field-oriented control cho swerve hoặc mecanum drive (robot di chuyển theo hướng sân đấu, không theo hướng robot).
Phương thức tĩnh ChassisSpeeds.fromFieldRelativeSpeeds() nhận vào:
vx(so với sân đấu),vy(so với sân đấu),omega(tốc độ quay),và góc robot hiện tại.
Ví dụ:
Khi đó, phương thức sẽ tính toán vận tốc robot khung (robot frame) tương ứng từ các thông số theo sân đấu.
Chú giải thuật ngữ
Kinematics: tập các lớp toán học dùng để chuyển đổi vận tốc giữa robot frame và wheel/module speeds.
Odometry: kỹ thuật theo dõi vị trí robot dựa trên cảm biến trong thời gian thực.
ChassisSpeeds: struct chứa vận tốc tuyến tính và vận tốc góc của robot.
Field-oriented: điều khiển robot theo hướng field thay vì hướng robot.

