自动驾驶仿真(二)—— 基于PreScan与Simulink的联合仿真

上一篇博文简单介绍了Carsim与Simulink联合仿真,接着这篇就再继续简单介绍另一款自动驾驶仿真软件Prescan,并且简单做个Prescan与Simulink的小例子。

1. Prescan仿真软件

PreScan是一款汽车驾驶仿真软件产品,是一个可以快速搭建无人车测试场景的平台。该软件具有良好的图形交互界面,能提供多种传感器模型,支持摄像头、雷达、GPS、车联网等多种应用功能的开发运用。软件不仅提供多种可视化模型,还可以设置天气状况,场景的逼真程度良好。PreScan适合行车场景的搭建,CarSim适合动力学模型的建立。
PreScan是可用于先进驾驶辅助系统和主动安全系统开发验证的仿真工具,系统采用传感器监测车辆的周围环境并使用获得的信息采取行动,这类行动可以是警告司机回避潜在的危险,也可以使通过自动刹车或自动转向主动回避危险。 PreScan可用于高级驾驶辅助系统上的传感器包括雷达、激光、摄像头、GPS等。
在这里插入图片描述

PreScan在场景建模中可选取几种典型的交通场景,包括环岛,十字路口等搭建虚拟场景。PreScan软件是一个进行场景建模和仿真的汽车应用软件,在其中除了搭建车道外还可以添加树木、房屋等元素,用来更好模拟现实环境。

2. Prescan与Simulink联合仿真

PreScan配备了强大的图形预处理器,高端的3D可视化查看器以及与标准Matlab/Simulink、Carsim等其它仿真软件的连接端口,使用PreScan可执行不同工程任务的各个阶段。除GUI模块外,PreScan还包括工程工作区模块、进程管理器模块、3D可视化查看器模块以及模拟引擎模块四部分,其中工程工作区模块是PreScan模拟核心的从属,可轻松导入Matlab/Simulink中的控制和决策算法。

2. 1 Prescan和matlab软件安装

自己电脑使用的软件如下配置:

Prescan 8.5.0
Matlab R2019b
Visual Studio 2019 Community

目前Prescan8.5.0以上的较新版本的传感器模块部分“消失”了,暂时未找到解决方案,故在此使用的是8.5.0版本,该版本也是比较稳定的版本,能够满足绝大多数的使用需要。
以上软件版本联合配置没有问题的。大家可以找相关资源下载好安装即可。

2. 2 联合仿真配置

其实Prescan和Simulink软件的配置还是需要注意的,一般常见的问题其实网上也都能找的到。关于配置和使用相关,这里自己简单点两个:
1) 软件安装联合配置问题
Prescan安装完以后,也把Visual Studio 2019安装完毕,再重启使用即可。
2)simulink运行报错
当Prescan建模完成后,连接simulink仿真,如果在操作过程中,发现simulink运行时报错:error: EXPERIMENT NEEDS TO BE RUN FROM EXPERIMENT DIRECTORY。需要在打开的matlab中将文件夹路径定位到相应_cs.slx所在的目录下,之后再点击打开_cs.slx文件,应该就没问题了。

3. 联合仿真实例

这里自己就简单做一个小例子,并逐步增加相关软件功能及结果展示,以期可以更好的介绍Prescan和Simulink联合仿真。

3.1 一辆不按法规行驶的小车

使用PreScan可以搭建自己想要的仿真环境,包括车辆、道路、交通环境与传感器等等,下面就开始我们的PreScan建模仿真之旅吧。

1) 道路模型:从基础设施库中将straight Road拖动到工作台区域,并使用ctrl左键双击拉长道路,或者可以直接在其属性编辑区设定其长度等参数。
2)创建轨迹:我这里使用自定义设置的轨迹,我这里自己随意画了段轨迹以作示范。
3)执行器:拖动一个车辆在道路上,拖到轨迹路径起始端。
在这里插入图片描述

记得通过build区域的actor或者直接在工作台的执行器车子右键查看属性object configuration,检查确认对象配置关联成功的。
在这里插入图片描述

之后依次执行Parse& Build的序列,用于制作编译表。Parse没有失败即可,其中一些的warning可以暂且忽略,可以正常执行build。之后可以打开Viewer查看示图3D可视化。

在这里插入图片描述

然后可以Invoke Simulink运行模式进入simulink仿真界面。打开实验的编译表,编译表的名称总是在实验名称后面加上_cs.mdl或_cs.slx。在本例中是Experiment_1_cs.slx。双击车型。就会出现以下(子)系统,所有在GUI中定义的元素都存均在(子)系统可以查看到:
在这里插入图片描述

之后就可以点击Run开始仿真计算,在VisViewer中,可以查看仿真结果效果,可以根据不同的视角来查看,以下为动画效果。PS:当然车是不能这样乱开的,切莫效仿(^^)。
在这里插入图片描述

3.2 另一辆的正常行驶的小车

当然一辆车开起来未免太单调了,正常交通嘛,那就再加一辆车吧。这次对面方向加入另一辆来车。按照3.1中的建模流程再做一遍,不过这次是创建的直线轨迹路径,并且把车拖进工作台该路径时,记得将车的方向偏航改成180度,即是反方向的来车,如下图示意:
在这里插入图片描述

重新Parse& Build后,然后到simulink界面中点击Regenerate重新生成编译表,再点击Matlab运行按钮,即可运行仿真。
在这里插入图片描述

然后同样是在VisViewer查看仿真行车的动画效果,如果再多加几辆车的话,交通流仿真的效果是不是就有了,功能强大吧。

在这里插入图片描述

3.3 视觉辅助摄像机

其实看到3.2的动画情况,你就会想这个不按法规行驶的小车蛇形走法,对面来车的司机看到这幅场景该是做何感想啊。感想啊,那就来个驾驶员视角吧,再来个传感器捕捉预报前车情况信息,然后车有AEB功能就自动执行起来(当然本仿真中没有考虑)。
毕竟汽车自动驾驶的前提是周围交通环境信息的实时获取,一般使用的传感器包括全景摄像头,激光雷达以及GPS定位等,PreScan软件中提供的各种传感器与现实传感器的功能一致,仅在检测效果上更加精确,GPS可以完全精确定位,摄像机可以无死区监测,雷达传感器不存在虚检测等。
本例子就添加AIR Sensor传感器和视觉辅助摄像机(Visu Aids)。摄像机选择 "人眼视图"Human View,选择具有人眼等属性的摄像机,其实也就是驾驶员视角了。
在这里插入图片描述

重新Parse& Build后,然后到simulink界面中点击Regenerate重新生成编译表。可以看到,对方来车Audi模型中多了一个空气传感器。在VisViewer中可以查看Human View视角。再点击Matlab运行按钮,即可运行仿真。
在这里插入图片描述

好了,蛇形走法的Ford,请开始你的表演。可以看出来,不守交通法规的走法太危险,两车行驶都撞上了。这也充分显示了自动驾驶仿真的必要性和优势,可以达到模拟真实场景,进而后面可以再针对性研究及找出方案躲避该事故的策略,当然这是后话,本次仿真案例不深入讨论。
在这里插入图片描述

3.4 传感器检测

AIR传感器检测到一个物体,产生6个信号的输出。当没有检测到物体的情况下,输出为零;当目标进入检测范围,则6个信号输出的分别是:范围、方位角、仰角、ID、速度和航向。下图显示了这些信号量:

在这里插入图片描述

当然默认的建模中,该传感器的6个信号的输出是直接用Terminator 模块终止这些输出端口。下面我们可以考虑显示查看一下传感器信号,在simulink库浏览器将一个Mux和一个display显示块拖到实验的Simulink模型中。删掉传感器连接的Terminator模块,将这6个信号连接输出显示。点击Matlab运行按钮进行仿真,即可以看到AIR传感器在起作用,信号检测及输出正常。。
在这里插入图片描述

通过动画更容易看出,只有当目标物进入传感器的检测范围,AIR传感才能检测到目标物,进而有信号输出数值:

在这里插入图片描述

4. 系列学习视频教程

小例子分享到这里,博主这里也给出一些不错的视频教程链接,可供大家感兴趣就可以参考学习了:

PreScan自动驾驶建模与仿真技术培训

PreScan仿真从入门到精通

5. 参考学习的书目教材

  1. PreScan Manual Documentation
  2. 《Matlab/Simulink系统仿真超级学习手册》 石良臣 编著
  3. 《基于PreScan的无人驾驶车辆虚拟测试》付智超 2019硕士论文
  4. 《基于PreScan的汽车自动驾驶仿真》贺勇

=文档信息=
本学习笔记由博主原创整理编辑,仅供非商用学习交流使用
由于水平有限,错误和纰漏之处在所难免,欢迎大家交流指正
如本文涉及侵权,请随时留言博主,必妥善处置
版权声明:非商用自由转载-保持署名-注明出处
署名(BY) :zhudj
文章出处:https://zhudj.blog.csdn.net/

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片