---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 600
---
# 依頼：6店の混み具合を「空いている・混んでいる」に広げて、夜（360回）を回す（2026-10-29）

エイイチと決めたこと：今までの Unity は、6店とも混み具合が「普通」だけだった。サイトの試算は「空いている・普通・混んでいる」を選べるので、Unity でも空いている・混んでいるを回す。6店に共通の待機場所のまわりの詰まりが、混むとどれだけ増えるかも見る。

サイト（正）はもう更新した（p2m-site commit 29a5a62）。
- `public/sim/serving-robot-params.json`：unity_conditions が 18件 → 54件。0〜17番（普通）は並びも中身も前と同じ。18〜53番に、店ごとに「空いている 0・1・2台 → 混んでいる 0・1・2台」の6条件を足した
- スタッフは今までどおり真ん中の人数。上げ膳だけ・1往復で3卓（0台は1）・レジ1つも同じ。meta・common・unity_rules・stores は前と同じ。店の形の版は 08db8a0d067c のまま
- 足した条件の来客のペース（組/時）：③ 30・54／⑦ 30・54／④ 20・36／⑤ 33・59／⑥ 27・49／② 14・24
- 台帳の退避は Claude が済ませた：`/Volumes/KIOXIA/r2r2r-data/service_sim/unity/archive/unity_ledger_v1_prenight_20261106_busy/unity_ledger_v1.csv`（672行・md5 79ded907583535ed5ac120e56595ac64）

## 始める前に確かめること（違えば手を止めて報告）

1. Unity エディタが起動していない（起動していたら閉じずに報告して終わる）
2. /Volumes/KIOXIA がマウントされている。鍵ファイル unity_ledger_v1.lock がない
3. 台帳の md5 が上の退避と同じ
4. ServiceSim の保留が 0
5. https://pixelstomotors.com/sim/serving-robot-params.json の unity_conditions が54件、meta.layout_generation が 08db8a0d067c（違えば数分おきに取り直す。30分たっても違えば報告して終わる）

## A. 条件を写して、並びを作る

1. サイトの params を、今までと同じやり方でプロジェクトに写す（手で値を写さない）。前の写しと比べて、変わったのが unity_conditions の18〜53番の追加だけであることを確かめる。店の形のファイルは写し直さなくてよい（版が同じため）
2. 実行ファイルが params を中に持っている作りなら、今までと同じやり方で画面なしの実行ファイルを作り直す。コードは変えない。check-in して保留 0
3. 並びを作る。6店 × 空いている・混んでいる × 0・1・2台 × 種0〜9 = **360回**（すれ違い入・待機場所へ戻る 入・案B 切。今の標準のまま）
   - make_queue.py に、混み具合（来客のペース）で選ぶ指定がなければ足してよい。**何も指定しないときの並び（③⑦の60回）と、--stores だけ指定したときの並び（その店の普通の30回）は変えない**
   - 回の名前（フォルダ名）に来客のペースが入らず、普通の回や空いている・混んでいる同士で名前が重なるなら、名前に `a{組/時}`（例 `a54`）を入れて重ならないようにする。台帳の列は変えない（arrivals_per_h の列がある）
   - 並べる順は、混んでいる180回 → 空いている180回が望ましい（朝までに終わらなくても混んでいる方が先に揃うように）。できなければ順はそのままでよい
   - 回す前に、queue が360回で、名前に重なりがなく、普通の条件（0〜17番）が入っていないことを確かめる。違えば回さずに報告

## B. 夜（360回）

```
python3 tools/night_runner.py --queue queue_busy.json --parallel 4 --night 20261106 --record-name 20261106_busy
```

- 夜の名前は 20261106。記録は night/20261106_busy/ に置く。オプションの名前が違えば、同じ意味になるように合わせる
- 同時に回す本数は4のまま。1回おおよそ4分なので、6〜7時間かかる見込み。時刻で止めず、並べた回が全部終わるまで回す
- 回している間は、ほかの作業をしない。Assets・tools・設定ファイルを開かない・変えない。Unity を開かない
- Ctrl+C で止めない。途中で止まっても、同じ夜を回し直さない（そのまま報告する）
- 混んでいる0台の回は、全員が帰る前に打ち切られることがある。それは失敗として扱わず、そのまま記録する
- 終わったら queue_busy.json を作業フォルダに残さない
- judge_night.py は回してよい。基準（v5）は③⑦の普通にしかないので、今回の条件は「基準なし」になってよい。judge が今回の条件で止まっても、judge は直さずにその旨を報告する

## 変えないもの

- 店の回し方・人とロボットの動き・速さ・Stiffness などの物理の設定・同時に回す本数（N=4）
- 台帳の列（59列）と今までの行。今までの night/ と出力の記録
- night_runner.py・judge_night.py。make_queue.py は A-3 の追加だけ

## 報告

依頼箱の結果に加えて、claude_code_reports に 1つ書く（場所：~/Library/Mobile Documents/com~apple~CloudDocs/デスクトップ/ADAPT DESIGN/じぶんの/PixelstoMotors/デジタルツイン学習R2R2R/サービスロボット導入シミュレーション/unity/claude_code_reports/）。

**20261106_night_busy.txt**
- 始める前の確かめ5つの結果。写した params の比べ方と結果。作り直したなら cs 番号・build_id
- make_queue.py に足したもの（差分の全文）と、回の名前の付け方
- runner_log のまとめ（completed の回数・失敗・止まった回・打ち切られた回・最長の実時間・夜全体の始まりと終わりの時刻）
- 台帳の行数（672 → 1032 になるはず）と、先頭672行の md5 が退避と同じか
- 全員が帰らなかった回の名前（原因の調べはしない）
- 店ごと × 混み具合ごと × 台数ごと（0・1・2台）に、種10個の中央値と最小・最大：入店待ち・そのうち席は空いているのに待った時間・料理の待ち・会計待ち・入れた組の数・ロボットが運んだ皿の割合・往復の数・30秒以上の止まり（1往復あたり）・動けなくなった（60秒）・瞬間移動・打ち切り・卓を空けた・冷めた皿の割合。試算の値（params の site_result）も並べる
- 同じ店の普通の夜の中央値も横に並べる（③⑦ 20261102・④ 20261030・⑤ 20261103・⑥ 20261104・② 20261105）。標準（待機場所へ戻る・すれ違い・cs）が今回と違う夜は、その違いを書く
- ロボットを1台増やしたとき（0→1・1→2）の向き（入店待ち・料理の待ち）が、種の過半数で試算と同じか逆か。店 × 混み具合ごとに
- 2台の30秒以上の止まりを、店 × 混み具合ごとに、種10個の合計で、次の3つに分けて：待機場所の四角の中／受け渡し口の点から 2.5 m 以内（待機場所の中を除く）／そのほか（多い所があれば 2 m 四方のマスで上位3つ）。待機場所と受け渡し口の点は各店の店の形から取る
- judge.md ができたか（中身の判断はしない）
