在之前的技术分享中,传感器都是安装在汽车外或车内的。而这次要介绍的是汽车生来就具备的传感器信号,即从汽车控制单元(Vehicle Control Unit,简称VCU)中获取的信号。
VCU的另外一个名字是“行车电脑”,它通过CAN总线与汽车的发动机、变速器、油门踏板、制动踏板、车身控制器等各种电子设备通信,读取各个控制单元的工作状态,并在需要时对它们进行控制。如下图所示。
图片出处:http://www.hirain.com/sts/136
如果把汽车比做人,那么VCU就是人的大脑。这里记载了汽车底盘的状态(车速、油门踏板开度、制动踏板状态、方向盘转角等)、汽车车身的状态(车门状态、车窗状态、前照灯状态、转向灯状态等)以及发动机的状态(转速,输出扭矩、燃油消耗等)。
汽车的VCU作为上层算法和底盘控制的接口,不仅承担着控制汽车加减速、转向的工作,还承担着将底盘信息精确且及时传递到算法层的工作。接下来我会从VCU信号的类型和VCU信号的应用两方面进行讲解。
VCU信号的种类
百度Apollo 2.5中提供的VCU信息(ChassisDetail)如下:
https://github.com/ApolloAuto/apollo/blob/master/modules/canbus/proto/chassis_detail.proto
汽车类型 Type
从图中可以直接看出当前Apollo 2.5已经能够支持两种国内车型分别是奇瑞EQ和长安睿骋。
由于不同车型的动力系统、尺寸、功能配置都不尽相同,而且安装各种传感器的位置、角度也会存在差异,因此需要根据这个Type值向无人驾驶系统中导入不同的参数,这样才能保证计算的准确性。
基本信号 BasicInfo
基本信号包含的信息有当前的车辆驾驶状态、发动机状态、安全气囊状态、里程数、ACC按钮状态、LKA按钮状态、GPS信息。
个人认为在BasicInfo中最重要的信息是车辆驾驶状态和GPS信息。车辆驾驶状态是“汽车是否处于无人驾驶状态”的一个标志,由于汽车经常需要在有人驾驶和无人驾驶中进行切换,因此需要设置一个标志位来反映这种状态,这样汽车的VCU才能更正确地对油门、刹车这类影响安全的机构进行控制。GPS的信息与无人车的“定位”问题强相关,虽然自车的GPS信息有时候不太准,但并不能因此动摇了它在无人驾驶系统中的地位。
安全相关 Safety
与安全相关的数据包含车门、引擎盖,后备箱是否关闭,司机和乘客的安全带是否系上、四个轮胎的胎压是否正常、电池是否有电、车辆的驾驶模式。
值得一提的是车辆的驾驶模式。之前的BasicInfo中已经有了车辆驾驶状态,分为自动驾驶和人为驾驶。这里的驾驶模式还有一个中间状态,即半自动驾驶模式,即无人驾驶系统只控制方向盘或只控制油门和刹车踏板。比如自适应巡航(ACC)功能,就是一种半自动驾驶模式。半自动驾驶模式能够将汽车的横向控制(转弯、换道)和纵向控制(加速、减速)解耦,即单独地进行一个维度的调试,这样可以提升工程师的调试效率。
变速箱状态 Gear
变速箱状态直接影响车辆的行驶。例如车辆停车时,需要给变速箱置位P档的消息;当汽车泊车时,需要在D挡、R挡之间来回切换。
发动机管理系统 EMS
EMS用于查看当前发动机的状态,比如发动机的转速。
车辆电子稳定系统 ESP
用于查看和控制车辆电子稳定系统的状态。
油门踏板开度 GAS
通过控制油门踏板的开度,可以实现加减速。同时可以反馈无人驾驶状态下,测试员是否接管了油门踏板。
电子手刹 EPB
用于查看电子手刹的状态。一般会在控制车辆运动时,查看电子手刹是否释放。
制动踏板开度 Brake
用于查看和控制制动踏板的开度。反馈无人驾驶状态下,测试员是否接管了刹车踏板。
制动压力 Deceleration
用于查看当前制动器制动压力的大小。
汽车速度 VehicleSpd
汽车速度信号除了包含速度数值外,还包含当前汽车的行驶方向、四个轮胎的速度、偏航角的变化率(YawRate)等。
电动助力转向 EPS
电动助力转向信号包含了当前方向盘的转角、转角的变化率和驾驶员施加的扭矩。当处于无人驾驶状态时,控制器需要给EPS系统输入转动方向和转动角度。
信号灯 Light
描述车身上某些电器设备的信号,比如前大灯、左右转向灯、雨刮器的档位开关、喇叭开关。特斯拉就是通过读取拨杆(左右转向灯)状态获取驾驶员换道意图的。
电池状态 Battery
用于查看电池电量的百分比,燃油量信息。
周边环境状态 Surround
某些具备ADAS功能(如盲点辅助预警,偏离车道预警)的车型,会有将部分预警信息存于该信号中。安装在汽车车身上的超声波雷达的消息也存在该信号中。
以上列出了大部分汽车VCU所具有的信号。VCU的信号因车而异,越豪华的汽车,由于其具备的传感器越丰富,所能提供的VCU信号也将越丰富。
VCU信号的应用
无人驾驶中常用的VCU信号有如下几个:汽车车速、汽车方向盘转角、汽车航向角变化率、油门踏板开度、制动踏板开度等。
不同的场景,会对数据有不同的应用方式。这里主要介绍两大类应用方式:障碍物运动状态计算和航位推算。
障碍物运动状态计算
车载传感器(激光雷达、毫米波雷达、摄像机)检测的障碍物速度都是相对速度,因此需要结合自车车速才能确定障碍物的绝对速度,进而根据绝对速度确定障碍物的运动状态(静止、靠近、远离)。
以毫米波雷达的数据为例,在自车坐标系下自车的车速用蓝色的箭头和字母表示,障碍物位置和障碍物速度和速度在x方向与y方向的分量用绿色表示。
将自车车速v和障碍物速度在x方向上的分量进行叠加,即可得到障碍物在x方向上速度量的绝对值。如下图中黑色的Va所示。
接下来可以通过判断Va的大小和方向,进而得到当前的障碍物在实际的交通场景中的运动趋势。
航位推算
航位推算(Dead reckoning,简称DR)是指在丢失定位的情况下,使用自车传感器的信息,推测当前时刻,自车所在位置与上一时刻所在位置的相对关系。
在介绍航位推算时,先需要了解汽车的运动学模型。汽车的运动学模型一般是四轮模型,不过为了计算的方面,很多情况下,工程师会将四轮模型简化成两轮模型,即自行车模型。
借用CSDN博主AdamShan所绘制的自行车模型,如下图所示。
图片出处:https://blog.csdn.net/AdamShan/article/details/79083755
由图可见汽车的车轮转角为δf,但这并不意味着汽车的运动角度为δf。
分别做垂直于后轮和前轮的射线,这两根射线会交于O点,两轮模型会绕O点进行运动,在短时间dt内,可以认为O点不动。连接O点和汽车的质心成一条线段,实际汽车的运动方向v将垂直于该线段。运动方向ψ与车身方向所成的夹角β,这个角度一般称为偏航角。
基于先前的假设可以推到出β和δf的近似关系如下:
假设t时刻的汽车的状态为xt,yt,经过dt时间后的t+1时刻,状态为xt+1,yt+1,则他们之间的关系为:
根据以上理论即可在丢失定位信息后的短时间内,依靠自身的传感器信息,进行位置和位姿估计。
当然VCU信号不止以上两种应用,更多的应用会在后续传感器信号处理时介绍,请持续关注~
以上内容对汽车VCU的信号做了简单介绍。作为汽车与生俱来的传感器,好好使用这些信号不仅能极好的控制汽车,还能够通过车载信号灯与外界进行交互。
好了\(^o^)/~,这篇汽车VCU信号的分享就到这里啦。