サービスロボット導入シミュレーション Log#38 | 片付けを止めずに、配膳ロボットの横をすり抜ける
この記事の素材(コード・ログ・データ 13ファイル・まとめてダウンロードあり)arrow_downwardAIで読む ChatGPT・Claude などで、この記事に質問できます expand_more
70卓・312席の大型ファミレスを Unity の3Dで再現したシミュレーションでは、スタッフが細い通路の中の配膳ロボットを入口で待たず、体を横に向けて横をすり抜ける決まりにすると、入口で待ってあきらめる回数は1回の営業あたり18〜24回から0になり、ロボット5台の入店待ちは13.24分から10.74分に縮みました。 同じお客さんの来かたで10回回した中央値で、実物の店で測った数字ではありません。
この回で良くなったことと、次にできるようになったことです。
- スタッフの手が空いた。スタッフが手すきでいる時間の割合は、配膳で38.5〜40.3%から41.8〜43.4%へ、下げ膳で39.8〜41.5%から44.0〜45.8%へ増え、片付けを待つ卓もどの台数でも減った
- 大型店⑧が、配膳ロボットのベースとして決めた合格の線5つを、配膳・下げ膳とも全部満たした。⑧はここで区切り、次の大型店⑨は、⑧で決めた4つの決まりが何も指定しなくても入った形から回せる
- 引き換えに、ロボットが人の前で止まる分は増えた。2〜4台では、ロボットが止まっていた時間の合計が1〜2割増えることがある。実物の配膳ロボットも人が横を通ると止まるので、現実に近い向きの変化と見ている
困っていたのは、前の回(LOG465)の終わりに見つかった、スタッフ1人が片付けの途中で約1時間40分止まったままになる回でした。記録をたどると、本人は止まっておらず、その場で次の仕事に移っていました。残っていたのは閉じ忘れた記録です。ただ、記録が残るきっかけには店で本当に起きていることが入っていました。幅1.5mの細い通路の中に配膳ロボットがいると、スタッフは入口で出てくるのを待ち、60秒であきらめては戻ってくるをくり返していたのです。その間、卓は片付かず、お客さんが600秒待って自分で席を空けていました。人はロボットよりずっと狭い所を体を横にして通れますし、店もそういう前提で作られています。
| やったこと | なぜ | 結果 |
|---|---|---|
片付けの止まりを記録から1件ずつ調べた(依頼122) | 1時間40分も止まるのは作りの問題と見たため | 35件とも閉じ忘れた記録。きっかけは細い通路の入口で待つスタッフ(型A)と、待機点の列の中で出られない人(型B) |
閉じ忘れる記録を直し、すり抜けを切と入で比べた(依頼123) | 記録を直しても、入口で待つ動きは残るため | 型A は18〜24回から0。入店待ちは5台で13.24分→10.56分。体が最大12cm ロボットに重なった |
すり抜けを標準にし、重ならない形に直した(依頼124) | 人がロボットの体を通り抜けるのは、瞬間移動と同じく現実にない動きのため | 重なりは80回で61回・どれも2.5cm 未満まで減った。⑧は配膳・下げ膳とも合格の線5つ |
残った2.5cm 未満の重なりを許し、⑧を区切った | 壁ぎわでロボットの方が寄ってくる分は、人の側だけでは防げないため | 次は⑨を同じ形で回す(依頼125) |
この回でも、Unity の中のずれを全部直すことは目的にしていません。何を変えたら何が変わったかを数で並べ、店で問題が起きたときに原因を切り分ける材料にしています。
配膳ロボットを自分の店に入れたらどうなるかは、このシリーズの試算をもとにした別のページで試せます。
作業ログ ― 依頼122:実行ファイルの既定・片付けの止まり・⑧の比較動画
この記事のコード・ログ・データは、1ファイルずつ下に置いています。全文はリンク先にあります。
ファイルの一覧(13本)
01_sec01.txt ― スタッフの片付けの止まり35件は、どれも閉じ忘れた記録だった / 止まりの1件ずつの経過(why122_out.txt)・9,934字
02_sec01.csv ― スタッフの片付けの止まり35件は、どれも閉じ忘れた記録だった / 止まりの一覧(jam122_list.csv)・9,979字
03_sec03.md ― 依頼123 の結果(依頼箱の結果のファイル)・3,408字
04_sec03.txt ― すり抜けの切と入(⑧配膳・10種の中央値) / 依頼123 の集計の出力(agg123_out.txt)・11,351字
05_sec03.md ― すり抜けの切と入(⑧配膳・10種の中央値) / 夜の振り分けの出力(judge.md)・3,033字
06_sec04.txt ― params と README の差分(p2m-site commit d3940ee)・3,078字
07_sec05.md ― 依頼124 の結果(依頼箱の結果のファイル)・3,734字
08_sec05.txt ― 重ならない形に直した結果 / 重なりの1件ずつ(ovd124_out.txt)・27,146字
09_sec05.csv ― 重ならない形に直した結果 / 重なりの一覧(overlaps_sq124.csv)・9,376字
10_sec05.txt ― ⑧の新しい標準(⑧・10種の中央値) / 依頼124 の配膳の集計の出力(agg124_serve_out.txt)・11,958字
11_sec05.txt ― ⑧の新しい標準(⑧・10種の中央値) / 依頼124 の下げ膳の集計の出力(agg124_bus_out.txt)・9,354字
12_sec05.md ― ⑧の新しい標準(⑧・10種の中央値) / 夜の振り分けの出力(judge.md)・5,058字
13_sec06.txt ― params と README の差分(p2m-site commit afbfa04)・3,092字
前の回(LOG465)の終わりに出した依頼122 の結果から始めます。依頼122 は3つの作業をまとめた依頼でした。実行ファイルを直接起こしたときも、サイトの決まりの既定を読むようにする直し。スタッフの片付けの止まりの原因調べ(直さない)。⑧の配膳だけ/配膳+下げ膳の比較動画を、標準の形で撮り直すこと。依頼文は LOG465 に全文を載せています。
この回で使う言葉:すり抜け・型A・型B・仕事の板・交代・重なり・合格の線
| 言葉 | 意味 |
|---|---|
| 細い通路 | ⑧の卓の島のあいだにある、幅1.5mの通路(A01〜A04)。ロボットの幅は約0.5m なので、ロボットが中にいても人は体を横に向ければ横を通れる |
| すり抜け | スタッフが細い通路の中のロボットを入口で待たず、体を横に向けてロボットの横を通ること。サイトの決まりでは staff_squeeze_aisle |
| 型A | 依頼122 で、片付けが600秒進まなかった回を分けた型の1つ。細い通路の入口で、中のロボットが出るのを待ち、60秒であきらめるのをくり返したもの |
| 型B | 同じく、待機点(ロボットが仕事のない間に待つ場所)の列の中に入り込んで出られなかったもの。人は待機点の区画を通らない決まり(LOG465)を入れてからは出ていない |
| 仕事の板 | Unity の店で、まだ終わっていない仕事(案内・片付け・会計など)を並べておく所。スタッフは板から仕事を取って動く |
| 交代 | スタッフが3回あきらめた仕事を手放し、ほかのスタッフに回すこと |
| 重なり | 体を横に向けたスタッフの体と、ロボットの体の外周が重なった深さ。現実には起きないので、0に近いほど良い |
| 種 | お客さんがいつ何人で来るかなど、偶然で決まる部分を作るための番号。種が同じなら同じお客さんが同じ時刻に来るので、決まりを変えたときの違いだけを比べられる |
| ベースとして合格の線5つ | ロボットの種類ごとに、サイトのベースとして区切ってよいかを見る線。瞬間移動が0、同じ条件・同じ種で同じ結果、止まったまま解けない所が残らない(人の止まりも入れる)、試算と向きが合う(どちらかの差が0.5分未満なら横ばい)、サイト用の図面と動画がそろう、の5つ |
| 依頼箱 | Unity の作業を Claude Code に頼む仕組み。依頼文を iCloud のフォルダに置くと、Mac で Claude Code が順に作業し、結果を書き戻す |
Unity は、ゲームや3Dの場面を作る道具です。このシリーズでは、店の形と条件をサイトの試算から写し、Unity の中に店を建てて、お客さん・スタッフ・ロボットを動かしています。店の形・条件・回し方の決まりの正はサイトで、Unity はそれを読みます。
依頼122 の結果(依頼箱の結果のファイル)
# 結果:20261108_122_実行ファイルの既定をサイトから読みスタッフの片付けの止まりを調べ⑧の比較動画を撮り直す
- 状態:完了
- 始めた時刻:2026-11-08 09:14
- 終わった時刻:2026-11-08 11:23(129分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume b153ea76-95db-4297-a756-357a4f280e33`
## Claude Code の報告
やったこと
- 始める前の確かめはすべて合っていました。作業場所は cs:102 で保留 0、ほかに動いているものはなく、鍵ファイルもありません。params の md5 も合っていました。台帳と除く一覧は archive/unity_ledger_v1_pre_122_20261108/ に退避しました(台帳 3,787 行・md5 24387c49…、除く一覧 29 行・md5 cff7bddf…)。
- 1:HeadlessRun.cs を直し、このファイルだけを指定して check-in しました(cs:103・保留 0)。実行ファイルも作り直しました。
- 引数が無いときは params の unity_rules の値を使います。決め方は night_runner と同じで、night_runner は変えていません。
- 依頼の3つ(すぐ押す・まっすぐ入る・人は待機点を通らない)のほかに、同じ作りの「待機点を列で使う」(-ssStandbyQueue)と「くり返し止まる」(-ssRepeatStop)もそろえました。
- night_runner を通さず、実行ファイルを引数なしで直接2回起こして確かめました。
- 2:記録と作りを読んで調べました。回し直しはしていません。止まり一覧(35 件)と、上から見た図2枚を作りました。
- 3:⑧2台・種7 の配膳と下げ膳を cs:103 の既定のままで撮りました。依頼98 と同じ選び方で寄る5分を選び、並べた動画を作りました。
結果
- 1 の確かめ:2回は 21 ファイルとも一致し、依頼120 の chk120a とも 21 ファイル一致しました。瞬間移動は 0 です。
- 違ったのは版・回の名前・時刻・実時間のほか、run_info.json の「同時に何本走らせたか」の欄だけです。引数を付けずに起こしたため、1 から 0 になりました。記録だけの欄で、回の結果ではないため撮影に進みました。
- 2 の原因:一覧の 35 件は、すべて同じ形の記録の残りでした。
- 組が 600 秒待って卓を強引に空けると、その片付けの仕事は仕事の板から外れます。そのあとで、まだその仕事を持っていたスタッフが3回めをあきらめて「交代」すると、止まりの記録が始まります。板に無い仕事は誰も終えないので、記録が閉じずに回の終わりまで残ります。
- スタッフ本人はその場で次の仕事に移っていて、6,000 秒動けなかった人はいません。
- 2 の、600 秒片付かなかったわけ(2つの型):
- 型A(8 件):細い通路(幅 1.5 m)の入口で、中のロボットが出るのを待ち続け、60 秒であきらめるのをくり返したものです。配膳の 3台・種6/5台・種6 を含め、依頼119 の4件はすべてこの型でした。
- 型B(26 件):待機点の列の中に入り込んで出られないものです。「人は待機点の区画を通らない」が入った cs:100 からは出ていません。
- 両方が混ざったものが1件ありました。
- 2 の直し方の候補(どれも作っていません):
- 案1:交代のとき、板に無い仕事なら記録を始めない。回の動きは変わらず、変わるのは記録だけです。
- 案2:卓が空けられたら、その仕事を持っているスタッフもすぐ手放す。回の動きが変わり、今までの基準データと比べ直しになります。
- 案3:細い通路の入口で待つ人に順番を回す(型A のもとを直す)。細い通路のある店すべてで、往復数やロボットの止まりが変わります。
- 3 の撮影:2本とも最後まで回り(実時間 115.5 分/115.6 分・上限 120 分の内)、全員が帰りました。瞬間移動は 0 です。
- 3 の動画:rec_base8_20261108/slow_std/compare_serve_bus_large_p6_std.mp4
- 61.5 秒・3840×1280・30fps です。帯が2段の形なので、高さは依頼98 の 1200 から 1280 になりました。
- 寄った5分は店の時刻 9,120〜9,420 秒(2時間32分〜37分)、卓 T33 のそば(8.9, 2.7)です。止まりの差がいちばん大きい5分として選ばれ、止まりは配膳だけ 181 秒/配膳+下げ膳 7 秒でした。
- 4コマ並べて見て、題・帯・左右のパネルが切れていないことを確かめました。依頼98 の動画は変えていません。
- 台帳は 3,787 行から 3,791 行になりました(chk122 2 行・rec122 2 行)。先頭 3,787 行の md5 は始める前と同じで、終わったあとの md5 は 4c33a2590e3411b3072525e7a1c91675 です。除く一覧は 29 行のままです。
変えたファイル
- Unity(cs:103):Assets/ServiceSim/Experiment/HeadlessRun.cs だけ
- 実行ファイル:Builds/headless を作り直し、撮影用の写し Builds/rec29_fix122 を足した
- KIOXIA:
- 台帳の退避(archive/unity_ledger_v1_pre_122_20261108/)と、台帳への追記4行
- 調べと撮影の記録:night/20261108_fix122/
- 撮影の素材と並べた動画:rec_base8_20261108/
- 報告:claude_code_reports/20261108_fix122.txt と 20261108_fix122_files/
決めてほしいこと
1. 片付けの止まりの直し方を、案1〜3 のどれにするか(組み合わせも含めて)。案3 にするなら、何秒待ったら人に順番を回すかの数も必要です。
2. 線3 の数え方。今回の2件は人が止まり続けたのではなく、記録が閉じなかったものです。× のままにするか、案1 で記録を直してから数え直すか。
3. 比較動画の寄る5分が、依頼98 と同じく「配膳だけの方がよく止まる5分」になりました。下げ膳で悪くなる所を見せたいなら、差の向きをそろえて選び直すか。
4. 実行ファイルを直接起こすと「同時に何本走らせたか」の欄が 0 になります。このままでよいか、引数が無いときは 1 にするか。
判定:合格
実行ファイルの既定を直したあとの確かめ(chk120a と chk122a、chk122a と chk122b の比べ)
引数なしで直接起こした2回は21ファイルとも一致し、依頼120 の回とも一致しました。違ったのは書き込みの時刻と、道を探すのにかかった計算の時間(plan_ms_max)の列だけで、どちらもパソコンの速さで変わる値です。
20261108_chk120a_cs102_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav
と 20261108_chk122a_cs103_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav
結果: 一致
同じだったもの: conditions.json contacts.csv dishes.csv entry_waits.csv give_ups.csv groups.csv nowarp_jams.csv park_returns.csv passes.csv people_avoid_check.csv people_jams.csv requeues.csv rescues.csv robot_track.csv run_info.json staff_moves.csv stops.csv summary.json timeline.csv trips.csv yields.csv
比べなかったもの: []
20261108_chk122a_cs103_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav
と 20261108_chk122b_cs103_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav
結果: 一致
同じだったもの: conditions.json contacts.csv dishes.csv entry_waits.csv give_ups.csv groups.csv nowarp_jams.csv park_returns.csv passes.csv people_avoid_check.csv people_jams.csv requeues.csv rescues.csv robot_track.csv run_info.json staff_moves.csv stops.csv summary.json timeline.csv trips.csv yields.csv
比べなかったもの: []
スタッフの片付けの止まり35件は、どれも閉じ忘れた記録だった
一覧の35件は、すべて同じ形でした。お客さんの組が600秒待って卓を自分で空けると、その片付けの仕事は仕事の板から外れます。そのあとで、まだその仕事を持っていたスタッフが3回めをあきらめて交代すると、止まりの記録が始まります。板に無い仕事はだれも終えないので、記録が閉じずに営業の終わりまで残ります。スタッフ本人はその場で次の仕事に移っていて、6,000秒動けなかった人はいません。
600秒片付かなかったわけは2つの型に分かれました。型A(8件)は細い通路の入口で中のロボットを待ち続けたもので、依頼120 で見つけた配膳の3台・種6 と5台・種6 もこの型です。型B(26件)は待機点の列の中で出られなかったもので、人が待機点の区画を通らない決まりを入れた cs:100 からは出ていません。両方が混ざったものが1件ありました。

止まりの1件ずつの経過(why122_out.txt)
== sb119se r3 s6 卓10 始まり 11724 長さ 6235 位置(4.5,13.2) 卓の点 2.212,8.788 / 卓を空けた 11709(交代の 14 秒前)
あきらめた 11327 at(3.2,12.9) → 60秒のうちロボット待ち 60 秒 相手 ロボット3号機 横へどいた 0
あきらめた 11560 at(5.7,13.1) → 60秒のうちロボット待ち 44 秒 相手 ロボット2号機 横へどいた 0
交代した 11724 at(4.5,13.2) → 60秒のうちロボット待ち 36 秒 相手 ロボット3号機 横へどいた 0/1
== sb119se r5 s6 卓3 始まり 11718 長さ 6148 位置(2.2,4.0) 卓の点 1.988,5.262 / 卓を空けた 11666(交代の 52 秒前)
あきらめた 11219 at(5.8,2.8) → 60秒のうちロボット待ち 44 秒 相手 ロボット1号機 横へどいた 0
あきらめた 11447 at(5.9,3.0) → 60秒のうちロボット待ち 44 秒 相手 ロボット1号機 横へどいた 0
交代した 11718 at(2.2,4.0) → 60秒のうちロボット待ち 0 秒 相手 — 横へどいた —止まりの一覧(jam122_list.csv)
label,run,r,s,who,job,table,t,dur,x,z,aisle,kind,to,seq
sb119se,20261107_sb119se_cs101_large_p6_r3_s6_passon_sbret_ek_post_rescue_smove_se_pav,r3,s6,スタッフ,片付け,10,11723.78,6235.206,4.5479,13.1504,,卓を空けたあとの交代(板に無い仕事),"2.212,8.788","あきらめた 11327(3.2,12.9) → あきらめた 11560(5.7,13.1) → 卓を空けた 11709(2.2,8.8) → 交代した 11724(4.5,13.2)"
sb119se,20261107_sb119se_cs101_large_p6_r5_s6_passon_sbret_ek_post_rescue_smove_se_pav,r5,s6,スタッフ,片付け,3,11718.05,6147.801,2.2135,4.0453,A01,卓を空けたあとの交代(板に無い仕事),"1.988,5.262","あきらめた 11219(5.8,2.8) → あきらめた 11447(5.9,3.0) → 卓を空けた 11666(2.0,5.3) → 交代した 11718(2.2,4.0)"
sb119ret,20261107_sb119ret_cs101_large_p6_r2_s7_passon_sbret_ek_post_rescue_smove_pav,r2,s7,ロボット,1往復の打ち切り,1,12353.11,30846.9,19.0484,10.8777,,板にある仕事の交代,,
sb119ret,20261107_sb119ret_cs101_large_p6_r3_s5_passon_sbret_ek_post_rescue_smove_pav,r3,s5,スタッフ,片付け,48,7253.359,8479.299,28.1551,2.9486,,卓を空けたあとの交代(板に無い仕事),"31.788,3.562","あきらめた 6859(28.1,2.9) → あきらめた 7031(26.7,3.1) → 卓を空けた 7243(31.8,3.6) → 交代した 7253(28.2,2.9)"
sb119ret,20261107_sb119ret_cs101_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_pav,r5,s0,スタッフ,片付け,20,5729.485,8177.083,9.1521,13.294,,卓を空けたあとの交代(板に無い仕事),"6.262,8.788","あきらめた 5245(6.4,11.5) → あきらめた 5556(8.8,14.1) → 卓を空けた 5671(6.3,8.8) → 交代した 5729(9.2,13.3)"
sb119ret,20261107_sb119ret_cs101_large_p6_r5_s5_passon_sbret_ek_post_rescue_smove_pav,r5,s5,ロボット,1往復の打ち切り,1,12802.9,30397.11,18.946,10.9841,,板にある仕事の交代,,
sb114se,20261107_sb114se_cs99_large_p6_r2_s9_passon_sbret_ek_post_rescue_smove_se,r2,s9,ロボット,1往復の打ち切り,1,3526.985,14282.14,20.203,10.704,,板にある仕事の交代,,⑧の比較動画を標準の形で撮り直した
⑧2台・種7 の配膳だけ(左)と配膳+下げ膳(右)を並べ、止まりの差がいちばん大きい5分に寄せて、店の時刻の5倍で流しています。寄ったのは店の時刻9,120〜9,420秒(開店2時間32分〜37分)の卓 T33 のそばで、この5分のロボットの止まりは配膳だけ181秒、配膳+下げ膳7秒でした。
題: ⑧ 配膳だけ と 配膳+下げ膳(標準の形)
左: /Volumes/KIOXIA/r2r2r-data/service_sim/unity/20261108_rec122_cs103_large_p6_r2_s7_passon_sbret_ek_post_rescue_smove_se_pav
右: /Volumes/KIOXIA/r2r2r-data/service_sim/unity/20261108_rec122_cs103_large_p6_r2_s7_passon_sbret_ek_post_rescue_smove_se_pav_bus
場面1 店の時刻 9120.0〜9420.0 秒(2時間32分00秒〜2時間37分00秒) 止まりの差がいちばん大きい5分(差 -174 秒・一日の5分の最大の 96%)
寄った所 卓 T33のそば(店の座標 8.9, 2.7・止まり 154 秒) 切り方 crop=1360:1080:1069:1080 引き 1.5 秒+寄り 60.0 秒(店の5倍)
止まりの多い所: 卓 T33のそば 154 秒・ロボットの待機場所のそば 8 秒・卓 T27のそば 7 秒・ドリンクバーの前に立つ点のそば 5 秒
ffprobe: 3840,1280,30/1,1845 / 61.500000
確かめ用のコマ: compare_serve_bus_large_p6_std_check_s1_still.png・compare_serve_bus_large_p6_std_check_s1_slow_start.png・compare_serve_bus_large_p6_std_check_s1_slow_mid.png・compare_serve_bus_large_p6_std_check_s1_slow_end.png
作業ログ ― 依頼122 の結果を見て決めたこと:記録を直し、すり抜けを足す
依頼122 の報告の決めてほしいことは4つでした。片付けの止まりは、記録だけ直す案1、卓が空いたらすぐ手放す案2、入口で待つ人に順番を回す案3、の3つの候補が出ていました。
Claude は案1だけを勧めました。記録だけの直しなら店の動きも今までの基準データも変わらず、型A は調べる対象として残せるからです。相談するときに、幅1.5m の通路なら現実の人は体を横にして脇を抜けられる、と添えて、案1 にすり抜けを足す選びも出しました。エイイチはこちらを選びました。
| 決めてほしいこと | 決めたこと |
|---|---|
片付けの止まりの直し方(案1〜3) | 案1(板に無い仕事なら記録を始めない)に、スタッフのすり抜けを足す。案2・案3 は入れない |
| 合格の線3の数え方 | 案1 で記録を直してから数え直す |
| 比較動画の寄る5分 | このままでよい(差がいちばん大きい所を見せる) |
実行ファイルを直接起こしたときの同時本数の欄 | 引数が無ければ 1 にする(記録だけの欄なので Claude が決めた) |
すり抜けは店の中で人がどう動くかの決まりなので、先にサイトの params に staff_squeeze_aisle を既定は切で足しました(p2m-site commit ea8ea6a)。今までの決まりと同じく、⑧で切と入を比べてから標準にするかを決めます。
params と README の差分(p2m-site commit ea8ea6a)
commit ea8ea6a692d3f14bc520aeaa847c83b103f36e59
Author: Claude <noreply@anthropic.com>
Date: Sun Nov 8 12:44:04 2026 +0900
サービスロボット導入シミュレーション:unity_rules に staff_squeeze_aisle(スタッフは細い通路のロボットをすり抜ける・切)を足す
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LevEXVRYR4WEdKiBBFdD5F
diff --git a/public/sim/serving-robot-params.json b/public/sim/serving-robot-params.json
index bbfe70d..0ded06b 100644
--- a/public/sim/serving-robot-params.json
+++ b/public/sim/serving-robot-params.json
@@ -441,6 +441,11 @@
"value": true,
"role": "site_rule",
"note": "(入・標準)スタッフとお客さんは、ロボットの待機点の区画(RobotStandby の各区画)を通り道にしない(2026-11-07 エイイチと決めた。⑧で比べる)。待機中のロボットの列は人がよけて通るのが現実の店の形のため。依頼114 で、待機点に止まっている台が人の道をふさいだとして30秒の呼び出しが多く鳴り(⑧5台・10回で1,602件)、スタッフの手が取られていた。待機点へ物を取りに行く・ロボットを動かすなど、待機点そのものに用がある人は入ってよい。店の形と試算の数字は変わらない。2026-11-08 標準(入)にした(依頼119 の結果を見てエイイチが決めた。それまでの基準データはこの決まりなしで回している)"
+ },
+ "staff_squeeze_aisle": {
+ "value": false,
+ "role": "site_rule",
+ "note": "(切)スタッフは、細い通路の中にロボットがいても入口で出るのを待たず、そのまま入って、体を横に向けてロボットの横をすり抜ける(2026-11-08 エイイチと決めた。⑧で今のままと比べ、標準にするかは結果を見て決める)。人はロボットよりずっと狭い所を通れ、店も人がギリギリまで寄れる前提で作られているため。依頼122 で、幅1.5mの通路の入口でスタッフが中のロボットを待ち、60秒であきらめるのをくり返し、片付けが600秒進まない回があった(型A)。すり抜けられないとき(体を横に向けても3秒抜けられないとき)は、staff_moves_robot の決まりでロボットを動かす。お客さんの動きは今のまま。店の形と試算の数字は変わらない"
}
},
"stores": {
@@ -6484,4 +6489,4 @@
}
}
]
-}
\ No newline at end of file
+}
diff --git a/tools/sim_layouts/README.md b/tools/sim_layouts/README.md
index 275d07b..8f16ae0 100644
--- a/tools/sim_layouts/README.md
+++ b/tools/sim_layouts/README.md
@@ -61,6 +61,7 @@
- 2026-11-06:⑨のレジのまわりが狭すぎたので、島と左の壁ぞいの席を上へ1.0m(レジの上の端から島まで 1.5m → 2.5m)、レジと下の壁ぞいの6人席を右へ1.0m(レジの左の待つ所 3.1m → 4.1m)動かした。70卓・312席のまま、受け渡し口から卓まで 4.0〜34.4m。版は large-99db3254b08b(⑧は卓・距離・止まる位置とも前と同じ)。試算は⑨の 3,066 条件だけ回し直して入れ替え、結果は iCloud の simulation/v2_9_large/results_large_p7_v3.json
- 2026-11-07:⑧の待機点を2列の互い違いにした形(large-b13cd179e6bf・commit 18d23fe)を一度公開したが、Unity で奥の列の待機点3へ台が戻れなかった(手前の列の台のすき間 0.8m の下で行ったり来たり)ので、同じ日に元の1列・間0.8m・6点(large-99db3254b08b)に戻した。⑧の試算も元の値に戻した。待機場所のそばの止まり合いは、店の形を変えず、params の unity_rules.standby_straight_entry(待機点の真下 1.0m の入る点まで来てからまっすぐ入る)で直す
- 2026-11-08:依頼119 の結果を見て、params の unity_rules の3つ(staff_moves_robot=近くのスタッフがすぐ押す・standby_straight_entry=待機点へまっすぐ入る・people_avoid_standby=人は待機点の区画を通らない)を標準(入)にした。店の形と試算の数字は変わらない。それまでの基準データはこの3つなしで回している
+- 2026-11-08:依頼122 の結果(細い通路の入口でスタッフが中のロボットを待ち続け、片付けが600秒進まない回があった)を見て、params の unity_rules に staff_squeeze_aisle(スタッフは細い通路の中のロボットを待たず、体を横に向けてすり抜ける)を切で足した。⑧で今のままと比べてから標準にするかを決める。店の形と試算の数字は変わらない
- サイトと同じ描き方の平面図の画像は `large_plan_images.py`(試算のページの planSvg・bigPlanSvg をそのまま使う)
```
依頼123 の依頼文
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 300
---
# 依頼123:片付けの止まりの記録を直し、スタッフが細い通路のロボットをすり抜ける決まり(切)を入れて⑧で比べる
依頼122 の報告(claude_code_reports/20261108_fix122.txt)を読んで、エイイチと決めたこと(2026-11-08):
1. 案1 を入れる:交代のとき、その仕事が仕事の板に無ければ止まりの記録を始めない(記録だけの直し。回の動きは変えない)
2. 型A には、サイトに足した決まり staff_squeeze_aisle で対応する(サイト p2m-site ea8ea6a で unity_rules に足した。既定は切)。スタッフは細い通路の中にロボットがいても入口で待たず、そのまま入って体を横に向けてロボットの横をすり抜ける。すり抜けられないとき(体を横に向けても3秒抜けられない)は、今の staff_moves_robot の決まりで動かす。お客さんの動きは変えない。詳しくは params の note が正
3. 案2・案3 は入れない
4. 線3(止まったまま解けない所が残らない)は、案1 を入れてから数え直す
5. ⑧の比較動画(依頼122 の compare_serve_bus_large_p6_std.mp4)は寄る5分もこのままでよい。撮り直さない
6. 実行ファイルを直接起こしたときの「同時に何本走らせたか」の欄は、引数が無ければ 1 にする(記録だけ)
範囲は⑧(large_p6)だけ。⑨・ほかの店は回さない。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**
## 始める前に確かめること(違えば回さずに報告して終わる)
1. 作業場所・Builds/headless が cs:103、保留 0。Unity・night_runner/rec_runner が動いていない。KIOXIA がマウント済み、unity_ledger_v1.lock がない。台帳と除く一覧を archive/unity_ledger_v1_pre_123_20261108/ に退避(行数と md5 を報告に)
2. サイト p2m-site の main(ea8ea6a 以降)の public/sim/serving-robot-params.json の md5 が c087728c2dcf23aa5fa115e0658a64f3 であること。依頼122 の写し(38daf9dc…)との違いが、unity_rules の staff_squeeze_aisle の1項目が足されただけであることを確かめる(違いが他にもあれば回さずに報告)
## 1. 記録の直しと決まりの実装
- params を Experiment/serving-robot-params.json に写す
- 案1:交代のとき、板に無い仕事なら止まりの記録(people_jams など)を始めない。回の動きは変えない
- staff_squeeze_aisle:params の note のとおりに作る。切り替えの引数(-ssStaffSqueezeAisle など)を足し、引数が無ければ params の value を既定にする(依頼122 で直した HeadlessRun.cs と同じ形。night_runner も同じ決め方で通す)。入のときだけ動きが変わり、切のときは今と全く同じ動きになるように作る
- 同時本数の欄:引数が無ければ 1
- ファイルを指定して check-in(保留 0)し、実行ファイルを作り直す
- 確かめ:⑧5台・serve・種0 を、引数なし(既定=すり抜け切)で2回回し、2回が一致し、依頼122 の chk122a と、回の名前・時刻・cs・実行ファイルの名前・計算時間の欄(plan_ms_max など)・同時本数の欄以外が一致すること。止まりの記録のファイルは、板に無い仕事の記録が消えた分だけ違ってよい(違った行を報告に書く)。違えば 2 は回さずに報告
## 2. ⑧で比べる(1 が通れば回す)
- ⑧ 配膳 2〜5台 × 種0〜9 を、すり抜け切(既定のまま)と入の2通りで回す(80回)。画面なし・同時4本
- 切の40回で、線3 を数え直す(人の止まりも入れる)。依頼120 の sb119se の40回と、止まりの記録以外の数字が一致するかも確かめる
- 切と入を台数ごとに並べた表(中央値):ロボットの止まりの合計・30秒の呼び出し・スタッフが動かした回数・往復数・入店待ち・料理が届くまで・スタッフの手すきの割合・型A(細い通路の入口で60秒あきらめた回数)・人の止まりで回の終わりまで残ったもの
- 入にしたとき、スタッフとロボットがぶつかる・重なる・どちらかが通路で長く止まる、などの新しい止まりが出ていないかを見る。出ていれば、どこで・何回かを上から見た図1〜2枚で示す
- 合格の線5つ(瞬間移動0・同じ種で同じ結果・止まったまま解けない所が残らない・試算と向きが合う〔どちらかの差が0.5分未満なら横ばい〕・図面と動画)を、切と入それぞれで出す
## 止める線
瞬間移動が1回でも出たとき、または同じ種の2回が違ったとき。止めたら報告に書き、ほかの項目は続ける。
## 報告
claude_code_reports/20261108_squeeze123.txt に:始める前の確かめ、1 の直し(どのファイルのどこ)と確かめ、2 の表と合格の線、新しい止まりの有無(図があれば置き場所)、台帳の行数の変化と md5。標準(入)にするかどうかはエイイチが決めるので、Claude Code は決めない。
**報告の最後の1行は必ず次のどれか**:「判定:合格」/「判定:止めた(決めてほしいことあり)」/「判定:失敗」
作業ログ ― 依頼123:記録を直し、すり抜けを切と入で比べた
依頼123 の結果(依頼箱の結果のファイル)
# 結果:20261108_123_片付けの止まりの記録を直しスタッフが細い通路のロボットをすり抜ける決まりを⑧で比べる
- 状態:完了
- 始めた時刻:2026-11-08 12:45
- 終わった時刻:2026-11-08 14:10(85分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume 9f259aa0-479f-4508-a5ef-ef2d38419296`
記録の直しは、止まりの記録2行だけを変えた
すり抜けを切にした40回は、依頼119 の40回と、止まりの記録のほかは40回とも一致しました。違ったのは、依頼120 で見つけた配膳の3台・種6 と5台・種6 の、営業の終わりまで残っていた片付けの記録だけです。直したあとは、その2回もスタッフの止まりが営業の終わりまで残らなくなりました。
3台 種6:止まりの記録だけ違う
sb119se だけ: large_p6_s6_r3_a70,6,11723.78,スタッフ,片付け,10,4.5479,13.1504,,,6235.206,回の終わりで残った
summary.nowarp_jams {'count': 19, 'open_at_end': 1, 'total_s': 7019.744} → {'count': 18, 'open_at_end': 0, 'total_s': 784.5383}
5台 種6:止まりの記録だけ違う
sb119se だけ: large_p6_s6_r5_a70,6,11718.05,スタッフ,片付け,3,2.2135,4.0453,A01,,6147.801,回の終わりで残った
summary.nowarp_jams {'count': 46, 'open_at_end': 1, 'total_s': 8366.523} → {'count': 45, 'open_at_end': 0, 'total_s': 2218.723}
止まりの記録のほかが一致 40 回/違う・見つからない 0 回
20261108_chk122a_cs103_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav
と 20261108_chk123a_cs104_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav
結果: 一致
同じだったもの: conditions.json contacts.csv dishes.csv entry_waits.csv give_ups.csv groups.csv nowarp_jams.csv park_returns.csv passes.csv people_avoid_check.csv people_jams.csv requeues.csv rescues.csv robot_track.csv run_info.json staff_moves.csv stops.csv summary.json timeline.csv trips.csv yields.csv
比べなかったもの: []
20261108_chk123a_cs104_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav
と 20261108_chk123b_cs104_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav
結果: 一致
同じだったもの: conditions.json contacts.csv dishes.csv entry_waits.csv give_ups.csv groups.csv nowarp_jams.csv park_returns.csv passes.csv people_avoid_check.csv people_jams.csv requeues.csv rescues.csv robot_track.csv run_info.json staff_moves.csv stops.csv summary.json timeline.csv trips.csv yields.csv
比べなかったもの: []
すり抜けの切と入(⑧配膳・10種の中央値)
| 項目 | 2台 | 3台 | 4台 | 5台 |
|---|---|---|---|---|
| ロボットの止まりの合計(秒) | 1,602 → 1,852 | 2,787 → 3,396 | 3,903 → 4,252 | 5,709 → 5,365 |
| 30秒の呼び出し(回) | 6.0 → 8.5 | 12.0 → 13.5 | 15.0 → 19.0 | 22.0 → 18.0 |
スタッフがロボットを動かした(回) | 26.5 → 29.0 | 43.0 → 55.5 | 67.0 → 73.5 | 91.5 → 97.0 |
| 往復数 | 139.5 → 138.5 | 201.5 → 199.5 | 234.5 → 238.5 | 250.0 → 252.5 |
| 入店待ち(分) | 10.61 → 10.21 | 10.31 → 10.57 | 10.64 → 10.76 | 13.24 → 10.56 |
| 料理が届くまで(分) | 2.30 → 2.22 | 1.87 → 1.79 | 1.63 → 1.55 | 1.64 → 1.51 |
| スタッフの手すき | 38.8% → 41.1% | 40.3% → 43.4% | 38.5% → 43.6% | 38.6% → 43.0% |
| 型A(回) | 18.5 → 0 | 17.5 → 0 | 19.0 → 0 | 24.0 → 0 |
人の止まりで営業の終わりまで残ったもの | 0 → 0 | 0 → 0 | 0 → 0 | 0 → 0 |
型A は思っていたより多く、切では1回の営業あたり18〜24回起きていました。入にすると0になり、店の数字は横ばいか良くなりました。その代わり、細い通路の中でロボットが人のために止まる分が増えています。40回の和で、人が立ち止まっていたとしてロボットが止まったのは324件・2,980秒から949件・8,043秒になりました。一方、通路の中の60秒以上の止まりは83件から65件で、増えていません。
もう1つ、体を横に向けたスタッフがロボットに重なる所がありました。すり抜け4,276回のうち328回で、5cm 以上は15回、一番深いもので12cm です。

依頼123 の集計の出力(agg123_out.txt)
依頼123:⑧ large_p6 配膳・標準の形(すぐ押す 入・まっすぐ入る 入・人は待機点を通らない 入)。sb119se(依頼119)・sq123off(すり抜け切)・sq123on(入)。10 種の中央値(回数・秒は1回あたり)
sb119se 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sb119se 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)1(スタッフ 1・客 0。種 [6])
sb119se 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sb119se 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)1(スタッフ 1・客 0。種 [6])
sq123off 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq123off 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq123off 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)夜の振り分けの出力(judge.md)
# 夜の結果の振り分け(20261108_*)
基準データ: 20261102_night_cs34_*(60回)/振り分けた回: 80回
切り替えの入切(条件の一部。同じ入切の基準の回とだけ比べる): 今回 すれ違い入・待機場所へ戻る入・案B切・入口番入・持ち場入・一方通行切・1本道切・店公開・立ち往生の助け入・人が先によける切・近くのスタッフが動かす入/基準 すれ違い入・待機場所へ戻る入・案B切・入口番切・持ち場切・一方通行切・1本道切・店公開・立ち往生の助け切・人が先によける切・近くのスタッフが動かす切
**注意:試算の版が基準と違う(今回 v2.9/基準 v2.8)。試算との比べは参考にとどめる**
作業ログ ― 依頼123 の結果を見て決めたこと:すり抜けを標準にし、重ならない形にする
決めてほしいことは3つでした。Claude の案と、エイイチが選んだものは同じです。
| 決めてほしいこと | 決めたこと |
|---|---|
| すり抜けを標準(入)にするか | 標準にする。店の数字は横ばいか良くなり、ロボットが人の前で止まるのは実物にも近い |
体が最大12cm ロボットに重なる所を許すか | 許さない。重ならないように直す。人がロボットの体を通り抜けるのは、瞬間移動と同じく現実にない動き |
| 入の動画を撮るか | 重なりを直して標準を固めてから撮る |
- ねらい:入口で待ち続けるという、店の人からは見えにくい待ちをなくし、片付けと案内を止めない
- 変わったこと:staff_squeeze_aisle がサイトでも Unity でも既定で入になった。それまでの基準データはこの決まりなしで回したもの
- 見込める効果:細い通路がある店では、ロボットを入れたときに片付けが遅れる分が小さく出る。⑨と、ほかの店に広げたときに同じ向きになるかで確かめる
params と README の差分(p2m-site commit d3940ee)
commit d3940eea96dba0f0da0a1974a5c90fd08c31d343
Author: Claude <noreply@anthropic.com>
Date: Sun Nov 8 14:20:25 2026 +0900
サービスロボット導入シミュレーション:staff_squeeze_aisle を標準(入)にし、ロボットに重ならない決まりを足す
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LevEXVRYR4WEdKiBBFdD5F依頼124 の依頼文
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 360
---
# 依頼124:すり抜けを標準にし、スタッフがロボットに重ならない形に直して、⑧の配膳・下げ膳を固めて比較動画を撮り直す
依頼123 の報告(claude_code_reports/20261108_squeeze123.txt)を読んで、エイイチと決めたこと(2026-11-08):
1. staff_squeeze_aisle を標準(入)にする(サイト p2m-site d3940ee で value を true にした)
2. すり抜けるときも、スタッフの体はロボットに重ならない。重ならずに抜ける隙間がなければ、その場で待つか、staff_moves_robot の決まりでロボットを動かす(params の note が正)。人がロボットの体を通り抜けるのは、瞬間移動と同じく現実にない動きなので、重なりは0にする
3. 入の動画は、重なりを直して標準を固めてから撮る
範囲は⑧(large_p6)だけ。⑨・ほかの店は回さない。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**
## 始める前に確かめること(違えば回さずに報告して終わる)
1. 作業場所・Builds/headless が cs:104、保留 0。Unity・night_runner/rec_runner が動いていない。KIOXIA がマウント済み、unity_ledger_v1.lock がない。台帳と除く一覧を archive/unity_ledger_v1_pre_124_20261108/ に退避(行数と md5 を報告に)
2. サイト p2m-site の main(d3940ee 以降)の public/sim/serving-robot-params.json の md5 が 07cd8bda5baed8e336ff3799d4ab8361 であること。依頼123 の写し(c087728c…)との違いが、staff_squeeze_aisle の value(false → true)と note の文だけであることを確かめる(ほかにも違いがあれば回さずに報告)
## 1. 重ならない形に直す
- params を Experiment/serving-robot-params.json に写す
- すり抜けのとき、スタッフの体(体を横に向けた形)とロボットの体が重ならないようにする。重ならずに進めないときは、その場で待ち、今の staff_moves_robot の「道をふさがれた(3秒)」の決まりにつなぐ。瞬間移動はさせない
- 重なりを測る線は依頼123 と同じ(0cm を超えたら重なり、5cm 以上を別に数える)
- ファイルを指定して check-in(保留 0)し、実行ファイルを作り直す
- 確かめ:⑧5台・serve・種0 を引数なし(既定=すり抜け入)で2回回し、2回が一致すること、重なりが 0 であること。依頼123 の sq123on の同じ回と比べて、どこが変わったかを短く書く
## 2. ⑧を標準の形で固める(1 が通れば回す)
- ⑧ 配膳 2〜5台 × 種0〜9(40回)と、下げ膳 2〜5台 × 種0〜9(40回)を、既定のまま・画面なし・同時4本で回す
- 重なり(0cm を超える・5cm 以上)の回数を数える。1回でも出たら、どこで・何回かを報告に書く(撮影の 3 は続ける)
- 表(中央値・台数ごと):ロボットの止まりの合計・30秒の呼び出し・スタッフが動かした回数・往復数・入店待ち・料理が届くまで・スタッフの手すき・型A・すり抜けに60秒以上かかった回数・人の止まりで回の終わりまで残ったもの。配膳は依頼123 の sq123off(切)と sq123on(入・重なりあり)、下げ膳は依頼120 の base8bus と並べる
- 合格の線5つ(瞬間移動0・同じ種で同じ結果・止まったまま解けない所が残らない〔人の止まりも入れる〕・試算と向きが合う〔どちらかの差が0.5分未満なら横ばい〕・図面と動画)を、配膳・下げ膳それぞれで出す
## 3. ⑧の比較動画を撮り直す(1 が通れば撮る)
- 依頼122 の compare_serve_bus_large_p6_std.mp4 と同じ台数(2台)・種(7)・撮り方・切り方・寄る5分の選び方で、新しい標準の配膳と下げ膳を1本ずつ撮り、並べた動画を作る(寄る5分は選び直してよい。時刻と場所・理由を報告に)
- 題「⑧ 配膳だけ と 配膳+下げ膳(標準の形・すり抜け入)」。置き場所:/Volumes/KIOXIA/r2r2r-data/service_sim/unity/rec_base8_squeeze_20261108/
- 撮った回の名前が、ほかの回や前の撮影と同じにならないようにする。依頼98・依頼122 の動画は変えない
- 題・帯・左右のパネルが切れていないかを、4コマ並べて目で見る
## 止める線
瞬間移動が1回でも出たとき、または同じ種の2回が違ったとき。止めたら報告に書き、ほかの項目は続ける。
## 報告
claude_code_reports/20261108_squeeze124.txt に:始める前の確かめ、1 の直し(どのファイルのどこ)と確かめ、2 の表と合格の線・重なりの回数、3 の動画の名前・長さ・寄った5分、台帳の行数の変化と md5。
**報告の最後の1行は必ず次のどれか**:「判定:合格」/「判定:止めた(決めてほしいことあり)」/「判定:失敗」
作業ログ ― 依頼124:重ならない形に直し、⑧の配膳と下げ膳を固めた
依頼124 の結果(依頼箱の結果のファイル)
# 結果:20261108_124_すり抜けを標準にし重ならない形に直して⑧を固め比較動画を撮り直す
- 状態:完了
- 始めた時刻:2026-11-08 14:21
- 終わった時刻:2026-11-08 17:35(194分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume ac854070-444d-43a6-be46-c83040173a9f`
重ならない形に直した結果
すり抜けの最中は、1コマごとの終わりにスタッフの体がどのロボットにも入っていないかを見て、入った分だけそのコマの一歩を戻す形にしました。外へ戻せないときは前の位置で待ち、3秒で近くのスタッフがロボットを押す決まりにつながります。瞬間移動は使っていません。
80回のうち42回で、すり抜け14,991回中61回に重なりが残りました。どれも2.5cm 未満で、5cm 以上は0です(依頼123 では328回・5cm 以上15回・最大12cm)。61回とも、そのあいだに相手のロボットが動いていました。壁ぎわや入口の角にいるスタッフの横をロボットが通るとき、ロボットの方がスタッフの体に入ってくるもので、スタッフは壁で外へ出られません。人の側だけでは防げない重なりです。
重なりの1件ずつ(ovd124_out.txt)
重なった行 61
{'run': '20261108_sq124bus_cs106_large_p6_r2_s4_bus', 'mode': 'bus', 'robots': '2', 'seed': '4', 't_s': '6044.051', 'dur_s': '4.383', 'who': 'スタッフ:Staff04', 'aisle': 'A01', 'x': 2.689, 'z': 12.9, 'wall_m': 0.01, 'end_m': 1.45, 'robot': '1', 'min_dist_m': '0.347', 'overlap_cm': 2.3, 'min_gap_any_m': '-0.023', 'robot_moved_m': 1.37, 'robot_phase': '受け渡し口へ', 'robot_stopped': '1', 'moved_robot': '0', 'outcome': 'ロボットが出た', 'clamp_frames': '6'}
{'run': '20261108_sq124bus_cs106_large_p6_r2_s5_bus', 'mode': 'bus', 'robots': '2', 'seed': '5', 't_s': '1234.549', 'dur_s': '17.917', 'who': 'スタッフ:Staff04', 'aisle': 'A01', 'x': 2.699, 'z': 12.903, 'wall_m': 0.0, 'end_m': 1.45, 'robot': '1', 'min_dist_m': '0.362', 'overlap_cm': 0.8, 'min_gap_any_m': '0.014', 'robot_moved_m': 5.07, 'robot_phase': '卓で止まる/卓へ', 'robot_stopped': '1', 'moved_robot': '0', 'outcome': '抜けた', 'clamp_frames': '54'}
{'run': '20261108_sq124bus_cs106_large_p6_r2_s7_bus', 'mode': 'bus', 'robots': '2', 'seed': '7', 't_s': '3190.007', 'dur_s': '33.783', 'who': 'スタッフ:Staff02', 'aisle': 'A04', 'x': 31.317, 'z': 12.909, 'wall_m': 0.02, 'end_m': 1.44, 'robot': '1', 'min_dist_m': '0.364', 'overlap_cm': 0.6, 'min_gap_any_m': '0', 'robot_moved_m': 10.03, 'robot_phase': '卓で止まる/卓へ', 'robot_stopped': '1', 'moved_robot': '0', 'outcome': '抜けた', 'clamp_frames': '775'}
{'run': '20261108_sq124bus_cs106_large_p6_r2_s8_bus', 'mode': 'bus', 'robots': '2', 'seed': '8', 't_s': '9683.729', 'dur_s': '28.538', 'who': 'スタッフ:Staff02', 'aisle': 'A02', 'x': 6.038, 'z': 5.413, 'wall_m': 0.71, 'end_m': 2.01, 'robot': '2', 'min_dist_m': '0.345', 'overlap_cm': 2.5, 'min_gap_any_m': '-0.024', 'robot_moved_m': 5.91, 'robot_phase': '受け渡し口へ', 'robot_stopped': '1', 'moved_robot': '0', 'outcome': '抜けた', 'clamp_frames': '63'}
{'run': '20261108_sq124bus_cs106_large_p6_r2_s9_bus', 'mode': 'bus', 'robots': '2', 'seed': '9', 't_s': '1546.603', 'dur_s': '55.354', 'who': 'スタッフ:Staff04', 'aisle': 'A02', 'x': 6.211, 'z': 5.525, 'wall_m': 0.54, 'end_m': 2.13, 'robot': '2', 'min_dist_m': '0.363', 'overlap_cm': 0.7, 'min_gap_any_m': '0.004', 'robot_moved_m': 9.9, 'robot_phase': '卓へ/卓で止まる', 'robot_stopped': '1', 'moved_robot': '0', 'outcome': '抜けた', 'clamp_frames': '190'}
{'run': '20261108_sq124bus_cs106_large_p6_r2_s9_bus', 'mode': 'bus', 'robots': '2', 'seed': '9', 't_s': '14579.98', 'dur_s': '178.052', 'who': 'スタッフ:Staff02', 'aisle': 'A03', 'x': 27.588, 'z': 12.637, 'wall_m': 0.34, 'end_m': 0.01, 'robot': '1', 'min_dist_m': '0.359', 'overlap_cm': 1.1, 'min_gap_any_m': '0.001', 'robot_moved_m': 3.73, 'robot_phase': '卓へ/卓で止まる/受け渡し口へ/立ち往生', 'robot_stopped': '1', 'moved_robot': '0', 'outcome': '抜けた', 'clamp_frames': '10479'}
{'run': '20261108_sq124bus_cs106_large_p6_r3_s1_bus', 'mode': 'bus', 'robots': '3', 'seed': '1', 't_s': '8066.371', 'dur_s': '139.503', 'who': 'スタッフ:Staff04', 'aisle': 'A03', 'x': 27.495, 'z': 12.636, 'wall_m': 0.25, 'end_m': 0.01, 'robot': '2', 'min_dist_m': '0.367', 'overlap_cm': 0.3, 'min_gap_any_m': '0.007', 'robot_moved_m': 3.12, 'robot_phase': '卓へ/卓で止まる/受け渡し口へ/立ち往生', 'robot_stopped': '1', 'moved_robot': '0', 'outcome': '抜けた', 'clamp_frames': '7646'}重なりの一覧(overlaps_sq124.csv)
run,mode,robots,seed,t_s,dur_s,who,aisle,x,z,wall_m,end_m,robot,min_dist_m,overlap_cm,min_gap_any_m,robot_moved_m,robot_phase,robot_stopped,moved_robot,outcome,clamp_frames
20261108_sq124bus_cs106_large_p6_r2_s4_bus,bus,2,4,6044.051,4.383,スタッフ:Staff04,A01,2.689,12.9,0.01,1.45,1,0.347,2.3,-0.023,1.37,受け渡し口へ,1,0,ロボットが出た,6
20261108_sq124bus_cs106_large_p6_r2_s5_bus,bus,2,5,1234.549,17.917,スタッフ:Staff04,A01,2.699,12.903,0.0,1.45,1,0.362,0.8,0.014,5.07,卓で止まる/卓へ,1,0,抜けた,54
20261108_sq124bus_cs106_large_p6_r2_s7_bus,bus,2,7,3190.007,33.783,スタッフ:Staff02,A04,31.317,12.909,0.02,1.44,1,0.364,0.6,0,10.03,卓で止まる/卓へ,1,0,抜けた,775
20261108_sq124bus_cs106_large_p6_r2_s8_bus,bus,2,8,9683.729,28.538,スタッフ:Staff02,A02,6.038,5.413,0.71,2.01,2,0.345,2.5,-0.024,5.91,受け渡し口へ,1,0,抜けた,63
20261108_sq124bus_cs106_large_p6_r2_s9_bus,bus,2,9,1546.603,55.354,スタッフ:Staff04,A02,6.211,5.525,0.54,2.13,2,0.363,0.7,0.004,9.9,卓へ/卓で止まる,1,0,抜けた,190
20261108_sq124bus_cs106_large_p6_r2_s9_bus,bus,2,9,14579.98,178.052,スタッフ:Staff02,A03,27.588,12.637,0.34,0.01,1,0.359,1.1,0.001,3.73,卓へ/卓で止まる/受け渡し口へ/立ち往生,1,0,抜けた,10479
20261108_sq124bus_cs106_large_p6_r3_s1_bus,bus,3,1,8066.371,139.503,スタッフ:Staff04,A03,27.495,12.636,0.25,0.01,2,0.367,0.3,0.007,3.12,卓へ/卓で止まる/受け渡し口へ/立ち往生,1,0,抜けた,7646確かめの2回と、依頼123 の同じ回との比べ
20261108_chk124c_cs106_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav_sqz
と 20261108_chk124d_cs106_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav_sqz
結果: 一致
同じだったもの: conditions.json contacts.csv dishes.csv entry_waits.csv give_ups.csv groups.csv nowarp_jams.csv park_returns.csv passes.csv people_avoid_check.csv people_jams.csv requeues.csv rescues.csv robot_track.csv run_info.json squeeze.csv staff_moves.csv stops.csv summary.json timeline.csv trips.csv yields.csv
比べなかったもの: []
20261108_sq123on_cs104_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav_sqz
と 20261108_chk124a_cs105_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav_sqz
結果: 違う ['contacts.csv', 'dishes.csv', 'entry_waits.csv', 'give_ups.csv', 'groups.csv', 'nowarp_jams.csv', 'park_returns.csv', 'passes.csv', 'people_jams.csv', 'rescues.csv', 'robot_track.csv', "run_info.json: ['frame_delta_s', 'map_snap_starts', 'people_frames_over_005m_ratio', 'people_frames_over_005m', 'sim_seconds', 'people_step_m', 'robot_step_m', 'plan_fails']", 'squeeze.csv', 'staff_moves.csv', 'stops.csv', "summary.json: ['rescue_push', 'staff_places', 'rescues', 'job_wait_note', 'standby_straight_entry', 'timeline_check', 'staff_moves', 'nowarp_jams', 'park_return', 'stop_causes', 'staff_time_s', 'staff_squeeze', 'job_wait_max_s', 'staff_time_share', 'stuck_rescue', 'job_wait_mean_s', 'stops', 'trips', 'dish_wait_parts', 'site_metrics', 'conditions', 'site_run', 'sim_like', 'rescue_staff_s', 'progress_watch']", 'timeline.csv', "trips: ['detour_extra_m', 'detours', 'dish_arrived_s', 'dish_ids', 'dish_ready_s', 'dishes', 'distance_m', 'max_decel_mps2', 'met_robot', 'min_clearance_m', 'n_stops', 'narrow_used', 'plan_ms_max', 'replans', 'robot_id', 'robot_yields', 'run_start_s', 'site_route_m', 'speed_mps', 'stop_arrived_s', 'stop_durations_s', 'stopped_out_narrow_s', 'stopped_s', 'stops_out_narrow', 'stuck', 'stuck_count', 'stuck_wait_s', 'table_id', 'table_ids', 'total_s', 'trip_end_s', 'via_narrow', 'wait_aisle_s']", 'yields.csv']
同じだったもの: conditions.json people_avoid_check.csv requeues.csv
比べなかったもの: []
⑧の新しい標準(⑧・10種の中央値)
配膳は依頼123 のすり抜け切と、下げ膳は依頼120 の下げ膳(すり抜けなし)と並べています。
| 配膳 | 2台 | 3台 | 4台 | 5台 |
|---|---|---|---|---|
| 入店待ち(分) | 10.61 → 10.15 | 10.31 → 10.33 | 10.64 → 10.46 | 13.24 → 10.74 |
| 料理が届くまで(分) | 2.30 → 2.16 | 1.87 → 1.78 | 1.63 → 1.62 | 1.64 → 1.55 |
| スタッフの手すき | 38.8% → 41.8% | 40.3% → 43.4% | 38.5% → 43.2% | 38.6% → 43.2% |
| 片付けを待つ卓(平均) | 0.29 → 0.11 | 0.17 → 0.07 | 0.24 → 0.08 | 0.29 → 0.03 |
| 型A(回) | 18.5 → 0 | 17.5 → 0 | 19.0 → 0 | 24.0 → 0 |
| ロボットの止まりの合計(秒) | 1,602 → 1,744 | 2,787 → 2,946 | 3,903 → 4,312 | 5,709 → 5,576 |
| 30秒の呼び出し(回) | 6.0 → 7.5 | 12.0 → 12.0 | 15.0 → 17.0 | 22.0 → 24.0 |
| 下げ膳 | 2台 | 3台 | 4台 | 5台 |
|---|---|---|---|---|
| 入店待ち(分) | 10.22 → 10.12 | 10.20 → 10.46 | 11.88 → 10.51 | 11.71 → 10.85 |
| 料理が届くまで(分) | 2.36 → 2.26 | 2.08 → 1.91 | 1.94 → 1.83 | 1.90 → 1.82 |
| スタッフの手すき | 40.6% → 44.0% | 41.5% → 45.8% | 40.5% → 45.5% | 39.8% → 44.3% |
| 片付けを待つ卓(平均) | 0.28 → 0.11 | 0.12 → 0.09 | 0.45 → 0.09 | 0.41 → 0.14 |
| 型A(回) | 18.5 → 0 | 18.5 → 0 | 25.5 → 0 | 21.5 → 0 |
| ロボットの止まりの合計(秒) | 2,451 → 2,485 | 4,035 → 4,226 | 7,003 → 6,780 | 9,384 → 10,383 |
| 30秒の呼び出し(回) | 11.0 → 10.0 | 20.5 → 18.0 | 30.0 → 27.5 | 44.5 → 40.0 |
下げ膳では、すり抜けに60秒以上かかった回が1回の営業あたり8.5〜22回ありました。この長さには、通路の中の卓で片付けている時間も入っています。数え方は今のままにして、⑨でも同じ数え方で並べます。
依頼124 の配膳の集計の出力(agg124_serve_out.txt)
依頼124:⑧ large_p6 配膳。sq123off=すり抜け切(依頼123・cs:104)・sq123on=すり抜け入・重なりあり(依頼123・cs:104)・sq124serve=標準(すり抜け入・重ならない・cs:106)。10 種の中央値(回数・秒は1回あたり)
sq123off 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq123off 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq123off 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq123off 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq123on 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq123on 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq123on 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)依頼124 の下げ膳の集計の出力(agg124_bus_out.txt)
依頼124:⑧ large_p6 下げ膳。base8bus=下げ膳(依頼120 base8bus・cs:102)・sq124bus=標準(すり抜け入・重ならない・cs:106)。10 種の中央値(回数・秒は1回あたり)
base8bus 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
base8bus 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
base8bus 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
base8bus 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq124bus 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq124bus 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq124bus 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)夜の振り分けの出力(judge.md)
# 夜の結果の振り分け(20261108_*)
基準データ: 20261102_night_cs34_*(60回)/振り分けた回: 80回
切り替えの入切(条件の一部。同じ入切の基準の回とだけ比べる): 今回 すれ違い入・待機場所へ戻る入・案B切・入口番入・持ち場入・一方通行切・1本道切・店公開・立ち往生の助け入・人が先によける切・近くのスタッフが動かす入/基準 すれ違い入・待機場所へ戻る入・案B切・入口番切・持ち場切・一方通行切・1本道切・店公開・立ち往生の助け切・人が先によける切・近くのスタッフが動かす切
**注意:試算の版が基準と違う(今回 v2.9/基準 v2.8)。試算との比べは参考にとどめる**
⑧の比較動画を、すり抜けを入れた標準の形で撮った
寄ったのは店の時刻13,590〜13,890秒(開店3時間46分30秒〜51分30秒)の卓 T70 のそばです。この5分の止まりは配膳だけ0秒、配膳+下げ膳201秒で、下げ膳の2台が互いのために短く止まるのをくり返していました。依頼122 の動画とは逆に、下げ膳のほうが止まる場面が選ばれています。止まりの差がいちばん大きい5分を選ぶ決まりは同じで、どちらが選ばれるかは録画の中身で決まります。
題: ⑧ 配膳だけ と 配膳+下げ膳(標準の形・すり抜け入)
左: /Volumes/KIOXIA/r2r2r-data/service_sim/unity/20261108_rec124_cs106_large_p6_r2_s7_passon_sbret_ek_post_rescue_smove_se_pav_sqz
右: /Volumes/KIOXIA/r2r2r-data/service_sim/unity/20261108_rec124_cs106_large_p6_r2_s7_passon_sbret_ek_post_rescue_smove_se_pav_sqz_bus
場面1 店の時刻 13590.0〜13890.0 秒(3時間46分30秒〜3時間51分30秒) 止まりの差がいちばん大きい5分(差 +201 秒・一日の5分の最大の 100%)
寄った所 卓 T70のそば(店の座標 31.0, 2.7・止まり 69 秒) 切り方 crop=1360:1080:2127:548 引き 1.5 秒+寄り 60.0 秒(店の5倍)
止まりの多い所: 卓 T70のそば 69 秒・卓 T40のそば 55 秒・パントリーのそば 28 秒・ロボットの待機場所のそば 21 秒
ffprobe: 3840,1280,30/1,1845 / 61.500000
確かめ用のコマ: compare_serve_bus_large_p6_std_sqz_check_s1_still.png・compare_serve_bus_large_p6_std_sqz_check_s1_slow_start.png・compare_serve_bus_large_p6_std_sqz_check_s1_slow_mid.png・compare_serve_bus_large_p6_std_sqz_check_s1_slow_end.png
寄る5分の選び方の出力(table_B124.csv)
店,店の時刻(秒),選んだわけ,寄った場所,店の座標,止まり秒_配膳だけ,止まり秒_配膳+下げ膳,片付けを待つ卓_配膳だけ,片付けを待つ卓_配膳+下げ膳,入口で待つ組_配膳だけ,入口で待つ組_配膳+下げ膳
⑧ large_p6,13590〜13890,止まりの差がいちばん大きい5分(差 +201 秒・一日の5分の最大の 100%),卓 T70のそば,"(31.0, 2.7)",0.0,201.3,0.0,0.0,0.0,0.0
⑧の合格の線5つ
| 線 | 配膳 | 下げ膳 |
|---|---|---|
| 1 瞬間移動0 | ○ 40回で0 | ○ 40回で0 |
| 2 同じ条件・同じ種で同じ結果 | ○ 確かめの2回が22ファイル一致 | ○ 確かめの2回が一致 |
3 止まったまま解けない所が残らない(人の止まりも入れる) | ○ 0、全員が帰った40/40 | ○ 0、全員が帰った40/40 |
4 試算と向きが合う(0.5分未満は横ばい) | ○ 入店待ちの2→3台は横ばい、料理が届くまでは同じ向き | ○ |
5 サイト用の図面と動画がそろう | ○ 図面と比較動画がある | ○ 図面と比較動画がある |
作業ログ ― 残った重なりを許し、⑧をここで区切った
依頼124 の決めてほしいことは2つでした。残った重なりは、2.5cm 未満なら許すことにしました。服が触れるくらいとして扱い、記録だけ残します。ロボットの側で横向きの人を見て止まる形や、人が通路に沿って逃げる形も候補にありましたが、どちらも⑧の80回と動画を回し直すことになります。⑧は合格の線5つを満たしているので、ここで区切ると決めていました。下げ膳のすり抜けに60秒以上かかった回の数え方は、今のままにしています。
決まりの正はサイトなので、この許す幅も params に書きました(p2m-site commit afbfa04、overlap_ok_m は0.025m)。
params と README の差分(p2m-site commit afbfa04)
commit afbfa04b9f06905bc0c6f3fce381338d81958f11
Author: Claude <noreply@anthropic.com>
Date: Sun Nov 8 18:17:18 2026 +0900
サービスロボット導入シミュレーション:すり抜けの重なりは2.5cm未満を許す
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LevEXVRYR4WEdKiBBFdD5F⑧で標準にした4つの決まり
| サイトの決まり | 中身 | 標準にした回 |
|---|---|---|
staff_moves_robot | 走っている途中で5秒止まったロボットを、7m 以内の一番近いスタッフがすぐ押して動かす | LOG465 |
standby_straight_entry | 待機点へ戻るロボットは、真正面1.0m の入る点からまっすぐ入る | LOG465 |
people_avoid_standby | スタッフとお客さんは、ロボットの待機点の区画を通り道にしない | LOG465 |
staff_squeeze_aisle | スタッフは細い通路のロボットを待たず、体を横に向けてすり抜ける。重ならず、2.5cm 未満だけ許す | この回 |
残した候補
| 起きた場面 | 原因の候補 | 切り分け方 |
|---|---|---|
ロボットが2〜4台のとき、止まっていた時間の合計が1〜2割増える | 細い通路でロボットが人の前で止まる | 実物に近い向きとして今は直さない。⑨でも同じ向きかを見る |
壁ぎわのスタッフに、ロボットの方が寄ってきて2.5cm 未満重なる | ロボットの道の引き方が、横向きの人を避けきれない | 許した重なりとして数え、⑨で増えないかを見る |
下げ膳で、すり抜けに60秒以上かかる回が1回の営業で8.5〜22回 | 通路の中の卓で片付けている時間も数えている | ⑨でも同じ数え方で並べ、多ければ数え方を分ける |
夜の振り分けの道具が、⑧の2回(sq123off 3台・種5、sq124bus 3台・種3)を、ロボットが1コマで0.05m を超えたとして回の失敗にした | 押されて動いた・速く走った・作りの跳び、のどれか。集計の1コマの跳び(もっと大きい線)は0 | 依頼125 で1回分を調べる |
この回で決めたことは次のとおりです。
- 閉じ忘れる記録を直した(板に無い仕事なら、交代のときに止まりの記録を始めない)
- スタッフは細い通路のロボットを待たず、体を横に向けてすり抜ける。これをサイトの標準(入)にした(p2m-site commit d3940ee)
- すり抜けのときもスタッフの体はロボットに重ならない。人の側だけでは防げない2.5cm 未満の重なりは許す(commit afbfa04)
- ⑧は配膳・下げ膳とも合格の線5つを満たしたので、ここで区切る。標準の形の⑧の結果は、配膳が依頼124 の sq124serve、下げ膳が sq124bus の各40回
次の依頼125:⑨を、⑧で固めた標準の形で回す
⑨(入口が角の大型店・70卓・312席)を、何も指定しない既定の形で、配膳・下げ膳とも2〜5台×10種で回し、合格の線5つで点検します。⑨の問題を見つけて記録するところまでで、直し方はそのあと決めます。
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 420
---
# 依頼125:⑨(大型店・入口が角)を、⑧で固めた標準の形で回し、合格の線5つで点検する
⑧はここで区切った(LOG466・2026-11-08 エイイチ決定)。次は⑨(large_p7・p7_large_b・70卓・312席)を、⑧で決めた標準の形のまま回す。
標準の形は、サイトの params(p2m-site afbfa04 以降・md5 0baea38ce56a92153d4d6591ed7b2ae8)の unity_rules の既定どおり。⑧で入にした決まりは、近くのスタッフがすぐ押す(staff_moves_robot)・待機点へまっすぐ入る(standby_straight_entry)・人は待機点の区画を通らない(people_avoid_standby)・スタッフは細い通路のロボットをすり抜ける(staff_squeeze_aisle。重なりは2.5cm 未満なら許す・overlap_ok_m)。くり返し止まる(repeat_stop)も入。
この依頼では⑨の問題を見つけて記録するところまで。直し方はエイイチと決めるので、店の形・決まり・Unity の作りは直さない(確かめのための一時のログ足しは可。check-in しない・台帳に書かない)。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**
## 始める前に確かめること(違えば回さずに報告して終わる)
1. 作業場所・Builds/headless が cs:106、保留 0。Unity・night_runner/rec_runner が動いていない。KIOXIA がマウント済み、unity_ledger_v1.lock がない。台帳と除く一覧を archive/unity_ledger_v1_pre_125_20261108/ に退避(行数と md5 を報告に)
2. サイト p2m-site main の public/sim/serving-robot-params.json の md5 が 0baea38ce56a92153d4d6591ed7b2ae8 であること。依頼124 の写し(07cd8bda…)との違いが、staff_squeeze_aisle の note の文と overlap_ok_m(0.025)の項目だけであることを確かめる(ほかにも違いがあれば回さずに報告)
3. Unity の⑨が、サイトの public/sim/layouts/large/ の⑨(版 large-99db3254b08b)から建っていること。違えば、サイトの形から建て直す(建て直しは作りの直しではないので、してよい。check-in する)
## 1. 写しと、標準が⑨でも効く確かめ
- params を Experiment/serving-robot-params.json に写し、ファイルを指定して check-in(保留 0)、実行ファイルを作り直す
- overlap_ok_m は、すり抜けの重なりの判定(報告の数え方)に使う。2.5cm 未満は重なりとして数えるが「許した重なり」と分け、2.5cm 以上だけを問題として数える(動きは変えない)
- 確かめ:⑨5台・serve・種0 を、引数なし(既定)で2回回し、2回が一致すること・瞬間移動 0 であること
## 2. ⑨を標準の形で回す(1 が通れば回す)
- ⑨ 配膳 2〜5台 × 種0〜9(40回)と、下げ膳 2〜5台 × 種0〜9(40回)を、既定のまま・画面なし・同時4本で回す
- 表(中央値・台数ごと):入店待ち・料理が届くまで・往復数・ロボットの止まりの合計・30秒の呼び出し・スタッフが動かした回数・スタッフの手すき・片付けを待つ卓・型A・すり抜け・重なり(2.5cm 未満/以上)・人の止まりで回の終わりまで残ったもの・待機場所のそばの30秒以上の詰まり(型ごと)。⑧の依頼124(sq124serve・sq124bus)と並べる
- 合格の線5つ(瞬間移動0・同じ種で同じ結果・止まったまま解けない所が残らない〔人の止まりも入れる〕・試算と向きが合う〔どちらかの差が0.5分未満なら横ばい〕・図面と動画)を、配膳・下げ膳それぞれで出す
- ⑨で目立つ止まり(長い順に上から3つほど)を、どこで・何が・なぜ止まったかで記録し、上から見た図1〜2枚にする。⑧では出なかった止まりかどうかも書く
- 夜の振り分けの道具(judge)が「ロボットが1コマで0.05m超え」で回の失敗とした回があれば、その回のどのロボットが、どんな動き(押された・走った・ほか)で超えたのかを1回分だけ調べて書く(⑧の sq123off r3 s5・sq124bus r3 s3 でも出ていた。集計の「1コマの跳び」は0だった)
## 3. ⑨の比較動画(1 が通れば撮る)
- ⑧の依頼124 の compare_serve_bus_large_p6_std_sqz.mp4 と同じ台数(2台)・種(7)・撮り方・切り方・寄る5分の選び方で、⑨の配膳と下げ膳を1本ずつ撮り、並べた動画を作る(寄る5分の時刻と場所・理由を報告に)
- 題「⑨ 配膳だけ と 配膳+下げ膳(標準の形)」。置き場所:/Volumes/KIOXIA/r2r2r-data/service_sim/unity/rec_base9_20261108/
- 撮った回の名前が、ほかの回や前の撮影と同じにならないようにする。前の動画は変えない
- 題・帯・左右のパネルが切れていないかを、4コマ並べて目で見る
## 止める線
瞬間移動が1回でも出たとき、または同じ種の2回が違ったとき。止めたら報告に書き、ほかの項目は続ける。
## 報告
claude_code_reports/20261108_base9_125.txt に:始める前の確かめ、1 の写しと確かめ、2 の表と合格の線・目立つ止まりの記録(図の置き場所)・judge の回の失敗の調べ、3 の動画の名前・長さ・寄った5分、台帳の行数の変化と md5、決めてほしいこと(直し方の候補を2〜3つずつ。作らない)。
**報告の最後の1行は必ず次のどれか**:「判定:合格」/「判定:止めた(決めてほしいことあり)」/「判定:失敗」