==================================================================== ② 定番の郊外型(fam_p0・記憶の店)を建てて、1回ずつ回して確かめた 依頼:20261029_23_店2を建てて確かめる.md 2026-10-29 17:32 check-in:cs:39 build_id cs39_20261029_1717(保留 0) ==================================================================== 結論 ・始める前の確かめ5つは、すべて合格だった。 ・公開版(版 dffc100b269c)の params と ②③④⑤⑥⑦の店の形を写した。版はすべてそろっていた。 ③④⑤⑥⑦は前の写しと「版の番号と meta.rules(説明文)」以外同じ。params は fam_p0 と条件3件(15〜17 番)が足されただけ。 ・②は今までと同じコードで建った。ただし、今のコードが知らなかったもの(t4・r4・long6、丸い天板、スツール、 新しい裏の部屋の名前)を読めるように、読み方を店に関係なく広げた(3 章)。②のためだけの手直しはしていない。 ・卓 19・席 88 が JSON・summary.json と一致。合わないもの なし。確かめ A も全卓・待機場所3つとも道が引けた。 ・確かめの3回(② × 0・1・2台 × 種0)は3回とも completed・全員帰った。打ち切りは 2台の回で 1。 ・2台の回の 30 秒以上の止まり 17 のうち 9 が奥の区画(うち 8 が丸テーブル T05・T06 のあいだ)、7 が待機場所1の中。 仕切りの右端のすき間では 30 秒以上の止まりは 0。 ・台帳 631 → 634 行(追記だけ)。先頭 631 行の md5 は退避と同じ。 ・何も指定しない make_queue は③⑦の60回のまま。 ==================================================================== 1. 始める前の確かめ(5つとも合格。17:00 ごろ) ==================================================================== 1. Unity エディタ:起動していない(Unity Hub だけが起動していた) 2. /Volumes/KIOXIA:マウントされている。unity_ledger_v1.lock:なし 3. 台帳 unity_ledger_v1.csv:631 行・md5 41c8ceff63036168a9d2940fb1e8c4ba(退避と同じ) 4. ServiceSim の保留:0(cs:38 head) 5. 公開中の serving-robot-params.json:meta.layout_generation dffc100b269c・unity_conditions 18 件(1回目の取得で合った) ==================================================================== 2. 写したもの(やること 1) ==================================================================== 写し元:https://pixelstomotors.com/sim/(2026-10-29 17:05 に curl で取得) 控え:unity/site_copy_dffc100b269c/(params・summary.json・unity/ の6店の JSON と地図・README.txt) 版の番号:params の layout_generation、6店の JSON と地図の meta.generation、summary.json がすべて dffc100b269c プロジェクトの前の写し(cs:38)との違い p1・p5・p2・p3・p4 の JSON:meta.generation と meta.rules(説明文)だけ違う。それ以外の違い 0 (meta.furniture_types はこの5店の JSON には無く、違いも無い) p1・p5・p2・p3・p4 の地図:meta.generation だけ違う summary.json:6店の generation だけ違う params:meta.layout_generation・stores.fam_p0・unity_conditions の 15〜17 番が足されただけ。 前の 0〜14 番・common・unity_rules は同じ どれも cp でそのまま写した(手で値を写していない)。p0 の JSON と地図は新しく足した。 ==================================================================== 3. 入れた cs・build_id・変えたファイル ==================================================================== check-in:cs:39(保留 0。回したあとも 0) 画面なしの実行ファイル:build_id cs39_20261029_1717 / unity_cs ServiceSim/cs:39 / pending_changes 空 Build Finished, Result: Success・error CS 0 変えたファイル(すべて cs:39) 足した Assets/ServiceSim/Store/Layouts/p0_memory.json・p0_memory_map.json(+.meta) 公開版の写し Assets/ServiceSim/Store/StoreLayout_p0_memory.asset(+.meta) ⑥の .asset を写し、JSON・地図・名前・写し元を差し替えた 写し直した Assets/ServiceSim/Experiment/serving-robot-params.json Assets/ServiceSim/Store/Layouts/summary.json・p1/p2/p3/p4/p5 の JSON と地図 ②を足した(⑥を足したときと同じ形。名前と番号の差し替えだけ) Editor/ServiceSimSetup.cs P0LayoutPath・HeadlessRun.layouts に② Editor/ServiceSimSiteRun.cs ②の3条件(unity_conditions の 15・16・17) Editor/ServiceSimJsonStore.cs 「② p0_memory を建てて確かめる」・版と試算の値の確かめに② Editor/ServiceSimMapPlanner.cs 「② 確かめ A」 Scenes/ServiceSim_Family.unity HeadlessRun.layouts に②(1行) 読み方を広げた(店に関係なく使える形) Store/JsonStoreLayout.cs ・卓の種類:t4・r4 → 島の卓(IslandTable)、long6 → 大人数席(LargeTable)。 種類の名前を当てるだけで、形は今までどおり parts(top・benches・chairs・seat_points)から建てる ・parts.top_shape:"circle" なら丸い天板(無い・"rect" なら今までどおり四角。ほかの値は建てずに止める) ・chairs[].stool:true ならスツール。pullable:false・pull_dir:null はもともと読めていた(引かない・向き 0) ・部屋:知らないラベルでも kind が "back" で walkable でなければ、裏の通れない部屋(事務所)として箱にする。 ②の「こおり」「冷凍庫」「保存庫」「社員トイレ」「更衣室」「冷蔵庫」「物置」がこれに当たる。 キッチンのモニターの置き場所がずれないよう、キッチン(Kitchen)にはしない Store/StorePlan.cs PlanSeat.tableRound・PlanBox.round・PlanChair.stool を足した Store/StoreBuilder.cs 丸い天板は、同じ四角に内接する円柱にする(見た目も当たりも丸。BoxCollider を外して凸の MeshCollider)。 スツールは名前を Stool にする(今の椅子も背のない箱なので、形は椅子と同じ) 今までの店(③④⑤⑥⑦)には丸い天板・スツール・知らない部屋が無いので、建つものは変わらない。 手で戻したもの(check-in していない) 建てて確かめる処理で ProjectSettings/NavMeshAreas.asset と Mat_RobotKeepout.mat が変更ありになったので cm undo で戻した(④⑤⑥と同じ)。 make_queue.py・night_runner.py・judge_night.py は変えていない。 .asset の細い通路の幅は⑥の写しのまま 1.5 m(②は細い通路 0 本なので JSON からは合わせない。使われない値)。 ==================================================================== 4. ②を建てて分かったこと(JSON Store「② を建てて確かめる」・Map Planner「② 確かめ A」) ==================================================================== 数 卓:Unity 19 / JSON 19 / summary.json 19 で一致。席 88 で一致。細い通路 0 本。外寸 24 × 19.2 m 地図のマスの数は JSON の counts と一致。合わないもの:なし 建物の輪郭 L字(左上が欠ける)。床 2 枚・外壁 7 本を JSON のまま建てた。外壁の切れ目はない (焼いた NavMesh は、ロボット用・人用とも「つながっていない面」0 m2) 卓の部品 椅子 52 脚(t4 11 卓・r4 2 卓 × 4 脚)+スツール 6 つ(long6)= 58(Unity の数え方は「椅子」)。ほかに booth6L 5 卓のベンチ。 座る位置 88 / 88(全卓)。席に着く点 57。丸い天板 2(T05・T06) 止まる位置 19 か所すべてロボット用の NavMesh の上(乗らない 0)。地図でも 19 卓すべて通れるマス 道順 受け渡し口から全 19 卓、すべての区間がつながった。JSON の dist との差は平均 −0.27 m・最大 0.59 m(T01)。 30% を超えた卓 0。狭い道を使う卓 0 席 入口 (11.0, 0.5) から全 19 卓の席に着く点まで歩ける(入れない卓 0) 場所の点 25 か所すべて NavMesh に乗った(乗らない 0)。置けなかった所はない 受け渡し口・返却口・パントリー (10.9, 5.45)/入口 (11.0, 0.5)/待合の前 (13.3, 0.9)/トイレの入口の前 (8.75, 16.4) レジ 1 (11.05, 1.8)・レジに並ぶ点 3 (11.05, 1.3 / 0.8 / 0.3)・レジの内側 (11.05, 3.3) レジの内側は人用・ロボット用とも受け渡し口から 2.16 m で行ける ドリンクバー(立つ点 1:(19.0, 3.55)/並ぶ点 3:(19.9 / 20.4 / 20.9, 3.55)) ロボットの待機場所 3:(12.6, 5.5)・(13.4, 5.5)・(14.2, 5.5)。地図では3つとも「ふだんの道」のマス スタッフが待つ点 6:x 9.25・y 6.31〜9.39(スタッフ2人) 確かめ A 引けない卓 0 / 19。待機場所3つとも道が引けた。長さの比 最小 0.979 / 平均 1.017 / 最大 1.047 気づいたこと(直していない。調べてもいない) ・席の確かめ(通る半径 0.25 m)で T19 の右の席に着く点 (23.7, 1.0) が NavMesh に乗らない(右の外壁まで 0.3 m)。 人用(半径 0.2 m)の「席に入れない卓」は 0 で、回でも T19 に座れなかった記録はない ・レジの内側:南北の歩ける幅 0.52 m で、確かめが「入口が 0.7 m 未満」と出す(レジ内の奥行き 0.8 m)。 回でレジの内側に入れなかった人は 0(register_back_intruders 0)。会計の位置がずれた回は 1台 1・2台 1 書き出し(unity/screens/) 20261029_p0_memory_json_check.txt / _table_dist.csv 20261029_1712 ごろの map_planner_checkA_p0.txt ==================================================================== 5. 確かめの3回(② × 0・1・2台 × 種0・すれ違い入・待機場所へ戻る入・案B切・ラベル p0check・同時 4 本) ==================================================================== python3 tools/make_queue.py --stores fam_p0 --seeds 0 --label p0check --out /tmp/p0c/queue_p0check.json python3 tools/night_runner.py --queue /tmp/p0c/queue_p0check.json --parallel 4 --night 20261029 --label p0check --record-name 20261029_p0check 出力 20261029_p0check_cs39_fam_p0_r{0,1,2}_s0_passon_sbret 記録 night/20261029_p0check/(runner 終了コード 0・completed 3・失敗 0) judge.md:基準なし 3(②の基準データがないため。依頼のとおり) 左が Unity、右が試算(params の site_result)。単位は分。割合は 0〜1 0台 1台 2台 最後まで回ったか completed completed completed 全員帰ったか はい はい はい 実時間 2.4 分 2.5 分 2.5 分 (参考)店の時間 164.1 分 163.7 分 164.0 分 入れた組の数 31 / 37.4 31 / 38.7 31 / 37.5 入店待ち 1.33 / 2.68 1.21 / 2.44 1.45 / 1.60 うち席は空いているのに待った 0 / 1.13 0 / 0.56 0 / 0.35 料理の待ち 0.68 / 0.60 0.95 / 0.94 0.94 / 0.40 会計待ち 0.80 / 1.31 0.72 / 1.30 1.16 / 1.25 ロボットが運んだ皿の割合 0 / 0 0.987 / 0.979 0.974 / 1.000 往復の数 0 63 73 30秒以上の止まり 0 1 17 (1往復あたり) 0 0.016 0.233 動けなくなった(60秒) 0 0 12 卓を空けた(逃がし弁) 0 0 0 瞬間移動 3 8 15 打ち切り 0 0 1 (参考)あきらめた 3 4 12 (参考)冷めた皿の割合 0 / 0.0003 0.026 / 0.009 0.065 / 0 (参考)待機場所へ戻った/出た 0 / 0 63 / 63 72 / 72(戻れず受け渡し口へ 0) (参考)ドリンクバーで並んだ/あきらめた 52 / 2 56 / 4 51 / 4 ※ 0台の瞬間移動 3 はロボットのいない回なので、人の側のもの 目立つ点(差の理由は調べていない。依頼のとおり) ・入れた組の数が3回とも 31 組で、試算(37〜39 組)より少ない(⑤⑥と同じ傾向) ・2台の回は料理の待ち 0.94 分(試算 0.40)、30 秒以上の止まり 17・動けなくなった 12 で、1台の回より悪い ・1台の回の 30 秒以上の止まりは 1 だけ(T06 の椅子の前・30.4 秒・回り込んで動き出した) ==================================================================== 6. 2台の回の 30 秒以上の止まり(17 回)の場所と理由 ==================================================================== 受け渡し口の点 (10.9, 5.45) から 2.5 m 以内 7 回(すべて「もう1台のロボット」) うち待機場所での止まりを除いた数 0 回 (7 回とも待機場所1の四角(x 12.2〜13.0・y 5.1〜5.9)の中、(12.27〜12.39, 5.41〜5.51)。 うち 4 回が 60 秒の「動けなくなった」、2 回は「よける場所へ動いた」、1 回は「自分で動き出した」) 仕切りの右端のすき間のまわり(x 7.5〜9.5・y 8.0〜9.6) 0 回 奥の区画(x < 9.5・y > 9.0) 9 回 8 回は丸テーブル T05 と T06 のあいだ((5.36, 12.41) に 1号機 3 回・(5.85, 11.98) に 2号機 5 回)。 すべて 60 秒の「動けなくなった」。理由は椅子(T05・T06 の椅子)4・もう1台のロボット 4 (店の時間 15〜24 分の間に続けて起きた。T05 の止まる位置は (5.36, 12.81)、T06 は (6.79, 11.86)) 1 回は (7.57, 13.28):もう1台のロボット・44 秒・回り込んで動き出した ドリンクバーのまわり(x 13.0〜21.5・y 2.6〜4.5) 0 回 入口・レジのまわり(x 9.0〜14.0・y < 3.8) 1 回((13.49, 1.69):人が立ち止まっていた・44 秒・自分で動き出した) 理由ごと(17 回):もう1台のロボット 12・椅子・荷物・ベビーカー 4・人が立ち止まっていた 1 動けなくなった 12 = T05・T06 のあいだ 8 + 待機場所1 4 ロボットどうしが向かい合って止まった(face_stop):25 回(待機場所 18・通路 7・受け渡し口 0)、いちばん長いもので 244 秒(待機場所) ==================================================================== 7. 仕切りの右端のすき間(x 8.0〜9.5・y 8.6〜9.0)で向かい合って待った回数(まわり y 8.3〜9.3 で数えた。分かる範囲) ==================================================================== 1台 2台 ロボットどうしのすれ違い(passes) 0 1(「幅が足りず今の決まりへ」) スタッフがロボットに道をゆずって待った 0 5(Staff01 2 回・Staff02 3 回。1.35〜7.8 秒) ロボットが止まった(30 秒未満も含む) 13 14 1台:スタッフとすれ違った 10・お客さんとすれ違った 2(最長 8 秒)・人が立ち止まっていた 1 2台:スタッフとすれ違った 8・人が立ち止まっていた 2・お客さんとすれ違った 2・もう1台のロボット 2(0.65 秒・3.45 秒) 人どうしで詰まった(people_jams) 0 1(体を横に向けて抜けた・1 秒) 客が 60 秒であきらめた(give_ups) 0 1 ロボットと人の接触(contacts) 1(客) 1(スタッフ) どれも 30 秒未満で、ここで「動けなくなった」ものはない。 ==================================================================== 8. 台帳 ==================================================================== 行数:631 → 634(3 行足した。追記だけ。3行とも unity_cs ServiceSim/cs:39・layout_generation dffc100b269c) 先頭 631 行の md5:41c8ceff63036168a9d2940fb1e8c4ba(退避と同じ) 列は今までどおり(59 列)。鍵ファイルは残っていない ==================================================================== 9. make_queue(台帳には書いていない) ==================================================================== --stores fam_p0 --seeds 0 --label p0check → fam_p0_s2_r{0,1,2}_a19 の 3 回 (0台 trays 1・1台と2台 trays 3・レジ 1・すれ違い入・待機場所へ戻る入・案B切)。make_queue.py はコードを変えずに使えた 何も指定しない(/tmp に作った) → fam_p1・fam_p5 × 0・1・2 台 × 種 0〜9 = 60 回。 night/20261102/queue.json(v5 の夜)と、回の並びと中身が同じ(label を除く) 作業フォルダに queue の一時ファイルは置いていない(/tmp/p0c/ にだけ作った)。最後の保留 0(cs:39 head)。 ==================================================================== 10. エイイチが画面で②を見る手順 ==================================================================== 1. Unity Hub から ServiceSim(/Users/shimazueiichi/Robotics_UX/ServiceSim)を開き、 シーン Assets/ServiceSim/Scenes/ServiceSim_Family.unity を開く 2. 建てるだけで見る:ServiceSim → JSON Store → ② p0_memory を建てて確かめる 3. 回して見る:ServiceSim → Site Run → ② スタッフ2人・ロボット0台 / 1台 / 2台 Play に入って回り、終わると自動で抜ける。すれ違い入・待機場所へ戻る入・案B切(今の標準)。 種は ExperimentPlan の trialSeed。出力は KIOXIA に出る(台帳には書かない) ※ 丸テーブル T05・T06 のあいだの止まりを見るなら 2台の回の店の時間 15〜24 分ごろ。 待機場所1での止まりは 43 分・53 分・96〜99 分・125〜130 分ごろ ==================================================================== 11. 決めてほしいこと ==================================================================== 1. ②の夜を回すかどうか(依頼のとおり、本番の夜は回していない)。 2. 2台の回で、丸テーブル T05・T06 のあいだに 2台が続けて入り、8 回 60 秒の「動けなくなった」になった (椅子 4・もう1台のロボット 4)。T05 の止まる位置 (5.36, 12.81) と T06 の止まる位置 (6.79, 11.86) が近く、 引いた椅子も効いているように見える。このまま夜を回すか、先にサイトで卓の並びか止まる位置を見直すか。 3. 待機場所1の中での止まり 7(すべてもう1台のロボット。4 回は 60 秒)。③⑦④⑥と同じ「待機場所が受け渡し口の前の近く」の形。 4. 入れた組の数が 31 組で、試算(37〜39 組)より少ない(⑤⑥と同じ傾向)。 5. 卓の部品の読み方の広げ方(3 章)でよいか。特に、知らない名前の裏の部屋を「kind = back なら事務所の箱」にしたこと (サイトの JSON に部屋の種類を足してもらう方がよければ、そちらに合わせて戻す)。 6. 4 章の気づいたこと(T19 の右の席に着く点が壁から 0.3 m、レジの内側の南北 0.52 m)を調べるかどうか。 どちらも回は最後まで回っているが、店の形のことなので、直すならサイトが先。