diff --git a/public/sim/serving-robot-params.json b/public/sim/serving-robot-params.json index 68e97d3..c5b4e6f 100644 --- a/public/sim/serving-robot-params.json +++ b/public/sim/serving-robot-params.json @@ -4,7 +4,7 @@ "model": "v2.4", "reps": 40, "ng_min": 10, - "layout_generation": "f282eaa6cb71", + "layout_generation": "82023936eb99", "source": "p2m-site の public/sim/serving-robot.html と同じ試算(haizen_sim.py)と結果(results.json)", "roles": { "unity_measures": "Unity で測ってサイトに戻すための仮の値。Unity は読まない", @@ -239,8 +239,8 @@ "label": "⑦ ③の通路を80cmに", "tables": 42, "dist_m": [ - 3.4, - 20.3 + 3.0, + 20.2 ], "peak_min": 120, "first_dishes": [ @@ -291,36 +291,36 @@ "base": "family", "layout": "p5", "dist_list": [ - 14.57, - 16.42, - 18.27, - 20.12, - 14.77, - 16.62, - 18.47, - 20.32, - 11.47, - 13.32, - 15.17, - 17.02, - 11.47, - 13.32, - 15.17, - 17.02, - 17.05, - 8.17, - 10.02, - 11.87, - 12.59, - 12.0, - 8.17, - 10.02, - 11.87, - 12.59, - 3.42, - 3.78, - 5.0, - 6.85, + 14.42, + 16.27, + 18.12, + 19.97, + 14.62, + 16.47, + 18.32, + 20.17, + 11.17, + 13.02, + 14.87, + 16.72, + 11.17, + 13.02, + 14.87, + 16.72, + 17.01, + 7.72, + 9.57, + 11.42, + 12.4, + 11.96, + 7.72, + 9.57, + 11.42, + 12.4, + 2.97, + 3.33, + 4.81, + 6.66, 8.22, 6.37, 4.67, @@ -447,13 +447,13 @@ "fragile_by": "any" }, "site_result": { - "dish_wait_mean": 0.6564, - "dish_wait_p90": 1.3685, - "cold_share": 0.0006, - "seat_wait_mean": 2.9121, - "turn_mean": 9.7143, - "walk_km_per_staff": 2.8334, - "staff_util": 0.7467, + "dish_wait_mean": 0.6572, + "dish_wait_p90": 1.3761, + "cold_share": 0.0012, + "seat_wait_mean": 3.775, + "turn_mean": 10.152, + "walk_km_per_staff": 2.8551, + "staff_util": 0.7522, "robot_util": 0.0, "robot_share": 0.0, "robot_bus_share": 0.0, @@ -461,12 +461,12 @@ "rescues": 0, "pauses": 0, "fragile_robot": 0, - "groups": 84.325, - "entry_wait_mean": 3.4971, - "blocked_wait_mean": 2.5981, - "guide_wait_mean": 0.4008, - "staff_wait_mean": 2.999, - "full_wait_mean": 0.314 + "groups": 85.625, + "entry_wait_mean": 4.3607, + "blocked_wait_mean": 3.568, + "guide_wait_mean": 0.4037, + "staff_wait_mean": 3.9717, + "full_wait_mean": 0.207 } }, { @@ -480,26 +480,26 @@ "fragile_by": "any" }, "site_result": { - "dish_wait_mean": 0.5483, - "dish_wait_p90": 1.0983, - "cold_share": 0.0008, - "seat_wait_mean": 1.6327, - "turn_mean": 5.5917, - "walk_km_per_staff": 2.2703, - "staff_util": 0.6866, - "robot_util": 0.5899, - "robot_share": 0.4581, + "dish_wait_mean": 0.5299, + "dish_wait_p90": 1.0788, + "cold_share": 0.0005, + "seat_wait_mean": 1.1136, + "turn_mean": 5.1263, + "walk_km_per_staff": 2.2447, + "staff_util": 0.6905, + "robot_util": 0.587, + "robot_share": 0.4586, "robot_bus_share": 0.0, "collects": 0, - "rescues": 0.675, - "pauses": 23.8, - "fragile_robot": 21, - "groups": 82.75, - "entry_wait_mean": 2.1021, - "blocked_wait_mean": 1.3084, - "guide_wait_mean": 0.2853, - "staff_wait_mean": 1.5937, - "full_wait_mean": 0.3243 + "rescues": 1, + "pauses": 24.925, + "fragile_robot": 21.15, + "groups": 83.525, + "entry_wait_mean": 1.572, + "blocked_wait_mean": 0.879, + "guide_wait_mean": 0.2779, + "staff_wait_mean": 1.1569, + "full_wait_mean": 0.2346 } }, { @@ -513,26 +513,26 @@ "fragile_by": "any" }, "site_result": { - "dish_wait_mean": 0.485, - "dish_wait_p90": 0.8838, + "dish_wait_mean": 0.481, + "dish_wait_p90": 0.8814, "cold_share": 0.0001, - "seat_wait_mean": 0.797, - "turn_mean": 4.3005, - "walk_km_per_staff": 1.9881, - "staff_util": 0.6664, - "robot_util": 0.4998, - "robot_share": 0.729, + "seat_wait_mean": 0.9795, + "turn_mean": 4.5091, + "walk_km_per_staff": 1.9533, + "staff_util": 0.6561, + "robot_util": 0.4897, + "robot_share": 0.7311, "robot_bus_share": 0.0, "collects": 0, "rescues": 1.425, - "pauses": 42.6, - "fragile_robot": 32.75, - "groups": 83.725, - "entry_wait_mean": 1.2289, - "blocked_wait_mean": 0.6554, - "guide_wait_mean": 0.2469, - "staff_wait_mean": 0.9024, - "full_wait_mean": 0.1416 + "pauses": 40.525, + "fragile_robot": 31.85, + "groups": 82.925, + "entry_wait_mean": 1.4157, + "blocked_wait_mean": 0.842, + "guide_wait_mean": 0.2535, + "staff_wait_mean": 1.0954, + "full_wait_mean": 0.1375 } } ] diff --git a/tools/sim_layouts/README.md b/tools/sim_layouts/README.md index 23fed62..22d2ece 100644 --- a/tools/sim_layouts/README.md +++ b/tools/sim_layouts/README.md @@ -24,7 +24,7 @@ `unity_export.py` が、店の形と解析から決まった規則で作る(規則はファイルの先頭に書いた)。`famires_v3.py` を回すと一緒に出る。Unity はこれを読んで店を建て、店の形を自分で作らない。試算(haizen_sim.py)はこれを使わない。 - 卓の数・止まる位置・卓までの距離は analysis と同じ(テストで確かめる)。版の番号(generation)も同じ -- 細い通路:同じ向きのボックス席がすき間なく並んだ列の、隣り合う列のすき間(0.5〜1.5m)。両端の0.8m外に入口の点を置き、受け渡し口の前から近い方を entrance とする。③⑦は3本(③1.2m、⑦0.9m) +- 細い通路:同じ向きのボックス席がすき間なく並んだ列の、隣り合う列のすき間(0.5〜1.5m)。両端の0.8m外に入口の点を置き、受け渡し口の前から近い方を entrance とする。③⑦は3本(③1.2m、⑦0.95m) - 卓の部品:天板・ベンチ・椅子(2人席の通路側の椅子だけ引ける。引く向きつき)・座る位置(席数ぶん)・席に着くために立つ点(座る側の辺の真ん中から0.3m外。障害物から0.2m=人の半径以上離れた所だけ) - 部屋は通れない箱。ただしレジ内は `walkable: true, staff_only: true`(スタッフが中に立つ所。箱にしない) - 場所の点:受け渡し口の前・下げ膳の返却(受け渡し口と同じ)・入口・待合・レジ(レジ内の反対側)と並ぶ点・レジ内・トイレの入口の前・ドリンクバーの前と立つ点・並ぶ点・ロボットの待機場所(1台ずつ)・スタッフが待つ点 @@ -55,7 +55,7 @@ python3 test_famires_v3.py # 確かめの仕組みそのものを確か 4. 入口の位置はパターンごとに変える。入口の近くにレジ(2.5m以上)と待合 5. トイレ:客席に面する側は厚さ30cm以上の壁。トイレから1m以内(ちょうど1mも含む)に席を置くなら、席とトイレの入口の間に壁が要る。トイレの入口の前1.2mには何も置かない 6. ドリンクバーあり。ロボットの待機・充電の場所は料理の受け渡し口の横(1台あたり0.8m×0.8m) -7. ⑦は③と同じ卓・同じ席数のまま、列の間の通路だけを90cmに詰めた比較用(はじめは80cm。2026-10-23、Unity でロボットがほとんど動けず、右端の列の横に余りがあったので、島を右へずらして90cmにした) +7. ⑦は③と同じ卓・同じ席数のまま、列の間の通路だけを95cmに詰めた比較用(はじめは80cm。2026-10-23、Unity でロボットがほとんど動けず、右端の列の横に余りがあったので、島を右へずらして95cmにした。ふだん走らせる幅1.0mより狭いので、細い通路の卓は狭い道で入る) 8. ②記憶の店は、昔働いていた店の記憶をもとにした店(layout_v11.json)を決まりに合わせた版。トイレとバックヤード(パントリーの出入り口・洗い場・物置)が客席の奥の壁より外へ出っ張り、奥の端はそろう。トイレへはパントリーの壁ぞいの通路から入る **ロボット** diff --git a/tools/sim_layouts/famires_gen2.py b/tools/sim_layouts/famires_gen2.py index 0518c9e..506f458 100644 --- a/tools/sim_layouts/famires_gen2.py +++ b/tools/sim_layouts/famires_gen2.py @@ -253,12 +253,12 @@ def p4_relaxed_side(): def p5_crammed(): - """③と同じ卓・同じ席数のまま、列の間の通路だけを1.2mから0.9mに詰めた比較用。 + """③と同じ卓・同じ席数のまま、列の間の通路だけを1.2mから0.95mに詰めた比較用。 はじめは0.8m(BellaBot の通れる幅ちょうど)だったが、Unity でロボットがほとんど動けず、 - 右端の列の横に詰めた分の余りがあったので、島を右へずらして0.9mにした(2026-10-23 エイイチと決めた)""" + 右端の列の横に詰めた分の余りがあったので、島を右へずらして0.95mにした(2026-10-23 エイイチと決めた)""" L = p1_efficient_corner() - L["name"] = "⑦ ③の列の間の通路を90cmに(卓と席数は③と同じ)" - AISLE = 0.9 + L["name"] = "⑦ ③の列の間の通路を95cmに(卓と席数は③と同じ)" + AISLE = 0.95 t = strip(0.0, 4.6, "v", 4) x = 1.2 + AISLE for n in (4, 5, 4): # ③と同じ島(4・5・4ボックス) diff --git a/tools/sim_layouts/test_famires_v3.py b/tools/sim_layouts/test_famires_v3.py index 53daf5a..9d5274c 100644 --- a/tools/sim_layouts/test_famires_v3.py +++ b/tools/sim_layouts/test_famires_v3.py @@ -336,7 +336,7 @@ expect("出入り口Aを壁でふさぐと見つける", any(k == "出入り口" # ---- Unity 用の細かい形(unity_export.py。2026-10-22) import unity_export as ux -for nm, fn, width in (("p1", gen.p1_efficient_corner, 1.2), ("p5", gen.p5_crammed, 0.9)): +for nm, fn, width in (("p1", gen.p1_efficient_corner, 1.2), ("p5", gen.p5_crammed, 0.95)): L = v.prepare(fn()) ctx = {} res, err = v.analyze(L, 0.025, ctx)