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

article/2025/8/27 19:11:35

文章目录

  • 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文件也从该路径找就可以了。
图一:步骤一,手册的版本号是8.2.0,但这无关紧要
之后,选择一个Underlay的类型,如图2所示。
图2:Underlays
加入背景之后,我们就可以开始添加道路了,可以自己组建想要的道路工况。手册上只添加了一块环岛路,如图3。
图3:Road Segment
接着点击上图标蓝的图标,画出想要的路径,如图4中的红线部分。
图四:Roundabout
紧接着的重要一步是把actors中喜欢的车辆放到路线上,并加上AIR传感器和Visu Aids里面的类似于获取驾驶视角的模块,如图5,车头前的绿色区域代表传感器的范围(可以自己设定)。
图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编译器,此时就会出现如下图的问题。
图7
搜索了一些博客对此问题的讲解之后,我安装了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文件开始跑了。
图8
点击Mazda RX8模块,我们可以看到里面的内容,一个是self模块,一个是我们自己添加的AIR传感器,我这里按照手册的要求加入了一个MUX模块和Display单元,它们能帮我们更好的看出具体数据的变化。
在这里插入图片描述
点击开始运行按钮之后,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 Manual


http://chatgpt.dhexx.cn/article/wu4dkotr.shtml

相关文章

matlab、carsim、prescan联合仿真从零开始详细步骤

matlab、carsim、prescan联合仿真详细步骤 在matlab、carsim、prescan联合仿真中,prescan提供测试场景和传感器模型,但prescan也提供车辆动力学2D和3D模型,因此在验证自动驾驶算法功能逻辑时,或者对车辆动力学模型要求没有那么高…

Prescan(一):无人驾驶仿真软件简介

Prescan介绍: Prescan原作为ADAS测试仿真专用软件,近几年来由于无人驾驶技术的兴起,越来越多的无人驾驶团队迫切的需要一款软件来实现对无人驾驶车辆进行软件在环,硬件在环的检测。Prescan在其做智能辅助驾驶仿真的基础上&#x…

Prescan基础知识总结

文章目录 1. Prescan 基本介绍2. 场景搭建2.1 静态部分环境和天气基础设施之路段、路面、路标和交通信号基础设施之静态物体 2.2 动态部分路线行人和车辆 2.3 监测部分——传感器和可视化传感器3D VisViewer 2.4 整体——地图导入 3. 测试部分3.1 Parse和Build3.2 MATLAB配置3.…

Prescan基础知识

文章目录 前言一、PreScan干什么的?二、学习PreScan基本操作总结 前言 因为毕设是自动场景下的多目标检测跟踪与轨迹预测研究,所以需要学习到自动驾驶仿真软件PreScan,这周的主要工作是对PreScan进行一定的了解:首先是了解PreScan…

PreScan快速入门到精通第二讲PreScan功能介绍

智驾社 小明师兄 PreScan产品功能包含如下: 1. Pre-processor or GUI: 预处理器或GUI 2. Engineering Workspace or Compilation Sheet:工程工作区或编译表 3. Main modules:主要模块 4. Process Manager:进程管理 5. Miscellaneous:其它项 1.1 预处理器或GUI GUI的关键…

【prescan入门】prescan入门教程(场景搭建、参数设置、连接MATLAB实现仿真)

环境 windows10PreScan8.5.0MATLAB2019bvs2019社区版 场景搭建 双击打开【PreScan GUI 8.5.0】【File】->【New Experiment】新建实验 搭建环境(草地、水泥地、砖地等) 这里我选择草地场景,将【Grass】拖入网格区域 选择基础设施&…

数据库与缓存一致性解决方案

数据库与缓存一致性解决方案 文章目录 数据库与缓存一致性解决方案前言几种方案的分析方案的实现 前言 项目中如果用到了缓存,就会涉及到数据库与缓存的双写,由于这两个操作不是原子性的,在并发的场景下,容易产生数据库与缓存不一…

数据库实时同步技术解决方案_两个数据库同步_数据库双向同步方案

SyncNavigator v8.6.2 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用于大容量数据库快速同步。 安装包下…

MySQL数据库主从双向同步

MySQL数据库主从双向同步 一 环境二 主从同步1.主服务器配置2.从服务器配置 二 双向同步三 其他相关参数配置四 后记 一 环境 由于开发需要,需要两台服务器进行负载均衡,两台服务器配置完全相同,均为windows server 2012,且MySQL数据库版本为…

容灾解决方案介绍

1.容灾需求 2.容灾挑战 3. 什么是HA 4.什么是容灾 5.HA和DR的关系 6.容灾和备份的区别 7.衡量容灾系统的主要指标 8.容灾系统的级别 9.灾备系统建设的国际标准 10.华为业务连续性灾备解决方案全景图 11.容灾备份解决方案框架 12.容灾设计模式-同步、异步相结合 13.主备容灾方…

数据库容灾方案

**数据库容灾方案** 场景一 “阵列硬盘坏了,数据库读写文件异常,系统停运啦!”场景二 “不小心执行了TRUNCATE操作,核心业务表被清空,系统关键功能无法使用!”场景三 “在硬件投入变化不大的情况下&#xf…

MySql数据库从库同步的延迟问题及解决方案

1)、MySQL数据库主从同步延迟原理mysql主从同步原理: 主库针对写操作,顺序写binlog,从库单线程去主库顺序读”写操作的binlog”,从库取到binlog在本地原样执行(随机写),来保证主从数据逻辑上一致…

数据同步解决方案-canal

1、canal简介 canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。 canal是应对阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求而提出的。 阿里系公司开始逐步的尝试基于数据库的日志解析,获…

数据库灾备解决方案

文章目录 行业背景解决方案优势核心产品灾备设计及技术指标DBS冷备热备份同城容灾同城容灾——复制加高可用同城容灾——A-S同城容灾——A-A更多信息 行业背景 数据是企业重要的生产资料,关键数据的丢失可能会给企业致命一击,因为数据是计算机系统存在的…

【解决方案 三十一】Navicat数据库结构同步

最近在开发过程中遇到一个问题:刚经历了一个两个月的长迭代,导致测试库已经被改的面目全非了,最关键的是所有的变更语句都没有记录,这上线的时候怎么办啊,一百多张表呢,幸好组里的老程序猿说用过一个工具&a…

Redis与数据库数据同步解决方案

本文转自:http://3gods.com/2016/06/23/Redis-Sync-DB.html 部分图片来自:http://blog.csdn.net/stubborn_cow/article/details/50586990 数据库同步到Redis 我们大多倾向于使用这种方式,也就是将数据库中的变化同步到Redis,这种…

跨数据库同步方案汇总

Datax 一般比较适合于全量数据同步,对全量数据同步效率很高(任务可以拆分,并发同步,所以效率高),对于增量数据同步支持的不太好(可以依靠时间戳定时调度来实现,但是不能做到实时&…

唯一性约束(unique)

在字段类型后面加一个unique,表示这个字段的值是唯一的,不能够有相同的值出现。 给某一列添加unique 给两个字段加唯一性约束,不同的方式的约束范围不同 联合加约束时只有两个字段的值都是一样的才会出错 单独加约束时,只要有一个…

ORA-00001: 违反唯一约束条件 的解决办法

最近在做项目是测试的时候出现了这种错误:ORA-00001: 违反唯一约束条件 其实说白了这种错误就是 数据库的ID值,小于他的next number 由于表的ID是唯一的,所以用 select max(id) from test 查的该ID大于Sequences里面的开始ID,所以…