経路計画 — 安全で滑らかな道の見つけ方

現在地からゴールまで、障害物を避けながらどう進むか。地図をグラフとして探索する A*、ランダムに木を伸ばす RRT、候補軌道をコストで選ぶ局所計画 — 自動運転の「道の選び方」を3つの道具で動かして理解します。

1. 計画は階層で解く — ルートから軌道まで

「自宅から会社まで」と「3秒後にハンドルを何度切るか」を1つの問題として解くのは無理があります。実際のシステムは計画を階層に分けます。

この章では、大域で使うグラフ探索、幾何的に複雑な空間で使うサンプリング法、局所で使うコスト最適化の順に見ていきます。

2. グラフ探索 — ダイクストラ法と A*

地図をグリッドやグラフとみなせば、経路計画は「最短経路問題」です。ダイクストラ法はスタートからの距離 g が小さい順に律儀に広げるので、最短性は保証されますが全方位に膨らみます。A* はそこに「ゴールまでの残り距離の見積もり h(ヒューリスティック)」を足し、ゴールに向かう方向を優先します。

f(n) = g(n) + h(n) g = スタートから n までの実コスト、h = n からゴールまでの見積もり。h が実コストを超えない(許容的)なら A* は最短経路を保証する
ダイクストラ vs A* — 探索の広がりを競走させる
左=ダイクストラ(w=0)、右=重みつき A*(f = g + w·h)。塗られたセルが展開済みノードです。w=1 の A* は最短性を保ったまま展開数が激減。w を上げると貪欲になりさらに速い一方、「コの字の罠」では袋小路に突っ込み、経路も遠回りになることがあります。
POINT — h は「嘘をつかない楽観主義者」がベスト h がゴールまでの真のコストを決して超えない(許容的な)見積もりなら、A* は最短経路を保証しつつ無駄な展開を省ける。グリッドならマンハッタン距離や直線距離がその代表。w>1 の重みつき A* は保証を「最短の w 倍以内」に緩める代わりに速度を買う実務的なテクニック。

3. サンプリングで探す — RRT

グリッド探索は次元が上がると破綻します(位置×向き×速度…でセル数が爆発)。そこで空間をランダムにサンプリングして探索木を伸ばすのが RRT(Rapidly-exploring Random Tree)です。手順は単純:①ランダムな点を打つ → ②木の中で最も近いノードを探す → ③そこから一定距離だけ点の方向へ枝を伸ばす(障害物に当たるなら捨てる)→ ①へ戻る。

RRT — ランダムな木が狭い通路を抜けてゴールへ
木は空間の「空いている所」へ勝手に広がり、狭い通路もいつかは通り抜けます。ゴールバイアス=サンプルをゴール自身にする確率。0% だと純粋な探査、上げるとゴールへ一直線になりやすい反面、障害物の裏に回り込みにくくなります。到達後、橙=生の経路、緑=ショートカット平滑化後。
注意 — RRT の経路はそのままでは走れない RRT が返す経路はランダムの継ぎ接ぎでガタガタ。車はその場で向きを変えられない(曲率制約がある)ため、平滑化や、車両の運動モデルに沿った枝だけを伸ばす変種(kinodynamic RRT)が必須。また RRT は「見つかる」ことは保証しても「最短」は保証しない — 漸近的に最適へ近づく RRT* がその改良版。

4. 局所計画 — 候補軌道とコストマップ

走行中の軌道計画で広く使われるのが「たくさんの候補軌道を生成して、コストが最小のものを選ぶ」方式です。コストは複数の項の重みつき和で、この重みの設計がそのまま車の性格になります。

J = wobs·C障害物 + wlane·C車線 + wcurv·C曲率 障害物に近いほど、車線中心から外れるほど、急ハンドルなほどコスト増。重みのバランスが「安全・規律・乗り心地」の優先順位を決める
候補軌道とコスト — 重みを変えると選ばれる道が変わる
前方に停車車両。緑=選ばれた軌道、赤=衝突する候補、灰=その他の候補。標準設定では隣車線へのスムーズな車線変更が選ばれます。wobs を下げ wlane を上げると停車車両ギリギリを通る危険な軌道に、wcurv を上げるとゆるやかな(=早めに始める)回避になります。
POINT — コスト設計は「価値観の設計」 アルゴリズムは与えられたコストを最小化するだけ。「安全マージンと車線遵守のどちらを優先するか」「多少の急操舵を許してでも距離を取るか」を決めるのは重みを設計する人間だ。自動運転の意思決定の倫理は、実装上はこのコスト関数の中に宿る。

5. まとめ — 3つの道具の使い分け

手法保証得意な場面弱点
ダイクストラ / A*最短(h が許容的なら)道路グラフ・グリッドの大域計画高次元で爆発
RRT / RRT*確率的完全性(RRT* は漸近最適)駐車など幾何的に複雑・高次元経路が粗く平滑化必須
候補軌道+コスト候補集合内で最良走行中の局所計画(リアルタイム)候補に無い動きは選べない
一歩先へ — 実車で使われる発展形 車は横に平行移動できないため、向き・曲率まで状態に含めた ハイブリッド A*(駐車場で有名)や、走行向きに沿った候補を格子状に張る State Lattice が使われる。近年は候補選択のあと二次計画法(QP)で軌道を数値最適化して仕上げるのが定番で、さらに学習ベースのプランナが候補生成やコストそのものを置き換えつつある。