====================================================================
立ち往生をスタッフが解く作りを入れた。⑦の確かめで変な動きが出たので、基準データの 180 回は回していない
依頼：20261103_76_直した版で基準データを取り直す.md（依頼75 の後・夜）
2026-11-03 10:56〜11:25　check-in：cs:63　build_id 画面なし cs63_20261103_1114（保留 0）
====================================================================

結論

  ・依頼の 0（立ち往生の助け）を切り替えで入れ、既定を入にした（cs:63・画面なしの実行ファイルを作り直した）
  ・⑦（fam_p5・種7・2台）で確かめた。前に約9分止まっていた (20.4, 5.0) 付近の向かい合いは、
    助け2回・約105秒で解けた（1回目は 30 秒＋スタッフが着くまで約6秒＋15 秒＝51.3 秒）
  ・ただし、依頼が「180 回は回さずに止める」とした変な動きが2つとも出た
      (1) 同じ所で何度も助けが要る：往復を終えて止まっている2号機に1号機が阻まれ、同じ所で助けが続いた
          （待機場所の手前 (16.5, 5.9) で 9515〜9892 秒に 8 回、受け渡し口の近く (15.7, 5.0) で 10653〜11087 秒に 8 回）
      (2) 助けに行ったスタッフが詰まる：4028 秒の助け（通路 A01）で、スタッフが 2 回あきらめ、3 回目に「移した」
  ・なので、基準データの 180 回（③⑦ 60 回・④⑤⑥② 120 回）は回していない。表は作れていない


====================================================================
1. 始める前の確かめ（10:56〜11:00）
====================================================================

  1. 0 が入り、⑦の確かめで解けている … 下の 3・4 のとおり。解けた向かい合いはあるが、変な動きが出たので「解けている」とは言えない（不合格）
  2. 依頼74：「済み」にあり、結果の報告がある（4 回とも completed）。合格とみた
     依頼75：見張り係が止まったため「失敗」に回っている（10:52）。終わってはいる
  3. Unity エディタ：起動していない（Unity Hub だけ）。night_runner・rec_runner・実行ファイル：動いていない
     /Volumes/KIOXIA：マウントされている。unity_ledger_v1.lock：なし
     台帳を archive/unity_ledger_v1_pre_tpfix_base_20261103/unity_ledger_v1.csv に退避：1658 行・md5 7896338a6483643ca5f88f1950795d27
  4. ServiceSim の保留：0（cs:62 head）


====================================================================
2. 0 の作り（切り替えの名前・変えたファイル）
====================================================================

  切り替え
    ・実行ファイルの引数 -ssStuckRescue on|off。付けないときは入（HeadlessRun.StuckRescueDefault）
    ・queue の各回の stuck_rescue（on / off）。make_queue.py --stuck-rescue・night_runner.py --stuck-rescue
      params の unity_rules に項目が無いので、無いときは入（STUCK_RESCUE_DEFAULT。params は変えていない）
    ・入の回だけ、出力フォルダ名の末尾に _rescue（_lane の後ろ・店の指定の前）。C# と Python で同じ字
    ・run_info.json の stuck_rescue.enabled。judge_night.py は入切を条件に足した（基準 v5 は切なので「基準なし」になる）
    ・切の回は今までどおり（60 秒で動けなくなったら呼び、その場から走りを続ける）。切の回の動きは1行も変えていない

  入の回の動き
    ・ロボットが続けて 30 秒動けなかったら助けを呼ぶ（ServiceOps.RescueCallAfterStoppedSec。judge の立ち往生の線と同じ）。
      1 回の止まりに 1 度。向かい合う2台のどちらかにまだ終わっていない助けがあれば重ねない（1 つの向かい合いに 1 人）
    ・助けは優先 0。手が空いている人のうち、人用の面の道の長さで近い人が取る。手が空いている人がいなければ、
      今の仕事を終えて取りに来た人が取る（近い人が 2 秒取らなければ、だれが取ってもよい）
    ・スタッフは歩いて行き（動かす台の手前 0.8 m。今までと同じ立つ点）、着いてから rescue_s（15 秒）で片方を動かす
    ・ロボットどうしなら空の方（料理を載せていない方）。同じなら行き先までの残りの道が長い方。人とならロボット。
      相手の台が卓で受け渡し中・往復を終えて待っているときは、相手は動かさず呼んだ台を動かす
    ・動かす先は、相手の道（相手のロボットの先 4 m・人なら歩いている道）から 2 台の半径＋0.1 m 以上離れた、
      地図で入れるマスのうち、いちばん近くでほかの台・人と重ならない所（2.5 m で無ければ 5 m まで広げる）。
      見つからなければその場で道を引き直す。動かした台はそこで道を引き直して仕事を続け、呼んだ台も引き直す
    ・スタッフが着く前に、呼んだ台か動かす台が 2 秒続けて動けたら取り消す（スタッフは仕事に戻る）
    ・60 秒で「動けなくなった」の数え方は変えていない（入の回も 60 秒で数える。そのときに助けが無ければ呼ぶ）
    ・助けに行くスタッフは、動かす台と向かい合っている相手の台もよけない

  記録
    ・rescues.csv（回のフォルダ）：呼んだ時刻・位置・通路・呼んだ台・動かした台・相手・原因・呼んだときに止まっていた秒・
      行ったスタッフ・手が空くまで待った秒・歩いた m と秒・動かした秒・解けるまでの秒（止まり始めから）・動かした m・どうなったか
    ・summary.json：rescues（スタッフが着いて動かした回数）・rescue_staff_s（staff_time_s の「立ち往生」＝助けに使った秒の合計）・
      stuck_rescue（呼んだ回数・取り消した回数も）。入の回は site_metrics.rescues と台帳の rescues 列も同じ回数
    ・stops.csv：スタッフが動かして終わった止まりの解け方は「スタッフが動かした」
    ・モニター：スタッフの仕事に「助けに行く」、下の段に「助けに行く：動かした n 回・自分で動き出して取り消し n 回」

  変えたファイル（cs:63 で check-in）
    Assets/ServiceSim/Service/ServiceOps.cs（助けの記録・呼び方・取り消し・終わり・近い人の決め方）
    Assets/ServiceSim/Robot/ServingRobotController.cs（30 秒で呼ぶ・相手を見つける・動かす先・道の引き直し）
    Assets/ServiceSim/People/StaffAgent.cs・PersonRobotYield.cs（近い人が取る・相手の台をよけない・歩いた m）
    Assets/ServiceSim/Experiment/ExperimentRunner.cs・HeadlessRun.cs・TripLogger.cs（切り替え・フォルダ名・記録）
    Assets/ServiceSim/Store/KitchenMonitor.cs（「助けに行く」）
    tools/make_queue.py・night_runner.py・judge_night.py（切り替え・フォルダ名・判定の条件）
  check-in 前に試しのビルド 2 回（/tmp/ss76_compiletest・/tmp/ss76_compiletest2）で error CS 0 を確かめた
  画面なしの実行ファイル：Builds/headless　build_id cs63_20261103_1114・unity_cs ServiceSim/cs:63・pending_changes 空
  録画用の実行ファイルは作っていない（Builds/rec12_tpfix62 は助けの無い cs:62 のまま）


====================================================================
3. ⑦の確かめ（fam_p5_s4_r2_a42・種7・今の標準・助け 入）
====================================================================

  ラベル rescuecheck・同時 4 本（1 回だけ）・やり直しなし。記録 night/20261103_rescuecheck/（runner 終了コード 0）
  出力 20261103_rescuecheck_cs63_fam_p5_r2_s7_passon_sbret_ek_post_rescue（completed・全員帰った・実時間 2.7 分）

  助けの数
    呼んだ 41 回 … 動かした 33・その場で引き直した 2（動かす先が無い）・自分で動き出して取り消し 4・往復が終わって取り消し 2
    rescues 35・rescue_staff_s 943.7 秒・往復 127
    相手：ロボット 24・客 8・スタッフ 5・分からない 3・人が立ち止まっていた 1
    解けるまでの秒（止まり始めから。35 回）：中央値 51.0・最短 45.1・最長 238.4
      どの行も 30 秒＋手が空くまで待った秒＋歩いた秒＋15 秒 と一致（ずれ 0 行）
    手が空くまで待った秒：中央値 0.05・最長 53.1　歩いた秒：中央値 3.2・最長 179.8

  解けた向かい合い（前に約 9 分止まっていた所）
    1472.7 秒 (20.56, 3.96)：1号機が 2号機と向かい合って 30 秒 → Staff02 が 0.05 秒で取り、5.9 秒歩いて着き、15 秒で
      1号機を 1.16 m 動かした（止まり 51.3 秒・stops.csv の解け方「スタッフが動かした」）
    1号機は引き直した道でまた2号機に向かい、1533.95 秒から 44.5 秒止まって 2 回目の助け（0.98 m 動かした）
    1578 秒に2台とも動き出し、1590 秒には別の卓へ。前の回（cs:59）は 1472〜2022 秒の約 550 秒止まっていた

  出た変な動き（依頼の「180 回は回さずに止める」に当たる）
    (1) 同じ所で何度も助けが要る
        場所は受け渡し口の右の待機場所。1号機の待機場所は (16.7, 5.9)、2号機の待機場所は (17.5, 6.0)
        （中心どうし約 0.76 m・体どうしの間は約 0.26 m）
        2号機が往復を終えて自分の待機場所に止まっていると、戻ってきた1号機が自分の待機場所の 0.2〜0.4 m 手前
        (16.5, 5.9) で前のセンサーに2号機を見て止まり続ける
        2号機は止まっていて道が無いので、「相手の道から外れた一番近い所」は1号機のいる所そのものになり、
        動かした距離は 0.025 m ほど。引き直しても同じ所で止まり、約 47 秒ごとに助けが入った
          9515〜9892 秒に 8 回（最後の 1 回は1号機の往復が終わって取り消し）
        同じ形がもう 1 か所：2号機が受け渡し口の点 (15.3, 5.95) で往復を終えて止まり、料理を載せて卓へ向かう1号機が
        (15.7, 5.0) で阻まれた。10653〜11087 秒に 8 回（最後の 1 回は取り消し）
        動かした距離が 0.05 m 未満の助けは 35 回中 25 回。待機場所のあたり（x 15.5〜17.3・z 4.8〜6.4）の呼び出しは 41 回中 25 回
        この止まりは助けを入れる前からある：助けの無い cs:62 の同じ回（20261103_rec_focus2_cs62_fam_p5_r2_s7・録画の回）でも、
        同じあたりで 30 秒以上の止まりが 12 回あった（今回は 17 回）
    (2) 助けに行ったスタッフが詰まる
        4028.4 秒、通路 A01 (1.77, 9.09) で1号機がスタッフと向かい合って 30 秒 → 助けに行ったスタッフが 60 秒着けずに
        2 回あきらめ（4102・4162 秒）、3 回目の 4222 秒に「移した」（瞬間移動に数える）。解けるまで 238.4 秒
        ほかに 2374.9 秒にも 1 回あきらめた（通路 A01）

  参考：同じ回の前の版（助け無し）との比べ（1 回ずつなので、ばらつきとの区別はできない）
    | 回 | 往復 | 30秒以上の止まり | 動けなくなった（60秒） | あきらめた | 瞬間移動 | 入店待ち | 料理の待ち | 会計待ち | 店の時刻（分） |
    |---|---|---|---|---|---|---|---|---|---|
    | 今回 cs:63・助け入（画面なし） | 127 | 44 | 10 | 56 | 30 | 3.52 | 1.66 | 9.27 | 196.9 |
    | cs:62・助け無し（録画の回） | 112 | 40 | 32 | 89 | 32 | 3.96 | 2.03 | 10.12 | 206.0 |


====================================================================
4. 基準データの 180 回
====================================================================

  回していない（0 回）。completed・失敗・止まった回・最長の実時間は無し
  店ごと・台数ごとの表（瞬間移動・入店待ち・料理の待ち・会計待ち・30 秒以上の止まり・動けなくなった・rescues・rescue_staff_s）も作れていない
  比べる相手は次のものにするつもりだった（回すときに使える）
    ③⑦：v5（20261102_night_cs34_*）
    ④ fam_p2：20261031_p2（cs:33。0台は _passon、1・2台は _passon_sbret）
    ⑤ fam_p3：20261103_night・⑥ fam_p4：20261104_night・② fam_p0：20261105_night
  試算の stuck_rate 0.01 との並べも、180 回の後に出す


====================================================================
5. 台帳
====================================================================

  unity_ledger_v1.csv：1658 行 → 1659 行（追記 1 行だけ。⑦の確かめの 1 回・completed・unity_cs ServiceSim/cs:63）
  始める前の md5：7896338a6483643ca5f88f1950795d27（退避と同じ）
  終わったあとの md5：69510edef7fe2a792ba5e27a62421310
  終わったあとの先頭 1658 行の md5：7896338a6483643ca5f88f1950795d27（始める前と同じ＝前の行は変わっていない）
  列は今までどおり（59 列）。鍵ファイルは残っていない


====================================================================
6. 変えたもの・残したもの
====================================================================

  check-in（cs:63）：上の 2 の 11 ファイル
  作り直した：Builds/headless（cs:63・助けの既定は入）
  新しく置いた：night/20261103_rescuecheck/・night/20261103_rescuecheck_dry/・確かめの回の出力フォルダ・
    archive/unity_ledger_v1_pre_tpfix_base_20261103/
  /tmp に残したもの：/tmp/req76/（並び）・/tmp/ss76_compiletest・/tmp/ss76_compiletest2（試しのビルド）・/tmp/ss76_*.log
  変えていない：params（serving-robot-params.json）・店の形・切の回の動き・60 秒の線・rescue_s（15 秒）・同時に回す本数・
    台帳の列と今までの行・Builds/rec12_tpfix62
  注意：Builds/headless の既定が「助け 入」になったので、次の依頼77（同じ種で2回）は助け入の版で回る（依頼77 の前提どおり）


====================================================================
決めてほしいこと
====================================================================

  1. 相手が止まっている台（往復を終えて待機場所・受け渡し口の点にいる台）のときの決まり。今の決まりだと、止まっている台には道が無いので、
     呼んだ台がその場から動かず、同じ所で何度も助けが入る。案：
       a. 相手が往復を終えて待っている台なら、その台を動かす（呼んだ台の道から外れた一番近い空いた所へ）
       b. 相手に道が無いときは、相手の体から離れた所（呼んだ台の道の外）へ呼んだ台を動かす
       c. 待機場所どうしの間（いま中心どうし約 0.76 m）を店の形の側で広げる（サイトの店の形の直し）
  2. 助けに行くスタッフが着けないとき（細い通路で人が前にいる）の扱い。今は 60 秒であきらめ、3 回目で「移した」（瞬間移動）になる。
     このままにするか、助けのときは別の決まりにするか
  3. 1・2 を決めたあと、⑦の確かめをやり直して 180 回を回すか（並べ方と比べる相手は上の 4 のとおり用意できる）
  4. Builds/headless の既定を「助け 入」のままにしておくか（依頼77 は入の前提。切に戻すなら -ssStuckRescue off で回せる）
