为什么自动驾驶公司的实验车大多都是MKZ?相信不少人都有这样的好奇。本文由我与在硅谷自动驾驶创业第一线工作的朋友合作完成,将为大家讲述这背后的技术原因,以及自动驾驶的车辆控制功能是如何实现的。
从约三年前开始,自动驾驶创业公司一个个如雨后春笋一般冒出来,硅谷的街上的也开始出现一辆辆头顶着激光雷达的测试车,对于这些初创公司来说,选择哪款车作为开发平台可能是公司发展要做的第一个重大决策了。
不少眼尖的人发现,其中相当一部分车使用的是林肯的MKZ。这倒并不是因为MKZ车更好,或是价格便宜(事实上也不便宜)。在这背后,主要是技术上的原因。
其实一个很重要的原因已经在这里说了(为什么百度和Google都用克莱斯勒作为无人驾驶展示车?)就是因为例如dataspeed这样的公司提供了底层车辆控制的解决方案,帮你改装一辆车,给你一套软件接口,然后你拿着USB线将车连着电脑,就能用键盘或者手柄玩起用真车的马里奥赛车了。
但这一套昂贵的价格让大家不由生出这样的思考——
dataspeed究竟是怎么做到的?如果一定要用别的车,该怎么去开发这一套底层的车辆控制系统呢?
概要
对于任何自动驾驶算法,最终的输出自然是控制车的行为,对于初创公司来说,没有能力和资源去重新设计车的控制系统,那么在现有的车辆平台上,也就需要一个能够模仿人类的控制器接口,那么最重要的也就是油门控制,刹车控制和转向控制,当然还有转向灯控制,变速箱控制,驻车制动控制等等,基本上人类的操作都需要能被一个控制器取代。
对于每个控制器而言,都有drive-by-wire,也就是线控的概念,简单的说,线控就是使用电子信号输入来控制车辆,而不依赖驾驶员的力或者扭矩的输入。而这正是实现自动驾驶的第一步,在很多自动驾驶公司包括dataspeed正是在不同的车辆平台上来开发实现线控系统并给上游软提供接口。
油门控制
在早期的汽车上,油门控制是通过拉索或者拉杆,一端联接油门踏板,另一端联接节气门连动板而工作,这样通过机械装置来控制节气门的方法有很大的局限性,因此很早就又了电子油门,油门踏板位置产生的电信号给ECU来进行发动机控制。而这样的电子油门控制一大使用场景就是定速巡航。
对于自动驾驶公司来说,油门控制通常有两大实现方法:
第一是简单粗暴直接控制油门踏板,通过电机以及拉索等装置实现,这样的方法就是完全模拟驾驶员的操作,好处是几乎适用于任何车(只要有地方装电机),但是弊端也很明显,因为自己外加的机械装置,可靠性和耐久性肯定达不到汽车工业的规范,往往还需要经常校准保证控制的精准。控制的响应速度和精度也要靠自己大量的测试。
第二种则是利用车辆本身的电子油门控制,在油门踏板和ECU之间接入一个自己的控制器,当自动驾驶软件启用的时候控制器会接受电脑的信号传输给ECU,而未启用的时候控制器仅仅作为一个继电器将油门踏板的电信号传输给ECU。
这种控制方式的精度和响应更好,直接利用了车自身的电子控制,也不需要额外的机械装置,可靠性更高,但是这需要逆向工程破解车辆的CAN网路信息,因此技术门槛比较高,而且不同车型的破解难度不同。
刹车控制
和油门控制一样,最“简单粗暴”的方法就是外接电机控制踏板,但是同样面临着可靠性低,控制精度差相应慢的特点。通过车辆自身的线控刹车来控制则是更优的方案,但是为了考虑刹车脚感的“线性”,很多车辆的刹车都是纯机械的结构,通过真空助力和液压装置来控制刹车,自身带线控刹车的车辆很少。如果没有车辆本身没有线控刹车系统,又不想通过控制踏板的方式来控制,那么在这种情况下,就有了很多针对车辆本身刹车系统的改造来实现线控刹车,例如图3所示是将普锐斯自带的线控刹车装置安装在kia soul上,在车辆本身的制动管路上安装了数个电磁阀门和额外的油缸,通电时通过控制电磁阀门来控制制动液压力。当断电的时候则相当于没有影响原车的制动系统。有兴趣的同学可以看一下他们的代码和详细讲解(https://github.com/PolySync/oscc/wiki/Hardware-Brake-(Petrol))
转向控制
对于传统的车辆来说,踏板控制只需要电机和拉索,而方向盘就没有那么简单了,在早期的自动驾驶开发中,有过通过装机械臂和电机来控制方向盘的设计,机械机构十分复杂,因此可靠性也相对会低一点(如图4)。
而近年来随着电子转向助力的普及,更常见的方法是将控制器接入助力的电机,通过给助力电机电信号的方法来直接控制方向盘。这样最大的好处就是不需要自己额外装电机,但是至于助力的电机的控制表现怎么样,就因车而异了。而近年来,越来越多的纯电子助力转向甚至线控转向出现在各种车型上,更过的公司选择逆向工程去利用车本身的转向控制系统来进行自动驾驶的开发。
不管对于哪一个元件的控制,如果不是利用车辆自身的线控系统,就意味着所有控制器的测试都要自己进行,在各种车况各种动态下保证控制的精准和快速,而者都是大部分软件公司不具备的实力,所以可以看到越来越多的OEM开始自动驾驶的研发,很大一部分就是给主机厂开发各种线控系统,并且能够将软件接口提供给各个软件开发的公司或者部门。
再次回到问题,为什么dataspeed要选择MKZ呢(而且必须是配有泊车辅助的MKZ)?
简而言之,正是因为配备了所有的线控模块,并且已经逆向工程破解一部分相关的CAN网络了。
来源:知乎 www.zhihu.com
作者:姚昌晟
【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载