# 結果：20261031_45_補正つきの成功5本から学習データを作る

- 状態：完了
- 始めた時刻：2026-10-31 18:50
- 終わった時刻：2026-10-31 19:05（14分）
- 作業フォルダ：/Users/shimazueiichi/r2r2r-scripts
- この続きを Claude Code で話すとき：作業フォルダで `claude --resume f1ce9620-2b5e-4096-869a-50cfa6786542`

## Claude Code の報告

## やったこと
- KIOXIA のマウントを確かめてから、成功5本を `build_correction_episodes.py --check-with <trim2>` にかけ、`datasets/mecharm_redblock_box_corr_v1` を作りました。元の runs/ と trim2 は読んだだけで、変えていないことも確かめました。失敗の3本は入れていません。
- お手本 trim2 と形がそろっているかを確かめ、合っていました（npz のキー t・t_orig・state・actions、float32 の (N,7)、FPS 10、画像 384×216）。
- 途中で直したところが2つあります。
  - exFAT に macOS が作る `._000000.jpg` を画像として数えてしまい、枚数が倍になっていました。確かめ・変換・点検の3か所で数えないようにしました。
  - 作り直し（--force）のとき、フォルダを消す処理が途中で止まっていました。止まらないようにしました。
- trim2 の19本と corr_v1 の5本を合わせて `datasets/mecharm_redblock_box_teach_v1_trim2_corr_v1` を作りました。repo_id は `local/mecharm_redblock_box_teach_v1_trim2_corr_v1` です。Pod に送る tar（117 MB）も作りました。
- 学習の設定 `pi05_mecharm_trim_corr_lora` を足すスクリプトを作りました。中身は `pi05_mecharm_trim_lora` と同じで、データだけ替えています。ステップ数と「一からか続きからか」は既定値を置かず、実行のときに必ず指定する形にしました。
- LeRobot の形への変換は、まだしていません。Mac では動かないため、trim2 のときと同じく Pod で行います（`convert_to_lerobot.py --raw-dir … --repo-id local/mecharm_redblock_box_teach_v1_trim2_corr_v1`）。
- データを作ったコードは、それぞれのデータセットの `code/` に写しました。
- R と r の扱い：
  - R（爪を開いて閉じ直す）は、5本とも使われていませんでした。依頼 35 の決めのまま、学習から外します。
  - 補正の外の r（締め直し）は2本（181946・182545）にありました。どちらも確認の入力待ちの間で、その時間はもともと学習から外れています。爪の値も閉→閉で変わらないため、手を加えていません。
- FPS のそろえ方：
  - 角度は、実測を 10Hz の時刻に直線で補間しました。
  - 画像（約 8.7fps）は、各時刻にいちばん近い1枚を当てています。そのため同じ画像が2コマに入るところがあります。間引きはしていません。

## 結果
corr_v1 の数は次のとおりです（どれも巻き戻しは0回）。

| run | コマ | うち補正 | 補正の数 |
|---|---|---|---|
| 175527 | 259 | 0 | 2 |
| 180435 | 323 | 15 | 2 |
| 181946 | 269 | 4 | 2 |
| 182545 | 333 | 25 | 4 |
| 184016 | 285 | 6 | 2 |
| 合計 | 1,469 | 50 | 12 |

- 合わせたデータは 24本・4,186コマで、点検（check_dataset）は全項目 PASS でした。
- テストは全部通りました（新しく足した8件、既存の69件、lab_start の68項目）。
- コミットは e29754e です。

**このまま学習に回すのは勧めません。** 理由は次のとおりです。
- 実測角は、アームが動いている間ほとんど取れていません（1.5〜3.6秒ずつ抜けています）。動いた角度のうち抜けの間に動いた分は、モデルの区間で98〜99%、補正の区間で77〜99%です。
- そのため 10Hz の角度は、チャンクの前後をまっすぐ結んだ線になっています。ゆっくりした坂に見える部分は、止まっている区間を詰める処理で削られます。
- その結果、1コマで動く角度の最大は、trim2 の3.3°に対して14〜28°になりました（j2 の持ち上げの補正が1コマで −28° など）。
- いちばん効かせたかった補正のコマは50しか残っていません。175527 は0です。

学習設定の案（A40・1ステップ約6.6秒・1時間0.59ドル・1ドル150円で計算。Pod の準備30分ほどは別）：

| 案 | 学習時間 | 費用 |
|---|---|---|
| ① 一から 4,000ステップ（trim2 と同じ。データが54%増えたので、全体を回る回数は約47回から約31回に減る） | 約7.3時間 | 約650円 |
| ② 一から 6,200ステップ（全体を回る回数を trim2 とそろえる） | 約11.4時間 | 約1,000円 |
| ③ trim2 の 3999 から続けて 1,000〜1,500ステップ（`--init /workspace/ckpt/3999/params`） | 約1.8〜2.8時間 | 約160〜250円 |

- 続きから学習しても、学習率の予定は trim2 のまま（5,000ステップで下げきる形）です。そのため、終わったときの学習率は高めのまま残ります。
- 正規化の値は、合わせたデータで計算し直す必要があります（compute_norm_stats）。
- いまの勧めは③ですが、データを直してからの話です。

Pod に送る方法の案：
- 直接送る（scp）のを勧めます。117 MB なので1分ほどで、外に置かずに済みます。
- Hugging Face の非公開リポジトリは、何度も別の Pod で使うときに向いています。まだ上げていません。

## 変えたファイル
- `pi05/build_correction_episodes.py`（`._` を数えない・消す処理を直す・`code/` に写す）
- `pi05/convert_to_lerobot.py`
- `pi05/check_dataset.py`
- `pi05/merge_raw_episodes.py`（新）
- `pi05/openpi_addon/add_trim_corr_config.py`（新）
- `pi05/test_merge_and_config.py`（新）
- `logs/20261031_1905.md`

KIOXIA 側で新しく作ったもの：`datasets/mecharm_redblock_box_corr_v1/`、`datasets/mecharm_redblock_box_teach_v1_trim2_corr_v1/`（tar を含む）

## 決めてほしいこと
1. 動いている間の角度が抜けている問題をどう扱うか。
   - ア：このまま使う
   - イ：補正の1刻みごとに、ログにある「動く前と動いた後の実測角」から、1コマ3°以内の数コマに置き直す
   - ウ：実行した指令の道すじ（log の target・vias）と時刻から角度を作り直す
   - エ：これからの記録で、動いている間も角度を取るようにする
2. 学習を一からにするか、3999 から続けるか。ステップ数をいくつにするか（上の①〜③）。
3. Pod に送る方法（直接送るか、Hugging Face の非公開リポジトリに上げるか）。
4. 依頼文の「correction 行」の数は、log.jsonl で「correction」という文字を含む行の数と同じでした。補正の操作として記録された行は 13・18・16・47・17 です。どちらの数で記録するか。
