commit 23f2f65 病院:正面玄関を職員も通れるようにした・台の前の決まり(届け先で受け取りを待つ)と積む受け取るの秒を条件に入れた・立っている人がよける決まりを足した(依頼158 の前) diff --git a/tools/hospital_layouts/hospital_h1.json b/tools/hospital_layouts/hospital_h1.json index ff6df11..105146e 100644 --- a/tools/hospital_layouts/hospital_h1.json +++ b/tools/hospital_layouts/hospital_h1.json @@ -5098,9 +5098,13 @@ "外来の患者": "入る", "化学療法の患者": "入る", "救急の患者": "入る", + "看護師": "入る", + "医師": "入る", + "薬剤師": "入る", + "検査技師": "入る", "事務": "入る" }, - "note": "" + "note": "職員も通る(2026-11-12 依頼157 の1:ほかの階の職員の通り抜ける人が、事務のほかは玄関へ歩いて行けなかった)" }, { "name": "医事・事務", diff --git a/tools/hospital_layouts/make_hospital_h1.py b/tools/hospital_layouts/make_hospital_h1.py index 3dbba7b..0702999 100644 --- a/tools/hospital_layouts/make_hospital_h1.py +++ b/tools/hospital_layouts/make_hospital_h1.py @@ -371,7 +371,8 @@ ACCESS = [ # 名前, 部屋, [rect...], {役割: 座る|入る}, 補足 ("総合受付・会計の待合", "総合受付・会計・待合", [(31, 17.4, 44, 27), (52, 17.4, 70, 27)], {"外来の患者": S_, "化学療法の患者": S_}, ""), ("倉庫", "倉庫", [(25.1, 0, 44, 13)], {"看護師": E_, "事務": E_}, ""), - ("正面玄関", "正面玄関", [(44, 0, 52, 13)], {"外来の患者": E_, "化学療法の患者": E_, "救急の患者": E_, "事務": E_}, ""), + ("正面玄関", "正面玄関", [(44, 0, 52, 13)], {r: E_ for r in ROLES if r != "ロボット"}, + "職員も通る(2026-11-12 依頼157 の1:ほかの階の職員の通り抜ける人が、事務のほかは玄関へ歩いて行けなかった)"), ("医事・事務", "医事・事務", [(52, 0, 70, 13)], {"事務": S_}, ""), ("中央検査室", "中央検査室", [(70, 0, 98, 13)], {"検査技師": S_, "ロボット": E_}, "ロボットは検体受付の台の前まで"), ("生理検査の待合", "生理検査", [(70, 21.9, 98, 27)], {"外来の患者": S_, "看護師": E_, "医師": E_, "検査技師": E_}, diff --git a/tools/hospital_sim/assumptions.json b/tools/hospital_sim/assumptions.json index 0300ce7..961a914 100644 --- a/tools/hospital_sim/assumptions.json +++ b/tools/hospital_sim/assumptions.json @@ -1459,6 +1459,30 @@ "source": "2026-11-12 エイイチ:依頼155 の動画を見て、ロボットがどこから呼ばれて動いているのか・人から荷物を受け取ったり渡したりしているのかが分からないと指摘。この3つで進めると決定", "n": null, "updated": "2026-11-12" + }, + "handoff_rule": { + "value": { + "積む所": "ロボットは台の前で待つ。積む人が台に来て load_s のあいだ横に立ち、積み終わってからロボットが出る(出発の時刻は時刻表のまま。積む人はそれに間に合うように台へ来る)", + "届け先": "ロボットは着いたら台の前で待つ。便ごとの pickup_wait_s(trips_all)が過ぎたころに受け取る人が台に着き、unload_s のあいだ横に立って降ろす。降ろし終わるまでロボットは動かない。そのあと戻る・次の積む所へ移る", + "pickup_wait_s の数え方": "ロボットが着いてから、受け取る人が台に着くまで(受け取る人は、それに間に合うように歩き始める)" + }, + "what": "台の前で、ロボットと人が積む・受け取るときの決まり", + "basis": "決まり", + "source": "試算の決まり(hospital_sim.py:着いてから受け取る人を待ち、降ろしてから次へ)。2026-11-12 依頼157 の報告の3:Unity のロボットは届け先で待たずに戻り、受け取る職員が台に着く時にはもういなかった。エイイチの指摘(人から荷物を受け取ったり渡したりしていないように見える)の原因", + "n": null, + "updated": "2026-11-12" + }, + "standing_yield": { + "value": { + "立って待つ点": "持ち場に立つ職員(正面玄関の案内・救急室の看護師など)と、受付の前・中待合で立って待つ人の点は、人の通り道(扉の前・通路の真ん中・台の前のロボットの帯)から外す", + "よける": "車いす・杖の人・ストレッチャーが 2 m 以内に来て通れないとき、立っている人(職員・患者・付き添い)は半歩(0.5 m)よけて道を空け、通り過ぎたら戻る。座っている人は動かない", + "ロボットが台の前で待つ時": "人はロボットの横を通れる幅が無ければ、別の側を回る。回れなければ、立っている職員が半歩よける" + }, + "what": "立っている人のそばで、歩いている人が動けなくなるのを防ぐ決まり", + "basis": "仮置き", + "source": "2026-11-12 エイイチ了承。依頼157 の記録:歩いている途中で 60 秒以上動けなかった人が 6 件(総合受付の前・中待合の人の混みで杖の人・車いすが 75〜121 秒、正面玄関の案内のそばの車いす 117 秒、救急室の台の前で待つロボットと看護師の間の医師 112 秒)", + "n": null, + "updated": "2026-11-12" } } } \ No newline at end of file diff --git a/tools/hospital_sim/export_unity_params.py b/tools/hospital_sim/export_unity_params.py index 94f1716..388a333 100644 --- a/tools/hospital_sim/export_unity_params.py +++ b/tools/hospital_sim/export_unity_params.py @@ -103,6 +103,10 @@ def main(): "switch_move": U["switch_move"]["value"], "seeds": U["seeds"]["value"], "request_view": U["request_view"]["value"], + "handoff": {"load_s": c["load_s"], "pickup_wait_s": c["pickup_wait_s"], "unload_s": c["unload_s"], + "staff_handoff_s": c["staff_handoff_s"], "rule": U["handoff_rule"]["value"], + "what": "積む・受け取る・人が渡す時間(秒。試算の common と同じ値)と、台の前の決まり"}, + "standing_yield": U["standing_yield"]["value"], "people_flow": {k: (v if k == "about" else {kk: v[kk] for kk in ("value", "what", "basis", "source") if kk in v}) for k, v in U["people_flow"].items()}, "basis": {k: U[k]["basis"] for k in ("speeds", "crowd_people", "people_mix", "stretcher_per_h")},