這個類別使用陀螺儀、PID控制機器人朝向特定方位移動
Package org.team6083.lib.auto
org.team6083.lib.auto
建構式 GyroWalker(Gyro gyro)
GyroWalker(Gyro gyro)
GyroWalker 會用 Gyro 陀螺儀計算PID的輸出。 ( Gyro 是存在於WPILib的介面)
GyroWalker
Gyro
ADXRS450_Gyro gyro = new ADXRS450_Gyro(); GyroWalker gyroWalker = new GyroWalker(gyro);
使用 setTargetAngle(double angle) 設定目標方位, GyroWalker 會自動調整輸出轉向到目標方位。 (範圍從 -180~180 度)
setTargetAngle(double angle)
gyroWalker.setTargetAngle(90); //set target to 90 deg
使用 calculate(double leftSetPower, double rightSetPower) 計算PID的輸出值 ( leftSetPower , rightSetPower 是原始的左、右輪的速度)
calculate(double leftSetPower, double rightSetPower)
leftSetPower
rightSetPower
gyroWalker.calculate(0.5, 0.5);
GyroWalker 內部有PI控制器(PID沒有D),GyroWalker 會根據設定的 targetAngle 用PID計算出馬達所需改變的輸出( editPower ),最後對原始的左、右輪速度進行加、減,就是最後輸出值。
targetAngle
editPower
在計算完成後,使用 getLeftPower() & getRightPower() 取得左、右馬達輸出值
getLeftPower()
getRightPower()
double leftSpeed = gyroWalker.getLeftPower(); double rightSpeed = gyroWalker.getRightPower();
目前 GyroWalker 只有支援 kP, kI,還不支援kD控制。
使用 setkP() & setkI() 設定 kP, kI。
setkP()
setkI()
double kP = 0.001; double kI = 0.005; gyroWalker.setkP(kP); gyrowalker.setkI(kI);
There was an error while loading. Please reload this page.