==================================================================== ④ 効率重視・小さめの店(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回の並びは変えていません)。