你是否曾經讓機器人向前行駛,結果卻看著它偏向一側?你不是一個人!讓機器人完美直線行駛是 VEX IQ 程式設計中最常見的挑戰之一。
在本指南中,我們將教你一種叫做比例控制的技術,它能在機器人開始偏移時自動校正。
為什麼我的機器人會偏移?
即使使用相同的馬達和輪子,機器人也很少能完美直線行駛。原因如下:
- 馬達差異 - 沒有兩個馬達是完全相同的
- 輪子摩擦力 - 一個輪子可能比另一個更能抓住地面
- 重量分布 - 如果機器人一側較重,它會向那個方向偏移
- 地面表面 - 凹凸、接縫或光滑的地方會對每個輪子產生不同的影響
解決方案?與其期望機器人直線行駛,我們偵測它何時偏移並自動校正。
秘訣:Brain Inertial 感測器
VEX IQ 第二代主機內建了慣性感測器,可以追蹤機器人的旋轉。我們可以用它來偵測偏移:
- 機器人面向前方 = 0 度
- 機器人向右偏移 = 正角度(如 5°)
- 機器人向左偏移 = 負角度(如 -5°)
透過持續檢查這個感測器,我們可以準確知道機器人何時偏離軌道。
基本原理:比例控制
比例控制遵循一個簡單的公式:
校正值 = 誤差 × kp
其中:
- 誤差 = 目標位置 - 實際位置
- kp = 校正的強度
當誤差大(機器人偏移很多)時,我們校正很多。當誤差小(接近目標)時,我們校正一點。這創造了平滑、自然的校正。
直線行駛函式
這是一個使用比例控制讓機器人直線行駛的自訂積木:
每個參數的作用
| 參數 | 控制內容 |
|---|---|
rotation | 目標航向(直行通常為 0) |
distance | 行駛距離(以馬達角度為單位) |
velocity | 速度(正值 = 前進,負值 = 後退) |
kp | 校正強度 |
校正如何運作
假設機器人在前進時向右偏移了 5 度:
- 誤差 = 0 - 5 = -5(我們偏離目標 5 度)
- 輸出 = -5 × 1 = -5
現在我們調整馬達:
- 左馬達 = 速度 + (-5) = 減速
- 右馬達 = 速度 - (-5) = 加速
右輪加速,使機器人向左轉,校正偏移!
完整程式
這是一個直線前進和後退的完整程式:
這個程式:
- 校準慣性感測器(保持機器人靜止!)
- 前進 720 馬達角度,同時保持 0° 航向
- 後退 720 馬達角度,同時保持 0° 航向
調整 kp 值
kp 值決定了機器人校正的強度。每個機器人都不同,所以你需要實驗!
| kp 值 | 行為 |
|---|---|
| 太低 | 機器人偏移,校正太弱 |
| 剛好 | 平滑、直線行駛 |
| 太高 | 機器人來回擺動 |
如何調整:
- 機器人仍在偏移?→ 增加 kp
- 機器人擺動?→ 減小 kp
常見問題和解決方法
機器人彎曲而不是直線行駛
- 檢查 Brain Inertial 是否已校準(啟動時機器人必須靜止)
- 增加你的 kp 值
機器人行駛時擺動
- 減小你的 kp 值
- 嘗試降低速度
機器人應該前進卻後退
- 檢查裝置設定中的馬達方向
- 確保 LeftMotor 和 RightMotor 連接到正確的連接埠
下一步
掌握直線行駛後,你可以:
- 新增轉向函式來旋轉到特定角度
- 將動作組合成複雜的自主程式
- 學習 PID 控制以獲得更平滑的運動
同樣的比例控制概念適用於轉向、機械臂定位和許多其他機器人行為。掌握這個基礎,你將擁有應對任何程式設計挑戰的強大工具!
這項技術被各級別的 VEX 競賽隊伍使用。從簡單開始,調整你的數值,看著你的機器人從一個漫遊者變成一台精確的機器。