Swerve Math 是用來計算每個 swerve 輪子的角度與速度,讓機器人可以同時移動與旋轉。它主要根據機器人想要的移動方向與旋轉速度,用向量加法計算每個輪子的輸出,再進行正規化和角度轉換,常會用到三角函數與場地座標轉換,FRC使用wpilib內建class來簡化計算過程.
首先我們先了解FRC的坐標系
FRC中坐標系是一個非常重要的觀念,其中通常分為機器人座標系與場地坐標系.
左圖為機器人坐標系,右圖是場地座標系
因為座標系定義差別,所以會分成絕對方向駕駛跟相對方向駕駛
相對方向:使用機器人座標系,以機器人Gyro定義車頭為基準,車輪將會隨著車頭方向做旋轉,控制向前時都會是往車頭方向移動.
絕對方向:使用場地座標系,以場地藍方為準,駕駛站藍方面向紅方,向前為 X 增加,向左右為 Y 增加,無論機器人定義車頭為何,搖桿向前推動時都是往場地 X 軸增加移動.
Swerve 的移動向量分為幾種
Turning Motor將車輪轉向正前方,Drive Motor依照駕駛搖桿提供速度
SwerveModule 將車輪轉為45度角,並依照旋轉方向輸出
Drive motor會向前對正