Caution Tape Robotics Club
返回網誌

如何讓你的 VEX IQ 機器人精確轉向

2026年2月6日 2 分鐘閱讀 Master Shifu

使用動量補償的機器人精確轉向

你是否曾經讓機器人轉 90 度,結果卻看著它轉到了 95 或 100 度?這種過衝問題是 VEX IQ 程式設計中最令人沮喪的挑戰之一。

在本指南中,我們將教你一種叫做動量補償的技術,讓你的機器人精確停在你想要的位置。

為什麼我的機器人會過衝?

當你讓馬達停止時,機器人不會立即凍結。它有動量 - 運動物體繼續運動的趨勢。以下是發生的情況:

  1. 機器人正在向 90 度旋轉
  2. Brain Inertial 讀數為 90 度 - 該停止了!
  3. 你發送停止命令
  4. 但機器人仍在運動…它滑行到了 95 度

你的機器人越重,轉速越快,過衝就越嚴重。

解決方案:提前停止

技巧很簡單:在到達目標之前停止,讓動量帶你走完剩餘的路程。

如果你的機器人通常過衝 10 度:

  • 目標:90 度
  • 停止於:80 度
  • 動量帶你到:約 90 度

這個「提前停止」的量就是我們所說的動量值

轉向函式

這是一個帶有動量補償的自訂積木,可以讓機器人轉到任意角度:

defineturnrotationrotationvelocityvelocitymomentummomentumifrotationBrainInertialrotationindegreesthen左轉 - 透過加上動量值提前停止whilerotationmomentumBrainInertialrotationindegreessetLeftMotorvelocitytovelocity%setRightMotorvelocitytovelocity%spinLeftMotorreversespinRightMotorforwardelse右轉 - 透過減去動量值提前停止whilerotationmomentumBrainInertialrotationindegreessetLeftMotorvelocitytovelocity%setRightMotorvelocitytovelocity%spinLeftMotorforwardspinRightMotorreversestopLeftMotorstopRightMotor

每個參數的作用

參數控制內容
rotation目標角度(從起始位置算起的角度)
velocity轉向速度(0-100%)
momentum提前停止的角度數

轉向邏輯如何運作

函式首先透過比較目標位置(rotation)和目前位置(BrainInertial rotation)來判斷轉向方向:

右轉(目標 > 目前):

  • 左馬達向前轉
  • 右馬達向後轉
  • 機器人順時針旋轉

左轉(目標 < 目前):

  • 左馬達向後轉
  • 右馬達向前轉
  • 機器人逆時針旋轉

動量計算

假設你想右轉到 90 度,動量 = 10:

沒有動量補償:

停止於:BrainInertial = 90
機器人滑行到:約 100 度(過衝了 10 度!)

有動量補償:

停止於:BrainInertial = 90 - 10 = 80
機器人滑行到:約 90 度(完美!)

對於左轉,我們加上動量值而不是減去(因為左轉時 Brain Inertial 減小)。

完整程式

這是一個示範轉向的完整程式:

whenstartedcalibrateBrainInertialturn90rotation30velocity10momentumturn0rotation30velocity10momentumturn-90rotation30velocity10momentumturn0rotation30velocity10momentum

這個程式:

  1. 校準慣性感測器(保持機器人靜止!)
  2. 右轉到 90 度
  3. 轉回 0 度(中心)
  4. 左轉到 -90 度
  5. 回到中心

調整動量值

正確的動量值取決於你機器人的重量、輪子抓地力和轉向速度。每個機器人都不同!

動量行為
太低機器人過衝目標
剛好機器人精確停在目標位置
太高機器人在目標前停下

如何調整:

  • 機器人過衝?→ 增加動量值
  • 機器人提前停下?→ 減小動量值

速度也很重要

轉得越快,動量越大,所以需要更高的補償。如果你改變轉向速度,你可能需要重新調整動量值。

常見問題和解決方法

機器人轉向過衝

  • 增加你的動量值
  • 嘗試降低速度

機器人在目標前停下

  • 減小你的動量值

機器人轉向方向錯誤

  • 檢查裝置設定中的馬達方向
  • 確保 LeftMotor 和 RightMotor 在正確的一側

轉向精度不一致

  • 確保 Brain Inertial 已校準(啟動時機器人必須靜止)
  • 檢查電池電量 - 低電量會影響馬達效能
  • 清潔輪子 - 打滑會導致結果不一致

與直線行駛結合

現在你可以將轉向與我們之前指南中的直線行駛函式結合使用:

whenstartedcalibrateBrainInertialdriveStraight0rotation720distance30velocity1kpturn90rotation30velocity10momentumdriveStraight90rotation720distance30velocity1kpturn180rotation30velocity10momentumdriveStraight180rotation720distance30velocity1kp

這創建了一個 L 形路徑:

  1. 前進(航向 0°)
  2. 右轉 90°
  3. 前進(航向 90°)
  4. 再右轉 90°
  5. 前進(航向 180°)

快速參考表

問題最可能的原因快速解決
轉向過衝動量值太低增加動量值
提前停下動量值太高減小動量值
轉向方向錯誤馬達方向錯誤檢查裝置設定
結果不一致校準問題啟動時保持靜止

下一步

掌握動量轉向後,你可以:

  • 建構複雜的自主程式,結合行駛和轉向
  • 學習比例轉向以獲得更平滑的旋轉
  • 探索 PID 控制以達到競賽級別的精度

動量補償技術被各級別的 VEX 競賽隊伍使用。掌握這些基礎知識,你將擁有應對任何自主挑戰的建構模組!


專業提示:保持一個調參日誌!記錄下哪些動量和速度值最適合你的機器人。如果你修改了機器人的重量或輪子配置,這些值會改變。

分享文章

不知道從哪裡開始?

使用路徑指南為您的孩子找到合適的課程。

探索課程