サービスロボット導入シミュレーション Log#42 | 病院を人ごと再現し、搬送ロボットの廊下の混みを確かめた

この記事の素材(コード・ログ・データ 14ファイル・まとめてダウンロードあり)
AIで読む ChatGPT・Claude などで、この記事に質問できます

大学病院の外来の階を Unity で部屋の中まで再現し、外来の患者390人・付き添い・職員141人を行き先の順で動かすと、外来の大廊下(西の70m)に同時にいる人は、混む時間でも平均1.8人(最大7人)だった。病院で検体や薬を運ぶ搬送ロボットのシミュレーションでは、これまで大廊下に人を60人、根拠なしに置いていて、約30倍多く見ていたことになる。 人を動かすと、ロボットに起きる問題(急に止まった・ひやり・人がよけさせられたなど)の場所は、大廊下から職員の廊下と、部屋の中の台の前へ移った。

この回で良くなったこと、できるようになったことです。

  • 病院の人が、患者が待合に座り、看護師が中待合へ呼びに出て、職員がエレベーターから出てくる中で、ロボットがどこで、だれの前で止まるかを見られるようになった。前は、人を大廊下の中で行き来させているだけだった
  • ロボットの問題の数に、人の数の根拠が付いた。職員の人数は全国の大学病院の統計から、患者の待ち時間と診察の時間は厚生労働省の受療行動調査から取った。依頼143 まで大廊下で数えていた問題(1日111件のうち105件)は、仮置きの60人が生んだ分が大きかった
  • 部屋の中まで建てた病院は、ロボットが入る部屋・人が座る所・車いすの場所まで、サイトの1つのデータ(hospital_h1.json)から Unity が建てる。人が Unity を開いて手で置いた所はない。依頼141〜149 は依頼箱から Claude Code が回し、作業の時間は合わせて約14時間(夜も含む)。前は同じことを手でやったことがないので、比べる時間はない

困っていたのは、Unity の病院が「大廊下にだけ人が歩く病院」だったことです。前の回(LOG483)で立体の見た目にして1便を通しで見たら、ロボットが通る職員の中廊下にはだれもいず、待合のベンチも診察室も空でした。

大通りにだけしか人が歩かない病院なんてないから修正。

そこで、病院のフロアと道を全部作るところからやり直しました。

何をなぜどうなったか
人の内訳を直して1便を通しで撮った(依頼141)
廊下の人のうち車いす・杖の人を、統計の推計(車いす1%・杖の人3%)に直したため
走っている間の問題が1日71件から34件に減った
フロアを部屋の中まで作った(サイト側)
職員の中廊下に人がいない・部屋が灰色の箱だった
小部屋37・家具・扉77。ロボットが入る5部屋と、9つの役割の入る所・座る所を決めた
待合に車いすの場所を足した
東京都の指針に配慮があり、場所がない病院では車いすの人がいすの間で待っていた
1.5m 四方を12か所
試算を h3 にした
ロボットは扉の前ではなく、部屋の中の台の前まで入るため
道が8〜24m 延び、ロボット1台だと青の至急が5分の線を超えた
職員の数を統計から出した
人を動かすには、どこに何人いるかが要る
664床の大学病院の職員から、この階に141人を置いた
人を行き先の順で動かした(依頼147)
大廊下だけに人がいる病院はない
大廊下の人は平均1〜2人。問題は職員の廊下と台の前へ
エレベーターとトイレを足した(依頼149)
患者が座ったきりで、廊下を通る人が少なすぎた
大廊下の人はほとんど増えず、計算でも約2人と合った

病院の搬送ロボットのほかに、配膳ロボットを自分の店に入れたらどうなるかは、このシリーズの試算をもとにした別のページで試せます。

店の立体図(席・キッチン・配膳ロボットの通り道)導入前シミュレーション配膳ロボットを、導入前に自分の店舗でシミュレーション店舗の図面と人数から、何人で回るか・どこで止まるか・月いくらかかるかを出します

作業ログ ― 人の内訳を直した病院で、搬送ロボットの1便を通しで撮る(依頼141)

この記事のコード・ログ・データは、1ファイルずつ下に置いています。全文はリンク先にあります。

ファイルの一覧(14本)

01_sec01.md ― 1便目を通しで撮ると、ロボットが通る職員の中廊下にはだれもいなかった / 依頼141 の依頼文(やり直し)・3,450字

02_1_5_summary_h3.txt ― 試算 h3:道が部屋の中の分だけ延び、ロボット1台では青の至急が5分を超えた / summary_h3.txt(試算 h3 の結果。種10個の平均)・7,393字

03_1_5_make_hospital_h1.py.txt ― 試算 h3:道が部屋の中の分だけ延び、ロボット1台では青の至急が5分を超えた / make_hospital_h1.py(部屋の中まで作るフロアの形 h1)・30,264字

04_1_5_export_unity_params.py.txt ― 試算 h3:道が部屋の中の分だけ延び、ロボット1台では青の至急が5分を超えた / export_unity_params.py(試算から Unity の条件を書き出す。4つの道と全部の便の時刻表を足した)・5,740字

05_sec03.md ― 依頼143 の依頼文・3,586字

06_sec03.md ― 依頼143 の結果(依頼箱の結果の全文)・3,284字

07_agg143_out.txt ― agg143_out.txt(依頼143 の確かめのまとめ)・3,291字

08_people_flow.json ― assumptions.json の people_flow(人の動きの前提。値ごとに根拠)・7,734字

09_sec05.md ― 依頼147 の依頼文・3,616字

10_report147.txt ― report147.txt(依頼147 の報告の全文)・16,782字

11_agg147_out.txt ― agg147_out.txt(依頼147 の確かめのまとめ)・14,938字

12_sec06.md ― 残したことと、次に回すこと / 依頼149 の依頼文・3,248字

13_sec06.txt ― 残したことと、次に回すこと / report149.txt(依頼149 の報告の全文。KIOXIA に残っていたもの)・16,750字

14_sec06.txt ― 残したことと、次に回すこと / agg149_out.txt(依頼149 の確かめのまとめ)・12,221字

依頼箱と Claude Code は、Unity の作業を自動で回す仕組み

この作業は、Claude(設計とサイトの側)が書いた依頼を、Mac の「依頼箱」というフォルダに置くと、見張り係のスクリプトが Claude Code に渡して Unity を動かし、報告を書き戻す形で進めています。依頼の番号(依頼141 など)は、その依頼箱の通し番号です。報告の最後の1行に「判定:合格/止めた(決めてほしいことあり)/失敗」を書いてもらい、人はそれを読んで次を決めます。

言葉この記事での意味
依頼箱
Claude Code への依頼を置くフォルダ。1件ずつ自動で実行される
試算
サイトに置いた Python の計算(tools/hospital_sim/)。病院の決まりと数字の正
Unity の病院
試算の値を読んで、3Dで人とロボットを動かすシミュレーション。通路で何が起きるかを測る
種
乱数の種。同じ種なら同じ結果が出るように作っている

1便目を通しで撮ると、ロボットが通る職員の中廊下にはだれもいなかった

LOG483 で決めた人の内訳(車いす1%・杖の人3%)を Unity に入れ、ロボットが9:57 に出る1便目を、出発から戻るまでカメラが付いて行く形で撮りました(5倍・55秒)。途中で Mac を再起動したので依頼が止まり、やり直しと続きの2回に分けています。

1便目を通しで撮った動画から4枚。カメラは左30°・75°見下ろしでロボットに付いて行く

内訳を直す前と後で、同じ1日(廊下だけ・0.6m/秒・種0)の問題の数が変わりました。

問題(走っている間)直す前直した後
1 急に止まった145
2 ひやり3522
3 人がよけさせられた186
4 立ち往生11
5 横切り30
止まりきれなかった21
廊下に止まっている間のひやり24412414

直す前は、相手が車いすの問題が16件ありました。直した後は、その日の大廊下に出た60人に車いすの人がいなかったので0件です。

動画を見て、エイイチが気づいたのはロボットの通る道でした。

これってなんで人は大通りしか歩いてないの?

9時59分にロボットが走っていたのは、検査部の手前の職員の中廊下です。Unity が人を出していたのは外来の大廊下と、裏口の道の職員通路だけで、中廊下はストレッチャーが1時間に2台通るだけでした。

依頼141 の依頼文(はじめの版。Mac の再起動で止まった)

---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 240
---
# 依頼141:病院の人の内訳を直し、1便の通しと1日の早回しの動画を撮る

エイイチと決めたこと(2026-11-10):
1 廊下の人の内訳を、車いす 1%・杖の人 3%・歩く患者と付き添い 86%・スタッフ 10% に直した(p2m-site 275ea25、LOG483)。Unity の params をこれに入れ替える
2 依頼138 の決めてほしいこと1(待っている間の数え方)は、まず全体の流れを通しで見てから決める。今回は数え方を変えない
3 依頼138 の決めてほしいこと2・3(16:30 まで回す/16:30 以降のストレッチャー1時間2台・最後の便を待つ上限 16:30+60分)は今のままでよい
4 1便の通しと1日の早回しの、両方の動画を撮る。色は A、カメラは決めたもの(寄り=左30°・75°見下ろし、引き=西半分・左30°・75°見下ろし)

**変えるのは params の入れ替えと、撮り方(カメラが付いて行く・早回しの速さを変える)だけ。試算の数え方・人やロボットの動きの決まりは1行も変えない。**
**配膳の場面・配膳の実行ファイル・配膳の台帳、配膳と共通の部品には触らない。** 変えるのは Assets/ServiceSim/Hospital/ の中だけ。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**

## 正(読むもの)
- 条件:p2m-site main の `tools/hospital_sim/hospital-unity-params.json`(md5 855299b65ab33f6602bfe645e762dc1f)。今の写し(f72d3810…)との違いは people.mix の3つ(歩く患者・付き添い 0.86/杖の人 0.03/車いす 0.01)と basis.people_mix の1つだけのはず。ほかに違いがあれば回さずに報告して終わる
- フロアの形:h0・h0b(依頼140 と同じ md5)

## 始める前に確かめること(違えば回さずに報告して終わる)
作業場所の保留 0(cs:117 のあと)・Unity と回し係が動いていない・KIOXIA がマウント済み・上の md5 と違いの中身

## 1. params を入れ替えて確かめる
- Assets/ServiceSim/Hospital/Data/hospital-unity-params.json を 855299b6 に入れ替える
- check-in(保留0)して、病院の実行ファイルを Builds/hospital141/ に作る。前の実行ファイルは残す
- 確かめ:廊下だけ・0.6m/秒・種0 を2回回し、記録7つが1バイトも違わないこと。瞬間移動 0。時刻表の5便がすべて走り終わること
- 確かめ:廊下に出てくる人の内訳を数え、ねらいの割合(0.86/0.03/0.01/0.10)とどれだけ合うかを書く
- 同じ回の依頼138 の結果(内訳を直す前)と並べ、1日あたりの問題1〜5(走っている間)・廊下に止まっている間のひやり・止まりきれなかった を書く(相手の種類ごとの内訳も)
- 止める線:瞬間移動が1回でも出たとき、または同じ種の2回が違ったとき。止めたら 2・3 は撮らない

## 2. 1便の通しの動画
- 回:廊下だけ・0.6m/秒・種0 の1便目(9:57 ごろに出る便。依頼139・140 で撮った便)
- 長さ:その便の荷が積む所に置かれた(依頼が出た)時刻から、ロボットが積む所へ戻って止まるまで。積む所で待つ・出る・廊下・届ける・戻る を切らずに通す
- カメラ:寄り(左30°・75°見下ろし、依頼140 で決めた寄りの距離)のまま、ロボットに付いて行く。ロボットが画面の真ん中から外れすぎないように、注視点をなめらかに追わせる(急に跳ばない)
- 速さ:店の時刻の5倍。積む所で待っている間が長ければ、その間だけ20倍にしてよい(画面に「20倍」と出す)
- パネル付き(依頼140 の動画と同じ形)。画面の上に時刻と「1便目」を出す。問題1〜5とひやりが起きた所には今と同じ輪を出す

## 3. 1日の早回しの動画
- 回:2 と同じ回(廊下だけ・0.6m/秒・種0)の 7:30 から最後の便が戻るまで
- カメラ:引き(西半分・左30°・75°見下ろし)で固定
- 速さ:ふだんは店の時刻の30倍。ロボットが積む所を出てから戻るまでの間だけ5倍に落とし、その間だけ寄り(左30°・75°、2 と同じ付いて行く寄り)に切り替える。切り替えは引き→寄り→引きを1秒かけてなめらかに
- パネル付き。画面の上に時刻・今の速さ(30倍/5倍)・その時点までの1日の問題の数(1〜5 と、廊下に止まっている間のひやり)を出す
- 1本の上限は120分。超えそうなら、超える分を報告に書いて分けて撮る

## 4. 図解の元になる表を出す(Claude が図にする)
2・3 と同じ回について、次の2つを CSV で出す(列名は日本語でよい)
- events_141.csv:起きた問題を1行ずつ(店の時刻の秒・時刻・何便目か・問題の種類(1〜5/廊下に止まっている間のひやり)・ロボットが動いていたか・相手の種類・場所の x と z・その時のロボットの速さ)
- robot_timeline_141.csv:ロボットの状態が変わるたびに1行(秒・時刻・何便目か・状態(待っている/積む所で待つ/走る/止まる/届ける/戻る など今の作りにある言い方)・x と z)

## 出力
- /Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261110_flow141/
- 動画2本と CSV 2つは iCloud の …/サービスロボット導入シミュレーション/hospital/flow141/ にも写し、md5 が合うのを確かめる
- 動画の中から、2・3 それぞれ4枚ずつ静止画を切り出して並べた図(どこを切り出したかの時刻を下に書く)も同じ所に置く。並べた図は自分で開き、文字や絵が切れていないか、輪が床の正しい所に重なっているかを見る

## 報告
claude_code_reports/20261110_hospital_141.txt に:始める前の確かめ、1 の確かめ(内訳の数、依頼138 との比べ)、2・3 のカメラの値と動画の長さ、4 の CSV の行数、出力の場所、check-in の番号、決めてほしいこと(直し方の候補は作らない)。
**報告の最後の1行は必ず次のどれか**:「判定:合格」/「判定:止めた(決めてほしいことあり)」/「判定:失敗」

依頼141 の依頼文(やり直し)

01_sec01.md3,450字・66行・markdown
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 240
---
# 依頼141(やり直し):病院の人の内訳を直し、1便の通しと1日の早回しの動画を撮る

エイイチと決めたこと(2026-11-10):
1 廊下の人の内訳を、車いす 1%・杖の人 3%・歩く患者と付き添い 86%・スタッフ 10% に直した(p2m-site 275ea25、LOG483)。Unity の params をこれに入れ替える
別のタブで開く保存

依頼141 の結果(やり直し。途中まで保存されていた撮り方の変更に当たって止まった)

# 結果:20261110_141_やり直し_病院の人の内訳を直して1便の通しと1日の早回しを撮る

- 状態:完了
- 始めた時刻:2026-11-10 14:45
- 終わった時刻:2026-11-10 14:47(2分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume 577206b0-4dc2-477a-b753-dc9a3d35094b`

## Claude Code の報告

やったこと
- 前回の作業が途中で止まったあとの状態を見ました。画面なしの Unity も回し係も動いていませんでした(動いていたのは Unity Hub だけ)。作業場所の保留の変更は 0 で、最新の check-in は cs:118 でした。
- cs:118 の中身を cs:117 と比べました。
  - params:今のものは md5 855299b6 で、正しいものと同じでした。cs:117 との違いは people.mix の3つ(0.7→0.86/0.1→0.03/0.1→0.01)と basis.people_mix の1つだけで、依頼どおりでした。
  - ほかに、撮り方のためのプログラムの変更も入っていました。
    - HospitalRun.cs(13行):新しい引数 -h141CamPath を足す変更
    - HospitalLook.cs(80行):カメラを表のとおりに動かして撮る処理と、look_path.csv の書き出し
    - HospitalSetup.cs(2行):実行ファイルの置き場所を Builds/hospital141 にする変更
- 依頼の決まり(params の入れ替え以外が入っていれば、取り消さずに止める)に当たったので、ここで止めました。1〜4(check-in、実行ファイル作り、回す、撮る)はしていません。
- cs:118 は取り消していません。Builds/hospital141/ と KIOXIA の 20261110_flow141/ も、名前に _中断 を付けずにそのまま残しました。cs:118 を使うかどうかが決まるまで、どちらにも使えるようにするためです。

結果
- 前回の途中で残っていたもの:
  - Builds/hospital141/:13:26 に cs:118 から作った実行ファイル
  - KIOXIA の 20261110_flow141/:確かめの回が2つ(check141a・b)、通しの回が1つ、CSV が2つ(events_141・robot_timeline_141)、1便の通しの動画1本、作りかけの1日の早回しの一時フォルダ(動画はできていません)、作業用の道具一式
- 参考までに、前回の途中の集計の数字です。今回は確かめていないので、結果としては扱っていません。
  - 5便すべて走り終わり、瞬間移動は 0 でした。
  - 廊下に出てきた60人の内訳は 52/2/0/6 人(86.7%/3.3%/0%/10.0%)でした。
- 新しい check-in はありません。最新は前回の途中の cs:118 のままです。
- 判定:止めた(決めてほしいことあり)

変えたファイル
- claude_code_reports/20261110_hospital_141.txt(新しく作成)
- ほかに、自分の作業メモ(記憶ファイル)に今回のことを1行足しました。プロジェクトの中のファイルは変えていません。

決めてほしいこと
1. cs:118(params の入れ替えと、撮り方の引数 -h141CamPath・カメラの道・look_path.csv)を、このやり直しにそのまま使ってよいか。使わない場合、cs:118 をどう扱うか。
2. 前回の途中の Builds/hospital141/ と KIOXIA の 20261110_flow141/ を、_中断 を付けて作り直すか、そのまま使うか。

依頼141 の依頼文(続き)

---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 240
---
# 依頼141(続き):cs:118 をそのまま使い、残りを撮り終える

依頼141(やり直し)の報告への答え(2026-11-10):
1 cs:118 はそのまま使ってよい。撮り方の変更(-h141CamPath・カメラの道・look_path.csv)は依頼141 の範囲の中で、0 の決まりの書き方がきつすぎただけ
2 Builds/hospital141/ と KIOXIA の 20261110_flow141/ はそのまま使ってよい(_中断 は付けない)。前に出たものは消さない

依頼141 の本文(済みの「20261110_141_やり直し_…」)の 1〜4・出力・報告のうち、終わっていない所だけを続ける。**試算の数え方・人やロボットの動きの決まりは変えない。配膳には触らない。** エイイチは見ていない。

## やること
- 始める前に:画面なしの Unity・回し係が動いていない、保留0(cs:118 のあと)、KIOXIA がマウント済み、params の md5 855299b6
- 1 の確かめ:check141a・b の記録7つが1バイトも違わないか、flow141 の回とも同じかを確かめて書く(違えば 3 は撮らずに止める)。内訳の数と依頼138 との比べは agg141_out.txt を使ってよい
- 2 の1便の通しの動画(videos/hospital141_1便目_通し_5x.mp4)は、開いて長さ・カメラが付いて行けているか・輪の位置を確かめる。直す所がなければそのまま使う
- 3 の1日の早回しを撮り終える(作りかけの一時フォルダ pan141_* は消さずに残し、新しく撮る)
- 4 の CSV(tables/ の2つ)は行数を確かめる
- iCloud の …/サービスロボット導入シミュレーション/hospital/flow141/ に動画2本・CSV 2つ・切り出しの並べた図を写し、md5 を確かめる
- 撮り方の変更で直しが出たら check-in(保留0)して実行ファイルを作り直す

## 報告
claude_code_reports/20261110_hospital_141.txt に追記:1 の確かめ、2・3 のカメラの値と動画の長さ、CSV の行数、出力の場所、check-in の番号、決めてほしいこと(直し方の候補は作らない)。
**報告の最後の1行は必ず次のどれか**:「判定:合格」/「判定:止めた(決めてほしいことあり)」/「判定:失敗」

依頼141 の結果(続き)

# 結果:20261110_141_続き_病院の1日の早回しを撮り終える

- 状態:完了
- 始めた時刻:2026-11-10 16:55
- 終わった時刻:2026-11-10 17:15(20分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume 308f1195-e7a3-42a1-9e05-c76c44980552`

## Claude Code の報告

依頼141 の残りを cs:118 のまま撮り終えました。プログラムの直しは出なかったので、新しい check-in も実行ファイルの作り直しもしていません。判定は「合格」です。

**やったこと**
- 始める前の確かめ:画面なしの Unity・回し係は動いていない、保留0(cs:118 が頭)、KIOXIA はマウント済み、params の md5 は 855299b6 で一致。Builds/hospital141 は cs:118 から作った物で、保留は空です。
- 1 の確かめ:check141a と check141b は、記録7つの md5 がすべて同じです。summary の違いは回の名前とかかった時間だけでした。
  - 撮った回 flow141 は、最後の便が戻った時刻で止める作りです(終了コード5はこのためで、異常ではありません)。そこまでの中身は check141a と同じで、短いだけなので、3 を撮りました。
  - legs だけは、最後の待ちの行が止めた時刻で切れている所が違います。
- 2 の1便の通しの動画:開いて確かめ、直す所がなかったのでそのまま使いました。カメラはロボットに付いて行けていて、問題の輪も床の正しい所に出ています。
- 3 の1日の早回し:新しく撮りました。作りかけの一時フォルダ pan141_ask6rr5r は消さずに残しています。
- 4 の CSV の行数を確かめ、各動画から4枚ずつ切り出した並べた図を作って開いて見ました。文字や絵の切れはなく、輪も正しい所に重なっています。
- iCloud の hospital/flow141/ に6つ(動画2本・CSV 2つ・並べた図2枚)を写し、報告に追記しました。

**結果**
- 内訳(廊下に出てきた60人):歩く患者・付き添い 52/杖の人 2/車いす 0/スタッフ 6(86.7%/3.3%/0%/10.0%)
- 依頼138 との比べ(1日あたり、直す前 → 直した後)

  | 問題 | 直す前 | 直した後 |
  |---|---|---|
  | 1 急に止まった(走っている間) | 14 | 5 |
  | 2 ひやり(走っている間) | 35 | 22 |
  | 3 人がよけさせられた(走っている間) | 18 | 6 |
  | 4 立ち往生(走っている間) | 1 | 1 |
  | 5 横切り(走っている間) | 3 | 0 |
  | 止まりきれなかった | 2 | 1 |
  | 廊下に止まっている間のひやり | 2441 | 2414 |

- 1便の通しの動画:54.8秒(1370コマ)、寄りは左30°・75°見下ろし・距離27.9m。ロボットの画面の真ん中からのずれは平均1.6画素・最大32.9画素、注視点の1コマの動きは最大0.12mです。
  - この便は依頼と同時に出ているので、20倍の区間はありません。
- 1日の早回しの動画:21分30.4秒(32259コマ)。120分の上限より短いので1本です。
  - 引きは西半分・左30°・75°見下ろし・距離85.8mで固定。便の間は5倍の寄りで、切り替えは1秒です。
  - 最後のコマの1日の問題は、1〜5 が 5/22/6/1/0、廊下に止まっている間のひやりが 2380 です。
- CSV の行数(見出しを除く)
  - events_141.csv:2586行
  - robot_timeline_141.csv:33行。5便とも依頼と同時に出ているので「積む所で待つ」の行はありません。回が最後の便の戻りで止まっているので、5便目が戻ったあとの「待っている」の行もありません。
- iCloud に写した6つは md5 がすべて一致しました。

**変えたファイル**
- Unity のプロジェクトは変えていません。
- KIOXIA の 20261110_flow141/ に足した物:
  - 動画:videos/hospital141_1日_早回し_30x.mp4
  - 並べた図2枚:hospital141_1便目_通し_切り出し.png、hospital141_1日_早回し_切り出し.png
  - 書き出しの記録:logs/vid141_flowday_2.out と .exit
- iCloud の hospital/flow141/ の6つ
- 報告:claude_code_reports/20261110_hospital_141.txt に追記(最後の行は「判定:合格」)

**決めてほしいこと**
なし

agg141_out.txt(人の内訳を直す前と後の問題の数)

## 依頼138(直す前) day138_v06_hall_s0 f72d3810674b31dadd9dfa4ce0141178 trips 5 / 5 last_end 31590.2 jumps 0 0
summary run n1..n6 [14, 35, 18, 1, 3, 2] wait n1..n6 [0, 2441, 274, 0, 0, 0]
区間,問題,合計,歩く患者・付き添い,杖の人,車いす,スタッフ,ストレッチャー,ロボット,なし
走っている間,1 急に止まった,14,3,1,2,0,0,0,8
走っている間,2 ひやり,35,24,3,5,3,0,0,0
走っている間,3 人がよけさせられた,18,9,1,6,2,0,0,0
走っている間,4 立ち往生,1,0,0,0,0,0,0,1
走っている間,5 横切り,3,0,1,2,0,0,0,0
走っている間,止まりきれなかった,2,0,0,1,1,0,0,0
廊下に止まっている間,1 急に止まった,0,0,0,0,0,0,0,0
廊下に止まっている間,2 ひやり,2441,1628,190,220,403,0,0,0
廊下に止まっている間,3 人がよけさせられた,274,105,97,55,17,0,0,0
廊下に止まっている間,4 立ち往生,0,0,0,0,0,0,0,0
廊下に止まっている間,5 横切り,0,0,0,0,0,0,0,0
廊下に止まっている間,止まりきれなかった,0,0,0,0,0,0,0,0
want hall [14, 2, 2, 2] east [3, 1, 0, 0]
## 依頼141(直した後) check141a_v06_hall_s0 855299b65ab33f6602bfe645e762dc1f trips 5 / 5 last_end 31587.65 jumps 0 0
summary run n1..n6 [5, 22, 6, 1, 0, 1] wait n1..n6 [0, 2414, 174, 0, 0, 0]
区間,問題,合計,歩く患者・付き添い,杖の人,車いす,スタッフ,ストレッチャー,ロボット,なし
走っている間,1 急に止まった,5,1,0,0,0,0,0,4
走っている間,2 ひやり,22,12,1,0,8,1,0,0
走っている間,3 人がよけさせられた,6,1,0,0,5,0,0,0
走っている間,4 立ち往生,1,0,0,0,0,0,0,1
走っている間,5 横切り,0,0,0,0,0,0,0,0
走っている間,止まりきれなかった,1,0,0,0,1,0,0,0
廊下に止まっている間,1 急に止まった,0,0,0,0,0,0,0,0
廊下に止まっている間,2 ひやり,2414,1855,67,0,492,0,0,0
廊下に止まっている間,3 人がよけさせられた,174,121,43,0,10,0,0,0
廊下に止まっている間,4 立ち往生,0,0,0,0,0,0,0,0
廊下に止まっている間,5 横切り,0,0,0,0,0,0,0,0
廊下に止まっている間,止まりきれなかった,0,0,0,0,0,0,0,0
want hall [17, 1, 0, 2] east [4, 0, 0, 0]
## 内訳(Unity の分け方=SplitMix)mix [0.86, 0.03, 0.01, 0.1]
20 [17, 1, 0, 2] ['85.0%', '5.0%', '0.0%', '10.0%'] ねらいの人数 ['17.20', '0.60', '0.20', '2.00']
60 [52, 2, 0, 6] ['86.7%', '3.3%', '0.0%', '10.0%'] ねらいの人数 ['51.60', '1.80', '0.60', '6.00']
4 [4, 0, 0, 0] ['100.0%', '0.0%', '0.0%', '0.0%'] ねらいの人数 ['3.44', '0.12', '0.04', '0.40']
11 [10, 0, 0, 1] ['90.9%', '0.0%', '0.0%', '9.1%'] ねらいの人数 ['9.46', '0.33', '0.11', '1.10']

作業ログ ― 病院のフロアを部屋の中まで作り、ロボットが入る部屋を決める(サイト側の h1)

小部屋37・家具・扉を、コードで一から起こした

フロアの形は、前の回まで部屋を箱で置いただけの h0・h0b でした。部屋・廊下・積む所と届け先の点はそのままにして、部屋の中をコードで起こした h1 を作りました(make_hospital_h1.py)。中身はどれも仮置きで、実在の病院ではありません。

部屋中に作ったもの
内科外来
処置室(採血台・処置ベッド・検体の置き台)・中待合・診察室4・内視鏡室2・回復室・器材室・検体の準備室・裏の通路
ほかの外来
外科・整形外科/小児科/眼科・耳鼻科。どの科も中待合・診察室3・処置・検査室・裏の通路
外来化学療法室
受付・点滴のいす9・点滴のベッド6・ナースステーション・準備室・トイレ
薬剤部
払い出し台・無菌調製室と前室・調剤台・薬品棚・錠剤の分包機
中央検査室
検体受付の台・仕分け台・分析装置の列・冷蔵庫
生理検査
待合・検査室5(心電図・心エコー・腹部エコー・肺機能・脳波)
救急室
初療室・X線室・処置ベッド6・ナースステーション・救急車の入口
お薬の窓口・総合受付・会計
カウンター・待合のベンチ・自動精算機
エレベーターとトイレ
エレベーター3基とホール、トイレ2か所(依頼149 の前に足した)
仮の病院 h1 の全体(120m×60m)。線が4つの道(緑・青の表・青の裏口・赤)、赤い小さな台がロボットに積む所と受け取る所、黄色が車いすの場所
部屋ごとの寄り。内科外来・ほかの外来・化学療法室と救急室・職員の中廊下ぞい

搬送ロボットは、5つの部屋の台の前まで入る

最初の版はロボットを扉の前で止めていましたが、エイイチから指摘がありました。

搬送ロボットは部屋の中にも入っていく前提だと思うけど?

そこで、ロボットが入る部屋と入らない部屋を分けました。入るのは、積む所か届け先がある5部屋(内科外来の処置室・薬剤部・中央検査室・外来化学療法室の受付・救急室)だけで、どれも台の前までの通り道に限ります。診察室・点滴の場所・無菌調製室・初療室には入りません。ほかの外来と倉庫は、検体や物品を運ぶ道を足すときの候補として残しました。

搬送ロボットが入る部屋(青)・入らない部屋(灰)・将来の候補(斜線)。濃い青がロボットが入る範囲
  • ねらい:ロボットが扉の前で止まる形では、部屋の中の人とのすれ違いが数えられない
  • 変わったこと:道の端が扉から台の前に延び、内科外来の処置室では看護師の作業台を左へ寄せて、表と裏口の扉の間に台を置いた
  • 見込める効果:部屋の中で起きる問題が数えられる。依頼149 では、走っている間の問題の17件が部屋の中で起きた(依頼143 は1件)

だれがどこに入るか・座るかを、9つの役割で分けた

患者は来た目的で3つ(外来・化学療法・救急)、職員は看護師・医師・薬剤師・検査技師・事務、それにロボットです。役割ごとに、座る所(座る・寝る・腰を落ち着ける)と入る所(通る・立ち寄る)を決め、フロアの形の access に入れました。Unity の人は、自分の役割が入れる所だけを歩きます。

だれがどこに入るか。濃い青が座る所、薄い青が入る所、灰が入らない所

車いすの人が待てる場所を、待合ごとに足した

車いすの人はベンチに座らないので、待合に止まって待てる場所が要ります。東京都のユニバーサルデザインのチェックリストには「車椅子使用者やベビーカーを使用する子ども連れなどが利用しやすいスペースや通路幅の確保に配慮する」とあり、寸法の決まりはありません。場所がない病院では、静岡医療センターのご意見箱(2019年7月)に「車いすを置いて待つスペースがなく、利用者はいすといすの間に車いすを置いている」という声がありました。そこで、通路に面したベンチの列の端に 1.5m 四方を12か所足しました。列の端に置く形は仮置きです。

試算 h3:道が部屋の中の分だけ延び、ロボット1台では青の至急が5分を超えた

道が部屋の中まで延びたので、サイトの試算(正)も h1 で計算し直し、版を h3 にしました。人が歩いて運ぶときも、同じ台から台まで歩きます。

道前(扉から扉)h3(台の前から台の前)
緑(救急室→検査部)21m29m
青(内科外来→検査部)86m100m
青の裏口153m177m
赤(薬剤部→化学療法室)109m119m
標準の条件h2h3
人が搬送に使う時間(ロボット0台)
52.8分/日58.8分/日
ロボット1台で減る時間38.3分43.8分
ロボット1台の青の至急4.7分5.1分(間に合わない)

summary_h3.txt(試算 h3 の結果。種10個の平均)

02_1_5_summary_h3.txt7,393字・75行・text
試算 h3(仮の病院 h1(外来の階・部屋の中まで))乱数の種 10 個の平均

■ 標準の条件
ロボット0台  人が搬送に使った時間 58.8分/日(0台より 0.0分減)
  緑 依頼3件 届くまで 平均5.9分 90%4.9分 最大9.8分 至急0.9分 山場-分 便0.0 人が歩いた1.8回 人の時間2.3分
  青 依頼8件 届くまで 平均9.9分 90%12.1分 最大12.1分 至急2.0分 山場9.3分 便0.0 人が歩いた6.5回 人の時間23.8分
  赤 依頼13件 届くまで 平均9.2分 90%12.4分 最大12.4分 至急2.4分 山場-分 便0.0 人が歩いた7.6回 人の時間32.6分
ロボット1台  人が搬送に使った時間 15.0分/日(0台より 43.8分減)  ロボットが走った 111分・3.27km
別のタブで開く保存

make_hospital_h1.py(部屋の中まで作るフロアの形 h1)

03_1_5_make_hospital_h1.py.txt30,264字・601行・python
# -*- coding: utf-8 -*-
"""仮の病院 h1:h0b の形に、全部の部屋の中(小部屋・扉・家具)と4つの道を足す。

2026-11-10 エイイチと決めた:病院のフロアと道を全部作る。部屋の中まで全部、道は 3ルート+裏口の道。
- 部屋・廊下・積む所と届け先の点は h0b と同じ(h0・h0b の JSON は変えない)
- 部屋の中の並びは、外来・検査部・薬剤部・外来化学療法室・救急室の典型をコードで起こした仮置き
- 道は 緑(救急室→検査部)・青 表(内科外来の処置室→検査部、大廊下を通る)・青 裏口(職員通路を通る)・赤(薬剤部→外来化学療法室)
- 高さは配膳のベースに合わせる:部屋・小部屋の壁 2.4m
別のタブで開く保存

draw_h1_access.py(だれがどこに入るかの図)

import json,sys
from pathlib import Path
import matplotlib; matplotlib.use("Agg")
import matplotlib.pyplot as plt
from matplotlib import font_manager
from matplotlib.patches import Rectangle
for f in font_manager.findSystemFonts():
    if "NotoSansCJK-Regular" in f:
        font_manager.fontManager.addfont(f); plt.rcParams["font.family"]=font_manager.FontProperties(fname=f).get_name(); break
S=Path(sys.argv[1]); d=json.load(open(S/"hospital_h1.json")); A=d["access"]
roles=A["roles"]
fig,axs=plt.subplots(3,3,figsize=(18,10.2),dpi=140)
COL={"座る":"#2f6fd6","入る":"#b9cff3",None:"#eceef1"}
for ax,role in zip(axs.flat,roles):
    for r in d["layout"]["rooms"]:
        x0,y0,x1,y1=r["rect"]; ax.add_patch(Rectangle((x0,y0),x1-x0,y1-y0,fc=COL[None],ec="none"))
    for z in A["zones"]:
        lv=z["who"].get(role)
        if role=="ロボット" and z["room"]!="廊下": lv=None
        for x0,y0,x1,y1 in z["rects"]:
            ax.add_patch(Rectangle((x0,y0),x1-x0,y1-y0,fc=COL[lv],ec="none"))
    for k,dd in A["cross_only"].items():
        if role in dd:
            x0,y0,x1,y1=dd[role]; ax.add_patch(Rectangle((x0,y0),x1-x0,y1-y0,fc=COL["入る"],ec="none"))
    for r in d["layout"]["rooms"]:
        x0,y0,x1,y1=r["rect"]; ax.add_patch(Rectangle((x0,y0),x1-x0,y1-y0,fc="none",ec="#3c4650",lw=.7))
    for s in d["interior"]["subrooms"]:
        x0,y0,x1,y1=s["rect"]; ax.add_patch(Rectangle((x0,y0),x1-x0,y1-y0,fc="none",ec="#3c4650",lw=.4))
    if role=="ロボット":
        for pts in d["stops"].values():
            for (ax0,ay0),(bx,by) in zip(pts,pts[1:]):
                x0,x1=min(ax0,bx)-0.9,max(ax0,bx)+0.9; y0,y1=min(ay0,by)-0.9,max(ay0,by)+0.9
                ax.add_patch(Rectangle((x0,y0),x1-x0,y1-y0,fc=COL["入る"],ec="none"))
        rc={"green":"#2e9d4f","blue":"#1d4fa8","blue_back":"#6c4fd6","red":"#d24b3e"}
        for k,r in d["routes"].items():
            ax.plot([p[0] for p in r["path"]],[p[1] for p in r["path"]],color=rc[k],lw=1.4)
    ax.add_patch(Rectangle((0,0),120,60,fc="none",ec="#1f2933",lw=1.4))
    ax.set_xlim(-1,121); ax.set_ylim(-1,61); ax.set_aspect("equal"); ax.axis("off")
    ax.set_title(role,fontsize=14,loc="left",weight="bold")
fig.suptitle("だれがどこに入るか(仮の病院 h1)",fontsize=17,x=0.01,ha="left",y=0.995)
fig.text(0.01,0.005,"■ 濃い青=座る・寝る・腰を落ち着ける所 ■ 薄い青=入る(通る・立ち寄る) ■ 灰=入らない",fontsize=12,color="#333")
fig.tight_layout(rect=(0,0.02,1,0.97),h_pad=2.5)
fig.savefig(S/"hospital_h1_access.png",facecolor="white")

export_unity_params.py(試算から Unity の条件を書き出す。4つの道と全部の便の時刻表を足した)

04_1_5_export_unity_params.py.txt5,740字・101行・python
# -*- coding: utf-8 -*-
"""病院の搬送ロボットの Unity が読む条件 hospital-unity-params.json を、前提の表(assumptions.json)とフロアの形から書き出す。

Unity は値を自分で決めず、このファイルを読む(配膳の serving-robot-params.json と同じ考え方。正はサイト側)。
使い方:python3 export_unity_params.py
"""
import hashlib
import json
別のタブで開く保存

作業ログ ― Unity に部屋の中まで建て、4つの道をロボット1台で走らせる(依頼143)

フロアの形 h1 を Unity が読み、部屋14・小部屋35・扉73・家具221・車いすの場所12・壁141本を建てました。ロボット1台が、緑・青・赤の16便を時刻表どおりに走ります。

部屋の中まで建てた Unity の病院。真上・引き(西・東)と、ロボットが入る5部屋の寄り。部屋の中にはまだ人がいない
  • 同じ種の2回で記録が1バイトも違わず、瞬間移動は0、16便すべてが走り終わった
  • ロボットの中心が、入らないはずの所に入った時間は0秒
  • 走った距離は試算の道より4〜6%短い。角を内側で曲がり、台の前の点の手前で止まるため(記録だけ)
  • 走っている間の問題は111件で、105件が外来の大廊下。部屋の中は1件

人を大廊下だけに置いていたので、問題がそこに集まるのは当たり前の結果でした。ここでエイイチが動画を見て、修正を決めました。

依頼143 の依頼文

05_sec03.md3,586字・64行・markdown
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 300
---
# 依頼143:病院のフロアを部屋の中まで全部建て、4つの道をロボット1台で走らせる

エイイチと決めたこと(2026-11-10):
1 病院のフロアと道を全部作る。部屋の中まで全部(小部屋・扉・家具)、道は 緑・青(表)・青(裏口)・赤 の4つ
別のタブで開く保存

依頼143 の結果(依頼箱の結果の全文)

06_sec03.md3,284字・71行・markdown
# 結果:20261110_143_病院のフロアを部屋の中まで全部建てて4つの道を走らせる

- 状態:完了
- 始めた時刻:2026-11-10 17:41
- 終わった時刻:2026-11-10 20:28(166分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume 578b15c5-57a8-4279-9c1e-2952a72755c7`
別のタブで開く保存

agg143_out.txt(依頼143 の確かめのまとめ)

07_agg143_out.txt3,291字・60行・text
依頼141 check141a(h0・廊下だけ・0.6・種0): 便 5(走った 5)/走っている間 1〜5・止まりきれなかった 5/22/6/1/0/1/速いままのひやり 16/待っている間のひやり 2414・よけさせられた 174/助け 1/瞬間移動 0・0

== check143a_v06_hall_s0(廊下だけ)
status completed/回の終わり 32400.0 秒/最後の便が戻った 31629.7 秒
便 16(走った 16・途中 0・走れなかった 0)/移る 5(終えた 5)/出るのが遅れた 平均 36.0 秒・最大 190.9 秒
道ごとの便: blue 5・green 2・red 9
走っている間 1〜5・止まりきれなかった 23/49/31/2/1/5/速いままのひやり 35
   廊下: 23/49/30/2/1/5
別のタブで開く保存

作業ログ ― 664床の大学病院の職員数を統計から出し、この階に141人を置く

人を動かすには、どこに何人いるかが要ります。エイイチの指示は、まず病院全体を出してから配ることでした。

大前提として、このくらいの病院のスタッフや看護師、医師はどれくらいいるものなのかを調査して、人数が決まったら部署に人を配置かな(事務員なども含み)

令和5年医療施設調査の職種別の従事者数のうち、医育機関(大学病院)の列を、同じ調査の医育機関の病床94,461床で割って100床あたりを出し、慈恵柏と同じ664床に掛けました。答え合わせとして、千葉県の研修病院の案内で慈恵柏の常勤医師は298人、非常勤を含めた398人とおおむね合います。

職種100床あたり病院全体この階(日中)
医師59.9398人19人
看護師101.2672人33人
薬剤師7.348人20人
臨床検査技師8.557人27人
診療放射線技師6.141人2人
看護業務補助者6.845人2人
事務職員23.1153人38人

日中にいるのは全体の4分の3(仮置き)とし、この階の仕事の分を持ち場に置きました。看護師は医療法の外来の標準(外来患者30人に1人)を最低の線にしています。この階の外来・化学療法・救急で約430人なら15人以上で、持ち場ごとに置くと33人です。薬剤部は病院全体の薬を出すので、病棟に出ている分を除いた20人を置きました。

病院全体の職員と、この階の持ち場ごとの人数

外来の患者は1日390人です。診察室13室で、1室あたり約30人と置きました(慈恵柏の1日の外来1,560人の約4分の1)。診察までの待ち時間と診察の時間は、受療行動調査(2023)の特定機能病院の割合を使いました(待ち時間は15分未満23%・15〜30分21%・30分〜1時間22%・1時間以上34%、診察は5分未満16%・5〜10分42%・10〜20分22%・20分以上20%)。来る時刻の分け方・付き添いの割合・とどまる時間・職員が持ち場を出る頻度は、根拠になる公開データが見つからず仮置きです。

assumptions.json の people_flow(人の動きの前提。値ごとに根拠)

08_people_flow.json7,734字・386行・json
{
 "about": "人が大廊下だけを歩くのをやめ、役割ごとに行き先の順を持って部屋に出入りする(2026-11-10 エイイチ:大通りにだけしか人が歩かない病院なんてないから修正)。行ける所・座る所はフロアの形 hospital_h1.json の access。ここは人数・来る時刻・行き先の順・とどまる時間。Unity が読む",
 "clinic_rooms": {
  "value": {
   "内科": 4,
   "外科・整形外科": 3,
   "小児科": 3,
   "眼科・耳鼻科": 3
別のタブで開く保存

作業ログ ― 患者と職員を行き先の順で動かすと、大廊下の人は1〜2人だった(依頼147)

患者は玄関から入り、総合受付 → 採血(内科の半分) → 中待合 → 診察室 → 検査・処置(一部) → 会計 → お薬の窓口(2割) → 玄関、の順に、空いている席へ歩いて座ります。職員は持ち場に座り、1時間に1回動き、看護師は診察のたびに中待合へ患者を呼びに出ます。

人が待合・中待合・部屋にいる10時ごろの病院(依頼147)
  • 外来の大廊下に同時にいた人は、10時台で平均2.5人。前に置いていた60人の約24分の1
  • 走っている間の問題は111件から88件になり、大廊下は105件から10件、職員の廊下は5件から65件に。台の前で待っている間のひやりが0から66件に増えた
  • ロボットが届けたらすぐ次の積む所へ移る形(試算と同じ)にしたので、出発の遅れは最大3分から0になった
  • 処置・検査室と内視鏡室に、患者40人が行けなかった。フロアの形で、入口が職員だけの裏の通路側にしかなかったため(サイト側の間違い)
  • 見た目ありとなしで、人の動きが1374秒からずれた

依頼147 の依頼文

09_sec05.md3,616字・68行・markdown
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 480
---
# 依頼147:病院に人の動きを入れる(患者と職員が、大廊下だけでなく部屋に出入りする)

エイイチと決めたこと(2026-11-10):
1 大廊下にしか人が歩かない病院はない。人は役割ごとに行き先の順を持ち、部屋に出入りし、待合や持ち場に座る
別のタブで開く保存

依頼147 の結果(依頼箱の結果の全文)

# 結果:20261110_147_病院に人の動きを入れる_患者と職員が部屋に出入りする

- 状態:完了
- 始めた時刻:2026-11-10 22:39
- 終わった時刻:2026-11-11 04:50(371分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume 2ba19be5-2534-4cfe-9b1f-d20a4b0849c9`

## Claude Code の報告

**やったこと**
- 始める前の確かめはすべて合っていました。作業場所の保留は 0(cs:119 のあと)、Unity と回し係は止まっていて、KIOXIA もマウント済み。h1・params の md5 は依頼どおりで、前の写しとの違いも依頼に書かれたものだけでした(h1 は総合受付の東の開きが消えて机の島が1つ増えた。params は layout の md5 と people_flow だけ)。
- 引数 `-h147People flow`(既定)と `hall` を作りました。
  - hall は依頼143 の check143a と記録9つが1バイトも違いません。
  - flow では、患者が時刻表どおりに玄関から歩いて入り、行き先の順に空いた席へ座り、とどまってから玄関へ歩いて出ます。
  - 職員は持ち場に座るか立つかし、1時間に1回動きます。看護師は診察1回ごとに中待合へ呼びに出ます。
  - 人は access でその役割が入れる所だけを歩きます。
  - 依頼143 の答え1・5・6・7 を入れました。ロボットは届けたら、次の便の積む所が違えばすぐそこへ移って待ちます。
- 回してみて直したことが2つあり、そのため check-in は cs:120 と cs:121 の2回になりました。
  - 席や持ち場をロボットの帯から 0.5 m 離した(検体受付の台の前に座った検査技師のせいで、ロボットが約3時間止まり続けたため)。
  - 行き先の近くで動けない人はその場で立って待つようにした(混んだ総合受付の前で、杖の人が1時間以上止まったままだったため)。
- 実行ファイルは Builds/hospital147 です。保留 0 で作り、前の実行ファイルは残しました。

**結果**
- 人の数:外来の患者 390(内科120・外科・整形外科90・小児科90・眼科・耳鼻科90)、付き添い 186、化学療法の患者 20、救急に歩いて来る人 18。職員 141(医師19・看護師35・薬剤師20・検査技師29・事務38)。
- 確かめ(廊下だけ×2・時間で切替×1)はすべて合格です。
  - 同じ種の2回で記録15個が1バイトも違わない。
  - 瞬間移動 0、便 16/16、立ち往生 0。ロボットが入らない所に入った時間 0 秒。
  - 人が入れない所に入った時間は、役割ごとに全部 0 秒。
- 外来の大廊下 x0〜70 の人数は、混んでいる時間帯で平均 1.8 人(params は 60)、空いている時間帯で平均 1.2 人(params は 20)でした。
- 患者が病院にいた時間は、中央値 107.8 分(26.0〜240.9 分)です。
- 走っている間の問題(1〜5・止まりきれなかった)は、依頼143 の 23/49/31/2/1/5 が 8/42/35/0/0/3 になりました。
  - 大廊下では 105 件から 10 件に減った。
  - 職員の廊下では 5 件から 65 件に、台の前で待っている間のひやりは 0 から 66 に増えた。
- 撮る回の静止画7枚・並べた図・動画(32分11秒、48,273コマ)を作り、iCloud の hospital/people147/ に写して md5 が10個とも一致しました。
- 撮る回の動きは、見た目ありで画面なしの回とは一致しますが、見た目なしの確かめの回とは 1374 秒から少しずれます。原因はわかっていません。
- 報告は claude_code_reports/20261110_hospital_147.txt と KIOXIA に置きました。判定は「止めた(決めてほしいことあり)」です。

**変えたファイル**(Assets/ServiceSim/Hospital/ の中だけ)
- HospitalRun.cs、HospitalWalker.cs、HospitalLayout.cs、HospitalLook.cs、Editor/HospitalSetup.cs、Hospital.unity、Materials/H127_*.mat(7つ)
- 足したもの:HospitalRun147.cs、Data/hospital_h1-147.json、Data/hospital-unity-params-147.json(それぞれ .meta も)

**決めてほしいこと**
1. 外来の患者の行き先「処置・検査室」へ、access で入れる所だけでは歩いて行けません。扉が職員だけの通路の側にしかないためで、内科のために当てた内視鏡室も同じです。この行き先は止めて飛ばしました(1日 40 人)。
2. 救急の患者は access で正面玄関に入れないため、救急車の入口から出入りさせました。これでよいか。
3. params に無いので Unity で決めた値と当て方(開いた上の端は下の端の2倍、救急の滞在の分け方、化学療法の患者の行き先の順、職員の持ち場の当て方、職員が動く間とどまる時間など)でよいか。
4. 大廊下の人数が crowd_people の 1/30〜1/17 になり、問題の起きる所が大廊下から職員の廊下と台の前へ移りました。crowd_people などの扱いをどうするか。
5. 総合受付の待合(西半分)には誰も座りません。総合受付の行き先は「立つ」だけのためです。これでよいか。
6. 見た目の有無で人の動きが少しずれます。正とする問題の数を、見た目なし(8/42/35/0/0/3)と見た目あり(9/33/26/0/0/1)のどちらにするか。

report147.txt(依頼147 の報告の全文)

10_report147.txt16,782字・205行・text
依頼147 報告 2026-11-11
病院に人の動きを入れる(患者と職員が、大廊下だけでなく部屋に出入りする)。確かめの回と、撮る回まで

■ 0. 始める前の確かめ(すべて合っていたので進めた)
- 作業場所:cs:119 が頭、保留の変更 0
- 動いている物:Unity のエディタ・画面なしの Unity・回し係はなし(動いていたのは Unity Hub と依頼箱の受け係 inbox_runner.py だけ)
- KIOXIA:マウント済み
- p2m-site main:29674868f80c…(依頼の 2967486)
別のタブで開く保存

agg147_out.txt(依頼147 の確かめのまとめ)

11_agg147_out.txt14,938字・189行・text

== check147a_v06_hall_s0(廊下だけ)status completed/回の終わり 32400.0 秒(16:30)/最後の便が戻った 31629.3 秒/実時間 23.4 分
便 16(走った 16・途中 0・走れなかった 0)/移る 5(終えた 5)/出るのが遅れた 平均 0.0 秒・最大 0.0 秒
   依頼143: 便 16(走った 16)/移る 5/遅れ 平均 36.0・最大 190.9 秒
瞬間移動 ロボット 0(1コマ最大 0.030 m)・人 0(最大 0.117 m)/人の引き直し(180秒動けない)0
立ち往生 0(解けなかった 0): 
助け 0: 
ロボットの入らない所に中心が入った時間 0.00 秒/どの所にも入っていない時間 0.00 秒
別のタブで開く保存

作業ログ ― エレベーターとトイレを足しても、大廊下の人は約2人だった(依頼149)

大廊下に人が少ないのは、この階の患者の数の計算と合っていた

患者が座ったきりで廊下を通らないのが原因かと考え、エレベーター(3基)とトイレ2か所を足し、トイレに行く人(4割が1回)、初診の手続きを待つ人(1割)、ほかの階から来る人(病棟から検査に来る患者1時間6人・見舞い1時間30人・ほかの階の職員1時間20人)を足しました。処置・検査室へは、看護師が付き添って裏の通路を通る形にしました。

10時ごろ(上2段)と14時ごろ(下2段)。真上・引き西・引き東と、エレベーターホールとトイレ(西)の前・中待合・総合受付と会計の待合の寄り
10時ごろの引き(西半分)。待合と中待合には人がいるが、大廊下にはほとんどいない

それでも大廊下 x0〜70 の人は、1日の平均で1.4人から1.6人に増えただけでした。この階の患者の数で計算すると、この人数で合っています。 患者390人が1日に6回ほど大廊下を30秒ずつ通るとすると、390人×6回×0.5分=約1,170人分。これを9時間(540分)で割ると、同時にいるのは約2人です。実際の病院の大廊下が混んで見えるのは、この階に来る人がもっと多いか、人が廊下で立ち止まって待っているからだと考えています。どちらも、まだ確かめていません。

区間(廊下だけ・0.6m/秒・種0。走っている間の1〜5と止まりきれなかった、台の前は待っている間)
依頼143依頼147依頼149
外来の大廊下1051010
職員の廊下56557
部屋の中11317
台の前で待っている間07576

職員の廊下で起きたひやり37件のうち32件、人がよけさせられた37件のうち36件は、相手が職員でした。

見た目ありとなしで人の動きがずれた原因は、見た目の部品を人の子にしていたこと

依頼147 で残っていたずれを、Claude Code が1コマずつ全員の位置を比べて調べました。最初に違ったのは34.85秒で、止まって立っている職員がほかの人に押されたコマの z が、小数の最後の1ビットだけ違っていました。見た目の部品(体・頭)を人の子にしていたため、位置の計算がわずかに変わっていたのが原因です。見た目の部品を別の親に置き、撮る前に位置を写す形に直すと、1日の回で記録17がすべて一致しました。

  • ねらい:撮った動画の動きと、数えた問題の数を同じ回のものにする
  • 変わったこと:見た目ありの回となしの回の記録が、1バイトも違わなくなった
  • 見込める効果:動画で見た場面を、そのまま数の表で引ける。数の正を見た目なしの回にする決まりはそのまま

依頼149 は報告まで済んだが、依頼箱では「失敗」と出た

Claude Code は報告と動画(32分)まで書き終えたあと、iCloud への写しの途中で止まり(終了コード143)、依頼箱には報告がないまま「失敗」と残りました。中身は KIOXIA の報告で確かめています。

残したことと、次に回すこと

  • だれがどこに入るかの表の抜け:救急の患者が正面玄関から救急室へ行けない(1日18人を出していない)、病棟の患者が X線室に入れない(17人)、ほかの階の職員の6人が持ち場へ行けない、化学療法の患者が東のトイレへ行けない
  • 外来の患者を病院全体の1日1,560人(いまの4倍)にした、混んだ条件の回を足すか
  • ロボットが便のない間、部屋の中の台の前で長く待つ(1日に処置室・薬剤部・救急室でそれぞれ約2.5時間)。待つ場所を部屋の外にするか
  • 外来の大廊下で人が立ち止まる・待つ動き(実際の病院が混んで見える理由の候補)

依頼149 の依頼文

12_sec06.md3,248字・54行・markdown
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 480
---
# 依頼149:病院にエレベーターとトイレを足し、大廊下を通る人の行き来を増やす

依頼147 の報告(claude_code_reports/20261110_hospital_147.txt)を見て、エイイチと決めたこと(2026-11-11):
1 大廊下に人がほとんど歩かない(平均1〜3人)のは、この階に患者が待ち時間に行く所と、ほかの階との行き来がないため。サイト側でエレベーター(3基・大廊下に面したホール)とトイレ2か所(西=大廊下に面する・東=生理検査の待合から入る。東はもとの血圧脈波の検査室)を足した。人の動きに、トイレ・初診の手続きの待ち・エレベーターからの行き来を足した
別のタブで開く保存

依頼149 の結果(依頼箱の結果。報告がないまま止まった)

# 結果:20261111_149_病院にエレベーターとトイレを足し人の行き来を増やす

- 状態:失敗
- 始めた時刻:2026-11-11 05:58
- 終わった時刻:2026-11-11 09:10(192分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim

## Claude Code の報告

(報告がありません。終了コード 143。_stderr.txt を見てください。ログインが切れているときは、ターミナルで claude を開いて /login)

report149.txt(依頼149 の報告の全文。KIOXIA に残っていたもの)

13_sec06.txt16,750字・203行・text
依頼149 報告 2026-11-11
病院にエレベーターとトイレを足し、大廊下を通る人の行き来を増やす(確かめの回と、撮る回まで)

■ 0. 始める前の確かめ(進めた)
- 作業場所:cs:121 が頭、保留の変更 0
- 動いている物:Unity のエディタ・画面なしの Unity・回し係はなし(動いていたのは Unity Hub と依頼箱の受け係 inbox_runner.py だけ)
- KIOXIA:マウント済み
- p2m-site main:eed04eb55d1f…(依頼の eed04eb)
別のタブで開く保存

agg149_out.txt(依頼149 の確かめのまとめ)

14_sec06.txt12,221字・136行・text

== check149a_v06_hall_s0(廊下だけ)status completed/回の終わり 32400.0 秒(16:30)/最後の便が戻った 31632.7 秒/実時間 23.3 分
便 16(走った 16・途中 0・走れなかった 0)/移る 5(終えた 5)/出るのが遅れた 平均 0.0 秒・最大 0.0 秒
瞬間移動 ロボット 0(1コマ最大 0.030 m)・人 0(最大 0.117 m)/人の引き直し(180秒動けない)0/行き先の近くで止まって待った 7
立ち往生 0: 
助け 0: 
ロボットの入らない所に中心が入った時間 0.00 秒/どの所にも入っていない時間 0.00 秒
人が access で入れない所に入った時間(役割ごと): 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
別のタブで開く保存

出典