====================================================================
依頼82：ほかの店と種でも瞬間移動0を確かめ、助けでロボットを動かすときも跳ばずに動かす
2026-11-03 13:50〜14:20　check-in：cs:70　build_id cs70_20261103_1359（画面なし・録画用とも。保留 0）
====================================================================

結論
  ・助けでスタッフがロボットを動かすとき、置かずに、押す速さ 0.5 m/秒 で床をたどって少しずつ動かすようにした。
    動かしているあいだは止まりに数える
  ・同じ種の2回（⑦種7）は、記録が1行も違わない（違ったのは時刻 written_at・計算にかかった時間 plan_ms_max・
    wall_seconds・run_label だけ。依頼80・81 と同じ扱い）
  ・6回（③⑦×種0・3・7）と0台・1台の4回、合わせて12回とも：瞬間移動 0（助けの動きを含む）・
    1コマの跳びの見張り 0・解けずに残った人・ロボット 0・全員帰った
  ・入店待ち・料理の待ちの中央値は、どの回も依頼80 の2倍に届いていない

--------------------------------------------------------------------
0. 始める前の確かめ（どれも依頼どおり）
--------------------------------------------------------------------
  Unity エディタ・night_runner・rec_runner：動いていない（Unity Hub だけ）／KIOXIA：マウント済み／
  unity_ledger_v1.lock：無し／保留 0／作業場所 cs:69 - head
  台帳を archive/unity_ledger_v1_pre_push82_20261103/ に退避（1726 行・md5 d2f24b6e2125b42a12a58e495e53ee54。依頼81 の終わりと同じ）

--------------------------------------------------------------------
1. 直したこと（助けの動き）
--------------------------------------------------------------------
  前：rescue_s（15 秒）が終わった瞬間に、動かす先（最大 1.2 m ほど）へ置いていた（依頼76・80 からの作り）
  今：
    ・rescue_s（15 秒）が終わった時刻に、今までと同じ決め方で動かす先を決める（決め方は変えていない）
    ・そこから、スタッフが押す速さ 0.5 m/秒 で、床をたどる道に沿って動かす
      （道は地図のマスをたどる。体が入る幅のマスで、ほかの台の体の上は通らない。まっすぐ通れる所は角を飛ばす。
        道が見つからないときだけまっすぐ押す ― 今回の12回では 0 回）
    ・押す速さ 0.5 m/秒 は、人の歩く速さ（客 0.8・スタッフ 1.0）より遅い。人がロボットをよけるときの
      横移動の速さ（PeopleSpec.robotNudgeSpeedMps）と同じ値にした（下の「確かめてほしいこと」）
    ・押しているあいだは止まりに数える：速さ 0。往復中の台は、続いている止まりの記録（stops.csv）・
      動けなくなった待ちの秒にそのまま足す。押し終わってから止まりの記録を閉じ、走りを続ける
    ・押しているあいだ、その台に次の往復を渡さない・待機場所へ戻さない。スタッフは台について歩き、押し終わってから次の仕事へ
    ・助けの終わりの時刻は押し終わった時刻にした（rescues.csv の work_s・resolve_s は 15 秒＋押した秒になる）
  記録に足したもの（台帳の列は変えていない）：
    ・rescues.csv の終わりに push_s・push_m・push_straight
    ・summary.json に rescue_push（count・total_s・max_s・total_m・straight・speed_mps）
    ・summary.json の teleports に robot_frame_jumps・robot_frame_jump_max_m（見張り。total には足さない）
      ＝ 1コマで、いちばん速い速さで動ける距離の 1.5 倍＋5 cm より大きく動いたロボットの回数。回の始めの並べ置きは数えない
  変えていないもの：ロボットの速さ・物理の設定・譲る順番・人とロボットの数字・rescue_s 15 秒・30 秒の線・
                    同じ種で同じ結果にする作り・止まっている台を 1.2 m 離す決め方・依頼81 の瞬間移動をなくした作り・
                    台帳の列と今までの行

--------------------------------------------------------------------
2. 変えたファイル・版
--------------------------------------------------------------------
  cs:70　Assets/ServiceSim/Robot/ServingRobotController.cs・Service/ServiceOps.cs・People/StaffAgent.cs・
          Experiment/ExperimentRunner.cs・Experiment/TripLogger.cs
  実行ファイル：Builds/headless と Builds/rec17_push70（新しいフォルダ）。どちらも build_id cs70_20261103_1359・
                unity_cs ServiceSim/cs:70・pending_changes 空・error CS 0。前の録画用 rec16_zerowarp69 は残した
  check-in の前に /tmp/ss82_compiletest に試しのビルドを作り、error CS 0 を確かめた

--------------------------------------------------------------------
3. 確かめ（画面なし・night_runner・同時 1 本・--no-retry。12 回とも completed・終了コード 0・0.8〜1.4 分）
--------------------------------------------------------------------
 (1) ⑦ fam_p5・種7 を2回（zw82a・zw82b）
   trips 119・stops 1136・people_jams 1316・yields 3150・contacts 160・rescues 26・give_ups 66・nowarp_jams 31・
   dishes 210・groups 82・robot_track 4777・passes 67・timeline 200 行、どれも 1 行も違わない
   （trips.csv の plan_ms_max、summary.json・conditions.json の written_at、run_info.json の run_label・written_at・
     wall_seconds・speedup・plan_ms_max_per_trip だけ違う。どれも名札か計算にかかった実時間）

 (2) 6回（ロボット2台）。上が今回（cs:70）、下が依頼80（cs:68）の同じ回
   回         立ち往生  30秒以上  瞬間移動  見張り  詰まり(回/秒/最長/残り)  入店待ち  料理の待ち  打ち切り  押した(回/最長秒)
   ③種0 今回    6        16        0        0      33 /  904 /  85 / 0      1.30      1.09       0        15 / 1.3
   ③種0 依頼80  1        12       19        ―     （記録なし）              1.23      0.94       0
   ⑦種0 今回    4        24        0        0      36 / 1983 / 487 / 0      1.25      0.92       1        21 / 1.1
   ⑦種0 依頼80  1        20       24        ―     （記録なし）              1.26      0.86       0
   ③種3 今回    9        28        0        0      30 /  789 / 100 / 0      1.40      1.16       0        21 / 2.7
   ③種3 依頼80  3        20       31        ―     （記録なし）              1.36      1.47       1
   ⑦種3 今回    2        16        0        0      23 /  792 / 110 / 0      1.33      1.04       0        12 / 1.8
   ⑦種3 依頼80  0         7       23        ―     （記録なし）              1.36      1.34       6
   ③種7 今回    6        23        0        0      34 / 1848 / 461 / 0      1.31      1.50       0        18 / 1.9
   ③種7 依頼80  7        28       36        ―     （記録なし）              1.33      1.44       0
   ⑦種7 今回   12        25        0        0      30 / 2941 / 388 / 0      1.44      1.53       1        22 / 2.8
   ⑦種7 依頼80  3        13       22        ―     （記録なし）              1.41      1.43       4
   合計 今回   39       132        0        0     186 / 9255                                    2       109
   合計 依頼80 15       100      155
   （立ち往生＝stops.csv の「動けなくなった」の数、30秒以上＝stops.csv の 30 秒以上の行、
     瞬間移動＝summary.json の teleports の内訳の和、見張り＝teleports.robot_frame_jumps、
     入店待ち・料理の待ちは中央値（分）、打ち切り＝trips.csv の timeout=1（記録だけ。置き直していない））
   ・瞬間移動は 155 → 0。押した 109 回はどれも床をたどる道で押せた（まっすぐ押した 0）。押した道は 1 回で最長 1.4 m・2.8 秒
   ・解けずに残った人・ロボット：0（どの回も nowarp_jams の残り 0・rescues の「終わる前に回が終わった」0・全員帰った）
   ・入店待ち・料理の待ちは、どの回も依頼80 の 2 倍に届いていない（いちばん大きいのは ⑦種7 の料理の待ち 1.43 → 1.53）
   ・立ち往生は 15 → 39、30 秒以上の止まりは 100 → 132 に増えた。依頼80 は客・スタッフ・ロボットを移して
     ふさぎを消していた分が、今は止まって助けで解く形になったためと考えられるが、確かめていない。
     どれも助け（30 秒で呼ぶ・rescue_s）か歩き直しで解けている
   ・詰まり 186 回の内訳：客のドリンクバー 149 回 5898 秒・退店 18 回 585 秒・トイレ 6 回 431 秒・会計 6 回 364 秒・
     スタッフの片付け 5 回 1818 秒（⑦種0 に 3 回・⑦種7 と ③種7 に 1 回ずつ。どれも仕事を終えたか外して解けた）・
     ロボットの1往復の打ち切り 2 回 159 秒

 (3) 0台・1台（③⑦×種0）：瞬間移動と解けずに残ったものだけ見る
   回           瞬間移動  見張り  解けずに残った  全員帰った  （参考：詰まり 回/秒、押した回）
   ③0台種0       0        0        0             はい        0 / 0、0
   ⑦0台種0       0        0        0             はい        1 / 2、0
   ③1台種0       0        0        0             はい        19 / 499、14
   ⑦1台種0       0        0        0             はい        26 / 706、9

--------------------------------------------------------------------
4. 詰まりの場所の上位（6回の合計・1 m のマスで丸めた位置・回数・合計秒）
--------------------------------------------------------------------
   1. (5, 5)  14 回  1230 秒　ドリンクバーの前（一部は通路 A02）
   2. (5, 4)   8 回  1124 秒　ドリンクバーの前
   3. (6, 5)  10 回   980 秒　ドリンクバーの前
   4. (7, 5)  23 回   880 秒
   5. (9, 5)  10 回   853 秒
   6. (6, 4)   6 回   487 秒
   回ごとの上位：⑦種7 (5,5) 791 秒・(5,4) 780 秒、⑦種0 (6,5) 893 秒・(6,4) 370 秒、③種7 (9,5) 461 秒（スタッフの片付け 1 回）。
   依頼81 と同じく、ドリンクバーの前（x 4〜7・z 4〜5）に集まっている。決めたとおり記録だけ残す

--------------------------------------------------------------------
5. 台帳
--------------------------------------------------------------------
  1726 行 → 1738 行（追記だけ。列は 59 のまま。先頭 1726 行の md5 は d2f24b6e… で、始める前と同じ）
  終わったあとの md5 19a431ce554b4a087402e852ec3ad03e。鍵ファイルは残っていない
  追記 12 行：zw82a・zw82b・zw82six×6・zw82r01×4（どれも cs:70・completed）
  記録：night/20261103_push82_zw82a・_zw82b・_zw82six・_zw82r01。並べた回と集計の手順は /tmp/req82/（q/・six82.py）

--------------------------------------------------------------------
確かめてほしいこと（止めずに進めた）
--------------------------------------------------------------------
  1. 押す速さを 0.5 m/秒 にした（依頼の「人の歩く速さより遅く」に合わせ、人がロボットをよける横移動の速さと同じ値を使った）。
     今回の押しは 1 回で最長 2.8 秒なので、0.3〜0.5 m/秒 のどれにしても助けの秒はほとんど変わらない。別の値がよければ変える
  2. 押す時間は rescue_s（15 秒）のあとに足した（15 秒で動かす先を決める今までの時刻を変えないため）。
     助け 1 回はその分（最長 2.8 秒）長くなる。15 秒の中に押す時間も含める形がよければ変える

判定：合格
