simulink自动驾驶工具箱LKA模型

1.LKA模型概述(Automative Toolbox)

1.1LKA模型的打开和运行

matlab/simulink(本人使用matlab2023),在命令行键入以下命令:
addpath(fullfile(matlabroot,‘examples’,‘mpc’,‘main’))
open_system(‘LKATestBenchExample’)
即可打开自动驾驶工具箱自带的simulink模型:
image.png
在命令行运行上述两个命令之后,在matlab左边的文件栏问哦们可以看到一系列的文件,点击下面的.m文件并运行:
image.png
在打开之后可以看到一系列的图:
image.png
若要查看鸟瞰图,则点击:
image.png
鸟瞰图中点击运行即可运行,效果如下:
image.png

1.2 LKA模型的输入输出概述

image.png
LKA(车道保持辅助系统)如图所示,右上角三个面板分别为使能LKA模型开关,safe lateral offset(横向安全偏移量),Assist Status表示协助状态。
Lane keeping Assist整体的模块如图所示:
image.png
Enable,Lane Assist Offset这两个量由Dashboard提供,除去这两个量,剩下的三个量分别是驾驶员转向角,车辆的纵向车速和车道传感器,从模型输出的量为车轮的转角度。
除去车道保持模块之外,另外一个模块用以模拟外部的环境模型和车辆三自由度的动力学模型:
image.png
输入量为轮胎转角,输出量为驾驶员转向角,纵向车速和车道传感器的量,将这些量送回到、车道控制模型,从而完成对车道保持的闭环控制。

2.LKA模型每个模块以及算法的搭建详解

2.1 车道保持辅助算法

2.1.1 车道线偏离判断

image.png
左上角模块为车道线偏离检测模块:
image.png
主要检测左右侧的偏离量是否超过了阈值,只要左车道或右车道超限,就会触发车道辅助控制。

2.1.2 车道线中心估计模块

Estimate Lane Center模块为车道线的估计模块,展开如下:
image.png
matlab函数模块主要是传感器得到的车道线的一些数据和判断逻辑:
image.png
此函数的输出为四个子系统的使能:
image.png
根据车辆的受力情况,触发不同的子系统算法函数,并且将这些信息打包继续发给下一个模块:
image.png
其中Preview Curvature为预瞄函数:
image.png
其中PredictionHorizon的值为30,Ts的值为0.1,这个函数主要目的是用来预测三秒后的车辆轨迹。

2.1.3 模型预测控制器

接下来的模块是模型预测控制器:
image.png
模型预测控制器的算法详解如下:
The Lane Keeping Assist System block simulates a lane keeping assist (LKA) system that keeps an ego vehicle traveling along the center of a straight or curved road by adjusting the** front steering angle**. The controller reduces the lateral deviation and relative yaw angle of the ego vehicle with respect to the lane centerline. The block computes optimal control actions while satisfying steering angle constraints using adaptive model predictive control (MPC).
image.png
首先,我们注意到matlab的help对这个模块进行的描述,控制主要是通过调整前轮转角得以实现的,控制器主要作用是减小了车辆相对于车道线中心的横摆角速度和偏移量。

2.1.4 车道辅助功能选择

image.png
本模块主要是根据偏移量是否超限来判断到底是用驾驶员介入驾驶还是用辅助驾驶功能介入驾驶。所以最外层status相关联的按钮在运行时会在红灰色之间不断地切换,用来代表LKA系统现在是否介入的状态。

2.2 车辆动力学和环境信息处理模块

image.png
本模块主要用来表示车辆传感器采集到的车道线数据,以及由三自由度整车动力学计算出来得到的汽车纵向车速,以及驾驶员的调整转角。

2.2.1 汽车动力学模块

image.png
本模型采用汽车三自由度模块,输入为车速和经一阶低通滤波器处理后的前轮转角。输出为横摆角速度和横摆角加速度,以及纵向的速度和横向的位移,我们把这些量经单位换算后打包输出给下一个模块。

2.2.2 用到的simulink automative工具箱模块

image.png
其中,Scenario reader模块主要用于读取我们设定场景中的物体的数值,这些物体是我们在Driving Scenario Designer中设置的物体,包括我们放置在车身周围的传感器或者相机,以及车辆行驶的道路和道路上的从车。
我们用到的输入如下:
image.png
对应的,我们的输出如下:
image.png
image.png
image.png
这里我们对Actors相关的信号不做处理,主要是读取和道路约束相关的量。输出的量主要有车辆的姿态,车辆的坐标,其中curvature为坐标矩阵每行处的车道边界曲率,指定为实值 N×1 向量。N 是车道边界坐标的数量。单位以弧度/米为单位,CurvatureDerivative为曲率的导数,其他的部分诸如道路宽度,车辆受力情况等等,均由我们打包送给下一个模块。
Vision Detection Generator模块主要根据安装在自我车辆上的视觉传感器进行的相机测量生成检测。
Vision Detection Generator模块的输入如下:
image.png
主要是Scenario reader模块给到的一些场景的约束,我们这里用到的是车道线的检测,所以给过来的也是车道线的检测信息,Vision Detection Generator模块将这些信息处理之后打包传递出去。因为我们探测的是一左一右两条车道线,所以我们把这两个信息给分成左右两部分打包送出去:
image.png

3.Driving Scenario Designer应用工具箱

在matlab首页右侧点击这个应用模块即可打开,创建的文件格式为.mat类型:
image.png
点击new 新建:
image.png
其中,我们可以看到的是其他的一部分功能,包括添加道路,添加车辆,其中添加的车辆有主车和从车,主车在simulink/matlab中为Ego Vehicle,以及添加传感器,具体添加过程如下:
image.png
这五个模块点击任意一个,即可在车身周围添加传感器和相机模块,添加道路同理。除此之外,在help功能中我们可以看到的是它支持批量导出和修改场景,点击export即可导出:
image.png
值得一提的是,我们导出得matlab function这个函数模块中,是不包含传感器的接口数据的,传感器采集到的数据我们可以通过导入到simulink model这个选项和simulink做信息交互,也就是下面这几个模块,这几个模块具体使用在上面也已经介绍完毕:
image.png

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值