07 自扶正使用與監控
成品出廠前已逐臺完成四方向扶正測試。首次使用時建議仍按 7.2 節把四個方向各驗證一次, 確認運輸後狀態正常。
7.1 操作步驟
- 上電時保持機器人直立,等待串列埠出現
autorun on: get-up waits for a fall; - 把機器人放倒(任意方向),鬆手並保持靜止約 0.5 秒;
- 串列埠出現
getup start pose=<姿態>後開始自動扶正; - 扶正完成後串列埠出現
standing -> executor done,執行器回到待命; - 若 14 秒內未完成,串列埠出現
executor timeout,1.5 秒冷卻後跌倒門會再次觸發重試。
7.2 四個方向的預期過程
| 姿態 | 機制 | 實機用時 |
|---|---|---|
pitch_neg(頂部朝 −X) | 肘部撐地 + 肩部回擺直接撬起 | ≈3 s |
pitch_pos(頂部朝 +X) | 直接撬起;若收臂時翻向對側,姿態重規劃接 pitch_pos 再扶正 | ≈5–6 s |
roll_pos(頂部朝 −Y) | 肩部大行程直接槓桿扶正 | ≈3 s |
roll_neg(頂部朝 +Y) | 全行程直接按壓 → 肘部楔形泵 ×2 → 必要時鞭甩下砸重試;無需翻滾 | ≈2–6 s |
早期韌體中
roll_neg需要"滾過頂部 + 姿態重規劃"(5–14 秒);現版本已改為與 +Y 側鏡像的 直接按壓機制,四方向動作對稱、速度接近。若偶爾出現executor re-plan roll_neg -> ...,說明該次按壓失敗進入了兜底重試,屬正常退路。
7.3 執行器邏輯(韌體內)
- 每個參考路點 20 拍(0.4 s),線性插值;每拍輸出限速 0.08 rad;
- 參考走完後以 0.033 rad/拍把手臂收回中立位;
up_z > 0.95且目標歸零持續 50 拍 → 判定完成;- 身體停在另一躺姿軸(
up_z<0.6、|ω|<0.8持續 15 拍)→ 中立回撤後切換新姿態參考,最多 5 次; roll_neg參考帶分階段自適應保持:按壓/泵階段在up_z<0.92時保持(各階段有上限拍數, 按壓 40 / 泵 30 / 泵 30 / 鞭甩 40 / 收尾 90 拍);序列中途站起會立即跳到收臂階段,避免站好後 再被後續動作打倒。
7.4 監控與日誌
bash
python tools/hw_monitor.py COM27(在 SR-Support 目錄、已啟用 .venv 的終端裡執行,見 02 頁。 執行前先關閉串列埠助手/其他監視器;串列埠工具/串列埠助手(含 Windows UartAssist 下載)見 03 頁 3.3。)
- 持續讀取串列埠,每 5 秒彙總一次遙測,事件與摘要追加到
logs/hw_monitor.log; - 自動記錄事件:
getup start、executor re-plan、standing、executor timeout、IMU lost等; - 自動檢查舵機越界(肩
[-1.85,+1.82]、肘±1.55),越界時寫!! VIOLATION; - 執行器執行期間每 0.2 s 輸出軌跡:
text
executor pose=roll_neg ph=3 tick=9 tgt=(2.00,-0.80) up=(0.58,-0.24,-0.77) q=(2.00,-0.80) sw=0| 欄位 | 含義 |
|---|---|
pose | 當前參考姿態 |
ph / tick | 當前路點相位 / 相位內拍數 |
tgt | 目標關節角 |
up | 當前 up 向量 |
q | 當前關節指令 |
sw | 已發生的姿態切換次數 |
監控程式開啟串列埠會復位 ESP32;燒錄前必須先關閉監控。
7.5 記錄與複測
建議每次測試記錄:姿態、是否 done、用時、切換次數、是否有越界。日誌檔案即為記錄, 可直接用 logs/hw_monitor.log 的時間戳檢索。

