Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ドライビング シナリオを使用した開ループ ADAS アルゴリズムのテスト

この例では、Simulink® で開ループ ADAS (先進運転支援システム) アルゴリズムをテストする方法を説明します。開ループ ADAS アルゴリズムでは、自車の動作は事前定義されており、シミュレーション中にシナリオが進行するにつれて変化しません。

アルゴリズムをテストするために、Driving Scenario Designerアプリから保存したドライビング シナリオを使用します。この例では、Scenario Reader ブロックを使用してシナリオを読み取ってから、シナリオとセンサー検出をBird's-Eye Scopeで可視化します。

ドライビング シナリオの検査

この例では、プリビルド シナリオ の 1 つに基づくドライビング シナリオを使用します。シナリオは、ドライビング シナリオ デザイナー アプリからアクセスします。これらのシナリオの詳細については、Prebuilt Driving Scenarios in Driving Scenario Designerを参照してください。

アプリでシナリオ ファイルを開きます。

drivingScenarioDesigner('LeftTurnScenario.mat')

シナリオをシミュレートするには、[実行] をクリックします。このシナリオでは、自車は北へ走行し、交差点をまっすぐ進みます。交差点の左側から入ってきた車両が左折し、最終的に自車の前方に来ます。

自車には以下のセンサーがあります。

  • オブジェクト検出を生成するための前面レーダー

  • オブジェクトおよび車線境界線の検出を生成するための前面カメラと背面カメラ

  • シナリオの点群データを生成するための、ルーフの中心にある LiDAR

  • オブジェクト検出を生成するための、左前方と右前方を向いた 2 つの超音波センサー

モデルの検査

この例のモデルは、[エクスポート]、[Simulink モデルのエクスポート] を選択することにより、アプリから生成されています。モデルで、Scenario Readerブロックは、シナリオ ファイルからアクターと道路を読み取り、非エゴ アクターと車線境界線を出力します。モデルを開きます。

open_system('OpenLoopWithScenarios.slx')

Scenario Readerブロックの [ドライビング シナリオ デザイナーのファイル名] パラメーターは、シナリオ ファイルの名前を指定します。この例で使用するシナリオ ファイルのように MATLAB® 検索パス上にあるシナリオ ファイル、またはシナリオ ファイルの絶対パスを指定できます。あるいは、[ドライビング シナリオのソース]From workspace に設定してから [MATLAB またはモデル ワークスペースの変数名] を有効な drivingScenario オブジェクトのワークスペース変数名に設定することにより、drivingScenarioオブジェクトを指定できます。

Scenario Reader ブロックは、シナリオ内の非エゴ アクターの姿勢、および自車の左車線と右車線の境界線を出力します。自車が走行している道路のすべての車線境界線を出力するには、[出力する車線境界線] パラメーターの対応するオプションを選択します。

アクター、車線境界線、および自車の姿勢は、センサー ブロックを含むサブシステムに渡されます。サブシステムを開きます。

open_system('OpenLoopWithScenarios/Detection Generators')

Driving Radar Data GeneratorVision Detection GeneratorLidar Point Cloud Generator、およびUltrasonic Detection Generatorの各ブロックは、シナリオから合成検出を生成します。開ループの例Simulink で合成レーダーおよびビジョン データを使用したセンサー フュージョンなどで、このセンサー データを融合して追跡を生成できます。

このモデルのセンサー ブロックの出力は、車両座標内にあります。ここで、

  • "X" 軸は、自車の前方向を指します。

  • "Y" 軸は、自車の左方向を指します。

  • 原点は自車の後車軸の中心です。

このモデルは開ループであるため、自車の動作はシミュレーションが進行するにつれて変化しません。そのため、[自車のソース] パラメーターは Scenario に設定されており、ブロックは事前定義された自車の姿勢と軌跡をシナリオ ファイルから読み取ります。車両コントローラーおよびその他の閉ループ モデルの場合は、[自車のソース] パラメーターを Input port に設定します。このオプションでは、Scenario Reader ブロックへの入力としてモデルで定義されている自車を指定します。例については、ドライビング シナリオを使用した閉ループ ADAS アルゴリズムのテストを参照してください。

シミュレーションの可視化

シナリオおよびセンサー検出を可視化するには、Bird's-Eye Scopeを使用します。Simulink ツールストリップの [結果の確認][鳥瞰図スコープ] をクリックします。次に、スコープの [信号の検出] をクリックしてシミュレーションを実行します。

シミュレーション設定の更新

このモデルは、既定のシミュレーション終了時間である 10 秒を使用します。シナリオはわずか約 5 秒の長さであるため、シナリオが終了した後でも、シミュレーションは鳥瞰図スコープで引き続き実行されます。シミュレーションとシナリオの終了時間を同期するには、Simulink モデルのツール バーで、シミュレーション終了時間を 5.2 秒に設定します。これは、アプリ シナリオの厳密な終了時間です。シミュレーションを実行した後で、アプリによってシナリオ キャンバスの右下隅にこの値が表示されます。

鳥瞰図スコープでのシミュレーションの実行が速すぎる場合、シミュレーション ペーシングを使用してシミュレーションの速度を遅くすることができます。Simulink ツールストリップで、[実行]、[シミュレーション ペーシング] を選択します。[ペーシングを有効にしてシミュレーション速度を遅くする] チェック ボックスを選択し、0.8 秒など、シミュレーション時間を実経過時間 1 秒あたり 1 秒をわずかに下回るまで減らします。その後、鳥瞰図スコープでシミュレーションを再実行します。

参考

アプリ

ブロック

関連するトピック