图片来自“视觉中国”
现如今,技术通常被分为环境感知与定位、决策规划和运动控制3个部分。
环境感知与定位负责确定汽车周围哪里有汽车或者行人,前面是红灯还是绿灯,即确定环境和汽车的状态。
决策规划负责该汽车该怎么办,是跟着走还是绕过去,加速还是减速,走一条什么样的线路既安全又有效率并且还相对舒适等。
运动控制须对传统汽车的执行机构进行电子化改造。决策指令和轨迹下达给控制器之后,执行器比如电机、转向、制动等要尽量快速并且小偏差地跟上规划的轨迹,就好比健壮的身体才能完成头脑的指令。
环境感知是无人驾驶的“眼睛”
在无人驾驶汽车上,传感器组成了感知模块替代了驾驶员的感受器官,快速、精准地获取包括,障碍物的距离,前方红绿灯的指示,限速标志上的数字等的环境状态信息,以及车辆位置、车速等自车状态,是实现车辆安全行驶的保证。常用的探测环境状态的传感器有摄像头、激光雷达,毫米波雷达、超声波传感器等,确定自车状态的传感器有/惯导、轮速传感器等。
摄像头可以根据物体的特征对障碍物进行分类,如果需要得出障碍物的深度信息,则需要两个摄像头,一般称为双目立体视觉。双目的两个摄像头保持着一定的距离,如同人类的双眼视差,通过三角测量原理计算出像素之间的偏移来获取物体的三维信息。除了可以帮助汽车确定自己的位置以及行进速度之外,双目摄像头更主要的功能是识别道路上的信号灯和信号标志,保证自主行车遵循道路交通规则。但双目相机受天气状况和光照条件变化的影响很大,并且计算量也相当大,对计算单元的性能要求非常高。
无人车上常用的雷达有激光雷达,毫米波雷达,激光雷达主要是通过发射激光束,来探测目标的位置、速度等特征量。激光雷达探测范围更广,获得距离和位置的探测精度更高,因此它广泛应用于障碍物检测、环境三维信息的获取、车距保持、车辆避障中。但是激光雷达容易受天气影响,雨雪雾天气下性能较差。另外,激光发射器的线束越多,每秒采集的点云就越多,探测性能也就更强。然而线束越多也代表着激光雷达的造价更昂贵,64线束的激光雷达价格是16线束的10倍。目前百度和谷歌无人驾驶汽车车身上装载的是64线激光雷达。
毫米波雷达波束窄,分辨率高,抗干扰能力强,导引头穿透雾、烟、灰尘的能力强,相对激光雷达具有较好的环境适应性,下雨、大雾或黑夜等天气状况对毫米波的传输几乎没有影响。另外,其引导头具有体积小、质量轻和空间分辨率高的特点。随着单片微波集成电路技术的发展,毫米波雷达的价格和外型尺寸都有很大的下降。然而,探测距离受到频段损耗的直接制约,也无法感知行人,无法对周边所有障碍物进行精准的建模。
超声波传感器的数据处理简单、快速,主要用于近距离障碍物检测,一般能检测到的距离大约为1到5米,但检测不出来详细的位置信息。此外,当汽车高速行驶时,使用超声波测距无法跟上汽车车距的实时变化,误差较大。另一方面,超声波散射角大,方向性较差,在测量较远距离的目标时,其回波信号会比较的弱,影响测量精度。但是,在低速短距离测量中,超声波测距传感器具有非常大的优势。
GPS/惯导和轮速传感器主要是用来确定汽自身的位置,通常会对他们的数据进行融合提高定位精度。
多传感器融合是环境感知模块非常常见的算法。它可以减小误差,举个例子,图像的边缘往往发生在深度不连续的地方,把两维图像(通过相机获得)边缘提取出来和激光雷达给出的深度信息做共点影射(co-point mapping)匹配,可以把两维透视图像中道路的消失点和三维雷达信息匹配,这样就可以更准确地划分出路面在哪里,周围的建筑在哪里。
此外,高精度地图也是自动驾驶有力的支撑,如果有非常精准的地图信息,就可以直接用地图一次规划到车道线,这样可以减少视觉识别车道线的任务量。
决策与规划是无人驾驶的“大脑”
看看显卡大厂NVIDA是如何做无人驾驶的行为决策?
目前主流的决策框架分为基于专家算法的决策和基于机器学习的决策两种算法,而后者越来越被重视和研究。例如NVIDIA用卷积神经网络(CNN)将车前部摄像头捕捉到的原始像素图通过训练过的卷积神经网络输出汽车的方向操控命令,其无人驾驶汽车可以在非结构化道路例如山路、工地等道路上行驶,而这些路况是很难穷举的,因此靠传统的专家算法用条件判断去划分多变的情境是不现实的。
NVIDIA的学习框架如下:
训练数据包括从视频中采样得到的单帧视频,以及对应的方向控制命令。把预测的方向控制命令与理想的控制命令相比较,然后通过反向传播算法调整CNN模型的权值使得预测值尽可能接近理想值。训练得到的模型可以用正前方的摄像机的数据生成方向控制命令。
其中最关键的卷积神经网络(CNN)结构如下:
输出是转弯半径的倒数,输入是图像。
在五层卷积之后又接了三个全连接层(Fully-connected layer),模拟大脑神经作出决策。
卷积层(Convolutional feature map)是用来提取特征的,模拟视觉神经分辨不同物体。
网络的第一层(Mormalized input planes)对输入图像做归一化。在网络模型中进行归一化可以使得归一化过程根据网络结构调整,而且能用GPU加速处理过程。
NVIDIA的技术方案,从图像输入到控制(方向盘转角)输出的端到端的决策方法是一个黑箱系统,如果出现问题,不能像专家算法那样找出导致这个错误决策的原因。
所以更为可行的方案就是用神经网络来做环境感知和认知,比如识别红绿灯,人和汽车的姿态、山间小路的可行驶区域等等,再将这些处理过的环境信息发给决策做判断。环境信息的类型可以是一张融合了各种障碍物信息的地图,也可以是一张驾驶态势图(即只给出哪个区域相对安全或者危险,而不用具体给出所有障碍我的信息),这中间可供尝试的方案有很多。
选择哪条路去走?路径规划很重要!
路径规划是和控制的基础,是从轨迹决策的角度考虑的,可分为局部路径规划和全局路径规划。
全局路径规划的任务是根据全局地图数据库信息规划出自起始点至目标点的一条无碰撞、可通过的路径,但只是从起始点到目标点的粗略路径。在无人车实际行驶过程中,会受到路径的方向、宽度、曲率、道路交叉以及路障等因素影响,加上局部环境和自车状态的不确定性,因此会遇到各种不可测的情况。必须以局部环境信息和自车状态信息为基础,规划出一段无碰撞的理想局部路径,这就是局部路径规划。
局部路径规划相当于无人驾驶汽车的“大脑”,它从感知系统获取道路、障碍物等环境信息,并且得到上层决策给出的起始点与目标点的位姿信息,经过处理后实时生成安全平缓的行车轨迹。由于车辆的路径是带有时间属性的一条轨迹,因此轨迹规划通常分为路径规划和速度规划,路径规划常用样条曲线拟合满足避障、最大曲率以及曲率连续约束的路径,而速度规划则是沿着拟合的路径生成满足最大速度、最大加速度等约束的速度分布。最终规划以转向角和车速的数据形式传输给底盘控制系统,从而使车辆实现车道跟随和避障的功能。
所有都决定好后,就剩下车辆的动作!
相对传统的控制器和执行器,无人驾驶车辆更希望使用线控执行器,例如线控转向、线控制动、线控驱动,这样能够实现精准地控制。
在局部路径规划中,自动驾驶汽车综合考虑周边环境、自车状态等约束条件后,规划出一条理想的换道路径,并且将指令传达给相关执行机构。如果执行器无法跟上路径对车辆转角的要求,就会偏离规划路径。所以运动控制的算法也至关重要。
无人驾驶未来发展趋势如何?
现在无人车的技术路线主要分为两种,一是本文所介绍的基于自车传感器来获取各种信息,另外一种是基于5G通讯技术,通过车间通讯、车与基础设施通讯来获取环境信息的方案。比较而言,前者不依赖基础设施的改造和市面上其他汽车是否智能化的前提,因此更易于实现。虽然无人驾驶已经能够相对安全地驾驭99%的路况,但剩下的1% 却需要花费工程师99%的精力去解决。就2020年之前,
应该还是以的形式展现给消费者。