因个人学习暂不会用到Prescan,关于Prescan的学习笔记暂时停止更新,有兴趣的同学可参见下面网址。
以下资料是对B站上学习视频的整理,主要来源:https://space.bilibili.com/268138391/,大家一起学习哦

Prescan学习记录

  • 1. Prescan基础知识
    • 1.1 Conventions·坐标
    • 1.2 Road segment·道路片段
      • 1.2.1 让一个路段连接其他两个路段
      • 1.2.2 配置车道线
      • 1.2.3 Road marking·道路标志
    • 1.3 Trajectory·轨迹
      • 1.3.1 建立一个Path·路径
      • 1.3.2 配置Speedprofile
      • 1.3.3 Synchronization of Trajectories·轨迹同步
      • 1.3.4 Multiple trajectories · 多轨迹分配
    • 1.4 Actor(Vehicles & Calibration) · 动态物体
      • 1.4.1 Vehicles
      • 1.4.2 Humans
    • 1.5 Simulation Scheduler Settings · 仿真频率设置
    • 1.6 Visualization: Human Views · 可视化:人眼视角
    • 1.7 3D Visualization Viewer Control · 3D可视化界面基本操作
    • 1.8 Other Elements · 其他元素
      • 1.8.1 Traffic Signs · 交通标志
      • 1.8.2 Animated Elements里的其他元素
      • 1.8.3 Nature Elements · 自然元素
      • 1.8.4 Light & Shadows · 光影设置
      • 1.8.5 Wether · 天气设置
    • 1.9 地图导入
  • 2 Prescan传感器
    • 2.1 All Types of Sensors · 所有传感器种类
    • 2.2 Idealized Sensor · 理想传感器
      • 2.2.1 AIR传感器:Actor Information Receiver
        • 2.2.1.1 配置:操作界面
        • 2.2.1.2 输出:Simulink界面
      • 2.2.2 Beacon/OBU · 信标/车载单元
    • 2.3 Detailed Sensor_雷达型传感器
      • 2.3.1 TIS:Technology Independent Sensor · TIS传感器(技术无关传感器)
      • 2.3.2 Radar · 毫米波传感器
      • 2.3.3 Lidar · 激光雷达
      • 2.3.4 Ultrasonic · 超声波雷达
      • 2.3.5 雷达型传感器总结
    • 2.4 Detailed Sensor_摄像头型传感器
      • 2.4.1 Camera · 摄像头
        • 2.4.1.1 配置界面
        • 2.4.1.2 查看摄像头返回图像情况
      • 2.4.2 Fisheye Camera · 鱼眼摄像头
    • 2.5 Ground Truth Sensor · 真值传感器
      • 2.5.1 Depth Camera · 深度真值摄像头
      • 2.5.2 Lane Maker Sensor · 车道线真值传感器
        • 2.5.2.1 参数配置
        • 2.5.2.2 VisViewer效果展示
        • 2.5.2.3 Simulink输出结果
      • 2.5.3 Analytical Lane Maker Sensor · 车道线真值传感器(解析值)
      • 2.5.4 Bounding Rectangle Sensor· 边界矩形传感器
      • 2.5.5 Object Camera · 目标传感器
      • 2.5.6 Points Cloud Sensor · 点云真值传感器
      • 2.5.7 Image Segmentation Sensor · 语义分割传感器
  • 3 实战演练:搭建MIL仿真,验证AEB算法
    • 3.1 场景搭建
    • 3.2 配置Simulation Scheduler
    • 3.3 Simulink初始运行
    • 3.4 传感器配置
      • 3.4.1 长距离毫米波雷达配置
      • 3.4.2 短距离毫米波雷达配置
    • 3.5 给新主车配置Human Views
    • 3.6 Simulink控制算法添加
      • 3.6.1 调用自带算法
      • 3.6.2 进行连线
      • 3.6.3 界面美化及观测特定信号
    • 3.7 运行仿真,查看结果
    • 3.8 AEB算法讲解
      • 3.8.1 信号处理模块
      • 3.8.2 频率转换模块
      • 3.8.3 算法主模块
      • 3.8.4 判断模块
      • 3.8.5 纵向控制模块
      • 3.8.6 Display模块

1. Prescan基础知识

1.1 Conventions·坐标

  1. Reference/global coordinate system·全局坐标系
  2. Actor/object coordinate system·车辆/行为主体坐标系
  3. Sensor/light coordinate system·传感器坐标系

1.2 Road segment·道路片段

下面以直道为例子,演示一些其他属性的设置。

1.2.1 让一个路段连接其他两个路段

如下图,右击路段,在弹出的菜单中点击Edit road joint

弹出如下界面,点击one to one,就可以实现一段道路可以同时连接另外两段。

效果如下:

1.2.2 配置车道线

如图,选中要编辑的路段,右击Object configuration,弹出下图界面:


按照上图进行各个属性的编辑,就可以改变车道线颜色、虚线/实线/双实线/双虚线、路肩等设置,其中,选择每个属性右下角的Apply XXX to all就可以实现对所有道路的统一修改,按照上图所设置的效果如下:

1.2.3 Road marking·道路标志

这里的标志是指粉刷在道路上的如转向箭头,掉头箭头,斑马线等。

从右侧直接拖入,点击就可以进行属性编辑。

1.3 Trajectory·轨迹

路径Path+速度Speedprofile=轨迹

1.3.1 建立一个Path·路径

  1. 自动标记·Inherited Path Definition
    点击图中所示图标

    发现每个车道两端都有一个黄色的圆圈,如图

    点击各个圆圈,即可实现自动连接,同时,也可以点击不同车道的圆圈,实现变道操作。效果如下图:

  2. 手动标记·Manual Path Definition

    点击上图图标,就可以进行路径定义,完全是手动画点,点与点之间的连线可以是直线,曲线,样条曲线,变道专用曲线等等,如下图所示:

  3. 路径的属性设置

    如上图,选中路径,右击Object configuration,弹出如下界面:

    第一个选项卡中包括了各段曲线的类型以及相关的参数,第二个选项卡可以给路径上添加一些车道线,障碍物等等。

1.3.2 配置Speedprofile

要配置Speedprofile,首先要添加一辆车,在右上角的关系树中Speedprofile选项就可以展开,如下图

双击上图中蓝色背景的Speedprofile_1,就可以打开Speedprofile Editor,基本操作选项如下图所示:

各个选项卡所示见下图:


1.3.3 Synchronization of Trajectories·轨迹同步

用一个例子来说明:

假设:想要研究两辆车在路口相遇的情况,现在定义的轨迹如下图:

运行后结果如图:

由图中不难看出,一辆车到达交汇点时,另一辆还很远,为了解决这个问题,可以使用轨迹同步。

  1. 直接在轨迹上拖动,使得两辆车在交汇点相撞
  2. 点击左侧竖列工具栏中的Synchronize Trajectories,弹出响应对话框。

  3. 如上图,勾选一个车作为参考。然后点击右下的Set as sync time,即实现轨迹同步。如下图,将进度条拖到起点,发现参考车的起始位置没有改变,而另一辆车的起始位置发生了改变。

1.3.4 Multiple trajectories · 多轨迹分配

在上图关系树中选择一个汽车,双击,弹出以下界面,根据下图操作提示即可实现多轨迹分配。

1.4 Actor(Vehicles & Calibration) · 动态物体

1.4.1 Vehicles

在关系树中双击一个汽车,就能得到如下图对话框,下面分别介绍各个选项卡的作用。

  1. Trajectory · 轨迹
    界面如上图所示,其具体用法在1.3.4中已经有过讲解,这里不再赘述。

  2. Sensor Properties · 传感器属性
    界面及各部分作用见下图。

  3. Control · 控制

  4. Driver Model · 驾驶员模型

  5. Physics · 物理参数设定

  6. Dynamics · 车辆动力学参数

  7. Collision Detection · 碰撞检测

  8. Animation · 动画

  9. Light · 灯光设置

  10. Actuators
    定义一些颜色、动画之类的。

1.4.2 Humans


如上图,可以看到设置Human对话框里的选项卡和汽车是一样的,但是有些属性是不能设置的,比如说动力学模型等。

1.5 Simulation Scheduler Settings · 仿真频率设置


如上图,点击工具栏上的按钮,弹出Simulation Scheduler的对话框。

1.6 Visualization: Human Views · 可视化:人眼视角


如上图,将Human View拖到右边的object 上既可以在3Dview里面得到一个视角,Human View可以拖到车上,或者是其他别的地方。

如上图,拖到车上时会弹出如下界面,可以选择坐在车上的什么位置。点击如下图位置所示就可以得到Human View,注意这个视角是一个固定的,而且仅供观察使用。

1.7 3D Visualization Viewer Control · 3D可视化界面基本操作

  • 使用鼠标左键,可以让画面绕一点旋转。
  • 双击可以定义旋转点。
  • 使用鼠标中建可以实现平移。
  • 使用滚轮可以实现画面的放大/缩小。

控制面板上的一排工具按键作用如下图:

1.8 Other Elements · 其他元素

1.8.1 Traffic Signs · 交通标志


如上图,选择相应的标志牌拖到右边的场景里,就会弹出相应的对话框进行设置。此外,还可以对交通标志牌进行自定义设置,如下图。


点击完后,弹出下图窗口,进行如下操作。

选择好照片之后,回到刚才的界面,再右击,选择Assign plate texture,选择刚才导入的图片即可,如下图。

整体效果:

1.8.2 Animated Elements里的其他元素

  • Information Plates · 信号牌
  • Matrix Plates · 动态标志牌
  • Traffic Lights · 交通灯
  • Light Posts · 路灯

    以上都可以参照交通标志牌类似的操作进行相关设置。

1.8.3 Nature Elements · 自然元素


同样在侧边栏里可以找到,拖动即可实现布置,效果如下。

1.8.4 Light & Shadows · 光影设置


如上图,点击相应按钮即可进行设定。

  1. Sky · 天空效果

    这里主要指整个模拟场景的背景,Image Based即为后面放一张图片作为背景,Generated为计算机通过计算生成的,其中在Image Based下的skybox效果分别如下:
select skybox 说明 示例
None 什么也没有
Air 蓝天白云
Desert 沙漠背景
Mountain 高山背景
  1. Sun location and intensity · 太阳的位置与强度
    这个设置里面有两个选项:

    • Explicit · 直白设置
      直接设置太阳的坐标(用一个向量来表示)。
    • Implicit · 隐晦设置
      通过当前的GPS值来设置太阳的位置。
  2. 两个设置界面见下图:

1.8.5 Wether · 天气设置

本设置有两个子项,分别是:

  1. Fog · 雾
    主要设置雾的颜色能见度范围等。
  2. Precipitation · 降水
    主要包括下雨下雪以及他们各自的强度设置

两个设置的界面如下:

各个效果实际情况见下表

效果名称 说明 示例
None 什么效果都没有
Fog 雾(150m能见度)
Rain 下雨(大雨)
Snow 下雪(大雪)

注意:降水的情况是可以共存的。

1.9 地图导入

待补充…………

2 Prescan传感器

2.1 All Types of Sensors · 所有传感器种类

2.2 Idealized Sensor · 理想传感器

可以提供准确的目标物真值信息,如目标车的车速、距离、方位角等,目的是在前期对算法进行快速验证。

2.2.1 AIR传感器:Actor Information Receiver

  • Configurable parameters · 配置参数
    Position & orientation · 传感器位置&方向
    Range · 传感器范围
    Opening angle (sweep angle) · 扫描角度

  • Output signals per target · 输出信息
    Distance to target · 目标距离
    Azimuth angle (θ) with target · 目标方位角
    Elevation angle (Ф) with target · 目标仰角
    Absolute velocity of target · 目标绝对速度
    Absolute heading of target · 目标绝对方向
    Target ID · 目标ID

2.2.1.1 配置:操作界面

将AIR拖到车辆上,就会弹出操作界面(如下图),下面介绍各个参数的配置说明

  1. Location · 传感器位置
    如下图所示,定义传感器的安装位置,结果可以从右边overview界面中看到。
  2. Orientation · 传感器朝向
    单位是角度(degree),可以使传感器形成的锥面,以锥点为原点,绕x、y、z轴旋转。
  3. Generic Sensor Parameters · 传感器常见参数
    Range:定义传感器探测范围,超出此范围的物体探测不到。
    Sweep angle:定义传感器扫描角,超出此角度的物体探测不到。
  4. Range detection type · 探测距离类型(返回的是哪个距离)
    BBox:以边界为对象,返回的距离是传感器与物体中心连线与边界的交点。

Center:返回的距离是传感器到物体几何中心的距离。
CoG:返回的距离是传感器到物体重心的距离。
5. 右上角按钮
可以隐藏/显示右边overview框中传感器探测范围预览(即绿色部分)。
6. Number of detectable objects · 可探测物体数量
返回几个距离,如果设置为1,就返回最近的距离。

2.2.1.2 输出:Simulink界面

在传感器设置完成后,点击build按钮进行生成,之后点击Invoke Simulink Run Mode,运行Matlab · Simulink。

打开Matlab后,在左侧的文件夹中找到.slx的simulink文件,这是我们刚才在点击完bulid之后自动生成的,双击打开该文件。

打开simulink模型后,下面介绍simulink界面出现的各个模块:

  1. Prescan核心模块
  2. Regenerate按钮
    当在Prescan有新操作之后,按此按钮刷新SImulink界面。
  3. SImulink Mode按钮
  4. 在场景中定义的所有Actor
    这里因为画面大小限制,下面还有之前定义的人、动态信息牌等。
  5. Actor的输入
    从图中我们可以看到,因为定义了AIR传感器,所以BMW_X5有两个输入,分别是自车本身的一个输入以及传感器反馈信息的输入。
  6. Actor的输出

双击BMW_X5模块,就可以进入该车的Simulink模块。

可以清晰的看到两个输入的情况,其中自车输入包含了位置信息、角度信息、速度信息等;AIR传感器输入的包括障碍物的距离、角度、ID、速度、朝向等信息,与前面所讲的一致。

2.2.2 Beacon/OBU · 信标/车载单元

【待补充……】

2.3 Detailed Sensor_雷达型传感器

2.3.1 TIS:Technology Independent Sensor · TIS传感器(技术无关传感器)

TIS是一种普通的扫描设备,用户可以轻松地将其配置为特定的传感器。 TIS构成了PreScan详中Detail Sensors中的激光雷达,雷达和超声波传感器的基础。

  • 配置界面
选项卡 设置名称 子项 说明 备注
Positioning Localization - 设置传感器位置 同AIR传感器设置
Orientation - 设置传感器的朝向 同AIR传感器设置
Basic Scan Pattern Line Scan · 线束扫描 从左到右、从上到下的扫描
'Z' Scan · Z型扫描 以Z的形式从起点扫描至终点
Matrix Scan · 矩阵扫描 以矩阵的形式进行扫描
Scan Parameters Horizontal Scan/Azimuth · 水平扫描/方位角 如果选择水平扫描,就要选择线束与线束之间的角度以及线束的数目。
Vertical Scan/Elevation · 竖直扫描/俯仰角 同上,选择竖直扫描也要进行线束的选择。
Capture Frequncy · 捕捉频率 最后的频率=每一个Beam的频率×Beam数
Beam Specific Settings Beam Range · 光束探测距离 超过该距离,就探测不到
Beam Type · 光束类型 有Pencil、Cone、Pyramid、Elliptical_Cone可以选择 如果这里选择Cone,然后Beam数为一个,且张角很大,就是毫米波雷达,因此TIS叫做技术无关传感器。
System System Settings Max object to detect · 最大探测物体数量
Syetem Resolution - 分辨率设为0,则反馈绝对精确的数据
ORM Assignment ORM Assignment - 设置一个物体360°对雷达的反射情况
Atmospheric Attenuation - 设置信号被大气衰减的程度
Drift - - 设置传感器的安装误差
Noise - - 设置传感器的噪声/扰动

2.3.2 Radar · 毫米波传感器

虽然前面提到过,TIS可以模拟毫米波雷达,但是如果在实际应用中确定使用毫米波雷达,就可以直接选择,毫米波雷达与TIS传感器设置大同小异,但是在某些方面还是要更加详细。

  • 配置界面

    配置界面如上图,其中画框的和TIS的操作方法一致,这里不再赘述,主要介绍操作有所不同的选项卡。
  1. Basic选项卡
    Basic选项卡与TIS传感器设置接近,只不过毫米波传感器定义Beam的方式为规定好探测角度,和Beam数,然后光束就会在这个角度之间均匀分布。
  2. Antenna选项卡
    表示了天线的增益曲线,在不同方向信号的强度是不一样的。界面入上图所示。
  3. Targets & Medium 选项卡
    也是在定义大气对信号的衰减程度,有两种定义方式:
    Explicit:显式定义,直接定义每米衰减多少,同TIS。
    Implicit:隐式定义,通过定义雨的大小来侧面定义衰减程度。

注意:上面的对话框里弹出了警告,因为毫米波雷达只会被下雨干扰,因此这种隐式的定义方式必须要在天气设置时选择雨天。

2.3.3 Lidar · 激光雷达

  • 配置界面
    与上面提到的大同小异,这里只说一下不同的设置方法。
  1. System选项卡
    这里多了一个选项,定义激光雷达的波长。
  2. Targets & Medium选项卡
    这里隐式定义大气衰减值的方法不同,见下图。

2.3.4 Ultrasonic · 超声波雷达

  • 配置界面
    同上,这里只介绍不同的地方。
  1. Antenna选项卡
    表示了天线的增益曲线,在不同方向信号的强度是不一样的。
  2. Targets & Medium选项卡
    大气衰减程度也是不一样的。

2.3.5 雷达型传感器总结

  • 通过上述比较不难发现,雷达、激光雷达、超声波雷达三者之间的主要区别在于天线的增益与大气衰减程度的不同。
  • 因此,如果对这两个指标有特殊要求的话可以单独定义,如果没有特殊要求,可以直接使用TIS传感器进行定义。

2.4 Detailed Sensor_摄像头型传感器

2.4.1 Camera · 摄像头

2.4.1.1 配置界面

与之前的雷达的配置界面相比,整体上还有有些差距,这里详细介绍一下。

  1. System选项卡
    里面包括Location、Orientation、View Settings三个设置选项。
  • Locaiton:设置摄像头的位置,这里的默认位置为后视镜的位置。
  • Orientation:朝向,与前面的一致,不赘述。
  • View Settings:设置是单目摄像头还是双目摄像头。
  1. Basic选项卡
  • Resolution:设置输出图像的分辨率,注意到这里有一个Output Simulink Image的复选框,如果不选择,则不输出到Simulink,就没有必要设置分辨率了。
  • Generic Sensor Parameters:这里也有一个Specify CCD Parameters的复选框,选中,则可以通过CCD和摄像头的焦距来定义视角范围;不选中,就可以直接定义可视角度。
  1. Misalignment选项卡
    主要是对摄像头输入的图像可以进行错位调整,以便能更好的测试系统的鲁棒性。

  2. Drift选项卡
    和之前所提到的一样,指的是设定一个安装位置的误差。

  3. Camera Effects选项卡
    设定摄像头传回画质的效果,点击Manage Effect按钮,可以给摄像头添加效果。

2.4.1.2 查看摄像头返回图像情况

这里设定相机效果为defaultBlur,查看摄像头返回图像可以通过两种方式:

  1. 在VisView中查看
    在VisView界面中,点击视角选择,即可以选择摄像头,这里选择的摄像头效果为模糊,效果见下图。
  2. 在Simulink中查看
    打开Simulink模型,在相应的车的模块里就可以得到摄像头的输入,并且Simulink自动配置了一个 Dispaly的模块,把Simulation stop time设置为0,然后点击运行,此时是空运行。

    如上左图,Simulink自动配置了一个Dispaly模块,通过该模块输入摄像头捕捉到的R、G、B图像,双击该Display模块,弹出设置,其中勾选Active复选框,则运行Simulink时会自动弹出右图所示的窗口,不勾选则不会弹出,同时在设置里还可以对摄像头捕捉到的图像进行保存。

对于实际应用,可以删除Display模块,将RGB输出到相应的图片处理模块上去。

注意:这里显示的图像一直黑屏,目前还未找到解决方法,后续补充。
更新:问题已解决,可参考:https://blog.csdn.net/dreautumn/article/details/111319911

2.4.2 Fisheye Camera · 鱼眼摄像头

鱼眼摄像头跟普通摄像头设置差别不大,有区别的在于可以进行视角范围的设置,一般鱼眼摄像头的视角范围更广。
鱼眼摄像头的效果如下右图所示。

2.5 Ground Truth Sensor · 真值传感器

两个作用:

  1. 提供场景真值,作为算法的训练
  2. 提供真值作为感知算法的标准答案,用于验证算法的准确性

2.5.1 Depth Camera · 深度真值摄像头

  • 特点
    是一个摄像头,因此参数的设置跟摄像头的一样,但是输出的不是所看见物体的RGB值,而是每个像素点离摄像头的距离值。
  • 作用
    可以作为双目摄像头计算距离的一个真值比较。
  • 输出效果:(依然存在全黑的问题)(已解决,参见https://blog.csdn.net/dreautumn/article/details/111319911)

    虽然图片无法显示,但是可以看到右边的一个表示深度的Bar,颜色越深代表距离越近。

更新:问题解决后的图像

2.5.2 Lane Maker Sensor · 车道线真值传感器

  • 功能
    形成于车辆中心线垂直的若干个面,并且返回这些面与车道线的交点坐标。

    图中绿点和红点就是面与车道线的交点。

2.5.2.1 参数配置

除了常见的配置传感器位置的选项卡,本传感器选项卡里还提供了一个Output的选项卡,就是设置这些面到传感器距离的。

2.5.2.2 VisViewer效果展示

可以在VisViewer中看到效果,需要进行以下设置:
首先Experiment->General Settings->3D-World->勾选Show Sensor Beams打开全局开关。然后在传感器的定义界面,将Visualize选项改为True。

得到的效果如下:

2.5.2.3 Simulink输出结果

打开Simulink,可以看到LaneMakerSensor的输入已经被打包,删除掉Terminator图标,从Simulink Library Browser里面找到Bus Selector,连接好之后,双击Bus Selector,就可以看到要输出的各个值。

2.5.3 Analytical Lane Maker Sensor · 车道线真值传感器(解析值)

与上面的传感器不同的是,这个传感器所输出的是车道线的拟合多项式或者车道线拟合多项式的系数。

2.5.4 Bounding Rectangle Sensor· 边界矩形传感器

  • 功能
    这个传感器将Actor以矩形框的形式框选出来,但是这个矩形框不是算法算出来的,而是系统提供的一个绝对真实的矩形框。
  • 作用
    给一些物体检测算法提供一个真实值参考。
  • 可视化操作
    1.在添加Bounding Rectangle Sensor的同时也要添加一个Camera传感器。
    2.在Simulink界面,在Prescan的图标下,有一个Open Useful Boxes按钮,点开,在弹出的工具库中找到BRS data on Camera image拖到汽车的Simulink模块中,并且按照相应的接口连接好,点击运行。

2.5.5 Object Camera · 目标传感器

  • 跟上面的边界矩形传感器区别不大,但是操作更为简单,在Simulink里也不需要打开Useful Block Boxes之类的。
  • 有一点需要注意,在属性编辑器中,需要把Output Camera Image设置为True。

2.5.6 Points Cloud Sensor · 点云真值传感器

  • 功能
    同上面的传感器一样,这个传感器返回的点云是真实的点云,而不是激光雷达扫描出来的点云,也是给传感器提供一个真值的参考。

  • 配置界面
    配置界面大同小异,这里只展示不同的地方。

  • 可视化操作
    1.在配置界面,输出形式要选择World PositionIntensity复选框可选择,也可不选择(目前不知道这个复选框的作用,因此把选与不选两种情况都尝试了一下),为了使视角更广阔,我们这里把横向角度改为120°。
    2.在Simulink界面,点击Useful Block Boxes(详细介绍见2.5.4),找到里面的Point Cloud Sensor XYZ PlotPoint Cloud Sensor XYZ Range Plot 拖动到汽车的Simulink模块,连接好接口运行。

注:左边的图片是没有勾选Intensity的,右边的是勾选了的。

根据Intensity意思并且根据两个结果比较猜测,勾选了这个选项的应该是能返回反射强度。

2.5.7 Image Segmentation Sensor · 语义分割传感器

  • 功能描述
    输出的不是RGB的值,而是每一个物体的类型,同一类物体颜色一样,应当注意的是,这也是基于不存在的技术,是直接给出的真值,而不是通过算法得出的。
  • 配置界面
    主要是选择同一个/同一类物体相同颜色,下面就两种情况分别演示。
  • Simulink可视化
    这个传感器操作比较简单,Simulink直接提供了Display模块,直接运行即可得到图像。

注:左边为同一类物体,右边为同一个物体。

3 实战演练:搭建MIL仿真,验证AEB算法

3.1 场景搭建

  1. 创建直道,五车道,长300m。
  2. 在道路中间位置放置一个气球车。
  3. 给主车绘制一个直线轨迹,轨迹要穿过这个气球车,添加主车到轨迹上。
  4. 配置车辆的Speed Profile:距离起点20m,速度选择默认的15m/s。
  5. 配置车辆的动力学模型:
    右击->Object Configuration->Dynamics->2D Simple
    右击->Object Configuration->Driver Model->Path Follower
  6. 为了方便观察,可以在汽车上添加Human Views
    这里添加两个,分别是俯视和侧视。

3.2 配置Simulation Scheduler

按照下图进行设置,至于为什么这么设置之后的内容会讲。设置后之后进行Build。

编译好之后在VisViewer场景如下:

3.3 Simulink初始运行

  1. 打开simulink,点击regenerate。

  2. 设置仿真时间为19s。

  3. 运行,可以看到在没有传感器没有算法的情况下的结果:
    主车会直接穿过气球车并继续向前,直到仿真结束。

  4. 将这次结果作为对照组,将这个车设置为幻影:
    右击->Object Configuration->Actuators->Ghosting
    点击Build,效果如下。

  5. 创建一个类型和轨迹和刚刚一样的车,作为实验组。

3.4 传感器配置

3.4.1 长距离毫米波雷达配置

为了设置方便,这里选择用TIS传感器直接进行配置。

  • Basic选项卡

    • FoV形状:金字塔形➡Beam Type:Pyramid
    • 单波束➡#Beams=1
    • 扫描频率:25Hz➡Capture Freq Fov=25Hz
    • 探测距离:150m➡Beam range=150m
    • 横向FoV角度:9deg➡Beam Δθ=9deg
    • 输出相对速度➡勾选Coherent system
  • System选项卡
    • 最大检测数:32➡Max. objects to detect=32

3.4.2 短距离毫米波雷达配置

同样选择TIS传感器。

  • Basic选项卡

    • FoV形状:金字塔形➡Beam Type:Pyramid
    • 单波束➡#Beams=1
    • 扫描频率:25Hz➡Capture Freq Fov=25Hz
    • 探测距离:30m➡Beam range=30m
    • 横向FoV角度:80deg➡Beam Δθ=80deg
    • 输出相对速度➡勾选Coherent system
  • System选项卡
    • 最大检测数:32➡Max. objects to detect=32

传感器配置完成后效果如下:

3.5 给新主车配置Human Views

这里还是配置两个,一个是俯视视角,另一个为从主车侧后方视角。

设置完成后在VisViewer中效果如下:

3.6 Simulink控制算法添加

3.6.1 调用自带算法

这里直接调用Prescan自带的控制算法

  1. 在空白处点击,并且输入model
  2. 生成一个自定义的model模块后,双击,调用自带算法
    -点击Browse选择自带算法所在的文件夹
    -自带算法所在的文件夹位置是安装Prescan是自己定义的文件夹位置
    我的位置为D:\Users\Public\Documents\Experiments\TestScenarios\AEBS\includes_AEBSPreBrakingModel.mdl
    忘记了的话可以搜索TestScenarios、AEBS等关键词(用Everything搜会更快)

3.6.2 进行连线

连线按照下图进行

  • 前8项依次相连
    表格的前8项一一对应连接即可。

  • ind flaf需要用一个constant模块输入0

  • 从驾驶员模型接入的可以使用goto模块
    插入goto模块、命名、连接,拖动下图所示蓝色箭头生成From模块,将该模块移动到相应位置连接。

  • 从汽车动力学模型得到转速
    拖动汽车动力学模型输出的-T-模块的蓝色箭头生成该模块对应的From模块,拖到相应位置,用Bus selector模块选出所需要的转速信息

  • 输出的油门/刹车信号同样通过goto/from输出

  • 最后的两个信号直接输入到Terminator
    最后两个信号是刹车灯信号和TTC是2.6s时的信号,跟我们这次的控制没有关系。

3.6.3 界面美化及观测特定信号

  • 改变goto/from标签的颜色
    因为有多组goto/from标签,为了使表达更加清晰,可以改变他们的颜色
    选中标签->右击->Format->Background Color->选择颜色

  • 观测特定信号
    对于AEB系统,我们对如下几个参数比较感兴趣

    • 主车车速
    • 传感器探测到障碍物的距离
    • AEB系统给出的刹车信号

    可以通过添加一个Scope模块来检测这些信息。

    注意到在设置TIS时设置的最大检测目标数为32个,这里我们只需要观测到第一个障碍物的距离,因此用Selector模块,从32个里面选择第一个。同时给各个输入命名。

最后的Simulink模型如下:

3.7 运行仿真,查看结果

仿真界面如下:

运行完仿真之后,双击之前设置的scope模块,查看相关数据变化。

说明:
这个AEB系统跟业内的大部分AEB系统一样,根据TTC做判断
TTC<2.6s——系统给出报警
TTC<1.6s——系统给出半程制动 40%
TTC<0.6s——系统给出全力制动 100%

3.8 AEB算法讲解

展开Prescan自带的AEB算法,该算法大致分为如下几个模块:

3.8.1 信号处理模块

  • 坐标系转换
  • Range=0时给其赋最大值

3.8.2 频率转换模块

  • 将信号的频率设置为一样的

3.8.3 算法主模块

  • 计算TTC
  • 计算是否有碰撞风险

3.8.4 判断模块

  • 如果驾驶员接管车辆/采取转向则取消报警

3.8.5 纵向控制模块

  • 输出油门、刹车控制指令

3.8.6 Display模块

  • 仿真中实时显示车辆主要信息
  • 仿真中实时显示Radar的障碍物检测结果

【暂时完结】Prescan学习笔记相关推荐

  1. Java中expecial,RxJava 学习笔记 (一)

    作者: 一字马胡 转载标志 [2017-12-13] 更新日志 日期 更新内容 备注 2017-12-13 RxJava学习笔记系列 系列笔记 (一) 2017-12-15 增加系列笔记(二) 201 ...

  2. 麻将AI 不完全信息博弈学习笔记(完结)

    前言 在这学期的数据结构必修课中,老师向我们提供了两道题: 其一是六子棋问题: 其二是麻将AI问题: 前者是经典的完全信息博弈问题,根据我已有的知识,利用博弈树和合理的剪枝可以提供一种高效的解法(当然 ...

  3. 操作系统学习笔记目录(暂时不全223)

    操作系统学习笔记目录章节汇总 (暂时不全,目前只有第一章+第二章-浅谈线程,进程-2020.3.6) 文章目录 操作系统学习笔记目录章节汇总 1.打开钢琴的盖子(序章) 1.1-操作系统的概念(定义) ...

  4. 【六更完结!由于字数限制开新文章继续】零基础信号与系统学习笔记:复指数信号、傅里叶级数的系数推导、三角函数正交性、离散傅里叶变换、相位补偿、z变换表、逆变换表、常见序列及其作用

    零基础信号与系统学习笔记:复指数信号.傅里叶变换.三角函数正交性 基础1:复指数信号 复指数信号基础知识 复指数信号推导1 虚指数信号 虚指数信号特性和作用 直流信号 基础2:傅里叶级数 推导傅里叶级 ...

  5. 网规第二版:第8章 网络规划与设计论文学习笔记(含历年真题)(完结)

    第8章 网络规划与设计论文学习笔记 8.1写作范围要求 1.网络技术应用与对比分析 2.网络技术对应用系统建设的影响 3.专用网络需求分析.设计.实施和项目管理 4.下一代网络技术分析 8.2论文考试 ...

  6. [Vue]学习笔记目录 【Vue2与Vue3完结】 (尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通)

    文章目录 前言 遇见的问题及其解决方案 之前笔记 Vue2 Vue3 前言 本笔记根据如下笔记和视频进行整理 老师的课件笔记,不含视频 https://www.aliyundrive.com/s/B8 ...

  7. JS学习笔记day05(完结)!

    今日内容 零. 复习昨日 一.作业 二.BOM 三.定时器 四.正则表达式 零. 复习昨日 事件 事件绑定方式 鼠标事件 onmouseover onmouseout onmousemove 键盘事件 ...

  8. JavaScript学习笔记(一轮)完结

    学习笔记 b站:https://www.bilibili.com/video/BV1W54y1J7Edspm_id_from=333.999.0.0 2022.2.8 按照前锋的视频粗略学了一遍 jQ ...

  9. JavaScript学习笔记(第四部分)总共四部分(完结)

    JavaScript学习笔记(第四部分)总共四部分 9 事件 9.1 事件对象 当响应函数被调用时,浏览器每次都会将一个事件对象作为实参传递进响应函数中,这个事件对象中封装了当前事件的相关信息,比如: ...

  10. Redis学习笔记(B站狂神说)(自己总结方便复习)

    Redis学习笔记B站狂神说 redis: 非关系型数据库 一.NoSQL概述 1.为什么要用Nosql 1.单机Mysql的年代 思考一下,这种情况下:整个网站的瓶颈是什么? 1.数据量如果太大,一 ...

最新文章

  1. 【 js 片段 】如何组织表单的默认提交?【亲测有效】
  2. 如何使用Linux内核中没有被导出的变量或函数
  3. ES批量索引写入时的ID自动生成算法
  4. 负margin的移位参考线
  5. C# 字符、字符串过滤,只能输入数字、中文、英文、大写、小写(转)
  6. C#LeetCode刷题之#83-删除排序链表中的重复元素(Remove Duplicates from Sorted List)
  7. 牛客网---Java题库(11~20)
  8. 常用Java API 熟悉 方法 从记不得到忘不掉 java1.8.61为例
  9. 如何做好软件测试管理工作,如何才能做好软件测试工作
  10. TFS报表管理器无权限访问的配置
  11. 软件测试开发实战| Java版本,Gson解析json比较常用的2种方式
  12. xcode 制作静态库.a文件 详解
  13. Spring AOP 实现用户权限验证
  14. 决策树算法--ID3算法
  15. 特斯拉员工手册与马斯克的工作建议
  16. 使用css画出一条虚线
  17. js-05--对象是什么、创建对象、对象使用、操作对象、遍历对象、内置对象、Math、任意范围随机数、日期对象、字符串对象
  18. VMware虚拟机下载及Ubuntu安装指南
  19. 获取java可用时区列表ZoneId
  20. linux meld 编译,Linux 系统上的可视化比较与合并工具 Meld

热门文章

  1. matlab2018历史命令在哪,2018美赛准备之路——Matlab基础——命令行功能函数
  2. chrome 独立安装包下载
  3. 堆排序代码详解(Java实现)
  4. java递归100_java递归算法1加到100怎么实现?
  5. thrift实战教程
  6. 光伏发电极其并网控制技术 最大功率点跟踪
  7. BUUCTF WEB 第四页WP(持续更新)
  8. 数字化公安预审系统应用业务流程解析
  9. windows下安装GCC编译器
  10. 视频格式转换工具,用到ws.schild.jave,之前是用的it.sauronsoftware.jave,作者已经不维护了