打造一辆无人驾驶车,软件只是成功的一半。即使软件已经达到完美,也仍然需要至少一年时间才能将软件与硬件完全融合在一起。
软件与硬件之间最重要的连接桥梁就是传感器。通过激光雷达、摄像头、毫米波雷达等传感器,才能将数据传给软件,做出相应的驾驶决策。因此,传感器的规格、位置、角度等等各种参数,都需要一步步调试。
调试好了一辆车上的传感器,还要保证可以将其顺利复制到车队里的其他车上。即使已经调试好了多辆车,一旦车的型号发生变化,或是车体的设计发生变化,就又需要重新调试。过程十分复杂。
传感器安装好之后,要通过逐步的测试得出来的结果来验证调试效果。例如,关于定位(localization)的各项指标要证明传感器调试的效果足够精准,各个传感器的数据传输时间不能有过长的延迟。
一辆按比例缩小的测试车与一个测试床(testbed)相连
除了传感器,硬件团队还需要为无人车的大脑提供必需的空间,即高效的GPU(图像处理器),不断优化计算能力(compute),收集到的数据才能被快速分析出结果。
硬件团队还需要提供电子控制器单元(ECU),才能探测到车在每时每刻的状态,让无人车听从大脑的指令,做出正确的驾驶行为。如今,一辆普通人类驾驶车上可能有上百个ECU,无人车需要的则更多。因此,如何在有限的空间里容纳更多的ECU,就变得至关重要。
ECU也是无人车做好车内体验的关键。车内的每一个功能都需要ECU的支持,比如车内屏幕、车锁、安全带、安全气囊,等等。比如,乘客只有坐下来,安全带和安全气囊才有效。ECU所扮演的角色就好像软件与硬件之间的翻译官。
硬件准备好了之后,就要把代码导入到车里。最原始的办法就是在工程师的电脑与车上的主机之间连一条线,把代码慢慢传上去。相对成熟的团队会把代码放在云里,然后让一名工程师在发车之前,通过几个命令行把代码传给这辆车。
比较有规模的团队则会在车上安装云端数据处理器,无需工程师帮助,车队里的每辆车会每天自动下载最新的代码,车的后备箱里也不再配置笨重的主机。这就像手机系统更新一样,更新系统时不用去手机商店,手机会自动更新。
硬件的设计、组装、验证过程复杂而漫长,需要与软件团队紧密合作。而问题是,在很多团队里,因为软件工程师的背景往往与硬件工程师的背景完全不同,之间的需求沟通不够明确,所以在合作时经常发生摩擦。软件工程师往往看重结果,讲求速度,而硬件工程师则注重过程,讲求严谨。团队的管理者要从大局出发,让两个团队互相了解彼此的需求,才能更快达成共识。
全部0条评论
快来发表一下你的评论吧 !