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

  • 1. Prescan仿真软件
  • 2. Prescan与Simulink联合仿真
    • 2. 1 Prescan和matlab软件安装
    • 2. 2 联合仿真配置
  • 3. 联合仿真实例
    • 3.1 一辆不按法规行驶的小车
    • 3.2 另一辆的正常行驶的小车
    • 3.3 视觉辅助摄像机
    • 3.4 传感器检测
  • 4. 系列学习视频教程
  • 5. 参考学习的书目教材

上一篇博文简单介绍了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/

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

  1. 自动驾驶仿真 (三)—— 基于PreScan与Simulink的AEB系统仿真

    自动驾驶仿真三-- 基于PreScan与Simulink的AEB系统仿真 1. AEB自动紧急制动系统 1. 1 TTC碰撞时间模型 1. 2 C-NCAP法规部分术语与定义 1. 3 主动安全ADA ...

  2. 自动驾驶仿真(五)—— 基于Carsim、Prescan、Simulink的联合仿真

    自动驾驶仿真五--基于Carsim.Prescan.Simulink的联合仿真 1. 联合仿真流程 2. CarSim联合仿真配置要点 3. Prescan联合仿真配置要点 4. Carsim.Pre ...

  3. 基于PreSCAN Matlab/Simulink的智能驾驶联合仿真【详细图文】

    在自动驾驶竞争日益激烈的趋势下,自动驾驶功能不断更新迭代,但任何功能的商业化推出之前,测试是必然的前提,如软件测试.仿真测试.道路测试,尽管在我国政策的支持情况下(如颁发道路测试牌照),自动驾驶道路测 ...

  4. 第六十九篇:从ADAS到自动驾驶(二):ADAS的功能及发展

    作者:liaojiacai     邮箱: ljc_v2x_adas@foxmail.com 从ADAS到自动驾驶(二):ADAS的功能及发展          根据Wikipedia在线百科全书的定 ...

  5. Simulink/Carsim联合仿真,基于pid,mpc自适应巡航控制,定速巡航,紧急避撞等

    Simulink/Carsim联合仿真,基于pid,mpc自适应巡航控制,定速巡航,紧急避撞等. 包括以下: (1)Carsim参数设置cpar文件 (2)matlab代码s函数 (3)Simulin ...

  6. 【联合仿真】Adams六关节机械臂与Matlab/Simulink的联合仿真(下)

    Adams六关节机械臂与Matlab/Simulink的联合仿真(下) 接上文,上文讲到了建立好变量与测量单元之间的关联了,下面完成matlab/simulink的对接接口以及模型搭建 第一步. ad ...

  7. 【机械仿真】基于matlab GUI曲柄摇杆机构运动仿真【含Matlab源码 1608期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab GUI曲柄摇杆机构运动仿真[含Matlab源码 1608期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  8. 两小灯同亮同灭c语言程序,基于C语言与Proteus联合仿真的单片机技术最新章节_何波,丘利丽著_掌阅小说网...

    前言 随着嵌入式技术的飞速发展,嵌入式系统产品正不断渗透到各行各业,如智能家居.车载电子设备等.因此,单片机技术作为嵌入式计算机控制系统的重要技术,已经越来越受到各个应用领域的重视,尤其对于直接面向企 ...

  9. 【联合仿真】Adams六关节机械臂与Matlab/Simulink的联合仿真(上)

    Adams六关节机械臂与Matlab/Simulink的联合仿真(上) 前言:一直对于六关节机械臂与simulink的联合仿真很感兴趣,但网上关于实际模型的机械臂联合仿真的资料很少,更别说六关节的联合 ...

  10. CRUISE纯电动车仿真模型,simulink DLL联合仿真,实现电制动优先能量回收策略

    CRUISE纯电动车仿真模型,simulink DLL联合仿真,实现电制动优先能量回收策略. 关于模型:策略是用64位软件编译的,如果模型运行不了请将软件切换成64位. 切换位置在启动界面platfo ...

最新文章

  1. Closer--Never Take it for granted
  2. c语言二级考试程序设计题难吗,计算机二级考试:题库抽的不是题是“命”!附赠考试通关全攻略!...
  3. kubesphere报错收集
  4. android studio 项目迁移 gradle 不对导致的卡住解决方法
  5. React with Webpack - 3: 内联image、font
  6. 201521123121 《Java程序设计》第14周学习总结
  7. drbd(三):drbd的状态说明
  8. 怎么做游戏打击感浅述
  9. nodejs模块demo: request-promise-native tough-cookie
  10. 当不知轴承型号时如何寻找轴承故障频率_轴承故障的检测,处理
  11. QT5/C++项目:基于QT的跨平台网络对战象棋(二)(推荐★★★★)
  12. OSI七层协议的简介
  13. 3款好用的文件管理软件
  14. 安装了本地MySQL后,小皮面板上的MySQL就一直启动失败
  15. 计算机应用基础——计算机硬件(三)
  16. 黑群晖折腾之百度网盘云同步
  17. Html笔记——实现一组图片循环且首尾相连的滚动效果
  18. STM32CubeMX实战教程(七)——TFT_LCD液晶显示(附驱动代码)
  19. 一个简单的storyboard示例,其中关于添加navigation的部分可以学习,此前没用过
  20. 输入、输出电阻与带负载能力的总结

热门文章

  1. Visual Studio2019出现“ 激活远程语言服务器 c#/Visual Basic 语言服务器客户端出错”请运行devenv/log...…“的解决办法
  2. 简单书籍类网页代码制作
  3. 最新美女COS写真网站整站源码下载+实测可用/带数据
  4. 实现不同电脑共享一套鼠标键盘------ShareMouse
  5. 【VHDL】分频器设计要求:25分频,占空比为50%
  6. Python 实现Tracert追踪TTL值
  7. php 盗链新浪图片_php实现博客,论坛图片防盗链的方法
  8. Linux:搭建web服务器(二)
  9. 用计算机算加班,加班工资计算器
  10. Linux桌面没有minidwep,ubuntu 12.04完整安装minidwep-gtk教程