原文链接:Test Open-Loop ADAS Algorithm Using Driving Scenario - MATLAB & Simulink - MathWorks 中国
此示例显示如何测试开环ADAS(先进的驾驶员辅助系统) Simulink®中的算法。在开环ADAS算法中,ego车辆行为是预定义的,在模拟过程中不会随着场景的推进而改变。为了测试算法,使用从驾驶场景设计器应用程序保存的驾驶场景。在本例中,通过使用场景读取器块读入场景,然后在鸟瞰范围上可视化场景和传感器检测。
检查驾驶场景
此示例使用的驾驶场景基于您通过驾驶场景设计器应用程序访问的其中一个预构建场景。有关这些场景的更多详细信息,请参见驾驶场景设计器中的预构建驾驶场景。在驾驶场景app中打开场景文件:
drivingScenarioDesigner('LeftTurnScenario.mat')
要模拟场景,请单击“运行”。在这种情况下,ego车辆向北行驶并直接通过十字路口。一辆从交叉口左侧驶来的车辆左转,最后停在车辆前面。
ego车辆有三种传感器:
1.一个前视雷达做物体检测
2.一个前视摄像头和一个后视摄像头做物体检测和路线的边界检测
3.一个全向雷达放在顶部产生周边环境的点云信息
检查simulink模型
例子中的simulink模型的生成来自于驾驶场景app中设置 Export > Export Simulink Model.在模型当中,一个Scenario Reader从场景文件中读取actors和roads并且输出non-ego 车辆和路线边界。开启simulink模型:
open_system('OpenLoopWithScenarios.slx')
在 Scenario Reader块中,驾驶场景app文件的名称是这个块文件的名称。您可以指定MATLAB搜索路径上的方案文件,例如本例中使用的方案文件,或方案文件的完整路径。
这个Scenario Reader块输出场景中non-ego 车辆的位置以及ego车辆的左车道和右车道边界。要输出ego车辆行驶道路的所有车道边界,请选择Lane boundaries to output选项,也就是图中这个选项
上述的scanario reader模块输出的三个参数传递给子系统Detection Generators,打开子系统
open_system('OpenLoopWithScenarios/Detection Generators')
Driving Radar Data Generator, Vision Detection Generator,和 Lidar Point Cloud Generator块从该场景生成融合检测.您可以融合此传感器数据以生成轨迹,例如在Simulink中使用合成雷达和视觉数据的开环传感器融合示例(Sensor Fusion Using Synthetic Radar and Vision Data in Simulink)中。
此传感器块在此模型中输出的是在ego车辆坐标系下的:
X轴是ego车头方向
Y轴是ego车左侧方向
原点位于ego车后轴的中心。
由于该模型是开环的,因此ego车辆行为不会随着仿真的进行而改变。因此,ego车辆参数的来源设置为Scenario,并且块从Scenario文件中读取预定义的ego车辆姿势和轨迹。对于车辆控制器和其他闭环模型,将Source of ego vehicle设置为输入端口。使用这个设置,你可以在模型中的scenario reader block中定义ego车辆的输入参数,如图:
参考例子Test Closed-Loop ADAS Algorithm Using Driving Scenario
可视化仿真
为了可视化场景和传感器检测结果,在simulink中使用Bird's-Eye Scope观看传感器数据。
更新仿真设置
此模型使用默认的模拟停止时间10秒。因为该场景只有大约5秒长,所以即使在场景结束后,模拟仍将在鸟瞰范围内继续运行。要同步模拟和场景停止时间,请在Simulink模型工具栏上,将模拟停止时间设置为5.2秒,这是应用场景的确切停止时间。运行模拟后,应用程序会在场景画布的右下角显示此值。如果simulink中运行的速度太快,通过调节Runde simulation Pacing,减慢仿真时间。