---
title: "サービスロボット導入シミュレーション Log#35 | 配膳ロボット5台で見えた、シミュレーションの穴"
slug: large-restaurant-five-serving-robots-longer-wait
date: 2026-11-06
day: 452
meta_description: "Unity で再現した70卓の大型ファミレスで配膳ロボットを5台に増やすと、入店待ちは延びた。ロボットに台どうしの順番決めがなく待機場所のそばで止まり合ったためで、シミュレーションのまずい所を8つ洗い出した。"
tags: [サービスロボット導入シミュレーション, 配膳ロボット, 飲食店, ファミレス, Unity, シミュレーション, 原因の切り分け]
series: "導入シミュレーション"
---

70卓・312席の大型ファミレスを Unity の3Dで再現したシミュレーションでは、**配膳ロボットを2台から5台に増やしても入店待ちは縮まず、4台からはかえって延びた。** 5台にすると、ロボットどうしが料理の受け渡し口と待機場所のまわりで止まり合い、そこを通る片付けのスタッフが動けず、食べ終えた卓が空かなかったためです。実物の店で測った数字ではなく、同じお客さんの来かたで回したシミュレーションの結果です。ただし Unity のロボットには、実物の配膳ロボットにある台どうしの順番決めがないので、4台・5台の悪くなり方は、そのぶん大きく出ています。

この回で、次のことが分かるようになりました。

- 大型店で配膳ロボットを何台まで入れると効くかを、0台から5台まで1台ずつ、各10回で見比べられる。⑧の店では、配膳だけの使い方で3台までは入店待ちが11.5〜11.7分でほぼ同じで、4台で13.2分、5台で17.2分に延びた
- 入店待ちが延びる原因が、台数で入れ替わることが動画で見える。2台では、満席で待つお客さんが入口の待合からあふれてロボットの通り道をふさぐ。5台では、ロボットどうしの止まり合いで片付けが遅れる
- 詰まっている所に寄せて店の時刻の5倍で流した動画で、どこで何が詰まっているかを、表を読まずに目で追える。前の動画は店の時刻の48〜270倍の早送りだった。動画は2台だけを載せ、5台は止まり合う場面を静止画で示す
- シミュレーションの作りのまずい所（台どうしの順番決めがない・待合に並ぶ点が1つだけ・同じ種でも撮るかどうかで結果が違う、など8つ）を一覧にできた。次に何から直すかが決まる

困っていたのは、大型店だけ数字の向きが説明できなかったことです。前の回（LOG444）で、図面のある8店のうち大型店⑧⑨だけは、ロボットを足しても入店待ちがほとんど縮まず、サイトの試算（表計算で出した見込み）と向きが合わない所が多く残っていました。数字の表だけでは、なぜそうなるのか分かりません。

| やったこと | なぜ | 結果 |
|---|---|---|
| ⑨のレジまわりを広げた（サイトの店の形と試算を直した） | 動画で、レジの上の通路にスタッフとお客さんが詰まっていたため | 通路は1.5m → 2.5m、待つ所は3.1m → 4.1m。入店待ちはほとんど変わらなかった |
| 人がロボットを4m手前から先によける動きを Unity に入れた | スタッフやお客さんがロボットへ突っ込んでいく描画が多すぎたため | 重なる場面は減ったが、近づきすぎた数は5〜6%しか減らず、標準の店では待ちが1分ほど延びた |
| 大型店⑧⑨をロボット0〜5台で各10回回した（依頼95） | ロボットを増やせば良くなるかを確かめるため | 3台まではほぼ横ばい、4台から延びた |
| 5台を撮り、2台と左右に並べた（依頼96） | なぜ延びるのかを動画で見るため | 5台ではロボットどうしの止まり合いで片付けが遅れ、卓が空かなかった |
| 詰まりに寄せて店の時刻の5倍で流す動画を作り直した（依頼98） | 早送りが速すぎて、何をしているか分からなかったため | ⑧⑨の2台と5台、/series8 の8店の比較動画を作り直した |
| Unity のまずい所を洗い出した | 5台でロボットがほとんど動いていないように見えたため | 台どうしの順番決めがないことなど、8つを一覧にした |

途中で、このシミュレーションを何のために使うのかを考え直しました。Unity の中のずれを直し続けて実物に近づけることが目的ではありません。

> だから問題点があった時にそれらがなんの要因なのか切り分けられるための情報集めのためのシミュレーションだよ。

店で問題が起きたときに、原因の候補を1つずつ入れたり外したりして、ほかは同じにして回し、どの候補がどれだけ効いているかを数で出す。それができる材料を集めるのが、このシミュレーションの役目です。この回の結果も、その見方で並べ直しています。

配膳ロボットを自分の店に入れたらどうなるかは、このシリーズの試算をもとにした別のページで試せます。

【バナー】serving-robot-one-less-staff


## 作業ログ ― 依頼94 の結果から決めた3つのこと

前の回の最後に回した依頼94 で、大型店⑧⑨は配膳だけ60回・配膳＋下げ膳40回がすべて最後まで回りました。ただ、試算と向きが合ったのは20本のうち8本だけで、入店待ちは試算の1.4〜2.1倍ありました。

### 種：同じお客さんの来かたを作るための番号

この記事では種という言葉を何度も使います。種は、お客さんがいつ何人で来るか、何分で食べ終えるかといった、偶然で決まる部分を作るための番号です。種が同じなら、ロボットの台数を変えても同じお客さんが同じ時刻に来ます。台数を変えたときの違いを、お客さんの来かたの違いと混ぜずに比べられます。1つの条件を種0〜9の10回で回し、真ん中の値（中央値）で見ています。

### 大型店について決めたこと

依頼94 の結果を見て、次の3つを決めました。

- 大型店はロボットを増やさないと良くならなさそうなので、3台・4台・5台まで比べる
- ⑨はレジのまわりが狭すぎる。動画で、レジの上の端にスタッフとお客さんが固まっていた
- スタッフやお客さんが、広い通路でロボットに突っ込んでいく描画が多すぎる。実際の人は、前から来るロボットを先によける

試算（サイトの /series8）と Unity の関係は前の回までと同じです。店の形・条件・回し方の決まりはサイトの試算が正で、Unity はサイトから写したデータを読んで店を建てます。レジまわりを広げるのは店の形の話なので、先にサイトを直しました。人のよけ方は通路で起きることなので、Unity の人の動きの中で入れました。


## 作業ログ ― ⑨のレジまわりを広げ、試算を計算し直した

⑨（大型・厨房が右・入口が角）は、入口の横にレジが2つ縦に並び、カウンターが5m続いています。レジの上の端から客席の島までは1.5mしかなく、入口から入ったお客さん、案内するスタッフ、会計の列、ロボットの道が、全部ここを通っていました。

【画像】LOG452_01_p7_register_before_after.png ⑨のレジまわりの、直す前（左）と直した後（右）。縦の矢印はレジの上の端から島まで（1.5mから2.5mへ）、横の矢印は待合からレジまで（3.1mから4.1mへ）

直し方は2つを両方入れました。客席の島と左の壁ぞいの席を上へ1.0m、レジと下の壁ぞいの6人席を右へ1.0m動かしています。卓の数と席は70卓・312席のままで、受け渡し口から卓までの道のりは平均18.6mから18.7mに延びました。上の通路は4.05mから3.05mになります。

- ねらい：入口・会計の列・案内・ロボットが重なるレジの上の通路を広げ、そこでの詰まりを減らす
- 変わったこと：レジの上の通路が1.5mから2.5mに、レジの左の待つ所が3.1mから4.1mになった
- 見込める効果：ロボット1台のときは、レジのまわりの詰まりの秒が約半分になった（1590秒 → 819秒・依頼95 の報告）。2台では解けない詰まりが1件新しく出たので、効いたとは言い切れない

### large_store.py と export_params.py の差分（commit 827aabb）

```diff
commit 827aabb77a778aac5e73053ff827373bb1f2ca53
Author: Claude <noreply@anthropic.com>
Date:   Fri Nov 6 09:02:49 2026 +0900

    ⑨のレジまわりを広げる（島と左の壁ぞいを上へ1.0m・レジと下の6人席を右へ1.0m）。⑧⑨の3〜5台を Unity の条件に足す書き出し
    
    2026-11-06 エイイチの指示。まだ公開しない（⑨の試算を回し直してから main へ）。
    店の形の版は large-99db3254b08b（⑧は卓・距離・止まる位置とも前と同じ）。
    
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01LevEXTmKEfxpw9GdNnUBBB

diff --git a/tools/serving_sim/export_params.py b/tools/serving_sim/export_params.py
index befc073..f679d73 100644
--- a/tools/serving_sim/export_params.py
+++ b/tools/serving_sim/export_params.py
@@ -114,6 +114,18 @@ for k in UNITY_STORES_LARGE:
         r = rows[h.key(c)]
         conds.append({"condition": c, "site_result": {m: r[m] for m in r if m not in c}})
 
+# 2026-11-06 エイイチと決めた：大型店はロボットを増やさないと良くならなさそうなので、3・4・5台も Unity で比べる。
+# 前の136条件（0〜135番）は並びも中身も変えず、後ろに足す。店ごとに 普通・真ん中の人数で 配膳だけ3・4・5台 → 配膳＋下げ膳3・4・5台
+# （⑧ 136〜141番・⑨ 142〜147番）。同じ日に⑨の店の形を直した（レジのまわり）ので、⑨の結果は results_large_p7_v3.json
+for k in UNITY_STORES_LARGE:
+    s = h.STORES[k]
+    for mode in ("serve", "bus"):
+        for robots in (3, 4, 5):
+            c = {"store": k, "staff": s["staff"][1], "robots": robots, "arrivals_per_h": s["arrivals"][1], "mode": mode,
+                 "trays": 3, "fragile_by": "any", "registers": UNITY_REGISTERS}
+            r = rows[h.key(c)]
+            conds.append({"condition": c, "site_result": {m: r[m] for m in r if m not in c}})
+
 D = {
     "meta": {
         "schema_version": "serving-robot-params/0.4",
diff --git a/tools/sim_layouts/large_store.py b/tools/sim_layouts/large_store.py
index 84a555c..ccf00c4 100644
--- a/tools/sim_layouts/large_store.py
+++ b/tools/sim_layouts/large_store.py
@@ -120,14 +120,17 @@ def build_b():
     rooms += [dict(label="待合", rect=[0.0, 0.9, 0.5, 3.6], kind="guest"),
               # 縦のカウンター2つ。客は入口の側（左）に立ち、入口へ向かって並ぶ（③と同じ置き方）
               # 2つ目は1つ目のすぐ上（レジの上の端と島の下の端の間を1.3m空け、左の客席へ下から入れるようにする）
-              *register([3.6, 0.4, 4.3, 2.9], [4.3, 0.4, 5.1, 5.4]),
-              dict(label="レジ", rect=[3.6, 2.9, 4.3, 5.4], kind="guest"),
+              # 2026-11-06 エイイチ：レジのまわりが狭すぎて、入口・会計の列・案内・ロボットが詰まる。
+              # レジと下の壁ぞいの6人席を右へ1.0m（レジの左の待つ所 3.1m → 4.1m）
+              *register([4.6, 0.4, 5.3, 2.9], [5.3, 0.4, 6.1, 5.4]),
+              dict(label="レジ", rect=[4.6, 2.9, 5.3, 5.4], kind="guest"),
               # ドリンクバーは1つにまとめて大きくし、上の壁ぎわのパントリーの近くに置く（2026-11-02 エイイチ）
               dict(label="ドリンクバー", rect=[17.6, D - 0.7, 24.0, D], kind="drink")]
-    t = strip(0.0, 7.2, "v", 4, walls=walls)                  # 左の壁ぞい（レジの上から）
+    # 左の壁ぞいと島は上へ1.0m（2026-11-06 エイイチ：レジの上の端から島まで 1.5m → 2.5m。上の通路は 4.05m → 3.05m）
+    t = strip(0.0, 8.2, "v", 4, walls=walls)                  # 左の壁ぞい（レジの上から）
     for x in (2.7, 6.75, 10.8, 14.85, 18.9):                  # ゆったりの島を5本（間の通路1.5m）
-        t += island(x, 6.9, "v", 5, walls=walls)
-    t += strip(5.6, 0.0, "h", 8, seats=6, walls=walls)        # 家族用の6人ボックス（下の壁ぞい）
+        t += island(x, 7.9, "v", 5, walls=walls)
+    t += strip(6.6, 0.0, "h", 8, seats=6, walls=walls)        # 家族用の6人ボックス（下の壁ぞい。レジと一緒に右へ1.0m）
     # 右下にあった6人ボックス3つは、トイレにした所から上の壁ぞいへ移した（2026-11-02 エイイチ）
     t += strip(0.0, D - 1.8, "h", 8, seats=6, walls=walls)    # 家族用の6人ボックス（上の壁ぞい。左の角から並べる。2026-11-02 エイイチ）
     return dict(name="⑨ 大型店・郊外のゆったり型（厨房が右・入口が左下の角）", style="ゆったり", outer=dict(w=W, d=D),
```

### README の差分（commit 2b6eabe）

````diff
commit 2b6eabe6daa2fedbd77242932ba3d3b703f6f102
Author: Claude <noreply@anthropic.com>
Date:   Fri Nov 6 09:28:26 2026 +0900

    ⑨のレジまわりを直した店の形で試算を計算し直し、⑧⑨のロボット3〜5台の条件（136〜147番）を Unity の条件の表に足す
    
    2026-11-06 エイイチの指示。試算は⑨の 3,066 条件だけ回し直して入れ替えた（ほかの店は変えていない）。
    Unity の params は、⑨の17条件の site_result と版が変わり、136〜147番が増えた（0〜135番の条件と並びは同じ）。
    
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01LevEXTmKEfxpw9GdNnUBBB

diff --git a/tools/sim_layouts/README.md b/tools/sim_layouts/README.md
index e42fde6..0db200b 100644
--- a/tools/sim_layouts/README.md
+++ b/tools/sim_layouts/README.md
@@ -58,6 +58,7 @@
 - 受け渡し口の位置は店の回し方で変わるので、⑧は候補（奥の左寄り・右寄り）も作れる（`python3 large_store.py left right`。厨房と客席は同じで、受け渡し口と待機場所だけが動く）。基本は奥の真ん中
 - 版は `large-` で始まる（large_store.py と famires_v3 の版から決まる）
 - トイレが2つ・レジが2つの店のための Unity の細かい形の規則（2026-11-02。`unity_export.py`）：トイレの入口の点は、そのトイレの部屋に接する入口から取る（前はどのトイレも1つ目の入口になっていた）。会計に立つ点と並ぶ点は1つ目のレジだけに置く（Unity はレジ1つの条件で回すため。2つ目のレジは部屋として建てるだけ）。トイレ・レジが1つの今の6店は結果が変わらないので、出力は作り直していない（版 9b8dae7ebf8c のまま）。大型店は作り直した（版 large-f4f8ad343efe → large-291ae2e65898。卓・距離・止まる位置は同じ）
+- 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
 - サイトと同じ描き方の平面図の画像は `large_plan_images.py`（試算のページの planSvg・bigPlanSvg をそのまま使う）
 
 ```
````

### ⑨の試算を回し直したスクリプト（run_p7.py）

試算は、公開している店の形のデータを読んで受け渡し口から卓までの距離を取ります。そのため、店の形を書き出してから回す必要がありました。最初は書き出す前に回し始めてしまい、止めて回し直しています。⑨の3,066条件を、クラウドの作業環境の2つの CPU で約30分かけて回しました。

```python
import json, sys, os
sys.path.insert(0, "/home/claude/p2m-site/tools/serving_sim")
os.chdir("/home/claude/p2m-site/tools/serving_sim")
from multiprocessing import Pool
import haizen_sim as h
out = sys.argv[1]
cs = [c for c in h.conditions() if c["store"] == "large_p7"]
rows = []
with Pool() as p:
    for i, r in enumerate(p.imap_unordered(h.run_condition, cs, chunksize=4), 1):
        rows.append(r)
        if i % 300 == 0: print(i, len(cs), flush=True)
order = {h.key(c): i for i, c in enumerate(cs)}
rows.sort(key=lambda r: order[h.key(r)])
json.dump({"common": h.COMMON, "reps": h.REPS, "rows": rows}, open(out, "w", encoding="utf-8"), ensure_ascii=False)
print("done", len(rows))
```

### ⑨の試算の、直す前と直した後（Unity が読む17条件）

レジまわりの広さは試算に入っていません。試算で変わるのは、卓までの距離だけです。ロボット0台・普通の混み具合では、入店待ちが10.16分から12.40分に延びました。卓までの最短の距離が3.3mから4.0mに延びた分が、そのまま効いています。

```text
番号	条件（スタッフ・ロボット・1時間の来客・使い方）	入店待ち（分）直す前→直した後	料理の待ち（分）	歩く距離（km/人）
105	スタッフ6・0台・70組・serve	10.16→12.40	0.83→0.84	5.22→5.47
106	スタッフ6・1台・70組・serve	9.72→9.28	2.56→2.57	4.42→4.43
107	スタッフ6・2台・70組・serve	7.47→7.77	2.16→2.17	3.53→3.63
108	スタッフ6・0台・52組・serve	0.97→1.05	0.67→0.73	3.87→3.97
109	スタッフ6・1台・52組・serve	0.69→0.65	2.45→2.45	3.22→3.18
110	スタッフ6・2台・52組・serve	0.49→0.44	2.06→2.02	2.63→2.60
111	スタッフ6・0台・88組・serve	28.78→29.47	0.68→0.68	6.63→6.74
112	スタッフ6・1台・88組・serve	27.07→26.77	2.45→2.47	5.35→5.39
113	スタッフ6・2台・88組・serve	24.94→26.43	2.06→2.06	4.34→4.47
114	スタッフ5・0台・70組・serve	19.93→19.12	1.21→1.20	6.32→6.36
115	スタッフ5・1台・70組・serve	12.27→13.35	2.85→2.87	5.09→5.21
116	スタッフ5・2台・70組・serve	8.42→9.22	2.33→2.33	4.16→4.27
117	スタッフ7・0台・70組・serve	7.10→7.42	0.52→0.54	4.48→4.56
118	スタッフ7・1台・70組・serve	8.84→7.95	2.39→2.40	3.80→3.76
119	スタッフ7・2台・70組・serve	7.16→7.21	2.08→2.11	3.02→3.14
134	スタッフ6・1台・70組・bus	9.74→9.29	2.57→2.58	4.27→4.27
135	スタッフ6・2台・70組・bus	7.55→7.52	2.18→2.20	3.18→3.29

番号	店	使い方	台数	入店待ち	料理の待ち	歩く距離	ロボットが運んだ割合
136	⑧	serve	3	6.50	1.25	2.62	0.98
137	⑧	serve	4	7.35	0.86	2.62	1.00
138	⑧	serve	5	8.24	0.69	2.66	1.00
139	⑧	bus	3	7.20	1.31	2.23	0.98
140	⑧	bus	4	7.18	0.93	2.11	1.00
141	⑧	bus	5	9.24	0.74	2.08	1.00
142	⑨	serve	3	7.22	1.59	3.26	0.96
143	⑨	serve	4	8.23	1.13	3.21	1.00
144	⑨	serve	5	8.36	0.89	3.24	1.00
145	⑨	bus	3	7.53	1.68	2.83	0.95
146	⑨	bus	4	6.98	1.20	2.56	1.00
147	⑨	bus	5	7.12	0.96	2.48	1.00
```


## 作業ログ ― 大型店のロボット3〜5台を Unity の条件に足した

Unity は、サイトの条件の表（public/sim/serving-robot-params.json）にある条件だけを回します。大型店はロボット2台までしかなかったので、⑧⑨の3・4・5台を、配膳だけと配膳＋下げ膳で12条件（136〜147番）足しました。前の0〜135番は、並びも条件も変えていません。

全部の条件の結果を書き出す export_params.py は、iCloud に置いた全店の結果（約20MB）を読む作りです。ここではクラウドの作業環境で直す所だけを入れ替えるスクリプトを書き、⑧の3〜5台の6条件はその場で試算を回しました。⑧の条件133を回し直すと、表にある値と1つも違わなかったので、同じ種なら試算も同じ値になることを確かめています。

### patch_params.py（⑨の17条件の入れ替えと、136〜147番の追加）

```python
"""公開中の params に、⑨の新しい site_result と ⑧⑨の3〜5台（136〜147番）を入れる（2026-11-06）。
export_params.py は全条件の results.json（iCloud）を読む作りなので、ここでは公開中の params を元に、
直す所だけを入れ替える。入れた後、export_params.py の決め方（条件の作り方）と同じ並びかを確かめる。"""
import json, sys
sys.path.insert(0, "/home/claude/p2m-site/tools/serving_sim")
import os; os.chdir("/home/claude/p2m-site/tools/serving_sim")
import haizen_sim as h

S = "/tmp/claude-0/-home-claude/ec99cb2c-b9b2-5ac1-878e-1c9a82422bb1/scratchpad/"
OUT = "/home/claude/p2m-site/public/sim/serving-robot-params.json"
P = json.load(open(OUT, encoding="utf-8"))
rows = {}
for f in ("results_large_p7_v3.json", "results_p6_r345.json"):
    R = json.load(open(S + f, encoding="utf-8"))
    assert R["common"] == json.loads(json.dumps(h.COMMON)) and R["reps"] == h.REPS
    rows.update({h.key(r): r for r in R["rows"]})

conds = P["unity_conditions"]
assert len(conds) == 136
changed = 0
for c in conds:
    if c["condition"]["store"] == "large_p7":
        r = rows[h.key(c["condition"])]
        new = {m: r[m] for m in r if m not in c["condition"]}
        assert set(new) == set(c["site_result"])
        c["site_result"] = new
        changed += 1
for k in ("large_p6", "large_p7"):
    s = h.STORES[k]
    for mode in ("serve", "bus"):
        for robots in (3, 4, 5):
            c = {"store": k, "staff": s["staff"][1], "robots": robots, "arrivals_per_h": s["arrivals"][1], "mode": mode,
                 "trays": 3, "fragile_by": "any", "registers": 1}
            r = rows[h.key(c)]
            conds.append({"condition": c, "site_result": {m: r[m] for m in r if m not in c}})
gen = {g["generation"] for g in json.load(open(h.LAYOUT_DIR_LARGE + "/summary.json", encoding="utf-8"))}
assert len(gen) == 1
P["meta"]["layout_generation_large"] = gen.pop()
P["stores"]["large_p7"] = dict(h.STORES["large_p7"])
json.dump(P, open(OUT, "w", encoding="utf-8"), ensure_ascii=False, indent=1)
print("large_p7 site_result", changed, "/ conditions", len(conds), "/ gen", P["meta"]["layout_generation_large"])
for i, c in enumerate(conds[136:], 136):
    print(i, c["condition"]["store"], c["condition"]["mode"], c["condition"]["robots"],
          {m: round(c["site_result"][m], 2) for m in ("entry_wait_mean", "dish_wait_mean", "walk_km_per_staff", "robot_share")})
```

試算でも、⑧は3台の6.50分がいちばん短く、4台7.35分・5台8.24分と延びます。4台からは、ロボットが運んだ皿の割合が1.00（料理はすべてロボット）になります。試算の中でなぜ延びるのかは、まだ分けて調べていません。


## 作業ログ ― 依頼95：人が先によける動きを入れ、大型店を0〜5台で回した

依頼95 は、Claude Code に Unity の作業を頼む依頼箱に、9:29 に入りました。人が先によける動きは、切り替えで入れています。前から来るロボットに4m手前で気づき、通路の幅が1.5m以上なら、止まらずに通路の端へ寄って歩き続けます。狭い通路では今までどおりです。

### 依頼95 の依頼文

```text
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 900
---
# 依頼95：人が広い通路でロボットを先によける動きを入れ、⑨のレジまわりを直した店で建て直し、大型店⑧⑨をロボット0〜5台で比べる

エイイチと決めたこと（2026-11-06）：
- 大型店はロボットを増やさないと良くならなさそう。3台・4台・5台まで比べたい
- ⑨はレジのまわりが狭すぎる。サイトの店の形を直した（島と左の壁ぞいの席を上へ1.0m：レジの上の端から島まで 1.5m → 2.5m。レジと下の壁ぞいの6人席を右へ1.0m：レジの左の待つ所 3.1m → 4.1m）。卓の数・席は同じ（70卓・312席）。店の形の版は large-99db3254b08b（⑧は版の名前だけ変わり、卓・距離・止まる位置は同じ）
- スタッフやお客さんがロボットに突っ込んでいく描画が多すぎる。実際の人はこんな動きをしない。広い通路では、前から来るロボットに4m手前で気づき、先に通路の端へ寄る動きにする

サイトの条件の表（p2m-site の public/sim/serving-robot-params.json）は、⑨の条件の site_result を新しい店の形で計算し直し、⑧⑨のロボット3・4・5台の条件 136〜147番を足した。0〜135番は並びも条件も変えていない（中身が変わったのは⑨の large_p7 の site_result と、meta の版だけ）。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。時刻で止めず、全部終わるまで続ける。**

## 始める前に確かめること（違えば回さずに報告して終わる）
1. 作業場所・Builds/headless が cs:79、保留 0。Unity エディタ・night_runner／rec_runner が動いていない。KIOXIA がマウント済み、unity_ledger_v1.lock がない。台帳を archive/unity_ledger_v1_pre_large95_20261106/ に退避（行数と md5 を報告に）
2. サイトの params を Unity に写し直す（依頼72・94 と同じやり方）。前の写しと比べ、消えた条件が 0、0〜135番の condition が1字も同じ、変わった site_result は large_p7 の条件だけ、136〜147番だけ増えたことを確かめる
3. ⑧⑨の店の形（Assets/ServiceSim/Store/Layouts/large/）を、サイトの public/sim/layouts/large/ から写し直す（版 large-99db3254b08b）。⑧は版の名前以外が前と同じことを確かめる

## 1. 人が広い通路でロボットを先によける動き（切り替えで入れる。この依頼では入）
- 対象：歩いているスタッフとお客さん（座っている人・列に並んで立っている人・仕事中に立ち止まっている人は動かさない）
- 気づく：ロボット（動いている台）が、自分の進む向きの前 4m 以内にいて、近づいてくる（向かい合う、または自分の道を横切る）とき
- 広い通路（その場所の通路の幅が 1.5m 以上）では：止まらずに、ロボットの道から離れる側の通路の端へ寄って歩き続ける。ロボットとの横の間はできるだけ 0.5m 以上あける（通路の幅で足りなければ、取れるだけ）。ロボットとすれ違ったら、元の道に戻る。速さは少し落としてよいが止まらない
- 狭い通路（1.5m 未満）では今のまま（店員優先のよけ方・今の客の動き）
- 瞬間移動はさせない。同じ条件・同じ種なら同じ結果になること（向きの判定・寄る側の決め方に乱数を使うなら、その回の種から決める）
- ロボットの動き・速さ・前のセンサー（0.6m）・すれ違いの決まりは変えない
- 人の動きの部品（依頼で切り出しを進めている人の部品）があれば、その中に入れる。値（4m・1.5m・0.5m）は Unity だけの値として、部品の設定に1か所にまとめる
- 数えるもの：人がロボットに近づきすぎた回数（中心どうしの距離が 0.5m 未満になった回数。人の種類ごと）と、先によけた回数。summary.json と回の CSV に足す
- check-in して cs と実行ファイルを作り直す（保留 0）

## 2. 確かめ（通らなければ 3 は回さない）
- 切のとき、⑦ fam_p5・2台・種7 の serve が base73 と記録が1行も違わないこと（よける動きを入れても、切なら今までと同じ）
- 入のとき、⑧2台 serve 種0・⑨2台 serve 種0 を2回ずつ回して記録が1行も違わないこと
- 入のとき、瞬間移動 0

## 3. 回す（画面なし・同時4本・よける動き 入）
- 大型店 serve：⑧ 条件 90・91・92・136・137・138（0〜5台）、⑨ 条件 105・106・107・142・143・144（0〜5台）× 種0〜9 ＝ 120 回（label large95）
- 大型店 bus：⑧ 条件 132・133・139・140・141（1〜5台）、⑨ 条件 134・135・145・146・147（1〜5台）× 種0〜9 ＝ 100 回（label large95bus）
- 標準の店で、よける動きの効き目を見る：③ fam_p1・⑦ fam_p5 の2台 serve（条件の番号は base73 と同じ）× 種0〜9 ＝ 20 回（label yield95）
- 1回の上限は 90 分。止まっても回し直さない

## 4. 表にすること
- 依頼94 の agg94 と同じ列の表（⑧⑨ × serve 0〜5台・bus 1〜5台）。試算と向きが合うかは 0→1→2→3→4→5台 と serve→bus の両方で
- 比べる表（どれも10種の中央値）：
  - ⑧：large94（よける動きなし）と large95（あり）の 0・1・2台。⑧は店の形が同じなので、差はよける動きの分
  - ⑨：large94 と large95 の 0・1・2台。差はレジまわりの直しとよける動きを合わせた分
  - ③⑦：base73 と yield95。差はよける動きの分
  - 列：入店待ち・料理の待ち・turn・歩いた距離・助けの回数・詰まりの回数と秒・解けずに残った詰まり・人がロボットに近づきすぎた回数（新しい列なので large94・base73 側は「なし」）
- 詰まりの多い場所の上位5つ（⑧⑨・台数ごとに。⑨はレジのまわり（x 0〜7m・y 0〜8m）の詰まりを前と比べて別に書く）
- ロボットを増やして入店待ちが下がる台数があるか、下がらないなら何で詰まっているか（場所と理由）

## 5. 撮る（2 が通れば、3 の結果に関わらず撮る）
- ⑧・⑨ のロボット2台の serve を種7で（依頼94 と同じ種。前の動画と比べるため）。撮り方は依頼94 と同じ（rec_runner・wide_l30 と wide_r30・3840×2160・0.5 秒ごと・frames.csv・timeline.csv）。1回の上限 120 分・同時2本
- 置き場所：/Volumes/KIOXIA/r2r2r-data/service_sim/unity/rec_large_20261106/{large_p6|large_p7}/serve/
- 依頼87 と同じに、問題に寄る動画（focus_v1/）とパネル付きの通しの動画（panel_v1/）を作る。題「⑧ ロボット2台」「⑨ ロボット2台」。題がパネルで切れないことを1コマ見て確かめる
- 人がロボットへ突っ込んでいく場面が前の動画（rec_large_20261105）より減ったかを、近づきすぎた回数と、同じ時刻のコマを並べた画像（前・後を左右に3組）で示す。画像は rec_large_20261106/compare_yield/ に

## 止める線
瞬間移動が1回でも出たとき、または同じ種の2回が違ったとき、または切のときの ⑦ が base73 と違ったとき。止めたら報告に書き、ほかの項目は続ける（ただし確かめが通らなかった店は撮らない）。

## 報告
claude_code_reports/20261106_large95.txt に：始める前の確かめ（params・店の形・cs と build_id）、よける動きの作り（どのファイルのどこ・値の置き場所・切り替えの名前）、2 の確かめ、4 の表と上位5つ、5 で撮った動画の名前・長さ・比べた画像、台帳の行数の変化と md5。
**報告の最後の1行は必ず次のどれか**：「判定：合格」／「判定：止めた（決めてほしいことあり）」／「判定：失敗」
```

### 依頼95 の報告

```text
# 結果：20261106_95_人が先によける動きと⑨のレジを直し大型店を0〜5台で比べる

- 状態：完了
- 始めた時刻：2026-11-06 09:29
- 終わった時刻：2026-11-06 16:19（409分）
- 作業フォルダ：/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき：作業フォルダで `claude --resume b94ec922-22e4-4498-aae4-a8d1c34ad104`

## Claude Code の報告

**やったこと**
- 始める前の確かめは、どれも合っていました。
  - 作業場所は cs:79、保留は 0。台帳は 3057 行（md5 03e5ee0e…）で、そのまま退避しました。
  - サイトの条件の表を写し直しました。消えた条件は 0、0〜135番の condition は1字も同じ、site_result が変わったのは ⑨ の条件だけ、増えたのは 136〜147番だけです。
  - 依頼文にない違いが1つありました。⑨ の店の卓までの距離（dist_m）も変わっていました。Unity は回し方に使っていないので、そのまま写しました。
  - ⑧⑨ の店の形を large-99db3254b08b に写し直しました。⑧ は版の名前だけが違い、⑨ は 70卓・312席のままです。
- 人が先によける動きを、今ある人の部品 PersonRobotYield.cs に入れました。
  - 切り替えは -ssPeopleYield で、入の回はフォルダ名の末尾に _pyield が付きます。
  - 値は PeopleSpec の1か所にまとめました。
  - 近づきすぎ（中心どうし 0.5m 未満）と先によけた回数は、summary.json の people_yield と yield_ahead.csv に、入の回だけ書きます。
- 確かめ（2章）は、cs:81 で3つとも通りました。
  - 切の ⑦ は base73 と一致しました。
  - ⑧⑨ 2台・種0 は、2回とも記録が一致しました。
  - 瞬間移動は 0 です。
  - 最初の cs:80 では、⑦ の conditions.json に新しい値が6つ増えていた分だけ違いました。動きの記録はすべて一致していましたが、切の回には新しい値を出さないように直して、回し直しました。
- 3章の 240 回と撮影の 2 回を回し、表・動画・比べた画像を作りました。

**結果**
- 240 回とも最後まで回りました。瞬間移動 0・1コマの跳び 0 で、止める線には当たりませんでした。
- 全員が帰らなかった回が1回あります（⑨ 4台 bus 種3）。
- ロボットを増やしても、入店待ちは下がりませんでした（分・10種の中央値）。

| 台数 | ⑧ serve | ⑨ serve | ⑧ bus | ⑨ bus |
|---|---|---|---|---|
| 0台 | 11.5 | 15.3 | - | - |
| 1台 | 11.5 | 13.4 | 11.5 | 13.4 |
| 2台 | 11.7 | 12.9 | 13.0 | 12.4 |
| 3台 | 11.7 | 12.6 | 11.4 | 14.5 |
| 4台 | 13.2 | 16.4 | 18.2 | 19.7 |
| 5台 | 17.2 | 17.0 | 23.7 | 29.1 |

- 下がらない理由は、詰まりが2つの場所に集まっていることだと見ています。
  - ⑧ は受け渡し口から待機場所のあたり（x 18〜23・y 10〜11）で、皿を返すスタッフの片付けが止まります。
  - ⑨ は待機場所から持ち場2のあたり（x 21〜25・y 5〜8）で、スタッフの仕事とロボットの打ち切りが重なります。
  - どちらも台数が増えるほど長くなります。この理由は詰まりの場所と仕事の種類から読んだもので、確かめてはいません。
- 試算と向きが合ったのは、80 本のうち 48 本です。
- よける動きの効き目は小さく、標準の店ではむしろ悪くなりました。
  - ③⑦ は、入店待ちが 1.0〜1.2 分長くなりました。③ は turn も 3.2 分長くなりました。
  - 外周 10cm 以内の近づきは、③ で +11、⑦ で +10 でした。
  - ⑧ 2台は +21、⑨ 2台は −16 で、はっきり減ったとは言えません。
- 撮った2本（種7）では、近づき（外周 10cm 以内）が少し減りました。

| 店 | 前（よける動きなし） | 後（あり） |
|---|---|---|
| ⑧ | 367 | 346（−6%） |
| ⑨ | 345 | 328（−5%） |

- ⑨ のレジのまわりは、1台では詰まりの秒が約半分になりました（1590 → 819 秒）。2台では、種9 で解けずに残る詰まりが1件新しく出て、14315 秒になりました。
- 撮影は2回とも最後まで回りました（106.7 分・109.8 分）。
  - 動画は 20 本です。focus_v1 のつないだ動画が2本（66.5 秒・63.7 秒）、panel_v1 が 18 本で、通しの動画は ⑧ 75.3 秒・⑨ 75.0 秒です。
  - パネル付きの 18 本は 1920×1080、つないだ寄りの2本は 1280×720 です。
  - 題「⑧ ロボット2台」「⑨ ロボット2台」はパネルで切れていないことを、1コマずつ見て確かめました。
  - 比べた画像は、前・後を左右に並べた組が店ごとに3つと、3組を縦に並べたものを作りました。⑧ では前の動画で人がロボットに重なっている場面が、後では見えません。⑨ は前のコマでも離れて見える組があり、画像だけでは減ったとは言えません。
- 台帳は 3057 行から 3309 行になりました。増えたのは追記 252 行だけで、先頭の 3057 行は前と同じ md5 です。終わったあとの md5 は f3c3c034…です。
- 途中で、KIOXIA に書いたスクリプト1つ（compare_yield.py）の中身が壊れていました。名前を変えて残し、書き直しました。今日書いたほかの 4832 ファイルに壊れたものはありませんでした。

**変えたファイル**
- cs:80
  - PersonRobotYield.cs・PeopleSpec.cs・PeopleSpec.asset
  - ServiceOps.cs・ExperimentRunner.cs・TripLogger.cs・HeadlessRun.cs
  - serving-robot-params.json
  - Layouts/large/ の5つ
  - tools の night_runner.py・make_queue.py・judge_night.py
- cs:81
  - ExperimentRunner.cs・TripLogger.cs・PeopleSpec.cs
- 実行ファイルは Builds/headless（cs81_20261106_0947）を作り直し、撮影用に Builds/rec23_large95 を足しました。
- 記録は KIOXIA の night/20261106_large95/ と rec_large_20261106/ に置きました。
- 報告は claude_code_reports/20261106_large95.txt です。
- ロボットの動きと、今までの台帳の行は変えていません。

**決めてほしいこと**
1. 人が先によける動きを標準（入）にするか。
   - 入れるなら、私が置いた値（横へ寄る速さ 0.6m/秒・通路の幅を測る距離 2.0m）を含めて、値をどうするか。
   - ③⑦ では待ちが長くなり、近づきも減りませんでした。近づきの多くは、通路でのすれ違いではなく、受け渡し口や待機場所のそばで仕事のために台に寄る場面です。
2. 大型店で台数を増やしても待ちが下がらない点をどうするか。待機場所の数や置き場所を変えるか、受け渡し口のまわりの店の形を直すか、台数の上限を決めるか。
3. 次の2つを直すか、記録だけにするか（今回は直していません）。
   - ⑨ 4台 bus 種3 で、全員が帰らなかったこと。
   - ⑨ 種9 で、レジのまわり（5.5, 7.2）に解けずに残る詰まりが出たこと。
4. KIOXIA でファイル1つが壊れていたので、ディスクを点検するか。

判定：止めた（決めてほしいことあり）
```

### 大型店の入店待ち（10種の中央値・分）

| 台数 | ⑧ 配膳だけ | ⑨ 配膳だけ | ⑧ 配膳＋下げ膳 | ⑨ 配膳＋下げ膳 |
|---|---|---|---|---|
| 0台 | 11.5 | 15.3 | - | - |
| 1台 | 11.5 | 13.4 | 11.5 | 13.4 |
| 2台 | 11.7 | 12.9 | 13.0 | 12.4 |
| 3台 | 11.7 | 12.6 | 11.4 | 14.5 |
| 4台 | 13.2 | 16.4 | 18.2 | 19.7 |
| 5台 | 17.2 | 17.0 | 23.7 | 29.1 |

前の回（人の先よけなし・⑨は直す前の店）では、2台の配膳だけが⑧11.7分・⑨12.3分でした。⑧は店の形を変えていないので、先よけだけの効き目が切り分けられていて、入店待ちはほぼ変わっていません。⑨はレジの直しと先よけを同時に入れたので、どちらが効いたのかは分けられません。2つを同じ回で変えたのは、組み方の失敗です。

### 人が先によける動きは、見た目は変えたが数字は悪くした

【画像】LOG452_05_p6_yield_compare.png ⑧ロボット2台の同じ時刻を、人の先よけの前（左）と後（右）で3組並べたもの。上の2組はキッチンの左の角、下の1組は待機場所の右端の角

| 店（ロボット2台・配膳だけ） | 先よけなし | 先よけあり |
|---|---|---|
| ③ 効率重視・入口が角 | 2.7分 | 3.9分 |
| ⑦ ③の通路を80cmにした店 | 3.9分 | 4.9分 |

撮った回では、ロボットの外周から10cm以内まで人が近づいた数は、⑧で367から346、⑨で345から328に減りました。どちらも5〜6%です。Claude Code の報告によると、近づきの多くは通路のすれ違いではなく、受け渡し口や待機場所のそばで、スタッフが仕事のために台に寄る場面でした。標準の店③⑦では、入店待ちが1分ほど延びています。人が端へ寄って速さを落とす分だけ、スタッフの仕事が遅れたとみています（確かめてはいません）。

### 先よけの前と後を比べた記録（⑧・⑨）

```text
組1：店の時刻 1438.1 秒（0時23分58秒）・場所 (11.3, 11.0)・前の近づき スタッフ:Staff06・ロボット1号機・外周の空き 6.6172 cm／コマ 前 2876（1438.0 秒）・後 2876（1438.0 秒）→ large_p6_pair1_t01438.png
組2：店の時刻 2693.1 秒（0時44分53秒）・場所 (10.7, 11.5)・前の近づき スタッフ:Staff04・ロボット2号機・外周の空き 6.3837 cm／コマ 前 5386（2693.0 秒）・後 5386（2693.0 秒）→ large_p6_pair2_t02693.png
組3：店の時刻 8768.3 秒（2時26分08秒）・場所 (24.0, 10.3)・前の近づき 客:Guest(Clone)・ロボット2号機・外周の空き 1.675 cm／コマ 前 17537（8768.5 秒）・後 17537（8768.5 秒）→ large_p6_pair3_t08768.png
近づきの数（撮った回・種7）：外周どうし 0.1 m 以内（contacts.csv）前 367（スタッフ 269・客 98）→ 後 346（スタッフ 264・客 82）
後の中心どうし 0.5 m 未満：スタッフ 203・客 61（前は数えていない）／先によけた：スタッフ 402・客 200
候補（ロボットが動いていて・決まった場所でない前の近づき）52 件から選んだ
```

```text
組1：店の時刻 4217.0 秒（1時10分17秒）・場所 (10.2, 11.2)・前の近づき 客:Guest(Clone)・ロボット1号機・外周の空き 2.578 cm／コマ 前 8434（4217.0 秒）・後 8434（4217.0 秒）→ large_p7_pair1_t04216.png
組2：店の時刻 7136.9 秒（1時58分57秒）・場所 (10.3, 12.7)・前の近づき 客:Guest(Clone)・ロボット1号機・外周の空き 2.9356 cm／コマ 前 14274（7137.0 秒）・後 14274（7137.0 秒）→ large_p7_pair2_t07136.png
組3：店の時刻 8778.1 秒（2時26分18秒）・場所 (11.3, 6.5)・前の近づき スタッフ:Staff06・ロボット1号機・外周の空き 6.6551 cm／コマ 前 17556（8778.0 秒）・後 17556（8778.0 秒）→ large_p7_pair3_t08778.png
近づきの数（撮った回・種7）：外周どうし 0.1 m 以内（contacts.csv）前 345（スタッフ 276・客 69）→ 後 328（スタッフ 256・客 72）
後の中心どうし 0.5 m 未満：スタッフ 224・客 59（前は数えていない）／先によけた：スタッフ 593・客 138
候補（ロボットが動いていて・決まった場所でない前の近づき）93 件から選んだ
```


## 作業ログ ― 動画で見えた、2台の店が満席で待合からあふれる場面

数字の表だけでは、なぜ入店待ちが縮まないのか分かりませんでした。依頼95 で撮った⑧⑨の2台の動画を見ると、待ちが長い時間帯は、どちらの店もほぼ満席でした。

【画像】LOG452_02_p7_full_seats.png ⑨ロボット2台の開店から2時間28分。右のパネルで、席にいる組が69（70卓中）、片付けを待つ卓が0、入口で待つ組が7

⑨は、空いた卓はすぐ片付いていて、ただ席が足りません。この時間帯の入店待ちは、ロボットの台数では縮みません。

【画像】LOG452_03_p6_waiting_crowd.png ⑧ロボット2台の開店から1時間47分。入口で待つ組が22で、待合からあふれたお客さんの列の前でロボットが止まっている（1時間46分〜1時間57分に合計457秒）

【動画】LOG452_11_p6_r2_focus.mp4 ⑧ロボット2台の問題に寄る動画（依頼95 で撮った種7）。引きの絵から、ロボットが長く止まった所に寄る。寄りは店の時刻の7.5倍。1つ目の場面が、待合からあふれたお客さんの前で止まる所

⑧の2台でロボットがいちばん長く止まったのは、入口の右の待合の前でした。待合のベンチの右側は、右下の6人席6卓へ行くロボットの道の入口で、幅は0.9mしかありません。待つ組が少ないうちは目立ちませんが、満席で20組を超えると、待合からはみ出したお客さんが道をふさぎます。人の先よけは歩いている人にだけ入れたので、立って待っている人は動きません。ロボットは前0.6mに人がいると止まり、3秒たつと回り込む道を探しますが、ほかの道がないので待ち続けます。

【画像】LOG452_04_p6_waiting_side.png ⑧の入口と待合のまわり。赤の枠が待つ人の立つ所（ベンチと6人席のあいだの幅0.9m）、青の矢印が右下の6人席へ行くロボットの道。緑の枠は、待合の前を入口の側にする案

最初は、待合の前を入口の側に変える直しを入れかけました。ただ、これは Unity の不具合として直すものではありません。満席になって待つお客さんが入口からあふれ、ロボットの通り道をふさぐのは、実物の店でも起こりうる場面です。直して消すのではなく、原因の候補の1つとして残し、待合の位置を変えた回と比べる対象にしました。


## 作業ログ ― 依頼96：5台を撮り、2台と左右に並べた

2台の動画では、4台・5台で延びる理由は見えません。依頼96 で、⑧⑨の5台を同じ種7で撮り、依頼95 で撮った2台と左右に並べました。同じ開店からの時刻をそろえて流し、入口で待つ組の差がいちばん開いていく30分を長めに見せています。

### 依頼96 の依頼文

```text
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 360
---
# 依頼96：大型店⑧⑨のロボット5台を撮り、2台と左右に並べた動画を作る

エイイチと話したこと（2026-11-06）：依頼95 で、大型店はロボットを4台・5台に増やすと入店待ちが延びた（配膳だけ ⑧ 11.7→17.2分、⑨ 12.9→17.0分）。数字だけでは、なぜ延びるのか全然わからない。動画で見たい。
Unity の作り・値は変えない（cs:81 のまま。人が先によける動きは依頼95 の撮影と同じく入）。撮って並べるだけ。

## 始める前に確かめること（違えば撮らずに報告して終わる）
- 作業場所・Builds/rec23_large95 が cs:81、保留 0。night_runner／rec_runner が動いていない。KIOXIA がマウント済み、unity_ledger_v1.lock がない

## 1. 撮る
- ⑧ 条件 138（5台 serve）・⑨ 条件 144（5台 serve）× 種7（依頼95 の2台と同じ種・同じ人の部品の入切）
- 撮り方は依頼95 と同じ（rec_runner・wide_l30 と wide_r30・3840×2160・0.5 秒ごと・frames.csv・timeline.csv）。1回の上限 120 分・同時2本
- 置き場所：/Volumes/KIOXIA/r2r2r-data/service_sim/unity/rec_large_20261106/{large_p6|large_p7}/serve_r5/
- 依頼95 と同じに、問題に寄る動画（focus_v1/）とパネル付きの動画（panel_v1/）を作る。題「⑧ ロボット5台」「⑨ ロボット5台」

## 2. 2台と5台を左右に並べる（ここがいちばん大事）
- 店ごとに1本：左が2台（rec_large_20261106/{店}/serve/ の wide_l30）、右が5台。同じ開店からの時刻をそろえて同時に流す。どちらにもパネル（スタッフ・ロボットがしていること、入口で待つ組・席にいる組・片付けを待つ卓）を付ける。題は「⑧ ロボット2台 と 5台」
- 長さは 90 秒前後。速さは2本で同じ。入口で待つ組が2台と5台でいちばん開いていく時間帯を長めに見せる（その時間帯は timeline.csv から選び、報告に書く）
- 置き場所：rec_large_20261106/{店}/compare_r2_r5/
- 1コマ見て、左右の題とパネルが切れていないことを確かめる

## 3. 2台と5台の時刻ごとの数
- timeline.csv から、10分ごとに次を2台・5台で並べた表とグラフ（png）を作る：入口で待つ組、席にいる組、片付けを待つ卓、スタッフ6人の仕事ごとの人数（案内・料理・呼び出し・会計・片付け・ロボットの助け・手すき）、ロボットの状態ごとの台数、ロボットの止まり（秒）
- 置き場所：rec_large_20261106/{店}/compare_r2_r5/
- 表から読める「5台で延びる理由」を、場所と仕事の名前で短く書く（推測なら推測と書く）

## 止める線
瞬間移動が1回でも出たとき。止めたらその店は並べずに報告する。

## 報告
claude_code_reports/20261106_large96.txt に：撮った回（実時間・全員帰ったか・瞬間移動・入店待ち）、動画の名前・長さ・見せた時間帯、2 の表から読めること、台帳の行数の変化と md5。
**報告の最後の1行は必ず次のどれか**：「判定：合格」／「判定：止めた（決めてほしいことあり）」／「判定：失敗」
```

### 依頼96 の報告

```text
# 結果：20261106_96_大型店の5台を撮り2台と並べる

- 状態：完了
- 始めた時刻：2026-11-06 16:23
- 終わった時刻：2026-11-06 18:42（139分）
- 作業フォルダ：/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき：作業フォルダで `claude --resume 3d803b51-71bb-4e3c-bb33-76847b48d542`

## Claude Code の報告

**やったこと**
- 始める前の確かめはどれも依頼どおりでした（作業場所 cs:81・保留 0、Builds/rec23_large95 は cs:81、night_runner・rec_runner は動いていない、KIOXIA はマウント済み、鍵ファイルなし）。
- ⑧ 条件138・⑨ 条件144（どちらも5台 serve・種7、人が先によける動き 入）を、依頼95 と同じ撮り方で撮りました。
  - 16:25 に一度始めましたが、このコマンドの待てる時間の上限（2時間）と撮る上限（120分）が重なり、最後に録画が止められるおそれがありました。
  - そこで30秒で止め、切り離した形で撮り直しました。止めた分は台帳に入っていません。途中のフォルダは名前を変えて残しています。
- 5台の問題に寄る動画（focus_v1）とパネル付きの動画（panel_v1）、2台と5台を左右に並べた動画、10分ごとの表とグラフを作りました。
- 元のパネルの道具ではロボットの4台目・5台目が切れるため、元は変えずに写しを作り、その写しでロボット欄を直しました。
  - 5台まで欄に収まるようにしました。
  - 各ロボットの仕事（空き・卓へ運ぶ・卓で渡す・口へ戻る・立ち往生）が出るようにしました。

**結果**
- 撮った回はどちらも瞬間移動 0・1コマの跳び 0 で、止める線には当たっていません。
  - ⑧5台：最後まで回り（実時間 106.5分）、全員が帰りました。入店待ちは 18.62分です（2台は 11.70分）。
  - ⑨5台：1回の上限 120分に当たって止まりました。店の時刻 283.6分の時点で、138組のうち 129組が帰っていました。入店待ちは帰った組までで 18.90分です（2台は 11.91分）。
- 並べた動画（左＝2台、右＝5台、3840×1200）
  - ⑧：91.3秒です。差が開いていく 1時間55分〜2時間25分を 36.9秒かけて見せました（入口で待つ組の差が 4.9組から 15.5組に）。
  - ⑨：91.1秒です。55分〜1時間25分を 36.9秒かけて見せました（差が 0.0組から 8.4組に）。⑨5台の録画が 4時間44分で終わるので、そこから先は右を最後のコマのまま止めています。
  - 遅い所の真ん中のコマを目で見て、両店とも上の題と左右のパネルが切れていないことを確かめました。
- 表から読める「5台で延びる理由」（数は記録どおり、つながりは推測です）
  - ⑧：受け渡し口の前からロボットの待機場所のあたりで、ロボットどうしが止まり合っています。
    - その30分のロボットの止まりは 937秒から 2,003秒に増えました。
    - 片付けのスタッフがそこであきらめた回数は 8回から 34回に増えました。
    - その結果、片付けを待つ卓が 2.9から 9.9に増え、席が空かずに入口の待ちが延びたとみられます。
  - ⑨：受け渡し口の前（スタッフの持ち場1・2）で、ロボットどうしが止まり合っています。
    - ロボットの止まりは 481秒から 4,948秒に増えました。
    - 料理を運ぶスタッフがあきらめた回数は 3回から 25回、ロボットの助けの呼び出しは 3回から 36回に増えました。
    - 片付けのスタッフが 1.8人から 0.7人に減り、片付けを待つ卓が 3.9から 7.3に増えて、入口の待ちが延びたとみられます。
- 同じ種7でも、撮った回と撮らずに回した回で入店待ちが違いました（⑧5台は 18.6分と 14.3分）。動画は「種7のある1日」の姿です。
- 台帳は 3309行から 3311行になりました（撮った2回だけ）。先頭3309行の md5 は前と同じで、終わったあとの md5 は dc233776ff503e9d065bb01f70e4c27d です。鍵ファイルは残っていません。

**変えたファイル**
- Unity・tools・Builds は変えていません（cs:81 のまま、保留 0）。元のパネルの道具も変えていません。
- 新しく置いたもの：
  - KIOXIA の night/20261106_large96/（スクリプトと記録）
  - rec_large_20261106/{large_p6|large_p7}/serve_r5/
  - rec_large_20261106/{large_p6|large_p7}/compare_r2_r5/
  - claude_code_reports/20261106_large96.txt（報告）

**決めてほしいこと**
1. ⑨5台は上限120分で、全員が帰る前に止まりました。止まる前の3分で立ち往生が急に増えていました（134回→155回）。今の動画のままでよいか、上限を延ばして撮り直すか。
2. 撮った回と撮らずに回した回で、同じ種7でも入店待ちが違います（原因は調べていません）。動画を平均の姿として見せてよいか、撮った回と撮らずに回した回の結果を揃えるべきか。
3. 元のパネルの道具は、ロボット4台以上だと欄が切れます。元の道具も直すか。

判定：止めた（決めてほしいことあり）
```

### ⑧の2台と5台を並べた1コマ

【画像】LOG452_14_p6_r2_r5_slow.png ⑧の開店から2時間12分を、待機場所のそばに寄せて並べた1コマ。左がロボット2台、右が5台。入口で待つ組は18と30、席にいる組は66と57、片付けを待つ卓は0と12。右では待機場所のそばにロボットが固まり、1台が立ち往生している

5台では、片付けを待つ卓が12残っています。⑧の差がいちばん開いた1時間55分〜2時間25分の平均で比べると、次のとおりです。

| 30分の平均（⑧） | 2台 | 5台 |
|---|---|---|
| 入口で待つ組 | 19.9 | 29.8 |
| 席にいる組 | 64.8 | 57.1 |
| 片付けを待つ卓 | 2.9 | 9.9 |
| 片付けのスタッフ（人） | 2.3 | 3.2 |
| ロボットの止まり（秒） | 937 | 2,003 |
| そのうち、もう1台のロボットで止まった（秒） | 67 | 1,163 |

**5台では、席は空いているのに片付かず、案内できない。** ロボットどうしが待機場所のそばで止まり合い（一日で8,191秒）、そこを通って皿を返しに行くスタッフが道をあきらめた回数は、2台の8回から5台の34回に増えています。片付けのスタッフを増やしても、通れなければ卓は空きません。

【画像】LOG452_08_p6_10min.png ⑧の2台（青）と5台（オレンジ）を10分ごとに並べたグラフ。入口で待つ組・片付けを待つ卓・ロボットの止まりが5台で大きく、灰色が動画で長めに見せた30分

### ⑨の2台と5台を並べた1コマ

【画像】LOG452_15_p7_r2_r5_slow.png ⑨の開店から1時間06分を、受け渡し口の前（スタッフの持ち場のそば）に寄せて並べた1コマ。左がロボット2台、右が5台。右では5台がすべて「卓へ運ぶ」のまま1か所に固まっている。入口で待つ組は0と4、片付けを待つ卓は4と7

⑨では、受け渡し口の前（スタッフの持ち場のそば）でロボットどうしが止まり合いました。55分〜1時間25分の平均で、ロボットの止まりは481秒から4,948秒に増え、料理を運ぶスタッフの道のあきらめは3回から25回、ロボットを助けに行く呼び出しは3回から36回に増えています。片付けに回れるスタッフは1.8人から0.7人に減り、片付けを待つ卓は3.9から7.3に増えました。

### 10分ごとの表（⑧・⑨）

```text
⑧：2台 = 20261106_rec95_cs81_large_p6_r2_s7_passon_sbret_ek_post_rescue_pyield／5台 = 20261106_rec96_cs81_large_p6_r5_s7_passon_sbret_ek_post_rescue_pyield
最後の記録の時刻：2台 4時間32分（16320 秒）・5台 4時間33分（16380 秒）
入口で待つ組の差（5台−2台・前後5分の平均）がいちばん大きく増えた30分：開店から 1時間55分〜2時間25分（6900〜8700 秒）・差 4.9 → 15.5 組

その30分の平均（2台／5台）
  入口で待つ組	19.9	29.8
  席にいる組	64.8	57.1
  片付けを待つ卓	2.9	9.9
  空いている卓	0.0	0.0
  案内	1.5	0.7
  料理	0.6	0.3
  呼び出し	0.3	0.5
  会計	0.9	1.0
  片付け	2.3	3.2
  ロボットの助け	0.2	0.3
  手すき	0.1	0.0

その30分のロボットの止まり（2台）合計 937 秒
  わけ：人が立ち止まっていた 578・お客さんとすれ違った 165・スタッフとすれ違った 98・もう1台のロボット 67・分からない 29
  場所（上位8）：待合の前のそば 384・(21, 5) あたり 144・(26, 3) あたり 123・ロボットの待機場所のそば 80・ドリンクバーの前に立つ点のそば 69・(30, 3) あたり 60・(8, 3) あたり 19・パントリーのそば 10

その30分のロボットの止まり（5台）合計 2003 秒
  わけ：もう1台のロボット 1163・人が立ち止まっていた 397・スタッフとすれ違った 228・分からない 135・お客さんとすれ違った 80
  場所（上位8）：ロボットの待機場所のそば 1357・パントリーのそば 185・(6, 5) あたり 123・スタッフの持ち場のそば 65・スタッフが待つ点のそば 54・(32, 12) あたり 41・(10, 10) あたり 25・(7, 3) あたり 20

一日のロボットの止まり（2台）合計 3564 秒
  わけ：人が立ち止まっていた 1056・もう1台のロボット 979・お客さんとすれ違った 784・スタッフとすれ違った 529・分からない 216・通路の幅が足りない 0
  場所（上位8）：ロボットの待機場所のそば 727・待合の前のそば 468・(21, 5) あたり 299・(20, 5) あたり 237・ドリンクバーの前に立つ点のそば 177・パントリーのそば 154・(9, 3) あたり 147・スタッフの持ち場のそば 137

一日のロボットの止まり（5台）合計 12536 秒
  わけ：もう1台のロボット 8662・スタッフとすれ違った 1513・人が立ち止まっていた 1002・分からない 948・お客さんとすれ違った 409・通路の順番待ち 2
  場所（上位8）：ロボットの待機場所のそば 8191・パントリーのそば 579・スタッフの持ち場のそば 501・(10, 3) あたり 461・(8, 3) あたり 338・(9, 3) あたり 222・スタッフが待つ点のそば 173・(11, 4) あたり 147

窓の分: 6900 8700
```

```text
⑨：2台 = 20261106_rec95_cs81_large_p7_r2_s7_passon_sbret_ek_post_rescue_pyield／5台 = 20261106_rec96_cs81_large_p7_r5_s7_passon_sbret_ek_post_rescue_pyield
最後の記録の時刻：2台 4時間50分（17400 秒）・5台 4時間43分（16980 秒）
入口で待つ組の差（5台−2台・前後5分の平均）がいちばん大きく増えた30分：開店から 55分〜1時間25分（3300〜5100 秒）・差 0.0 → 8.4 組

その30分の平均（2台／5台）
  入口で待つ組	5.0	9.6
  席にいる組	61.1	59.8
  片付けを待つ卓	3.9	7.3
  空いている卓	3.2	2.2
  案内	1.1	0.9
  料理	1.3	2.6
  呼び出し	0.6	0.6
  会計	1.0	0.6
  片付け	1.8	0.7
  ロボットの助け	0.0	0.5
  手すき	0.1	0.0

その30分のロボットの止まり（2台）合計 481 秒
  わけ：スタッフとすれ違った 201・もう1台のロボット 129・お客さんとすれ違った 95・人が立ち止まっていた 39・分からない 18
  場所（上位8）：スタッフの持ち場のそば 191・(18, 10) あたり 63・(18, 15) あたり 63・ロボットの待機場所のそば 48・(7, 7) あたり 37・(19, 7) あたり 19・パントリーのそば 13・(20, 7) あたり 11

その30分のロボットの止まり（5台）合計 4948 秒
  わけ：もう1台のロボット 3485・スタッフとすれ違った 606・人が立ち止まっていた 484・分からない 283・お客さんとすれ違った 83・通路の順番待ち 6
  場所（上位8）：スタッフの持ち場のそば 2936・パントリーのそば 1130・ロボットの待機場所のそば 416・(19, 7) あたり 73・(14, 15) あたり 62・(10, 9) あたり 61・(14, 7) あたり 47・(14, 11) あたり 40

一日のロボットの止まり（2台）合計 2858 秒
  わけ：スタッフとすれ違った 1081・もう1台のロボット 606・お客さんとすれ違った 521・人が立ち止まっていた 450・分からない 199
  場所（上位8）：スタッフの持ち場のそば 755・ロボットの待機場所のそば 461・(19, 7) あたり 160・(18, 10) あたり 118・パントリーのそば 105・(18, 7) あたり 102・(6, 7) あたり 102・(7, 7) あたり 101

一日のロボットの止まり（5台）合計 17705 秒
  わけ：もう1台のロボット 12392・スタッフとすれ違った 2636・人が立ち止まっていた 1214・お客さんとすれ違った 809・分からない 649・通路の順番待ち 6
  場所（上位8）：スタッフの持ち場のそば 8234・パントリーのそば 3325・ロボットの待機場所のそば 2127・(15, 7) あたり 468・(16, 7) あたり 457・(18, 7) あたり 284・(17, 7) あたり 253・(19, 7) あたり 243

窓の分: 3300 5100
```

```csv
開店から（分）,入口で待つ組_2台,入口で待つ組_5台,席にいる組_2台,席にいる組_5台,片付けを待つ卓_2台,片付けを待つ卓_5台,スタッフ_案内_2台,スタッフ_案内_5台,スタッフ_料理_2台,スタッフ_料理_5台,スタッフ_呼び出し_2台,スタッフ_呼び出し_5台,スタッフ_会計_2台,スタッフ_会計_5台,スタッフ_片付け_2台,スタッフ_片付け_5台,スタッフ_ロボットの助け_2台,スタッフ_ロボットの助け_5台,スタッフ_手すき_2台,スタッフ_手すき_5台,ロボット_待機_2台,ロボット_待機_5台,ロボット_往復おわり_2台,ロボット_往復おわり_5台,ロボット_受け渡し口へ_2台,ロボット_受け渡し口へ_5台,ロボット_卓へ_2台,ロボット_卓へ_5台,ロボット_卓で止まる_2台,ロボット_卓で止まる_5台,ロボット_立ち往生_2台,ロボット_立ち往生_5台,ロボットの止まり（秒）_2台,ロボットの止まり（秒）_5台
0〜10,0.0,0.0,3.2,3.2,0.0,0.0,0.9,0.9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.1,5.1,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
10〜20,0.0,0.0,14.9,14.9,0.0,0.0,1.5,1.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5,4.5,0.7,3.7,0.4,0.4,0.2,0.2,0.4,0.4,0.3,0.3,0.0,0.0,22,20
20〜30,0.0,0.0,20.1,20.1,0.0,0.0,1.7,1.9,0.9,0.8,0.8,0.7,0.0,0.0,0.0,0.0,0.0,0.1,2.6,2.5,0.0,1.3,0.2,0.9,0.6,0.9,0.6,1.1,0.7,0.7,0.0,0.0,135,336
30〜40,0.0,0.0,31.2,31.2,0.0,0.0,2.3,2.5,0.0,0.0,0.3,0.5,0.0,0.0,0.0,0.0,0.0,0.1,3.4,2.9,0.0,1.0,0.6,1.9,0.5,1.1,0.6,0.7,0.3,0.4,0.0,0.0,99,362
40〜50,0.0,0.0,46.7,46.7,0.0,0.0,1.6,1.5,0.9,0.3,0.4,0.4,0.2,0.2,0.0,0.0,0.1,0.0,2.8,3.6,0.0,0.3,0.0,0.8,0.3,1.2,0.9,1.5,0.8,1.2,0.0,0.0,100,196
50〜60,0.0,0.0,53.9,54.2,1.2,1.6,1.5,1.9,2.2,1.9,0.0,0.0,1.0,1.0,1.2,0.5,0.0,0.3,0.1,0.4,0.0,0.0,0.0,1.1,0.4,0.8,0.7,2.0,0.9,0.8,0.0,0.3,60,876
60〜70,0.8,1.1,60.2,60.5,4.0,6.1,1.5,2.0,0.8,1.1,0.5,0.7,1.0,1.0,2.1,0.9,0.1,0.3,0.0,0.0,0.0,0.0,0.0,0.5,0.4,1.3,0.9,2.1,0.7,1.0,0.0,0.1,149,994
70〜80,6.0,9.0,61.8,59.5,7.1,8.6,1.4,0.7,1.0,0.9,1.2,0.9,1.0,1.0,1.1,1.9,0.3,0.6,0.0,0.0,0.0,0.0,0.0,0.0,0.2,0.7,1.1,2.9,0.4,0.9,0.3,0.4,389,1254
80〜90,13.7,18.5,59.4,55.2,9.1,12.5,1.4,0.8,1.6,0.4,0.5,0.7,1.0,0.9,1.5,2.8,0.0,0.4,0.0,0.0,0.0,0.0,0.0,0.5,0.3,1.1,1.0,1.8,0.7,0.9,0.0,0.6,153,714
90〜100,17.5,22.8,59.0,54.9,8.5,12.7,1.4,1.1,0.2,0.4,0.9,0.9,1.0,0.9,2.5,2.4,0.0,0.3,0.0,0.0,0.0,0.0,0.0,1.9,0.5,0.9,0.9,1.5,0.6,0.6,0.0,0.1,79,421
100〜110,20.5,27.1,61.5,56.6,6.2,11.0,1.5,1.4,0.3,0.2,0.7,0.5,1.0,1.0,2.3,2.4,0.2,0.5,0.0,0.0,0.0,0.0,0.1,1.8,0.5,1.2,0.8,0.7,0.5,0.6,0.1,0.7,319,529
110〜120,24.6,29.4,62.4,59.0,5.5,8.5,1.0,1.3,1.1,0.6,0.2,0.4,1.0,1.0,2.1,2.5,0.6,0.2,0.0,0.0,0.0,0.0,0.0,1.0,0.2,1.4,1.3,1.7,0.4,0.8,0.1,0.1,564,776
120〜130,24.8,32.5,63.8,58.1,4.3,8.4,1.6,0.3,1.1,0.2,0.3,0.6,0.9,1.0,1.9,3.5,0.2,0.4,0.0,0.0,0.0,0.0,0.1,2.2,0.2,1.1,1.1,1.0,0.5,0.6,0.1,0.1,361,491
130〜140,17.1,29.1,65.3,56.1,1.6,11.1,1.3,0.9,0.1,0.1,0.5,0.4,0.9,0.9,3.1,3.4,0.1,0.3,0.0,0.0,0.0,0.0,0.0,1.6,0.7,1.1,0.6,1.7,0.7,0.5,0.0,0.1,207,980
140〜150,8.6,24.1,68.0,54.9,0.0,11.7,1.2,0.7,0.5,0.0,0.4,0.3,1.0,1.0,2.0,3.8,0.0,0.2,0.9,0.0,0.0,0.0,0.0,2.8,0.3,0.8,0.9,1.0,0.8,0.3,0.0,0.1,182,612
150〜160,2.1,17.1,68.4,55.6,0.0,11.7,0.6,0.9,0.2,0.7,0.3,0.3,1.0,0.9,1.5,2.7,0.1,0.5,2.3,0.0,0.0,0.0,0.0,0.6,0.3,1.8,1.0,1.6,0.7,0.5,0.0,0.5,119,1325
160〜170,0.0,14.0,64.5,52.3,0.0,15.0,0.0,0.6,0.2,0.8,0.6,0.2,1.0,1.0,1.6,3.1,0.0,0.3,2.6,0.0,0.0,0.0,0.1,2.2,0.5,1.0,0.8,1.1,0.6,0.5,0.0,0.2,265,697
170〜180,0.0,5.5,58.3,54.2,0.0,12.6,0.0,1.4,0.0,0.0,0.3,0.2,1.0,0.9,1.7,3.2,0.1,0.3,2.9,0.0,0.0,0.0,1.4,3.1,0.3,0.7,0.2,0.6,0.2,0.4,0.0,0.1,93,291
180〜190,0.0,0.0,52.3,53.4,0.0,7.9,0.0,0.1,0.0,0.0,0.3,0.4,1.0,1.0,1.7,4.5,0.0,0.0,3.0,0.0,0.0,0.0,0.8,0.8,0.3,1.6,0.7,1.7,0.2,0.9,0.0,0.0,61,485
190〜200,0.0,0.0,46.2,47.4,0.0,1.5,0.0,0.0,0.0,0.0,0.0,0.4,1.0,1.0,1.5,3.3,0.0,0.4,3.5,0.9,0.0,0.0,1.2,3.1,0.5,0.7,0.2,0.8,0.1,0.2,0.0,0.2,203,617
200〜210,0.0,0.0,40.1,41.4,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2,1.0,1.0,1.6,1.4,0.0,0.5,3.4,1.9,0.0,0.0,1.9,3.9,0.1,0.6,0.0,0.2,0.0,0.1,0.0,0.2,5,255
210〜220,0.0,0.0,34.1,35.3,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2,1.0,1.0,2.2,2.7,0.0,0.5,2.8,1.6,0.0,0.0,2.0,4.0,0.0,0.5,0.0,0.3,0.0,0.2,0.0,0.0,0,96
220〜230,0.0,0.0,28.0,29.0,0.0,1.5,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.7,3.9,0.0,1.1,3.3,0.0,0.0,0.0,2.0,4.2,0.0,0.5,0.0,0.2,0.0,0.1,0.0,0.1,0,206
230〜240,0.0,0.0,21.9,22.5,0.0,0.7,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.5,3.7,0.0,0.4,3.5,0.9,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
240〜250,0.0,0.0,15.8,16.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.6,2.3,0.0,0.0,3.4,2.7,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
250〜260,0.0,0.0,9.6,10.6,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.9,2.3,0.0,0.0,3.1,2.7,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
260〜270,0.0,0.0,3.5,4.7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.5,1.4,0.0,0.0,3.5,3.6,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
270〜280,0.0,0.0,0.0,0.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,1.3,2.2,0.0,0.0,4.7,3.2,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
```

```csv
開店から（分）,入口で待つ組_2台,入口で待つ組_5台,席にいる組_2台,席にいる組_5台,片付けを待つ卓_2台,片付けを待つ卓_5台,スタッフ_案内_2台,スタッフ_案内_5台,スタッフ_料理_2台,スタッフ_料理_5台,スタッフ_呼び出し_2台,スタッフ_呼び出し_5台,スタッフ_会計_2台,スタッフ_会計_5台,スタッフ_片付け_2台,スタッフ_片付け_5台,スタッフ_ロボットの助け_2台,スタッフ_ロボットの助け_5台,スタッフ_手すき_2台,スタッフ_手すき_5台,ロボット_待機_2台,ロボット_待機_5台,ロボット_往復おわり_2台,ロボット_往復おわり_5台,ロボット_受け渡し口へ_2台,ロボット_受け渡し口へ_5台,ロボット_卓へ_2台,ロボット_卓へ_5台,ロボット_卓で止まる_2台,ロボット_卓で止まる_5台,ロボット_立ち往生_2台,ロボット_立ち往生_5台,ロボットの止まり（秒）_2台,ロボットの止まり（秒）_5台
0〜10,0.0,0.0,3.2,3.2,0.0,0.0,0.8,0.8,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.2,5.2,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
10〜20,0.0,0.0,14.9,14.9,0.0,0.0,1.4,1.4,0.0,0.0,0.1,0.1,0.0,0.0,0.0,0.0,0.0,0.0,4.5,4.5,0.7,3.3,0.1,0.3,0.3,0.3,0.6,0.7,0.3,0.3,0.0,0.0,83,84
20〜30,0.0,0.0,20.1,20.1,0.0,0.0,1.2,0.9,1.5,1.0,0.4,0.7,0.0,0.0,0.0,0.0,0.1,0.1,2.8,3.3,0.0,1.0,0.1,1.3,0.5,1.0,0.9,1.1,0.5,0.6,0.0,0.0,334,406
30〜40,0.0,0.0,31.2,31.2,0.0,0.0,2.4,2.5,0.7,0.2,0.7,0.6,0.0,0.0,0.0,0.0,0.0,0.2,2.2,2.5,0.0,1.0,0.3,1.5,0.5,0.8,0.7,1.3,0.5,0.4,0.0,0.0,191,448
40〜50,0.0,0.0,46.7,46.7,0.0,0.0,2.2,2.0,0.9,1.1,0.4,0.5,0.2,0.2,0.0,0.0,0.0,0.0,2.3,2.2,0.0,0.3,0.2,0.9,0.4,1.2,0.7,1.7,0.7,0.9,0.0,0.0,60,687
50〜60,0.0,0.0,55.1,54.7,0.3,2.9,1.5,1.1,1.6,3.4,0.1,0.0,0.9,0.8,1.3,0.0,0.0,0.7,0.6,0.0,0.0,0.0,0.1,0.6,0.4,0.1,0.7,3.7,0.8,0.2,0.0,0.4,141,2010
60〜70,0.5,2.7,62.2,61.9,2.9,6.5,1.9,1.7,1.4,3.3,0.7,0.1,1.0,0.3,1.0,0.0,0.0,0.6,0.0,0.0,0.0,0.0,0.0,0.0,0.4,0.3,0.7,4.0,0.7,0.4,0.1,0.4,194,2199
70〜80,7.7,14.4,62.1,60.6,4.7,8.6,0.2,1.0,0.9,2.0,0.7,1.1,1.0,0.6,3.2,0.8,0.0,0.5,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.8,0.8,3.0,0.8,0.9,0.0,0.3,85,1480
80〜90,14.6,22.9,60.5,58.5,7.6,8.5,0.7,0.8,1.9,0.4,0.4,0.8,1.0,1.0,1.9,3.0,0.1,0.0,0.0,0.0,0.0,0.0,0.0,0.7,0.4,1.3,1.0,1.8,0.6,1.1,0.0,0.1,310,390
90〜100,18.3,25.2,60.2,60.0,7.3,7.5,1.2,0.8,0.7,0.5,0.5,0.7,1.0,1.0,2.5,2.5,0.0,0.5,0.1,0.0,0.0,0.0,0.1,0.7,0.5,1.6,0.8,1.5,0.6,0.7,0.0,0.6,82,834
100〜110,21.8,31.6,62.2,60.5,4.8,6.7,1.5,0.7,0.3,0.5,0.2,0.6,1.0,1.0,3.0,2.8,0.0,0.4,0.0,0.0,0.0,0.0,0.1,1.3,0.5,1.4,0.7,1.3,0.7,0.8,0.0,0.2,89,580
110〜120,23.7,34.6,65.1,62.5,3.1,4.2,1.4,1.3,1.2,0.0,0.6,0.4,1.0,1.0,1.8,3.3,0.0,0.0,0.0,0.0,0.0,0.0,0.1,2.3,0.5,0.9,0.6,1.1,0.7,0.7,0.0,0.0,118,306
120〜130,23.8,31.6,66.2,66.9,1.1,0.9,1.5,1.7,0.5,0.5,0.2,0.4,1.0,1.0,2.7,2.2,0.1,0.2,0.0,0.0,0.0,0.0,0.3,1.6,0.4,1.0,0.6,1.5,0.7,0.8,0.0,0.1,93,476
130〜140,15.3,24.7,68.3,67.6,0.1,0.5,1.4,1.1,0.4,1.6,0.6,0.3,1.0,1.0,1.6,1.9,0.0,0.1,1.0,0.0,0.0,0.0,0.4,2.2,0.5,0.9,0.6,1.1,0.6,0.8,0.0,0.1,150,314
140〜150,9.6,18.7,68.5,67.8,0.0,0.1,0.7,1.0,1.1,0.3,0.4,0.5,1.0,1.0,1.5,2.1,0.0,0.2,1.3,0.9,0.0,0.0,0.0,2.7,0.4,0.8,0.9,0.8,0.7,0.6,0.0,0.0,310,433
150〜160,4.3,12.3,68.0,68.4,0.0,0.0,0.6,1.1,0.3,0.0,0.4,0.4,1.0,1.0,2.0,1.8,0.0,0.0,1.7,1.7,0.0,0.0,0.1,1.8,0.5,0.6,0.8,2.0,0.6,0.6,0.0,0.0,188,896
160〜170,0.4,7.9,66.4,66.9,0.0,0.7,0.3,0.4,0.0,1.3,0.6,0.4,1.0,1.0,2.4,2.4,0.0,0.3,1.7,0.2,0.0,0.0,0.2,1.6,0.5,0.6,0.7,2.0,0.6,0.6,0.0,0.2,81,919
170〜180,0.0,1.3,61.4,67.4,0.0,0.0,0.0,0.9,0.0,0.0,0.5,0.2,1.0,1.0,1.9,2.3,0.0,0.4,2.6,1.2,0.0,0.0,0.3,1.6,0.5,0.4,0.8,2.7,0.4,0.3,0.0,0.0,134,1355
180〜190,0.0,0.0,55.9,62.9,0.0,2.4,0.0,0.0,0.0,1.1,0.3,0.4,1.0,1.0,2.2,2.6,0.0,0.9,2.5,0.0,0.0,0.0,1.4,0.0,0.4,0.1,0.1,3.4,0.1,0.3,0.0,1.2,165,1812
190〜200,0.0,0.0,50.5,56.8,0.0,4.1,0.0,0.0,0.0,0.4,0.2,0.4,1.0,1.0,1.8,3.4,0.0,0.8,3.0,0.0,0.0,0.0,1.3,0.3,0.2,0.3,0.3,3.4,0.2,0.4,0.0,0.7,36,1622
200〜210,0.0,0.0,45.0,50.7,0.0,1.2,0.0,0.0,0.0,0.0,0.0,0.1,1.0,1.0,1.7,3.8,0.0,0.0,3.3,1.1,0.0,0.0,1.8,4.2,0.1,0.5,0.1,0.1,0.0,0.2,0.0,0.0,16,132
210〜220,0.0,0.0,39.5,45.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2,1.0,1.0,1.8,1.7,0.0,0.0,3.2,3.1,0.0,0.0,2.0,4.1,0.0,0.3,0.0,0.5,0.0,0.1,0.0,0.0,0,54
220〜230,0.0,0.0,34.2,39.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1,1.0,1.0,1.3,1.5,0.0,0.4,3.7,3.0,0.0,0.0,2.0,4.3,0.0,0.4,0.0,0.1,0.0,0.1,0.0,0.1,0,202
230〜240,0.0,0.0,28.7,34.2,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.6,1.4,0.0,0.1,3.4,3.5,0.0,0.0,2.0,4.8,0.0,0.1,0.0,0.0,0.0,0.0,0.0,0.1,0,64
240〜250,0.0,0.0,23.4,28.8,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.3,1.6,0.0,0.0,3.7,3.4,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
250〜260,0.0,0.0,17.9,23.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.4,1.3,0.0,0.0,3.6,3.7,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
260〜270,0.0,0.0,12.5,18.0,0.1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,3.4,1.4,0.2,0.1,1.4,3.5,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
270〜280,0.0,0.0,7.1,12.6,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.6,2.6,0.3,0.8,3.1,1.6,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
280〜290,0.0,0.0,1.7,9.2,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7,1.0,1.6,1.5,0.0,0.2,3.7,3.2,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0
290〜300,0.0,,0.0,,0.0,,0.0,,0.0,,0.0,,0.0,,1.0,,0.0,,5.0,,0.0,,2.0,,0.0,,0.0,,0.0,,0.0,,0,
```

【図解】LOG452_robots_wait_cause.html

### 依頼98：詰まっている所に寄せ、店の時刻の5倍で流した動画

依頼96 の並べた動画は、ゆっくり見せた30分でも店の時刻の48.75倍、ほかは270倍で流していました。これでは、ロボットとスタッフが何をしているのか分かりません。

> つか動画早回しすぎて何してんのかわかんないよ

そこで依頼98 で、今ある録画から、いちばん詰まっている所に寄せて店の時刻の5倍で流す動画を作り直しました。左右それぞれにパネルを付け、場面の頭の1.5秒で店全体を見せて、寄る所を橙の枠で囲んでいます。新しく回したり撮ったりはしていません。

- ねらい：何が起きているかを、表を読まずに目で追えるようにする
- 変わったこと：問題の場面の速さが、店の時刻の48.75倍から5倍になった。店全体ではなく、詰まっている所に寄った
- 見込める効果：ロボットどうしの止まり合いや、スタッフが道をあきらめる場面が見えるようになる。見て分かったかどうかは、この動画をもとにした問題の洗い出し（次の節）で確かめた

作った動画は2台と5台を左右に並べたものですが、記事には2台の側だけを切り出して載せます。5台の側は、ロボットに台どうしの順番決めがない Unity の作りの弱さがそのまま出た映像で、店で起こる場面としては見せられないと判断しました（次の節）。5台は、上の2枚の静止画と数で示します。

【動画】LOG452_12_p6_r2_slow.mp4 ⑧ロボット2台の待機場所のそば。開店2時間10分からと2時間33分からの2場面を、店の時刻の5倍で流す（120秒）。この2場面の止まりは163秒と10秒（同じ時刻の5台は681秒と857秒）

【動画】LOG452_13_p7_r2_slow.mp4 ⑨ロボット2台の、スタッフの持ち場のそば（受け渡し口の前）。開店1時間04分からの5分を、店の時刻の5倍で流す（61.5秒）。この5分の止まりは33秒（同じ時刻の5台は1,290秒）

同じ作り方で、サイトの /series8 にある8店の「配膳だけ／配膳＋下げ膳」の比較動画も作り直しました。前は1日を約90秒で流していました。店ごとに差がいちばん大きい5分に寄せ、店の時刻の5倍で流しています。サイトへの差し替えは、この記事のあとに行います。

```csv
店,店の時刻（秒）,選んだわけ,寄った場所,店の座標,止まり秒_配膳だけ,止まり秒_配膳＋下げ膳,片付けを待つ卓_配膳だけ,片付けを待つ卓_配膳＋下げ膳,入口で待つ組_配膳だけ,入口で待つ組_配膳＋下げ膳
② fam_p0,5160〜5460,止まりの差がいちばん大きい5分（差 +234 秒・一日の5分の最大の 62%）,スタッフが待つ点のそば,"(8.8, 7.7)",21.0,254.5,0.0,0.4,0.0,0.2
③ fam_p1,8490〜8790,片付けを待つ卓の差がいちばん大きい5分（差 +6.20 卓・一日の5分の最大の 100%）,ロボットの待機場所のそば,"(16.7, 6.0)",90.7,208.9,0.0,6.2,0.0,0.0
④ fam_p2,11790〜12090,止まりの差がいちばん大きい5分（差 +512 秒・一日の5分の最大の 98%）,卓 T21のそば,"(9.3, 4.0)",1.2,513.1,0.0,6.4,0.0,0.0
⑤ fam_p3,10350〜10650,止まりの差がいちばん大きい5分（差 +525 秒・一日の5分の最大の 100%）,卓 T45のそば,"(20.5, 2.8)",0.0,525.4,2.0,0.2,0.0,0.0
⑥ fam_p4,9030〜9330,止まりの差がいちばん大きい5分（差 +268 秒・一日の5分の最大の 98%）,パントリーのそば,"(14.7, 5.8)",6.8,274.5,4.8,1.6,0.0,0.0
⑦ fam_p5,8790〜9090,止まりの差がいちばん大きい5分（差 +255 秒・一日の5分の最大の 75%）,卓 T05のそば,"(1.7, 5.5)",71.4,326.5,0.0,2.2,0.0,0.0
⑧ large_p6,7380〜7680,止まりの差がいちばん大きい5分（差 -440 秒・一日の5分の最大の 80%）,卓 T68のそば,"(27.5, 2.6)",548.7,108.4,6.6,7.4,25.0,27.2
⑨ large_p7,7980〜8280,止まりの差がいちばん大きい5分（差 +277 秒・一日の5分の最大の 74%）,スタッフの持ち場のそば,"(24.3, 6.4)",99.1,376.5,1.6,1.0,16.4,14.6
```

#### 見本と、記事用に2台の側を切り出した ffmpeg のコマンド

```bash
# 1) Claude が試しに作った見本（⑧の待機場所のまわり・店の時刻 9200〜9500 秒を5倍で60秒・パネルなし）。Mac 連携の shell で動かした
R=$HOME/mnt/KIOXIA/r2r2r-data/service_sim/unity/rec_large_20261106; O=$R/large_p6/slow_r2_r5; mkdir -p $O; A=$(ls $R/large_p6/serve/*wide_l30.mp4); B=$(ls $R/large_p6/serve_r5/*wide_l30.mp4); T0=9200; DUR=300; SS=$(python3 -c "print($T0/0.5/30)"); SRC=$(python3 -c "print($DUR/0.5/30)"); F=/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc
CLK="開店から %{eif\\:floor(($T0+t*5)/3600)\\:d}時間%{eif\\:mod(floor(($T0+t*5)/60)\\,60)\\:d\\:2}分%{eif\\:mod(floor($T0+t*5)\\,60)\\:d\\:2}秒"
ffmpeg -v error -y -ss $SS -t $SRC -i "$A" -ss $SS -t $SRC -i "$B" -filter_complex "[0:v]crop=1600:900:1280:545,scale=1280:720,setpts=3*PTS,fps=30,drawtext=fontfile=$F:text='ロボット2台':x=24:y=20:fontsize=40:fontcolor=white:box=1:boxcolor=black@0.6:boxborderw=12[l];[1:v]crop=1600:900:1280:545,scale=1280:720,setpts=3*PTS,fps=30,drawtext=fontfile=$F:text='ロボット5台':x=24:y=20:fontsize=40:fontcolor=white:box=1:boxcolor=black@0.6:boxborderw=12[r];[l][r]hstack=inputs=2,pad=2560:820:0:100:color=0xfaf9f5,drawtext=fontfile=$F:text='⑧ 受け渡し口の右・待機場所のまわり（ゆっくり：店の時刻の5倍）':x=24:y=30:fontsize=40:fontcolor=0x1d1d1b,drawtext=fontfile=$F:text='$CLK':x=w-tw-24:y=30:fontsize=40:fontcolor=0xd85a30,format=yuv420p" -r 30 -c:v libx264 -preset veryfast -crf 23 $O/p6_standby_r2_r5_x5.mp4

# 2) 依頼98 の2台と5台の動画（3840×1200）から、記事に載せる2台の側だけを切り出した（クラウドの作業環境で動かした）
F=/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc
ffmpeg -v error -y -i "⑧_2台と5台_ゆっくり_パネル付き.mp4" -filter_complex "[0:v]crop=1920:1080:0:120,pad=1920:1180:0:100:color=0xfaf9f5,drawtext=fontfile=$F:text='⑧ ロボット2台　待機場所のそば（ゆっくり：店の時刻の5倍）':x=30:y=28:fontsize=44:fontcolor=0x1d1d1b,format=yuv420p" -an -c:v libx264 -preset veryfast -crf 23 LOG452_12_p6_r2_slow.mp4
ffmpeg -v error -y -i "⑨_2台と5台_ゆっくり_パネル付き.mp4" -filter_complex "[0:v]crop=1920:1080:0:120,pad=1920:1180:0:100:color=0xfaf9f5,drawtext=fontfile=$F:text='⑨ ロボット2台　スタッフの持ち場のそば（ゆっくり：店の時刻の5倍）':x=30:y=28:fontsize=44:fontcolor=0x1d1d1b,format=yuv420p" -an -c:v libx264 -preset veryfast -crf 23 LOG452_13_p7_r2_slow.mp4
```

#### 依頼98 の依頼文

```text
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 300
---
# 依頼98：詰まっている所に寄せ、店の時刻の5倍で流すパネル付き動画を作る（大型店の2台と5台・8店の配膳だけと配膳＋下げ膳）

エイイチの指示（2026-11-06）：動画が早回しすぎて、何をしているのか分からない。依頼96 の2台と5台を並べた動画は、ゆっくりの所でも店の時刻の48.75倍、速い所は270倍だった。サイト（/series8）にある、配膳だけと配膳＋下げ膳を並べた比較動画も、1日を約90秒で流しているので同じく速すぎる。
Claude が試しに、⑧の待機場所のまわりに寄せて店の時刻の5倍で流した動画を作り、エイイチがこの形で良い、パネルも要る、とした（見本：/Volumes/KIOXIA/r2r2r-data/service_sim/unity/rec_large_20261106/large_p6/slow_r2_r5/p6_standby_r2_r5_x5.mp4。wide_l30 の録画を crop=1600:900:1280:545 で切り、店の時刻 9200〜9500 秒を5倍で60秒。パネルはまだない）。

**新しく回したり撮ったりはしない。今ある録画と timeline.csv から動画を作るだけ。** Unity・Builds・tools の元のファイルは変えない。道具を変えるときは写しを作って、そちらを変える（依頼96 の mpv96.py と同じやり方）。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**

## 決まりにすること（この依頼で作るすべての動画）
- 問題の場面は、店の時刻の5倍で流す。寄る場所は、その時間の中でロボットの止まり（秒）がいちばん多い場所。左右を並べるときは、左右で同じ時刻・同じ切り方にする
- 左右それぞれの横に、今までと同じパネル（スタッフ6人がしていること・ロボットの状態・入口で待つ組・席にいる組・片付けを待つ卓・入口で待つ組のグラフ）を付ける。ロボットは5台まで切れずに入る形（依頼96 の写し）を使う
- 上の帯に、題・「ゆっくり：店の時刻の5倍」・開店からの時刻（秒まで）を出す
- 1本の長さは60秒前後（店の時刻で約5分）。場面が2つあれば2つをつないでよい（120秒まで）。各場面の頭に1〜2秒、店全体の引きの1コマ（寄る場所に枠を付ける）を入れて、どこに寄ったかが分かるようにする
- 3840×1200 前後で、字がスマホでも読める大きさ。題とパネルが切れていないことを1コマずつ見て確かめる

## A. 大型店⑧⑨：ロボット2台と5台（LOG452 の記事に載せる）
- 素材：rec_large_20261106/{large_p6|large_p7}/serve/（2台・種7）と serve_r5/（5台・種7）
- 時間：⑧は 1時間55分〜2時間25分、⑨は 55分〜1時間25分（依頼96 で差がいちばん開いた30分）の中で、5台のロボットの止まりがいちばん多い5分。⑧は見本と同じ所（9200〜9500 秒・待機場所のまわり）が窓の外なら、窓の中から選び直し、見本の時間も2つ目の場面として入れてよい
- 置き場所：rec_large_20261106/{店}/slow_r2_r5/（見本はそのまま残す）。名前は slow_r2_r5_panel.mp4

## B. 8店の配膳だけと配膳＋下げ膳（サイトの比較動画の作り直し）
- 対象：今サイトに載っている比較動画の8本（series8_compare_serve_bus_p0〜p5_v1・large_p6_v1・large_p7_v1）。素材は、それぞれを作ったときの録画（依頼92・93・94。make_compare92.py の記録から探す）
- 時間：配膳だけと配膳＋下げ膳で、ロボットの止まりか片付けを待つ卓の差がいちばん大きい5分を、店ごとに選ぶ
- 置き場所：今の比較動画と同じフォルダの下に slow_v2/。名前は compare_serve_bus_{店}_v2.mp4
- 店ごとに、選んだ時刻・寄った場所（店の座標と、何のそばか）・その5分の左右の数（ロボットの止まり・片付けを待つ卓・入口で待つ組）を表にする。サイトの説明文はこの表から Claude が書く

## 報告
claude_code_reports/20261106_slow98.txt に：作った動画の一覧（店・場面の時刻・寄った場所・長さ・大きさ・置き場所）、B の表、道具の写しをどこに作り何を変えたか。
**報告の最後の1行は必ず次のどれか**：「判定：合格」／「判定：止めた（決めてほしいことあり）」／「判定：失敗」
```

#### 依頼98 の報告

```text
# 結果：20261106_98_詰まりに寄せたゆっくりのパネル付き動画を作る

- 状態：完了
- 始めた時刻：2026-11-06 20:20
- 終わった時刻：2026-11-06 21:12（52分）
- 作業フォルダ：/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき：作業フォルダで `claude --resume f2a83054-fb49-452a-a9de-1d6d769cc84f`

## Claude Code の報告

**やったこと**
- 今ある録画と記録だけから、10本の動画を作りました。A（大型店の2台と5台）が2本、B（8店の配膳だけと配膳＋下げ膳）が8本です。新しく回したり撮ったりはしていません。
- どの場面も、まず店全体の引きの1コマを1.5秒出し、寄る所を橙の枠で囲みます。そのあと寄った絵を店の時刻の5倍で流します。左右は同じ時刻・同じ切り方です。
- 上の帯には、題・「ゆっくり：店の時刻の5倍」・開店からの時刻（秒まで、コマごとに進む）・寄った所・左右の名前を出しました。
- 1本につき4コマ（⑧A は8コマ）を並べて目で見ました。帯の字の重なりが2回見つかり、そのたびに直して全部作り直しました。

**結果**
- ⑧A：2時間10分からと、見本と同じ2時間33分からの2場面です。どちらも寄った所はロボットの待機場所のそばです。120.0秒。止まりは2台が163秒・10秒、5台が681秒・857秒でした。
- ⑨A：1時間04分〜1時間09分、スタッフの持ち場のそばです。61.5秒。止まりは2台が33秒、5台が1,290秒でした。
- B の8本はどれも61.5秒です（店ごとの5分・寄った所・数は報告の2章の表）。
- 10本とも 3840×1200・30fps です。題と左右のパネル（ロボット5台の5つの枠まで）が切れていないことを確かめました。
- 置き場所は、A が `rec_large_20261106/{店}/slow_r2_r5/slow_r2_r5_panel.mp4`、B が今の比較動画と同じフォルダの下の `slow_v2/compare_serve_bus_{店}_v2.mp4` です。
- ③ p1 の素材は、依頼92〜94 ではなく依頼91 の録画（rec_compare_20261104）でした。
- ④ と ⑤ の下げ膳ありでは、2台が卓のそばで5分近く止まり合っています。記録上は「卓へ」などの仕事のままなので、パネルの枠は赤くなりません。
- 報告：`claude_code_reports/20261106_slow98.txt`

**変えたファイル**
- 新しく置いたもの：
  - 上の10本と、それぞれの記録・確かめたコマ
  - `night/20261106_slow98/` の道具：mpv98.py（依頼96 の mpv96.py の写しに、寄る・引きのコマと枠・パネルを5秒ごとに描き直す・下げ膳中のロボットの字、を足したもの）、select98.py、slow98.py、run98.sh、plan98.json、table_B98.csv、作った記録
  - 報告ファイル
- 変えていないもの：Unity・tools・Builds、mpv96.py・make_panel_video.py、見本、今サイトに載っている8本、元の録画。サイトには何も上げていません。

**決めてほしいこと**
1. B の5分の選び方は、私が決めて使いました。止まりの差と片付けを待つ卓の差は単位が違うので、それぞれその日の5分ごとのいちばん大きい値で割って比べ、大きい方の5分にしています。③と⑦は2つの値がほぼ同じで、決め方を変えると別の5分になります。この決め方でよいか、片付けを待つ卓など一方だけで選ぶか。
2. ⑧ B は、配膳だけの方がよく止まる5分が選ばれました（549秒→108秒）。下げ膳を入れて悪くなる所を見せたいなら、差の向きをそろえて選び直すか。
3. 上の帯の字は大きくしましたが、パネルの字は「今までと同じパネル」に合わせて変えていません。スマホではパネルの小さい字が読みにくいと思われます。パネルの字も大きくするか。
4. サイトに上げるか、どれを上げるか。説明文の下書きは報告の2章にあります。

判定：止めた（決めてほしいことあり）
```


## 作業ログ ― Unity のシミュレーションのまずい所を洗い出した

5台の動画を見ると、ロボットが待機場所のそばで、ほとんど動いていないように見えます。

> これはさすがシミュレーションとしては最低の出来なので掲載するか悩みます

**5台で入店待ちが延びたのは、店の問題を写したというより、Unity のロボットに台どうしの順番決めがないことが大きく出た結果です。** 実物の配膳ロボットは、メーカーの群れの制御（複数台が、どの台が先に通るかを決める仕組み）で、狭い所での止まり合いを減らしています。Unity のロボットは、1台ずつが自分で道を引き、前0.6mに何かあれば止まるだけです。動画も記事も、この足りない所を炙り出す記録として残します。

### ⑧の5台で、待機場所のそばの止まりを数えた

⑧の5台・種7の1日で、待機場所のそばの止まりを stops.csv から数えました。止まりは4,174回・合わせて8,137秒で、そのうち6,365秒（78%）がもう1台のロボットによるものでした。3,701回は数秒で自分で動き出す細かい止まりで、止まっては動くのを繰り返すので、画面では動いていないように見えます。42回は60秒たっても動けず、その多くは、まわりを他の台にふさがれて行ける道が見つからない状態でした（道を探した結果が「つながっていない」）。

#### 数えたスクリプト（stuck_count.py）

```python
# ⑧・ロボット5台・種7 の stops.csv から、待機場所のそば（x 18〜24.5・y 10〜12.6）の止まりを数える（Mac 連携の shell で動かした）
import csv, collections
D = "/Volumes/KIOXIA/r2r2r-data/service_sim/unity/20261106_rec96_cs81_large_p6_r5_s7_passon_sbret_ek_post_rescue_pyield"
S = list(csv.DictReader(open(D + "/stops.csv")))
near = [r for r in S if 18 <= float(r["x"]) <= 24.5 and 10 <= float(r["z"]) <= 12.6]
print("待機場所のそばの止まり", len(near), "件", round(sum(float(r["duration_s"]) for r in near)), "秒")
c = collections.Counter(); d = collections.Counter(); res = collections.Counter(); det = collections.Counter()
for r in near:
    c[r["cause"]] += float(r["duration_s"]); res[r["resolved"]] += 1; det[r["cause_detail"]] += float(r["duration_s"])
print("わけ", [(k, round(v)) for k, v in c.most_common()])
print("くわしく", [(k, round(v)) for k, v in det.most_common(8)])
print("解け方", res.most_common())
long = sorted(near, key=lambda r: -float(r["duration_s"]))[:8]
for r in long:
    print(r["robot_id"], r["t_s"], r["x"], r["z"], r["cause"], r["cause_detail"], r["duration_s"], r["resolved"], r["replans"], r["solve_status"])
rb = collections.Counter()
for r in S:
    rb[r["robot_id"]] += float(r["duration_s"])
print("台ごと", [(k, round(v)) for k, v in sorted(rb.items())])
```

#### 出力

```text
# ⑧・ロボット5台・種7（20261106_rec96_cs81_large_p6_r5_s7_passon_sbret_ek_post_rescue_pyield）の stops.csv から、待機場所のそば（x 18〜24.5・y 10〜12.6）の止まりを数えた
待機場所のそばの止まり 4174 件 8137 秒
わけ [('もう1台のロボット', 6365), ('分からない', 881), ('スタッフとすれ違った', 536), ('人が立ち止まっていた', 340), ('お客さんとすれ違った', 15)]
くわしく [('ServingRobot03', 792), ('', 670), ('よける場所で待った：ServingRobot02', 548), ('進めていない（10秒で0.5m）：ServingRobot05', 528), ('よける場所で待った：ServingRobot03', 519), ('ServingRobot02', 513), ('ServingRobot05', 490), ('進めていない（10秒で0.5m）：ServingRobot01', 459)]
解け方 [('自分で動き出した', 3701), ('よける場所へ動いた', 220), ('回り込んで動き出した', 192), ('動けなくなった', 42), ('スタッフが動かした', 19)]
3 3180 20.5206 11.247 分からない  60.0494 動けなくなった 25 つながっていない
2 3159.7 20.4343 11.1409 もう1台のロボット 進めていない（10秒で0.5m）：ServingRobot03 60.0494 動けなくなった 19 つながっていない
4 3510.5 20.0835 11.2836 もう1台のロボット よける場所で待った：ServingRobot02 60.0494 動けなくなった 140 引けた
2 3459.75 19.8874 11.1339 分からない 進めていない（10秒で0.5m）： 60.0494 動けなくなった 16 つながっていない
3 3681 23.0225 10.8635 もう1台のロボット 進めていない（10秒で0.5m）：ServingRobot02 60.0494 動けなくなった 20 引けた
1 5133.15 19.5268 10.652 もう1台のロボット ServingRobot03 60.0494 動けなくなった 140 引けた
2 5147.45 19.5563 11.2798 もう1台のロボット ServingRobot03 60.0494 動けなくなった 27 つながっていない
5 5203.2 18.6313 11.1709 もう1台のロボット ServingRobot02 60.0494 動けなくなった 325 引けた
台ごと [('1', 2749), ('2', 3364), ('3', 2364), ('4', 2624), ('5', 1435)]
（列：ロボット・始まりの店の時刻（秒）・x・y・わけ・くわしく・続いた秒・解け方・道の引き直しの回数・道を探した結果）
```

### Unity のシミュレーションのまずい所の一覧

この回までに出た、シミュレーションの作りの問題を並べます。店で起こりうる問題（満席で待合からあふれる、など）とは分けています。

| まずい所 | どこで見えたか | 何がおかしいか |
|---|---|---|
| ロボットに台どうしの順番決め（群れの制御）がない | ⑧⑨の4台・5台 | 受け渡し口と待機場所のまわりで止まり合い、⑧5台は待機場所のそばだけで1日8,137秒止まった |
| 待機場所が1列で、出入りと受け渡し口へ行く道が同じ | ⑧⑨の5台 | 奥の台が出ようとすると手前の台にふさがれ、受け渡し口へ向かう台ともぶつかる |
| 立って待つ人はよけない・待合に並ぶ点が1つしかない | ⑧の2台 | 満席で20組以上が待つと、待合からはみ出した人がロボットの道に立ち続ける |
| 人の先よけは、速さを落とすだけで仕事の順番は変えない | ③⑦の2台 | 重なる描画は減ったが、入店待ちが1分ほど延びた。近づきの多くは仕事でロボットに寄る場面で、よけ方では減らない |
| 同じ種でも、撮る回と撮らない回で結果が違う | ⑧の5台・種7 | 入店待ちが撮った回18.6分、撮らない回14.3分。同じ条件・同じ種なら同じ結果になるはずの決まりから外れている |
| 卓のそばで止まり合っても、パネルの状態が仕事のまま | ④⑤の配膳＋下げ膳 | 2台が卓のそばで5分近く止まり合っても、記録は「卓へ」のままで、パネルの枠が赤くならない |
| 撮影の上限で、全員が帰る前に止まる | ⑨の5台 | 120分で止まり、138組のうち129組が帰ったところまでしか撮れていない |
| 試算は店の中の混み合いを持たない | ⑨のレジの直し | 試算で変わるのは卓までの距離だけで、レジまわりの広さは数字に出ない |

この一覧を、別の回で1つずつ直していきます。直すときも、ほかを同じにして1つだけ変え、どれだけ変わったかを数で見ます。

### 同じ種7でも、撮った回と撮らずに回した回で結果が違った

⑧の5台・種7の入店待ちは、撮った回が18.6分、撮らずに回した回が14.3分でした。このシミュレーションは、同じ条件・同じ種なら同じ結果になるように作っています。撮るか撮らないかで結果が変わるのは、その決まりから外れています。原因はまだ調べていないので、動画は「種7のある1日」の姿として扱います。⑨の5台は、撮影の上限120分に当たって、138組のうち129組が帰ったところで止まりました。


## 作業ログ ― 残したこと：問題の場面と、切り分ける候補

この回で見えた問題の場面と、原因の候補を並べます。どれも Unity の中で起きたことで、実物の店で確かめたものではありません。

| 起きた場面 | 原因の候補 | 切り分け方（ほかは同じにして1つだけ変える） |
|---|---|---|
| 大型店で、ロボットを足しても入店待ちが縮まない | 席が足りない（満席） | ロボット0台でも満席の時間があるかを、席にいる組の数で見る |
| 満席で待つお客さんが待合からあふれ、ロボットの道をふさぐ（⑧2台） | 待合の位置と向き | 待合の前を今のままと入口の側で比べる |
| 5台で、ロボットどうしが受け渡し口と待機場所のまわりで止まり合う | 台数と、待機場所・受け渡し口の広さ | 台数を変える。待機場所の数や置き場所を変える |
| 5台で、片付けのスタッフが通れず、卓が空かない | スタッフの人数と、皿を返す道 | スタッフを6人と8人で比べる。皿を返す道を受け渡し口から離す |
| 人の先よけで、標準の店の入店待ちが延びた | 人が速さを落とす分の遅れ | 先よけの入と切で比べる（⑧は済み） |

この回で決めたことは次のとおりです。

- 人の先よけは、標準は切のまま残し、動画を撮るときだけ入にする
- 大型店で台数を増やしても待ちが縮まない件は、どれかを直すのではなく、原因の候補を1つずつ変えて比べる対象にする（待合の位置・スタッフの人数・待機場所の置き方）
- 依頼95 で新しく出た2つの詰まり（⑨4台・配膳＋下げ膳の種3で全員が帰らなかった回、⑨の種9でレジのそばに解けない詰まり）は、直さずに記録だけにして、問題の場面の一覧に入れる
- 撮った回と撮らずに回した回で結果が違う件は、記録して、原因は次の依頼で調べる
- ⑨の5台の動画は、撮影の上限で全員が帰る前に止まったまま使う
- KIOXIA（測ったデータを置く外付けの SSD）で書いたファイルが1つ壊れていた件は、ディスクユーティリティの First Aid で点検する。この回の時点では、学習の記録を書いているプロセスと、Mac 連携の仮想マシンが KIOXIA をつかんでいて、マウント解除できずに失敗した（-69673）。学習が終わってからかけ直す
- 動画は、問題の場面を店の時刻の5倍で、詰まっている所に寄せて見せる。/series8 の8店の比較動画も、この形に作り直した（差し替えはこの記事のあと）
- 5台の動画は、Unity の作りの弱さが出た映像なので記事には載せず、静止画と数で示す

次は、ここまでに起きた問題と、上のシミュレーションのまずい所を整理し、何を変えたら直りそうかをまとめたレポートを作ります。シミュレーションのまずい所は、台どうしの順番決めから直していきます。
