ADAS (先進運転支援システム)

ADASはAdvanced Driver-Assistance Systems(先進運転支援システム)の略称であり、ドライバーの安全でより快適な運転を支援するハードウェアとソフトウェアのコンポーネントです。搭載されたセンサにより周囲の状況とドライバーの運転状況を把握し運転支援を行うことで、自動車の予防安全性能を向上させることができるため、近年多くの車両に搭載されるようになっています。ADASの例としてはアダプティブクルーズコントロール (ACC)やブラインドスポットモニター、車線逸脱抑制やレーンキープアシスト(LKA)、自動緊急ブレーキ(AEB)等が挙げられます。

なぜADASが重要か

ADASによりヒューマンエラーが最小化され、交通環境がより安全になります。例えば、レーン変更を行う際、死角に他車両がいるシーンなど危険なシナリオを事前にドライバーに警告することで、より安全な運転を行うようにドライバーを支援できます。また、衝突を回避するために自動緊急ブレーキを備えた車両もあり、交通事故低減を目的としてドライバーの振る舞いを自動化し、負担を軽減するようなシステムが数多く登場しています。

実際、ボストンコンサルティンググループの調査によると、米国ではADASによって交通事故数が28%減少しており、年間9,900人の命が救われているという結果が出ています。

その実安全性能への寄与に裏付けられ、ADASに関する各国の法規やアセスメントも設定されてきています。アセスメントで高い評価を取得することで予防安全性能への一つの裏付けとなり、メーカーは車両性能をアピールすることができます。また、法規によりADASが義務付けられることにより、2021年11月以降に発売する国産車ではADASを搭載が義務化されています。

New Car Assessment Program(アセスメント)

New Car Assessment Program(NCAP)は、自動車の安全性能を評価するためのプロトコルです。これらプロトコルは実際の事故統計データに基づき各策定されるため、高い評価を取得することで交通事故の実安全寄与が期待できます。また、各国の自動車メーカーにとって自社製品の安全性能を競う場としても機能しているため、重要な評価指標です。NCAPで高い評価を取得することでその車両の安全性能が高いことを示し、客観的な商品力の訴求が可能となります。世界中には各国の交通事情に合わせたNCAPが存在します。代表例は以下の通りです。

  • Euro NCAP:欧州で販売されている新型車に対して評価されているアセスメント。各シナリオの達成可否に基づいて点数が与えられ、その点数に従って0~5の星(five-start safety rating system)が与えられる。
  • JNCAP:日本で販売されている新型車に対して評価されているアセスメント。Euro NCAPと同様に各評価シナリオ可否に基づき点数が与えられ、点数に従い1~5の5段階で星が与えられる。
  • NHTSA NCAP (U.S. NCAP):米国道路交通安全局にて評価されているアセスメント。新車の安全性能評価を行い、消費者向けにその評価結果を公表している。
  • IIHS HLDI:米国保険業者協会高速道路安全性能評価にて評価されているアセスメント。各評価シナリオに基づき取得した点数が高ければTOP SAFETY PICK+/TOP SAFETY PICKに選ばれ、IIHS HLDIのウェブサイトで公開される。
  • C-NCAP:中国国内向けの新型車のに対し、評価されているアセスメント。

これらアセスメントにおいても常に新しい事故形態や新機能に関する評価シナリオが追加されているため、ADAS開発者は網羅的、かつ、膨大な評価シナリオを要求されます。そのため、要求性能の整理とシナリオ検証の効率化が重要です。

法規

ADASは、自動車の安全性能を向上させるために開発された技術です。その性能に裏付けられ、日本では2021年11月以降に発売する国産車(輸入車は2024年7月以降)には、ADAS装備が義務付けられています。一方で、ドライバーが運転操作を行わなくても自動的に車両が制御されることがあるため、不要な作動や危険な挙動が引き起こされないように法規上の規制についても非常に厳しくなってきています。自動車メーカーは、ADASを搭載する場合には、法規に基づいた規制を遵守する必要があります。日本を含め多くの国では国連欧州経済委員会自動車基準調和世界フォーラム(WP29)にて定められた国際的な規格であるUN-R 79(自動操舵関連)やUN-R 152(自動ブレーキ関連)を法規として定めています。例えば、UN-R79では緊急操舵システムを作動させる場合、①衝突リスクが検出された場合にのみ制御介入する、②制御介入によってレーンマーキングを超える誘導を行わない、他の道路ユーザーと衝突する誘導を行わない、といった条件を満たす必要があります。

以上のように、アセスメント、法規共にADASに関する評価項目、評価シナリオが増えてきています。これらに対応するため、仮想環境(3Dシミュレーション)による評価の効率化に加え、設計時に要件と検証方法を正しく設定することが重要です。次に設計方法について見てみましょう。

ADAS機能の設計方法

ここではADASの機能がどのように設計されるのかを理解するため、まずは代表的なADAS機能をいくつか挙げてみます。

アダプティブクルーズコントロール(ACC)

先行車両との車間距離が適切に保たれるように車速を制御するシステムです。高速道路や自動車専用道路での使用を前提とし、先行車両との距離が接近している場合には減速され、距離が十分空いている場合には車両を加速させて航行速度を上げます。先行車両がいない場合には設定した速度での航行を維持します。

自動緊急ブレーキ(AEB)

車両前方の障害物や他車両との衝突しそうな場合に、ドライバーに代わり自動的に減速をかけるシステムです。前方衝突警告機能(FCW)と併用され、前方にある物体や車両の距離や速度に応じてまずは警告を出し、より衝突の可能性が高まった場合には自動でブレーキをかけることで衝突の回避・軽減を行います。国内でも2021年11月以降に発売する国産新型車には、AEB搭載が義務付けられています。

レーンキープアシスト(LKA/LKAS/LKS/LKAS)

レーンキープアシストは走行車線の維持をアシストするADAS機能です。カメラで車線を認識し、自車両が車線を逸脱しそうになった場合、または車線中央を継続して走行するためにステアリングを支援します。アダプティブクルーズコントロール(ACC)と合わせて使用されます。

ブラインドスポットモニター(BSM)

隣接車線の後方から接近する車両を検知し、ドライバーに注意喚起を行うシステムです。死角領域に存在する車両や障害物に気付かずに車線変更を行うことで生じる事故を防ぐ効果があります。

道路標識認識(TSR)

カメラなどのセンサーで道路標識を読み取り、表示された速度制限や禁止標識などの情報を運転手に知らせるシステムです。運転する地域で遵守すべき速度制限や規制事項を、モニターを通して確認することができます。

アダプティブフロントライティング(AFS)

ハンドル操舵角や車両速度に応じてヘッドランプを照射角や範囲を自動制御するシステムです。カーブシーンではステアリング角に応じてヘッドランプの向きを変更することで、夜間など視界が悪い条件下での視認性を向上させます。

ドライバー異常時対応システム(DEA)

ドライバーが異常な状態に陥った場合に自動的に車両を安全な停止状態にするシステムです。ドライバーの無反応状態を検知すると自動的に制御を取り車両を停止させます。路肩などへの車線変更までを行うものもあります。

これらのADAS機能には共通のワークフローが存在します。最初のステップは車両に搭載されたセンサーからのデータを収集することです。一般的にはカメラやレーダーといったセンサーが必要となります。カメラによって周辺の物体・環境(他車両、歩行者、白線、標識、ガードレール等の障害物)が認識され、レーダーによってそれらの物体までの正確な距離が算出されます。物体検出と距離算出にはステレオカメラやLiDAR(Light Detection and Ranging)が利用されるケースもあります。また、GPSや高精度地図(MDマップ)が使われる場合もあります。

次に、これらセンサーから収集したデータを使い、上記に挙げたADAS機能が動作します。ADAS機能の設計は以下の3つのアルゴリズム開発に大別することができます:

  • 物体検出 — カメラ、レーダー等の複数のセンサーデータから、先行車両を検出する認識アルゴリズム。
  • センサーフュージョンとトラッキング - 複数のセンサーからの情報を統合し、複数のフレームにわたって検出された車両の位置や速度を推定するアルゴリズム。
  • 判断・制御 — 自車両の速度と周辺車両の位置・速度から速度やステアリングの制御、またはドライバーに注意喚起するアルゴリズム。

例えばアダプティブクルーズコントロールやレーンキープアシストでは、搭載したカメラ、レーダーから周辺車両や白線の検出を行います。次にそれらの検出結果を統合し、トラッキングアルゴリズムによって前方車両の状態(位置・速度)、また自車両が航行する車線の曲率などを推定します。最後にこれらの情報から自車両速度とステアリングを自動制御し、ドライバーの運転を支援します。

図1. レーンキープアシストの例

図1. レーンキープアシストの例

シミュレーションを活用したADASアルゴリズムの開発

現実世界のハードウェアを利用したテストはコストが掛かるため、エンジニアはまず仮想環境を利用してADASソリューションをテストします。シミュレーション環境は2次元の場合、3次元の場合とありますが、目的によって使い分けられます。

2次元のシミュレーション環境はカメラやレーダー向けADASアルゴリズム開発・テストに活用することができます。この場合、道路や歩行者、自転車、車両等の交通参加者を含む仮想のシーンを作成するところから開始します。その後、自車両を仮想シーンに配置し、さらに仮想のカメラ・レーダーセンサを自車両に設定します。自車両の動きをプログラムして仮想シーンを走らせることで、ADASのアルゴリズム開発やテストに活用できる合成センサーデータを生成することが出来ます。

3次元のシミュレーション環境は2次元のシミュレーション環境をベースに構築できます。3次元環境の場合、カメラやレーダーに加えてLidarのテストも可能となります。3次元環境は2次元環境に比べて相対的に複雑になるため、実行するためにはより計算コストが掛かります。

シミュレーション環境でADASアルゴリズムを開発したら、次の開発ステージはハードウェアインザループ(HIL)テストです。これには実際のハードウェアを利用したADASアルゴリズムのテストが含まれ、シミュレーション環境を実際のハードウェア - ブレーキシステム等実車両 - と接続してアルゴリズムのテストを実施します。HILテストは車両に搭載されたADASコンポーネントが実世界でどのように振舞うかについて感触を得るのに役立ちます。

ドライバーインザループのような他のADASテストもあります。このようなテストは全てのモジュールが統合された際に車両がどのように機能するかを理解するための車載テストへと繋がっていきます。ドライバーインザループは最もコストを要するタイプのADASテストではありますが、振る舞いは実車両に最も近く、量産へ移行する前に要求されるテストの一つです。

MATLAB/SimulinkによるADAS機能の開発

MATLAB®とSimulink®はADAS開発におけるワークフローの様々なタスクをサポートします。

  1. テスト車両から得られた各種データ解析
  2. 仮想環境や検証用シナリオの作成
  3. 認知・判断・制御各種アルゴリズム開発
  4. コード生成・実装
  5. 統合・テスト

テスト車両から得られた各種データ解析

ADASの開発には仮想環境を利用したシミュレーションが重要になってきている一方、実車を利用した走行テストも並行して実施される場合が多く、実車走行時の計測データを如何に有効活用するか、といった点も重要なポイントです。

MATLABでは様々なセンサーデータを取り込んで解析が可能で、ADASで利用されるカメラ、RadarやLiDARなどの外界センサーやGPS、IMUなどの自己位置推定に係るセンサー等数多くのデータを利用できます。

右図は実車走行時の計測データから走行時のシーンやシナリオを仮想環境上に再現したものです。

画像処理や点群データ処理、センサーフュージョン・トラッキングの技術を活用し、自車両の軌跡と他車両の軌跡を抽出しています。

また、MATLABでは各種地図データを利用できますので、HERE HD Live MapsやZenrin Japan Map 、OpenStreetMapにアクセスして道路情報を取得し、仮想環境上で道路を再現できます。

図2. テスト車両から取得したセンサーデータを活用し、実際に走行したシーン・シナリオを再現

図2. テスト車両から取得したセンサーデータを活用し、実際に走行したシーン・シナリオを再現

仮想環境や検証用シナリオの作成

仮想環境(3Dシーン)や検証用シナリオの作成・活用はADAS開発を加速させるために必要不可欠と言われています。

しかしながら、仮想環境の作成には専門の知識や経験が必要になることが多く、導入における大きなハードルとなっています。

RoadRunnerはCG作成の経験などが無いエンジニアでも目的に応じた仮想環境が手軽に作成できる環境となっており、さらにRoadRunner Scenario™を利用すれば自車・他車や歩行者など交通参加者の振る舞いを設定してシナリオを作成できます。NCAPなどのアセスメントで定義されたテストプロトコルを効率的に作成するための機能やシナリオにバリエーションを与えるための機能も備わっており、作成したシーンやシナリオはASAMが作成したフォーマット - OpenDRIVE/OpenSCENARIO - にて出力することが可能になっています。

シーンに関してはOpenDRIVE以外にFBX®やOpenSceneGraph、USD形式等でのエクスポートが可能で、CARLA、NVIDIA DRIVE Sim®、Unity®やUnreal® Engineなどの自動運転シミュレータやゲームエンジンで利用できます。

また、Automated Driving Toolbox™を利用すればカメラ、RaderやLiDARといったセンサモデルを利用でき、ADASの認知・判断・制御を含むシステム全体をシミュレーションできます。認知の部分が不要の場合には、確率的センサモデルを利用するより簡易なDriving Scenario Designerと呼ばれる環境も選択できます。

図3. RoadRunnerによるシーン作成とRoadRunner Scenarioによるシナリオ作成

図3. RoadRunnerによるシーン作成とRoadRunner Scenarioによるシナリオ作成

認知・判断・制御各種アルゴリズム開発

ADAS/自動運転に必要な要素技術として認知・判断・制御の3点が挙げられますが、何れのアプリケーションもMATLAB/Simulinkで取り扱うことが出来、システム全体をシミュレーションできます。

画像処理コンピュータビジョン、センサーフュージョン・トラッキングやパスプランニング等の認識・判断部分に該当する分野には多数のアルゴリズムや問題解決のアプローチがあり、最適解を得るために様々な組み合わせを試す必要がありますが、MATLABでは豊富なライブラリを利用することで、例えばCコード等で記述すると膨大なコード量になってしまう処理内容をデバッグの容易なMATLABコードで簡潔に実現することができます。

既存のC/C++コードが存在する場合には専用のSimulinkブロックを利用して統合することができますので、既存アルゴリズムのテストベンチとしてSimulinkを利用することもできます。

また、制御領域ではより人間らしい滑らかな制御を実現するためのアプローチとしてモデル予測制御 (MPC)強化学習が注目されています。Simulinkは制御系設計・解析ツールとして長い歴史を持ちますが、モデル予測制御の設計やシミュレーション、強化学習に関してはそれぞれ専用の拡張パッケージが用意されています。

図4. MATLABによるLidar点群データ処理

図4. MATLABによるLidar点群データ処理

図5. パスプランニングアルゴリズム開発と検証用GUI構築例

図5. パスプランニングアルゴリズム開発と検証用GUI構築例

コード生成・実装

MATLAB/Simulink上で開発された各種アルゴリズムはコード生成関連のツールを利用することで様々な組み込みデバイス上に実装することが可能です。

ADASや自動運転に関するアルゴリズムは複雑なものも多く、実用的な速度で動かすためにはGPUやFPGA といった高性能なハードウェアリソースが必要になるケースも増えてきていますが、GPU Coder™やHDL Coder™、Embedded Coder®といったToolboxを利用することでそのようなデバイスにもアルゴリズムを実装することができます。自動コード生成を利用することでマニュアルコーディングに要する工数を削減でき、エンジニアのスキルに依存しない再現性の高いコードを生成することができます。

また、MATLABは各種ハードウェアと連携したソリューションを提供しており、NVIDIA® Jetson™やNVIDIA DRIVE™といったプラットフォーム、 Xilinx® やIntel®FPGAやSoCデバイスと直接接続することができます。MATLABから生成したコードをターゲットハードウェア上でビルドした後、アルゴリズム開発時に利用したテストベンチを利用して評価できます。MATLAB上で実行した結果とターゲットハードウェア上で実行した結果を比較することで生成されたコードの妥当性を確認できます。

図6. GPU Coderを利用してCUDAコードを生成し、NVIDIA Jetson AGX Orinへ実装

図6. GPU Coderを利用してCUDAコードを生成し、NVIDIA Jetson AGX Orinへ実装

統合・テスト

ADASや自動運転に関するアルゴリズムは多岐に渡るため、複数の物理現象・領域や複数のツール・プログラムを統合してシステム全体をシミュレーションできる環境が必要です。MATLAB/Simulink上では認知・判断・制御等多くのアプリケーションを扱うことができますが、必要に応じて外部のツールと協調シミュレーションを実行できます。例えば、ADASや自動運転を含む自律システムの開発ではロボットオペレーティングシステム(ROS)などのミドルウェアが利用されることもありますが、ROS Toolboxを利用すればMATLAB/SimulinkをROSノードとしてROSネットワークに統合できます。

また、ADASや自動運転のアルゴリズムの検証には多くのシナリオ・テストケースが必要になるため、その管理を省力化し、自動化を進めることが必要です。Requirements Toolbox™を利用することでADAS・自動運転に対する要求仕様を取り込んで管理でき、Simulink Test™ を利用すれば評価式に基づいて一連のシミュレーション結果や測定結果を評価できます。各種テストを自動化し、かつ並列実行することも可能です。このようなテスト・検証の自動化はCI/CDシステムの中で実施されるケースも増えてきていますが、Simulinkによるモデルベースデザインのプロセスは一般的なCI/CDシステムに統合可能です。

図7. 高速道レーン追従のリファレンスアプリケーション向けに定義されたテスト要求

図7. 高速道レーン追従のリファレンスアプリケーション向けに定義されたテスト要求