🧪 新教程持續更新中 · 由機械臂到傳感器,跟隨教程從零搭建
跳到主要內容

階段三:遙操作(Linux) ​

本階段啟動遙操作閉環:主動臂控制從動臂運動、夾爪控制 AmazingHand 開合。這是驗證整套系統是否正常工作的關鍵階段。


前置條件 ​

  • 已完成 階段一:環境搭建 和 階段二:標定

  • 串口權限已配置

  • 三裝置已上電、串口已記錄


執行遙操作 ​

Bash
lerobot-teleoperate \
  --robot.type=so101_amazing_hand \
  --robot.port=<從動臂串口> \
  --robot.hand_port=<手串口> \
  --robot.id=amazing_hand_follower \
  --teleop.type=so101_leader \
  --teleop.port=<主動臂串口> \
  --teleop.id=amazing_hand_leader

將 <從動臂串口> / <手串口> / <主動臂串口> 替換為你機器實際的路徑(示例 /dev/ttyACM0 / /dev/ttyACM2 / /dev/ttyACM1)。

預期效果:

  • 主動臂 5 關節 → 從動臂跟隨

  • 主動臂夾爪 → AmazingHand 開合(比例跟隨:半捏 = 半閉)

💡 參數說明:

  • --robot.type=so101_amazing_hand:從動臂 + 手組合機器人

  • --robot.port:從動臂串口

  • --robot.hand_port:手串口

  • --teleop.type=so101_leader:主動臂遙操作器

  • --teleop.port:主動臂串口


首次執行必做:方向驗證 ​

啟動後,先做方向測試,確認以下兩點都正確:

測試操作正確現象
臂跟隨轉動主動臂各關節從動臂同向跟隨
手開合張開/捏合主動臂夾爪夾爪張開 → 手張開;夾爪捏合 → 手閉合

⚠️ 注意(方向反了怎麼辦):

  • 手開合方向反(張開夾爪手反而閉合):說明手角度標定不準,重新執行標定工具(含夾爪方向標定),儲存後自動生效,無需手動改檔案。參見 階段二:標定。

  • 夾爪映射方向反(夾爪張開手反而閉合):同上,標定時在主動臂夾爪張開時點 [Capture Open]、捏合時點 [Capture Close],工具自動記錄並儲存 gripper_open_pos/gripper_close_pos,啟動時自動載入。

修改後重新執行遙操作驗證。


比例跟隨驗證 ​

方向正確後,驗證比例細膩度:

  1. 緩慢張開夾爪 → 手應平滑張開(無跳變)

  2. 夾爪停在中間 → 手也應停在中間

  3. 快速張合 → 手快速回應,無卡頓

⚠️ 注意(手開合過度的歷史問題):若手在夾爪開一半時就閉合,多為手角度標定時"張開/握拳"位置不準。重新執行標定步驟 3(手角度 GUI),標定更精確的開合位置。


可選:帶攝像頭的可視化 ​

加 --robot.cameras 接入相機、--display_data=true 打開 Rerun 可視化視窗(實時顯示相機圖像 + 關節狀態):

Bash
lerobot-teleoperate \
  --robot.type=so101_amazing_hand \
  --robot.port=<從動臂串口> \
  --robot.hand_port=<手串口> \
  --robot.id=amazing_hand_follower \
  --teleop.type=so101_leader \
  --teleop.port=<主動臂串口> \
  --teleop.id=amazing_hand_leader \
  --robot.cameras='{
    wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: "MJPG"},
    top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30, fourcc: "MJPG"}
  }' \
  --display_data=true

💡 說明:

  • index_or_path 為相機索引,先用 lerobot-find-cameras 確認(不同機器編號不同)。

  • fourcc: "MJPG" 可選,可顯著降低 USB 攝像頭帶寬佔用(改用 MJPEG 壓縮),卡頓時可加。

  • 相機只需一個時,刪掉對應一行(如 top)即可。

⚠️ 注意(rerun 依賴與顯示):--display_data=true 需要 rerun 可視化包,未安裝時執行:

Bash
pip install "rerun-sdk>=0.24.0,<0.34.0"

且 rerun 視窗需要顯示伺服器(本地圖形會話或 ssh -X)。無圖形環境時不影響遙操作,去掉 --display_data=true 即可。


退出 ​

按 Ctrl+C 停止。程式自動:

  1. 解除 8 個手舵機扭矩

  2. 斷開從動臂/主動臂串口

  3. 斷開相機(如有)

⚠️ 注意:正常退出前不要直接關閉終端(如 kill -9),否則可能殘留串口佔用。若異常退出後串口被佔用,關閉殘留進程或重插 USB。


故障排查 ​

現象原因解決
串口 Permission denied權限未配置sudo chmod 666 /dev/ttyACM*
手方向反手角度或夾爪映射反見上文"方向驗證"
手開合過度/不足手角度標定不準重標手角度 GUI
臂不跟隨標定缺失/串口錯確認從動臂已標定、--robot.port 正確
rerun 報錯可視化依賴/顯示缺失去掉 --display_data=true
串口被佔用上次異常退出關殘留進程或重插 USB