分享

ADAS车道保持功能仿真案例

 牛牵花 2021-08-10

前面的文章《工程师眼里的LKAS》中对LKAS开发的难点做了一些归纳,针对算法部分难度有两个部分。一个是进入退出车道跟随功能的条件,另一个就是车道跟随算法的实现。车道跟随算法倒是可以用Carim/TruckSim进行模拟仿真,本期要来介绍下Carim/TruckSim的自带的LKA仿真例子,下一次内容会介绍如何在自带例子上进行魔改。

Carsim/Trucksim

【思想】忘记是哪个版本(2017?)CarSim/TruckSim开始提供ADAS相关的实例。

图片

CarSim在Datasets->ADAS and Active Safety提供的例子

图片

TruckSim在Datasets->ADAS and Active Safety提供的例子

图片
【课程广告】

图片

AVL-CRUISE百集视频课程

车辆模型

这一次的内容不是基础教程,所以车辆的转向、悬架、动力总成等如何配置就不去介绍了,只重点介绍跟LKAS有关的内容。

图片

使用的例子是Datasets->ADASand Active Safety->Highway Lane Detection(Simulink)

摄像头

图片

增加一个【Misc:ADD_ENTITY】模块,配置摄像头的安装位置。根据例子中的命名【C-Class Upper Front Windows】理解,大改就是安装在前档中间的顶部。

图片

点击【C-Class Upper Front Windows】后可以看到配置的命令,分为两个部分。上面TRANSLATE指令定义摄像头的安装坐标,ROTATE指令则定义摄像头俯仰、旋转的角度。后面我们介绍客车模型的时候就需要对这些参数进行调整。

路况配置

既然是车道线辅助功能,仿真时候定义车道线是必不可少的工作

图片

配置道路模型,例子用的是四车道模型,背景是绿地与蓝天场景。这些可以根据个人喜好和项目需求进行修改。

图片

可以根据法规或者自身的需求定义仿真道路数据,主要定义转弯半径,弯道的长度、直道的长度。

输入输出接口

图片

第一个红框定义的是摄像头的输出信息(时间戳、数据等)。具体什么含义可以看VS_Command.pdf与VS_Solvers.pdf这两个文档;在Inport Channels中定义了一个输入接口,就是方向盘的需求转角。

Simulink模型

在Simulink控制部分其实分了两部分,一方面是处理摄像头反馈的车道线数据,另一方面是要根据车道线数据输出方向盘的需求转角。

图片

点击【Home】界面的【Send to Simulink】按钮,既可自动打开Simulink控制策略模型。

图片

自带的控制模型位置在

【CarSim2019.0_Data\Extensions\Simulink\Highway_Lane_Detection_CS2018.slx】,看上去是不是有点复杂?

传感器S函数

图片

在控制模型的左下角传感器模块VsSensor(SFunction接口函数),提供了以上的输出变量

图片

关于这么模块的详细描述可以查看CarsimVsSensor_S_function.pdf

图片

例子中使用的摄像头信号来自RGB Color maxtrix,可以通过一个Video Viewer模块显示实时的摄像头图像

图片

Video Viewer模块显示的是摄像头影像,随着仿真时间不断更新!

图像识别算法

其实这个模型大部分内容都是在处理图像,对图形识别有兴趣的老铁可以自己琢磨下。通过自己加入Video Viewer模块可以看到各模块处理后的效果。

图片

先将RGB的彩色信号处理成黑白,在提高图像对比度后,图像除了车道线显示白色,其余的均为黑色

图片

根据上面处理得到的图像数据进一步计算,提取每条车道线上的两个点。

图片

识别出上图中的这四个点

图片

根据两个点绘制车道线,这里我要特别说明!自带的例子都是很简陋的,实际设想都反馈的是车道线方程数据,肯定不是上面这样简单的两个点所组成的车道线!

图片

Check Vehicle Position用来计算车辆预瞄点距离两个车道线的距离。摄像头的分辨率为320X200,上面的算法计算得到的四个车道线上的点只是描述第几排第几个像素,需要将这部分的信息转换为实际的距离单位,比如:m。输出的latL、latR就是预瞄点距离两侧车道线的距离。

图片

Check Vehicle Position函数还有一个功能就是控制方向盘的转交,但是这个控制是简单让【思想】的下巴都要掉下来。类似一个开关量控制,如果预瞄点与左侧车道线距离小于1m,方向盘就向右边转25度;预瞄点与右侧车道线距离小于1m,方向盘就向左边转25度。结果演示我们就能看看这个控制方式是多恶心,司乘不是晕车就是吓尿。但是后面我们可以根据我们的想法把这部分算法完善起来!

运行效果

在Carsim中点击【Run Now】或者先【Send to Simulink】再到Simulink点击运行

图片

Carsim提供Carsim的实时影响,Simulink中的VideoViewer显示车道线的识别结果。

上面是实时的仿真过程

从结果回放上可以感觉到,车辆晃得很厉害!另外从方向盘的转角数据看变化的幅度都特别大,控制的效果特别不好。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多