加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 3.1 例子:快速开始搭建第一个自动驾驶场景仿真模型 
    • 结论
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

分享 | PreScan快速入门到精通:第四讲 快速搭建第一个自动驾驶仿真模型

09/20 16:21
3.4万
阅读需 15 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

PreScan的愿景是通过提供虚拟验证功能来弥补仿真和验证之间的差距。 在实际建立一个PreScan实验并运行之前,我们先来看看下图                           

描绘了四个重要的建模步骤:1.构建场景;2.增加控制系统;3. 为传感器系统建模;4.运行实验。 这些步骤,通常是每次做实验时都要遵循的。

构建场景

最理想的情况是,首先使用实际的事故数据。只有这样,才知道这个场景足够重要,足以导致事故的发生。PreScan提供了轻松重建事故发生的可能性。它有各种各样的工具,从构建道路和实现抽象的基础设施元素的模糊视点的简单方法,到支持近距离碰撞的工具。这些工具的一个较大的部分是在第一个开始的时候就已经涉及到了。

增加控制系统

控制系统的理解应该比传统的汽车控制系统如ESP、ACC等更宽泛。控制系统还包括对象感知算法、传感器融合算法、决策算法等。

为传感器系统建模

这可能很简单,就像实现一个可自由调整的理想化传感器(在PreScan中已经有了),也可能很复杂,就像实现一个详细的基于物理学的雷达模型,输出原始感知信号,由自己的数据处理算法进行后处理,处理后的数据被送入自己的DSP模型,负责跟踪和追踪目标。由于系统的边界是灵活的,所以我们在这里更愿意谈论"为传感器系统建模"。

进行实验

有几种选择:只需在Simulink环境中运行一个实验,同时在范围内观察结果,同时使用基于MATLAB的绘图脚本对获得的结果进行后期处理。另一种选择是让基于MATLAB的批处理脚本配置、运行和后期处理方案。如果这还不够的话,作为用户可以把自己的制动和油门和及方向盘链接上,在自己做的实验场景中进行驾驶。

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、速度和航向。下图显示了这些输出。

关于AIR传感器的详细说明,后期小明师兄会和大家一起学习,欢迎关注,点赞,转发三连。 

结论

实验已经准备好了。它可以使用常规的Simulink方法插入自己的块(控制逻辑、车辆动力学)。Prescan仿真可以在连续模式和离散模式下运行。

当添加自己的块时,在离散模式下运行仿真时,编译表不应该包含任何连续状态,这一点很重要。

相关推荐

电子产业图谱

智能驾驶行业从业者,专注于整车仿真与智能驾驶开发。B站个人主页: https://space.bilibili.com/407007820/