実際の腕で推論を実行する

デプロイメントとは、トレーニングされたチェックポイントをリアルタイムで実行し、ライブ カメラと共同観察をネットワークにフィードし、物理アーム上で出力アクションを実行することを意味します。 推論スクリプトは、観察とアクションのループを 50Hz で処理します。

ソース ~/openarm-env/bin/activate # Make sure ROS 2 is running (real hardware mode, from Unit 1) python -m lerobot.scripts.eval \ --policy-checkpoint ~/openarm-policies/pick-and-place-v1/checkpoint_XXXXX \ --device cuda \ --num-eval-エピソード 10 \ --録画-ビデオ \ --output-dir ~/openarm-evals/v1 # Replace XXXXX with your best checkpoint step number from Unit 5 # --record-video saves each episode as an mp4 for review

最初の展開実行では、物理的な非常停止の近くに手を置いてください。 新しく展開されたポリシーは、実際のハードウェア環境に慣れるまでに予期しない動きをすることがあります。 最初の 2 ~ 3 エピソードではこれが正常です。 その後、動作が安定するはずです。

安全エンベロープやウォッチドッグ タイマーを含む包括的な導入と運用のガイダンスについては、 OpenArm 制作ガイド.

評価方法

ポリシーを非公式に評価しないでください。 構造化プロトコルを使用します。これが、加えた変更 (データの増加、チェックポイントの変更、タスクのフレーム構成の変更) によって実際にパフォーマンスが向上したかどうかを知る唯一の方法です。

プロトコル項目 仕様
評価ごとのエピソード数最小 10、信頼性の高い結果の場合は 20
オブジェクトの開始位置修理済み。 テープ跡を利用します。 毎話同じ位置。
オブジェクトの種類トレーニングと同じオブジェクト。 照明はトレーニング条件と一致する必要があります。
何が成功とみなされるのか物体はターゲットから 3cm 以内に配置されます。 アームは家に帰ります。 エピソード中に人間の介入はありません。
故障の分類ログ失敗のタイプ: 掴み損ねた / オブジェクトの落下 / 間違ったターゲット / タイムアウト。 これにより、何を修正すべきかがわかります。
レポート指標成功率 = 成功したエピソード / 合計エピソード。 エピソード数を含むレポート (例: 「7/10 = 70%」)。

データ フライホイール: 改善する方法

7/10 回成功するポリシーは良いスタートですが、9/10 以降への道はデータ フライホイールを経由する必要があります。 これは、実稼働環境でのロボット学習のコア ループです。

1

集める

現在のポリシーで苦労している失敗例を含むデモンストレーションを記録します。

2

電車

新しいデモを追加して、拡張されたデータセットを再トレーニング (または微調整) します。

3

評価する

構造化評価プロトコルを実行します。 成功率は上がりましたか? どのような故障モードが残っていますか?

4

分析する

失敗ビデオをご覧ください。 ポリシーが破綻する具体的な状態を特定します。 そこで対象となるデータを収集します。

フライホイールに関する重要な洞察: ターゲットを絞ったデータがランダムなデータを上回る。 さらに 50 個のランダムなデモンストレーションを録画する代わりに、失敗ビデオを見て、問題が発生する正確な瞬間を特定します。 その困難な状態 (例: ワークスペースの端での掴み、または異常な角度でのオブジェクトの掴みなど) を具体的にカバーする 20 個のデモンストレーションを記録します。 ランダムなデモを 50 個行うよりも、ターゲットを絞った 20 個のデモを使用した方が、成功率は速く向上します。

一般的な障害モードとその修正方法

  • アームが掴み位置をオーバーシュートする: ポリシーのアクション チャンクが大きすぎるか、データの速度の分散が大きいです。 把握ポイントの近くで、低速でさらに 10 個のデモを録音します。 あるいは減らす chunk_size トレーニング設定で 100 から 50 に変更します。
  • Arm はトレーニング オブジェクトでは成功しますが、わずかに異なるオブジェクトでは失敗します。 トレーニング データにはオブジェクトの位置の多様性がありませんでした。 半径 10cm 以内の 5 つの異なる位置にあるオブジェクトを使用して 20 個のデモを録音します。 これは、ポリシーを一般化することを教えます。
  • ポリシーがフリーズするか、繰り返しのモーションが生成されます。 CVAE スタイル変数が折りたたまれています。 これは多くの場合、データセットの分散が大きすぎること、つまりモデルが一貫したスタイルを見つけることができないことを意味します。 混合デモンストレーション (異なるオペレーター、異なるタスク フレームワーク) を確認し、データセットをクリーンアップします。

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

構造化された評価実行では、アームは 10 回中 7 回、ピック アンド プレイス タスクを自律的に完了します。 3 つの失敗ビデオを見て、何が問題だったのかを特定しました。 データ フライホイールについて十分に理解しているので、次の改善反復を計画できます。 これは構造化されたパスの終わりですが、ロボット学習の実践の始まりです。

やったね。

ロボットの開梱から、トレーニングと実際の模倣学習ポリシーの導入までを行いました。 これにより、ロボット アームに触れたことがある人の 99% よりも先になれます。 ここで構築したもの (遠隔操作セットアップ、データ パイプライン、トレーニング ワークフロー) は、あらゆるタスクおよびあらゆるハードウェアに対応します。

次は何だろう

あなたには基礎があります。 ここからの行き先は次のとおりです。