====================================================================
⑥ ゆったり・入口が左の壁の店（fam_p4）を建てて、1回ずつ回して確かめた
依頼：20261028_21_店6を建てて確かめる.md
2026-10-28 19:35　check-in：cs:37・cs:38　build_id cs38_20261028_1923（保留 0）
====================================================================

結論

  ・始める前の確かめ5つは、すべて合格だった。
  ・公開版（版 2e9fc773050a）の params と ③⑦④⑤⑥の店の形を写した。版はすべてそろっていた。
    ③⑦④⑤は前の写しと版の番号以外同じ。params は fam_p4 と条件3件（12〜14 番）が足されただけ。
  ・⑥は③⑦④⑤と同じコードで建った（合わないもの なし）。卓 38・席 158、止まる位置 38 / 38 が NavMesh の上、
    受け渡し口から全卓へ道がつながり、入口から全卓の席へ歩ける。確かめ A も全卓・待機場所3つとも引けた。
  ・check-in して画面なしの実行ファイルを作り直し、確かめの3回（⑥ × 0・1・2台 × 種0）を回した。
    3回とも completed・全員帰った。打ち切りは 2台の回で 3。
  ・台帳 598 → 601 行（追記だけ）。先頭 598 行の md5 は退避と同じ。
  ・何も指定しない make_queue は③⑦の60回のまま。


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

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


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

  写し元：https://pixelstomotors.com/sim/（2026-10-28 19:17 に curl で取得）
    控え：unity/site_copy_2e9fc773050a/（params・summary.json・unity/ の6店の JSON と地図・README.txt）
  版の番号：params の layout_generation、6店の JSON と地図の meta.generation、summary.json がすべて 2e9fc773050a
  プロジェクトの今の写し（cs:36）との違い
    p1・p5・p2・p3 の JSON と地図（8本）：版の番号以外の違い 0
    summary.json：版の番号以外の違い 0
    params：stores.fam_p4 と unity_conditions の 12〜14 番（⑥の 0・1・2 台）が足されただけ。
            common・unity_rules・0〜11 番・stores のほかの店は同じ。meta で変わったのは layout_generation だけ
  どれも cp でそのまま写した（手で値を写していない）。p4 の JSON と地図は新しく足した。


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

  check-in：cs:37 と cs:38（保留 0）
    cs:37 には足したファイル6つだけが入った。変えたファイル15件は、コマンドの渡し方の誤り（zsh でファイル名が
    1つにつながった）で入らなかったので、すぐに cs:38 として入れ直した。
    実行ファイルと3回は cs:38 から作ったので、cs:37 だけの状態では何も回していない。
  画面なしの実行ファイル：build_id cs38_20261028_1923 / unity_cs ServiceSim/cs:38 / pending_changes 空
                         Build Finished, Result: Success・error CS 0

  変えたファイル
    cs:37（足した）
      Assets/ServiceSim/Store/Layouts/p4_relaxed_side.json・_map.json（＋.meta）   公開版の写し
      Assets/ServiceSim/Store/StoreLayout_p4_relaxed_side.asset（＋.meta）         ⑤の .asset を写し、JSON・地図・名前・写し元を
                                                                                   差し替えた（通路の幅は JSON と同じ 1.5 m）
    cs:38（変えた）
      Assets/ServiceSim/Experiment/serving-robot-params.json   公開版の写し
      Assets/ServiceSim/Store/Layouts/summary.json・p1/p5/p2/p3 の JSON と地図   公開版の写し（版の番号だけ変わった）
      Assets/ServiceSim/Editor/ServiceSimSetup.cs       P4LayoutPath・HeadlessRun.layouts に⑥
      Assets/ServiceSim/Editor/ServiceSimSiteRun.cs     ⑥の3条件（unity_conditions の 12・13・14）
      Assets/ServiceSim/Editor/ServiceSimJsonStore.cs   「⑥ p4_relaxed_side を建てて確かめる」・版と試算の値の確かめに⑥
      Assets/ServiceSim/Editor/ServiceSimMapPlanner.cs  「⑥ 確かめ A」
      Assets/ServiceSim/Scenes/ServiceSim_Family.unity  HeadlessRun.layouts に⑥（1行）
    どれも⑤を足したときと同じ形（名前と番号の差し替えだけ）。⑥のためだけの手直しはしていない。

  手で戻したもの（check-in していない）
    建てて確かめる処理を回すと ProjectSettings/NavMeshAreas.asset が書き換わったので cm undo で戻した（④⑤と同じ）。
    Mat_RobotKeepout.mat も変更ありになったが中身は同じだったので戻した。

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


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

  数         卓：Unity 38 / JSON 38 / summary.json 38 で一致。席 158 で一致
             細い通路 2 本（A01 x 1.2〜2.7・A02 x 5.25〜6.75、いずれも 1.5 m）。外寸 24 × 17 m
             地図のマスの数は JSON の counts と一致。合わないもの：なし
  止まる位置  38 か所すべてロボット用の NavMesh の上（乗らない 0）。地図でも 38 卓すべて通れるマス
  道順       受け渡し口から全 38 卓、すべての区間がつながった。
             JSON の dist との差は平均 −0.44 m・最大 1.0 m（T01）。30% を超えた卓は 0
  席         入口 (0.5, 2.2) から全 38 卓の席に着く点まで歩ける（入れない卓 0）
  場所の点    26 か所すべて NavMesh に乗った（乗らない 0）。置けなかった所はない
               受け渡し口・返却口・パントリー (14.3, 5.95)／入口 (0.5, 2.2)／待合の前 (1.8, 0.9)／トイレ (10.9, 14.2)
               レジ 1 (3.2, 1.25)・会計の列 3 (2.7 / 2.2 / 1.7, 1.25)・レジの内側 (4.75, 1.25)
                 レジの内側は人用・ロボット用とも受け渡し口から 11.06 m で行ける
               ドリンクバー（立つ点 4：x 15.7〜18.7・y 4.5／並ぶ点 1：(18.0, 5.4)）
               ロボットの待機場所 3：(15.9, 6.05)・(16.7, 6.05)・(17.5, 6.05)
                 地図では3つとも「通れる幅だけ」のマス（④⑤と同じ）。確かめ A で3つとも道が引けた
               スタッフが待つ点 6：x 12.75・y 6.81〜9.89（スタッフ3人なので1人1点）
  行き止まり  細い通路を1本ずつふさいでも、ほかの全卓に届く（ロボット・人とも）
  確かめ A   引けない卓 0 / 38。狭い道を使う卓 0（サイトの routes も 0 で一致）。
             長さの比 最小 0.964 / 平均 1.011 / 最大 1.044

  気づいたこと（直していない。調べてもいない）
    ・レジの内側：確かめが「入口（西のふち）0 m ← 0.7 m 未満」と出す。レジを下の壁まで寄せたので、
      西はレジ台・南は壁になり、入るのは上（y 2.5）からになる。受け渡し口から行けて、回でもレジの内側に
      入れなかった人は 0（register_back_intruders 0）。ただし会計の位置がずれた回が 1台 4・2台 1 ある
      （register_pay_off_spot）。確かめの「西のふち」の見方がこの形に合っていないだけかもしれない
    ・細い通路の人用の幅：A01・A02 とも焼いた面のいちばん狭いところ 0.98 m（計算上 1.1 m）で、確かめは
      「直す必要あり」と出す。ロボット用は計算どおり。行き止まり・席に入れるかの確かめは通っている
    ・ロボット用 NavMesh の「受け渡し口からつながる面」が 32.34 m2、「つながっていない面」が 118.63 m2 と出た
      （⑤は 0.8 m2）。人用は 159.07 m2 すべてつながっている。
      一方で、NavMesh の上の道の確かめ（全 38 卓つながる・届かない卓 0）は通っており、回でもロボットは全卓に運べた。
      この数え方は「頂点を共有する三角形」だけをつなぐので、面の切り方によっては少なく出る。
      本当に切れ目があるのかは調べていない
  書き出し（unity/screens/）
    20261028_p4_relaxed_side_json_check.txt / _table_dist.csv
    20261028_1919_map_planner_checkA_p4.txt / map_plan の CSV


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

  python3 tools/make_queue.py --stores fam_p4 --seeds 0 --label p4check --out /tmp/p4c/queue_p4check.json
  python3 tools/night_runner.py --queue /tmp/p4c/queue_p4check.json --parallel 4 --night 20261028
      --label p4check --record-name 20261028_p4check
  出力 20261028_p4check_cs38_fam_p4_r{0,1,2}_s0_passon_sbret
  記録 night/20261028_p4check/（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.0 分
  （参考）店の時間                 174.8 分            175.0 分            171.8 分
  入れた組の数                     59 / 76.1           59 / 75.4           59 / 73.9
  入店待ち                         1.89 / 6.95         1.71 / 3.12         1.44 / 1.89
   うち席は空いているのに待った     0.09 / 3.71         0 / 0.72            0 / 0.40
  料理の待ち                       1.21 / 0.75         2.18 / 1.97         1.00 / 0.82
  会計待ち                         1.93 / 12.05        2.99 / 8.47         1.78 / 6.99
  ロボットが運んだ皿の割合         0 / 0               0.865 / 0.800       0.986 / 0.999
  往復の数                         0                   68                  127
  30秒以上の止まり                 0                   6                   23
   （1往復あたり）                 0                   0.088               0.181
  動けなくなった（60秒）           0                   6                   15
  卓を空けた（逃がし弁）           0                   0                   0
  瞬間移動                         0                   32                  37
  打ち切り                         0                   0                   3
  （参考）あきらめた               7                   23                  18
  （参考）冷めた皿の割合           0.027 / 0.0005      0.291 / 0.132       0.034 / 0.005
  （参考）待機場所へ戻った／出た   0 / 0               68 / 68             126 / 125（戻れず受け渡し口へ 0）
  （参考）ドリンクバーで並んだ／あきらめた  9 / 7      13 / 8              11 / 3

  目立つ点（差の理由は調べていない。依頼のとおり）
    ・入れた組の数が3回とも 59 組で、試算（74〜76 組）より少ない（⑤でも 71 対 91〜95 だった）
    ・会計待ちは Unity 1.8〜3.0 分で、試算の 0台 12.1 分のような「レジが詰まる」形にはならなかった
    ・1台の回は冷めた皿の割合が 0.29（試算 0.13）
    ・2台の回の 30 秒以上の止まりは 23 で、⑤（9）・往復あたりでも多い（下の 6 章）

  2台の回の 30 秒以上の止まり（23 回）の場所
    受け渡し口の点 (14.3, 5.95) から 2.5 m 以内            12 回（すべて「もう1台のロボット」）
     うち待機場所での止まりを除いた数                      3 回（3 回とも (14.79, 6.06)：受け渡し口と待機場所1の間）
       （待機場所＝店の形の RobotStandby の四角：x 15.5〜16.3・16.3〜17.1・17.1〜17.9、y 5.65〜6.45。
        この四角の中での止まりは 9 回。ほぼ待機場所1 (15.6〜15.9, 5.9〜6.06) で、うち 7 回は 60 秒の「動けなくなった」）
    ドリンクバーのまわり（x 14.8〜19.6・y 1.8〜5.65）      0 回
    入口・レジのまわり（x < 5.2・y < 5.0）                0 回
    左の2本の通路（x 1.2〜2.7 と 5.25〜6.75、y 5.2〜14.5） 2 回（A01 (2.21, 6.86) と A02 の上の端 (6.42, 13.45)。どちらも客とすれ違った）
    上のどれにも入らない所                                 9 回
      (8.5〜9.3, 13.6〜14.4)：トイレの入口の前 (10.9, 14.2) の左。もう1台のロボット 1・スタッフ 2・人が立ち止まっていた 4・客 1、
      (6.90, 4.94)：A02 の下の入口の下。もう1台のロボット 1
    理由ごと（23 回）：もう1台のロボット 14・人が立ち止まっていた 4・お客さんとすれ違った 3・スタッフとすれ違った 2

  入口・レジのまわり（x < 5.2・y < 2.5）で人（客・スタッフ）が立ち止まった回数
    人どうしで詰まった（people_jams）：0台 0・1台 0・2台 0
    スタッフがロボットに道をゆずって待った（yields）：0台 0・1台 4（計 126 秒）・2台 5（計 86 秒）
      場所はどれも (1.5〜2.1, 2.22) あたり（待合の前・会計の列の上）。ロボットの通った跡はこの範囲に入っていない
    あきらめた・移した（give_ups）：1台の回で 2（スタッフが案内を 60 秒であきらめた 1・会計の客が並ぶ点を移した 1、
      どちらも (2.2〜2.6, 2.22) あたり）。0台・2台は 0
    客どうしの接触・詰まりとして記録されたものはなく、待合の客と会計の列の重なりは、
    今の記録の上では目立った止まりとしては出ていない（レジのまわりの人数は最大 8〜9 人・平均 2.1〜2.3 人）


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

  行数：598 → 601（3 行足した。追記だけ。3行とも unity_cs ServiceSim/cs:38・layout_generation 2e9fc773050a）
  先頭 598 行の md5：b8be20af5210641661f8b40b52fd120b（退避と同じ）
  列は今までどおり（59 列）。鍵ファイルは残っていない


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

  --stores fam_p4 --seeds 0 --label p4check → fam_p4_s3_r{0,1,2}_a38 の 3 回
    （0台 trays 1・1台と2台 trays 3・レジ 1・すれ違い入・待機場所へ戻る入・案B切）。make_queue.py はコードを変えずに使えた
  何も指定しない（cs:38 のあとで /tmp に作った）
    → fam_p1・fam_p5 × 0・1・2 台 × 種 0〜9 ＝ 60 回。
       night/20261102/queue.json（v5 の夜）と、回の並びと中身が同じ（label を除く）
  作業フォルダに queue の一時ファイルは置いていない（/tmp/p4c/ にだけ作った）。最後の保留 0（cs:38 head）。


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

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


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

  1. ⑥の夜を回すかどうか（依頼のとおり、本番の夜は回していない）。
  2. 2台の回で、30 秒以上の止まり 23 のうち 9 が待機場所1の中、3 が受け渡し口と待機場所1の間で、
     すべて「もう1台のロボット」（60 秒で動けなくなった 7 を含む）。待機場所が受け渡し口の前から 1.2 m の形
     （図面で分かっていて残したこと）が効いているように見える。このまま夜を回すか、先にサイトの形を見直すか。
  3. 入れた組の数が 59 組で、試算（74〜76 組）より少ない。会計待ちも試算のように詰まらなかった（⑤と同じ傾向）。
  4. 4 章の気づいたこと（レジの内側の「西のふち 0 m」、細い通路の人用の幅 0.98 m、
     ロボット用 NavMesh の「つながっていない面」118.63 m2）を調べるかどうか。
     どれも回は最後まで回っているが、店の形のことなので、直すならサイトが先。
