閉ループ評価の記録¶
本ディレクトリは、実測した評価ログと、未実行のプロトコルを分けて置く。status が pending のファイルは測定値を持たない。summary が null の項目を、達成値としてレポートや表に転記しない。
公式: post50 ACT(DoD 主結果)¶
出典: 公式 post50 パイプライン結果。セル JSON はローカル metrics.json を scripts/verify_eval_metrics.py --pin で固定した実測コピーである。
| ファイル | 内容 |
|---|---|
post50_official_summary.json |
公式セル一覧と seed=1000 検証の状態 |
eval_sim_act_post50_best_model_te_te.json |
best_model_te × TE(seed 0・20 epi): align 1.000、mean 18.1 mm、median 19.0 mm、yaw 11.8 deg、grasp 1.000(DoD 達成)。元: results/post50/eval/best_model_te/te/metrics.json |
eval_sim_act_post50_best_model_chunk30.json |
best_model × chunk30(seed 0・20 epi): align 0.000、mean 39.2 mm、median 39.1 mm、yaw 36.7 deg、grasp 1.000(比較用・DoD 未達)。元: results/post50/eval/best_model/chunk30/metrics.json |
eval_sim_act_post50_seed1000_te.json |
seed=1000・50 epi TE 検証: align 1.000、mean 18.28 mm、min/max 14.3–20.0 mm、yaw 11.7 deg(依頼値と tol 内一致)。元: results/post50_verify/best_model_te/te/metrics.json |
各ピン留めファイルはエピソード配列と mean_abs_yaw_error_deg を含む。表示用の丸めは上表 / post50_official_summary.json、転記の正本は各 JSON の summary である。
seed=1000 検証¶
依頼文の「成功率 100%、平均 18.28 mm、範囲 14.3–20.0 mm」は、上記 eval_sim_act_post50_seed1000_te.json で突合済みである(scripts/verify_eval_metrics.py、tol 0.05、一致)。
python scripts/verify_eval_metrics.py \
--metrics results/post50_verify/best_model_te/te/metrics.json \
--expect-seed 1000 --expect-episodes 50 \
--expect-align 1.0 --expect-mean-pos-mm 18.28 \
--expect-pos-min-mm 14.3 --expect-pos-max-mm 20.0 \
--pin docs/results/eval_sim_act_post50_seed1000_te.json
不一致時は JSON の値を正とし、スクリプトが DIFF を表示する(必要なら --allow-mismatch-pin)。
ローカル metrics のピン留め(公式セルの差し替え)¶
python scripts/verify_eval_metrics.py \
--metrics results/post50/eval/best_model_te/te/metrics.json \
--pin docs/results/eval_sim_act_post50_best_model_te_te.json
python scripts/verify_eval_metrics.py \
--metrics results/post50/eval/best_model/chunk30/metrics.json \
--pin docs/results/eval_sim_act_post50_best_model_chunk30.json
docs/results/ は .gitignore の results/ にマッチするため、新規 JSON は git add -f が必要である。
未実行プレースホルダ¶
eval_sim_act.pending.json は、既定パス checkpoints/sim_act/best_model.pt 向けの旧プロトコル案内である。post50 の公式数値は上記 post50 ファイルを使う。
実測: scripted オラクル¶
scripted_random_20.json は、CPU かつ MUJOCO_GL=osmesa の環境で scripted ポリシーを 20 エピソード実行した記録である。各エピソードは 260 ステップ、初期平面位置とヨー角はランダム、Temporal Ensembling は無効、シードは 0 から 19 である。20 試行すべて整列に成功し、平均平面位置誤差は 0.0 mm、平均絶対ヨー角誤差は 0.0 deg、把持成功率は 1.0 である。thresholds_met は true である。これはオラクルの結果であり、学習済み ACT の結果ではない。
比較条件¶
オラクル(scripted、初期配置ランダム、Temporal Ensembling なし):
python scripts/run_sim_eval.py --policy scripted --episodes 20 --max-steps 260 \
--randomize-box --no-temporal-ensemble --no-save-video \
--output-dir outputs/eval_scripted_random
学習済み ACT(post50 TE / chunk30):
# TE(DoD 主結果)
python scripts/run_sim_eval.py --policy checkpoint \
--checkpoint checkpoints/sim_act_post50/best_model_te.pt \
--episodes 20 --max-steps 260 --randomize-box --device mps \
--temporal-ensemble --temporal-ensemble-coeff 0.01 \
--output-dir outputs/eval_sim_act_te
# chunk30(比較)
python scripts/run_sim_eval.py --policy checkpoint \
--checkpoint checkpoints/sim_act_post50/best_model.pt \
--episodes 20 --max-steps 260 --randomize-box --device mps \
--no-temporal-ensemble --n-action-steps 30 \
--output-dir outputs/eval_sim_act_chunk30
単位(rad / deg / グリッパ 0–100)は docs/units.md を参照する。
上の sim ログは、実行して status が measured になったファイルだけを数値の根拠にする。
実機 live ACT(学習後)¶
学習後の実機 ACT 評価(オープンループ採点と live ロールアウト)の手順は real_eval_protocol.ja.md を参照。評価時の配置は 現行テーブル配置 に準拠する。