====================================================================
直した⑤（fam_p3）を建てて、1回ずつ回して確かめた（3回目）
依頼：20261028_19_直した店5を建てて確かめる_やり直し.md（依頼 18 のやり直し）
2026-10-28 14:40　check-in：cs:36　build_id cs36_20261028_1435（保留 0）
====================================================================

結論

  ・始める前の確かめ5つは、すべて合格だった。
  ・公開版（版 d7bb919590d4）の params と ③⑦④⑤の店の形を写した。版はすべてそろっていた。
    ③⑦④は前の写しと版の番号以外同じ。⑤の JSON は A03 の端の点・end_dist・entrance だけが変わっていた（依頼の説明どおり）。
  ・⑤は③⑦④と同じコードで建った（合わないもの なし）。卓 46・席 200、止まる位置 46 / 46 が NavMesh の上、
    受け渡し口から全卓へ道がつながり、入口から全卓の席へ歩ける。確かめ A（地図で道を引く）も全卓・待機場所3つとも引けた。
  ・check-in（cs:36）して画面なしの実行ファイルを作り直し、確かめの3回（⑤ × 0・1・2台 × 種0）を回した。
    3回とも completed・全員帰った。打ち切りは 2台の回で 5。
  ・台帳 565 → 568 行（追記だけ）。先頭 565 行の md5 は退避と同じ。
  ・何も指定しない make_queue は③⑦の60回のまま。


====================================================================
1. 始める前の確かめ（5つとも合格。14:28 ごろ）
====================================================================

  1. Unity エディタ：起動していない（Unity Hub だけが起動していた）
  2. /Volumes/KIOXIA：マウントされている。unity_ledger_v1.lock：なし
  3. 台帳 unity_ledger_v1.csv：565 行・md5 7f636cb533be1ee07caabb8782455f15（退避と同じ）
  4. ServiceSim の保留：0（cs:35 head）
  5. 公開中の serving-robot-params.json：meta.layout_generation d7bb919590d4・unity_conditions 12 件
     （1回目の取得で合った）


====================================================================
2. 写したもの（やること 1）
====================================================================

  写し元：https://pixelstomotors.com/sim/（2026-10-28 14:30 に curl で取得）
    控え：unity/site_copy_d7bb919590d4/（params・summary.json・layouts/unity/ の6店の JSON と地図）
  版の番号：params の layout_generation、6店の JSON と地図の meta.generation、summary.json がすべて d7bb919590d4
  前の写し（site_copy_80a101e91410）との違い
    params・summary.json・p0/p1/p2/p4/p5 の JSON と地図・p3 の地図：版の番号だけ
    p3_relaxed_center.json：版の番号のほかは A03 だけ
      ends [24.05, 0.6]・[24.05, 17.0] → [24.05, 2.1]・[24.05, 16.6]
      end_dist [null, null] → [14.863, 16.077]
      entrance null → [24.05, 2.1]
  プロジェクトの③⑦④（p1・p5・p2 の JSON と地図）は cs:35 のものと比べて generation 以外の違い 0。
  params は cs:35 と比べて layout_generation・unity_conditions（9 → 12 件）・stores.fam_p3 が足されただけ。
  summary.json の違いは⑤の robot_dist_mean・robot_dist_max だけ。
  どれも cp でそのまま写した（手で値を写していない）。


====================================================================
3. 入れた cs・build_id・変えたファイル
====================================================================

  check-in：cs:36（保留 0）
  画面なしの実行ファイル：build_id cs36_20261028_1435 / unity_cs ServiceSim/cs:36 / pending_changes 空
                         Build Finished, Result: Success・error CS 0

  変えたファイル（cs:36）
    Assets/ServiceSim/Experiment/serving-robot-params.json   公開版の写し
    Assets/ServiceSim/Store/Layouts/summary.json             公開版の写し
    Assets/ServiceSim/Store/Layouts/p1_efficient_corner(.json/_map.json)・p5_crammed・p2_efficient_narrow
                                                              公開版の写し（版の番号だけ変わった）
    Assets/ServiceSim/Store/Layouts/p3_relaxed_center.json・_map.json（＋.meta）  足した
    Assets/ServiceSim/Store/StoreLayout_p3_relaxed_center.asset（＋.meta）        足した
      依頼 18 の控えのまま。fetchedAt だけ「2026-10-28 14:30:00 JST（版 d7bb919590d4）」に直した
    Assets/ServiceSim/Editor/ServiceSimSetup.cs       P3LayoutPath・HeadlessRun.layouts に⑤
    Assets/ServiceSim/Editor/ServiceSimSiteRun.cs     ⑤の3条件（unity_conditions の 9・10・11）
    Assets/ServiceSim/Editor/ServiceSimJsonStore.cs   「⑤ p3_relaxed_center を建てて確かめる」・版と試算の値の確かめに⑤
    Assets/ServiceSim/Editor/ServiceSimMapPlanner.cs  「⑤ 確かめ A」
    Assets/ServiceSim/Scenes/ServiceSim_Family.unity  HeadlessRun.layouts に⑤（1行）
    コードと .asset・シーンの1行は、依頼 18 の控え（20261028_1401_p3_build_check2_pending/）をそのまま使った。
    入れる前に、cs:35 との差分が控えの changes_vs_cs35.diff と同じ行数であることを確かめた。

  手で戻したもの（check-in していない）
    建てて確かめる処理を回すと ProjectSettings/NavMeshAreas.asset に「New Agent」が3つ書き足されたので
    cm undo で戻した（④のときと同じ）。Mat_RobotKeepout.mat も書き直されたが中身は同じだったので戻した。

  make_queue.py・night_runner.py・judge_night.py は変えていない。


====================================================================
4. ⑤を建てて分かったこと（JSON Store「⑤ を建てて確かめる」・Map Planner「⑤ 確かめ A」）
====================================================================

  数         卓：Unity 46 / JSON 46 / summary.json 46 で一致。席 200 で一致
             細い通路 3 本（A01・A02・A03、いずれも 1.5 m）。外寸 26 × 17 m
             地図のマスの数は JSON の counts と一致。合わないもの：なし
  止まる位置  46 か所すべてロボット用の NavMesh の上（乗らない 0）。地図でも 46 卓すべて通れるマス
  道順       受け渡し口から全 46 卓、すべての区間がつながった。
             JSON の dist との差は平均 −0.56 m・最大 0.97 m（T24）。30% を超えた卓は 0
  席         入口から全 46 卓の席に着く点まで歩ける（入れない卓 0）
  場所の点    24 か所すべて NavMesh に乗った（乗らない 0）。置けなかった所はない
               受け渡し口・返却口・パントリー (12.5, 8.85)／入口 (13.5, 0.5)／待合 (15.65, 2.7)／トイレ (3.6, 15.8)
               レジ 1 (12.3, 1.55)・会計の列 3 (12.8 / 13.3 / 13.8, 1.55)・レジの内側 (10.8, 1.55)
                 レジの内側は人用・ロボット用とも受け渡し口から 7.51 m で行ける
               ドリンクバー（立つ点 4・列 3）
               ロボットの待機場所 3：(14.6, 8.95)・(15.4, 8.95)・(16.2, 8.95)
                 地図では3つとも「通れる幅だけ」のマス（④と同じ）。確かめ A で3つとも道が引けた
               スタッフが待つ点 2：(7.25, 10.0)・(17.75, 10.0)（パントリーの左右の端）
                 依頼のとおり、規則は変えず 2 人ずつ同じ点に割り当てるまま
  行き止まり  細い通路を1本ずつふさいでも、ほかの全卓に届く（ロボット・人とも）
  確かめ A   引けない卓 0 / 46。狭い道を使う卓 0（サイトの routes も 0 で一致）。
             長さの比 最小 0.928 / 平均 1.011 / 最大 1.036

  気づいたこと（直していない。店の形のことなので、直すならサイトが先）
    ・細い通路の「焼いた面のいちばん狭いところ」：A01 0 m・A03 0.48 m（計算上はロボット用 1 m）。
      確かめは「直す必要あり」と出すが、道順・止まる位置・行き止まりの確かめはすべて通っており、回でも全卓に運べた。
      焼いた面の幅の測り方が⑤の通路の形（長い列）に合っていない可能性もある。調べていない
    ・人用の NavMesh に、受け渡し口からつながっていない面が 39.32 m2 ある（ロボット用は 0.8 m2）。
      例：左下の角 (0.6, 0.85)・(0.98, 0.55)、左上 (1.45, 13.0)・(2.23, 12.9)・(3.38, 12.92) のあたり。
      入口から全卓の席へは歩けるので、回には効いていないと見ている（④は 0 m2 だった）
  書き出し（unity/screens/）
    20261028_p3_relaxed_center_json_check.txt / _table_dist.csv
    20261028_1434_map_planner_checkA_p3.txt / map_plan の CSV


====================================================================
5. 確かめの3回（⑤ × 0・1・2台 × 種0・すれ違い入・待機場所へ戻る入・案B切・ラベル p3check・同時 3 本）
====================================================================

  python3 tools/make_queue.py --stores fam_p3 --seeds 0 --label p3check --out /tmp/p3c3/queue_p3check.json
  python3 tools/night_runner.py --queue /tmp/p3c3/queue_p3check.json --parallel 4 --night 20261028
      --label p3check --record-name 20261028_p3check
  出力 20261028_p3check_cs36_fam_p3_r{0,1,2}_s0_passon_sbret
  記録 night/20261028_p3check/（runner 終了コード 0・completed 3・失敗 0）
  judge.md：基準なし 3（⑤の基準データがないため。依頼のとおり）

  左が Unity、右が試算（params の site_result）。単位は分。割合は 0〜1
                                   0台                 1台                 2台
  最後まで回ったか                 completed           completed           completed
  全員帰ったか                     はい                はい                はい
  実時間                           2.8 分              2.9 分              3.1 分
  （参考）店の時間                 177.5 分            180.5 分            182.9 分
  入れた組の数                     71 / 93.4           71 / 91.3           71 / 95.0
  入店待ち                         1.75 / 6.22         1.50 / 3.42         1.83 / 3.67
   うち席は空いているのに待った     0 / 1.20            0 / 0.64            0 / 0.60
  料理の待ち                       1.16 / 0.57         2.42 / 2.14         2.51 / 1.24
  会計待ち                         2.42 / 18.81        2.81 / 12.95        3.39 / 13.00
  ロボットが運んだ皿の割合         0 / 0               0.758 / 0.686       0.781 / 0.980
  往復の数                         0                   65                  104
  30秒以上の止まり                 0                   2                   9
   （1往復あたり）                 0                   0.031               0.087
  動けなくなった（60秒）           0                   1                   7
  卓を空けた（逃がし弁）           0                   1                   3
  瞬間移動                         12                  47                  45
  打ち切り                         0                   0                   5
  （参考）あきらめた               0                   28                  47
  （参考）冷めた皿の割合           0.011 / 0           0.309 / 0.125       0.270 / 0.026
  （参考）待機場所へ戻った／出た   0 / 0               65 / 65             99 / 100（戻れず受け渡し口へ 0）

  目立つ点（差の理由は調べていない。依頼のとおり）
    ・入れた組の数が3回とも 71 組で、試算（91〜95 組）より少ない（④でも 48 対 56 だった）
    ・会計待ちは Unity 2.4〜3.4 分で、試算の 13〜19 分のような「レジが詰まる」形にはならなかった
      （入れた組が少ないことと関わっていそう）
    ・0台の回でも瞬間移動が 12 ある

  2台の回の 30 秒以上の止まり（9 回）の場所
    受け渡し口の点 (12.5, 8.85) から 2.5 m 以内        2 回（もう1台のロボット 1・スタッフとすれ違った 1）
     うち待機場所での止まりを除いた数                  2 回
       （待機場所＝店の形の RobotStandby の四角：x 14.2〜15.0・15.0〜15.8・15.8〜16.6、y 8.55〜9.35。
        この四角の中での止まりは 0）
    入口・レジの前（y 3.4 m より下・x 9.3〜16.4 m）     0 回
    理由ごと（9 回）：スタッフとすれ違った 5・人が立ち止まっていた 3・もう1台のロボット 1


====================================================================
6. 台帳
====================================================================

  行数：565 → 568（3 行足した。追記だけ。3行とも unity_cs ServiceSim/cs:36・layout_generation d7bb919590d4）
  先頭 565 行の md5：7f636cb533be1ee07caabb8782455f15（退避と同じ）
  列は今までどおり（新しい3行は 59 列）。鍵ファイルは残っていない


====================================================================
7. make_queue（台帳には書いていない）
====================================================================

  --stores fam_p3 --seeds 0 --label p3check → fam_p3_s4_r{0,1,2}_a46 の 3 回
    （0台 trays 1・1台と2台 trays 3・レジ 1・すれ違い入・待機場所へ戻る入・案B切）
  何も指定しない（cs:36 のあとで /tmp に作った）
    → fam_p1・fam_p5 × 0・1・2 台 × 種 0〜9 ＝ 60 回。
       night/20261102/queue.json（v5 の夜）と、回の並びと中身が同じ（label を除く）
  make_queue.py には --dry-run が無いので、/tmp に作って中身を見る形で確かめた。
  night_runner の dry-run は、night/ に記録フォルダができるので回していない。
  作業フォルダに queue の一時ファイルは置いていない（/tmp/p3c3/ にだけ作った）。最後の保留 0（cs:36 head）。


====================================================================
8. エイイチが画面で⑤を見る手順
====================================================================

  1. Unity Hub から ServiceSim（/Users/shimazueiichi/Robotics_UX/ServiceSim）を開き、
     シーン Assets/ServiceSim/Scenes/ServiceSim_Family.unity を開く
  2. 建てるだけで見る：ServiceSim → JSON Store → ⑤ p3_relaxed_center を建てて確かめる
  3. 回して見る：ServiceSim → Site Run → ⑤ スタッフ4人・ロボット0台 / 1台 / 2台
     Play に入って回り、終わると自動で抜ける。すれ違い入・待機場所へ戻る入・案B切（今の標準）。
     種は ExperimentPlan の trialSeed。出力は KIOXIA に出る（台帳には書かない）
  ※ 2台の回が、ロボット2台の動きをいちばん見やすい


====================================================================
9. 決めてほしいこと
====================================================================

  1. ⑤の夜を回すかどうか（依頼のとおり、本番の夜は回していない）。
  2. 入れた組の数が 71 組で、試算（91〜95 組）より少ない。会計待ちも試算のように詰まらなかった。
     このまま⑤の夜を回すか、先に理由を調べるか。
  3. スタッフが待つ点が2つ（2人ずつ同じ点）のまま続けるか。今回の結果で決める約束だった。
  4. 4 章の気づいたこと（細い通路 A01・A03 の焼いた面の幅、人用 NavMesh のつながっていない面 39 m2）を
     調べるかどうか。回には効いていないように見えるが、店の形のことなので、直すならサイトが先。
