行動計画と意思決定 — 交差点でいつ曲がるか

認識と予測が「世界はこう見える」を作り、経路計画が「こう動ける」を描く。そのあいだで「そもそも何をすべきか」を決めるのが行動計画です。ルールの見える化(状態機械)・ギャップの見極め(非保護右折)・見えない危険への備え(遮蔽と確率)— 3つの意思決定を動かして観察します。

1. 「どう動くか」の前に「何をすべきか」

自動運転の計画系は階層化されています。ルート計画(どの道を通るか・分オーダー)→ 行動計画(車線変更する?譲る?曲がる?・秒オーダー)→ 軌道計画(具体的な曲線と速度・0.1秒オーダー)→ 制御(ミリ秒オーダー)。前章までの経路計画・制御が「幾何と力学」の世界だったのに対し、行動計画は離散的な選択と、他者・不確かさを含んだ判断の世界です。

POINT — なぜ階層に分けるのか 「30分先までの全操舵履歴」を一発で最適化するのは計算的に不可能。時間スケールごとに問題を分割し、上位層は粗く長く、下位層は細かく短く考える。行動計画は「離散の意思決定」を担うことで、下位の軌道最適化を連続変数の問題に保つ役割も果たしている。

2. ルールを見える化する — 状態機械

行動計画の最も古典的で今も現役の道具が有限状態機械(FSM)です。運転を「車線維持」「前車追従」「車線変更」「信号停止」といった状態に分け、状態ごとの挙動と、遷移条件(前方に遅い車が現れた、隣が空いた、赤信号が近い…)を明示的に書き下します。DARPA Urban Challenge(2007)の完走車はほぼすべてこの系譜でした。

下のデモは4状態の FSM が実際のシナリオを裁く様子です。前方に遅い車 → 追従 → 隣車線が空くのを待って車線変更 → 復帰 → 赤信号で停止 → 青で再発進。いま居る状態が青くハイライトされ、遷移が発火した瞬間に条件ラベルが点灯します。

状態機械によるシナリオ再生 — 遷移条件が点灯する
上=状態遷移図(青=現在の状態、オレンジ=直前に発火した遷移条件)、下=実際の道路。紫の車が隣車線をふさいでいる間は「隣が空いた」が成立せず、追従状態で待つことに注目。これは台本ではなく、毎フレーム遷移条件を評価して動いています。
POINT — ルールベースの強みと限界 FSM やビヘイビアツリーは説明可能(なぜ曲がったか条件を指させる)で検証しやすいのが最大の強み。一方、現実の交通は「工事区間で対向車線を借りる」「手信号の警察官」など例外の塊で、状態と遷移を足すほど組合せが爆発する(状態爆発)。実務では階層 FSM やビヘイビアツリーで整理しつつ、判断の一部を学習やコスト最適化に逃がす。

3. ギャップを見極める — 非保護右折

信号の矢印に守られない右折(非保護右折)は、自動運転で最も難しい判断のひとつです。対向車列の切れ目(ギャップ)を測り、「自分が交錯点を通過し切る時間」より十分大きければ発進する — これをギャップ受け入れ(gap acceptance)と呼びます。

発進 GO ⇔ tgap > τ = Tcross + マージン tgap = 次の対向車が交錯点に届くまでの時間。τ を下げる=積極的、上げる=保守的

問題は τ の選び方が純粋なトレードオフであること。保守的にすれば安全余裕は増えるが待ち時間が伸び、後続をいらだたせる。積極的にすれば流れに乗れるが、見積もりが甘いと対向車に急ブレーキを強いる。下のデモで交通量と τ を変え、平均待ち時間と危険度(対向車に強いる減速度)が両立しないことを数値で確かめてください。

非保護右折 — 待ち時間と危険度のトレードオフ
青=自車(右折待ち)、灰色=対向車、破線円=軌道が交差する交錯点。先頭対向車に「あと何秒」のギャップが表示され、τ を超えた瞬間に発進します。自車の通過には約3秒かかるため、τ=3 付近では対向車が赤く光って急減速(危険な右折)。スライダーを動かすと統計はリセットされます。

4. 見えないものに確率で備える — 遮蔽と POMDP

ここまでの判断は「見えているもの」が相手でした。しかし本当に難しいのは見えていないものです。停車中のバスの陰は、センサがどれほど高性能でも物理的に見通せない遮蔽(オクルージョン)領域。そこから歩行者が出てくるかもしれない。出てこないかもしれない。この「かもしれない」を無視すれば危険で、最悪を仮定して毎回停止すれば交通が成立しません。

合理的な答えは、隠れた状態に確率(信念)を置き、期待コストが最小になる行動を選ぶこと — これが POMDP(部分観測マルコフ決定過程)の考え方です。実践的な帰結はシンプルで、「遮蔽の先を、飛び出しがあっても止まれる速度で通過する」予防減速になります。

a* = argmina Σs b(s) · C(s, a) b(s) = 隠れた状態 s(歩行者がいる/いない)への信念。観測できないなら、確率で重みづけて期待コストを最小化する
バスの陰の歩行者 — 「見えない危険に減速する」価値
灰色の扇形=自車から見た遮蔽領域(自車が進むと形が変わる)。車の前方の帯は空走距離(黄)+制動距離(赤)。歩行者(オレンジ)は見えた瞬間から反応 0.6 s +減速 7 m/s² で急制動しますが、速度が高いと帯が横断歩道を越えており間に合いません。速度と出現確率から計算した理論衝突確率と試行の実績が表示されます。予防減速をオンにして同じ速度設定と比べてみてください。
一歩先へ — POMDP としての運転 遮蔽の先の歩行者だけでなく、「対向車は譲る気があるか」「隣の車は割り込むつもりか」といった他者の意図も観測できない隠れ状態であり、運転は本質的に POMDP になる。厳密解は最小の問題でも計算不能(PSPACE困難)なので、実務ではサンプリングベースのオンライン近似(POMCP、DESPOT など)や、「見えない位置に仮想の歩行者を置いて最悪ケースを制約にする」保守的近似が使われる。観測には情報を得る価値もある — 少し前に出て視界を広げる「クリーピング」は、情報収集行動そのものだ。

5. ルールと学習、そして社会的相互作用

ここまで見たとおり、行動計画には「説明できて検証しやすいルール」と「不確かさを扱う確率・最適化」の両方が要ります。さらに近年は、人間ドライバーとの暗黙の交渉(合流での譲り合い、アイコンタクトの代わりのじわり前進)を模倣学習・強化学習で獲得するアプローチが実用に入り、多くのシステムが併用構成を取ります。

方式得意なこと苦手なこと検証・説明
ルールベース
(FSM・ビヘイビアツリー)
交通規則の遵守、明確な優先順位、緊急時の確定動作例外・曖昧な状況、状態爆発、暗黙のマナー◎ 条件を指させる。形式検証も可能
学習ベース
(模倣・強化学習)
複雑な相互作用、人間らしい振る舞い、譲り合いの間合いまれな状況(分布外)、保証がない、失敗理由の説明△ 統計的評価が中心。個別判断の説明は困難
ハイブリッド学習が「提案」し、ルール・最適化が安全制約として拘束する両者の境界設計、責任の切り分け○ 安全層だけでも検証すれば下限を保証できる
注意 — 凍りつくロボット問題 不確かさを全部リスクとして積むと、期待コスト最小の行動が「動かない」になりがちで、これをfreezing robot problem と呼ぶ。しかし公道で過度に保守的な車は、それ自体が危険源になる — 合流できずに本線を止め、不自然な急停止で後続の追突を誘発する。実際、自動運転車の初期の事故統計では「自車が追突される」型が目立った。安全とは「止まること」ではなく、周囲から予測可能で、交通の流れと整合的であることを含む概念になる。

6. まとめ