2 つのアームの推論セットアップ

バイマニュアル推論は、両方のアームのアクションを同時に出力する単一のポリシー ネットワークを実行します。 観察とアクションのループは 50Hz (トレーニング データと同じ周波数) で実行され、両方のフォロワー アームがそれぞれのアクション チャンクを同期して実行します。

ソース ~/dk1-env/bin/activate # Keep your hand near the E-stop for the first 3 evaluation episodes python -m lerobot.scripts.eval \ --policy-checkpoint ~/dk1-policies/cube-handoff-v1/checkpoint_XXXXX \ --ロボットパス ~/dk1-config.yaml \ --robot-type dk1_bimanual \ --device cuda \ --num-eval-エピソード 10 \ --録画-ビデオ \ --output-dir ~/dk1-evals/v1 # Replace XXXXX with your best checkpoint step (from Unit 5 loss curve analysis) # --record-video saves both arm views as separate mp4 files for failure analysis

最初の評価実行では、物理的な衝突が差し迫っている場合を除き、ポリシーの実行を中断せずに許可します。 バイマニュアル ポリシーは、実際の環境に適応するにつれて、最初の 1 ~ 2 エピソードで予期しない動作が発生することがよくあります。 3話〜10話は意味のある評価データです。 最終的に失敗した場合でも、ポリシーが一貫してタスクの同じフェーズ (接近、把握、転送、配置、帰宅) に達しているかどうかに注目してください。部分的な成功は診断情報です。

双方向評価プロトコル

構造化されたプロトコルを使用します。 「機能しているようだ」という非公式な評価は、部分的な成功の方がはるかに一般的であり、根本的に破綻した引き継ぎを覆い隠してしまう可能性があるため、双方向ポリシーでは信頼できません。

プロトコル項目 両面マニュアル仕様
話数最低 10 個。 データを追加する前の信頼性の高い結果の場合は 20
立方体の開始位置テープでマークされた固定位置 — ユニット 4 のトレーニング設定と同じ
点灯トレーニング条件と一致する必要があります。 窓を開けただけでも照明が変化し、ワークスペースのカメラに影響を与える可能性があります
完全な成功とは何かキューブは右側から始まり、左側で終わります。両腕はホームポーズに戻ります。エピソード中は人間との接触はありません。
部分的な成功としてカウントされるもの正しく把握できたが転送に失敗する、または転送は成功するが配置が的外れとなる。 これらを個別に記録します。
故障の分類ログ: (A) 把握の失敗、(B) ハンドオフの失敗 - アーム間の移動のドロップ、(C) 配置の失敗、(D) タイムアウト。 ハンドオフ失敗カテゴリ (B) は、両手マニュアルに特有のものであり、改善に最も有益です。
レポート指標完全な成功率 (4 つのフェーズすべてが正しいエピソード)。 部分的な成功率も報告します。 例: 「4/10 はフル、7/10 はハンドオフフェーズに達しました」。

一般的な両手障害モード

これらの障害モードはシングルアーム障害とは異なり、両手操作固有の修正が必要です。

  • アームは非同期的にハンドオフポイントに到着します。 片方の腕がハンドオフ位置に到達して待機します。 もう一人は遅れて到着します。 ポリシーはアーム間の相対的なタイミングを学習していません。 修正: 転送を完了する前に、両腕がハンドオフ ポイントで 1 ~ 2 秒間明示的に停止するデモンストレーションを 20 回追加しました。 これにより、同期要件がデータ内で明確になります。
  • ハンドオフ ドロップ — 立方体が 2 つのアームの間に落ちる: 最も一般的な両手マニュアル特有の失敗。 受け側アームがグリッパーを閉じるのが早すぎるか、与える側アームの解放に比べて遅すぎる。 修正: 特に 25% の速度で 15 個のスローモーション ハンドオフ デモンストレーションを収集します。 誇張されたタイミングにより、ポリシーにグリッパー状態遷移シーケンスに関する明確な信号が与えられます。
  • 政策は単一部門戦略に収束します。 このポリシーは、もう一方の腕の能力を無視して、片方の腕だけでタスクを完了することを学習します。 これは、一方の腕のデモンストレーションがもう一方の腕のデモンストレーションよりも一貫している場合に発生します。 修正: トレーニング カーブ (ユニット 5) から各アームのアクション エラーを確認し、特に弱いアームのフェーズを対象とした追加のデモを収集します。
  • アーム間の衝突: 両方のアームが同じワークスペースの位置を占有しようとします。 これは安全イベントです - DK1 ハードウェア サーバーで衝突回避を有効にしてください (collision_avoidance: true dk1-config.yaml) 評価中に。 安全な腕の分離を一貫して尊重するデモンストレーションのトレーニングを行うことで、ほとんどの衝突を防ぐことができます。 ハードウェア レベルのガードは、エッジ ケースを処理します。
  • 導入時のフェーズの非同期: このポリシーは正しいアクションを実行しますが、時間的に正しい順序ではありません。たとえば、左腕が移動する前に右腕が配置されます。 これは、チャンクの境界がタスクのフェーズの遷移と一致しない、アクションのチャンク化アーティファクトです。 修正: 減らす chunk_size 100から50まで上げて再トレーニングします。

手動による改善のためのデータ フライホイール

シングルアームポリシーで機能するのと同じ改善ループが、バイマニュアルでも機能します。ただし、バイマニュアル固有の追加が 1 つあります。それは、常にターゲットを絞るということです。 初め タスク シーケンス内の障害モード。 把握 (フェーズ A) がまだ一貫していない場合、ハンドオフ (フェーズ B) を改善することはできません。 タスク シーケンスの順序でエラーを修正します。

1

評価する

10 エピソードを実行します。 各障害をフェーズ (A/B/C/D) ごとに分類します。

2

ターゲット

最初の障害フェーズを特定します。 特にそのフェーズをカバーする 20 ~ 30 のデモを収集する

3

再訓練

対象を絞ったデモをデータセットに追加します。 ゼロから再トレーニングするか、最適なチェックポイントを微調整する

4

評価する

もう一度 10 エピソードを実行します。 完全成功率は向上しましたか? 次の失敗フェーズに進みます。

次は何だろう

これで、実用的なバイマニュアル学習パイプラインが完成しました。 キューブのハンドオフが基礎です。同じアーキテクチャが、より複雑なタスクに拡張できます。

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

DK1 は、構造化された評価実行において、少なくとも 6/10 の完全な成功率でキューブのハンドオフ タスクを自律的に完了します。 すべての障害エピソードをフェーズ (A/B/C/D) ごとに分類し、どのフェーズがほとんどの障害の原因であるかを特定しました。 あなたは失敗ビデオを見て、何がうまくいかなかったのか具体的に説明できるようになりました。 次の改善反復を計画するために、両面手動データ フライホイールを十分に理解していることになります。

あなたは、実用的な両手ロボット学習システムを構築しました。

リーダー/フォロワー アーキテクチャを構成し、同期された 2 つのアームのデモンストレーションを収集し、調整されたポリシーを最初からトレーニングして、それを実際のハードウェアに展開しました。 このレベルでの両手操作は研究機関が行うところです。 ここで構築した基盤は、この道を始める前には手の届かなかった組み立て、調理、接触が多いタスクにも対応できます。