---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 180
---
# 依頼：② 定番の郊外型（fam_p0・記憶の店）を Unity に建て、1回ずつ回して確かめる（2026-10-29）

エイイチの決定：⑥はここで区切り（LOG398）。④⑤⑥ → ② の順の最後、②へ進む。今回は②だけ。

サイト（正）はもう直した（p2m-site commit b0f1b0c。店の形の版 2e9fc773050a → dffc100b269c）。
- ②の角テーブル（t4）・丸テーブル（r4）・6人の長テーブル（long6）の椅子と座る位置を作った。前は `parts` が null で、客が座れなかった
  - t4・r4：椅子は2脚ずつ向かい合わせ（エイイチの記憶）。椅子を置く2辺（`parts.chair_sides`）は、ロボットが止まる辺を含まない組。下の壁ぎわの T14・T16・T17・T19 だけは壁側に座れないので、止まる辺の横に椅子が来る。椅子は半径0.2m・外形の内側・外へ引ける（`pullable: true`・`pull_dir`）
  - r4 の天板は直径0.8mの丸（`top` は外接する正方形、`top_shape: "circle"`）
  - long6：天板3.2m×0.7m、上下にスツール3つずつ（半径0.22m）。スツールは引かない（`pullable: false`・`pull_dir: null`・`stool: true`）
  - `benches` は空
- 卓の数・止まる位置・距離・道順・地図は6店とも変わっていない。③④⑤⑥⑦は版の番号と meta の説明文（rules・furniture_types）だけが変わった
- `public/sim/serving-robot-params.json`：Unity で回す店に fam_p0 を足した。unity_conditions 15件 → 18件。前の15件・common・unity_rules は前と同じ。meta.layout_generation は dffc100b269c
- ②の3条件：スタッフ2人・19組/時・ロボット0・1・2台・上げ膳・1往復3卓（0台は trays 1）・レジ1つ。19卓・88席
- 試算では、②の入店待ちは0台 2.7・1台 2.4・2台 1.6分、会計待ちは3条件とも1.3分前後。小さい店で余裕があり、ロボットの効きは小さい
- 図面で分かっていて、直さずに残したこと（Unity で見る。これだけで手を止めなくてよい）
  - 仕切り壁（y 8.6〜9.0）の右端とパントリーの壁の間が1.5m（x 8.0〜9.5）。奥の8卓（T01〜T08・36席）へ行くロボットと、トイレへ行く客が全部ここを通る。ロボット2台が同時にすれ違うには1.6m要る
  - 待機場所（x 12.2〜14.6・y 5.1〜5.9）が受け渡し口の点（10.9, 5.45）から1.3m（③⑦④⑥と同じ形）
  - 受け渡し口は上（パントリーの上の端）にもあるが、ロボットとスタッフの出発点は下だけ（今までの店と同じ扱い）
- 台帳の退避は Claude が済ませた：`/Volumes/KIOXIA/r2r2r-data/service_sim/unity/archive/unity_ledger_v1_pre_p0check_20261029/unity_ledger_v1.csv`（631行・md5 41c8ceff63036168a9d2940fb1e8c4ba）

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

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

## やること

1. サイトの params と、②③④⑤⑥⑦の店の形（`public/sim/layouts/unity/` の p0・p1・p2・p3・p4・p5 の `.json` と `_map.json`）を、今までと同じやり方でプロジェクトに写す（手で値を写さない）。generation が dffc100b269c でそろっているか確かめる。③④⑤⑥⑦は、前の写しと版の番号・meta の説明文以外が同じであることを確かめる
2. ②を今までの店と同じコード・同じ規則で建てる（地図の上で自分で道を引く動き方・すれ違い入・待機場所へ戻る 入・案B 切・店員優先のよけ方・逃がし弁・モニター、すべて今の標準のまま）
   - 卓の部品は JSON の `parts` から建てる。今のコードが t4・r4・long6 を知らない場合は、`parts` の読み方を店に関係なく使える形に広げてよい（`top_shape: "circle"` は丸い天板、`stool: true` は背のないスツール、`pullable: false` は引かない）。②のためだけの手直しはしない
   - ②の店の形のせいで建てられない・回らないところ（届かない卓、待機場所・レジ・並ぶ点が置けない、NavMesh の切れ目、建物の輪郭がL字で外壁が切れるなど）があっても、Unity 側で形を直さない。場所と理由を「決めてほしいこと」に書く（直すならサイトが先）
3. make_queue.py で `--stores fam_p0` が使えることを確かめる。**指定しないときは今までどおり ③⑦の60回**。judge_night.py は変えない（②は基準データがないので「基準なし」になってよい）
4. check-in して、画面なしの実行ファイルを作り直す（保留 0）
5. 確かめの3回を回す：② × ロボット0・1・2台 × 種0、今の標準のまま。ラベル `p0check`。同時に回す本数は4のまま
   - 台帳には3行が足される（追記だけ）。終わったら行数（631 → 634 のはず）と、先頭631行の md5 が退避と同じかを確かめる
6. make_queue の dry-run で、何も指定しないとき③⑦の60回のままであることを確かめる（台帳に書かない）
7. 作業フォルダに queue の一時ファイルを残さない

## 変えないもの

- 店の回し方・人とロボットの動き・速さ・Stiffness などの物理の設定・同時に回す本数（N=4）
- 台帳の列（59列）と今までの行。今までの night/ と出力の記録
- 本番の夜は回さない（②の夜は、確かめの結果をエイイチが見てから決める）

## 報告

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

- 始める前の確かめ5つの結果
- 入れた cs 番号・build_id と保留の有無・変えたファイル（卓の部品の読み方を広げたなら、何をどう広げたか）
- ②を建てて分かったこと（卓の数19・椅子とスツールと座る位置が全卓に建ったか・止まる位置・待機場所・レジ・スタッフが待つ点・並ぶ点（レジとドリンクバー）・トイレの入口が置けたか、置けなかった所）
- 3回それぞれ：最後まで回ったか・全員帰ったか・実時間・入れた組の数・入店待ち・そのうち席は空いているのに待った時間・料理の待ち・会計待ち・ロボットが運んだ皿の割合・往復の数・30秒以上の止まり（1往復あたり）・動けなくなった（60秒）・卓を空けた・瞬間移動・打ち切り。試算の同じ条件の値（params の site_result）と並べる。差の理由の調べはしなくてよい
- 2台の回の30秒以上の止まりの場所と理由：受け渡し口の点から 2.5 m 以内の数（待機場所での止まりを除いた数も）／仕切りの右端のすき間のまわり（x 7.5〜9.5・y 8.0〜9.6）の数／奥の区画（x が 9.5 m より左で、y が 9.0 m より上）の数／ドリンクバーのまわり（x 13.0〜21.5・y 2.6〜4.5）の数／入口・レジのまわり（x 9.0〜14.0・y が 3.8 m より下）の数
- 仕切りの右端のすき間（x 8.0〜9.5・y 8.6〜9.0）で、ロボットどうし・ロボットと人が向かい合って待った回数（分かる範囲でよい）
- 台帳の行数と先頭631行の md5
- dry-run で③⑦が60回のままか
- **エイイチが画面で②を見る手順**（Unity を開いてから、どのシーン・メニューで②の、どの条件を流せるか。短く）
- 決めてほしいこと（なければ「なし」）
