05 中位零點校準(方向鍵;DIY 必做)
出廠時零點與 IMU 加速度計零點均已標定並固化(逐臺完成,成品可以直接使用、無需本頁)。 DIY 組裝則必做本頁:手動裝配後手臂幾乎不可能正好落在中位。即使組裝時舵盤沒有按 韌體零點裝正,也可以在這裡用方向鍵把手臂擺到目測豎直,按 z 把當前姿態定義為 q=0——z 不依賴 IMU,任意姿態、任意齒位都能定零。
需要重新定零的情況:重新給舵盤換齒、拆卸/重裝過手臂、更換舵機、更換/重裝 IMU (加速度計零點需重標),或扶正收臂後手臂不在正中豎直。
z只改軟體零點,不改變齒位決定的行程分配(PWM 500–2500 µs)。若定零後發現某個 方向行程不夠(舵機被 500/2500 µs 限幅、手臂到不了序列所需角度),需要拆下舵盤重新 調整齒位(肩舵機約錯開 2 齒),再回來重新定零。
使用時機:整機組裝完成並燒錄主韌體之後(DIY 路徑為 03 → 04 → 05)。
5.1 原理
韌體約定 q=0 = "手臂豎直、大臂小臂成一條線"的視覺中位。韌體命令 z 是編碼器式清零: 把當前兩關節位置定義成 q=0,並列印對應的 PWM 中位脈寬。
5.2 操作步驟
電池 + Type-C 都接上(舵機要有電),在
SR-Support目錄、已啟用.venv的 終端裡執行:bashpython tools/hw_shoulder_range.py執行前先關閉串列埠助手/其他監視器(會佔用串列埠);下面介面的按鍵由這個工具讀取, 不需要另開串列埠助手。串列埠工具/串列埠助手(含 Windows UartAssist 下載)見 03 頁 3.3。
介面常駐四行、原地重新整理:
Up/Dn=BigArm L/R=SmallArm Sh:fast z=SetCenter k=Read n=Home q=Quit SmallArm: +0.000 rad ( +0 deg) BigArm: +0.000 rad ( +0 deg)用方向鍵擺臂:
↑/↓= 大臂 ±0.05 rad,←/→= 小臂 ±0.05 rad (按住 Shift = ±0.20),擺到目測豎直、兩臂成一條線;按
z,韌體列印:textzero set: shoulder XXXX us, elbow XXXX us (current pose is now q = 0)順手驗證:按
n回中,再小幅擺動後回中,手臂應準確回到剛才的視覺中位。
5.3 固化(確認好用後必做)
z 只改記憶體,重啟即恢復舊零點。確認姿態滿意後:
- 把列印的兩個 µs 寫回
config.h(SERVO_SHOULDER_CENTER_US/SERVO_CENTER_US); - 把韌體
EXEC_REF*與training/b_line/getup_reference_b39.py的全部路點按相同差值平移 (肩/肘各 −Δ rad); - 重新燒錄,複測四個方向(07 頁)。
誤按
z沒有破壞性:重新擺好再按一遍即可覆蓋。
5.4 相關命令
| 命令 | 作用 |
|---|---|
z | 當前姿態設為兩關節 q=0,列印新中位脈寬(僅記憶體) |
k | 讀取當前中位脈寬(肩/肘 µs) |
o / p | 肩中位 ±10 µs 執行時微調(重啟恢復) |

