

1. Kinematics là gì?
Kinematics đơn giản là động học, nghiên cứu về chuyển động của vật thể. Các lớp động học giúp chuyển đổi giữa một ChassisSpeeds vật thể phổ quát, chứa vận tốc tuyến tính và góc cho robot, sang tốc độ khả dụng cho từng loại hệ truyền động riêng lẻ
Ví dụ, tốc độ bánh xe trái và phải cho truyền động vi sai, tốc độ bốn bánh cho truyền động mecanum, hoặc trạng thái mô-đun riêng lẻ (tốc độ và góc) cho truyền động quay vòng.

2. Lớp ChassisSpeeds trong FTC
ChassisSpeeds là thành phần cốt lõi của bộ công cụ kinematics và odometry mới trong WPILib. Đối tượng ChassisSpeeds biểu diễn các vận tốc của khung gầm robot. Cấu trúc này bao gồm ba thành phần:
vx: Vận tốc của robot theo hướng x (tiến về phía trước).vy: Vận tốc của robot theo hướng y (sang ngang).omega: Vận tốc góc của robot, tính bằng radian trên giây.
Hệ thống truyền động không toàn phần (tức là hệ thống truyền động không thể di chuyển sang ngang.
Ví dụ, hệ thống truyền động vi sai, sẽ có vy thành phần bằng không vì không thể di chuyển sang ngang.
3. Xây dựng đối tượng ChassisSpeeds
Hàm tạo cho ChassisSpeeds đối tượng rất đơn giản, chấp nhận ba đối số cho vx, vy, và omega.
Trong Java, vx và vy phải được tính bằng mét trên giây (m/s). Trong C++, thư viện đơn vị có thể được sử dụng để cung cấp vận tốc tuyến tính bằng bất kỳ đơn vị vận tốc tuyến tính nào.
4. Tạo đối tượng ChassisSpeeds với tốc độ tương ứng
Một ChassisSpeeds đối tượng cũng có thể được tạo ra từ một tập hợp các tốc độ tương đối với trường khi góc của robot được cung cấp.
Điều này chuyển đổi một tập hợp các vận tốc mong muốn so với trường (ví dụ, về phía trạm liên minh đối diện và về phía ranh giới trường bên phải) thành một ChassisSpeeds đối tượng biểu diễn các tốc độ tương đối với khung robot.
Tốc độ góc không được nêu rõ ràng là "tương đối với trường" vì tốc độ góc giống như khi đo từ góc nhìn của trường hoặc góc nhìn của robot.

