行业现状

粗略来说,自动驾驶公司可以分为两大类别:

一类是传统的车企(比如国外的大众,宝马,通用,丰田等,国内的长城,吉利等),新能源车企(比如特斯拉,蔚来,小鹏等)和Tier1(比如国外老牌的博世,大陆,安波福等,以及国内新兴的华为,大疆等)。这类公司的首要目标是量产,一般以L2级别方案为主,目前也在向L3级别扩展。

另外一类是一些方案提供商或者初创公司(比如Waymo,Mobileye,Pony.AI,Momenta,TuSimple等)。这些公司致力于发展L4级别的自动驾驶技术,面向的是诸如Robotaxi,Robotruck和Robobus之类的应用。

对于不同的自动驾驶级别,不同的应用场景,传感器的配置方案也不尽相同。对于L2级别的应用,比如紧急制动和自适应巡航,可以只采用前视单目摄像头或者前向毫米波雷达。如果需要变道辅助功能,则需要增加传感器对相邻车道进行感知。常用的方案是在车头和车尾增加多个角雷达,以实现360度的目标检测能力。对于L3级别的应用,需要在特定场景下实现车辆的完全自主驾驶,因此需要扩展车辆对周边环境的感知能力。这时就需要增加激光雷达,侧视和后视的摄像头和毫米波雷达,以及GPS,IMU和高精度地图来辅助车辆定位。到了L4级别以后,由于在特定场景下不需要人工接管了,传感器就不仅需要高精确度,还需要高可靠性。这就需要增加传感器的冗余性,也就是说需要备用系统。

概念及研究内容

自动驾驶车是一种通过计算机系统实现无人驾驶的智能汽车,是一个集合多领域先进技术的综合产物。感知、决策、执行是自动驾驶车的三大核心,使车辆能够感知和理解行驶环境,进行主动决策,对全局或局部地图进行实时地路径规划,并准确控制车辆运动,跟踪期望的轨迹,达到期望的行驶要求。

在智能车辆的研究中,主要涉及到以下的几个问题:(1)环境传感感知:该部分的主要作用是通过传感器识别车辆周围的障碍物与环境,建立车辆周围环境的三维场景;(2)轨迹规划与决策:该部分主要是在获得车辆周围环境后规划与决策出一条最优的行驶轨迹;(3)轨迹跟随控制:该部分主要是通过控制车辆的转向系统以及驱动制动系统使得车辆按照期望的轨迹行驶,包括了纵向的速度跟随控制以及侧向的路径跟随控制。

自动驾驶系统基本构成

环境传感感知

在自动驾驶赛道中,感知的目的是为了模仿人眼采集相关信息,为后续做决策提供必要的信息。根据所做决策的任务不同,感知可以包括很多子任务:如车道线检测3D目标检测障碍物检测红绿灯检测等等;再根据感知预测出的结果,完成决策;最后根据决策结果执行相应的操作(如减速、停车、变道、超车等)。

环境感知是实现自动驾驶的第一环节,也是最为关键的一个环节。车辆通过各类传感器,例如摄像头毫米波雷达超声波雷达激光雷达等获取周边信息,产生图片数据、视频数据、点云图像、电磁波等信息,去除噪点信息后利用不同类型数据形成冗余同时提升感知精度,绘制周围区域的高精度3D地图。摄像头、雷达和激光雷达三者是相辅相成的关系。其中,摄像头是感知系统中最常用的传感器,优势在于能够提取丰富的纹理和颜色信息,因此适用于目标的分类。但是其缺点在于对于距离的感知能力较弱,并且受光照条件影响较大。激光雷达在一定程度上弥补了摄像头的缺点,可以精确的感知物体的距离和形状,因此适用于中近距的目标检测和测距。但是其缺点在于成本较高,量产难度大,感知距离有限,而且同样受天气影响较大。毫米波雷达具有全天候工作的特点,可以比较精确的测量目标的速度和距离,感知距离较远,价格也相对较低,因此适用于低成本的感知系统或者辅助其它的传感器。但是缺点在于高度和横向的分辨率较低,对于静止物体的感知能力有限。

2021年1-5月国内新发布车型传感器配置及核心功能

从硬件层面来看,对于不同级别自动驾驶汽车和驾驶任务而言,需要的传感器类型、数量和性能也有所区别。从软件算法层面来看,主要有视觉和点云的技术方案,比如特斯拉为代表的纯视觉;Waymo为代表的以点云和视觉融合的方案;还有以视觉为主融合激光点云的方案。

环境感知系统的硬件基础是多种传感器以及它们的组合,而软件方面的核心则是感知算法。总的来说,感知算法要完成两个主要的任务:物体检测和语义分割。前者得到的是场景中重要目标的信息,包括位置,大小,速度等,是一种稀疏的表示;而后者得到的是场景中每一个位置的语义信息,比如可行驶,障碍物等,是一种稠密的表示。这两个任务的结合被称为全景分割,这也是自动驾驶和机器人领域最近兴起的一个概念。对于物体目标(比如车辆,行人),全景分割输出其分割Mask,类别和实例ID;对于非物体目标(比如道路,建筑物),则只输出其分割Mask和类别。环境感知系统的终极目标就是要得到车辆周边三维空间中全景分割结果。

自动驾驶驾驶技术这一轮的爆发很大程度上来源于深度学习在计算机视觉领域取得的突破,而这个突破首先是从图像分类和图像中的物体检测开始的。在自动驾驶环境感知中,深度学习最先取得应用的任务是单张二维图像中的物体检测。这个领域中的经典算法,比如Faster R-CNN,YOLO,CenterNet等都是不同时期视觉感知算法的主流。但是,车辆不能仅仅依靠一张二维图像上的检测结果来行驶。因此,为了满足自动驾驶应用的需求,这些基础的算法还需要进行进一步的扩展,其中最重要的就是融合时序信息和三维信息。前者衍生出了物体跟踪算法,后者衍生出了单目/双目/多目的三维物体检测算法。以此类推,语义分割包含了图像语义分割视频语义分割稠密深度估计

为了得到更加精确的三维信息,激光雷达也一直是自动驾驶感知系统的重要组成部分,尤其是对于L3/4级别的应用。激光雷达的数据是相对稀疏的点云,这与图像稠密的网格结构差别非常大,因此图像领域常用的算法需要经过一定的改动才能应用到点云数据。点云感知的任务也可以按照物体检测和语义分割来划分,前者输出三维的物体边框,而后者输出点云中每个点的语义类别。为了利用图像领域的算法,点云可以转换为鸟瞰视图(Bird’s Eye View)或者前视图(Range View)下的稠密网格结构。此外,也可以改进深度学习中的卷积神经网络(Convolutional Neural Network, CNN),使其适用于稀疏的点云结构,比如PointNet或者Graph Neural Network。

毫米波雷达由于其全天候工作,测速准确,以及低成本的特点,也被广泛的用于自动驾驶感知系统中,不过一般应用在L2级别的系统中,或者在L3/4级系统中作为其它传感器的辅助。毫米波雷达的数据一般来说也是点云,但是比激光雷达的点云更为稀疏,空间分辨率也更低。相比于摄像头和激光雷达,毫米波雷达的数据密度非常低,因此一些传统方法(比如聚类和卡尔曼滤波)表现的并不比深度学习差很多,而这些传统方法的计算量相对较低。最近几年来,开始有研究者从更底层的数据出发,用深度学习代替经典的雷达信号处理,通过端对端的学习取得了近似激光雷达的感知效果

单个传感器的感知能力总是有限的,如果把系统成本先放在一边,多传感器融合的方案自然更好的选择。一般来说,摄像头是感知系统的必备的传感器,为了得到深度信息和360度的视场,可以采用双目或者多目融合的方案。为了更准确的获得三维和运动信息,摄像头也可以与激光雷达和毫米波雷达进行融合。这些传感器的坐标系不同,数据形式不同,甚至采集频率也不同,因此融合算法的设计并不是一件简单的任务。粗略来说,融合可以在决策层(融合不同传感器的输出)或者数据层(融合不同传感器的数据或者中间结果)来进行。数据层融合理论上说是更好的方法,但是对传感器之间的空间和时间对齐要求会更高。

轨迹规划与决策

规划(planning)承接环境感知,并下启车辆控制。其规划出来的轨迹是带速度信息的路径。广义上,规划(planning)可分为路由寻径(Routing)、行为决策(Behavioral Decision)、运动规划(Motion Planning)。路由寻径:是全局路径规划,可简单的理解为传统地图导航+高精地图(包含车道信息和交通规则等);行为决策:决策车辆是否跟车、在遇到交通灯和行人时的等待避让、以及路口和其他车辆的交互通过;运动规划:是局部路径规划,是无人车未来一段时间内的期望行驶路径,需满足汽车运动学、动力学、舒适性和无碰撞等要求。

轨迹规划的任务是计算出一个无碰撞可执行的轨迹(包含路径和速度信息),保证车辆从起点安全的驾驶到目的地,并尽可能高效。其问题的本质是一个多目标的数学优化问题。路径规划的底层数学理论主要是“最优化理论“”矩阵理论“”数值分析“,构建目标函数与约束条件同时求极值来得到最优控制量(路径)这个套路来自于”最优化理论“;在求解最优控制量时大家常见的牛顿法、最速下降法等等这些数值求解方法,本质来自于数值求解代数等式方程,属于”数值分析“;求解过程中所见到的导数雅可比矩阵、判断条件中的向量范数等等,本质就是把一维数值求解放到了高维,升维的方式由“矩阵理论”研究。

根据数学定义,横向、纵向规划均为非凸优化问题。横向规划,即s→(x,y),决定了轨迹的形状。纵向规划是t→s,是指在此形状上运动的速度状态,也就是时间与位移的关系。横向规划和纵向规划联合起来就是t→(x,y)。

决策(Decision)使轨迹规划化繁为简。既然轨迹规划是非凸优化问题,我们需要利用决策模块来解决这个问题。从数学上来讲,决策就是为了限定非凸问题(轨迹规划)的解空间,将问题转化为凸的。

主要的优化目标包括:

安全性:避免与场景中的障碍物发生碰撞;针对动态障碍物,由于其未来运动的不确定性,降低其未来的碰撞风险;

稳定性:由于车辆的惯性较大,灵活性差,期望轨迹需要保证车辆的物理可行性和控制器的稳定性;

舒适性:考虑到乘员的舒适性,需要在满足安全性和稳定性的同时保证车辆的驾驶舒适度,包括加减速以及转向等过程;

驾驶效率:在满足安全性和稳定性的同时,保证车辆以更快的速度驾驶,从而更短的时间到达目的地。

在实际场景中,规划过程需要考虑各种物理约束,有且不限于:

加减速度约束:受到动力系统和制动系统的性能极限,及驾驶员的安全性和舒适性的制约;

非完整性约束:车辆具有三个运动自由度,但是只有两个控制自由度,其非完整性约束决定了轨迹的物理可行性;

动力学约束:考虑到车辆的动力学特性和车身稳定性,其驾驶过程中的曲率和横摆角速度具有一定的约束;

当然,在工程中,解决特定场景的规划问题,可以进行一定程度的简化。下面是几种应用较为广泛的算法。

几种应用较为广泛的路径规划算法

例如,百度的Apollo决策规划算法是一种数值优化的算法,且是“轻决策重规划”的方案,一共有3种Planner解决方案。

EM Planner 路径和速度解耦,分开规划再融合
RTK Planner 基于录制的轨迹来规划行车的路线
Lattice Planner 路径和速度一起规划,直接输出高维的轨迹

决策规划是智能汽车导航和控制的基础,从轨迹决策的角度考虑的,可分为全局规划和局部规划两个层次。其中,全局路径规划的任务是根据全局地图数据库信息规划出自起始点至目标点的一条无碰撞、可通过的路径。由于全局路径规划所生成的路径只能是从起始点到目标点的粗略路径,并没有考虑路径的方向、宽度、曲率、道路交叉以及路障等细节信息,加之智能汽车在行驶过程中受局部环境和自身状态的不确定性的影响,会遇到各种不可测的情况。因此,在智能汽车的行驶过程中,必须以局部环境信息和自身状态信息为基础,规划出一段无碰撞的理想局部路径,这就是局部路径规划。

全局规划方法

(1) 基于状态空间的最优控制轨迹规划方法

最优控制一般包括一到两个性能指标,对于控制变量的取值不受约束的情况,一般用变分法进行求解;对于控制量受约束的情况,一般用极小值原理进行求解。

(2)基于参数化曲线的轨迹规划方法

B 样条曲线由一组称作控制点的向量来确定,这些控制点按顺序连接形成一个控制多边形,B样条曲线就是逼近这个控制多边形。通过确定控制点的位置,可以控制曲线的形状。

(3)基于基于系统特征的轨迹规划方法

微分平坦法是基于系统特征的一种轨迹规划方法。微分平坦是指可以找到一组系统输出,使得所有状态变量和输入变量都可以由这组输出及其导数决定(不需积分)。

局部规划方法(也可称之为实时路径规划)

智能汽车进行局部路径规划(也可称之为实时路径规划),一般是指在有障碍物的环境中,如何利用自身传感器感知周边环境,并寻找一条从当前点到目标点点的局部行驶路径,使智能汽车在本次任务中能安全快速地到达目标位置。局部路径规划的方法主要包括以下两个关键部分:

建立环境模型,即将智能汽车所处现实世界抽象后,建立计算机可认知的环境模型;

搜索无碰路径,即在某个模型的空间中,在多种约束条件下,选择合乎条件的路径搜索算法。根据不同行驶环境的特点,智能汽车局部路径规划中的侧重点和难点都会有相应不同:

  • 在高速公路中,行车环境比较简单但车速较快,此时对智能汽车控制精度要求很高,算法难点主要在于环境信息获取的位置精度和路径搜索的速度;

  • 在城市半结构化道路中,道路环境特征性比较明显但交通环境比较复杂,周边障碍物较多,这就对智能汽车识别道路特征和障碍物的可靠性有较高要求,路径规划的难点主要在于车辆周边环境建模和避障行驶的路径搜索,特别是对动态障碍物方向和速度预测;

  • 在越野环境的非结构化道路中,智能汽车所处的环境没有明显的道路边界,路面起伏不平,可能有大坑或土堆,这就对智能汽车识别周围环境,特别是地形地势有较高要求,路径规划的难点主要在于车辆可通行区域的识别。

(1)基于滚动时域优化的轨迹规划方法

该方法能够确保机器人在未知环境中安全地避开障碍物行驶,具有反应速度快的优点,能够迅速适应变化的环境,是一种有效实用的工具,但计算量相对较大。

(2)基于轨迹片段的运动规划方法

轨迹片段包含配平轨迹和机动轨迹。其中配平轨迹是系统处于相对平衡时所经历的轨迹,而机动轨迹则是系统从一个相对平衡跃入另外一个相对平衡所经历的轨迹。可以通过考虑车辆的运动学和动力学约束条件,基于最优控制原理的机动轨迹设计方法和随机采样法,实现基于轨迹片段连接的最优运动轨迹规划和快速运动规划。但是该方法计算较为复杂,使其在实际应用中受到限制。

(3)路权分配技术

路权与车速强相关,可分为期望路权和实际路权,当两者不一致时,就需要进行调节来解决冲突。自主驾驶是智能汽车在任意时刻对路权的检测和使用,多车交互是车群在任意时刻对路权的竞争、占有、放弃等协同过程。自主驾驶的不确定性,体现在车辆行驶中拥有的路权在不停地发生变化。

轨迹跟随控制与执行

自动驾驶控制执行系统是指系统做出决策规划以后,替代驾驶员对车辆进行控制,反馈到底层模块执行任务。可以说,执行控制系统是自动驾驶汽车行驶的基础,车辆的各个操控系统需要通过总线与决策系统相连接,并能够按照决策系统发出的总线指令精确地控制加速程度、制动程度、转向幅度、灯光控制等驾驶动作,以实现车辆的自主驾驶。

核心技术

自动驾驶控制执行的核心技术主要包括车辆的纵向控制横向控制技术。纵向控制,即车辆的驱动与制动控制,是指通过对油门和制动的协调,实现对期望车速的精确跟随。横向控制,即通过方向盘角度的调整以及轮胎力的控制,实现自动驾驶汽车的路径跟踪。

车辆纵向控制是指对车速以及本车与前后车或障碍物距离的自动控制。自动驾驶汽车采用油门和制动综合控制的方法来实现对预定车速的跟踪,各种电机-发动机-传动模型、汽车运行模型和刹车过程模型与不同的控制算法相结合,构成了各种各样的纵向控制模式。

典型的纵向控制系统结构(虚线框)

车辆横向控制指垂直于运动方向上的控制,即转向控制。横向控制系统目标是控制汽车自动保持期望的行车路线,并在不同的车速、载荷、风阻、路况下均有很好的乘坐舒适性和稳定性。

典型的横向控制系统结构(虚线框)

车辆横向控制大致可以分为两种基本设计方法:基于驾驶员模拟的控制方法和基于车辆动力学模型的控制方法。

基于驾驶员模拟的方法又可以详细划分为两种,一种是使用较简单的动力学模型和驾驶员操纵规则设计控制器,另一种是用驾驶员操纵过程的数据训练控制器获取控制算法。

基于车辆动力学模型的方法,需要建立较精确的汽车横向运动模型。典型模型如单轨模型,该模型认为汽车左右两侧特性相同。

控制算法

自动驾驶控制方法可划分为两种,分别为传统控制方法与智能控制方法。

传统控制方法

传统控制方法主要有PID 控制模糊控制最优控制、**滑模控制(预测模型控制MPC)**等。

PID控制,又称之为比例积分微分控制,是最早发展起来的控制策略之一。其原理简单来说,是根据给定值和实际输出值构成控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制。由于其算法简单、鲁棒性好和可靠性高,至今仍有90%左右的控制回路具有PID结构。

模糊控制,全称为模糊逻辑控制,是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制技术。与经典控制理论相比,模糊逻辑控制策略最大的特点是不需要准确的数学公式来建立被控对象的精确数学模型,因此可极大简化系统设计和数学建模的复杂性,提高系统建模和仿真控制的效率。不过,模糊控制的设计缺乏系统性,对复杂系统的控制是存在一定问题。

最优控制着重于研究使控制系统的性能指标实现最优化的基本条件和综合方法。可以概括为:对一个受控的动力学系统或运动过程,从一类允许的控制方案中找出一个最优的控制方案,使系统的运动在由某个初始状态转移到指定的目标状态的同时,其性能指标值为最优。

滑模控制也叫变结构控制,本质上是一类特殊的非线性控制。该控制策略与其他控制的不同之处在于系统“结构”不固定,可以在动态过程中根据系统当前的状态有目的地不断变化,迫使系统按照预定“滑动模态”的状态轨迹运动。由于滑动模态可以进行设计且与对象参数及扰动无关,因此滑动控制具有快速响应、对应参数变化及扰动不灵敏、无需系统在线辨识、物理实现简单等优点。不过,滑动控制也并不是全无缺点。在实际应用中,当状态轨迹到达滑动模态面后,难以严格沿着滑动模态面向平衡点滑动,而是在其两侧来回穿越地趋近平衡点,这会产生震动影响正常应用。

智能控制方法

智能控制方法与传统的控制方法最大的不同在于,智能控制方法更关注于控制对象模型的运用和综合信息学习运用。常见的智能控制方法主要有基于模型的控制神经网络控制深度学习方法等。

基于模型的控制,一般称为模型预测控制,它的当前控制动作是在每一个采样瞬间通过求解一个有限时域开环最优控制问题而获得。其基本原理可概括为:在每个采样时刻,根据当前获得的当前测量信息,在线求解一个有限时域的开环优化问题,并将得到的控制序列的第一个元素作用于被控对象,在一个采样时刻,重复上述过程,再用新的测量值刷新优化问题并重新求解。这种控制方法的优点是对模型的精度要求不高,建模方便,且因为采用非最小化描述的模型,系统鲁棒性、稳定性较好。

神经网络控制,可以把控制问题看成模式识别问题,被识别的模式映射成“行为”信号的“变化”信号。神经控制最显著的特点是具有学习能力。它是通过不断修正神经元之间的连接权值,并离散存储在连接网络中来实现的。它对非线性系统和难以建模的系统的控制具有良好效果。

深度学习方法,可以获得深层次的特征表示,免除人工选取特征的繁复冗杂和高维数据的维度灾难等问题,在特征提取与模型拟合方面具有很大优势。由于自动驾驶系统需要尽量减少人的参与,因此深度学习自动学习状态特征的能力,让深度学习在自动驾驶系统的研究中更具优势。

技术方案

根据从行驶环境到驾驶动作的映射过程,自动驾驶控制技术可以分为间接控制和直接控制两种不同方案。

基于规划 - 跟踪的间接控制方法

自动驾驶间接控制方案可以简单概括为,根据当前车辆行为需求,在满足车辆自身运动学和动力学约束条件下规划出一条空间上可行且时间上可控的无碰撞安全运动轨迹,然后设计适当的控制律跟踪生成的目标轨迹,从而实现自主驾驶。

间接控制结构示意图

基于人工智能的直接控制方法

由于自动驾驶汽车行驶环境具有不确定性、不可重复性和不可预测性等特征,很难建立精确的数学模型进行控制律的设计,因此传统控制策略已无法满足自动驾驶驾驶控制的要求。

这样的背景下,基于人工智能的直接控制方法就成为目前自动驾驶控制系统的主流形式。

直接控制结构示意图

基于人工智能决策控制模型本质上是模拟人脑对外界环境信息和车体本身信息的感知,同时由驾驶经验并同在线学习机制来获得持续稳定输出的过程。

这种控制模式可以有效提升自动驾驶汽车在面对不同场景下的随机应变能力,代表着自动驾驶控制执行系统在未来一段时间内的主流发展方向。


引申与思考

近年来,应用于计算机视觉领域的深度学习技术得到了突破性的发展,随即被广泛应用于了自动驾驶领域。有大量的自动驾驶系统,包括 Apollo,Autoware等,使用了诸如物体检测、目标追踪、姿态预测等深度学习相关技术。深度学习的应用使得自动驾驶系统能够更加适应复杂的环境条件,更加适应复杂的任务需求;使自动驾驶逐渐从实验室走向现实,从辅助驾驶过渡到全自动驾驶。然而在另一方面,自动驾驶系统层出不穷的安全性问题引发了人们的担忧。深度学习系统自身具有的高度非线性、不可解释性特征,给系统的安全性分析提供了困难。目前已有大量的关于基于深度学习的自动驾驶系统的安全性保障、安全性测试的工作被提出,包括神经元覆盖、场景迁移覆盖、输入空间划分、故障注入检测、测试数据集生成等。

未来的挑战主要有几方面:

首先,在当今生物计算、脑科学尚未全面解锁的情况下,实证主义以“机器学习+大数据/复杂环境+大算力”模式训练大规模智能模型,确实可以解决不少问题,但是数据也面临着不少问题。首先数据需要大量的人力标注,人力标注意味着人也会出错,一旦标注错误,如何高效的发现错误将是一个关键的点,或者在标注的时候带有某些不和谐的色彩(性别、肤色等等),这都会影响算法模型的准确性公平公正性。

其次,算法模型的验证一般会采用开放数据集,但是这些数据集有一定的局限性,例如结构化场景的局限,Cornercase的不足等等,当模型精度到达一定的程度后就需要新的数据去训练和验证,那么这些数据的来源无非是通过实际测试或者虚拟仿真,虚拟仿真的工具开发将会是重点之一,这将会是进入数字世界的一把钥匙。

最后,算法再厉害也存在物理的限制,无论是哪种传感器都会有物理限制。根据信息论的观点,对抗不确定性的方法就是获取更多的相关信息。自动驾驶感知面对各种不确定,在硬件方面、软件方面同步获取信息,未来产品边界成熟在成本的压力下,将会选择最优化的方案,基于物理性质的感知将会是下一个重点方向,这就是汽车、手机行业开始跨界融合的原因之一。在视觉领域,无论是摄像头物理尺寸还是底层防抖、去反射、去雾等等,手机厂商已经有相对成熟的技术方案,随着汽车智能化的不断普及,手机行业和汽车行业的技术将会不断融合,具体就看融合的方式方法。