UR5e task0 — デモ、学習、推論
LIBERO object の task 0「alphabet soup をカゴに入れる」。開ループで作った 50 本を π0.5 LoRA で学習し、同じ 50 初期状態を閉じたループで評価した。
カゴ内 50/50。LIBERO 公式の
check_success() は 13/50。公式判定が偽の回も、缶はカゴの中(水平距離は最大 4.7 cm)にある。学習条件
| タスク | pick up the alphabet soup and place it in the basket(libero_object task 0) |
|---|---|
| ロボット | UR5e + Robotiq 85。制御は OSC、行動 7 次元(並進 3、回転 3 は 0、グリッパ 1) |
| デモ | 開ループ成功 50 本。各 140 ステップ、20 Hz、7 秒。合計 7000 フレーム |
| 初期状態 | LIBERO の init 0–49。物体配置は Franka の初期状態から写し、腕はホバー姿勢 |
| 状態 | 手先位置 3 + 軸角 3 + グリッパ関節の先頭 2 = 8 次元 |
| 画像 | agentview と wrist、256×256。保存時に正立へ反転。色ジッタなし(appearance a) |
| 事前学習 | π0.5 LIBERO(pi05_libero_pytorch) |
| 更新 | LoRA r=16、α=32、dropout 0.05。対象は q, k, v, o, gate, up, down。学習パラメータは全体の 0.81% |
| 最適化 | AdamW、勾配クリップ 1.0。バッチ 4。10000 ステップ。学習率 5e-5(warmup 1000、cosine の終端も 5e-5) |
| ノイズ | プロプリオ・行動のガウシアンノイズはオフ |
| 実行 | p-ws-40 の GPU 1(RTX 6000 Ada)。1 ステップ約 2.2 秒 |
| 記録 | 最終ログの loss 0.00136(9900 ステップ)。チェックポイントは 10000。WandB |
推論条件
| 方策 | 上の 10000 ステップ LoRA を重みへマージし、p-ws-40 GPU 1 で websocket 配信 |
|---|---|
| シミュレータ | 手元の LIBERO。UR5e、閉じたループ。タスク文をプロンプトにする |
| 長さ | ゼロ行動で 10 ステップ整定したあと、方策を 140 ステップ(20 Hz、7 秒) |
| 再計画 | 行動ホライズン 10 のうち先頭 5 ステップを実行してから再推論 |
| 観測 | 正立の 256 画像 2 枚と、学習と同じ 8 次元状態。サーバ側で 224 にリサイズし、分位点で正規化 |
| 初期状態 | 学習と同じ init 0–49 |
| カゴ内 | 水平距離 10 cm 以内、開始位置から 5 cm 以上動き、高さがカゴ床 + 1 cm 以上 |
| 公式成功 | LIBERO の check_success() |
| 結果 | カゴ内 50/50。公式成功 13/50(init 1, 3, 9, 11, 12, 13, 14, 16, 25, 30, 34, 35, 46) |
デモ動画
学習に使った開ループのうち 4 本。agentview、20 fps、7 秒。画像は正立。
推論動画
上の 50/50 は評価の結果。ここにある 4 本はその後の録画で、どれも缶はカゴの中。公式判定はクリップに書いた通り。