====================================================================
④ 効率重視・小さめの店（fam_p2）を建てて、1回ずつ回して確かめた
2026-10-27 12:28　check-in：cs:28（保留 0）
====================================================================

結論

  ・④は③⑦と同じコード・同じ決まりで建ちました。卓 28・席 88。止まる位置 28 か所は
    すべて NavMesh の上にあり、届かない卓は 0 です。店の形は Unity 側で直していません。
  ・確かめの3回（④ × ロボット 0・1・2 台 × 種 0・すれ違い入）は、3回とも最後まで回り、
    全員が帰りました。
  ・ただし **ロボット2台の回は止まりがとても多く出ました**。
    30秒以上の止まりが 143 回（1往復あたり 1.86）、動けなくなった（60秒）が 116 回、
    瞬間移動が 74 回、打ち切りが 18 回、卓を空けたが 2 回です。
    入店待ちは 29.5 分で、試算の 3.2 分を大きく上回りました。
    1台の回でも止まりが目立ちます（30秒以上の止まり 27 回・瞬間移動 21 回）。
  ・台帳は 325 → 328 行です。先頭 325 行の md5 は退避と同じでした。
  ・make_queue.py は、何も指定しないとき③⑦の60回のままです。v4 の夜の queue.json と並びまで同じでした。
  ・本番の夜は回していません。


====================================================================
1. 始める前の確かめ（4つとも合格）
====================================================================

  1. Unity エディタ：起動していない（Unity Hub だけが起動していた）
  2. /Volumes/KIOXIA：マウントされている。鍵ファイル unity_ledger_v1.lock：なし
  3. 台帳の md5：f6c7e71ce48dba4a620850b48535c411（退避と同じ・325 行）
  4. ServiceSim の保留：0（cs:27 head）


====================================================================
2. 写したもの・変えたもの（cs:28）
====================================================================

  写し元：https://pixelstomotors.com/sim/（2026-10-27 12:17 に取得）
    控え：unity/site_copy_v28_p2/（params と unity/p2_*.json の2つ）
    p2 の2本は前からある site_copy_8a5b2f6a016a/unity/ のものと md5 が同じ
  版の番号：params の layout_generation・p2_efficient_narrow・p2_efficient_narrow_map・
            summary.json のどれも 8a5b2f6a016a でそろっている
  params の変わったところ：stores.fam_p2 が増え、unity_conditions が 6 → 9 件になった。
            meta.registers の文が1つ変わった。③⑦の6件と common は前と同じ

  足したファイル
    Assets/ServiceSim/Store/Layouts/p2_efficient_narrow.json（＋.meta）
    Assets/ServiceSim/Store/Layouts/p2_efficient_narrow_map.json（＋.meta）
    Assets/ServiceSim/Store/StoreLayout_p2_efficient_narrow.asset（＋.meta）
      ⑦の .asset を写して、JSON・地図・名前・写し元を差し替えた。
      細い通路の幅は JSON と同じ 1.2 m にした
  変えたファイル
    Assets/ServiceSim/Experiment/serving-robot-params.json  公開版をそのまま写した
    Assets/ServiceSim/Scenes/ServiceSim_Family.unity
      画面なしの実行ファイルが選べる店の形（HeadlessRun.layouts）に④を足した（1行）
    Assets/ServiceSim/Editor/ServiceSimSetup.cs
      P2LayoutPath を足し、Setup を押すと HeadlessRun.layouts に④も入るようにした
    Assets/ServiceSim/Editor/ServiceSimSiteRun.cs
      Site Run のメニューに④の3条件（unity_conditions の 6・7・8）を足した
    Assets/ServiceSim/Editor/ServiceSimJsonStore.cs
      「④ p2_efficient_narrow を建てて確かめる」のメニューを足した。
      試算の値の確かめにも④を足した
    Assets/ServiceSim/Editor/ServiceSimMapPlanner.cs
      「④ 確かめ A」のメニューを足した（③⑦と同じ中身を呼ぶ）
    Assets/ServiceSim/Editor/ServiceSimStageB.cs
      件数の確かめを「ちょうど6件」から「6件以上」に変えた。
      段階Bは並びの頭の6件（③⑦）だけを使うので、9件になると段階Bのメニューが
      すべて止まってしまうため。並びと回し方は変えていない
    tools/make_queue.py
      --stores を足した（下の 6 章）
    tools/night_runner.py
      --record-name を足した。既定は --night と同じなので、今までと動きは変わらない。
      名札（--label）は前から変えられた。ただし記録（runner_log・runs.csv・queue.json・judge）は
      night/{night}/ に置かれるので、--night 20261027 のままだと
      最初の夜の night/20261027/ の queue.json と judge.md を上書きしてしまう。
      それを避けるため、記録の置き場所だけを分けられるようにした

  変えていないもの：店の回し方、人とロボットの動き、速さ、物理の設定、同時に回す本数（4）、
    judge_night.py、台帳の列（59）と今までの行、night/ の既存の記録

  画面なしの実行ファイル
    build_id cs28_20261027_1222 / unity_cs ServiceSim/cs:28 / pending_changes 空（保留なし）
    Build Finished, Result: Success・error CS 0。作ったあとも保留 0

  手で戻したもの
    建てて確かめる処理をエディタで回したら、ProjectSettings/NavMeshAreas.asset に
    「New Agent」が3つ書き足されたので、cs:27 の中身に戻した（cm undo）。
    Mat_RobotKeepout.mat も書き直されたが、中身は同じだった。どちらも check-in していない


====================================================================
3. ④を建てて分かったこと（ServiceSim/JSON Store・Map Planner の確かめ A）
====================================================================

  数         卓：Unity 28 / JSON 28 / summary.json 28 で一致。席は 88 で一致
             細い通路は1本（A01・1.2 m）。外寸は 17 × 12 m
  止まる位置  28 か所すべて、ロボット用の NavMesh の上に乗っている（乗らない 0）
  道順       受け渡し口から全 28 卓へ、すべての区間がつながった。
             JSON の dist との差は平均 −0.12 m・最大 0.43 m（T06）。30% を超えた卓は 0
  席         入口から全 28 卓の席に着く点まで歩ける（入れない卓 0）
  場所の点    23 か所すべて NavMesh に乗った（乗らない 0）
             待機場所2・レジ（店員側 0.7 × 2.7 m、受け渡し口から 3.56 m で行ける）・
             スタッフ待機4・会計の列3・待合・入口・パントリー・返却口はすべて置けた
  行き止まり  通路をふさいでも、ほかの全卓に届く。届かない卓 0（ロボット・人とも）
  NavMesh    ロボット用・人用とも、つながっていない面は 0 m2
  確かめ A   地図で全卓に道が引けた（引けない卓 0）。狭い道を使う卓は 0 で、サイトと一致。
             待機場所2つへも道が引けた（どちらもマスの種類 1＝通れる幅だけの所）

  気づいたこと（直していない）
    ・A01（1.2 m）の人用の歩ける幅：計算では 0.8 m、焼いた面では 0.68 m。
      「0.12 m 足りない」と出ている。③の 1.2 m の通路でも同じような出方が前からある
    ・ロボットの待機場所2つは、地図で「ふだんの道」ではなく「通れる幅だけ」のマスにある
  置けなかった所：なし

  書き出し（screens/）
    20261027_p2_efficient_narrow_json_check.txt / _table_dist.csv
    20261027_1221_map_planner_checkA_p2.txt / 20261027_1221_map_plan_p2_efficient_narrow.csv


====================================================================
4. 確かめの3回（すれ違い入・種0・ラベル p2check・同時 3 本）
====================================================================

  出力フォルダ   20261027_p2check_cs28_fam_p2_r{0,1,2}_s0_passon
  記録          night/20261027_p2check/（runner_log・runs.csv・queue.json・judge.md）
  runner        終了コード 0。completed 3・失敗 0・止まった回 0。実時間 3.0 / 3.3 / 4.6 分
  judge.md      基準なし 3（④の基準データがないので判定はしていない。依頼のとおり）

  左が Unity、右が試算（params の site_result）。単位は分。割合は 0〜1
                                 0台                1台                2台
  最後まで回ったか                completed           completed          completed
  全員帰ったか                    はい                はい               はい
  店の時間（分）                  193.6               206.5              285.9
  入れた組の数                    48 / 56.1           48 / 56.3          48 / 54.6
  入店待ち                        6.31 / 9.72         12.70 / 3.37       29.45 / 3.17
   うち席は空いているのに待った    5.17 / 7.93         11.39 / 2.19       27.82 / 1.93
  料理の待ち                      1.32 / 0.90         2.11 / 1.30        5.19 / 0.47
  会計待ち                        1.80 / 4.24         1.89 / 4.97        3.69 / 4.86
  ロボットが運んだ皿の割合         0 / 0               0.858 / 0.957      0.833 / 1.000
  往復の数                        0                   77                 77
  30秒以上の止まり（1往復あたり）  0（0）              27（0.351）        143（1.857）
  動けなくなった（60秒）           0                   22                 116
  卓を空けた（逃がし弁）           0                   0                  2
  瞬間移動                        0                   21                 74
  打ち切り                        0                   0                  18
  （参考）あきらめた               0                   39                 166
  （参考）冷めた皿の割合           0.042 / 0.002       0.267 / 0.043      0.550 / 0
  （参考）卓が使えるまで           22.9 / 17.6         26.1 / 5.2         63.6 / 4.6

  差の理由は調べていません（依頼のとおり）。


====================================================================
5. 台帳
====================================================================

  行数：325 → 328（3 行足した。追記だけ）
  先頭 325 行の md5：f6c7e71ce48dba4a620850b48535c411（退避と同じ）
  鍵ファイルは残っていない


====================================================================
6. 何も指定しないときに③⑦の60回のままか（台帳には書いていない）
====================================================================

  python3 tools/make_queue.py --out /tmp/q_default.json
    → 条件 6（fam_p1・fam_p5 × 0・1・2 台）× 種 0〜9 ＝ 60 回・すれ違い入 60
    → night/20261029/queue.json（v4 の夜）と比べて runs が並び順まで同じ
  python3 tools/make_queue.py --stores fam_p2 --seeds 0 --label p2check …  → 3 回
  --stores fam_p9 → 「知らない店です」で終了コード 1。queue は作らない
  --conditions を付けたときは、その条件をそのまま使う（--stores の既定では絞らない）

  確かめの前に night_runner の dry-run を1度だけ回した。
  その記録は night/20261027_p2check_dryrun/ にある（消していない。台帳には書いていない）


====================================================================
7. エイイチが画面で④を見る手順
====================================================================

  1. Unity Hub から ServiceSim（/Users/shimazueiichi/Robotics_UX/ServiceSim）を開く
  2. シーン Assets/ServiceSim/Scenes/ServiceSim_Family.unity を開く
     （メニューを押せば自動で切り替わるものもある）
  3. 建てるだけで見る：ServiceSim → JSON Store → ④ p2_efficient_narrow を建てて確かめる
  4. 回して見る：ServiceSim → Site Run → ④ スタッフ2人・ロボット0台 / 1台 / 2台
     Play に入って回り、終わると自動で Play を抜ける。
     出力は KIOXIA の {日付}_p2_efficient_narrow_{条件}_s{種}_{時刻}/ に出る。
     すれ違いは RobotSpec の passByEnabled（いまは入）に従う。
     種は ExperimentPlan の trialSeed（確かめの3回は種 0）
     ※ 止まりが多いのを見るなら、2台の回がいちばん分かりやすい


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

  1. ④ロボット2台の止まりの多さ（1往復あたり 1.86・打ち切り 18・瞬間移動 74・
     入店待ち 29.5 分 対 試算 3.2 分）を、店の形（サイト側）の問題とみるか、
     Unity の作りの問題とみるか。④の夜を回すかどうかも含めて決めてください。
     このまま夜を回しても、2台の回はこの傾向のまま出ると思われます。
     Unity 側でも店の形でも、④のためだけの手直しはしていません。
  2. 入れた組の数が3回とも 48 組で、試算（54.6〜56.3 組）より少ない。
     28 組/時 × 120 分ならおよそ 56 組です。調べるかどうか決めてください
     （③⑦にも同じ傾向があるかは、今回は見ていません）。
  3. 段階Bの件数の確かめを「6件以上」に緩めたこと（2 章）。
     これでよいか確かめてください（③⑦の18回の並びは変えていません）。
