相信很多老铁都了解过ACC、ESC、EBS、ABS、AEBS等驾驶辅助系统,但是对LKAS就比较陌生。【思想】曾有幸参与了LKAS控制部分的开发,接下来的内容会从工程师的角度聊聊LKAS,后面还会有其他的文章分享具体的经验。
什么是LKAS
LKAS(Lanes Keep Assistant System)车道保持辅助系统是这两年比较热门的新兴功能,可以认为是车道偏移功能的升级版,车道偏离功能可以在车辆偏离车道线的情况发出报警。
而LKAS则是发出预警的同时还会主动接管车辆的转向系统,使得车辆回到原本的车道线上。
应用场景
在高速公路上长时间驾驶其实是非常令人发困的,每年因疲劳驾驶导致的事故也是层出不穷。
LKAS一定程度上可以帮助驾驶员在走神的情况下保持车辆的正常行驶,并提醒驾驶员。甚至配合ACC、AEBS等辅助系统后可以大大的缓解长途驾驶的精神疲劳。
前一阵有则因公交车司机弯腰捡东西导致的悲剧。
由于弯腰捡东西防止车辆偏离车道,撞上了路边的行人,酿成一人死亡的悲剧。
上面的视频就是LKAS在客车上的应用!
系统组成
目前市面上在售的解决方案比较简单,系统构成主要由智能摄像头、LKAS控制器、电控转向系统(eps)组成。
智能摄像头
在接触LKAS项目之前,思想一直以为摄像头跟行车记录仪的摄像头是一个概念,后来才发现自己过于天真了,他们完全是两码事。智能摄像头的硬件由传感器(CCD或者CMOS)和摄像头控制器组成。
经过深度学习的摄像头控制器能够识别出传感器获取的图像信息,区分出车道线、前车、路沿,甚至路牌、红绿灯、行人等。
摄像头通过CAN总线输出识别后的结果数据,并同时输出影像信息。
控制器
控制器硬件在之前的文章《【科普】整车控制器-硬件篇》有介绍过。LKAS控制器根据其使用场景需求,结合成本重新设计硬件资源。
控制器根据智能摄像头反馈的数据,计算当前的车辆姿态、车道线信息、前车距离等,判断是否进入LKA车道线跟随模式。
这就需要运行一套跟随算法,通过算法控制转向系统的电机,让车辆沿着计算得到的虚拟中线行驶。
当然控制器有其他一些保障性的功能,如:标定、诊断等。这部分内容《【科普】整车控制器-软件篇》也介绍过了。
转向系统
转向系统在没有进入LKA状态的时候由驾驶员控制,电机起到转向助力,并向驾驶员提供路感反馈。
当进入LKA状态的时候,转向系统中的ECU会响应LAKS控制器的控制信号。对方向盘转角、转速的控制。
项目难点
接下来【思想】结合项目经历,分享下控制程序开发过程中遇到的难点:摄像头信号的评估、上位机工具开发、车道线跟随算法、判断进入条件、试验与调试。
摄像头信号的评估
摄像头通过CAN总线反馈数据,平常使用的CANOE这类通用的工具是远远满足不了需求的。这类工具只能看到数据,而对摄像头的评估需要对CAN数据进行一系列数学运算,重新进行绘制。
前面使用的手段比较原始,通过CANOE到导出解析后的数据,再用Matlab处理后重新进行绘图。这种方法的问题就是无法做到实时显示,无法在实际场景中直接评估摄像头反馈的车道线质量。
上面视频的左边就是【思想】为该项目开发的摄像头评估工具,使用C#开发,有兴趣了解C#的老铁可以看看前面的文章《汽车工程师眼中的C#》,右边是实时的视频信号,方便工程师进行评估。
上位机工具开发
与上面摄像头评估的问题类似,调试时候需要知道车辆姿态、预瞄点、车道线等之间的关系。下面是【思想】给该项目开发的上位机早期版本。
上位机工具主要是调试时需要能够看到不同标定参数下、不同程序版本下车道线与当前车辆姿态的实时关系。
另外还要实现参数的标定功能。
跟随算法
跟随算法是LKAS的核心,可以使用比较简单PID算法,也可以选择SMC、MPC这类型比较高端的算法。
很多人觉得仿真工作没啥用,其实在接触新的东西的时候,仿真能够帮助工程师迅速的建立知识体系的。第一次接触LKAS的工程师肯定对算法逻辑没信心,不知道控制效果如何。这里完全可以使用Carsim/TruckSim这两个软件来做前期的评估。
试验与调试
【思想】觉得调试环境才是这个项目的难点,特别是项目的中期,系统集成后开始进行调试的时候,需要找到一个相对安全的场地,这个要求就比较苛刻了。
上面就是【思想】刚开始调试的视频,可以看到道路状态十分不理想,还有对向的来车,其实非常危险!非常不推荐在这种场地进行调试!
后续【思想】会对以上介绍的某几个点展开比较深入的介绍,如果有你想听的也可以后台留言告诉我!
仿真技术【旁门左道】提取万有特性数据
动力经济性信息系统(2)
动力经济性信息系统(1)
CRUISE&CRUISE M傻傻分不清楚
换挡策略如何影响动力经济性
Amesim电动车仿真
Amesim与Simulink联合仿真演示
Amesim与Simulink联合仿真
增程式发动机仿真控制逻辑详解(二)
增程式发动机仿真控制逻辑详解(一)
增程式混合动力系统动力经济性仿真
工况路谱的采集与数据处理
路谱数据滤波工具
混合动力节油的秘密-发动机万有特性
AVL-CRUISE纯电动仿真策略提高教程
AVL-CRUISE纯电动模型仿真策略
燃料电池车(FCHEV)动力经济性建模与仿真
CRUISE与Isight联合仿真优化
CRUISE与Simulink联合仿真介绍
部分仿真软件对比介绍
控制技术行星排混动从入门到精通(控制)
行星排混动从入门到精通(结构)
Simulink迭代器及其代码生成
如何读取Motorola 编码
让【思想】头疼的Motorola编码
乾坤大挪移-位运算
大开脑洞——虚拟测功机
跟【思想】一起,在家里玩HIL(VCU仿真实例)
跟【思想】一起,在家里玩HIL(1)
体验整车控制器程序设计
永磁同步电机是什么?
【科普】整车控制器-软件篇
【科普】整车控制器-硬件篇
Simulink中浮点数的优化表示法
嵌入式C语言中CAN报文字节序问题的处理方法
嵌入式C语言环境下的CAN总线通讯协议
Simulink代码生成提高教程
S-Funciton应用实例
汽车工程师眼中的C#
Simulink代码生成应用教程
Sinmulink代码生成基础体验教程
CAN总线(J1939)速成指南【1】
自主技术DBC文件助手~三月累计更新
DBC文件助手-基础功能介绍2
DBC文件助手-基础功能介绍1
路谱数据滤波工具
Excel与DBC文件的互相转换
电机效率MAP生成工具
下面推荐【思想】自制AVL-CRUISE视频课程
CRUISE M视频教程
3元!!AVL-CRUISE入门教程
28元CRUISE提高教程
真诚邀请大家加入CRUISE/CRUISE M技术讨论群,一起研习!