实战案例:搭建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 Δ=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 Δ=80deg
输出相对速度:勾选Coherent system
检测目标数:Max.object to detect=32
这样就完成了主车上的传感器的布置.
然后再设置两个人眼视角,一个俯瞰,一个从侧后方观察
控制算法的接入-simulink
打开该程序的simulink可以看到有一辆被设为对比的灵魂车和搭建了传感器的主车。
我们可以在主车里看到我们设置的两个传感器,我们可以在这里获取他的感知输出
然后我们再添加控制算法:双击创造模块输入model,这里我们选择系统自带的AEB算法,在TestScenarios里面。
输入部分
这里可以看到我们的算法需要的数据以及最后输出的数据,下一步就是连接IO口:
Velocity速度与Yaw rate偏航率可以通过主车上自带的gps惯导传感器给出连接信号。
DopplerVelocity相对速度与距离range和方位角由长距毫米波雷达提供
然后还有相同的数据(DopplerVelocity相对速度与距离range和方位角)由短距毫米波雷达提供。
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的仿真,