🧪 新しいチュートリアルを公開中 — ロボットアームからセンサーまで
コンテンツへスキップ

ステージ3:遠隔操作(Windows) ​

本ステージでは遠隔操作のクローズドループを起動します:リーダーアームがフォロワーアームの動きを制御し、グリッパーが AmazingHand の開閉を制御します。これはシステム全体が正常に動作するかを検証する重要なステージです。


前提条件 ​

  • ステージ1:環境構築 と ステージ2:キャリブレーション を完了している

  • 3 台のデバイスに電源を投入済み、シリアルポートを記録済み


遠隔操作の実行 ​

PowerShell
lerobot-teleoperate --robot.type=so101_amazing_hand --robot.port=<follower_arm_com> --robot.hand_port=<hand_com> --robot.id=amazing_hand_follower --teleop.type=so101_leader --teleop.port=<leader_arm_com> --teleop.id=amazing_hand_leader

<follower_arm_com> / <hand_com> / <leader_arm_com> をあなたのマシンの実際の COM 番号に置き換えてください(例 COM58 / COM11 / COM54)。

期待される動作:

  • リーダーアームの 5 関節 → フォロワーアームが追従

  • リーダーアームのグリッパー → AmazingHand の開閉(比例追従:半分つまむ = 半分閉じる)

💡 パラメータ説明:

  • --robot.type=so101_amazing_hand:フォロワーアーム + ハンドの複合ロボット

  • --robot.port:フォロワーアームのシリアルポート

  • --robot.hand_port:ハンドのシリアルポート

  • --teleop.type=so101_leader:リーダーアームの遠隔操作器

  • --teleop.port:リーダーアームのシリアルポート


初回実行時に必須:方向の検証 ​

起動後、まず方向テストを行い、以下の 2 点がどちらも正しいことを確認します:

テスト操作正しい現象
アームの追従リーダーアームの各関節を回すフォロワーアームが同方向に追従
ハンドの開閉リーダーアームのグリッパーを開く/つまむグリッパーが開く → ハンドが開く;グリッパーをつまむ → ハンドが閉じる

⚠️ 注意(方向が逆の場合の対処):

  • ハンドの開閉方向が逆(グリッパーを開くとハンドが閉じる):ハンド角度のキャリブレーションが不正確です。キャリブレーションツール(グリッパー方向のキャリブレーションを含む)を再実行し、保存後は自動的に反映されます。手動でファイルを変更する必要はありません。ステージ2:キャリブレーション を参照してください。

  • グリッパーのマッピング方向が逆(グリッパーを開くとハンドが閉じる):同上。キャリブレーション時にリーダーアームのグリッパーを開いたときに [Capture Open] を、つまんだときに [Capture Close] をクリックすると、ツールが自動的に gripper_open_pos/gripper_close_pos を記録・保存し、起動時に自動的に読み込みます。

変更後は遠隔操作を再実行して検証します。


比例追従の検証 ​

方向が正しければ、比例の細かさを検証します:

  1. ゆっくりグリッパーを開く → ハンドは滑らかに開くはずです(跳びがない)

  2. グリッパーを中間で止める → ハンドも中間で止まるはずです

  3. 素早く開閉 → ハンドが素早く応答し、カクつきがない

⚠️ 注意(ハンド開閉が行き過ぎる既知の問題):グリッパーが半分開いた時点でハンドが閉じてしまう場合は、ハンド角度のキャリブレーション時に"開く/握る"位置が不正確なことがほとんどです。キャリブレーションのステップ 3(ハンド角度 GUI)を再実行し、より正確な開閉位置をキャリブレーションしてください。


オプション:カメラ付きの可視化 ​

--robot.cameras でカメラを接続し、--display_data=true で Rerun 可視化ウィンドウを開きます(カメラ画像 + 関節状態をリアルタイム表示):

PowerShell
lerobot-teleoperate --robot.type=so101_amazing_hand --robot.port=<follower_arm_com> --robot.hand_port=<hand_com> --robot.id=amazing_hand_follower --teleop.type=so101_leader --teleop.port=<leader_arm_com> --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 圧縮に変更)。カクつく場合に追加します。

  • カメラが 1 つだけでよい場合は、対応する行(例 top)を削除するだけです。

⚠️ 注意(rerun 依存関係):--display_data=true には rerun 可視化パッケージが必要です。未インストールの場合は次を実行します:

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

Rerun Viewer の実行ファイルが必要です。Windows で Failed to find Rerun Viewer executable と報告された場合は、GUI ビューアが欠けています。遠隔操作には影響しません。--display_data=true を外すだけです。


終了 ​

Ctrl+C を押すと停止します。プログラムは自動的に:

  1. 8 つのハンドサーボのトルクを解除

  2. フォロワーアーム/リーダーアームのシリアルポートを切断

  3. カメラを切断(あれば)

⚠️ 注意:正常終了の前にターミナルを直接閉じないでください。そうしないとシリアルポートの占有が残る可能性があります。異常終了後にシリアルポートが占有されている場合は、USB を差し直すかターミナルのプロセスを再起動してください。


トラブルシューティング ​

現象原因解決
ハンドの方向が逆ハンド角度またはグリッパーマッピングが逆上文の"方向の検証"を参照。角度を入れ替えるかマッピングを調整
ハンドの開閉が過大/不足ハンド角度のキャリブレーションが不正確ハンド角度 GUI を再キャリブレーション
アームが追従しないキャリブレーション欠如/シリアルポート誤りフォロワーアームがキャリブレーション済みか、--robot.port が正しいか確認
rerun がエラー可視化依存の欠如--display_data=true を外す
シリアルポートが占有されている前回の異常終了占有しているプロセスを閉じるか USB を差し直す