自动驾驶技术基础知识介绍
美国汽车工程师协会(SAE)将自动驾驶分为6个等级:0~5 ***。
0级:没有自动化。
在没有任何自动驾驶功能或技术的情况下,人类驾驶员对汽车的所有功能都有绝对的控制权。司机需要负责转向、加速、刹车和观察路况。任何驾驶辅助技术,如现有的前向碰撞预警、车道偏离预警、自动雨刷和自动大灯控制等。,虽然智能,但还是需要人来控制车辆,所以还是属于0级。
1级:驾驶辅助。
驾驶员仍然对驾驶安全负责,但一些控制权可以委托给系统管理人员,一些功能可以自动执行,如自适应巡航控制(ACC)、紧急制动辅助(EBA)和车道保持支持(LKS)。1级的特点是只有单一功能,驾驶员无法同时控制自己的手脚。
级别2:部分自动化
人类司机和汽车共享控制权。驾驶员可能在一些预设的情况下不操作汽车,即手脚同时离开控制,但驾驶员仍需随时待命,对行车安全负责,并准备在短时间内接管驾驶权。例如,它结合了ACC和LKS形成的跟车功能。2级的核心不是拥有两个以上的功能,而是驾驶员不能再是主要操作者。
第三级:有条件的自动化。
在有限的情况下可以实现自动控制,比如在预设的路段(比如高速和不太拥挤的城区路段)。自动驾驶可以完全负责整车的控制,但在紧急情况下,驾驶员还是需要在某个时间接管汽车,但有足够的预警时间,比如前方的道路工作。3级将解放司机,即他们不再负责驾驶安全,也不必监控路况。
级别4:高度自动化
自动驾驶在某些路况下可以高度自动化,比如封闭的公园、高速公路、城市道路或者固定的行驶路线。在这些有限的条件下,人类驾驶员可以在没有干预的情况下完成。
第五级:完全自动化。
对行驶环境没有限制,可以自动应对各种复杂的交通状况和道路环境,在没有辅助的情况下从起点行驶到目的地。它只需要起点和终点的信息,汽车会一直负责行驶安全,完全独立于驾驶员的干预,不受具体道路的限制。
注:DDT(动态驾驶任务):动态驾驶任务是指汽车在道路上行驶所需的全部实时操作和策略功能,不包括行程安排、目的地、路线选择等策略功能。
无人驾驶系统的核心可以概括为三个部分:感知、规划和控制。下图显示了这些部件的相互作用以及它们与车辆硬件和其他车辆的相互作用:
感知是指无人驾驶系统从环境中收集信息并从中提取相关知识的能力。其中,环境感知是指对环境的理解能力,如障碍物的位置、路标/标志的检测、行人和车辆的检测以及其他数据的语义分类。一般来说,定位也是感知的一部分,定位是无人车确定自己相对于环境的位置的能力。
为了保证无人车能够理解和把握环境,无人驾驶系统的环境感知部分通常需要获取周围环境的大量信息,包括:障碍物的位置、速度和可能的行为,行驶区域,交通规则等等。无人车通常通过融合激光雷达、摄像头、毫米波雷达等各种传感器的数据来获取这些信息。
车载雷达传感器的功能和优缺点各不相同,相关比较如下表所示:
激光雷达是一种利用激光探测和测量距离的设备。它每秒钟可以向环境发送数百万个光脉冲,其内部是一个旋转结构,这使得激光雷达能够实时构建周围环境的三维地图。
一般来说,激光雷达以10Hz左右的速度对周围环境进行扫描,一次扫描的结果是由密集的点组成的三维地图,每个点都有(x,y,z)信息。这个图叫做点云图。如下图所示,是威力登VLP-32c激光雷达建立的点云地图:
由于其可靠性,激光雷达仍然是无人驾驶系统中最重要的传感器。但在实际使用中,激光雷达并不完美,点云往往过于稀疏,甚至会丢失一些点。激光雷达难以识别不规则物体表面的模式。另一个很大的挑战是激光雷达的感知范围比较近,平均感知范围约为150m,这取决于环境和障碍物。激光雷达在角度分辨率上也远不如相机。激光雷达对环境也很敏感。比如下雨天,车辆溅起的水在激光雷达上是有噪音的。
毫米波雷达通过发射电磁波和探测回波来探测目标的存在、距离、速度和方位。毫米波雷达由于技术相对成熟、成本低廉、恶劣天气下性能良好,成为传感设备的重要组成部分。但由于其分辨率较低,不能作为激光雷达的替代品,而是激光雷达的重要补充设备。
根据镜头和排列方式的不同,有四种相机:单目相机、双目相机、双目相机和全景相机。
单目摄像头模块只包含一个摄像头和一个镜头。因为很多关于图像算法的研究都是基于单目摄像机的,所以单目摄像机的算法成熟度要高于其他类型的摄像机。但是单眼有两个先天缺陷。第一,它的视野完全取决于镜头。焦距短的镜头视野广,但缺乏远距信息。或者反之,达拉斯到观众席因此,单目相机一般选择焦距适中的镜头。第二,单一视距精度低。相机的图像是透视图,即物体越远,图像越小。附近的物体需要用几百甚至几千个像素来描述;远处的同一个物体,可能只需要几个像素就能描述出来。这个特性会导致像素越远,代表的距离就越大,所以对于单目来说物体越远,测距的精度就越低。
由于视距单一的缺陷,双目相机应运而生。当两个相互靠近的相机拍摄一个物体时,会得到同一物体在相机成像平面上的像素偏移量。利用像素偏移量、相机焦距和两个相机之间的实际距离等信息,根据数学转换就可以得到物体的距离。双目虽然可以得到高精度的测距结果,提供图像分割的能力,但是和单目一样,镜头的视场完全取决于镜头。而且双目测距的原理对两个镜头的安装位置和距离要求比较多,会给摄像机标定带来麻烦。
三眼相机无论是单目还是双目都有一定的缺陷,所以无人驾驶中广泛使用的相机方案就是三眼相机。单目摄像机实际上是由三个不同焦距的单目摄像机组合而成。根据焦距的不同,每个相机的感知范围也不同。对于相机来说,感知范围要么失去视野,要么失去距离。三眼相机可以弥补感知范围的问题。因此在业内应用广泛。正是因为三眼相机每个相机的视场不一样,所以近的范围给宽视场相机,中的范围给主视场相机,远的范围给窄视场相机。这样每个摄像头都能发挥最大的优势。三用的缺点是需要同时标定三个摄像头,所以工作量比较多。其次,软件部分需要关联三个摄像头的数据,对算法的要求也很高。
环视摄像头,前面提到的三款摄像头的镜头都是非鱼眼的,环视摄像头的镜头是鱼眼镜头,安装位置朝向地面。部分高配车型会有“360°全景显示”功能,使用全景摄像头。安装在车辆前方、车辆左右后视镜下方和车辆后方的四个鱼眼镜头采集图像。为了获得足够大的视场,鱼眼镜头会产生严重的图像畸变。全景摄像头的感知范围不大,主要用于车体5~10米范围内的障碍物检测,独立停车时车库线的识别等。
为了理解点云信息,一般来说,我们对点云数据进行两种操作:分割和分类。其中,分割是将点云地图中的离散点聚类成几个整体,而分类是区分这些整体属于哪一类(如行人、车辆、障碍物)。分割算法可以分为以下几类:
点云目标分割完成后,需要对分割后的目标进行正确分类。在这个环节中,一般采用机器学习中的分类算法,如支持向量机(SVM),对聚类的特征进行分类。近年来,由于深度学习的发展,业界开始使用专门设计的卷积神经网络(CNN)对三维点云聚类进行分类。
在实际应用中,无论是特征提取的方法——SVM还是原始点云的方法——CNN,由于激光雷达点云本身分辨率较低,基于点云的分类对于反射点稀疏的目标(如行人)并不可靠。因此,在实际应用中,我们往往将雷达和相机传感器集成在一起,利用相机的高分辨率对目标进行分类,利用激光雷达的可靠性对障碍物进行探测和测量,综合两者的优势来完成环境感知。
在无人驾驶系统中,我们通常使用图像视觉来检测道路和道路上的目标。道路检测包括车道检测和可行驶区域检测。道路标志的检测包括对所有交通参与者的检测和分类,如车辆检测、行人检测、交通标志检测等。
车道线的检测涉及两个方面:第一是识别车道线,对于弯曲的车道线,可以计算曲率;二是确定车辆本身相对于车道线的偏差(即无人车本身在车道线中的位置)。一种方法是提取一些车道特征,包括边缘特征(通常是梯度,如Sobel算子),车道线的颜色特征等。,并使用多项式来拟合我们认为可能是车道线的像素,然后根据多项式和车辆上安装的摄像头的当前位置来确定前方车道线的曲率和车辆与车道的偏差。
目前,检测驾驶区域的一种方法是使用深度神经网络直接分割场景,即通过训练一个逐像素的深度神经网络来切割图像中的驾驶区域。
目前,交通参与者的检测和分类主要依靠深度学习模型,常用的模型包括两种:
传感器层以固定的频率一帧一帧地将数据发送给下游,但下游无法做出决策,也无法与每一帧的数据融合。因为传感器的状态并不是100%有效,仅仅根据某一帧的信号来判断前方是否有障碍物(可能是传感器误检测到了),对下游决策是极不负责任的。所以上游需要对信息进行预处理,保证车辆前方的障碍物在时间维度上一直存在,而不是一闪而过。
这里会用到智能驾驶领域经常用到的一种算法——卡尔曼滤波器。
卡尔曼滤波器是一种高效的递归滤波器(自回归滤波器),它可以从一系列不完全和有噪声的测量值中估计出动态系统的状态。卡尔曼滤波会根据各次测量在不同时刻的值来考虑不同时刻的联合分布,进而生成未知变量的估计,因此会比仅基于单一测量的估计方法更准确。
卡尔曼滤波器在技术领域有许多应用。常见的是飞机和宇宙飞船的制导、导航和控制。卡尔曼滤波也广泛应用于时间序列的分析,如信号处理和计量经济学。卡尔曼滤波也是机器人运动规划和控制的重要课题之一,有时也会包含在轨迹优化中。卡尔曼滤波器也用于中枢神经系统运动控制的建模。因为给出运动指令和接收到感觉神经的反馈是有时间差的,所以使用卡尔曼滤波器有助于建立一个实用的系统,估计运动系统的当前状态,更新指令。
信息融合是指对具有相同属性的信息进行多合一操作。
比如摄像头探测到车辆前方有障碍物,毫米波也探测到车辆前方有障碍物,激光雷达也探测到前方有障碍物,但实际上前方只有一个障碍物,那么我们需要做的就是融合多传感器下这个车辆的信息,告诉下游前方有一辆车,而不是三辆车。
坐标变换在自动驾驶领域非常重要。
传感器安装在不同的地方,比如超声波雷达(如果车辆右侧有一个障碍物,距离超声波雷达3米,那么我们是否认为障碍物距离车辆3米?不一定,因为决策控制层在进行车辆运动规划时,是在车身坐标系(车身坐标系——一般后轮轴的中心是O点)中完成的,所以所有的传感器信息都需要转移到车辆坐标系中。因此,感知层获得3m的障碍物位置信息后,必须将本章的障碍物位置信息传递到车辆坐标系中,可用于规划决策。同理,摄像头一般安装在挡风玻璃下,得到的数据也是基于摄像头坐标系。对于下游数据,也需要转换到车辆坐标系。
在无人车的感知层面上,定位的重要性不言而喻。无人车需要知道自己相对于环境的确切位置,这里的定位误差不能超过10cm。试想一下,如果我们的无人车定位误差是30厘米,那么这将是一辆非常危险的无人车(无论对于行人还是乘客来说),因为无人车的规划和执行层并不知道它有30厘米的误差,他们仍然跟随。可见,无人车需要高精度的定位。
目前无人车应用最广泛的定位方式是全球定位系统(GPS)和惯性导航系统的融合,其中GPS的定位精度在几十米到几厘米之间,高精度的GPS传感器价格相对昂贵。基于GPS/IMU的定位方法,在GPS信号缺失且较弱的情况下,如地下停车场、高楼环绕的城区等,无法实现高精度定位,只能应用于一些场景下的无人任务。
地图辅助定位算法是另一种广泛使用的无人车定位算法。同步定位与地图创建(SLAM)是这类算法的代表。SLAM的目标是在构建地图的同时,利用这个地图进行定位。SLAM通过使用观察到的环境特征来确定当前车辆位置和当前观察到的特征。这是通过使用先前和当前观察来估计当前位置的过程。在实践中,我们通常使用贝叶斯滤波,包括卡尔曼滤波、扩展卡尔曼滤波和粒子滤波。虽然SLAM是机器人定位领域的研究热点,但是在无人车的实际开发中使用SLAM存在问题。与机器人不同,无人车的运动是长距离的、开放的。在长距离运动中,随着距离的增加,SLAM定位的偏差会逐渐增大,导致定位失败。
在实践中,对无人车进行定位的一种有效方法是改变原有SLAM中的扫描匹配算法。具体来说,我们不再在定位的同时进行地图绘制,而是利用lidar等传感器提前构建出该区域的点云地图,并通过程序和人工处理为地图添加一些“语义”(比如车道线的具体标注、路网的位置、红绿灯、当前路段的交通规则等。).这个包含语义的地图,就是我们无人车的高度。在实际定位中,我们利用当前的激光雷达扫描和预先构建的高精度地图匹配点云,来确定我们无人车在地图中的具体位置。这类方法统称为扫描匹配,最常见的扫描匹配方法是迭代最近点法(ICP),基于当前扫描与目标扫描之间的距离测量完成点云配准。
此外,正态分布变换也是一种常用的点云配准方法,它基于点云的特征直方图。基于点云配准的定位方法也可以达到10 cm以内的定位精度。点云配准虽然可以给出无人车相对于地图的全局定位,但是这种方法过于依赖事先搭建的高精度地图,在开阔路段还是需要配合GPS定位使用。在场景相对简单的路段(如高速公路),使用GPS添加点云匹配的成本相对较高。
延伸阅读:L4自动驾驶仪中感知系统的挑战与解决方案
浅析自动驾驶的一个重要环节:感知系统的发展现状及方向
无人车的规划模块分为三层:任务规划、行为规划和行动规划。其中,任务规划通常也被称为路径规划或路线规划,负责顶层的路径规划,比如从起点到终点的路径选择。我们可以把我们现在的道路系统看成一个有向图网络,可以表示道路之间的联系、交通规则、道路宽度等信息,本质上就是我们前面定位部分提到的高精地图的“语义”部分。这个有向图称为路由网络图,如下图所示:
这样的路网图中的每一条有向边都是加权的,于是无人车的路径规划问题就变成了为了使车辆在路网图中到达某个目标(通常是从A到B)而基于某种方法选择最优(即损失最小)路径的过程,然后问题就变成了有向图搜索问题。Dijkstra算法等传统算法。
行为规划有时被称为决策者。它的主要任务是根据任务规划的目标和当前的局部情况(其他车辆和行人的位置和行为,当前的交通规则等)做出无人车下一步应该执行的决策。).这一层可以理解为车辆的副驾驶。他根据目标和当前的交通状况,指示驾驶员是跟随还是超车,是停车等待行人通过还是绕过行人等等。
行为规划的一种方法是使用包含大量动作短语的复杂有限状态机(FSM)。从一个基本状态开始,FSM将根据不同的驾驶场景跳转到不同的动作状态,并将动作短语传递给下层的动作规划层。下图是一个简单的有限状态机:
如上图所示,每个状态都是对车辆动作的一个决定,状态之间有一定的跳跃条件,有些状态可以自循环(比如上图中的跟踪状态和等待状态)。虽然是目前无人车使用的主流行为决策方法,但有限状态机仍然有很大的局限性:首先,要实现复杂的行为决策,需要手工设计大量的状态;车辆可能会陷入有限状态机未考虑的状态;如果有限状态机没有设计死锁保护,车辆甚至可能陷入某种死锁。
为达到某种目的(如躲避障碍物)而计划一系列行动的过程称为行动计划。一般来说,考虑一个行动规划算法的性能通常使用两个指标:计算效率和完备性。所谓计算效率就是完成一个动作规划的处理效率,一个动作规划算法的计算效率很大程度上取决于配置空间。如果一个行动规划算法在问题有解时能在有限时间内返回一个解,在无解时返回无解,则称该算法是完备的。
配置空间:定义机器人所有可能配置的集合,它定义了机器人可以移动的维度。最简单的二维离散问题,那么构型空间是[x,y],无人车的构型空间可以很复杂,取决于使用的运动规划算法。
引入配置空间的概念后,无人车的动作规划就变成了:给定一个初始配置、一个目标配置和若干约束,在配置空间中寻找一系列动作以达到目标配置,这些动作的执行结果是将无人车从初始配置转移到目标配置,同时满足约束。在无人车的应用场景中,初始配置通常是当前状态(当前位置、速度和角速度等。)的无人车,而目标构型来自上层的行动规划,约束条件是车辆的运动极限(最大角度幅度、最大加速度等。).显然,高维构型空间的行动规划计算量是非常巨大的。为了保证规划算法的完整性,我们不得不搜索几乎所有可能的路径,这就形成了连续动作规划中的“维数灾难”问题。目前行动规划中解决这一问题的核心思想是将连续空间模型转化为离散模型,具体方法可归纳为两类:组合规划和基于采样的规划。
运动规划的组合方法通过连续的构形空间寻找路径,而不使用近似。由于这个性质,它们可以被称为精确算法。组合方法通过建立规划问题的离散表示来找到完整的解决方案。例如,在Darpa城市挑战赛中,CMU的无人驾驶汽车BOSS使用了行动规划算法。他们首先使用路径规划器生成备选路径和目标点(这些路径和目标点可以通过整合动力学来实现),然后通过优化算法选择最优路径。另一种离散化方法是网格分解方法。将配置空间网格化后,我们通常可以使用离散图搜索算法(如A*)找到一条优化路径。
基于采样的方法因其概率完整性而被广泛使用。最常见的算法是PRM(概率路线图)、RRT(快速利用随机树)和FMT(快速行进树)。在无人车的应用中,状态采样方法需要考虑两个状态的控制约束,同时需要一种能够有效查询采样状态和父状态是否可达的方法。
自动驾驶汽车的车辆控制技术旨在根据基于环境感知技术的决策规划目标轨迹。通过纵向和横向控制系统的配合,使汽车能够准确稳定地跟随跟踪目标轨迹,同时汽车在行驶过程中能够实现速度调节、保持距离、变道、超车等基本操作。
互联网科技公司主要做软件,主要在工程机上层;其实车厂主要是以下层的组装为主,也就是贴牌生产,对汽车不是那么熟悉。在制动、油门、转向等领域,话语权依然集中在博世、中国等Tier 1。
自动驾驶控制的核心技术是车辆的纵向控制和横向控制技术。纵向控制,即车辆的驱动和制动控制;横向控制,即方向盘角度调节和轮胎力控制。实现了纵向和横向的自动控制,可以根据给定的目标和约束自动控制车辆运行。所以从汽车本身来说,自动驾驶是一个综合的纵向和横向控制。
车辆纵向控制是在行驶速度方向上的控制,即自动控制车速和车辆与前后车辆或障碍物的距离。巡航控制和紧急制动控制都是自动驾驶的典型纵向控制案例。这类控制问题可以归结为电机驱动、发动机、变速器和制动系统的控制。各种电机-发动机-变速器模型、汽车行驶模型和制动过程模型,结合不同的控制器算法,形成各种纵向控制模式,典型结构如图所示。
此外,针对轮胎力的滑移率控制是纵向稳定性控制的关键部分。滑移率控制系统通过控制车轮滑移率来调节车辆的纵向动态特性,防止车辆过度行驶滑移或制动抱死,从而提高车辆的稳定性和操纵性能。防抱死制动系统(简称ABS)在制动时自动控制制动器的制动力,使车轮不抱死,处于滚滑状态(滑移率20%左右),从而保证地面能为车轮提供最大的制动力。一些智能滑移率控制策略利用充分的环境感知信息,为随道路环境变化的车轮设计最大滑移率调节器,从而提高轮胎受力效果。
智能控制策略,如模糊控制、神经网络控制、滚动时域优化控制等。,在纵向控制中也得到了广泛的研究和应用,并取得了良好的效果,被认为是最有效的方法。
传统的控制方法,如PID控制和前馈开环控制,一般都是建立发动机和汽车运动过程的近似线性模型,并在此基础上设计控制器。这种方法实现的控制对模型的依赖性大,模型误差大,精度和适应性差。从目前的论文和研究项目来看,寻求电机-发动机-传动系、制动过程和汽车运动的简单而精确的模型,以及对随机扰动具有鲁棒性和适应汽车性能变化的控制器,仍然是研究的主要内容。
车辆横向控制是指垂直于运动方向的控制,这也是汽车的转向控制。目标是控制汽车自动保持期望的行驶路线,在不同的速度、载荷、风阻和路况下具有良好的平顺性和稳定性。
汽车侧向控制的基本设计方法有两种,一种是基于驾驶员模拟;二是给出汽车横向运动力学模型的控制方法。基于驾驶员模拟的方法,一种策略是利用简单的运动力学模型和驾驶员操纵规则设计控制器;另一种策略是用驾驶员操纵过程的数据训练控制器获得控制算法。基于运动力学模型的方法应该建立更精确的汽车横向运动模型。典型的模型就是所谓的单轨模型,或者自行车模型,也就是说汽车左右两侧的特性是一样的。横向控制系统的基本结构如下所示。控制目标一般是汽车中心与道路中心线的偏差,同时也受到舒适性等指标的约束。