ホーム›Part 4 自動運転のしくみ›4.2

Part 4 · 自動運転のしくみ

4.2 システムの全体像

認知・判断・操作

読了目安 10分前提:4.1 自動運転レベルとODD、1.4 期待値と分散(標準偏差)▶ 動画(約5分)

この回で分かること

  • 自動運転システムを「センサ → 認知 → 判断 → 操作」の流れと、それを見張るしくみで説明できる
  • 処理の 遅れ(レイテンシ)が、止まるまでの距離にどう効くかを計算できる
  • 部品の誤りが後ろの段階に伝わることや、予測の誤差が先の時刻ほど広がることを簡単な式で見積もり、安全の要求を部品に割り当てる考え方を説明できる

直感で理解する

人が車を運転するときは、目や耳で周りの様子をとらえ(認知)、どう動くかを決め(判断)、ハンドルやペダルを動かします(操作)。自動運転システムも、基本は同じ流れです。違うのは、目の代わりにカメラやレーダーなどの センサ を使うことと、この流れを1秒間に10回から数十回という速さで、休まずくり返すことです。

センサ 測る 認知 知る 判断 決める 操作 動かす カメラ・LiDAR レーダー・GNSS 検出・追跡 自己位置・地図 周りの動きの予測 経路と速度の計画 アクセル・ブレーキ ハンドル 車が動き、周りの様子が変わる → また測る(1秒間に10〜数十回) 見張り:故障・ODD の外・運転者の状態 → 必要なら引き継ぎ要求や停止
自動運転システムの基本の流れ(模式図)。測る・知る・決める・動かすを速い周期でくり返し、その全体を見張りのしくみが監視する。

それぞれの段階の役割と、中で使われる主な技術は次のとおりです。

段階役割主な技術詳しくは
センサ周りと自車の状態を測るカメラ、LiDAR、レーダー、GNSS(衛星測位)、IMU(加速度と回転の計測)、車輪の回転4.3 センサとフュージョン
認知何がどこにあり、どう動いているかを知る。自分がどこにいるかを知る物体検出・セグメンテーション、追跡、センサフュージョン、自己位置推定と地図3.4、4.4 自己位置推定と地図
判断周りの動きを予測し、どう走るかを決める周りの車や歩行者の動きの予測、行動の決定(止まる・車線を変える)、経路と速度の計画4.5 予測と経路計画
操作決めた経路と速度のとおりに車を動かす加減速とハンドルの制御、電気信号でブレーキやハンドルを動かすしくみ(バイワイヤ)0.2(制動距離)
見張り全体が正しく動いているか、ODD の中にいるかを見張る故障の検知、ODD の監視、運転者の状態の監視、フォールバック4.1、4.7 安全の3本柱

段階と段階の間では、決まった形の情報を受け渡します。認知からは「物体のリスト(種類・位置・速度・大きさ・確からしさ)」と「走れる場所」が、判断からは「これから数秒間の軌道(各時刻の位置と速度)」が渡されます。受け渡しの形(インターフェース)がはっきりしているので、段階ごとに作り、試験し、性能を確かめることができます。このように部品に分けて作る方式を モジュール型 と呼びます。全体を1つの大きな AI で学習する End-to-End 型 との違いは、4.6 で扱います。

機械学習が主に使われるのは、条件が無数にある認知と予測です。一方、操作の部分は、車の動きの物理モデルにもとづく制御が中心で、動きを計算で確かめやすい部分です。1台のシステムの中に、性質の違う部品が並んでいることになります。

数式で確かめる

① 遅れは止まるまでの距離をのばす

センサが様子をとらえてから、ブレーキが実際に効き始めるまでには、各段階の処理の時間がかかります。これを 遅れ(レイテンシ)と呼びます。たとえば次のような内訳です(説明用の例)。

段階遅れ
センサ(撮影して送る)50 ms
認知80 ms
判断50 ms
操作(指令を出してから、ブレーキが効き始めるまで)120 ms
合計300 ms(0.3 秒)

1 ms(ミリ秒)は1000分の1秒です。遅れの間も車は同じ速度で進み続けるので、止まるまでの距離は、0.2 の制動距離に「遅れの間に進む距離」を足したものになります。

$$s_{\text{停止}} = v\,t_{\text{遅れ}} + \frac{v^2}{2a}$$

時速 100 km(秒速 約27.8 m)、減速度 \(a = 5\ \mathrm{m/s^2}\) なら、制動距離は 27.8² ÷ 10 ≈ 77 m。遅れ 0.3 秒の間に進む約 8 m を足して、約 86 m です。人が気づいてからブレーキを踏むまでには、ふつう1秒前後かかり、同じ計算で約 105 m になります。システムの遅れは人より短いものの、ゼロではありません。遅れが 0.1 秒増えるごとに、止まるまでの距離は約 2.8 m のびます。

また、認知を 0.1 秒ごと(10 Hz)に動かしているなら、飛び出しがちょうど処理の直後に起きると、次の処理まで最大 0.1 秒待つことになります。処理の周期も遅れに加わります。

② 誤りは直列に重なる

認知・予測・計画・制御のどれか1つでも誤ると、車は正しく動けません。ある場面で各段階が誤る確率を \(p_1, p_2, \ldots\) とし、互いに独立とすると、全体が正しく動く確率は 1.1 の掛け算で

$$P(\text{全体が正しい}) = (1-p_1)(1-p_2)\cdots(1-p_k) \approx 1 - (p_1 + p_2 + \cdots + p_k)$$

です。p がどれも小さいときは、右のように誤りの確率をほぼ足し算で見積もれます。認知 0.1%、予測 0.2%、計画 0.05%、制御 0.01% なら、全体の誤りは約 0.36%(掛け算で計算しても 0.36%)。全体の誤りの大部分は予測と認知から来ていて、制御をいくら良くしてもほとんど変わりません。どの段階に力を入れるべきかが、この計算から見えてきます。

ただし、豪雨のように認知と予測を同時に悪くする原因(1.1 の共通原因)があると、誤りは特定の場面に集中して起こります。平均の数字は小さくても、雨の日だけを見ると、いくつもの段階が同時に誤りやすくなります。場面ごと(ODD の条件ごと)に分けて見積もることが必要です。また、後ろの段階は、前の段階が見逃した物の存在を知りようがありません。認知の見逃しは、判断や操作ではほとんど取り返せないのです。

③ 予測の誤差は先の時刻ほど広がる

判断では、周りの車が数秒後にどこにいるかを予測します。いちばん簡単な予測は「今の位置 + 速度 × 時間」です。認知が測った位置に誤差(標準偏差 \(\sigma_p\))、速度に誤差(\(\sigma_v\))があり、2つが独立なら、t 秒後の位置の予測の誤差は

$$\sigma(t) = \sqrt{\sigma_p^2 + (\sigma_v\,t)^2}$$

になります。独立な誤差は、そのまま足すのではなく、2乗して足してから根号をとります。1.7 で、2つの標準誤差を合わせたときと同じ形です。\(\sigma_p = 0.3\) m、\(\sigma_v = 0.5\) m/s とすると、次のようになります。

何秒後0123
予測の誤差 σ(t)0.30 m0.58 m1.04 m1.53 m

3秒後には σ ≈ 1.5 m で、±2σ(約95%の範囲)は ±3 m と、車線の幅(約 3.5 m)に近くなります。先の時刻ほど予測はあいまいになるので、判断は先のことほど大きな余裕をとり、新しい測定が入るたびに計画を立て直します。認知が誤差の大きさも一緒に渡してくれれば、判断はその分だけ余裕を調整できます(3.7 の不確実性)。実際には、周りの車が曲がったり止まったりすることも考えるため、誤差はさらに大きくなります。→ 4.5 予測と経路計画

SOTIF・安全との接点

  • 全体の要求を部品に割り当てる:「歩行者の手前で止まる」という全体の目標を、認知(何 m 先の歩行者を、どれくらいの確率で見つけるか)、判断(いつ止まると決めるか)、操作(何秒でブレーキを効かせるか)の要求に分けて割り当てます。①の遅れの内訳も、このような「予算」として段階ごとに配分します。→ 4.7 安全の3本柱、5.5 受入れ基準と妥当性確認目標
  • 認知の見逃しは後ろで取り返せない:見逃した歩行者は、判断や操作からは見えません。複数のセンサを組み合わせたり(冗長化)、数フレームにわたって追跡したりして、認知の段階で見逃しを減らします。→ 3.4、4.3 センサとフュージョン
  • トリガー条件は複数の段階に同時に効く:豪雨や逆光は、センサ・認知・自己位置推定を同時に弱らせることがあります。SOTIF でトリガー条件を探すときは、1つの部品だけでなく、流れ全体への影響を見ます。→ 5.3 機能不十分とトリガー条件
  • 不確かさを後ろに渡す:認知が「どれくらい確かか」も一緒に渡せば、判断は確かでないときに速度を落とすなど、慎重に振る舞えます。そのためには、確信度がキャリブレーションされていることが前提です。→ 3.7
  • 見張りは別のしくみで:故障や ODD の外を見張る部分は、主の処理と同じ原因で一緒に止まらないよう、別の計算機や単純なルールで作ることがよくあります。→ 4.1、4.7 安全の3本柱
  • AI の部品と、そうでない部品:認知・予測は機械学習、操作は物理モデルにもとづく制御と、部品ごとに安全の示し方が変わります。全体を1つの AI で学習すると、この分け方ができなくなります。→ 4.6 モジュール型とEnd-to-End型、5.9 AIコンポーネントの安全

まとめ

  • 自動運転システムは、センサで測り、認知で周りと自分の位置を知り、判断で予測して走り方を決め、操作で車を動かす。この流れを1秒間に何回もくり返し、見張りのしくみが全体を監視する
  • 各段階の遅れは積み重なり、遅れの間も車は進む(止まるまでの距離 = 速度 × 遅れ + 制動距離)。部品の誤りは直列に重なり、全体の誤りはおよそ各段階の誤りの足し算になる
  • 予測の誤差は先の時刻ほど広がる(独立な誤差は2乗して足す)。全体の安全の要求を部品に割り当て、不確かさも後ろの段階に渡すことが大切

確認クイズ

Q1. 「前の車が急に減速したので、ブレーキを強めた」。これを認知・判断・操作に分けると?

認知:前の車の位置と速度を測り、速度が急に下がったことを知る。判断:このままでは近づきすぎると予測し、どれだけ減速するかを決める。操作:決めた減速度になるようにブレーキを効かせる。

Q2. 全体の遅れが 0.3 秒から 0.5 秒に増えると、時速 100 km で止まるまでの距離は何 m のびる?

遅れが 0.2 秒増えるので、27.8 × 0.2 ≈ 5.6 m のびます(約 86 m → 約 91 m)。

Q3. 本文の例(σ_p = 0.3 m、σ_v = 0.5 m/s)で、速度の測り方を良くして σ_v を 0.25 m/s にすると、3秒後の予測の誤差は?

\(\sqrt{0.3^2 + (0.25 \times 3)^2} = \sqrt{0.09 + 0.5625} \approx 0.81\) m で、1.53 m からほぼ半分になります。先の時刻の予測では、速度の誤差の影響が大きいことが分かります。

Q4. 本文②の例で全体の誤りを減らしたいとき、制御の誤り(0.01%)を10分の1にするのと、予測の誤り(0.2%)を半分にするのでは、どちらが効く?

予測を半分にするほうです。全体の誤りは約 0.36% から、制御を良くすると約 0.351%、予測を半分にすると約 0.26% になります。いちばん大きな誤りの段階から手をつけるのが効果的です。

もっと知りたい人へ