资讯详情

自动驾驶综述文章

A Survey of Autonomous Driving: Common Practices and Emerging Technologies

一. 摘要

【丰田认为automated和autonomous区别在于:automated车辆的功能几乎不需要人控制,autonomous指能在这种状态下行驶的车辆。从这种差异来看,目前大多数人自称autonomous自动驾驶汽车,因为它们在监控,负责,所以在真正意义上不能被称为autonomous”。】

问题:预防交通事故,减少交通拥堵,减少排放 机会:重新分配驾驶时间,解决运输障碍 新趋势:旅游服务,物流革命

二. 引言

2.1 两个着名的自动驾驶研究项目:

1、Eureka Project PROMETHEUS:戴姆勒-奔驰是欧洲最早的自动驾驶研究之一VITA II也基于此。 2、DARPA Grand Challenge:许多经典文章来自美国国防部主办的业内最著名的挑战赛。

2.2 汽车自动化水平分级

L0:无自动化 L1:原司机辅助系统(Primitive driver assistance systems),包括自适应巡航控制、防抱死制动等 L2:部分自动化,先进的辅助系统(Advanced assistance systems),例如,紧急制动或避免碰撞 L3.有条件的全自动化(Conditional automation),在正常运行期间,驾驶员可以专注于除驾驶外的其他任务,但必须能够在紧急情况下快速响应和接管车辆 L4:当天气条件允许,基础设施(信号地图等)完善时,根本不需要司机。 L5:无论在任何情况下,司机都不需要完全实现L4级以上自动驾驶车辆。

2.3 ODD(L3及以上)

ODD的全称是Operational Design Domain(运行设计领域)。每个自动驾驶系统运行的前提和适用范围可能不同。只有满足所有条件,自动驾驶才能保证正常运行。相反,如果缺乏任何前提,系统可能会出现故障。在这种情况下,应采取紧急停车措施或手动接管驾驶员。

2.4 DDT

动态驾驶任务DDT(Dynamic Driving Task)它是道路交通运行车辆所需的所有实时操作和战略功能,不包括行程安排、目的地和路点选择,包括但不限于以下子任务: a) 横向运动(操作)由转向控制; b) 纵向运动(操作)由车辆加速和减速控制; c) 驾驶环境通过目标和事件检测、识别、分类和响应准备(操作和策略)进行监控; d) 对象和事件响应执行(操作和策略); e) 机动规划(策略); f) 通过照明、鸣笛、信号、手势等(策略)增强醒目性。 其中子任务c)和d)统称为对象、事件检测和响应(OEDR) 在这里插入图片描述

驾驶任务示意图(非控制图)
2.5 OEDR

检测和响应目标和事件OEDR(Object and Event Detection and Response)是DDT子任务包括监控驾驶环境(检测、识别和分类对象和事件,并准备根据需要做出响应),并适当响应这些对象和事件(即根据需要完成DDT和/或DDT接管)。

三. 系统框架

自动驾驶系统框架的高级分类
3.1 单车辆系统(Ego-only systems)

即始终在汽车本身执行所有必要的自动驾驶操作

3.2 互联车辆系统(Connected multi-agent systems)

需要依靠其他车辆和一些基础设施来完成一些操作,比如现在比较热的车网,V2X等等。目前,自行车系统更为常见。目前还没有可操作的互联网ADS但一些研究人员认为,这种新技术将是未来驾驶自动化的发展方向。

3.3 模块化系统(Modular systems)

传感器输入执行器输出的中间过程构成独立的模块,如等。模块化的基本逻辑就是分而治之,把一个复杂的任务分成若干个较为简单的子任务。除此之外,模块化还有一些隐藏的优势,比如说对一些约束(如紧急制动,超速等),,当一些传感器出现偏差时,可以保证输出更可靠。另一方面,,一个模块的错误可能会沿着这个过程传播,比如前段时间的特斯拉事故。即使后续模块完全正确执行,错误也无法避免。

3.4 端到端系统(End-to-end systems)

指直接从感知输入产生输出,常见的端到端系统有三种主要方法:直接监督深度学习(Direct supervised deep learning)、神经进化(Neuroevolution)加强深度学习(Deep reinforcement learning)。

端到端系统流程图

端到端系统方法

四. 传感器和硬件

为了保证系统的鲁棒性和可靠性,大多数任务都需要更高的传感器冗余度

4.1 硬件模块分类

传感器感器(Exteroceptive sensors),监控车辆本身状态的本体感知传感器(Proprioceptive sensors),通信单元,执行器和计算单元

4.2 比较外部传感器

4.2.1 单目相机(Monocular Cameras)

最常见、最便宜的传感器之一。此外,二维计算机视觉是一个相对成熟的研究领域。虽然理论上无法获得深度,但基于单目深度也有一些结果。缺点主要是精度和环境因素。还有一些专门为特殊场景开发的相机,如全景相机(Omnidirection Camera),闪光相机(Flash Camera),热敏相机(Thermal Cameras),事件相机(Event Camera)等。

4.2.2 全景相机(Omnidirection Cameras)

理论上,全景相机是一种视角为360度的相机。事实上,这种相机的困难不在于捕捉图像,而在于图像拼接。由于球形图像高度扭曲,校准非常困难。

4.2.3 事件相机(Event Cameras)

事件相机是一个相对新颖的概念,传统的相机是根据时间使用的,而事件相机是事件触发型,它对场景中的移动变化更敏感,因此可以用于检测动态目标。

骑自行车人和车辆的运动会导致亮度的变化,从而触发事件
4.2.4 雷达(Radar)和激光雷达(Lidar)

一般来说,现在采用多传感器的形式,用雷达或激光雷达来弥补相机(包括深度相机)在深度信息中的缺陷。激光雷达实际上与雷达的工作原理相似,但激光雷达发射,但与雷达相比,更容易。虽然雷达的精度不如激光雷达高,但是因为,目前已经广泛应用于辅助驾驶(ADAS)例如,接近警告和自适应巡航。

4.3 本体传感器(Proprioceptive sensor)

一般指车辆自身携带的传感器,如里程计,IMU,转速计等。

4.3.1 里程计(odometry)

里程计系统基于机器人的运动提供对机器人位姿和速度的局部准确估计。里程计信息可以从各种来源获得,例如IMU、LIDAR、RADAR、VIO和车轮编码器等。

4.3.2 惯性测量单元 Inertial Measurement Units (IMU)

是一种使用加速度计和陀螺仪来测量物体三轴姿态角(或角速率)以及加速度的装置。狭义上,一个IMU 内在正交的三轴上安装陀螺仪和加速度计,一共 6 个自由度,来测量物体在三维空间中的角速度和加速度,这就是我们熟知的“6轴IMU”;广义上,IMU可在加速度计和陀螺仪的基础上加入磁力计,可形成如今已被大众知晓的“9轴IMU”。其中加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺仪检测载体相对于导航坐标系的角速度信号,测量物体在三维空间中的角速度和加速度,并以此解算出物体的姿态。IMU在导航中的核心价值无可替代,为了提高其可靠性,还可以为每个单轴配备更多种类的传感器。为保证测量准确性,一般IMU要安装在被测物体的重心上。

4.4 研究机构及公司整车配置

五. 定位与建图(Localization and Mapping)

定位指的是在环境中找到相对于参考系的位置,对于任何移动机器人来说这个任务都是最基本的。

5.1 常用方法
5.1.1 GPS-IMU融合

GPS-IMU融合的主要原理是。在GPS-IMU系统中,IMU测量机器人位置和方向的变化,并对这些信息进行处理,以便用航位推算法对机器人进行定位。但是IMU有一个显著的缺点,就是我们常说的累积误差。因此引入GPS的绝对位置信息(相当于一个反馈),可以有效地对IMU误差进行校正。。在2004年的DARPA挑战赛中,卡内基梅隆大学(Carnegie Mellon University)的红队就因为GPS错误而未能通过比赛。除此之外,在密集的城市环境中,像隧道、高层建筑等都会影响GPS的精度。尽管GPS-IMU系统本身无法满足自动驾驶的性能要求,但是可以和激光雷达等传感器相结合进行位姿估计。

航位推算 Dead Reckoning

航位推算是一个很常见的定位方法。在知道当前时刻的位置,然后通过IMU等传感器去估计下一个时刻的位置。在自动驾驶车辆定位的时候,GPS提供10Hz的定位信息。这每个GPS信息来临的0.1s的间隔里面,车辆位置也会移动很多。那么这个时候就需要航位推算来判断车辆到底移动了多少距离,在哪个地方。所以,航位推算是自动驾驶车辆最基本的,也是必须的一种算法之一。比如推算车辆在隧道中的位置。 [航位推算1] https://zhuanlan.zhihu.com/p/96899895 [航位推算2] https://zhuanlan.zhihu.com/p/96942004

5.1.2 同步定位与建图 Simultaneous localization and mapping(SLAM)

顾名思义,SLAM是一种在线地图绘制同时定位的行为(理论上的同时)。理论上SLAM不需要关于环境的先验信息,就目前而言,(室外更多还是基于预先构建的地图进行定位)。

5.1.3 基于先验地图定位 a priori map-based localization

基于先验地图的定位技术的:定位是通过比较在线数据同先验地图的信息来找到最佳匹配位置。也就是根据先验的地图信息来确定当前的位姿。这个方法有一个缺陷,,而且,环境的变化可能会对结果产生负面影响(比如等)。这类方法大致可以分为两大类:基于地标的搜索和基于点云的匹配。

5.1.3.1 地标搜索 Landmark search

与点云匹配相比,基于地标的定位计算成本要低得多。理论上来说,只要地标的数量足够多,这种定位就是鲁棒的,该方法的主要缺点在于地标的依赖性:在地标数量不足的情况下容易出现故障。

5.1.3.2 点云匹配 point cloud matching

点云匹配一般是指局部的在线扫描点云通过平移和旋转同先验的全局点云进行匹配,根据最佳匹配的位置来推测机器人相对地图的局部位置。对于初始位姿的估计,一般是结合GPS利用航位推算。

5.1.3.3 2D tO 3D MATCHING

基于先验地图方法最大的缺陷就在于先验地图的获取上,实际上制作和维护一个可靠的高精度地图是相当费时又费力的一件事。除此之外,还有一些其他情况,比如跨维度的匹配(二维到三维,三维到二维等)。在初始姿态估计的基础上,,并同相机捕捉到的图像进行在线归一化比较。这种方法相当于,但是

六. 感知(Perception)

感知周围环境并提取可供安全导航的信息是自动驾驶的核心之一,随着近年来计算机视觉研究的发展,逐渐成为感知中最常用的传感器。本节主要讨论等。

6.1 检测
6.1.1 基于图像的目标检测

包括静态物体识别(红绿灯、交通标志、道路交叉口),动态物体识别(车辆,行人和自行车)。目前最先进的方法基本都依赖于,但它们之间目前存在明显的区别: 1)单级检测框架(Single stage detection frameworks)使用单个网络同时生成对象检测位置和类别预测。 2)区域生成检测框架(Region proposal detection frameworks)有两个不同的阶段,首先生成感兴趣的一般区域(候选区域),然后通过单独的分类器网络进行分类。

区域生成检测框架是目前效果最好的方法,但是需要很高的计算能力,并且通常难以实施,训练和微调。同时,单级检测算法往往具有快速的推理时间和较低的存储成本,能够满足无人驾驶实时计算的需求。由于近年来计算能力的提升,讲来RPN(region proposal networks)可能取代单机检测网络,成为自动驾驶的主流检测算法。

使用相机的主要缺点是会严重影响其性能。弱光照条件的场景本来就很难解决,更不要说由于可能导致算法的失败了。一个显而易见的方法是用备份的传感方式进行感知,例如lidar和radar。但是lidar和radar的感知都有受限的场景,因此可能是最佳的选择。通过也可用于弱光条件下的物体检测,这。当然目前还已经开发出尝试的纯相机方法,已经提出尝试2种方法。

6.1.2 语义分割

这项任务对驾驶自动化特别重要,因为某些目标对象很难通过边界框来定义,特别是道路,交通线,人行道和建筑物。目前了,作者认为未来会有单一且通用的网络能够解决自动驾驶不同感知任务的可能性。

a.前置摄像头带有边界矩形框 b.MaskRCNN实例分割结果 c.DeepLabv3语义分割遮罩 d.3D激光雷达探测范围

图像分类是给你一堆图,告诉我每张图主要内容的类别,最经典的就是MNIST上的手写数字识别,输出是每张图代表什么数字。目标检测是输入一系列图,把每张图里我感兴趣的目标框出来,比如上面说的用YOLO做行人检测,输出就是用矩形框把每张图里的行人框出来。语义分割的任务是把图像里的每一个像素都归到某个类别里,有点像机器学习中聚类的概念。

6.1.3 3D目标检测

主要依赖点激光雷达的点云数据,通过滤波、聚类,提取特征进行识别。

当然也可以用RGB-D相机获取深度信息,但由于RGB-D的作用范围有限,并且在室外不太可靠,目前没有应用在自动驾驶领域。

6.2 目标跟踪

对于复杂和高速情况下的自动驾驶,仅仅估计位置是不够的,为了避免碰撞,还需要估计,以便应用运动模型跟踪目标并预测目标未来的运动轨迹。同样的,一般都通过多个相机,激光雷达或者雷达来获取传感器信息,且未来更好地应对不同传感器的局限性和不确定性,通常采用的策略进行跟踪。 (1)滤波方法:Bayes滤波器、卡尔曼滤波、粒子滤波等。 (2)深度学习:CNN、多任务网络等。

6.3 道路和车道线检测

(1)可行驶区域检测:检测车道当前行驶车道,可以应用于车道偏离警告,车道保持和自适应巡航控制。 (2)道路复杂语义理解:识别其他车道和方向,合并转向等道路结构信息。

七. 评估(Assessment)

7.1 风险和不确定性评估

量化驾驶场景的不确定性和风险水平,可用贝叶斯方法、隐马尔科夫模型(HMM)和语言模型。

7.2 周围驾驶行为评估

实际环境中的自动驾驶决策与周围驾驶员的行为相关。用隐马尔科夫模型(HMM)预测目标车辆的未来行为。

7.3 驾驶风格识别

主成分分析法、基于GMM的驾驶员模型等。

八. 规划和决策(Planning and Decision making)

8.1 全局规划(Global Planning)

全局规划主要是规划目的地,类似目前用到的地图导航,传统的方法分为以下4个类别:

8.1.1 目标导向(Goal-Directed)

A*是一种标准的目标导向路径规划算法,广泛在各个领域应用了50多年。

8.1.2 基于分割(Separator-Based)

基于分割的逻辑有点像路由算法,删去一些边或者顶点,计算每个子区域间的最短路径,这种方法可以有效加快计算速度。

8.1.3 分级规划(Hierarchical)

道路分为不同的等级:普通公路,高速公路和大动脉,这样导致的问题是最短的距离不一定是最快的(走高速更快),而收缩层次结构法(Contraction Hierarchies)用来处理该问题。

8.1.3 有界跳跃(Bounded-Hop)

预先计算好2个点之间的距离和时间,这样计算的时候只需要查表就可以了,预处理技术是利用空间换时间。

8.2 局部路径规划(Local Planning)

局部规划实际可以理解为为了实现全局规划来找到一条足够优化且能避开障碍物的轨迹。

常见局部规划算法
8.2.1 基于图搜索(Graph Search)

图搜索算法的经典算法是Dijkstra和A*算法,输出的是离散路径而不是连续路径,更高级的图搜索算法是state lattice,对动态环境的路径规划非常有用。基于图搜索常见的做法都是将地图离散成状态格,这种做法在高维的情况下会产生指数爆炸,因此就有了基于采样的方法。

8.2.2 基于采样(Sampling Based)

最常见的基于采样的方法是概率图(PRM)和快速随机搜索树(RRT)。这类方法的缺陷主要是不稳定,在某些特定环境下可能要很长时间才能收敛。

8.2.3 曲线插值(Curve Interpolation)

在一系列已知点上拟合一条可行的轨迹曲线,常见的曲线有回旋线、多项式曲线、贝塞尔曲线等,这种方法的避障策略一般是插入新的无碰撞的轨迹,如果偏离了初始轨迹,则避开障碍之后再返回初始轨迹。这种方法生成的轨迹较光滑,计算量也比较大,但是在实际ADS中,轨迹光滑一般意味着对乘客比较友好。

8.2.4 数值优化(Numerical Optimization)

通过优化功能提高现有路径的质量。

8.2.5 深度学习(Deep Learning)

基于深度学习的缺陷主要是缺乏硬编码的安全措施,除此之外还有泛化能力问题、数据来源问题等,但总的来说,这一类方法应该是未来的趋势之一。利用深度学习的方法输出规划路径,和端到端自动驾驶的区别是输出结果:前者是输出曲线,后者是输出油门刹车和方向盘。

九. 人机交互(Human Machine Interaction)

无人驾驶车通过(HMI)与驾驶员和乘客进行通信。其中最基本的是,例如驾驶目的地的选择。(AUI)将会是打车交互的好选择,目前可能是很难处理的部分。而且会出现新的交互需求,例如乘客需要了解和监控无人驾驶汽车目前的状况。

十. 数据集和有效工具(Dataset and Available Tools)

10.1 数据集

常见的有:PASCAL VOC、KITTI、DeepDrive等。

自动驾驶数据集
10.2 开源框架

Autoware、Apollo、Nvidia DriveWorks、openpilot等。

10.3 模拟器

CARLA、TORCS、Gazebo 、SUMO等,CARLA可以模仿各种城市场景包括碰撞场景,TORCS是一个赛车仿真模拟器,Gazebo 是一个常见的机器人模拟器,SUMO可以模拟车流量。

标签: 传感器hmm100

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台