全面解读自动驾驶的关键组成部分
https://www.toutiao.com/a6702210202118128136/
本文简要而全面地概述了自动驾驶汽车(自动驾驶系统)的关键组成部分,包括自动驾驶水平、自动驾驶汽车传感器、自动驾驶汽车软件、开源数据集、行业领导者、自动驾驶汽车应用程序和正在面临的挑战。
引言
在过去的十年里,在自动驾驶领域发表了许多研究论文。然而,它们大多只关注特定的技术领域,如视觉环境感知、车辆控制等。此外,由于自动驾驶汽车技术的快速发展,这样的文章很快就过时了。
在过去的十年中,随着自动驾驶系统技术在世界范围内的一系列突破,自动驾驶汽车(自动驾驶系统)商业化的竞争比以往任何时候都更加激烈。例如,2016年,Waymo在亚利桑那州推出了自己的自动驾驶出租车服务,吸引了广泛的关注。此外,Waymo花了大约9年的时间开发和改进其自动驾驶系统,使用各种先进的工程技术,如机器学习和计算机视觉。这些前沿技术极大地帮助他们的无人驾驶汽车更好地理解世界,在正确的时间采取正确的行动。
由于自动驾驶技术的发展,近十年来发表了许多科学论文,其引用量呈指数增长,如图1所示。我们可以清楚地看到,自2010年以来,每年的发表量和被引用量都在逐渐增加,并在去年达到了巅峰。
图1 在过去的十年中,自主驾驶研究的出版物和引文的数量
一、自动驾驶系统
自动驾驶系统使汽车能够在没有人类驾驶员干预的真实环境中运行。每个自动驾驶系统由两个主要组件组成:硬件(汽车传感器和硬件控制器,即、油门、刹车、车轮等)及软件(功能组)。
软件方面,已在多个不同的软件架构中建模,如Stanley (Grand Challenge)、Junior (Urban Challenge)、Boss (Urban Challenge)和同济自动驾驶系统。Stanley软件架构包括四个模块:传感器接口、感知、规划和控制以及用户界面。Junior软件体系结构由传感器接口、感知、导航(规划与控制)、线控驱动接口(用户接口和车辆接口)和全局服务五个部分组成。Boss采用三层架构:任务、行为和运动规划。同济自动驾驶系统将软件架构划分为:感知、决策和规划、控制和底盘。本文将软件架构划分为感知、定位与映射、预测、规划与控制五个模块,如图2所示,图2与同济自动驾驶系统软件架构非常相似。
图2 自动驾驶系统软件构架
自动驾驶等级划分
根据汽车工程师协会(SAE international),自动驾驶可以分为六个等级,如表1所示。人类驾驶员负责0-2级自动驾驶系统的驾驶环境监测(DEM)。从第4级开始,人类驾驶员不再负责动态驾驶任务回传(DDTF)。目前,最先进的自动驾驶系统主要在2级和3级。业内人士普遍认为,要达到更高等级的自动驾驶水平可能还需要很长一段时间。
表1
传感器 安装在自动驾驶系统上的传感器通常用于感知环境。选择每个传感器是为了权衡采样率、视场(FoV)、精度、范围、成本和整个系统复杂度。最常用的传感器有无源传感器(如摄像头)、有源传感器(如激光雷达、雷达和超声波收发器)和其他传感器类型,如全球定位系统(GPS)、惯性测量单元(IMU)。
摄像头 通过收集反射到三维环境对象上的光来捕捉二维图像。图像质量通常取决于环境条件,即不同的天气条件,不同的光照环境,都会对图像质量产生不同的影响。计算机视觉和机器学习算法通常用于从捕获的图像/视频中提取有用的信息。
激光雷达 利用脉冲激光照射目标,通过分析反射脉冲,测量到目标的距离。由于激光雷达具有较高的三维几何精度,通常用于制作高分辨率的世界地图。激光雷达通常安装在车辆的不同部位以实现不同的作用,如顶部、侧面和前部。
雷达 通过发射电磁波并对反射波进行分析,可以准确地测量出目标的距离和径向速度。雷达特别擅长检测金属物体,当然雷达也可以检测非金属物体,比如在短距离内检测行人和树木。雷达已经在汽车工业应用多年,催生了ADAS功能,如自动紧急制动,自适应巡航控制等。
与雷达类似, 超声波传感器 通过测量发射超声波信号到接收回波之间的时间来计算到目标的距离,超声波传感器通常用于自动驾驶汽车的定位和导航。
GPS 是美国政府的一种基于卫星的无线电导航系统,可以为自动驾驶系统提供时间和地理位置信息。然而,GPS信号很容易被建筑物和山脉等障碍物阻挡,例如所谓的城市峡谷,GPS在此类区域往往表现不佳。因此,惯性测量单元(IMUs)通常被集成到GPS设备中,以确保自动驾驶汽车在"城市峡谷"等地的定位。
硬件控制器
自动驾驶汽车硬件控制器包括转矩转向电机、电子制动助力器、电子节流阀、变速杆和驻车制动。车辆的状态,如车轮速度和转向角,可自动感知,并通过控制器区域网络(CAN)总线发送到计算机系统。这使得人类驾驶员或自动驾驶系统能够控制油门、刹车和方向盘。
二、自动驾驶软件
感知:感知模块 分析原始传感器数据,输出自动驾驶汽车所处于的环境理解。这个过程类似于人类的视觉认知。感知模块主要包括对象(自由空间、车道、车辆、行人、道路损坏等)检测与跟踪、三维世界重建(利用运动结构、立体视觉等)等。 最先进的感知技术可以分为两大类:基于计算机视觉和基于机器学习。 前者一般通过显式射影几何模型来解决视觉感知问题,并使用最优化方法寻找最佳解。基于机器学习的技术通过使用数据驱动的分类/回归模型(如卷积神经网络)来学习给定感知问题的最佳解决方案。SegNet和UNet在语义图像分割和对象分类方面取得优秀的成绩。这种神经网络具有极高的易用性,可以很容易地用于其他类似的感知任务,如迁移学习。多传感器信息融合的感知可以产生更好的理解结果。
定位和地图: 利用传感器数据和感知输出,本地化映射模块不仅可以估计自动驾驶汽车位置,还可以构建和更新三维世界地图。自从同步定位和地图(SLAM)的概念在1986年引入以来,就得到了业内人士的普遍关注。最先进的SLAM系统通常分为基于过滤器的SLAM和基于优化的SLAM。基于过滤的SLAM系统是由贝叶斯滤波得到的,通常通过增量集成传感器数据,迭代估计自动驾驶汽车姿态并更新三维环境地图。最常用的滤波器有扩展卡尔曼滤波器(EKF)、无迹卡尔曼滤波器(UKF)、信息滤波器(IF)和粒子滤波器(PF)。另一方面,基于优化的SLAM方法首先通过寻找新观测值与地图之间的对应关系来识别问题约束。然后,计算和改进自动驾驶汽车的姿势,并更新3D地图。基于优化的SLAM方法可以分为两个主要分支:Bundle Adjustment (BA)和graph SLAM。前者利用高斯-牛顿法、梯度下降等优化技术,通过最小化误差函数,联合优化三维地图和摄像头姿态。后者将定位问题建模为一个图形表示问题,并通过寻找不同车辆姿态的误差函数来求解。
预测: 预测模块分析其他交通代理的运动模式,预测自动驾驶汽车未来的运动轨迹,使自动驾驶汽车能够做出合适的导航决策。目前的预测方法主要分为两大类:基于模型的预测方法和基于数据驱动的预测方法。前者根据基本的物理系统运动学和动力学,通过传播其运动状态(位置、速度和加速度)来计算自动驾驶汽车未来的运动。例如,奔驰的运动预测组件使用地图信息作为约束来计算自动驾驶汽车的下一个位置。卡尔曼滤波在短期预测方面表现良好,但在长期预测方面表现不佳,因为它忽略了周围的环境,比如道路和交通规则。在此基础上,建立了基于引力和斥力的行人运动预测模型。近年来,随着人工智能和高性能计算的发展,许多数据处理技术,如隐马尔可夫模型(HMM)、贝叶斯网络(BNs)和高斯过程(GP)回归,用来预测自动驾驶汽车状态。近年来,研究人员利用逆强化学习(IRL)对环境进行建模,比如,采用逆最优控制方法对行人路径进行预测。
规划: 规划模块根据感知、定位、映射以及预测信息确定可能的安全自动驾驶汽车导航路径。规划任务主要分为路径规划、机动规划和轨迹规划。路径是自动驾驶汽车应该遵循的几何路径点列表,以便在不与障碍物碰撞的情况下到达目的地。最常用的路径规划技术有:Dijkstra、动态规划、A*、状态格等。机动规划是一个高层次的自动驾驶汽车运动表征过程,因为它同时考虑了交通规则和其他自动驾驶汽车状态。在找到最佳路径和机动规划后,必须生成满足运动模型和状态约束的轨迹,这样才能保证交通的安全性和舒适性。
控制: 控制模块根据预测的轨迹和估计的车辆状态向油门、刹车或转向扭矩发送适当的命令。控制模块使汽车尽可能接近计划的轨迹。控制器参数可以通过最小化理想状态和观测状态之间的误差函数(偏差)来估计。比例积分导数(PID)控制、线性二次调节器(LQR)控制和模型预测控制(MPC)是最常用的最小化误差函数的方法。PID控制器是一种利用比例项、积分项和导数项使误差函数最小的控制回路反馈机构。当系统动力学用一组线性微分方程表示,成本用二次函数表示时,利用LQR控制器使误差函数最小化。MPC是一种基于动态过程模型的先进过程控制技术。这三种控制器各有优缺点。自动驾驶汽车控制模块一般采用上述方法的混合模式。例如,初级自动驾驶汽车使用MPC和PID来完成一些低级反馈控制任务,例如应用变矩器来实现所需的车轮转角。百度Apollo采用了这三种控制器的混合的模式:PID用于前馈控制、LQR控制轮角、MPC对PID和LQR控制器参数进行优化。
三、开源数据集
在过去的十年中,已经公布了很多开源数据集,这为自动驾驶研究做出了巨大贡献。小编搜集了几种使用最多的数据集,并简要说明各种数据集的用途。Cityscapes包含一个大规模的数据集,可以用于像素级和实例级的语义图像分割。ApolloScape可用于各种自动驾驶汽车感知任务,如场景解析、汽车实例理解、车道分割、自定位、轨迹估计以及目标检测和跟踪。此外,KITTI提供了用于立体和流量估计、目标检测和跟踪、道路分割、里程估计和语义图像分割的可视化数据集。6D-vision使用立体摄像机感知三维环境,提供立体、光流和语义图像分割的数据集。
四、行业领导者
最近,投资者开始把钱投向自动驾驶系统商业化竞赛潜力股。自2016年以来,特斯拉的估值一直在飙升。这使得承销商推测,该公司将在几年内产生一支自动驾驶车队。此外,自2017年报道通用汽车计划制造无人驾驶汽车以来,该公司股价已经上涨了20%。截止2018年7月,Waymo已经在美国对其自动驾驶汽车进行了800万英里的测试。在2018年度,通用汽车和Waymo事故最少:通用汽车在212公里以上发生了22次碰撞,而Waymo在563公里以上只发生了3次碰撞。除了行业巨头,世界一流大学也加快了自主驾驶的发展。这些大学都很好地开展了产学研相结合的模式。这使高校更好地为企业、经济和社会做出贡献。
应用场景:自动驾驶技术可以应用于任何类型的车辆,如出租车、长途汽车、旅游巴士、货车等。这些交通工具不仅可以使人们从劳动密集型和单调乏味的工作中解脱出来,而且可以确保他们的安全。例如,配备自动驾驶技术的道路质量评估车辆可以修复检测到的道路损伤。此外,使用自动驾驶技术,道路参与者可以相互沟通,公共交通将更加高效和安全。
五、现存挑战
尽管自动驾驶技术在过去的十年中发展迅速,但仍然存在许多挑战。例如,感知模块在恶劣的天气和/或光照条件下或在复杂的城市环境中表现不佳。此外,大多数感知方法通常是计算密集型的,不能在嵌入式和资源有限的硬件上实时运行。此外,由于长期不稳定性,目前SLAM方法在大规模实验中的应用仍然有限。另一个重要的问题是如何融合自动驾驶汽车传感器数据,以快速、经济的方式创建更准确的三维语义词。此外,人们何时才能真正接受自动驾驶和自动驾驶汽车,仍然是一个值得讨论话题,由此也引发了严重的伦理问题的探讨。
参考文献:
[1] J. Jiao, Y. Yu, Q. Liao, H. Ye, and M. Liu, "Automatic calibration of multiple 3d lidars in urban environments," arXiv preprint arXiv:1905.04912, 2019.
[2] H. Ye, Y. Chen, and M. Liu, "Tightly coupled 3d lidar inertial odometry and mapping," in 2019 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2019.
[3] R. Fan, M. J. Bocus, Y. Zhu, J. Jiao, L. Wang, F. Ma, S. Cheng, and M. Liu, "Road crack detection using deep convolutional neural network and adaptive thresholding," arXiv preprint arXiv:1904.08582, 2019.
[4] C. Coberly, "Waymo's self-driving car fleet has racked up 8 million miles in total driving distance on public roads," https://www.techspot.com/news/75608-waymo-self-driving-car-fleetracks-up-8.html, accessed: 2019-04-21.
[5] D. Welch and E. Behrmann, "Who's winning the self-driving car race?" https://www.bloomberg.com/news/features/2018-05-07/whos-winning-the-self-driving-car-race, accessed: 2019-04-21.