PreScan笔记(1)——入坑之简单介绍和Demo

文章目录

  • PreScan 小白入坑
    • 1. PreScan简单介绍
    • 2. First Demo
      • 简单介绍实验的基本四步
      • 具体流程+与MATLAB连接过程中的问题
    • 参考

PreScan 小白入坑

本人最近才接触PreScan,最近也略微熟悉了GUI和相关步骤。先给自己定个目标,之后每学一点就写一点。

PreScan的安装我就不想写了,百度直接搜索就可以了,非常简单。(注意这只是单独的PreScan安装,之后我会讲到一个常见的与MATLAB连接过程中的问题)

小白虽想入坑,但难免会跳错坑。请相信过程,你会走出来的!
(如果官方手册下不到的话大家也可以参考PreScan GUI里面的帮助文档,个人感觉内容都一样的…)

1. PreScan简单介绍

PreScan has been developed: a development and evaluation environment in which smart cars can actually see the surrounding in which they are driving and can subsequently respond to it.

PreScan是一款关于汽车的研发和评估软件,在这里,智能汽车可以实际看到驾驶时周围的环境并作出响应。

这里的PreScan GUI只是扮演着预处理器的一种角色,而核心的控制部分则是由MATLAB负责,两者的连接依靠PreScan生成的compilation sheet。

PreScan广泛用于智能汽车系统,比如现在的ADAS(Advanced Driver Assistance Systems高级驾驶辅助系统),自动巡航系统等,也可以用于如今的自动驾驶领域,即涉及更多的传感器。(其他详细介绍可以参考PreScan官方手册。)

2. First Demo

简单介绍实验的基本四步

  1. Build Scenario
  2. Modeling Sensor Systems
  3. Adding Control Systems
  4. Running an Experiment

第一步应该是指添加基本的道路原件,背景,路标之类的;第二步应该是往各种汽车中添加传感器,比如AIR传感器,雷达传感器,摄像头等;第三步是在MATLAB中加入一些自定义的控制模块来控制车的速度,偏向角,坐标等;最后一步就是在VisViewer中跑了,这里可以选择便于可视化的多种视角。(以上只是我到目前为止的理解,有错误望指正!)

具体流程+与MATLAB连接过程中的问题

本节参考的是手册中5.4节,example: first start,我会搬运一些重要的步骤并且讲一个我遇到的编译器相关的问题。
前提:先前在安装Prescan的时候,程序会提示你用MATLAB集成安装。这里最好用2013~2017的版本,因为这是官方测试过的版本,应该是比较稳定吧。

步骤:如图1,先新建一个实验,起一个合适的名称,文件会自动存储到C:\Users\Public\Documents\Experiments,之后涉及到的simulink文件也从该路径找就可以了。
PreScan笔记(1)——入坑之简单介绍和Demo_第1张图片
之后,选择一个Underlay的类型,如图2所示。
PreScan笔记(1)——入坑之简单介绍和Demo_第2张图片
加入背景之后,我们就可以开始添加道路了,可以自己组建想要的道路工况。手册上只添加了一块环岛路,如图3。
PreScan笔记(1)——入坑之简单介绍和Demo_第3张图片
接着点击上图标蓝的图标,画出想要的路径,如图4中的红线部分。
PreScan笔记(1)——入坑之简单介绍和Demo_第4张图片
紧接着的重要一步是把actors中喜欢的车辆放到路线上,并加上AIR传感器和Visu Aids里面的类似于获取驾驶视角的模块,如图5,车头前的绿色区域代表传感器的范围(可以自己设定)。
PreScan笔记(1)——入坑之简单介绍和Demo_第5张图片
当然,手册上最后还放上去了一辆没有任何作为的车,这里就暂时省略了。

搭建完了场景和传感器,我们就可以生成能被MATLAB处理的编译文件(compilation sheet)了,这些文件的扩展名是.slx(MATLAB Simulink文件的扩展名)。具体步骤如图6。
在这里插入图片描述
第一步是parse(个人理解为检查语法,和场景搭建是否合乎逻辑),如果任何一个环节出现错误,可以按照提示来纠正。接下来就是build成simulink文件,最后点击图中标红的按键,Invoke Simulink Run Mode来开启MATLAB。MATLAB与PreScan连接好之后会有如下提示:

=================================================
MATLAB has been configured for PreScan R 8.5.0
=================================================
PrescanPath : C:\Program Files\PreScan\PreScan_8.5.0
PrescanBuild : C:\Program Files\PreScan\PreScan_8.5.0
PrescanCoreBuild : C:\Program Files\PreScan\PreScan_8.5.0
PrescanData : C:\Program Files\PreScan\PreScan_8.5.0
UDLibFolder (CU) : C:\Users\Public\Documents\PreScan\UDLibElements
UDLibFolder : C:\Users\Public\Documents\PreScan\UDLibElements
GenVehFolder : C:\Users\Public\Documents\PreScan\GenericVehicles
GenActFolder : C:\Users\Public\Documents\PreScan\GenericModels
ExperimentRepository : C:\Users\Public\Documents\Experiments
Plugins enabled : 
  * GIDAS Importer
  * IDC Importer Plugin
  * Intelligent Traffic Module Plugin
  * PBCameraPlugin
  * RemoteViewerPlugin
  * Scene Support
  * V2X Plugin
  * Vissim
C compiler : Microsoft Visual C++ 2015 Professional (C)
S-Function location : 
  * C:\Users\84775\AppData\Roaming\TNO\PreScan\8.5.0\sfunction_R2016a
  * C:\Program Files\PreScan\PreScan_8.5.0\bin

我第一次配置的时候因为电脑上之前装的是Visual Studio 2017和MATLAB 2016a,显然,MATLAB2016不可能认出2017的VS编译器,此时就会出现如下图的问题。
PreScan笔记(1)——入坑之简单介绍和Demo_第6张图片
搜索了一些博客对此问题的讲解之后,我安装了VS2015,之后我先用mex -setup检查了下C编译器。如果有编译器的话MATLAB会出现以下结果。

>> mex -setup
MEX 配置为使用 'Microsoft Visual C++ 2015 Professional (C)' 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持
	包含 2^32-1 个以上元素的 MATLAB 变量。不久以后,
	 您需要更新代码以利用
	 新的 API。您可以在以下网址找到相关详细信息:
	 http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。

要选择不同的语言,请从以下选项中选择一种命令:
 mex -setup C++ 
 mex -setup FORTRAN

如果想知道MATLAB查找C编译器的过程,可以输入mex -setup -v

回到之前的步骤上,现在我们就可以打开simulink文件开始跑了。
PreScan笔记(1)——入坑之简单介绍和Demo_第7张图片
点击Mazda RX8模块,我们可以看到里面的内容,一个是self模块,一个是我们自己添加的AIR传感器,我这里按照手册的要求加入了一个MUX模块和Display单元,它们能帮我们更好的看出具体数据的变化。
PreScan笔记(1)——入坑之简单介绍和Demo_第8张图片
点击开始运行按钮之后,PreScan的VisViewer会出现动画,选一个自己喜欢的视角就能看到汽车在跑了,别忘了记住要设置运行时间!!可以用如下代码(在下一篇的博客里我应该就会写到跟data Model API相关的知识)

Models=prescan.experiment.readDataModels('C:\Users\Public\Documents\Experiments\Experiment1.pb')
prescan.experiment.runWithDataModels(Models, 'StopTime','10')

这里的C:\Users\Public\Documents\Experiments\Experiment1.pb代表相应的.pb文件所在路径,就和.slx文件在一个目录下。这样一来,我们就能控制运行时间了。
最后附上VisViewer在human_view下的截图
PreScan笔记(1)——入坑之简单介绍和Demo_第9张图片

参考

PreScan Manual

你可能感兴趣的:(智能汽车)