live(入力)/ twin(変換器)/ real(出力)の3系統と、それを束ねる pose_id。「イメージ図」で関係を絵で掴み、「全体解説」で絶対パスと根拠を確認する。件数・行数などデータ増加で変わる数値は載せない。パスは実機調査とコード根拠で確定(省略なし)。 LOG257 の新設計=補正記憶(実機で測ったズレを位置ごとに貯め、次の狙いを補正する学習層)も破線で併記。これは現行コードには未実装・コード未確認。
各ボックス下段が実体ファイル:live=j0_sweep_adopted/*.json(Mac内蔵)、twin=fk_scan_motion_based_v2.csv(Mac内蔵+Unity)、real=pick_place_ledger_v3.csv(KIOXIA SSD)。アーム本体のコード=run_pick_place.py+j0_lookup.py。live の生成は j0_sweep_scan.py(オフライン)。pose_id(赤)が三系統をつなぐ。絶対パスは全体解説③。 破線の補正記憶(位置→Δ(x,z))は新設計(LOG257)の学習層で、現行コードには未実装・保存先未定。
使用ファイルを各ノードに併記。データ:live=j0_sweep_adopted/*.json、twin=fk_scan_motion_based_v2.csv(runtime非参照)、real=pick_place_ledger_v3.csv。コード:起動〜記録=run_pick_place.py、採用JSON選択=j0_lookup.py(ともに .../place/place_modules/)。出力先は KIOXIA runs/(台帳+run JSON)。未マウント時は冒頭 ABORT。絶対パスは全体解説③。
これは新設計(LOG257)で、現行コードには未実装。 現行の実装フローは上の②(j0_lookup → 送角 → 実測 → 台帳)。新設計は fk_lookup の理想姿勢を土台に、その上へ「実機で測ったズレ Δ を位置ごとに 補正記憶 へ貯め、次の狙いから差し引く」学習層を載せる。補正記憶(位置→Δ(x,z))の保存先・実体ファイルは未定。実装とパスが確定したらこの図と③④に正式反映する。
| 系統 | 絶対パス | 読む | 書く | 変更 | メモ |
|---|---|---|---|---|---|
| live | /Users/shimazueiichi/r2r2r-scripts/dynamic_tracking_limits/logs/j0_sweep/j0_sweep_adopted/ | j0_lookup (ADOPTED_DIR.glob) |
採用キュレーション (scanから選定配置) |
追記 | 採用JSON 5本。pose_id 保有。place_noblock は存在するが lookup 不可(下記) |
| live | /Users/shimazueiichi/r2r2r-scripts/dynamic_tracking_limits/logs/j0_sweep/ | (採用元プール) | j0_sweep_scan.py (DEFAULT_OUTPUT_ROOT) |
追記 | raw sweep j0_sweep_{phase}_{NN}.json+frames。classified/ に分類。adopted/ はここから選定 |
| twin | /Users/shimazueiichi/r2r2r-scripts/fk_scan_motion_based_v2.csv | Unity / planning | Unity FKScanner (生成のみ) |
変更禁止 | 現行。runtime のアーム制御は読まない(run_pick_place / j0_lookup に FK 参照なし) |
| twin | /Users/shimazueiichi/Robotics_UX/Robotics_UX_New/Assets/Data/fk_scan_motion_based_v2.csv | Unity | Unity FKScanner | 変更禁止 | Mac 側と md5 一致必須(二重配置) |
| 旧twin | /Users/shimazueiichi/r2r2r-scripts/fk_scan_motion_based.csv (+ Unity Assets/Data に同名) |
(戻り先・温存) | — | 変更禁止 | v2 不調時のロールバック先 |
| real | /Volumes/KIOXIA/r2r2r-data/runs/pick_place_ledger_v3.csv | (分析・突合) | run_pick_place ._append_ledger |
追記のみ | 台帳。LEDGER_CSV_PATH(L139)。完走/中断とも1行。pose_id 記録。KIOXIA専用・未マウントABORT |
| real | /Volumes/KIOXIA/r2r2r-data/runs/run_pick_place/{run_stem}/ | (事後参照) | run_pick_place (LOG_ROOT, L134) |
追記 | 1試行=1フォルダ。run JSON+frames |
| 新設計 | (未定・実体ファイル未作成) | ③ 狙い補正で読む (設計) |
⑥ 結果で Δ 更新 (設計) |
未実装 | 補正記憶 位置→Δ(x,z)。LOG257 設計(②+ 図)。現行コードに該当処理なし。保存先(KIOXIA 想定)も未定。実装後に確定パスを追記 |
| code | /Users/shimazueiichi/r2r2r-scripts/dynamic_tracking_limits/place/place_modules/ | — | — | 改修済 gem✅ | run_pick_place.py / j0_lookup.py / j0_sweep_scan.py の3本 |
採用JSON(5本・実ファイル名) ── adopted/ 直下:
コード根拠(誰がどこを読み書きするか=コードが正)
twin の構造詳細:列は ee_x,ee_y,ee_z,j0..j5(ee=Unity 座標 m・関節=度)。ee は Unity 内グリッパー先端 Brep の位置で ikpy では再現不可。点追加は Unity FKScanner 再実行のみ。
以前「Mac working v3 と KIOXIA v2 が二重化」と疑っていた件は誤り。~/r2r2r-scripts/ 配下に ledger は 0 件(find 確認)。台帳の実体は KIOXIA の /Volumes/KIOXIA/r2r2r-data/runs/pick_place_ledger_v3.csv 単一で、コード(run_pick_place L139)もここを直書き。KIOXIA 専用・ローカル fallback なし。real は単一ソース・v3で確定。
| 論点 | 状態 | 内容 |
|---|---|---|
| MASTER の台帳パス記述 | 済 | LOG256 で MASTER を v3 に更新済(保存先テーブル・フォルダ構成・保管ルール2箇所)。過去の更新履歴の v2 表記は当時の事実として保持 |
| place_noblock の扱い | 明確化済 | ファイルは adopted/ に存在するが j0_lookup が設計上拒否(ValueError)。place = withblock |
| 実機のスクリプト構成 | 確定 | .../place/place_modules/ の3本(調査済) |
| pose_id 付与位置の不揃い | 保留 | 遡及分=末尾/自動付与=phase直後(今回未調査)。機能上は問題なし |
| 補正記憶レイヤーの実装 | 未着手 | LOG257 設計(②+ 図)。fk_lookup の上に位置→Δ(x,z) を貯めて狙いを補正する学習層。現行コードに該当処理なし。実装が入るまで blueprint 上は破線扱い |
| 補正記憶の保存先・実体ファイル | 未定 | 測定由来データのため KIOXIA 配下を想定。MASTER「データ保管」の種類→場所テーブルに追記してから実装する(場所のルール更新が実装より先) |