前言
General 模块还剩Power Model、Manufacturing、Packaging、Mounting、SPI等,暂时不想写这些了,毕竟哪个ECU基本都包含这些Building Blocks,准备往后放放。既然是在搞ADAS/AD开发,先讲讲一些与ADAS/AD相关的算法和功能吧!
本文先讲讲一个常见的ADAS功能:LDW/LKA。这个功能实际上就是ADAS层面的车辆基本横向控制功能,输出转向扭矩,通过与EPS通信,让EPS控制转向执行器(转向电机)来进行车辆的横向控制。
在ADAS/AD控制器模块开发06 - 高精地图与自动驾驶中大致讲过LDW/LKA功能的基本实现方式。车道线检测算法会用专门一篇文章来介绍,本文主要介绍下基于MATLAB/Simulink开发的LDW/LKA model。
正文
一、Feature 架构
图1 LDW/LKA Feature 架构
二、输入信号
LDW/LKA功能有两种输入信号类型,一个来自整车CAN网络的车辆信号(Vehicle signals),一个来自底层检测算法的视觉信号(Vision signals)。
车辆信号一般需要经过转换,才能传入Feature中。原因在于,ADAS领域被Tier1霸占,相关Feature一般也是在国外开发完成的。因此,模型中的信号都是某个具体项目、具体车型的信号。拿到国内后,为了提高开发效率,并不会修改模型中的具体信号,而是创建一个Translator In模块和一个Translator out模块,将国内项目中不同的车型的CAN信号,转化为模型内对应的(信号名不完全相同)信号。举个例子,国内某个车型上的Yawrate信号来自于安全气囊控制器的ACU1 CAN消息中,名字叫做DynYawRate;但是模型中的对应Yawrate信号名字来自与国外某车型的IMU的imu_msg2 CAN消息中,且信号名字为imu_yawrate。那么在,translator In中,就将这两个信号