Simulink を使用した RoadRunner シナリオへのセンサーの追加
Simulink® でセンサー モデルを定義し、それらを RoadRunner シナリオの車両アクターに追加します。その後、RoadRunner Scenario からグラウンド トゥルース測定値を取得し、それらを Simulink で可視化用に処理して検出にします。
この例では、レーダー、ビジョン センサー、および LiDAR を RoadRunner シナリオの車両に追加します。
RoadRunner Scenario のセットアップ — Simulink インターフェイス
RoadRunner のインストール フォルダーとプロジェクト フォルダーのプロパティを構成します。RoadRunner アプリを開きます。
rrInstallationPath = "C:\Program Files\RoadRunner R2024b\bin\win64"; rrProjectPath = "D:\RR\TestProjects"; s = settings; s.roadrunner.application.InstallationFolder.PersonalValue = rrInstallationPath; rrApp = roadrunner(rrProjectPath);
この例で使用するシナリオを開くには、例のフォルダーから RoadRunner プロジェクト フォルダーに次のファイルを追加する必要があります。
straightCurvedFourLaneRoad.rrscene
— 4 車線のハイウェイを記述する RoadRunner シーン ファイル。SensorDerectionSimulation.rrscenario
— アクターと 4 車線ハイウェイ シーンにおけるアクターの軌跡を記述する RoadRunner シナリオ ファイル。SensorIntegration.rrbehavior.rrmeta
— Simulink を使用したセンサー検出処理と可視化の動作を RoadRunner シナリオのエゴ ビークルに関連付ける動作ファイル。
copyfile("straightCurvedFourLaneRoad.rrscene",fullfile(rrProjectPath,"Scenes/")); copyfile("SensorDetectionSimulation.rrscenario",fullfile(rrProjectPath,"Scenarios/")) copyfile("SensorIntegration.rrbehavior.rrmeta",fullfile(rrProjectPath,"Assets","Behaviors/"))
シナリオを開き、Simulink を RoadRunner シナリオと接続するための ScenarioSimulation
オブジェクトを作成します。
openScenario(rrApp,"SensorDetectionSimulation")
rrSim = createSimulation(rrApp);
SensorSimulation
オブジェクトの作成後に RoadRunner シーンを変更する場合は、変更を MATLAB で正しく反映するために次の手順に従う必要があります。
RoadRunner アプリケーションを保存して閉じます。
MATLAB ワークスペースから
ScenarioSimulation
オブジェクトをクリアします。RoadRunner シナリオを再度開きます。
ScenarioSimulation
オブジェクトを再作成します。
RoadRunner シナリオ シミュレーションのステップ サイズを指定します。Simulink モデルでも同じステップ サイズが使用されます。単位は秒です。
simStepSize = 0.1;
set(rrSim,"StepSize",simStepSize);
Simulink モデルの検証とシナリオのシミュレーション
Simulink モデル rrScenarioSimWithSensors
は、Vision Detection Generatorブロック、Driving Radar Data Generatorブロック、Lidar Point Cloud Generatorブロックをそれぞれ使用して、ビジョン センサー、レーダー センサー、LiDAR センサーのセンサー モデルを構成します。さらに、センサー ブロックが処理して検出にするグラウンド トゥルース オブジェクトと車線境界線のデータをシナリオから読み取るようにIdeal Ground Truth Sensorを構成します。また、エゴ ビークルに対して定義されているパスを RoadRunner シナリオから読み取り、パス追従ロジックを実装してパスに沿ってエゴ ビークルの動きを制御します。
バス定義を読み込み、モデルを開きます。LiDAR センサー モデルのブロックにはグラウンド トゥルース ターゲット姿勢の入力は必要がないことに注意してください。
load("busDefinitionsForRRSim.mat") modelName = 'rrScenarioSimWithSensors'; open_system(modelName)
シナリオおよびセンサー検出を可視化するには、鳥瞰図スコープ アプリを使用します。Simulink ツールストリップの [結果の確認] で [鳥瞰図スコープ] をクリックします。
シナリオのシミュレーションを開始します。モデルにより、シミュレーション中に Point Cloud Viewer ブロックを使用して 3 次元点群が可視化されます。鳥瞰図スコープで、2 次元点群、オブジェクト検出、車線検出をグラウンド トゥルース値と一緒に可視化できます。
set(rrSim,"SimulationCommand","Start")
参考
アプリ
ブロック
- RoadRunner Scenario Reader | RoadRunner Scenario Writer | Driving Radar Data Generator | Lidar Point Cloud Generator | Vision Detection Generator