サービスロボット導入シミュレーション Log#39 | 大型店の配膳ロボットを止めない、受け渡し口の帯
この記事の素材(コード・ログ・データ 15ファイル・まとめてダウンロードあり)arrow_downwardAIで読む ChatGPT・Claude などで、この記事に質問できます expand_more
70卓・312席の大型ファミレスを Unity の3Dで再現したシミュレーションでは、受け渡し口(キッチンから料理が出てくるカウンター)の前に、人が立ち止まらないロボットの通り道を置き、客席の島を左へ0.5m 寄せると、配膳ロボットが受け渡し口の前でスタッフに止められる時間は1回の営業あたり722秒から347秒に減り、ロボット5台とスタッフ・お客さんが約3.1時間動けなくなる詰まりはなくなりました。 同じお客さんの来かたで10回ずつ回した平均で、実物の店で測った数字ではありません。
この回で良くなったことと、次にできるようになったことです。
- ロボットが止まっている時間が減った。直す前の形と比べて、ロボットが止まっていた時間の合計は配膳・下げ膳とも4〜22%減り、ロボット5台の配膳では1回の営業で6,326秒から4,957秒になった。スタッフがロボットを押して動かしに行く回数も、5台の配膳で188.5回から138回に減った
- 2つ目の大型店⑨(入口が角)も、配膳ロボットのベースとして決めた合格の線5つを、配膳はすべて満たした。足した2つの決まりは、もう1つの大型店⑧でも悪くならなかったのでサイトの標準にし、大型店の⑧⑨はここで区切った
- 入店待ちの長さを決めていたのは、ロボットの台数でも店の形でもなく、お客さんの来かただった。同じ条件でも、お客さんの来かた(種)を変えるだけで入店待ちは1.5分から28.9分まで散らばり、どの条件でもいちばん長いのは同じ種だった
引き換えも出ました。島を寄せたぶん島の間の通路が1.5mから1.4mに狭まり、細い通路の中でロボットが人のために止まる時間は約5割増えました。スタッフの体がロボットの外周に2.5cm 以上重なった回も、160回の営業で13回(最も深くて13.2cm)出ています。
困っていたのは、前の回(LOG466)で仕上げた標準の形を、そのまま2つ目の大型店⑨に持ってきたときに出た3つの止まりでした。受け渡し口の前で、料理を取りに来たロボットが、すぐそばで待つスタッフに止められる(1回の営業で配膳約12分、下げ膳約19分)。いちばん遠い卓 T63 への道をロボットが引けず、受け渡し口の前で固まる。待機場所へ入る点と、卓 T50 で止まる点が0.44m しか離れておらず、ロボットどうしが詰まる。3つ目の詰まりは、ロボット5台の1回で約3.1時間ほどけず、助けに行くスタッフも着けないまま、仕事の受け渡しが193回くり返されました。どれも、前の大型店⑧では出なかった止まりです。
| やったこと | なぜ | 結果 |
|---|---|---|
⑨を、⑧で固めた標準の形のまま回した(依頼125) | ⑧で決めた決まりが、形の違う店でも効くかを見るため | 瞬間移動0で80回とも完走。⑧では出なかった止まりが3つ。配膳は合格の線のうち2つを満たさなかった |
受け渡し口の前に帯を置き、動けない台を順に動かす決まりを足し、島を0.5m 寄せ、道を探す範囲を広げた | 止まり3つのそれぞれの原因に、1つずつ手を当てるため | 帯で①が半分以下、道探しで②が0、島の寄せで③が減り、3.1時間の詰まりは出なくなった |
足した決まりを切と入で比べ、⑨は種を20に増やした(依頼126) | 決まりの効き目と店の形の効き目を分け、入店待ちのばらつきを見るため | 決まりの入で止まりの合計が4〜22%減った。入店待ちのばらつきは、ほぼお客さんの来かたで決まっていた |
2つの決まりをサイトの標準にし、⑨を区切った | ⑧でも悪くならなかったため | 標準の決まりは6つになった。細い通路の止まりと重なりは、記録して次に見る |
この回でも、Unity の中のずれを全部直すことは目的にしていません。何を変えたら何が変わったかを数で並べ、店で問題が起きたときに原因を切り分ける材料にしています。
配膳ロボットを大きな店に入れたらどうなるかは、このシリーズの試算をもとにした別のページで試せます。
作業ログ ― 依頼125:⑨を、⑧で固めた標準の形のまま回した
この記事のコード・ログ・データは、1ファイルずつ下に置いています。全文はリンク先にあります。
ファイルの一覧(15本)
01_sec01.md ― 依頼125 の結果(依頼箱の結果のファイル)・3,442字
02_sec01.txt ― ⑨は⑧より入店待ちが長く、スタッフがロボットを動かす回数は約2倍(配膳・10種の中央値) / 依頼125 の配膳の集計の出力(agg125_serve_out.txt)・9,811字
03_sec01.txt ― ⑨は⑧より入店待ちが長く、スタッフがロボットを動かす回数は約2倍(配膳・10種の中央値) / 依頼125 の下げ膳の集計の出力(agg125_bus_out.txt)・9,927字
04_sec01.txt ― ⑨の止まりは受け渡し口の右下の角に集まっていた / 場所と理由ごとの止まり(where125_serve.txt)・3,195字
05_sec01.txt ― ⑨の止まりは受け渡し口の右下の角に集まっていた / 場所と理由ごとの止まり・下げ膳(where125_bus.txt)・3,241字
06_sec01.txt ― 夜の振り分けの0.05m 超えは、スタッフが連れて戻した速さの小数の誤差だった / 一時のログの出力(tmp125j_steps.txt)・13,745字
07_sec01.md ― 夜の振り分けの0.05m 超えは、スタッフが連れて戻した速さの小数の誤差だった / 夜の振り分けの出力(judge.md・依頼125)・7,405字
08_sec02.txt ― 店の形と params の差分(p2m-site commit 5c58fa9)・3,163字
09_sec02.txt ― ⑨の試算を回し直した params と README の差分(p2m-site commit 2f105dc)・31,454字
10_sec02.md ― 依頼126 の依頼文・3,657字
11_sec03.md ― 依頼126 の結果(依頼箱の結果のファイル)・3,767字
12_sec03.txt ― 前の形・切・入の並べ(⑨・中央値。前の形と切は10種、入は20種) / 依頼126 の配膳の集計の出力(agg126_serve_out.txt)・5,026字
13_sec03.txt ― 前の形・切・入の並べ(⑨・中央値。前の形と切は10種、入は20種) / 依頼126 の下げ膳の集計の出力(agg126_bus_out.txt)・5,033字
14_sec03.md ― ⑧では、2つの決まりを入れても悪くならなかった / 夜の振り分けの出力(judge.md・依頼126)・6,770字
15_sec04.txt ― params と README の差分(p2m-site commit 23f5842)・3,390字
この記事のコード・ログ・データは、1ファイルずつ下に置いています。全文はリンク先にあります。
ファイルの一覧(15本)
01_sec01.md ― 依頼125 の結果(依頼箱の結果のファイル)・3,442字
02_sec01.txt ― ⑨は⑧より入店待ちが長く、スタッフがロボットを動かす回数は約2倍(配膳・10種の中央値) / 依頼125 の配膳の集計の出力(agg125_serve_out.txt)・9,811字
03_sec01.txt ― ⑨は⑧より入店待ちが長く、スタッフがロボットを動かす回数は約2倍(配膳・10種の中央値) / 依頼125 の下げ膳の集計の出力(agg125_bus_out.txt)・9,927字
04_sec01.txt ― ⑨の止まりは受け渡し口の右下の角に集まっていた / 場所と理由ごとの止まり(where125_serve.txt)・3,195字
05_sec01.txt ― ⑨の止まりは受け渡し口の右下の角に集まっていた / 場所と理由ごとの止まり・下げ膳(where125_bus.txt)・3,241字
06_sec01.txt ― 夜の振り分けの0.05m 超えは、スタッフが連れて戻した速さの小数の誤差だった / 一時のログの出力(tmp125j_steps.txt)・13,745字
07_sec01.md ― 夜の振り分けの0.05m 超えは、スタッフが連れて戻した速さの小数の誤差だった / 夜の振り分けの出力(judge.md・依頼125)・7,405字
08_sec02.txt ― 店の形と params の差分(p2m-site commit 5c58fa9)・3,163字
09_sec02.txt ― ⑨の試算を回し直した params と README の差分(p2m-site commit 2f105dc)・31,454字
10_sec02.md ― 依頼126 の依頼文・3,657字
11_sec03.md ― 依頼126 の結果(依頼箱の結果のファイル)・3,767字
12_sec03.txt ― 前の形・切・入の並べ(⑨・中央値。前の形と切は10種、入は20種) / 依頼126 の配膳の集計の出力(agg126_serve_out.txt)・5,026字
13_sec03.txt ― 前の形・切・入の並べ(⑨・中央値。前の形と切は10種、入は20種) / 依頼126 の下げ膳の集計の出力(agg126_bus_out.txt)・5,033字
14_sec03.md ― ⑧では、2つの決まりを入れても悪くならなかった / 夜の振り分けの出力(judge.md・依頼126)・6,770字
15_sec04.txt ― params と README の差分(p2m-site commit 23f5842)・3,390字
前の回(LOG466)の終わりに出した依頼125 の結果から始めます。依頼125 は、⑧で固めた標準の形を何も指定せずに⑨へ当てはめ、合格の線5つで点検する依頼です。直し方は結果を見て決めるので、この依頼では店の形・決まり・Unity の作りを直していません。依頼文は LOG466 に全文を載せています。
この回で使う言葉:⑨・受け渡し口・持ち場・待機点と入る点・帯・順に動かす・道探し
| 言葉 | 意味 |
|---|---|
| ⑨ | サイトの試算に入れた大型店の2つ目。入口が角にある70卓・312席の店で、サイトの店の形の名前は large_p7。⑧(受け渡し口が奥の真ん中・large_p6)と同じ70卓で、並べ方が違う |
| 受け渡し口 | キッチンから料理が出てくるカウンター。配膳ロボットはここで料理を載せ、下げ膳ロボットはここへ皿を戻す |
| 持ち場 | スタッフが手の空いたときに待つ場所。⑨では受け渡し口のそばに持ち場1・持ち場2がある |
| 待機点・入る点 | 待機点は、ロボットが仕事のない間に並んで待つ区画。入る点は、待機点の真正面1.0m の点で、ロボットはここからまっすぐ待機点へ入る(LOG465 で決めた決まり) |
| 帯 | この回で足した決まり。受け渡し口の前に、ロボットの通る帯を置き、人はその中で立ち止まらない。サイトの決まりでは food_pass_lane |
| 順に動かす | この回で足した決まり。同じ所で動けないロボットが2台以上になったら、近くのスタッフが1台ずつ脇へ動かす。サイトの決まりでは staff_clear_jam |
| 道探し | ロボットが、店の地図の上で今いる所から行き先までの道を自分で引くこと。探す範囲に上限があり、上限までに道が見つからないと「探しすぎ」で止まる |
| 連れて戻した | 30秒動けないロボットを、スタッフがそばについて道へ戻すこと。スタッフの歩く速さ(秒速1.0m)で動く |
| 種 | お客さんがいつ何人で来るかなど、偶然で決まる部分を作るための番号。種が同じなら同じお客さんが同じ時刻に来るので、決まりを変えたときの違いだけを比べられる |
| ベースとして合格の線5つ | ロボットの種類ごとに、サイトのベースとして区切ってよいかを見る線。瞬間移動が0、同じ条件・同じ種で同じ結果、止まったまま解けない所が残らない(人の止まりも入れる)、試算と向きが合う(どちらかの差が0.5分未満なら横ばい)、サイト用の図面と動画がそろう、の5つ |
| 依頼箱 | Unity の作業を Claude Code に頼む仕組み。依頼文を iCloud のフォルダに置くと、Mac で Claude Code が順に作業し、結果を書き戻す |
Unity は、ゲームや3Dの場面を作る道具です。このシリーズでは、店の形と条件をサイトの試算から写し、Unity の中に店を建てて、お客さん・スタッフ・ロボットを動かしています。店の形・条件・回し方の決まりの正はサイトで、Unity はそれを読みます。
依頼125 の結果(依頼箱の結果のファイル)
# 結果:20261108_125_⑨を⑧で固めた標準の形で回し合格の線5つで点検する
- 状態:完了
- 始めた時刻:2026-11-08 18:27
- 終わった時刻:2026-11-08 21:18(171分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume 725b58c1-3a78-4f2c-9b67-1dcd3dfd5d3b`
⑨は⑧より入店待ちが長く、スタッフがロボットを動かす回数は約2倍(配膳・10種の中央値)
| 台数 | 入店待ち ⑨/⑧(分) | 料理が届くまで ⑨/⑧(分) | ロボットの止まりの合計 ⑨/⑧(秒) | スタッフが動かした ⑨/⑧(回) | 30秒の呼び出し ⑨/⑧(回) |
|---|---|---|---|---|---|
| 2台 | 12.12/10.15 | 2.33/2.16 | 2,207/1,744 | 68.5/30.5 | 6.0/7.5 |
| 3台 | 12.58/10.33 | 1.96/1.78 | 3,700/2,946 | 114.0/53.0 | 7.0/12.0 |
| 4台 | 11.67/10.46 | 1.83/1.62 | 5,267/4,312 | 169.5/84.0 | 9.0/17.0 |
| 5台 | 15.07/10.74 | 1.79/1.55 | 6,326/5,576 | 188.5/93.5 | 8.5/24.0 |
下げ膳も同じ形でした(下の集計の出力に全項目があります)。30秒動けずスタッフを呼ぶ回数は⑨の方が少なく、その手前の「5秒止まったら近くのスタッフが押す」が⑨では約2倍働いています。⑨では、ロボットが長く固まる前に、スタッフが何度も押しに行っていました。
依頼125 の配膳の集計の出力(agg125_serve_out.txt)
依頼125:⑨ large_p7 と ⑧ large_p6 の 配膳。base9serve=⑨ 標準(cs:107)・sq124serve=⑧ 標準(依頼124・cs:106)。10 種の中央値(回数・秒は1回あたり)
base9serve 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
base9serve 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
base9serve 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
base9serve 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq124serve 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq124serve 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
sq124serve 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)依頼125 の下げ膳の集計の出力(agg125_bus_out.txt)
依頼125:⑨ large_p7 と ⑧ large_p6 の 下げ膳。base9bus=⑨ 標準(cs:107)・sq124bus=⑧ 標準(依頼124・cs:106)。10 種の中央値(回数・秒は1回あたり)
base9bus 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
base9bus 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
base9bus 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0(スタッフ 0・客 0。種 なし)
base9bus 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。種 なし)⑨の止まりは受け渡し口の右下の角に集まっていた
1m の升目ごとに、ロボットが止まっていた秒を1回の営業あたりで数えると、配膳では受け渡し口のすぐ左の升目(x 24〜25・y 6〜7)だけで645秒ありました。⑧でいちばん多かった升目(218秒)の約3倍です。上位の升目は、受け渡し口・持ち場2・待機点の入る点のまわりに固まっていました。


1m の升目ごとの止まり(grid125_serve.txt)
== ⑨ base9serve 1m升目の止まり(秒/回・全台数の平均)上 12 / 台数ごとの全体 {2: 2183, 3: 3892, 4: 5068, 5: 6441}
x 24〜25・y 6〜7 645 秒/回 台数ごと {2: 464, 3: 615, 4: 741, 5: 761}
x 23〜24・y 7〜8 298 秒/回 台数ごと {2: 170, 3: 301, 4: 344, 5: 377}
x 23〜24・y 6〜7 262 秒/回 台数ごと {2: 101, 3: 224, 4: 347, 5: 377}
x 25〜26・y 6〜7 238 秒/回 台数ごと {2: 23, 3: 162, 4: 212, 5: 554}
x 22〜23・y 7〜8 153 秒/回 台数ごと {2: 48, 3: 115, 4: 164, 5: 284}
x 23〜24・y 8〜9 114 秒/回 台数ごと {2: 68, 3: 103, 4: 100, 5: 184}
x 22〜23・y 8〜9 108 秒/回 台数ごと {2: 14, 3: 75, 4: 115, 5: 230}
x 14〜15・y 7〜8 85 秒/回 台数ごと {2: 38, 3: 96, 4: 111, 5: 96}
x 24〜25・y 5〜6 77 秒/回 台数ごと {2: 25, 3: 71, 4: 84, 5: 130}
x 2〜3・y 7〜8 76 秒/回 台数ごと {2: 53, 3: 91, 4: 67, 5: 92}
x 18〜19・y 7〜8 73 秒/回 台数ごと {2: 42, 3: 82, 4: 94, 5: 75}
x 23〜24・y 9〜10 72 秒/回 台数ごと {2: 0, 3: 70, 4: 76, 5: 141}
== ⑧ sq124serve 1m升目の止まり(秒/回・全台数の平均)上 12 / 台数ごとの全体 {2: 1818, 3: 3068, 4: 4303, 5: 5663}
x 19〜20・y 11〜12 218 秒/回 台数ごと {2: 159, 3: 209, 4: 255, 5: 247}
x 10〜11・y 11〜12 165 秒/回 台数ごと {2: 102, 3: 158, 4: 200, 5: 201}
x 21〜22・y 3〜4 144 秒/回 台数ごと {2: 64, 3: 43, 4: 152, 5: 315}
x 19〜20・y 10〜11 132 秒/回 台数ごと {2: 30, 3: 105, 4: 175, 5: 219}
x 20〜21・y 10〜11 117 秒/回 台数ごと {2: 5, 3: 60, 4: 174, 5: 229}
x 23〜24・y 11〜12 99 秒/回 台数ごと {2: 17, 3: 49, 4: 61, 5: 272}
x 21〜22・y 10〜11 99 秒/回 台数ごと {2: 1, 3: 18, 4: 127, 5: 251}
x 20〜21・y 11〜12 91 秒/回 台数ごと {2: 2, 3: 68, 4: 147, 5: 147}
x 8〜9・y 2〜3 87 秒/回 台数ごと {2: 26, 3: 128, 4: 114, 5: 82}
x 25〜26・y 2〜3 86 秒/回 台数ごと {2: 66, 3: 57, 4: 85, 5: 135}
x 26〜27・y 13〜14 77 秒/回 台数ごと {2: 53, 3: 69, 4: 86, 5: 100}
x 18〜19・y 10〜11 68 秒/回 台数ごと {2: 21, 3: 43, 4: 110, 5: 96}
1m の升目ごとの止まり・下げ膳(grid125_bus.txt)
== ⑨ base9bus 1m升目の止まり(秒/回・全台数の平均)上 12 / 台数ごとの全体 {2: 3086, 3: 5772, 4: 7940, 5: 11091}
x 24〜25・y 6〜7 1230 秒/回 台数ごと {2: 791, 3: 1063, 4: 1366, 5: 1699}
x 23〜24・y 6〜7 491 秒/回 台数ごと {2: 182, 3: 339, 4: 581, 5: 861}
x 23〜24・y 7〜8 431 秒/回 台数ごと {2: 242, 3: 368, 4: 476, 5: 638}
x 22〜23・y 7〜8 302 秒/回 台数ごと {2: 100, 3: 214, 4: 375, 5: 518}
x 24〜25・y 5〜6 229 秒/回 台数ごと {2: 37, 3: 160, 4: 239, 5: 478}
x 25〜26・y 6〜7 205 秒/回 台数ごと {2: 121, 3: 239, 4: 165, 5: 294}
x 22〜23・y 8〜9 181 秒/回 台数ごと {2: 18, 3: 109, 4: 246, 5: 351}
x 22〜23・y 6〜7 149 秒/回 台数ごと {2: 33, 3: 74, 4: 178, 5: 313}
x 23〜24・y 8〜9 149 秒/回 台数ごと {2: 93, 3: 130, 4: 159, 5: 214}
x 23〜24・y 5〜6 127 秒/回 台数ごと {2: 14, 3: 50, 4: 145, 5: 299}
x 14〜15・y 7〜8 101 秒/回 台数ごと {2: 52, 3: 99, 4: 117, 5: 134}
x 18〜19・y 7〜8 96 秒/回 台数ごと {2: 55, 3: 95, 4: 106, 5: 130}
== ⑧ sq124bus 1m升目の止まり(秒/回・全台数の平均)上 12 / 台数ごとの全体 {2: 2579, 3: 4358, 4: 6672, 5: 9919}
x 19〜20・y 11〜12 251 秒/回 台数ごと {2: 206, 3: 247, 4: 245, 5: 306}
x 10〜11・y 11〜12 249 秒/回 台数ごと {2: 166, 3: 235, 4: 288, 5: 308}
x 17〜18・y 11〜12 189 秒/回 台数ごと {2: 37, 3: 89, 4: 217, 5: 414}
x 19〜20・y 10〜11 173 秒/回 台数ごと {2: 63, 3: 109, 4: 201, 5: 318}
x 17〜18・y 10〜11 170 秒/回 台数ごと {2: 31, 3: 72, 4: 188, 5: 387}
x 18〜19・y 10〜11 165 秒/回 台数ごと {2: 33, 3: 75, 4: 207, 5: 343}
x 21〜22・y 10〜11 148 秒/回 台数ごと {2: 8, 3: 54, 4: 189, 5: 343}
x 20〜21・y 10〜11 146 秒/回 台数ごと {2: 29, 3: 70, 4: 159, 5: 327}
x 23〜24・y 11〜12 145 秒/回 台数ごと {2: 49, 3: 59, 4: 114, 5: 359}
x 22〜23・y 10〜11 117 秒/回 台数ごと {2: 14, 3: 10, 4: 81, 5: 365}
x 22〜23・y 11〜12 111 秒/回 台数ごと {2: 19, 3: 30, 4: 226, 5: 168}
x 18〜19・y 11〜12 109 秒/回 台数ごと {2: 16, 3: 66, 4: 137, 5: 217}
場所と理由ごとの止まり(where125_serve.txt)
== ⑨ base9serve(40 回)止まり:場所×理由(1回あたりの秒が多い順・上 12)
スタッフの持ち場のそば|スタッフとすれ違った 205.7 件/回 530 秒/回 最長 60 秒
スタッフの持ち場のそば|もう1台のロボット 188.7 件/回 269 秒/回 最長 60 秒
卓 T50のそば|もう1台のロボット 212.9 件/回 229 秒/回 最長 60 秒
ロボットの待機場所のそば|もう1台のロボット 131.3 件/回 210 秒/回 最長 60 秒
ロボットの待機場所のそば|分からない 197.8 件/回 206 秒/回 最長 60 秒
ロボットの待機場所のそば|スタッフとすれ違った 81.5 件/回 183 秒/回 最長 43 秒
パントリーのそば|通路の幅が足りない 31.6 件/回 179 秒/回 最長 55 秒場所と理由ごとの止まり・下げ膳(where125_bus.txt)
== ⑨ base9bus(40 回)止まり:場所×理由(1回あたりの秒が多い順・上 12)
スタッフの持ち場のそば|スタッフとすれ違った 453.6 件/回 900 秒/回 最長 60 秒
スタッフの持ち場のそば|もう1台のロボット 537.9 件/回 745 秒/回 最長 73 秒
卓 T50のそば|もう1台のロボット 354.8 件/回 422 秒/回 最長 60 秒
ロボットの待機場所のそば|もう1台のロボット 287.1 件/回 381 秒/回 最長 60 秒
パントリーのそば|もう1台のロボット 231.9 件/回 313 秒/回 最長 181 秒
ロボットの待機場所のそば|分からない 272.6 件/回 278 秒/回 最長 16 秒
ロボットの待機場所のそば|スタッフとすれ違った 99.2 件/回 238 秒/回 最長 60 秒夜の振り分けの0.05m 超えは、スタッフが連れて戻した速さの小数の誤差だった
夜の振り分けの道具(judge)は、ロボットが1コマ(0.05秒)で0.05m を超えて動いた回を「回の失敗」にします。⑨では80回のうち21回がこれに当たりました。21回とも、30秒動けないロボットをスタッフが連れて戻した回とぴったり重なり、⑧の200回でも同じでした。
配膳3台・種2 に一時のログを入れて回し直すと、超えた79コマは、どれもスタッフが秒速1.0m で連れて戻している最中でした。1.0m/秒 × 0.05秒 は0.05m ちょうどで、小数の計算で0.050001m とわずかに超えていただけです。押されて動いたもので、ロボットが走ったり跳んだりしたものではありません。線は変えず、連れて戻した回の印として読むことにしました(次の節)。
一時のログの出力(tmp125j_steps.txt)
[依頼125一時] push ServingRobot02 escorting=True speed=1 dt=0.050000 step=0.050001
[依頼125一時] t=10362.82 robot=ServingRobot02 step=0.050001 phase=ToTable pushing=True dt=0.050000
[依頼125一時] push ServingRobot02 escorting=True speed=1 dt=0.050000 step=0.050001
[依頼125一時] t=10362.92 robot=ServingRobot02 step=0.050001 phase=ToTable pushing=True dt=0.050000
[依頼125一時] push ServingRobot02 escorting=True speed=1 dt=0.050000 step=0.050001
[依頼125一時] t=10363.01 robot=ServingRobot02 step=0.050001 phase=ToTable pushing=True dt=0.050000
[依頼125一時] push ServingRobot02 escorting=True speed=1 dt=0.050000 step=0.050000
[依頼125一時] t=10363.11 robot=ServingRobot02 step=0.050000 phase=ToTable pushing=True dt=0.050000夜の振り分けの出力(judge.md・依頼125)
# 夜の結果の振り分け(20261108_*)
基準データ: 20261102_night_cs34_*(60回)/振り分けた回: 80回
切り替えの入切(条件の一部。同じ入切の基準の回とだけ比べる): 今回 すれ違い入・待機場所へ戻る入・案B切・入口番入・持ち場入・一方通行切・1本道切・店公開・立ち往生の助け入・人が先によける切・近くのスタッフが動かす入/基準 すれ違い入・待機場所へ戻る入・案B切・入口番切・持ち場切・一方通行切・1本道切・店公開・立ち往生の助け切・人が先によける切・近くのスタッフが動かす切
**注意:試算の版が基準と違う(今回 v2.9/基準 v2.8)。試算との比べは参考にとどめる**
同じ種の2回の比べ(cmp_chk125a_vs_b.txt)
20261108_chk125a_cs107_large_p7_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav_sqz
と 20261108_chk125b_cs107_large_p7_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
比べなかったもの: []
⑨の比較動画(直す前の標準の形)
⑧と同じ台数(2台)・種(7)・撮り方で、配膳だけと配膳+下げ膳を並べました。寄る5分は、左右で止まりの差がいちばん大きい5分を自動で選びます。選ばれたのは開店3時間14分〜19分の、持ち場2のそば(①と同じ所)でした。この5分の止まりは、左が13.6秒、右が184.7秒です。
寄る5分の選び方の出力(table_B125.csv)
店,店の時刻(秒),選んだわけ,寄った場所,店の座標,止まり秒_配膳だけ,止まり秒_配膳+下げ膳,片付けを待つ卓_配膳だけ,片付けを待つ卓_配膳+下げ膳,入口で待つ組_配膳だけ,入口で待つ組_配膳+下げ膳
⑨ large_p7,11640〜11940,止まりの差がいちばん大きい5分(差 +171 秒・一日の5分の最大の 93%),スタッフの持ち場のそば,"(23.5, 6.4)",13.6,184.7,0.0,0.0,0.0,0.0
⑨の合格の線5つ(直す前)
| 線 | 配膳 | 下げ膳 |
|---|---|---|
| 1 瞬間移動 0 | ○ | ○ |
| 2 同じ種で同じ結果 | ○ | ○ |
3 止まったまま解けない所が残らない | △(回の終わりには残らないが、途中で3.1時間解けない回が1回) | ○ |
| 4 試算と向きが合う | ×(入店待ちの3→4台で逆) | ○ |
| 5 図面と動画 | ○ | ○ |
作業ログ ― 依頼125 の結果を見て決めたこと:止まり3つに1つずつ手を当てる
止まり3つは、原因がそれぞれ違いました。①は人とロボットの持ち場の重なり、②は Unity の道探しの上限、③は店の形そのものです。そこで、1つずつ別の手を当て、決まりの効き目と店の形の効き目を分けて見られるように、決まりは切と入で比べることにしました。決めたことは次の5つです。
| 止まり・残ったこと | 決めたこと | 正をどこに置くか |
|---|---|---|
① 受け渡し口の前で、ロボットがスタッフに止められる | 受け渡し口の前にロボットの通る帯を置く。受け渡し口の幅を左右に0.6m ずつ広げ、手前に1.2m。人は帯の中で立ち止まらない(通り抜けと、料理を取る・置くのはよい)。持ち場や待つ点が帯の中なら、帯の外の一番近い点へ移す | サイトの決まり food_pass_lane |
| ② T63 への道が引けない | Unity の道探しで調べる範囲を広げる | Unity だけの値(サイトには入れない) |
③ 入る点と T50 のそばの詰まり | ⑨の5本の島を左へ0.5m 寄せる(入る点と止まる点 0.44m → 0.90m)。あわせて、同じ所(半径3m 以内)で動けないロボットが2台以上になったら、7m 以内のスタッフが1台ずつ脇へ動かす | 店の形はサイトの large_store.py、決まりは staff_clear_jam |
| 線4(入店待ちの向き) | 直したあと、⑨だけ種を20に増やして見る | ― |
| judge の0.05m 超え | 線は変えず、連れて戻した回の印として読む。報告では「連れて戻した」と分けて書く | ― |
決まりの正はサイトなので、店の形の直しと2つの決まり(どちらも切)を先にサイトに入れ、⑨の試算を回し直してから Unity に渡しました。⑧は店の形の版の名前が変わっただけで、中身は同じです。
帯は、この回でいちばん効き目を見込んだ変化です。
- ねらい:料理を載せに来るロボットの通り道から、スタッフの待つ場所を外す
- 変わったこと:受け渡し口の前の幅いっぱい+左右0.6m・手前1.2m で人が立ち止まらなくなり、⑨の持ち場1・持ち場2は帯の外へ移った
- 見込める効果:①の止まり(配膳で1回の営業あたり約722秒)が減る。実際の数は依頼126 の節で並べる
店の形と params の差分(p2m-site commit 5c58fa9)
commit 5c58fa9
下書き:⑨の島を左へ0.5m(large-ef184aab9fc4)、params に food_pass_lane・staff_clear_jam(切)を足す。⑨の試算を回し直してから main へ
diff --git a/public/sim/serving-robot-params.json b/public/sim/serving-robot-params.json
index aec9d5a..ef92e3b 100644
--- a/public/sim/serving-robot-params.json
+++ b/public/sim/serving-robot-params.json⑨の試算を回し直した params と README の差分(p2m-site commit 2f105dc)
試算は⑨の3,066条件だけを回し直し、params の stores.large_p7 と、Unity の条件ごとの試算の値(unity_conditions の large_p7 の site_result)を入れ替えました。試算のページ(serving-robot.html)も同じ値に入れ替えています。ページの差分は1行に約1,080万字の試算の結果が入るので、ここには載せていません。
commit 2f105dc
⑨の島を左へ0.5m(T50 の止まる点と待機点の入る点 0.44m→0.90m)。⑨の試算を回し直してページと params に入れ、food_pass_lane・staff_clear_jam(切)を足す
diff --git a/public/sim/serving-robot-params.json b/public/sim/serving-robot-params.json
index ef92e3b..1184f48 100644
--- a/public/sim/serving-robot-params.json
+++ b/public/sim/serving-robot-params.json依頼126 の依頼文
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 600
---
# 依頼126:⑨を直した店の形で建て直し、受け渡し口の前の帯・動けない台を順に動かす決まり・道探しの範囲を入れて、種20で比べる
依頼125 の報告(claude_code_reports/20261108_base9_125.txt)を読んで、エイイチと決めたこと(2026-11-08):
1. ①受け渡し口の前でスタッフにロボットが止められる件:受け渡し口の前に、ロボットの通る帯を決める(サイトの params の unity_rules.food_pass_lane。既定は切)。帯は受け渡し口の幅を左右に0.6m ずつ広げ、手前に1.2m。人はこの帯の中で立ち止まらない(通り抜けと、受け渡し口で料理を取る・置くのはよい)。持ち場や待つ点が帯の中なら、帯の外の一番近い点へ移す。詳しくは params の note が正作業ログ ― 依頼126:⑨を直した形で建て直し、2つの決まりを切と入で比べた
依頼126 の結果(依頼箱の結果のファイル)
# 結果:20261108_126_⑨を直した店の形で建て直し帯と順に動かす決まりと道探しを入れて種20で比べる
- 状態:完了
- 始めた時刻:2026-11-08 23:16
- 終わった時刻:2026-11-09 05:21(365分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume e035fe47-48f7-40ef-a1e0-6feb8dd0bbb7`
- 止められた操作:1件(いちばん下に一覧)途中で、作りの誤りが1つ見つかっています。同じロボットに助けが2つ重なると、片方が終わらないまま残り、ほかの助けを全部止めていました。下げ膳5台・種3 の入で、受け渡し口の前の5台が回の終わりまで動けなかったのがきっかけです。直したあと(cs:109)の実行ファイルで、全部を回し直しました。
止まり3つは、帯・道探し・店の形の順に効いた(1回の営業あたりの秒・全台数の平均・種0〜9)
| 止まり | 配膳 前の形 → 切 → 入 | 下げ膳 前の形 → 切 → 入 | 主に効いたもの |
|---|---|---|---|
① 受け渡し口の前でスタッフに止められる | 722 → 647 → 347 | 1,147 → 1,085 → 521 | 帯(入) |
| ② T63 への探しすぎ | 219 → 0 → 0 | 74 → 0 → 0 | 道探しの範囲 |
③ 入る点のそばのロボットどうし | 186 → 111 → 96 | 349 → 199 → 207 | 島を寄せた店の形(切でも減った) |
前の形は依頼125 の回、切は直した店の形で2つの決まりを切、入は2つの決まりを入にした回です。①は店の形を直しただけではほとんど減らず、帯を入れて半分以下になりました。③は、決まりを切にしたままでも、店の形を直しただけで減っています。3.1時間動けなかった5台・種3 の回は、入で600秒以上の止まりが0になり、その回の入店待ちは25.8分から11.3分になりました。
①②③の減り方の出力(red126_out.txt)
①②③ の1回あたりの秒(全台数・全種の平均)。① スタッフとすれ違った x23〜25・y6〜8/② 探しすぎ/③ ロボット同士 x22〜23・y7〜9
serve base9 回 40 ① 722 ② 219 ③ 186 |種0〜9だけ ① 722 ② 219 ③ 186 |600秒以上 1 所
serve f9off 回 40 ① 647 ② 0 ③ 111 |種0〜9だけ ① 647 ② 0 ③ 111 |600秒以上 0 所
serve f9on 回 80 ① 345 ② 0 ③ 101 |種0〜9だけ ① 347 ② 0 ③ 96 |600秒以上 0 所
bus base9 回 40 ① 1147 ② 74 ③ 349 |種0〜9だけ ① 1147 ② 74 ③ 349 |600秒以上 0 所
bus f9off 回 40 ① 1085 ② 0 ③ 199 |種0〜9だけ ① 1085 ② 0 ③ 199 |600秒以上 1 所
bus f9on 回 80 ① 500 ② 0 ③ 197 |種0〜9だけ ① 521 ② 0 ③ 207 |600秒以上 1 所
前の形・切・入の並べ(⑨・中央値。前の形と切は10種、入は20種)
| 台数 | 入店待ち(分) | ロボットの止まりの合計(秒) | スタッフが動かした(回) | スタッフの手すき(%) |
|---|---|---|---|---|
| 配膳 2台 | 12.12 → 11.33 → 11.03 | 2,207 → 2,534 → 2,123 | 68.5 → 81.5 → 66.0 | 41.4 → 39.8 → 40.8 |
| 配膳 3台 | 12.58 → 11.63 → 12.04 | 3,700 → 3,996 → 3,410 | 114.0 → 127.0 → 96.5 | 43.2 → 41.8 → 43.0 |
| 配膳 4台 | 11.67 → 12.43 → 11.93 | 5,267 → 4,956 → 4,302 | 169.5 → 158.5 → 125.5 | 42.7 → 42.8 → 42.9 |
| 配膳 5台 | 15.07 → 11.49 → 11.98 | 6,326 → 5,632 → 4,957 | 188.5 → 152.0 → 138.0 | 43.5 → 42.2 → 43.4 |
| 下げ膳 2台 | 12.00 → 12.20 → 10.96 | 3,086 → 3,353 → 2,786 | 108.0 → 104.5 → 83.0 | ― |
| 下げ膳 3台 | 12.34 → 11.72 → 11.29 | 5,769 → 5,370 → 4,701 | 190.5 → 155.0 → 132.5 | ― |
| 下げ膳 4台 | 12.12 → 11.80 → 11.83 | 8,358 → 7,864 → 6,872 | 244.0 → 226.0 → 189.5 | ― |
| 下げ膳 5台 | 12.80 → 12.33 → 11.95 | 11,043 → 10,257 → 9,421 | 298.5 → 303.5 → 251.0 | ― |
止まりの合計は、どの台数でも入がいちばん少なくなりました。前の形と比べて4〜22%の減りです。2〜3台では、店の形だけを直した切で、止まりの合計がかえって増えています。島の間の通路が狭くなったぶん、細い通路での止まりが増えたためで、帯を入れるとその増えた分を上回って減りました。
依頼126 の配膳の集計の出力(agg126_serve_out.txt)
依頼126:serve。base9serve=依頼125 前の形(cs:107・種0〜9)・f9offserve=新しい形・切(cs:109・種0〜9)・f9onserve=新しい形・入(cs:109・種0〜19)
base9serve 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 0
base9serve 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 [2, 5, 6, 7]・終わりに待機していないロボット 0
base9serve 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 [4, 7, 9]・終わりに待機していないロボット 0
base9serve 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 [4, 7, 8]・終わりに待機していないロボット 0
f9offserve 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 0
f9offserve 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 0
f9offserve 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 0依頼126 の下げ膳の集計の出力(agg126_bus_out.txt)
依頼126:bus。base9bus=依頼125 前の形(cs:107・種0〜9)・f9offbus=新しい形・切(cs:109・種0〜9)・f9onbus=新しい形・入(cs:109・種0〜19)
base9bus 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 [3, 4, 8]・終わりに待機していないロボット 9
base9bus 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 [4, 7, 8, 9]・終わりに待機していないロボット 10
base9bus 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 [8, 9]・終わりに待機していないロボット 10
base9bus 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 [2, 9]・終わりに待機していないロボット 11
f9offbus 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 12
f9offbus 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 10
f9offbus 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 12⑨の入店待ちは、お客さんの来かたでほぼ決まっていた
種を20に増やして入店待ちを種ごとに並べると、どの条件でも、いちばん短いのは種0(約1.6分)、いちばん長いのは種2(約26〜29分)でした。前の形・切・入、配膳・下げ膳、2〜5台のどれでも、この順は変わりません。10分を超えた種の数も、どの条件でも10種のうち6〜7、20種のうち12〜13でほぼ同じです。
⑨の入店待ちは、ロボットの台数や決まりより先に、その日にお客さんがどう来るかで決まっていました。台数を増やしたときの向きを中央値1つで比べると、種の散らばりに埋もれます。依頼125 で配膳の線4が「逆」になったのも、この散らばりの中の動きでした。
| 条件(配膳) | 2台 | 3台 | 4台 | 5台 |
|---|---|---|---|---|
| 前の形(10種) | 1.6〜26.0分・10分以上 6/10 | 1.7〜28.3分・7/10 | 1.6〜27.3分・7/10 | 1.6〜28.8分・7/10 |
| 切(10種) | 1.6〜26.3分・7/10 | 1.6〜26.3分・7/10 | 1.7〜28.6分・7/10 | 1.6〜28.9分・7/10 |
| 入(20種) | 1.6〜26.0分・12/20 | 1.6〜26.1分・13/20 | 1.6〜28.6分・12/20 | 1.6〜28.9分・13/20 |
入店待ちの散らばりの出力(agg126_spread_out.txt)
== 入店待ちの散らばり(配膳・分):種ごとの最小〜最大(その種)・10分以上の種の数/種の数
2台 base9serve:1.6(種0)〜26.0(種2)・10分以上 6/10 f9offserve:1.6(種0)〜26.3(種2)・10分以上 7/10 f9onserve:1.6(種0)〜26.0(種2)・10分以上 12/20
3台 base9serve:1.7(種0)〜28.3(種2)・10分以上 7/10 f9offserve:1.6(種0)〜26.3(種2)・10分以上 7/10 f9onserve:1.6(種0)〜26.1(種2)・10分以上 13/20
4台 base9serve:1.6(種0)〜27.3(種2)・10分以上 7/10 f9offserve:1.7(種0)〜28.6(種2)・10分以上 7/10 f9onserve:1.6(種0)〜28.6(種2)・10分以上 12/20
5台 base9serve:1.6(種0)〜28.8(種2)・10分以上 7/10 f9offserve:1.6(種0)〜28.9(種2)・10分以上 7/10 f9onserve:1.6(種0)〜28.9(種2)・10分以上 13/20
f9on の種0〜9 だけ:2台 10分以上 6/10・中央値 11.14 3台 10分以上 7/10・中央値 12.05 4台 10分以上 6/10・中央値 11.96 5台 10分以上 7/10・中央値 11.66
== 入店待ちの散らばり(下げ膳・分):種ごとの最小〜最大(その種)・10分以上の種の数/種の数
2台 base9bus:1.6(種0)〜26.0(種2)・10分以上 7/10 f9offbus:1.6(種0)〜26.0(種2)・10分以上 7/10 f9onbus:1.5(種0)〜25.9(種2)・10分以上 13/20
3台 base9bus:1.6(種0)〜27.3(種2)・10分以上 7/10 f9offbus:1.6(種0)〜26.5(種2)・10分以上 7/10 f9onbus:1.6(種0)〜26.0(種2)・10分以上 12/20
4台 base9bus:1.6(種0)〜26.5(種2)・10分以上 7/10 f9offbus:1.6(種0)〜28.1(種2)・10分以上 7/10 f9onbus:1.6(種0)〜27.8(種2)・10分以上 13/20
5台 base9bus:1.6(種0)〜28.8(種2)・10分以上 7/10 f9offbus:1.8(種0)〜27.8(種2)・10分以上 7/10 f9onbus:1.7(種0)〜28.5(種2)・10分以上 13/20
f9on の種0〜9 だけ:2台 10分以上 7/10・中央値 11.08 3台 10分以上 6/10・中央値 11.29 4台 10分以上 7/10・中央値 11.63 5台 10分以上 6/10・中央値 11.67
新しく目立ったのは、1.4m に狭まった島の間の通路
止まりを場所と理由ごとに並べ、前の形より入で増えたものを上から見ると、上位はどれも島の間の細い通路(A04・A05)でした。お客さんとすれ違った、人が立ち止まっていた、スタッフとすれ違った、のどれも増えています。切でも同じだけ増えているので、決まりではなく、島を寄せて通路が1.5m から1.4m になったことによる増えです。
体を横に向けてすり抜けるスタッフが、ロボットの外周に2.5cm 以上重なった回も、前の形の80回で1回だったのが、入の160回で13回(最も深くて13.2cm)に増えました。


新しく目立った止まりの出力(new126_out.txt)
== serve:場所|理由 前の形 切 入(1回あたりの秒・入の多い順 上 12)
スタッフの持ち場のそば|スタッフとすれ違った 531 470 271
ロボットの待機場所のそば|分からない 208 196 191
卓 T50のそば|もう1台のロボット 214 160 169
卓 T45のそば|もう1台のロボット 123 158 157
卓 T40のそば|もう1台のロボット 116 134 142
スタッフの持ち場のそば|もう1台のロボット 271 189 141
細い通路 A05|お客さんとすれ違った 60 107 138
ロボットの待機場所のそば|もう1台のロボット 282 143 135
ロボットの待機場所のそば|スタッフとすれ違った 197 176 98
卓 T35のそば|もう1台のロボット 73 86 96
細い通路 A04|お客さんとすれ違った 74 61 88
細い通路 A01|人が立ち止まっていた 49 91 74
-- 前の形より入で増えたもの(上 6)
細い通路 A05|お客さんとすれ違った 60 → 138(切 107)
卓 T45のそば|もう1台のロボット 123 → 157(切 158)
細い通路 A05|スタッフとすれ違った 15 → 46(切 42)
細い通路 A02|お客さんとすれ違った 36 → 67(切 83)
卓 T40のそば|もう1台のロボット 116 → 142(切 134)
細い通路 A05|人が立ち止まっていた 21 → 47(切 48)
== bus:場所|理由 前の形 切 入(1回あたりの秒・入の多い順 上 12)
スタッフの持ち場のそば|もう1台のロボット 749 664 570
スタッフの持ち場のそば|スタッフとすれ違った 901 871 433
ロボットの待機場所のそば|もう1台のロボット 551 325 302
ロボットの待機場所のそば|分からない 282 274 266
卓 T50のそば|もう1台のロボット 356 231 233
パントリーのそば|もう1台のロボット 313 224 162
卓 T45のそば|もう1台のロボット 149 178 158
卓 T40のそば|もう1台のロボット 110 127 140
ロボットの待機場所のそば|スタッフとすれ違った 267 218 138
細い通路 A05|お客さんとすれ違った 86 106 132
細い通路 A05|人が立ち止まっていた 55 79 125
細い通路 A04|人が立ち止まっていた 68 98 121
-- 前の形より入で増えたもの(上 6)
細い通路 A05|人が立ち止まっていた 55 → 125(切 79)
細い通路 A05|スタッフとすれ違った 29 → 100(切 107)
細い通路 A04|スタッフとすれ違った 52 → 109(切 94)
細い通路 A04|人が立ち止まっていた 68 → 121(切 98)
細い通路 A05|お客さんとすれ違った 86 → 132(切 106)
細い通路 A01|人が立ち止まっていた 75 → 114(切 151)
⑧では、2つの決まりを入れても悪くならなかった
⑧の5台・種0〜9 を、2つの決まりを入にして配膳と下げ膳で回し、依頼124 の同じ回と並べました。配膳5台では、入店待ち10.74分 → 10.51分、ロボットの止まりの合計5,576秒 → 5,427秒、30秒の呼び出し24.0回 → 17.0回で、悪くなったものはありませんでした。⑧の受け渡し口の前の帯の中にあった待つ点は、1回の営業で160.5回、帯の外へ移されています。
決まりを切にして回した⑧は、依頼124 と csv・summary.json がすべて同じでした。違ったのは、道探しの上限の値・店の形の版の名前・道が引けなかった数(363 と 367)だけです。
⑧の配膳の並べ(agg126_p6serve_out.txt)
依頼126:p6serve。sq124serve=⑧ 依頼124(cs:106)・f8onserve=⑧ 入(cs:109)
sq124serve 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 0
f8onserve 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 0
== 5台 ==
項目 sq124serve f8onserve
入店待ち(分) 10.74 10.51
料理が届くまで(分) 1.55 1.52
往復数 252.0 253.0
ロボットの止まりの合計秒 5576 5427
30秒の呼び出し(回) 24.0 17.0
スタッフが動かした(回) 93.5 106.0
スタッフの手すき(%) 43.2 42.6
片付けを待つ卓(平均) 0.03 0.05
すり抜け(回) 113.5 117.0
重なり 2.5cm 未満(回) 0.5(和 8.0) 0.0(和 4.0)
重なり 2.5cm 以上(回) 0.0(和 0.0) 0.0(和 0.0)
人の止まりで回の終わりまで残った(件) 0.0(和 0.0) 0.0(和 0.0)
①受け渡し口の前の左・スタッフとすれ違った(秒) 0 0
②探しすぎ(秒) 0 0
③入る点のそば・ロボット同士(秒) 0 0
(入)詰まりで動かしに行った(回) - 9.5
(入)30秒の助けを取り消して動かした(回) - 1.0
(入)待つ点を帯の外へ移した(回) - 160.5
連れて戻した(回) 0.0 0.0
①②③ の平均(秒/回) ①0・②1・③4 ①0・②0・③1
600秒以上解けなかった止まり 1 所:種2 卓 T65のそば ロボット1・人0・最長1222秒 0 所
⑧の下げ膳の並べ(agg126_p6bus_out.txt)
依頼126:p6bus。sq124bus=⑧ 依頼124(cs:106)・f8onbus=⑧ 入(cs:109)
sq124bus 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 9
f8onbus 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた止まり(人 スタッフ 0・客 0/ロボット 0)・連れて戻した回 なし・終わりに待機していないロボット 8
== 5台 ==
項目 sq124bus f8onbus
入店待ち(分) 10.85 10.64
料理が届くまで(分) 1.82 1.79
往復数 324.5 331.5
ロボットの止まりの合計秒 10383 9469
30秒の呼び出し(回) 40.0 38.0
スタッフが動かした(回) 199.0 217.5
スタッフの手すき(%) 44.3 45.2
片付けを待つ卓(平均) 0.14 0.07
すり抜け(回) 252.0 228.5
重なり 2.5cm 未満(回) 1.0(和 10.0) 1.0(和 9.0)
重なり 2.5cm 以上(回) 0.0(和 0.0) 0.0(和 1.0)
人の止まりで回の終わりまで残った(件) 0.0(和 0.0) 0.0(和 0.0)
①受け渡し口の前の左・スタッフとすれ違った(秒) 0 0
②探しすぎ(秒) 1 0
③入る点のそば・ロボット同士(秒) 0 0
(入)詰まりで動かしに行った(回) - 15.5
(入)30秒の助けを取り消して動かした(回) - 4.0
(入)待つ点を帯の外へ移した(回) - 288.5
連れて戻した(回) 0.0 0.0
①②③ の平均(秒/回) ①0・②32・③0 ①0・②0・③3
600秒以上解けなかった止まり 0 所 0 所
⑧を切で回した回と依頼124 の比べ(cmp_chk126p6b_vs_sq124serve_r5s0.txt)
20261108_chk126p6b_cs109_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav_sqz
と 20261108_sq124serve_cs106_large_p6_r5_s0_passon_sbret_ek_post_rescue_smove_se_pav_sqz
結果: 違う ["conditions.json: ['settings']", "run_info.json: ['map_generation', 'plan_fails']"]
同じだったもの: 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 squeeze.csv staff_moves.csv stops.csv summary.json timeline.csv trips.csv yields.csv
比べなかったもの: []
夜の振り分けの出力(judge.md・依頼126)
# 夜の結果の振り分け(20261108_*)
基準データ: 20261102_night_cs34_*(60回)/振り分けた回: 301回
切り替えの入切(条件の一部。同じ入切の基準の回とだけ比べる): 今回 すれ違い入・待機場所へ戻る入・案B切・入口番入・持ち場入・一方通行切・1本道切・店公開・立ち往生の助け入・人が先によける切・近くのスタッフが動かす入/基準 すれ違い入・待機場所へ戻る入・案B切・入口番切・持ち場切・一方通行切・1本道切・店公開・立ち往生の助け切・人が先によける切・近くのスタッフが動かす切
**注意:試算の版が基準と違う(今回 v2.9/基準 v2.8)。試算との比べは参考にとどめる**
⑨の比較動画(直した形・帯と順に動かす 入)
依頼125 と同じ台数・種・撮り方で撮り直しました。寄る5分に選ばれたのは開店2時間52分〜57分の、受け渡し口の前の左(持ち場のそば)です。この5分の止まりは、左(配膳だけ)が23.6秒、右(配膳+下げ膳)が174.2秒でした。直したあとでも、止まりの差がいちばん大きいのは受け渡し口のまわりです。
寄る5分の選び方の出力(table_B126.csv)
店,店の時刻(秒),選んだわけ,寄った場所,店の座標,止まり秒_配膳だけ,止まり秒_配膳+下げ膳,片付けを待つ卓_配膳だけ,片付けを待つ卓_配膳+下げ膳,入口で待つ組_配膳だけ,入口で待つ組_配膳+下げ膳
⑨ large_p7,10320〜10620,止まりの差がいちばん大きい5分(差 +151 秒・一日の5分の最大の 82%),スタッフの持ち場のそば,"(23.8, 6.3)",23.6,174.2,0.0,0.0,0.0,0.0
⑨の合格の線5つ(直した形・入)
| 線 | 配膳 | 下げ膳 |
|---|---|---|
| 1 瞬間移動 0 | ○ | ○ |
| 2 同じ種で同じ結果 | ○ | ○ |
3 止まったまま解けない所が残らない | ○ | ○ |
4 試算と向きが合う(種20 の中央値) | ○ | ×(入店待ちの3→4台。試算 −1.39分、Unity +0.54分) |
| 5 図面と動画 | ○ | ○ |
下げ膳の線4は、横ばいとみなす0.5分をわずかに超えた逆向きです。種0〜9 だけで見ると横ばいになります。入店待ちが種でほぼ決まっていることを見たうえで、これは記録だけにしました。
作業ログ ― 2つの決まりを標準にし、⑨をここで区切った
依頼126 の結果を見て、帯(food_pass_lane)と順に動かす決まり(staff_clear_jam)を、サイトの標準(入)にしました。⑨で止まりの合計が前の形より4〜22%減り、⑧では依頼124 とほぼ同じで悪くなった所がなかったためです。それまでの基準データは、この2つの決まりなしで回しています。
params と README の差分(p2m-site commit 23f5842)
commit 23f5842
food_pass_lane・staff_clear_jam を標準(入)にし、⑨を区切る
diff --git a/public/sim/serving-robot-params.json b/public/sim/serving-robot-params.json
index 1184f48..d236f3a 100644
--- a/public/sim/serving-robot-params.json
+++ b/public/sim/serving-robot-params.json大型店⑧⑨で標準にした6つの決まり
| サイトの決まり | 中身 | 標準にした回 |
|---|---|---|
staff_moves_robot | 走っている途中で5秒止まったロボットを、7m 以内の一番近いスタッフがすぐ押して動かす | LOG465 |
standby_straight_entry | 待機点へ戻るロボットは、真正面1.0m の入る点からまっすぐ入る | LOG465 |
people_avoid_standby | スタッフとお客さんは、ロボットの待機点の区画を通り道にしない | LOG465 |
staff_squeeze_aisle | スタッフは細い通路のロボットを待たず、体を横に向けてすり抜ける。重ならず、2.5cm 未満だけ許す | LOG466 |
| food_pass_lane | 受け渡し口の前にロボットの通る帯を置き、人は帯の中で立ち止まらない。持ち場や待つ点は帯の外へ移す | この回 |
staff_clear_jam | 同じ所で動けないロボットが2台以上になったら、近くのスタッフが1台ずつ脇へ動かす | この回 |
残した候補
| 起きた場面 | 原因の候補 | 切り分け方 |
|---|---|---|
⑨の島の間の細い通路(1.4m)で、ロボットが人のために止まる時間が約5割増えた | 島を寄せて通路が0.1m 狭まった | 切でも同じだけ増えたので、決まりではなく店の形の分。今は記録だけ |
すり抜けで2.5cm 以上の重なりが160回で13回(最大13.2cm) | 1.4m の通路では、横向きの人とロボットの隙間が足りない | 今は記録だけ。通路の幅ごとの重なりの数を並べて見る |
⑨の下げ膳の入店待ちが、3→4台で試算と逆向き | 入店待ちの散らばりが、お客さんの来かた(種)でほぼ決まる | 今は記録だけ。種を増やしたときに向きが残るかを見る |
帯の外へ移した⑨の持ち場2(23.65, 6.50)が、ロボットの道のすぐそばに残る | 帯の外の一番近い点へ移す決まりのため、道の脇に寄る | 今は記録だけ |
直す前の作り(cs:108)で回した41行が台帳に残っている。うち1行は全員が帰っていない回 | 助けが2つ重なる誤りを直す前の回 | 比べに使わない回として扱う |
この回で決めたことは次のとおりです。
- 受け渡し口の前にロボットの通る帯を置き、人は帯の中で立ち止まらない。サイトの標準(入)にした(p2m-site commit 23f5842)
- 同じ所で動けないロボットが2台以上になったら、近くのスタッフが1台ずつ動かす。これも標準にした
- ⑨の5本の島を左へ0.5m 寄せた(入る点と止まる点 0.44m → 0.90m・店の形の版 large-ef184aab9fc4)。⑨の試算はこの形で回し直した
- Unity の道探しの範囲を、⑧⑨の地図の全部のマス(1,200,000 マス)に広げた(Unity だけの値)
- 夜の振り分けの0.05m 超えは、連れて戻した回の印として読む
- ⑨は配膳で合格の線5つを満たしたので、ここで区切る。直した形の⑨の結果は、依頼126 の入(配膳・下げ膳の各80回)