Bootstrap

Prescan学习笔记(三)

实战案例:搭建Mil闭环仿真--验证AEB算法

1-ADAS/AD系统仿真架构

 ADAS一般分为四个部分,分别是

场景工况,环境感知,控制决策算法以及执行器(车辆底盘动力学)

prescan有很多自带的demo场景,比如测试ACC,AEB场景。也支持很多外部数据的导入。

2-建模传感器,集成算法

 这里首先做一个验证AEB算法的场景。

Prescan GUI场景搭建

首先搭建一个长度为300米有人行道黄色路线的一条道路,添加一辆气球车在道路中央为障碍车。主车预设中间道路的路线轨迹的测试场景

随后主车编辑右键-object configuration tragectory-spend profile设置主车位置距离起点20米,车速15m/s,并在object configuration里的-动力学模型dynamics-添加一个2d的动力学模型并在driver model添加成员模型path follower。

为了方便观察,拖动humanview到主车上,添加一个humanview,这里可以设置人眼视角的视野范围以及他的位置,在这里设置一个俯瞰的视角

之后在similation的scheduler里面设置仿真频率,开启3d可视化视角。

这里的频率之间有一定的联系。

为了对比前后加入算法的变化,设置主车与对比车两辆,并给对比车设置幻影模式方便观察:

传感器的搭建

然后对主车进行传感器的搭建,选择的是TIS(technology independent sensor):

长距Rader配置

FoV形状:Beam type=Pyramid金字塔型

单波束:#Beams=1

扫描频率:Capture freq Fov=25HZ

探测距离:Beam range=150m

横向Fov:Beam Δ\Theta=9deg

输出相对速度:勾选Coherent system

检测目标数:Max.object to detect=32

之后再加入一个TIS传感器

短距Rader配置

FoV形状:Beam type=Pyramid金字塔型

单波束:#Beams=1

扫描频率:Capture freq Fov=25HZ

探测距离:Beam range=30m

横向Fov:Beam Δ\Theta=80deg

输出相对速度:勾选Coherent system

检测目标数:Max.object to detect=32

这样就完成了主车上的传感器的布置.

然后再设置两个人眼视角,一个俯瞰,一个从侧后方观察

控制算法的接入-simulink

打开该程序的simulink可以看到有一辆被设为对比的灵魂车和搭建了传感器的主车。

我们可以在主车里看到我们设置的两个传感器,我们可以在这里获取他的感知输出

然后我们再添加控制算法:双击创造模块输入model,这里我们选择系统自带的AEB算法,在TestScenarios里面。

输入部分

这里可以看到我们的算法需要的数据以及最后输出的数据,下一步就是连接IO口:

Velocity速度与Yaw rate偏航率可以通过主车上自带的gps惯导传感器给出连接信号。

DopplerVelocity相对速度与距离range和方位角\Theta由长距毫米波雷达提供

然后还有相同的数据(DopplerVelocity相对速度与距离range和方位角\Theta由短距毫米波雷达提供。

ind flag用模块参数constant =0保持系统的开启

最后三个输入driver brake刹车,throttle油门,RPM发动机转速。

其中刹车油门是由驾驶模型给出,本来是需要给到动力学模型的,现在有了AEB的介入,所以最终的油门刹车作用由AEB系统给到动力学模型

为了界面的整洁,这里引入了一个goto模块,其实我认为就是设置了一个中转站,左边是接受信号(物品)然后通过中转由另外一个对应模块连接其他模块传输到需要的地方。这样就避免了很多线绕在一起的混乱。这里就是驾驶员模型把油门刹车的信号给到goto模块,然后传输给AEB算法模块

最后一个发动机转速,是给到车辆动力学模型的这个标签。它里面包含了车辆信息的全部总线信号

我们这里只需要RPM,所以加入模块Bus Selector-从传入总线中选择信号。

这样我们就完成了输入部分的配置。

输出信号

接下来我们连接AEB模块的输出信号,里面一共有四个信号。throttle油门和brake刹车给到动力学模型,这里同样使用打标签的方式连接。

然后后面两个一个是刹车灯,一个是tdc=2.6时候的一个标志,这里就不管,随便连接两个空。然后可以添加一个scope示波器将关心的信号接进来。我们这里接入了车速,距离与刹车信号。

其中距离中需要使用Selector-从向量矩阵或多维信号中选择输入元素

3-运行仿真

最后使用simulink直接运行,我这里使用的Prescan Viewer的两个人眼视角分别录制了视频。在运行过程中我遇到了一点麻烦,

HumanView_5

就是《找不到 'ADAC_AEBS_FailOperationTest_A1_cs/Audi_A8_2/AEBS Model' 引用的模型 'PreBrakingModel'。》

找了很多地方也没有解决,后面偶然点进去选择路径中加入了系统自带的算法,(双击算法模块,浏览路径,选择系统自带算法,同意加入matlab当前路径)这里是因为加入的simulink算法并没有加入在matlab当前路径下

HumanView_3

这样就完成了一个闭环的仿真学习,从搭建场景到设置参数并添加传感器最后实现simulink的仿真,

;