如何实现无人驾驶汽车?
2020-10-09
来源:电子发烧友
“自动驾驶技术”是IT行业对汽车行业的一次主动跨界,所以你才会觉得“无人驾驶”的气质那么像IT,因为无论从技术还是媒体宣传,几乎都是按照IT界的玩法来的,特点就是新闻多、玩概念的也比较多、风口比较多,可能成功,当然,也可能过两年就黄了……
IT行业试图将汽车行业统领在自己的大数据、云计算、互联网……概念之下,但是,由于汽车事关人命,汽车产业和国民经济关系巨大,所以,互联网的这种玩法,势必也会遭到汽车安全领域现有规则的质疑和抵触,至于结果如何,我们还是拭目以待吧!
无人驾驶的基本原理非常简单,当前技术水平下,它的正式名称等同于“先进驾驶辅助系统”(AdvancedDriverAssistantSystem),小名ADAS。
ADAS系统包含信息采集设备和ADAS控制器,信息采集设备主要是各种摄像头、超声波雷达、激光雷达等一堆东西,ADAS控制器就是一个控制器,负责处理这些摄像头、雷达信号,并对车辆发送“转弯”、“加速”、“停车”之类的控制命令。
说着简单,但是做起来还是有很大工作量的。
接下来,我们直奔主题,我们看看,搞一个无人驾驶汽车,车企和ADAS供应商分别需要做什么。
对于车企而言,显而易见,需要开放车辆的控制接口,把之前由驾驶员进行的各种操作,比如踩踏板、打方向盘、踩刹车、打转向灯等动作,转换成由ADAS控制器来发命令,去控制。
一般而言,车企需要和无人驾驶供应商对接好CAN协议,并对人工操作的机械运动部件进行一些必要的修改,比如给踏板增加一个伺服电机,让它根据ADAS控制器的命令来控制踏板踩下一定的深度。
对于ADAS供应商而言,说实话,需要做的工作比较多。总体而言,供应商需要开发ADAS控制器的算法,对采集到的多种传感器信号进行正确的处理,并控制车辆作出合适的动作。
接下来,我们来重点讨论一下,ADAS的HIL测试,应该怎么做?
谈到这个问题,车企的朋友们难免会忧桑,因为这种技术集中度非常高的、深度大、广度小的产品系统,测试工作事实上主要是由供应商来做的,车企很少有能力做,而且即使做了,自己也不是很有信心,还是要依据供应商说的来。
坊间流传着一个段子,说某个车企,打听到了博世ESP部门用的是ETAS的HIL做测试(其实这个根本不用打听,猜都能猜得到,同属于一个集团的嘛),然后兴冲冲地买了一套ETAS的HIL设备,准备等ESP系统到货之后,做一下ESP系统的HIL测试。结果博世ESP部门说,“我们都做好了,你们做啥做?不用做!”“你们想做你们就自己做,但是我们不会提供任何支持!”,然后这个车企就傻眼了,买来的HIL就成为摆设了。
可能博世ESP部门觉得车企做ESP系统的HIL意义不大,还浪费时间~
对于ADAS系统而言,大多数车企的处境相比ESP的例子,好不到哪里去~
ADAS控制器的算法是其核心,这是一个需要经过千锤百炼、不断优化、大量测试之后,才敢上车的控制器软件。车企所做的ADAS测试,覆盖率太低,也很难找到连供应商都还没有发现的bug。而且,ADAS的这些算法源码,车企一般是拿不到的,所以由车企去优化代码也有一定的操作困难。因此,倒不如好好对接、配合供应商,借助于实力较强的供应商的N多项目经验、技术积累,确保ADAS系统成熟可靠!
当然,这个做法不适用于部分决心在ADAS控制算法领域有所建树的企业,因为这样的企业理想远大,并且投入了大量的财力人力去自主开发ADAS算法。不仅要超越竞争对手车企,而且还要超越竞争对手车企的供应商,从而彻底拉开差距,让对手再也没有机会。但是这样的企业好像不多,大家可以留言,看看国内有多少这样的企业,自主开发ADAS算法并用到量产车上的。
我们再看看,ADAS系统HIL测试领域的几个模式。
第一个模式,高校科学研究,或者企业样板工程,主要供实验室演示使用,或者写论文做研究,基本不具备实车应用价值,我们称其为“王子”。
这种ADASHIL测试,其最重要的特点是,它不需要实车录制的视频文件,它的“场景”,是由一个叫“场景软件”的东西生成的。如果您不太理解场景软件的用处,那您想象一下考驾照时候用过的驾驶模拟软件,你在屏幕上所能看到的,就是“场景”,这个软件,就可以称作一个“场景软件”。
场景软件把生成的“场景”,转化成视频,然后,通过视频注入板卡,把视频发送给ADAS控制器。ADAS控制器对其进行处理之后,会把对车辆的“转弯”、“加速”之类的命令通过CAN总线发给场景软件PC,场景软件控制汽车在场景中实现“转弯”、“加速”等动作,就可以实现“基于场景软件的ADAS无人驾驶”了。
这是一个几乎不具备商用价值的ADAS测试方案,因为它的信息来源就不是真实的驾驶环境,而是由“场景软件”生成的。视频图像质量非常理想化,没有雪花毛刺,没有雾霭蒙蒙、电闪雷鸣,没有行人突然闯红灯,也没有宝马车灯突然亮起,甚至整个赛道都没有别的车辆……
这样一个ADAS测试方案,主要应用领域还是高校理论研究,这种理论研究的目的本来就不是为了商用,而是为了在某一技术点上,取得研究突破,发现新方法、新理论,为产业界、工程界提供理论支持。
当然,企业也有可能使用这种ADAS测试方案,但目的主要是为了样板工程建设、演示,对实际车辆开发没有多大用处。
第二个模式,商业应用的ADAS测试。其最大的特点是,抛弃了“场景软件”,改用实车录制的视频图像数据(以及雷达、超声波传感器信号等等),相对辛苦一些,我们称其为“草民”。
此种模式下,ADAS测试方法也有多种,简单地说,比如学习、训练;复杂了说,比如人工标记。
所谓“学习、训练”,就是由人工开车,车上装一些摄像头,跑个几百几千公里,然后把录像拿回实验室,让ADAS控制器去学习。ADAS控制器学习的终极目标,就是能跑出和人工驾驶同样的轨迹,其方法就是识别视频里面的各类物理,对ADAS控制器内部的大量参数进行不断地迭代、优化,从而最终实现“仿生”驾驶,使ADAS控制器“计算”出来的轨迹,和视频中的真实轨迹相一致。
所谓人工标记,是一个更加细致的测试阶段,主要做法就是,对视频进行人工标记,由工程师先代替ADAS控制器,查看视频,并对需要处理的对策进行期望值标记。说白了,就是,一个合格的驾驶员,人工开车的时候,看到这样的视野场景,应该怎么反应,是加速还是减速,是转向还是刹车还是鸣笛,标记下来。把人应该有的正确操作,标记在视频的时间轴上,当然,这些“操作”,在无人驾驶模式下往往以“信号变量”的形式出现。然后,我们就通过视频回放设备,把视频输入给ADAS控制器,然后在同一个时间坐标系下,核对ADAS控制器的反应是不是正常的(普遍使用自动化测试的方式),各个信号变量的值,对不对,从而为算法的进一步优化提供依据。
几乎全部的ADAS供应商,都是采用这种“视频回放”的ADAS的测试方案,毕竟,软件算法是要上车商用的,虽不需要高深理论,但是要求工程上成熟可靠,搞一些场景软件来测试,可不行。
在这个领域,全球最优秀的选手叫英伟达(NVIDIA),没错,就是你电脑上显卡的供应商,而且创始人还是个华人。英伟达这个公司几乎包揽了全世界图形图像处理领域所有的最先进技术,在无人驾驶领域更是当之无愧的王者,百度、华为、特斯拉什么的,在这个领域全是它的小弟。
摄像头和ADAS控制器之间,传输视频所使用的协议类型一般为LVDS(lowvoltagediffersignal),比如GMSL、FPDLink、APIX等协议。在摄像头端,通过serializer模块,把YUV、RBG等数据转换成APIX协议数据,到了ADAS控制器端,通过deserializer模块,把APIX协议数据还原,给ADAS控制器进行处理。
我们在做ADAS控制器的测试的时候,就可以通过这样的模块(视频回放板卡),把视频文件转化成LVDS协议信号,发给ADAS控制器,用于训练ADAS控制器,或者用于对ADAS的控制信号进行比对(对于车企而言,虽然做ADAS无人驾驶测试,比不上ADAS供应商,但是,也是值得去尝试的,有利于车企建立这方面的能力)。
当然,这种LVDS协议信号仿真模块,其意义不仅仅是针对ADAS测试,它对车载多媒体模块、仪表、中控等各种需要传输图像、视频的模块,都非常有用,它既可以仿真信号源,也可以仿真信号接收处理模块,可以协助工程师在缺少对端模块的情况下,通过仿真来完成对自身模块的测试。
按照我们对HIL本质的理解,HIL是一个虚实结合的系统,在缺少“周围件”的情况下,通过板卡或设备模拟出“周围件”,形成一个有机的交互体,都应该称作HIL。我们通常概念中针对发动机控制器ECU、VCU、BMS的HIL,只是HIL针对多管脚单片机控制器的一类应用而已。