# R2R2R の考え方を π0.5 の学習に活かす計画（第2版）

作成: Claude（2026-11-07）　状態: Codex の敵対的検証（`codex_report_r2r2r_to_pi05_20261107.md`）を受けて書き直した版。第1版は `research_r2r2r_to_pi05_plan_20261107_v1.md`
元にした論文メモ: [paper_r2r2r_20261009.md](paper_r2r2r_20261009.md)

## 1. 何を確かめたいか

mechArm 270 Pi で動かしている π0.5（Physical Intelligence のロボット用 AI）は、補正なしで成功した試行が今まで2回しかない。

見立ては「お手本の種類が少ない」こと。教えた動きの再生19本は、教えた記録5つ（ブロックの置き場所5か所）を繰り返したもので、π0.5 が見た場面は5通りしかない。R2R2R の論文でも、元の動きを再生しただけのデータでは成功率が 80% から 0% に落ちていて、効いていたのは置き場所の散らばりだった。

ただし、この見立てはまだ証拠がない。推論の記録にブロックを置いた位置が残っておらず、教えた位置の近くでも失敗している（Codex A2）。なので第2版では、置き場所を増やす前に、失敗がどこで起きているかを先に分ける。

## 2. 今の手元（第1版からの訂正を含む）

| 項目 | 値 |
|---|---|
| 最新の学習データ | 30本・4,301コマ。教えた動きの再生 19本＋補正入り 11本（**前のやり方の補正 7本・ゲームパッドの補正 4本**。第1版で「全部ゲームパッド」と書いたのは誤り） |
| 教えた位置 | 5か所（位置ごとに 1〜5本）。位置5は上カメラから見てブロックが腕の陰にほぼ隠れる |
| カメラ | 上の1台。学習は 384×216・10コマ/秒の形だが、実際に撮れているのは 8コマ/秒前後（間は埋めている） |
| 最新のモデル | trim_corr_lora_v3（2026-11-06）。**実機ではまだ一度も試していない**（11-06 の9回は v2） |
| 推論の記録 | 判定がそろった31回のうち成功19回。成功のうち17回は補正入りで、補正なしの成功は2回 |
| FK テーブル | Unity で作った表。実機とのずれは昔の記録で 40〜55mm だが、肩が 88° を超えて命令が捨てられていた影響が混ざっていて、純粋なずれの大きさは分からない |
| 正規化 | 分位点で割る形で、範囲の外の値も切り捨てない。ただし推論のときは別に、学習データの関節の範囲＋余裕で指令を止めている（`run_policy_client.py` の `--raw-dir`）。置き場所を広げたらこちらも合わせる |

## 3. 進め方

### 段階0　失敗を分ける

**0-1　過去の失敗を Unity で横から見る（依頼107。実機は使わない）**
推論の記録の関節角を Unity のアームで再生し、爪を閉じた瞬間の高さ、持ち上げたあと、箱との近さを横から見る。失敗をつかむ前・つかんだ後・箱に当たった・分からない、に分ける。同じ依頼で、次に試す置き場所の候補（届く・上から見える・箱に当たらない）と、Unity と実機の画の見比べも出す。

**0-2　記録を足す（r2r2r-scripts への依頼。0-1 のあと）**
推論の記録に、ブロックと箱の最初の位置（上カメラの最初のコマから）、爪を閉じた時刻、持ち上げたあとにブロックを持っているか（人が y/n）、失敗の段階（人が選ぶ）を足す。使うモデルと正規化の値（SHA）と指令の範囲も1回ごとに残す。

**0-3　実機で v3 を測る（エイイチ）**
補正なしで動かす。位置は2種類に分けて最初に決める。
- 教えた位置（見える4か所）：各3回。ここで失敗が多ければ、置き場所の前に直すものがある
- 評価用の位置（お手本に使わない新しい位置2か所。0-1 で届く・見えると分かった点から選ぶ）：各3回。学習前の値として残す

**判断**
- 教えた位置でも失敗が多い → 置き場所ではなく、爪のタイミング・持ち上げ・箱の手前の動きを先に直す
- 教えた位置は成功し、新しい位置で失敗する → 段階1へ

### 段階1　新しい置き場所のお手本を少し足す

- 0-1 で使えると分かった点から 2〜3か所（評価用の位置とは別）
- やり方は、今と同じ「教えた動きの再生」に、必要な所だけゲームパッドで人が合わせる形。動きの癖を今のお手本とそろえるため
- 各5本ほど。止まりの詰め方・時間の扱い・爪の開け閉めの記録を、今の作り方（trim2・corr_v5）とそろえる
- 自動で大量に集める仕組み（series2 の本線で回す案・教えた動きをずらして作り直す案）は、ここで効果が見えてから作る

### 段階2　学習する

- v3 から続けて学習（corr_v5 と同じ形・Runpod の A40・1回約300円）
- 正規化の値はいったん今のまま使い、新しいデータがどれだけ外にはみ出すかを測る。大きく外れたときだけ、計算し直す別の実験にする
- 推論の指令の範囲（`--raw-dir`）は新しいデータに合わせる

### 段階3　同じ条件で比べる

- 評価用の位置で、v3 と新しいモデルを同じ日に交互に、補正なしで動かす
- 回数の目安：成功率が 20% から 60% に上がるくらいの大きな差なら、各モデル20回ほどで言える。小さな差を言うには何十回も要るので、まずは大きな差が出るかを見る
- 合格の線は 0-3 のあとに、段階3を始める前に決める（結果を見てから変えない）

### 並べて進めること　箱の手前の動きを見る

0-1 の結果で「箱に当たる」が多ければ、π0.5 が出した次の 10コマ（1秒分）を Unity のアームで先に動かして、前腕と爪が箱の縁に近づくかを記録する。最初は記録だけで、止めない。

### やらないこと（今は）

Unity で映像を描いて学習に入れること。0-1 の画の見比べで、Unity の画が本物とどれだけ違うかを見てから考える。

## 4. 置き場所

| もの | 場所 |
|---|---|
| Unity で確かめた結果 | KIOXIA `lab/twin/20261107_失敗の再生と置き場所/` |
| 新しいお手本 | KIOXIA `datasets/`（名前は段階1で決める） |
| 実機の推論・評価の記録 | KIOXIA `runs/pi05_policy/`、まとめは `lab/Log{NN}/`（番号はエイイチに確認） |
| 学習済みモデル | KIOXIA `checkpoints/` と Hugging Face の非公開リポジトリ |

## 5. エイイチに決めてほしいこと

- 0-3 の回数（教えた位置 4か所×3回＋評価用 2か所×3回＝18回で、補正なし）でよいか
- 段階3の回数と合格の線（0-3 のあとで）
