Simulink で合成レーダーおよびビジョン データを使用したセンサー フュージョン
この例では、Automated Driving Toolbox™ を使用して Simulink® で追跡およびセンサー フュージョン用の合成データ シミュレーションを実装する方法について説明します。レーダーおよびビジョンの合成データを使用したセンサー フュージョンの MATLAB® の例に忠実に従っています。
はじめに
合成レーダーおよびビジョン検出をシミュレートすると、まれなイベントや危険な可能性のあるイベントを作成して、車両アルゴリズムをテストできます。この例では、Simulink で合成データ ワークフロー全体をカバーします。
モデルの設定と概要
この例を実行する前に、レーダーおよびビジョンの合成データを使用したセンサー フュージョンで定義されているのと同じシナリオを作成するために、Driving Scenario Designerアプリを使用しました。次に、このシナリオの道路とアクターをシナリオ ファイル OpenLoop.mat
に保存しました。
Scenario Readerブロックは保存されたファイルからアクターの姿勢データを読み取ります。このブロックはシナリオのワールド座標におけるアクターの姿勢を自車座標に変換します。アクターの姿勢は、ブロックによって生成されたバスでストリーミングされます。
アクターの姿勢は、Sensor Simulation サブシステムによって使用されます。このサブシステムは、合成レーダーおよびビジョン検出を生成します。シミュレートされた検出は Multi-Object Tracker ブロックへの入力時点で連結されます。このブロックの出力は確認済みのトラックのリストです。最後に、鳥瞰図スコープにより、アクター、ビジョン、およびレーダーの検出、確認済みのトラック、道路の境界を可視化します。以下のセクションでは、このモデルの主なブロックについて説明します。
open_system('SyntheticDataSimulinkExample');
センサー検出のシミュレート
この例では、6 台のレーダー センサーと 2 台のビジョン センサーで 360 度の視野をカバーしている自車をシミュレートします。これらのセンサーにはオーバーラップやカバレッジ ギャップがあります。自車は、車両の前と後ろの両方に長距離レーダー センサーとビジョン センサーを備えています。車両の右側と左側にはそれぞれ、2 台の短距離レーダー センサーがあり、各センサーが 90 度をカバーしています。両側にある片方のセンサーは、車両の真ん中から後ろをカバーしています。両側にあるもう片方のセンサーは、車両の真ん中から前をカバーしています。
Sensor Simulation サブシステムを開くと、2 つのVision Detection Generatorブロックがあります。これらのブロックは、自車の前と後ろから検出を生成するように構成されています。Vision Detection Generator からの出力は、Detection Concatenationブロックに接続されます。次に、このサブシステムには 6 個のDriving Radar Data Generatorブロックが含まれており、前の段落で説明したように構成されています。Radar Data Generator の出力は、各ターゲットから生成された検出のクラスター化重心をレポートするように構成されています。
open_system('SyntheticDataSimulinkExample/Sensor Simulation')
追跡およびセンサー フュージョン
ビジョンおよびレーダー センサーからの検出をまず連結して、Multi-Object Trackerブロックへの単一の入力にする必要があります。連結は、追加の Detection Concatenation ブロックを使用して行われます。
Multi-Object Tracker ブロックは、すべての検出からのデータを融合し、自車の周囲にあるオブジェクトを追跡する役割を担います。Multi-Object Tracker は、対応する MATLAB の例 (レーダーおよびビジョンの合成データを使用したセンサー フュージョン) で使用したのと同じパラメーターを使用して構成されます。Multi-Object Tracker ブロックからの出力は、確認済みのトラックのリストです。
バスの作成と伝播
この例におけるさまざまなブロックからの入出力はすべてSimulink.Bus
(Simulink)オブジェクトです。モデルのコンパイルとバスの作成を簡略化するために、すべての Vision Detection Generator、Driving Radar Data Generator、Multi-Object Tracker、Detection Concatenation の各ブロックには、出力バス名のソースを定義するプロパティが含まれています。'Auto'
に設定されている場合、バスが自動的に作成され、その名前がそのバスを入力として取り込むブロックに伝播されます。'Property'
に設定されている場合、出力バスの名前を定義できます。以下のイメージは、複数検出バス、単一検出バス、複数トラック バス、単一トラック バスを示しています。
表示
Bird's-Eye Scopeは、Simulink ツールストリップから開くことができるモデル レベルの可視化ツールです。[シミュレーション] タブの [結果の確認] で [鳥瞰図スコープ] をクリックします。スコープを開いた後に、[信号の検出] をクリックして信号を設定します。次に、シミュレーションを実行してアクター、ビジョン、およびレーダーの検出、トラック、道路の境界を表示します。次のイメージは、この例の鳥瞰図スコープを示しています。
close_system('SyntheticDataSimulinkExample')
参考
アプリ
ブロック
- Detection Concatenation | Multi-Object Tracker | Driving Radar Data Generator | Vision Detection Generator