サービスロボット導入シミュレーション Log#37 | 配膳ロボットの止まり合いを減らす3つの決まり
この記事の素材(コード・ログ・データ 9ファイル・まとめてダウンロードあり)arrow_downwardAIで読む ChatGPT・Claude などで、この記事に質問できます expand_more
70卓・312席の大型ファミレスを Unity の3Dで再現したシミュレーションでは、スタッフとお客さんが配膳ロボットの待機点の列を通り道にせず、ロボットが待機点へまっすぐ入る決まりにすると、ロボット5台の待機場所のそばの止まり合いは1回の営業あたり809秒になり、スタッフがロボットを助けに呼ばれる回数は180回から22回に減りました。 どちらも、同じお客さんの来かたで10回回した中央値です。実物の店で測った数字ではなく、シミュレーションの中の結果です。
この回で、次のことが良くなり、できるようになりました。
- スタッフがロボットに手を取られる時間が減った。ロボット5台の店で、30秒動けないロボットを助けに行く呼び出しは1回の営業あたり180回から22回へ、スタッフが手すきでいる時間の割合は20.3%から38.6%へ変わった。呼び出しのほとんどは、待機点で止まっている台が人の通り道をふさいでいるというものだった
- 近くのスタッフがロボットをすぐ押す、待機点へまっすぐ入る、人は待機点の列を通らない、の3つをサイトの決まりの標準にした。Unity は何も指定しなくてもこの形で動くことを、前の結果と全く同じ数が出ることで確かめた。ほかの店も、次からこの形で回せる
- 大型店⑧を、ロボットの種類ごとに決めている、ベースとして合格の線5つで点検した。配膳は5つのうち4つ、下げ膳は4つを満たし、下げ膳の残り1つは動画を撮れば満たせる。残った問題は、ロボットではなくスタッフ1人が片付けの途中で約1時間40分止まったままになる回があることで、次に調べる所がはっきりした
困っていたのは、前の回(LOG456)の終わりの結果でした。待機点(ロボットが仕事のない間に待つ場所)の真下からまっすぐ入る決まりで、ロボットどうしの止まり合いは減ったのに、入店待ちは12.2分から14.9分に延びていました。調べると、Unity のスタッフとお客さんが待機点の列の中を通り道にしていて、止まっている台が人の道をふさいでいるとして、30秒の呼び出しが5台で1回の営業あたり180回も鳴っていました。現実の店なら、並んで待つロボットの列は人がよけて通ります。
| やったこと | なぜ | 結果 |
|---|---|---|
人が待機点の区画を通り道にしない形を入れた(依頼119) | 現実の店では、待機中のロボットの列を人がよけて通るため | 30秒の呼び出しは5台で180回→22回。待機場所のそばの止まり合いは1,255秒→809秒 |
2台が互いに相手を待って動かなくなる待ち合いを解いた(依頼119) | まっすぐ入る形で、4時間も動かない回があったため | 解けなかった3回が、どれも数秒〜十数秒で解けた |
3つの決まりをサイトの標準にした | 比べた結果、3つとも入れたほうが店が回ったため | 店の形と試算の数字は変わらない |
⑧の配膳と下げ膳を標準の形で回し、合格の線5つで点検した(依頼120) | 配膳ロボットのベースとして、⑧を区切るため | 配膳4/5・下げ膳4/5。下げ膳の動画と、スタッフの止まりが残った |
この回でも、Unity の中のずれを全部直すことは目的にしていません。何を変えたら何が変わったかを数で並べ、店で問題が起きたときに原因を切り分ける材料にしています。
配膳ロボットを自分の店に入れたらどうなるかは、このシリーズの試算をもとにした別のページで試せます。
作業ログ ― 前の回で下書きのまま残した依頼を、依頼119として出した
前の回(LOG456)は、どこまでやったら終わりかを先に決めずに直し続けていた反省から、人が待機点を通らない形を入れる依頼を下書きのまま残して区切りました。この回は、その下書きを出すところから始めています。
下書きは依頼118 の番号で作っていましたが、そのあいだにロボットアーム(mechArm)側の依頼が118 を使っていました。依頼箱は、Unity の依頼とアームの依頼で番号が被らないようにする決まりなので、こちらを119 に付け替え、回の名前(sb119)・報告のファイル名・録画のフォルダもそろえました。中身は下書きと同じです。サイトの決まり(params)には、前の回の commit 453df0f で people_avoid_standby(人は待機点の区画を通らない)を既定は切で足してあります。
この回で使う言葉:待機点・入る点・人の通り道・種・30秒の呼び出し・合格の線
| 言葉 | 意味 |
|---|---|
| 待機点 | 配膳ロボットが、運ぶ料理がない間に止まって待つ場所。⑧ではパントリー(料理を出す棚)の前の壁ぞいに、6つが0.8m 間隔で1列に並んでいる |
| 入る点・まっすぐ入る | 待機点の真正面に1.0m 下がった点。まっすぐ入る決まりでは、戻るロボットはこの点まで来てから待機点へまっすぐ入る。斜めに寄ると、隣で待つ台が前のセンサー(ロボットの中心から0.85m 先まで)に入って止まり合うため |
| 人の通り道 | Unity で人やロボットが歩ける床の面(NavMesh という仕組み)。床に区画を作って、そこを通るときの重み(この記事では通り賃と書く)を変えると、道を引くときにその区画を避けるようになる |
| 種 | お客さんがいつ何人で来るかなど、偶然で決まる部分を作るための番号。種が同じなら同じお客さんが同じ時刻に来るので、決まりを変えたときの違いだけを比べられる。1つの条件を種0〜9の10回で回し、真ん中の値(中央値)で見る |
| 30秒の呼び出し | ロボットが30秒動けないと、スタッフが呼ばれて助けに行く決まり。60秒動けないと、動けなくなった回として数える |
| 待ち合い | 2台が互いに相手の入る点の手前で、相手が動くのを待って止まること。どちらも相手を待つので、だれかが動かさないと解けない |
| 型D | 依頼104 で待機場所のそばの止まり合いを型に分けたうちの1つ。止まっては少し動くをくり返し、抜けられない行ったり来たり |
| ベースとして合格の線5つ | ロボットの種類ごとに、サイトのベースとして区切ってよいかを見る線。瞬間移動が0、同じ条件・同じ種で同じ結果、止まったまま解けない所が残らない、試算と向きが合う、サイト用の図面と動画がそろう、の5つ |
| 依頼箱 | Unity の作業を Claude Code に頼む仕組み。依頼文を iCloud のフォルダに置くと、Mac で Claude Code が順に作業し、結果を書き戻す |
Unity は、ゲームや3Dの場面を作る道具です。このシリーズでは、店の形と条件をサイトの試算から写し、Unity の中に店を建てて、お客さん・スタッフ・ロボットを動かしています。店の形・条件・回し方の決まりの正はサイトで、Unity はそれを読みます。
作業ログ ― 依頼119:人が待機点の区画を通らない形にして、まっすぐ入るを比べ直した
この記事のコード・ログ・データは、1ファイルずつ下に置いています。全文はリンク先にあります。
ファイルの一覧(9本)
01_sec02.txt ― 依頼119 の依頼文・3,437字
02_sec02.txt ― 依頼119 の結果・3,413字
03_sec02.txt ― 依頼119 の Claude Code の報告(20261107_sb119.txt)・17,668字
04_sec02.txt ― 依頼119 の集計の出力(agg119_out.txt)・6,616字
05_sec02.txt ― 入店待ちの違いを調べた出力(why119_out.txt)・4,034字
06_sec03.txt ― params の差分(p2m-site commit a64fa36)・6,410字
07_sec04.txt ― 依頼120 の結果・3,015字
08_sec04.txt ― 依頼120 の Claude Code の報告(20261108_base8.txt)・12,024字
09_sec04.txt ― 依頼120 の集計の出力(agg120_out.txt)・4,950字
依頼119 では、前の回で決めた4つを Unity に入れ、⑧の配膳でロボット2〜5台を、斜めに寄る形とまっすぐ入る形で40回ずつ回しました。
- 人(スタッフ・お客さん)は、待機点の区画を通り道にしない。待機点そのものに用がある人(ロボットを動かしに行く・30秒の呼び出しで行く)は入ってよい
- 2台が待ち合ったら、受け渡し口に近い待機点へ入る台が先に入る
- 入る点の手前で順番を待っている台は、スタッフが動かさない
- 30秒の呼び出しのあとも、台がその場から動いていなければ止まりの秒を続けて数える
Claude Code は、区画を通れなくするのではなく、人の道を引くときだけ区画の通り賃を1,000倍にしました。区画の外に回り道があれば必ずそちらを通り、行き先が区画の中の人だけがその分だけ入ります。最初は待機点の区画そのままで付けたところ、人の道が区画の縁の線の上を通り、体の半分が区画に入ってしまったので、人の半径0.2mだけ広げて付け直しています。店の中の人の行き先415点のすべての組(168,526組)で、行けなくなった組が0であることも確かめています。

依頼119 の依頼文
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 480
---
# 依頼119:人は待機点の区画を通らない・待ち合いを解く・数え方をそろえる、を入れて、⑧で「まっすぐ入る」を比べ直す
依頼114 の報告(claude_code_reports/20261107_sb114.txt)を読んで、エイイチと決めたこと(2026-11-07):
1. 人(スタッフ・お客さん)は、ロボットの待機点の区画を通り道にしない。待機中のロボットの列は人がよけて通るのが現実の店の形のため。params の unity_rules.people_avoid_standby(既定は切)。待機点そのものに用がある人(ロボットを動かす・物を取る)は入ってよい依頼119 の結果
# 結果:20261107_119_人が待機点を通らず待ち合いを直して⑧でまっすぐ入るを比べ直す
- 状態:完了
- 始めた時刻:2026-11-07 22:11
- 終わった時刻:2026-11-08 00:08(118分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume d45eaa08-acd3-41b3-88e2-4c6068ee0c78`
依頼119 の Claude Code の報告(20261107_sb119.txt)
====================================================================
依頼119:人は待機点の区画を通らない・待ち合いを解く・数え方をそろえる、を入れて、⑧で「まっすぐ入る」を比べ直す
2026-11-07 22:10〜2026-11-08 00:10 作業場所 cs:99 → cs:100 → cs:101(本番・撮影は cs:101)
====================================================================
結論
・0〜5 をすべてやった。止める線(瞬間移動・同じ種の2回の違い)には当たっていない
・2 の確かめはすべて通った依頼119 の集計の出力(agg119_out.txt)
依頼119:⑧ large_p6 serve・すぐ押す 入・人の先よけ 切・1列の店の形(large-99db3254b08b)。10 種の中央値(回数・秒は1回あたり)
sb119ret 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 [7]
sb119ret 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし
sb119ret 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし
sb119ret 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 [5]
sb119se 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし
sb119se 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし
sb119se 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし入店待ちの違いを調べた出力(why119_out.txt)
== 2台(ret 10 回・se 10 回)==
項目 sb119ret sb119se
入店待ち(分) 10.29 10.61
満席の時間(分) 89.5 91.5
回の長さ(分) 283.0 278.5
入店を待つ組(平均) 4.16 4.49
片付けを待つ卓(平均) 0.33 0.29
片付け中の卓(平均) 1.45 1.46人が待機点を通らない形の、前と後(⑧・ロボット5台・10種の中央値)
| 項目 | 斜めに寄る・人は通る(依頼114) | まっすぐ入る・人は通る(依頼114) | 斜めに寄る・人は通らない(依頼119) | まっすぐ入る・人は通らない(依頼119) |
|---|---|---|---|---|
待機場所のそばの30秒以上の詰まり | 3,317秒 | 1,255秒 | 2,115秒 | 809秒 |
| ロボットの止まりの合計 | 11,083秒 | 8,703秒 | 8,544秒 | 5,709秒 |
| 60秒動けなくなった | 24.0回 | 23.0回 | 19.0回 | 12.0回 |
| 30秒の呼び出し | 115.5回 | 180.0回 | 31.0回 | 22.0回 |
うち止まっている台が人の道をふさいでいた | 85.0回 | 164.5回 | 4.0回 | 3.0回 |
| スタッフの手すきの割合 | 25.6% | 20.3% | 37.4% | 38.6% |
| 全員が帰った回 | 10/10 | 10/10 | 9/10 | 10/10 |
| 入店待ち(参考) | 12.22分 | 14.90分 | 10.85分 | 13.24分 |

- ねらい:待機中のロボットの列を人がよけて通る、現実の店の動きにそろえる
- 変わったこと:まっすぐ入る形で、30秒の呼び出しは180回から22回、そのうち人の道をふさいだ分は164.5回から3回になった。スタッフの手すきは20.3%から38.6%
- 見込める効果:Unity のスタッフが、現実の店ではしないロボットの助けに取られなくなり、ロボットの台数や決まりを変えたときの差を、人の動きのゆがみを混ぜずに比べられる
人が待機点を通らない形でも、まっすぐ入る形のほうが、待機場所のそばの詰まり・止まり・60秒・呼び出しのどれも少なくなりました。入店待ちの中央値はまっすぐ入る形のほうが2.4分長いものの、種ごとに見ると10回のうち8回は差が0.6分以内で、差のほとんどは種7の1回で片付けが遅れたことによります。

依頼119 で新しく見つかった、抜けられない行ったり来たり
斜めに寄る形では、待機点1 から出る台が、待機点2 の台の横で、前の見張りで止まっては少し動くをくり返し、営業の終わりまで抜けられない回が3回出ました(2台・種7、5台・種5、3台・種4)。2台・種7 では2,020回くり返しています。止まりが毎回5秒にも30秒にも届かないので、近くのスタッフも30秒の呼び出しも来ません。人が待機点を通らなくなり、人の道をふさいでいるとして待機点の台を動かす呼び出しが無くなったため、台がその場から動かされなくなったと Claude Code は見ています。まっすぐ入る形では0回でした。
もう1つ、前からの作りの穴も見つかりました。人用の面(半径0.2m)を焼いているのに、その面の種類の番号が負になっていて0に丸められ、人は実際にはロボット用の面(半径0.25m)を歩いていました。直すと今までのどの回とも人の道が変わるので、この回では直していません。
作業ログ ― 依頼119 の結果を見て決めたこと:3つの決まりを標準にした
依頼119 の報告には、決めてほしいことが5つ書かれていました。Claude の案を添えて相談し、案のとおりに決めました。
| 決めてほしいこと | 決めたこと |
|---|---|
まっすぐ入る形(standby_straight_entry)を標準にするか | 標準にする。人が待機点を通らない形(people_avoid_standby)も一緒に標準にする |
斜めに寄る形で出た、抜けられない行ったり来たりを直すか | 標準から外れるので直さない。記録だけにする |
人がロボット用の面を歩いている件を直すか | 今は直さない。次に基準データを取り直すときに一緒に直す |
cs:100 の確かめ2回(区画が人の道に効いていなかった作り)を、台帳の除く一覧に入れるか | 入れる |
通り賃1,000倍・人の半径0.2m 広げる作り方でよいか | このままでよい |
もう1つ、近くのスタッフがロボットをすぐ押す決まり(staff_moves_robot)が、サイトではまだ切のままでした。依頼101b からの⑧の比べは、すべてこれを入にして回しています。⑧を標準の形で固めるなら、これも標準にしないと、比べてきた条件と標準がずれます。これも標準にすると決めました。
決まりの正はサイトなので、先にサイトの params の3つを true にして公開し(p2m-site commit a64fa36)、そのあとで Unity が写す依頼を出しています。店の形と試算の数字は変わっていません。
- ねらい:比べてきた中でいちばん店が回った形を、何も指定しないときの形にする
- 変わったこと:3つの決まりが、サイトでも Unity でも既定で入になった。今までの基準データ(v5 など)は、この3つなしで回したもの
- 見込める効果(見込み):次にほかの店や⑨を回すとき、毎回3つを指定し忘れて条件がずれることがなくなる。確かめは次の依頼で、⑨をこの形で回して見る
params の差分(p2m-site commit a64fa36)
commit a64fa36afe3368648470670e9151b2b8e50633b3
Author: Claude <noreply@anthropic.com>
Date: Sun Nov 8 07:05:39 2026 +0900
params: スタッフがすぐ押す・待機点へまっすぐ入る・人は待機点を通らない、の3つを標準(入)にする
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LevEXT5BFS6fEzwboVz1T4作業ログ ― 依頼120:⑧の配膳と下げ膳を標準の形で固めた
⑧の配膳は、依頼119 のまっすぐ入る形の40回が、そのまま標準の形と同じ作りです。そこで回し直さず、依頼120 では次の3つだけを頼みました。何も指定しない既定のままで依頼119 と同じ結果が出るか、⑧の下げ膳(食べ終えた皿をロボットが洗い場へ運ぶ使い方)を標準の形で40回、配膳と下げ膳それぞれで合格の線5つを表に、です。
依頼120 の依頼文
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 240
---
# 依頼120:3つの決まりを標準(入)にして、⑧の配膳と下げ膳を標準の形で固める
依頼119 の報告(claude_code_reports/20261107_sb119.txt)を読んで、エイイチと決めたこと(2026-11-08):
1. 次の3つを標準(入)にする。サイトの params で value を true にした(p2m-site commit a64fa36)
- staff_moves_robot(近くのスタッフがすぐ押す。repeat_stop は切のまま)
- standby_straight_entry(待機点へまっすぐ入る)
- people_avoid_standby(人は待機点の区画を通らない)
2. 斜めに寄る形(standby_straight_entry 切)の、抜けられない行ったり来たり(型D)は直さない。記録だけ(決めてほしいこと2)
3. 人がロボット用の面を歩いている件(人の面の種類の番号が負)は今は直さない。次に基準データを取り直すときに直す(決めてほしいこと3)
4. 台帳の cs:100 の chk119a・chk119b の2行は、除く一覧に入れる(決めてほしいこと4)
5. 人は待機点を通らないの作り方(通り賃 1,000 倍・区画を人の半径 0.2m 広げる)は、このままでよい(決めてほしいこと5)
⑧の配膳は、依頼119 の sb119se がこの標準の形と同じ作り(cs:101)なので、回し直さず⑧の配膳の基準にする。この依頼では、標準が既定で効くことを確かめ、⑧の下げ膳を標準の形で回して、⑧が「ベースとして合格」の線5つを満たすかを表にする。
範囲は⑧(large_p6)だけ。⑨・ほかの店は回さない(既定が変わるので、ほかの店はあとの依頼で回し直す)。作りの直しはしない。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**
## 始める前に確かめること(違えば回さずに報告して終わる)
1. 作業場所・Builds/headless が cs:101、保留 0。Unity・night_runner/rec_runner が動いていない。KIOXIA がマウント済み、unity_ledger_v1.lock がない。台帳と除く一覧を archive/unity_ledger_v1_pre_120_20261108/ に退避(行数と md5 を報告に)
2. サイトの params(p2m-site a64fa36 の public/sim/serving-robot-params.json。md5 38daf9dc840535bc8478a470b217a817)を写し直し、依頼119 の写し(site_copy_large-99db3254b08b_sb119/params.json)との違いが、unity_rules の staff_moves_robot・standby_straight_entry・people_avoid_standby の value(false → true)と、その3つの note の文だけであることを確かめる。Experiment/serving-robot-params.json に写して check-in(ファイルを指定して cm ci。保留 0)。作りは変えないので、実行ファイルは params の写しが入る形で作り直す
## 1. 除く一覧
- 台帳の cs:100 の chk119a・chk119b の2回を、回のフォルダ名で除く一覧に足す(依頼104 で決めた形)。足した行と md5 を報告に
## 2. 標準が既定で効くことの確かめ(通らなければ 3 は回さない)
- ⑧5台 serve 種0 を、3つの切り替え(すぐ押す・まっすぐ入る・人は待機点を通らない)を引数でも queue でも指定せずに2回回す
- 2回が一致すること。出力フォルダ名の末尾に _smove・_se・_pav が付き、conditions.json に3つが入として書かれていること
- 依頼119 の chk119a(cs:101)と、回の名前・書いた時刻・cs と実行ファイルの名前以外が一致すること。違えば、どのファイルのどこが違うかを書いて止める
- 瞬間移動 0
## 3. 回す(画面なし・同時4本・既定のまま=標準の形)
- ⑧ bus(下げ膳)2〜5台(条件 133・139・140・141)× 種0〜9 = 40回(label base8bus)
- 1回の上限は 90 分。止まっても回し直さない
## 4. 表(10種の中央値)
1. ⑧の配膳(依頼119 の sb119se・40回)と下げ膳(base8bus・40回)を、2〜5台それぞれで:入店待ち・料理ができてから届くまで・2分待って人が運んだ皿・往復数・ロボットの止まりの合計秒・うちロボット同士・60秒動けなくなった回数・30秒の呼び出し・スタッフが動かした回数・待機場所のそばの30秒以上の詰まり(依頼104 の型分け。型D と待ち合いは別に)・全員が帰った回・片付けを待つ卓・スタッフの手すきの割合
2. サイトの試算との向き:params の unity_conditions の site_result の entry_wait_mean・dish_wait_mean(配膳は 92・136・137・138、下げ膳は 133・139・140・141)と、Unity の中央値を並べ、台数を 2→3→4→5 と増やしたときに上がるか下がるかが同じかを書く(数の大きさは合わせなくてよい。記録だけ)
3. ⑧の「ベースとして合格」の線5つを、配膳と下げ膳それぞれで ○/× と根拠の数で書く
- 瞬間移動 0
- 同じ条件・同じ種で同じ結果(2 の確かめ)
- 止まったまま解けない所が残らない(回の終わりまで続いた型D・待ち合いが 0、全員が帰った回が 10/10)
- 試算と向きが合う(上の 2)
- サイト用の図面と動画がそろう(図面はサイトの⑧。動画は依頼119 の rec119 と slow_now_se_panel.mp4 があること。下げ膳の動画はないなら × と書く。撮らない)
## 止める線
瞬間移動が1回でも出たとき、または同じ種の2回が違ったとき。止めたら報告に書き、ほかの項目は続ける。
## 報告
claude_code_reports/20261108_base8.txt に:始める前の確かめ、params の違い、1 の除く一覧、2 の確かめ、3 の回の数と全員が帰らなかった回、4 の表、台帳の行数の変化と md5。
**報告の最後の1行は必ず次のどれか**:「判定:合格」/「判定:止めた(決めてほしいことあり)」/「判定:失敗」
依頼120 の結果
# 結果:20261108_120_3つの決まりを標準にして⑧の配膳と下げ膳を標準の形で固める
- 状態:完了
- 始めた時刻:2026-11-08 07:06
- 終わった時刻:2026-11-08 07:54(48分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume 0d304bd8-b699-448d-8ccc-c03c271775b8`
依頼120 の Claude Code の報告(20261108_base8.txt)
====================================================================
依頼120:3つの決まりを標準(入)にして、⑧の配膳と下げ膳を標準の形で固める
2026-11-08 07:06〜08:00 作業場所 cs:101 → cs:102(params の写しだけ。作りは変えていない)
====================================================================
結論
・始める前の確かめ・1〜4 をすべてやった。止める線(瞬間移動・同じ種の2回の違い)には当たっていない
・params の違いは依頼どおり3つの value(false → true)と、その3つの note の文だけだった依頼120 の集計の出力(agg120_out.txt)
依頼120:⑧ large_p6・標準の形(すぐ押す 入・まっすぐ入る 入・人は待機点を通らない 入・repeat_stop/standby_queue/人の先よけ 切)。10 種の中央値(回数・秒は1回あたり)
sb119se 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0
sb119se 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)1
sb119se 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0
sb119se 5台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)1
base8bus 2台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0
base8bus 3台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0
base8bus 4台:回の数 10・瞬間移動 0・1コマの跳び 0・全員が帰らなかった種 なし・回の終わりに開いていた詰まり(nowarp_jams.open_at_end)0合格の線5つの判定のしかたを2つ決めた
依頼120 の報告では、配膳が5つのうち4つ、下げ膳が3つでした。通らなかった所のうち、試算と向きが合うかの線は、差がごく小さい所で向きが逆になっていました。配膳の料理が届くまでは4台1.63分→5台1.64分で、試算は下がるのに Unity は0.01分上がっています。下げ膳の入店待ちは、試算が3台7.20分→4台7.18分とほぼ横ばいなのに、Unity は10.20分→11.88分と上がっていました。
これを逆と数えると、種の揺れより小さい差で合否が決まってしまいます。そこで、サイトか Unity のどちらかの差が0.5分未満なら横ばいとし、逆とは数えないと決めました。
もう1つは、止まったまま解けない所が残らないかの線に、人の止まりも入れるかです。配膳の3台・種6 と5台・種6 で、スタッフ1人が片付けの途中で止まったまま、営業の終わりまで約6,200秒(約1時間40分)残っていました。ロボットではありませんが、店の中で人が1時間以上止まっているのは作りの問題です。人の止まりも入れると決めました。
- ねらい:合格の線を、種の揺れに振り回されず、人の動きの穴も見落とさない線にする
- 変わったこと:向きの線は配膳・下げ膳とも○になり、解けない所の線は配膳が×になった
- 見込める効果:ほかの店の点検でも、同じ物差しで○×を付けられる
⑧の合格の線5つ(判定のしかたを決めたあと)
| 線 | 配膳 | 下げ膳 |
|---|---|---|
| 1 瞬間移動0 | ○ 40回で0 | ○ 40回で0 |
| 2 同じ条件・同じ種で同じ結果 | ○ 2回とも21ファイル一致、依頼119 とも一致 | ○ 同じ実行ファイルで確かめが通った |
3 止まったまま解けない所が残らない | × ロボットは0、全員が帰った10/10。ただしスタッフの片付けの止まりが2回 | ○ ロボットも人も0、全員が帰った10/10 |
4 試算と向きが合う(0.5分未満は横ばい) | ○ 入店待ちは下がって上がって上がる、で同じ。料理が届くまでの4→5台は横ばい | ○ 料理が届くまでは同じ。入店待ちの3→4台は試算が横ばい、4→5台は Unity が横ばい |
5 サイト用の図面と動画がそろう | ○ 図面と、まっすぐ入る形の動画がある | × 下げ膳の動画がない(依頼122 で撮る) |
試算と Unity の、台数を増やしたときの向き(⑧・10種の中央値)
| 台数 | 配膳の入店待ち 試算/Unity(分) | 配膳の料理が届くまで 試算/Unity(分) | 下げ膳の入店待ち 試算/Unity(分) | 下げ膳の料理が届くまで 試算/Unity(分) |
|---|---|---|---|---|
| 2台 | 7.24/10.61 | 1.86/2.30 | 7.34/10.22 | 1.91/2.36 |
| 3台 | 6.50/10.31 | 1.25/1.87 | 7.20/10.20 | 1.31/2.08 |
| 4台 | 7.35/10.64 | 0.86/1.63 | 7.18/11.88 | 0.93/1.94 |
| 5台 | 8.24/13.24 | 0.69/1.64 | 9.24/11.71 | 0.74/1.90 |
数の大きさは、Unity のほうが入店待ちで3〜5分長くなっています。大きさは合わせず、向きだけを見る決まりです(2026-10-22 に決めた、何について正かの分け方)。
下げ膳はどの台数でも、配膳より往復数が1.2〜1.4倍多く、止まり・呼び出し・スタッフが動かした回数も多くなりました。5台の下げ膳では、ロボットの止まりの合計が9,384秒、スタッフがロボットを動かした回数が166回です。ロボットを増やすほど人の手が要るという形は、下げ膳のほうが強く出ています。
作業ログ ― 次の依頼122:実行ファイルの既定・スタッフの片付けの止まり・⑧の比較動画
依頼120 の報告には、もう2つ気づいたことがありました。1つは、実行ファイルを直接起こすと、3つの決まりがサイトの既定を読まずに切になることです。いつもの回し方(night_runner を通す)では入になりますが、回し方で結果が変わる穴なので直します。もう1つは、上のスタッフの片付けの止まりで、依頼119・114・101 の回にも同じものがありました。直し方を決める前に原因を調べます。下げ膳の動画は、配膳だけと配膳+下げ膳を並べた⑧の比較動画として、標準の形で撮り直します。
依頼122 は、アーム側の依頼121 のあとに始まるよう依頼箱に置きました。結果は次の回に書きます。
依頼122 の依頼文
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 360
---
# 依頼122:実行ファイルの既定をサイトの決まりから読む形に直し、スタッフの片付けの止まりを調べ、⑧の配膳だけ/配膳+下げ膳の比較動画を標準の形で撮り直す
依頼120 の報告(claude_code_reports/20261108_base8.txt)を読んで、エイイチと決めたこと(2026-11-08):
1. 実行ファイルそのもの(HeadlessRun.cs)の既定も、params の unity_rules から読むように直す(決めてほしいこと1)
2. 「ベースとして合格」の線3(止まったまま解けない所が残らない)には、人の止まりも入れる。⑧の配膳は 3台・種6/5台・種6 のスタッフの片付けの止まりで × になる。この依頼では原因を調べるだけで、直さない(直し方はエイイチと決めてから)
3. 線4(試算と向き)は、サイトか Unity のどちらかの差が 0.5 分未満なら「横ばい」とし、逆とは数えない。これで⑧は配膳・下げ膳とも ○
4. ⑧の下げ膳の動画(線5)は撮る
範囲は⑧(large_p6)だけ。⑨・ほかの店は回さない。片付けの止まりの直しはしない。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**
## 始める前に確かめること(違えば回さずに報告して終わる)
1. 作業場所・Builds/headless が cs:102、保留 0。Unity・night_runner/rec_runner が動いていない(前の依頼はアーム側)。KIOXIA がマウント済み、unity_ledger_v1.lock がない。台帳と除く一覧を archive/unity_ledger_v1_pre_122_20261108/ に退避(行数と md5 を報告に)
2. Experiment/serving-robot-params.json がサイト p2m-site a64fa36 の写しのまま(md5 38daf9dc840535bc8478a470b217a817)であること
## 1. 実行ファイルの既定を params から読む(作りの直し)
- HeadlessRun.cs で、切り替えの引数(-ssStaffMovesRobot・-ssStandbyStraightEntry・-ssPeopleAvoidStandby など)が無いときは、params の unity_rules の value を既定にする。引数があれば引数を使う(night_runner の動きは変えない)
- 上の3つのほかに、unity_rules の site_rule の項目で、引数が無いと params を見ずに決まっているものがあれば、同じ形にそろえ、どれをそろえたかを報告に書く
- check-in(ファイルを指定して cm ci・保留 0)して実行ファイルを作り直す
- 確かめ:⑧5台 serve 種0 を、night_runner を通さず実行ファイルを引数なし(店・条件・種・出力先だけ)で直接起こして2回回し、2回が一致し、依頼120 の chk120a と回の名前・時刻・cs と実行ファイルの名前以外が一致すること。違えば、どこが違うかを書いて 3 の撮影は止める(2 の調べは続ける)
## 2. スタッフの片付けの止まりを調べる(直さない)
- 対象:依頼120 で見つけた配膳の 3台・種6(11,724 秒〜回の終わり・x 4.5, y 13.2)と 5台・種6(11,718 秒〜回の終わり・x 2.2, y 4.0・通路 A01)。あわせて、依頼119 の sb119ret(4 回)・依頼114 の sb114se(11 回)・sb114ret(9 回)・依頼101 の sm101p6on(5 回)の同じ止まりを一覧にする(回・スタッフ・始まりの時刻・長さ・場所・その時していた仕事)
- それぞれ、そのスタッフが何をしようとして、何に止められ、なぜ解けないのか(道が引けない・行き先がふさがっている・仕事の取り合い・ほかの人やロボットとの待ち合い など)を記録から調べる。記録で分からなければ、画面なしで回し直してログを足してよい(その一時の作りは check-in しない。台帳に書かない)。必要なら止まった所の上から見た画像を1〜2枚作る
- 直し方の候補を2〜3つ書く(どれも作らない)。候補ごとに、ほかの店や今までの結果に何が変わりそうかを添える
## 3. ⑧の比較動画を標準の形で撮り直す(1 が通れば撮る)
- 依頼98 の compare_serve_bus_large_p6_v2.mp4(配膳だけ/配膳+下げ膳を左右に並べ、詰まっている所に寄せ、店の時刻の5倍で流すパネル付き)と同じ台数・種・撮り方・切り方で、標準の形(cs:103 以降の実行ファイル・既定のまま)の配膳と下げ膳を1本ずつ撮り、並べた動画を作る
- 寄る5分は、新しい録画で詰まっている所を選び直してよい(選んだ時刻と場所・理由を報告に)
- 題「⑧ 配膳だけ と 配膳+下げ膳(標準の形)」。置き場所:/Volumes/KIOXIA/r2r2r-data/service_sim/unity/rec_base8_20261108/
- 撮った回の名前が、撮らない回や前の撮影と同じにならないようにする。依頼98 の動画は変えない
- 題・帯・左右のパネルが切れていないかを、4コマ並べて目で見る
## 止める線
瞬間移動が1回でも出たとき、または同じ種の2回が違ったとき。止めたら報告に書き、ほかの項目は続ける。
## 報告
claude_code_reports/20261108_fix122.txt に:始める前の確かめ、1 の直し(どのファイルのどこ・そろえた項目)と確かめ、2 の一覧・原因・直し方の候補(画像があれば置き場所)、3 の動画の名前・長さ・寄った5分、台帳の行数の変化と md5。
**報告の最後の1行は必ず次のどれか**:「判定:合格」/「判定:止めた(決めてほしいことあり)」/「判定:失敗」
残した候補
| 起きた場面 | 原因の候補 | 切り分け方 |
|---|---|---|
スタッフ1人が片付けの途中で、営業の終わりまで止まったまま | 道が引けない・行き先がふさがっている・仕事の取り合い・人どうしの待ち合い | 依頼122 で記録から1回ずつ調べ、直し方の候補を2〜3つ出してから決める |
斜めに寄る形で、止まっては少し動くをくり返して抜けられない | 止まりが5秒に届かず、だれも助けに来ない | 標準から外れたので今は直さない。⑨や下げ膳で出たら、くり返し止まる決まり(repeat_stop)の入と切で比べる |
人がロボット用の面を歩いている | 人用の面の種類の番号が負で、0に丸められる | 次に基準データを取り直すときに直し、前と後を比べる |
下げ膳はロボットを増やすほど人の手が要る | 往復数が多く、待機場所のそばの詰まりも多い | ⑨を標準の形で回し、店の形が違っても同じ形が出るかを見る |
この回で決めたことは次のとおりです。
- 近くのスタッフがすぐ押す・待機点へまっすぐ入る・人は待機点の区画を通らない、の3つをサイトの標準(入)にした(p2m-site commit a64fa36)
- ⑧の配膳は依頼119 のまっすぐ入る形の40回、下げ膳は依頼120 の40回を、標準の形の⑧の結果にする
- 合格の線の向きは、サイトか Unity のどちらかの差が0.5分未満なら横ばいとし、逆と数えない
- 止まったまま解けない所の線には、人の止まりも入れる
- 実行ファイルの既定も、サイトの決まりから読むように直す