両手によるデータ収集が難しい理由

シングルアームのデータ収集では、悪いデモンストレーションは 1 つのアームの軌道にのみ影響します。 50 個のデモを記録し、5 個の悪いデモを破棄し、45 個でトレーニングします。手動によるデータ収集では、引き継ぎ時点でのミスにより無効になります。 両方 そのデモの腕の軌道を同時に確認します。 故障モードは結合されています。

この結合には 2 つの実際的な意味があります。 まず、より多くのデモンストレーション (50 ではなく 100) が必要です。これは、両手タスクの分散が大きく、調整構造を学習するためにポリシーにより多くの例が必要であるためです。 次に、デモンストレーションごとに厳密な一貫性が必要です。 一貫性が 80% のシングルアーム デモは、かなり適切にトレーニングされます。 一方のアームが一貫していて、もう一方のアームが変化するバイマニュアルのデモでは、調整のタイミングについてポリシーに何も役に立ちません。

ワークスペースをカバーするという課題もさらに大きくなります。両腕をフレーム内に収める必要があり、最も複雑な瞬間であるハンドオフ ポイントを少なくとも 1 台のカメラで確実に捉える必要があります。 開始する前にカメラの角度を確認し、ワークスペースのカメラの視野外でハンドオフが発生するかどうかを調整してください。

LeRobot バイマニュアル データセット形式

DK1 と LeRobot の統合により、標準のシングルアーム形式がデュアルジョイントステートアレイで拡張されます。 データセット内の各タイムステップには以下が含まれます。

# Bimanual dataset observation keys per timestep: 観測.joint_states.left # shape: (6,) — left follower joint angles in radians 観察.joint_states.right # shape: (6,) — right follower joint angles in radians 観察.グリッパー.左 # shape: (1,) — left gripper position [0=open, 1=closed] 観察.グリッパー.右 # shape: (1,) — right gripper position 観察.画像.ワークスペース # shape: (H, W, 3) — workspace overhead/front camera 観察・画像・手首 # shape: (H, W, 3) — primary wrist camera action.joint_states.left # shape: (6,) — target left joint angles action.joint_states.right # shape: (6,) — target right joint angles アクション.グリッパー.左 # shape: (1,) action.gripper.right # shape: (1,)

シングルアームとの主な違いは、アクション空間が 14 次元 (6+6 ジョイント + 2 グリッパー) であることです。 ACT はこれをネイティブに処理します。トレーニング構成でアクション ディメンションを指定すると、他の変更は必要ありません。

録音ワークフロー

ソース ~/dk1-env/bin/activate # Start a recording session — 100 episodes for the cube handoff task python -m lerobot.scripts.record \ --ロボットパス ~/dk1-config.yaml \ --robot-type dk1_bimanual \ --fps 50 \ --root ~/dk1-datasets \ --repo-id cube-handoff-v1 \ --エピソード数 100 \ --ウォームアップ時間 3 \ --episode-time-s 30 \ --リセット時間 5 # --warmup-time-s: time after pressing record before capture starts (use this to position the cube) # --episode-time-s: max demo length — cube handoff should complete in under 20s; 30s gives buffer # --reset-time-s: time between episodes to return arms to home and reposition the cube

記録セッションを開始する前に 10 ~ 15 回の練習デモを実行して、タスクに備えて運動記憶をウォームアップします。 最初の 5 ~ 10 個の録音デモは最悪の結果になるでしょう - それは予想通りです。 セッション中に立ち止まって確認しないでください。 100 個すべてが記録された後、レビューして悪いデモを選別します。

バイマニュアルデータの品質チェックリスト

LeRobot のリプレイ ビューアを使用して、録画後にすべてのデモを確認します。 次の基準を 2 つ以上満たさないデモは破棄します。

ハンドオフ時のアーム同期 両腕は同時に意図したハンドオフポイントから 3cm 以内になければなりません。 一方のアームがもう一方のアームを待つ非同期ハンドオフでは、ポリシーに一時停止を指示します。これにより、転送が不十分になります。
一貫した開始位置 立方体は、すべてのデモで同じ位置から 2cm 以内で開始する必要があります。 ユニット 1 のテープ マークを使用します。開始位置の差異により、コア タスクを学習する前にポリシーが強制的に一般化されます。
きれいに握る - 両腕 次のフェーズに進む前に、各腕が安定した把握を達成する必要があります。 転送中に掴みが滑ると、ポリシーを確実に再現することが不可能な軌道が作成されます。
ホームポーズリターン 各デモの終了時には、両腕がきれいにホームポーズに戻る必要があります。 モーションの途中で終了するデモでは、エピソードの境界があいまいなデータセットが作成されます。
ワークスペースのカメラの範囲 ハンドオフの瞬間はワークスペースのカメラ フレームに表示される必要があります。 ロボット本体が視界を遮る場合は、続行する前にカメラ角度を調整してください。
一貫したタイミング エピソードの長さの違いは、デモ間で ±5 秒以内である必要があります。 タイミングの差異が大きい場合は、実行に一貫性がないことを示しており、アクション スペース エントロピーが高いデータセットが生成されます。
ターゲット データセットのサイズ: 両手操作の ACT トレーニングの推奨最小値は 100 デモです。 研究結果は、関節調整構造がより複雑で動作空間がより大きいため、両手作業では同等の片腕作業の約 2 倍のデータが必要であることを示唆しています。 ユニット 5 でのトレーニング後の成功率が 40% を下回った場合、最初に試してみるのは、さらに 50 個の対象デモを収集することです。

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

LeRobot 形式で録画されたデモンストレーションが 100 件あります。 ~/dk1-datasets/cube-handoff-v1/。 レビューと選別の後、少なくとも 90 個のデモが品質チェックリストに合格します。 両方の関節状態配列は、エピソードごとに 50Hz で存在します。 両方のカメラ フィードが存在し、ハンドオフの瞬間を含む完全なタスク シーケンスが表示されます。 あなたは走りました python -m lerobot.scripts.visualize_dataset --repo-id cube-handoff-v1 データセット構造が有効であることを確認しました。