this articles is a part of
The FACC'25 event

FACC'25

Kinematics

Các mô hình chuyển động cho các loại drivebase khác nhau trong FTC, các công thức tính toán sau mỗi mô hình này.

Level

Intermediate

Source

Author

Aggregate

Translator

FTC26749 aDudu

Date Published

Sep 23, 2025

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, vxvy 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.

// Robot đang di chuyển với vận tốc 3 mét mỗi giây về phía trước,
// 2 mét mỗi giây sang phải, và xoay nửa vòng mỗi giây ngược chiều kim đồng hồ.
---------
ChassisSpeeds speeds = new ChassisSpeeds(3.0, -2.0, Math.PI);

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.

// Vận tốc tương đối so với sân được mong muốn ở đây là 2 mét mỗi giây
// Hướng về phía tường trạm liên minh của đối thủ, và 2 mét mỗi giây
// Hướng về phía ranh giới bên trái của sân. Tốc độ xoay mong muốn
// Là một phần tư vòng quay mỗi giây ngược chiều kim đồng hồ. 
Góc hiện tại của robot 45 độ.
---------
ChassisSpeeds speeds = ChassisSpeeds.fromFieldRelativeSpeeds
(
    2.0, 2.0, Math.PI / 2.0, Rotation2d.fromDegrees(45.0)
);

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.

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

Kinematics

Edit Content