PreScan快速入门到精通第四讲快速搭建第一个自动驾驶仿真模型
构建场景
增加控制系统
为传感器系统建模
进行实验
3.1 例子:快速开始搭建第一个自动驾驶场景仿真模型
本教程将向第一次使用PreScan的用户解释如何在PreScan中设置和运行实验。它提供了使用PreScan的工作指南。
请不要在实验名称和实验地点中使用非西方文字(如日语、韩语、中文等)。
概念
PreScan的基本思路是在图形用户界面(GUI)中构建一个实验,并使用Simulink仿真实验。在GUI中,可以将库中的组件拖放到构建区域中,得到实验的大致布局。可以通过改变这些组件的属性来设置细节,使用适当的配置窗口或属性编辑器,用鼠标右键到达的属性编辑器。
在GUI中建立好实验后,就会准备一个实验的Simulink模型,称为:编译表。用户可以将自己的算法添加到这个Simulink模型中,并正常播放模型。
Simulink模型只需要准备一次;在Simulink中,有一个按钮可以更新GUI中的更改。
创建一个实验场景
单击 Windows 桌面或开始菜单上的 PreScan GUI 图标,启动 PreScan GUI (参见图形用户界面Graphical User Interface(GUI) (GUI) 一节)。PreScan 启动时,会出现以下界面。
要开始建立一个场景,应该有一个实验。从文件菜单中选择 '新实验New Experiment'。
出现 '新建实验'对话框,在该对话框中可以命名实验,描述作者,并给出实验的简短描述。
实验位置是实验的保存目录。上次打开、保存或创建实验的实验位置将保存在窗口注册表中。当启动MATLAB®时,它将在这个位置打开。
需要进一步设置实验类型和实验采样率。
实验完成后,左侧的预扫描积木库就会变成可用的,图标会变成正常的颜色,表示现在可以使用。
底层
从为实验创建一个底层开始。从 '环境 '选项卡 '环境'(底层(2-D))中选择 '草',然后将其拖放到 '建立区域 '中。可以在属性编辑器区域中设置底层的位置和方向。
道路
第二步是建立道路网。从基础设施库中选择环形路,然后将其拖到构建区域。注意在属性编辑区中可以设置以下属性:方向、车道宽度、半径等。
轨迹
第三步是创建轨迹。从中间的任务栏中选择继承路径图标(下图中的中间图标)。
当用鼠标悬停在环形路上时,会出现黄色的圆圈。这些是该路段的入口点和出口点。选择左边入口的下圆圈,选择右边出口的上圆圈。鼠标左击两下,路径就会自动生成。
路径考虑到了实验的默认设置:例如,在道路右侧行驶,在环岛上逆时针行驶。用户的首选项可以在 '设置/首选项Settings / Preferences '中进行设置。
执行器
现在我们将在创建的路径上附加一个执行器。从执行器库中选择马自达RX8,然后将其拖到Build区域。
当角色被拖动到路径上时,路径将被高亮显示。在这种情况下,如果你松开鼠标按钮,就会自动创建一个轨迹,并将执行器连接到轨迹上。请注意,一系列的点是如何提供轨迹的可视化表示的,现在汽车被连接到它的轨迹。
通过在Build区域或实验树中右击所需的actor,并从出现的下拉菜单中选择对象配置,打开actor的对象配置对话框。看一下这个角色是否连接到了PathObject_1和SpeedProfile_1。
在执行器库中选择第二辆车,将其拖到环岛的右侧出口处。将方向(偏航)设置为150度,让它面向左边。单击 '方向 '旁边的'+'-图标,单独显示偏航方向。
缩放
使用工具栏中的缩放按钮,将场景缩放到所需视图。
传感器
通过以下显示图标,可以切换传感器光束、摄像头光束、重心、GPS坐标和车道定义的可见度。通过使用标记的按钮,设置传感器光束和摄像头光束的可见性。这些设置不作为实验的一部分保存。
从传感器库中选择AIR,并将其拖到Build区的Mazda上。
出现AIR对象配置对话框,在该对话框中可以对AIR传感器进行配置。AIR配置参数有:位置、方向、光束范围和光束扫射角度。
单击 '确定 '后,AIR传感器出现在实验树中。
摄像机
在仿真过程中,可以添加视觉辅助摄像机(Visu Aids)。选择 '人眼视图',选择具有人眼等属性的摄像机。
当摄像机被拖到车辆上时,可以通过选择驾驶员或副驾驶的眼睛位置,用左、右标示的方式将摄像机固定在车辆上。
现在的实验应该和下面这个图类似。
保存
保存实验
汇编表
所有在PreScan GUI中创建的信息都被收集到Simulink模型中进行仿真。这个Simulink模型也被称为 '汇编表',因为在PreScan中运行实验所必需的信息都被有效地收集在这个Simulink汇编表中。用户在这个编译表中可以找到的元素包括在GUI中选择的Simulink模型,如动力学模型,使用GUI定义的轨迹信息,以及到PreScan标准传感器模型和PreScan仿真引擎的端口。
PreScan有一个名为Parse& Build的序列,用于制作编译表。Parse是用来检查仿真的不同组件的配置,如执行器、轨迹和传感器。在Build阶段,编译表被实际建立。只有在Parse阶段成功完成后,才能建立一个编译表。
如果Parse结果没有失败,可以编译实验。
3D动画
仿真是以3D可视化的。要做到这一点,需要通过选择显示3D世界来启动VisViewer。
或使用工具栏中的蓝色3D图标,从'文件 '菜单或使用 '工具条 '中的蓝色3D图标。2021版的动画图标主要是显示在创建场景的时候的3D预览图,其可以在创建过程中实时更新,但是仿真运行需要通过SIMULINK联合仿真才能将实时动画调出,并跟随时间实时变化。
VisViewer出现,放大到场景的外部边界。
如果在打开VisViewer并生成编译表后,将执行器添加到实验中,则需要重新生成VisViewer和编译表。
现在,实验已经全部完成。现在是时候开始仿真了。实验树现在看起来应该是这样的
仿真
在GUI中创建了实验后,就进入了最重要的阶段:仿真阶段,在这个阶段中,实验要进行仿真。仿真环境可以通过文件菜单中的Invoke Simulink运行模式,通过控制栏中的图标,或者直接通过开始菜单中的快捷方式或桌面上的快捷方式(两者都有相同的图标)来达到仿真环境。
MATLAB启动了。
等到MATLAB中的命令窗口中出现以下几行。这表明MATLAB已经正确配置了PreScan。
=================================================
MATLAB has been configured for PreScan R2021.0
=================================================
转到GUI保存实验的目录下。注意,MATLAB已经在 '实验位置 '目录下启动了。
打开实验的编译表。编译表的名称总是在实验名称后面加上_cs.mdl或_cs.slx。在本例中是Experiment_FirstStart_cs.slx。实验的Simulink模型打开
双击马自达_RX8_1车型。就会出现以下(子)系统。在这个系统中,所有在GUI中定义的元素都存在:空气传感器和轨迹。还有一个额外的元素出现了。车辆状态。这个元素与PreScan仿真引擎进行通信。
宝马的模型看起来有点不同,因为没有给这辆车分配传感器或轨迹。为了帮助你构造你的实验,我们创建了一个空的动力学块。
通过按下Simulink中的Play按钮(
)开始仿真。在VisViewer中,可以在仿真时间内跟踪仿真进度。
现在来看一下VisViewer。从VisViewer的工具栏中选择有两个窗口的视图。在底部窗口中点击,从工具栏的下拉菜单中选择HumanView_1。重新运行仿真(Simulink®中的播放按钮),并查看VisViewer的两个窗口。最多可以设置四个摄像头来跟踪场景。
现在我们通过添加Simulink模型中的SELF-port和AIR-sensor信号,来看看Simulink模型中的显示块。打开Simulink库浏览器(按你习惯的方法),将一个Mux和一个显示块拖到实验的Simulink模型中。这些块可以分别在信号路由和Sinks下找到。
下图中,可以看到传感器的SELF端口和AIR传感器的信号。
SELF端口显示的是行为体本身的信息。输出的是实验的全局轴系统中的位置,以及GPS坐标。
AIR传感器检测到一个物体,产生6个信号的输出。在没有检测到物体的情况下,输出为0。输出分别是范围、方位角、仰角、ID、速度和航向。下图显示了这些输出。