シミュレーション評価

実際のロボットがある場合でも、必ず最初にシミュレーションで評価してください。 Sim の評価は高速かつ安全で、再トレーニング後に比較できる再現可能なベースライン数値が得られます。

ソース ~/lerobot-env/bin/activate # Evaluate your best checkpoint (replace step_050000 with your checkpoint step) python -m lerobot.scripts.eval \ --pretrained ポリシー名またはパス \ ~/lerobot-policies/pick-place-v1/checkpoints/step_050000 \ --env.name Gym_pusht/PushT-v0 \ --eval.n-エピソード 20 \ --eval.use-async-envs false # Outputs: success_rate, mean_reward, episode_videos/
期待されること: 50 のシミュレーション デモンストレーションに関するよく訓練されたポリシーにより、MuJoCo では 60 ~ 85% の成功率が達成されるはずです。 40% 未満の場合は、データセットの品質に問題があることを示しています。 85% を超える場合は、タスクが簡単すぎるか、シム環境が寛容すぎることを意味します。より難しいバリエーションを試してください。

実際のロボットの安全性チェックリスト

実際のロボットで評価している場合は、最初のロールアウトの前にこのチェックリストを実行してください。 テストされていないポリシーは、予期しない方向に進む可能性があります。

  • タスクの一部ではないオブジェクトをワークスペースからクリアします。 このポリシーは、特定の視覚的コンテキストで動作することを学習しました。予期しないオブジェクトが不安定な動作を引き起こす可能性があります。
  • 評価セッション全体にわたって、緊急停止 (E-stop) に留まるか、Ctrl+C を押す準備をしておいてください。 実行中のポリシーから離れないでください。
  • 速度を最大 50% に制限して開始します。 最初のトライアルがぎこちない、または不正確に見える場合は、30% に減らします。
  • トレーニング ワークスペースの設定と正確に一致するようにオブジェクトを配置します。 同じカメラアングル、同じ照明、同じオブジェクトの色を使用します。 現実世界の成功率がゼロになる最も一般的な原因は、分布の変化です。
  • ロボットのジョイントの物理的な停止限界を超えて評価しないでください。 最初の実行前にロボット構成でこれらを確認してください。

リアルロボット評価プロトコル

ちょうど 20 回のトライアルを実行します。 これにより、信頼できる成功率推定 (95% 信頼水準で ±10%) を得るのに十分なサンプルが得られます。 各試行をビデオに記録します。故障モードを診断するために映像が必要になります。

# Run the policy on your real robot python -m lerobot.scripts.control_robot \ --robot-path lerobot/configs/robot/so100.yaml \ --control-mode eval \ --pretrained ポリシー名またはパス \ ~/lerobot-policies/pick-place-v1/checkpoints/step_050000 \ --eval.n-エピソード 20 \ --録画-ビデオ 1

各試行後、手動でスコアを付けます。タスクが完全に成功した場合は 1、失敗した場合は 0 (部分的な把握、落下、ミス) です。 成功率は合計を 20 で割った値です。

故障モードの診断

録画したビデオを見て、失敗を分類します。 ほとんどの失敗は、次の 3 つのカテゴリのいずれかに分類されます。

データ品質

一貫性のないアプローチ軌道 - 腕が完全に掴みきらない

このポリシーは、トレーニング データ内の複数の把握戦略を平均化します。 これは、デモが左側から接近し、他のデモが右側から接近する場合、またはグリッパーが閉じるタイミングが一貫していない場合に発生します。 修正: すべてのデモンストレーションを通じて、単一の意図的な戦略を使用して再録音します。

モデル容量

軌道は妥当に見えますが、精度は一貫して 1 ~ 2 cm ずれています

モデルは正しい動作を学習していますが、正確に動作する能力が不足しています。 これは、chunk_size が短すぎる場合 (計画期間が不十分な場合)、または dim_feedforward が小さすぎる場合に発生します。 修正: chunk_size を 150 に増やし、再トレーニングします。 あるいは、より多様なデモンストレーションを追加してネットワークを正規化します。

流通シフト

あるポジションでは完璧に機能するが、他のポジションでは完全に失敗する

評価中のオブジェクトの位置は、トレーニング データの分布の外にあります。 この政策ではこれまでこうした立場は見られなかった。 修正: より多様なオブジェクトの位置でより多くのデモンストレーションを収集するか、トレーニング データでよく表現されている位置に評価を制限します。

ユニット 5 が完了したら...

20 回の評価トライアル (シミュレーションまたは実際のロボット上) を実行し、成功率を測定しました。 すべての障害モードのビデオを視聴し、主な障害がデータ品質、モデル容量、または分布の変化であるかどうかを特定しました。 この診断を書き留めておきます。これをユニット 6 でのデータ収集のガイドとして使用します。