分享

一个自动驾驶工程师眼中的自动驾驶

 taotao_2016 2019-02-11

编者按:本文是百度Apollo一名自动驾驶工程师对自动驾驶的一篇见解文章。文章先讲解了自动驾驶的发展意义;然后从我在那儿?周围有什么?接下来会发生什么?我该怎么做?等方面展开讲解自动驾驶技术;最后以极客邦和百度Apollo联合发布的自动驾驶工程师技能图为例,说明了如何帮助非专业自动驾驶领域的工程师转行和进入该领域。


未来的出行生活


2018年12月5日,Google旗下的Waymo推出自动驾驶首个用于服务乘客的商业叫车服务——Waymo One,该服务在美国凤凰城及其钱德勒、坦佩、梅萨和吉尔伯特4个郊区24小时运行。乘客只需通过APP呼叫无人车,选定上下车地点,然后通过自动驾驶系统就可以方便地前往任何地方。车上没有驾驶员,只有一块HMI(人机交互界面)来告知乘客目前车辆的状态、周围情况以及后续路线。



从Google的自动驾驶项目开始再到如今的Waymo,其自动驾驶技术在10年间取得了不小进步。Waymo测试车累计公路行驶距离已达1000万英里,遍及美国25个城市,还有着100亿英里的模拟行驶数据。而这些驾驶数据配合人工智能技术将无人驾驶带到了我们身边。


同样,在北京的海淀公园18年也被改造成了全球首个AI公园,11月1号正式对外开放。在这整个智能化公园中,最引人瞩目的就是阿波龙自动驾驶小巴。这款迷你小巴每辆可搭载6-7人,没有驾驶座也没有方向盘,等乘客落座系好安全带,阿波龙就会自动关上车门妥妥地起步。在行驶过程中,拐弯和掉头之前会主动降速,遇到前方有行人或障碍物,也会主动减速避让或者停车。



这些都是人类见证历史的伟大时刻,也是迈向未来生活的开始,标志着一个新的时代正在悄然来临。


普通汽车终将退出历史舞台,可能就在不久的将来,汽车即将成为我们可以放心托付自己生命的第一代自主式机器人。在历经了数十年不断失败的尝试后,借助速度更快的电脑、更可靠的传感器技术以及基于深度学习的新一代人工智能软件,汽车可以获得与人类相似的能力,在无法预测的环境中自主安全地驾驶。


为什么我们需要关注自动驾驶?不仅仅是因为这项具有伟大影响力的技术能够替代司机提升交通出行的效率和安全性;更重要的是自动驾驶会改变人类的生活方式,让人们重新享受出行的乐趣。


当前,我们的汽车是非智能的,其标准的四个轮子、一个机身和一个发动机的配置近100年来没有了本质性的改进,而世界上其它产业的根基你都发生着根本性的变化。而得益于机器人技术和人工智能技术在近期取得的成就,平凡普通的汽车也即将进化成自动化移动机器人。目前,汽车的便利在一个世纪中不断给我们带来了自由、快捷,同时也带了新的工作机会和社交机会。商业贸易也因此变得前所未有的方便。


但是,在获得移动便捷性的同时人们也付出了极高的代价。每年全球交通事故死伤人数近100万,中国每年伤亡20万人左右;人类驾驶的汽车也带了城市的交通拥堵和空气恶化。粗略估计,全球有十亿由人类驾驶的汽车在陆地上漫游,对汽车的依赖已经不可能减少,只会越来越多,汽车是我们现代生活不可缺少的一部分。


事实上,解决汽车引发系列问题最好的方式就是让它们变得智能。当AI接管人类驾驶员时,无人汽车将给世界数十亿人提供一种更安全、更简洁甚至是更方便的出行模式。在理想的未来,我们的街道和高速路上会充满成群的、分布紧密的无人驾驶汽车,想鱼群一样,这些无人驾驶汽车会展现出惊人的防冲撞能力,在充满行人的街道上机智而快速地穿行,在漫长而空旷的高速路上以最经济的消耗方式灵活停靠。有些车会携带一辆名乘客,有些车完全没有乘客,因为它们可能要去接送外卖或快递。而坐在车里的人们,也讲有完全自由时间和私密的空间进行任何事情,比如购物、看电影和孩子享受亲子时光。


自动驾驶技术


自动驾驶技术从人们开始尝试到现在其实已经经历了近50年的历史,从上世纪70年代就有国外机构和大学开始研究自动驾驶技术。


美国国防高级研究计划署(DARPA)在1984年研制出自主地面陆军战车项目,可以说是真正自动驾驶技术的开端。当时的技术还比较落后,只能通过固定规划路线在动态障碍物的情况下达到目的地。到了2004年,DARPA接连举办了3届无人驾驶挑战赛,可以说真正拉开了现代自动驾驶的序幕,其中CMU(卡内基梅隆大学)、MIT(麻省理工学院)、Stanford(斯坦福大学)等著名高校接连着力研发自动驾驶技术,将自动驾驶的发展推向高潮。


而产业界,最早在2009年Google成立X事业部开始了自动驾驶技术的研发,紧接着科技公司、传统车企都纷纷加入自动驾驶这场技术竞赛中,不甘落后。中国当然也是其中重要的一员,无数技术精英、专家回国参与自动驾驶研发,百度、华为、腾讯、阿里等大公司花重金投入其中,每年招揽大批人才,高校的生源供不应求,薪资也水涨船高。


2013年,美国机动工程师协会(SAE)给出了车辆自动化的标准,分别是L0~L5。不同的Level所实现的自动驾驶能力时逐层增加的。对应的中文翻译可以参见表格:



目前,自动驾驶技术发展中,科技类公司主要寻求从L4级别自动驾驶入手,一步将智能化完成到一个非常高的程度;而大部分传统车企目前主要是从L3级别入手,从高级辅助驾驶开始逐渐往全自动方向渗透。这两种发展思路也是充分提现了目前各自的优势,但大家的终极目标都是希望实现L5的全自动驾驶状态。


下面,我们以Google的无人车为例,简单介绍L4级别自动驾驶技术是如何构成的。Google时最早开始研发自动驾驶的公司,拥有最丰富的技术积累和最强的研发人员。但是无人驾驶系统的复杂性是远超人们想象的,经过近10年的研究,目前也仅仅是试验性的推出了无人驾驶体验服务。无人驾驶系统主要由三部分组成:算法端、车端和云端。其中算法端包括传感器、感知和决策等智能关键步骤的算法;车端包括机器人操作系统、各种计算硬件和车辆底盘硬件等;云端包括数据挖掘、仿真模拟、高精地图以及深度学习训练等等。



通过这一套系统我们能够解决无人车的四个关键问题:我在哪?我周围有什么?接下来会发生什么?我应该怎么做?


我在哪?



定位问题是无人车首先要解决的问题,只有明白自身的位置才能最优的开往目的地。定位需要依靠一种称为高精地图的技术,该技术会将无人车要走的所有静态环境进行描述,包括车道线、行人斑马线、标志牌等等。这些静态信息可以提供交通信号的关键信息,也会作为定位方案的锚定物对自身的位置进行校准,比如通过摄像头看到距离左边标志牌的距离是2.5m,那么在地图中知道了标志牌的坐标也就知道了自身车辆的坐标。同时,还会依靠GPS/IMU等全局设备来定位自身位置,不过这可比我们目前智能手机里的GPS精度要求高很多,通过差分融合技术可以达到厘米级精度。


我周围有什么?



有了定位后,无人车的感知系统将通过传感器和人工智能算法将周围的障碍物位置、大小、状态、类别等标识出来。目前主流L4级别的传感器包括GPS/IMU、LIDAR、Camera、Radar等,LIDAR、Camera和Radar都是用于感知周围障碍物的主要传感器,分别在不同环境下能够有不同的优势。这些信息犹如人类驾驶员的眼睛一样看到周围动态环境物体,并将其识别出来,而无人车会利用自己多传感器和计算效率达到远超人类的水平,比如精准识别车辆后方任何物体、同时关注左右两边的车辆状态,在黑暗状态时可以通过激光雷达精准识别。


接下来会发生什么?



无人车知道周围动态物体后,还需要能够尽可能的预测这些物体的走向,包括行为预测和速度预测。例如这个车是要左转还是直行,这辆车会不会闯红灯等等,汇入车流时速度是多少。这些问题都将决定我们无人车后续应该怎么走,如何避免碰撞发生危险。当然由于人的主观意志具有很多不确定性,在人类司机和自动驾驶司机混合的道路上,人工智能程序还需要学习人类的行为习惯和约定俗成的礼让方式,这些都大大增加了无人车的难度。


我应该怎么做?



最后一步就是根据上述信息综合来选择一条最适合无人车的道路,如同人类的大脑一样对车辆最终的行为负责,选择最合适的方式达到目的地。这需要考虑行车的体感、安全和快捷等因素,通过最优化算法、搜索算法、蒙特卡洛树采样等多种算法来得到未来的驾驶行为,也有通过模仿优秀老司机的驾驶行为等方式来提升驾驶性能等等。


上述四个问题表面上仅仅是车辆端的问题,但是其背后的技术栈是异常庞大复杂的,这些人工智能技术会用到云端的仿真系统、模型训练系统等等。要做好其中任何步骤都是学术界长期以来不断积累而得,也是需要工程能力非常强大的工程师才能实现的高效算法。无人驾驶作为人工智能的一个重大应用方向,不是某一项单一的技术可以实现的,它是一个目前人类技术巅峰的一个整合创新。需要有算法上的创新、系统上的融合以及云平台的支持。那如此复杂的技术我们应该如何入门,如何进入这个领域?


如何入门自动驾驶?


自动驾驶技术的发展目前最大的瓶颈不是传感器的昂贵、不是产业发展不完善更不是公司投入不足,而是研发人才的缺乏。目前我国汽车从业人员达到360万,但其中技术人才不到50万,占比不到15%。这其中虽然很难明确界定自动驾驶人才有多少,但是可以想见肯定不多。而且从自动驾驶专业人才年薪动辄几百万上千万,就可以知道人才有多紧缺。


我们需要更多的工程师和科学家进入这一领域,将现有的技术进行整合落地。但是如何帮助开发者们进入这一新兴领域成了业界非常关注的事情,我们就以极客邦和百度Apollo联合发布的自动驾驶工程师技能图为例,来说明如何帮助非专业自动驾驶领域的工程转行和进入该领域。先来看看这一份技能图谱:



一个新的技术领域往往建立在当前成熟技术的基础之上,而自动驾驶需要的技能种类繁多,我们需要首先全面了解整体技术,再选择感兴趣的方向进行深入挖掘。从这份技能图谱可以看到包括两大主要模块,首先是基础层,就是Apollo开发会用到的共性的语言和编程方式;其次是自动驾驶技术层,既包括感知、决策规划、智能控制、End-to-End等自动驾驶核心能力,也包括硬件,比如GPS、雷达、传感器、车辆相关的知识和技能。


作为一个非自动驾驶专业的同学,根据这份技能图谱可以很好的完善自己的技能栈,刚入门能够做一个全面的了解是非常好的选择,对以后职业发展会有很大的帮助,而不是专攻自己的领域,这样容易在前沿探索时出现路线偏移的情况。另外,从目前的人才分布来看,自动驾驶方向还需要培养更多的全栈工程师来总揽全局,推动行业进步。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多