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

ステージ6:モデルデプロイ(Linux) ​

本ステージでは訓練済みのポリシーを読み込み、ロボットに自律的にタスクを実行させ、評価動画を記録して効果を検証します。これはフロー全体の締めくくりであり、訓練成果を確認する要でもあります。


前提条件 ​

  • ステージ5:モデル訓練 を完了している

  • 訓練により outputs/train/soarm_amazing_hand_pick/checkpoints/last/pretrained_model/ が生成されている

  • カメラのインデックスを記録済み


ステップ 1:モデルファイルの確認 ​

Bash
ls outputs/train/soarm_amazing_hand_pick/checkpoints/last/pretrained_model

model.safetensors などのモデルファイルが含まれているはずです。

⚠️ 注意(モデルパス):--policy.path は pretrained_model ディレクトリ(設定 + 重みを含む)を指す必要があり、checkpoint のルートディレクトリではありません。


ステップ 2:デプロイと評価 ​

Bash
lerobot-rollout \
  --strategy.type=episodic \
  --robot.type=so101_amazing_hand \
  --robot.port=<follower_arm_port> \
  --robot.hand_port=<hand_port> \
  --robot.id=amazing_hand_follower \
  --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"}
  }' \
  --policy.path=outputs/train/soarm_amazing_hand_pick/checkpoints/last/pretrained_model \
  --dataset.repo_id=rollout_soarm_amazing_hand_pick_eval \
  --dataset.root=~/lerobot_data \
  --dataset.push_to_hub=false \
  --dataset.num_episodes=10 \
  --dataset.single_task="Pick up the cube with the dexterous hand" \
  --display_data=true

<follower_arm_port> / <hand_port> を実際のパスに置き換えます;カメラの index_or_path をあなたのカメラインデックスに置き換えます。

💡 説明:lerobot-rollout を使用しますが付けません ****--teleop.type、ポリシーがロボットを自律的に制御します(人手による遠隔操作の代わり)。データは評価セットとして保存されます。--dataset.root / --dataset.push_to_hub=false はステージ4 と一致し、純粋なローカル保存で HF ログインは不要です。


評価操作 ​

  1. ロボット + ハンドを開始位置に復帰させる

  2. Enter を押して開始:ポリシーが自律的にタスクを実行します

  3. 把持に成功したかを観察します(各エピソード終了時に Enter を押して続行)

  4. num_episodes 回繰り返す

評価指標:成功率 = 成功したエピソード数 / 総エピソード数

⚠️ 注意 1(リセットの一貫性):各エピソードは同じ開始位置から始めます。そうしないとポリシーの汎化が失敗し、成功率が実際より低く出ます。

⚠️ 注意 2(安全):初回の自律実行は手で支えながら/低速で観察し、ポリシーの動作が妥当か確認することを推奨します。ポリシーは予期しない動作をする可能性があります。

⚠️ 注意 3(成功率の目安):ACT は 20 エピソードのデータで通常 50-80% の成功率です。期待より低い場合は、戻ってデータを追加記録するか、訓練ステップ数を調整してください。

⚠️ 注意 4(ヘッドレス環境):--display_data=true にはディスプレイサーバーが必要です;GUI がない場合はこの引数を外します(評価は継続され、リアルタイム表示されないだけです)。


反復最適化 ​

評価の成功率が芳しくない場合は、優先度に従って調整します:

優先度最適化項目操作
1高品質データの追加記録ステージ4 に戻り、より一貫したデータを 20-30 エピソード追加記録する
2訓練ステップ数の増加ステージ5 に戻り、--steps=100000
3開始位置の一致を確認評価時に各エピソードを厳密にリセットする
4タスク説明の調整single_task がタスクと一致していることを確認する

これで SO-ARM101 + AmazingHand の完全なクローズドループが完成します:キャリブレーション → 遠隔操作 → 収集 → 訓練 → デプロイ。


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

現象原因解決
モデルの読み込みに失敗パスが誤り/不完全--policy.path が pretrained_model ディレクトリを指しているか確認
ポリシーが動かないカメラ/観測の誤りカメラインデックスが訓練時と一致しているか確認;/dev/video* の権限を確認
ポリシーが勝手に動く開始位置の不一致/データ品質が低い厳密にリセット;データを追加記録
訓練時と挙動が異なる環境の違いカメラ、照明、物体の位置が記録時と一致しているか確認