导读算法
10月30日,华为联合高德、千寻发布了业内首家面向手机用户的车道级导航应用。在这背后是高精度定位技术不断演进发展,最终走向成熟量产的过程。本文将结合高德地图在车道级导航及自动驾驶等领域的工做,分享咱们对于高精度定位技术演进的思考,以及在高精定位实际落地应用中的一些实践。安全
1、高德定位技术概述网络
定位技术是支撑高德地图的导航、交通等核心业务的关键基础技术,他的主要任务是肯定物体(一般是人或车)在一个相对固定的坐标系中的位置和姿态。咱们用手机高德地图做为例子来讲明都有哪些技术在实际应用场景中发挥做用。 架构
一般手机的基础定位能力是由手机的GNSS芯片提供的,它为咱们在室外的绝大部分场景下提供了5~10米的定位精度。可是在卫星信号很差的时候,定位可能会漂移,咱们须要识别出这种状况。另外,当信号受到干扰的时候,位置可能出现有规律的偏移,咱们也要识别出干扰,而且在可能的状况下从新解算出正确的位置。当GNSS定位不许的时候,想要持续定位,能够利用传感器识别出步行/驾车状态,再进行航位推算(PDR、VDR)。当进入室内卫星信号丢失了,经常使用的定位方法是根据手机扫描的基站和Wifi、蓝牙等信号作网络定位。框架
上面这些技术提供了基础的位置坐标,而在导航过程当中,咱们更关心的是行驶在哪条路上,有没有偏航,距离下个路口有多远,想获得这些信息就须要用到地图匹配技术。在一些很是复杂的场景下,好比高架桥、主辅路,判断道路变得很是困难,这时候还须要用到一些专门的识别模型来解决匹配问题。优化
图1 手机高德地图中的定位技术spa
上面提到的只是具体一个业务场景中的部分技术,下面展现了高德定位技术的一个更完整的大图。总的来说,咱们是经过构建一套“云+端+数据”的完整的技术体系,并建设质量迭代系统保证各技术模块的持续更新迭代,来支撑众多的定位业务应用。设计
图2 高德定位技术大图3d
2、定位技术如何向高精演进blog
回到图1,咱们能够看到这里提到的定位技术尽管扩展了用户场景,但在定位精度方面并无明显提高。若是要实现前面提到的车道级导航,乃至更加智能化的自动驾驶,就要求定位精度显著提升到亚米级,甚至厘米级。那么怎么作到这一点?咱们下面会从技术的角度作一个分析梳理。
首先,咱们把图2中涉及的,以及其余更普遍的定位技术,按照定位原理分红三类,分别是航位推算、几何定位和特征定位。针对不一样的定位类型分析影响精度的因素,总结提高精度的方法,最终指望找到实现高精定位的技术路径。
表1 不一样定位技术的分析汇总
1. 航位推算
航位推算的基本原理是从上一时刻位置出发,根据运动方向和距离推算下一时刻的位置。显然这种定位方法须要一个已知的起始位置,不然就只能获得相对的位置变化。同时在推算过程当中定位偏差会不断累积增大,因此影响精度的直接因素就是推算时间或距离。
此外,推算精度还受到每一个时刻的测量精度的影响,对于惯性传感器,这就直接由惯性器件的精度决定。例如,精度最高的战略级惯导,随时间发散的位置偏差可达30m/hr,相比之下,战术级惯导精度要差3个数量级,而咱们经常使用的消费级微机械(MEMS)惯导精度比战术级要再差1~2个数量级。
除了器件精度,推算过程当中的模型精度也会影响定位精度,这包含两个方面:一是对器件测量偏差的补偿模型,二是对计算偏差的补偿模型。一般只有当器件自己的精度足够高时,才须要考虑更精确的补偿模型。
2. 几何定位
几何定位是对已知位置的参考设备进行测距或者测角,再经过几何计算肯定自身位置。根据几何计算的方式不一样,包括RSS(信号强度)、TOA(到达时间)、AOA(到达角)、TDOA(到达时间差)等多种方法。对于测角定位方法,一个小的角度测量偏差可能在距离定位设施较远的地方产生很大的位置偏差,所以这种方法(如采用AOA方法的蓝牙定位)的定位精度一般受范围限制。在测距方法中,采用时间到达模型(如采用TOA方法的GNSS定位,采用TDOA方法的UWB定位)比信号强度模型(如采用RSS方法的蓝牙和Wifi定位)更有可能得到较高的定位精度。但在实际应用中,最终的定位精度受到距离测量精度的影响,尤为是在卫星定位这一类长距离信号传播的场景中,如何消除信号传播路径上的测量偏差,就成为决定定位精度的关键。此外,几何定位的精度也受到定位设施数量和分布的影响,同时观测的设施越多、分布越均匀,精度一般也越高。
3. 特征定位
特征定位方法首先获取周围环境的若干特征,如基站id、Wifi指纹、地磁场、图像、Lidar点云等。接下来有两种处理方式,一种是把接收到的特征和事先采集的特征地图进行匹配,肯定在特征地图中的位置;另外一种是没有特征地图,经过对比先后帧的特征变化来进行位置姿态推算(即SLAM技术),达到相似航位推算的相对定位效果。显然,影响特征定位精度的直接因素是特征的数量、质量和区分度。
所以,采用信号指纹特征(如Wifi指纹)的定位方法由于指纹的稀疏性一般精度有限。基于环境感知特征的定位方法在采集的特征足够密集的状况下(如高线数Lidar,中高分辨率图像等)能够达到很高的精度,可是在实际应用中受环境影较大,当环境特征单一的时候(如天空、雪天)精度就会降低甚至没法定位。另外,特征地图匹配方法的定位精度也受到特征地图精度的限制,特征推算方法(如视觉SLAM)的定位偏差会随距离累积,具备相似航位推算的发散效果。
综合上面的分析,能够筛选出具有高精度定位能力的技术选型。完整的高精定位方案首先须要至少一项高精度绝对定位技术,如几何定位中的GNSS定位,特征定位中的Lidar点云匹配等;其次,针对这些方案中的场景限制,辅助相对定位手段,如DR、SLAM技术等,进行补充。
表2 高精定位的技术路线
3、高精定位业务场景与解决方案
上面从技术的角度分析了高精定位可能的实现路径,接下来咱们从高德的具体业务场景出发,看一看这些技术在实际业务中是如何落地的。
1. 实际业务场景须要什么样的高精定位能力
出行场景是高德地图的核心业务场景。以驾车出行为例,传统的出行应用是以TBT(Turn-by-turn)导航为表明的道路级应用,它对于定位精度的要求在10m左右。更精细的导航体验,如车道级导航,须要将汽车定位到车道上,这就须要位置精度达到1米之内。对于智能驾驶场景,为了保证机器自动驾驶的安全性,对定位精度的要求更高,通常在道路横向的精度须要小于20厘米。
图3 驾车出行场景的高精应用
除了对精度的要求,不一样业务场景对于高精定位能力还提出了其余维度的要求。
1)可靠性(或完整性):这主要用来衡量定位系统是否是有能力发现可能的错误,这对于依赖定位进行智能驾驶的应用尤为重要。好比,系统须要对当前的位置给出一个精度半径,当实际的位置精度小于这个半径时,系统就是可靠的。因此,对于可靠性要求比较高的应用,这个半径的估计一般是保守的。
2)可用性:若是系统可以准确的判断当前的定位精度知足导航、自动驾驶等业务的要求,这时系统就是可用的。显然,可用性要求精度半径的估计不能太大,不然系统会频繁认为定位不可靠,致使相关的功能没法使用。
3)算力:做为传统导航应用的升级,车道级导航对于算力的敏感度较高,一般要求知足目前的手机、车机导航的算力限制。智能驾驶根据不一样的智能程度分级(SAE Level1~Level5),对算力的要求也不一样。一般低等级智能驾驶搭载的传统汽车电气架构没法提供更多的算力资源,而高等级智能驾驶使用的集中计算单元能够提供的算力资源更丰富。
除此以外还有许多与实际应用相关的需求,好比输出定位结果的时间稳定性,定位可以覆盖的场景范围等。
总结一下,车道级导航须要的核心能力是识别当前车道,这通常要求定位精度小于1米,同时做为导航应用,须要在传统导航的基础上提升道路匹配的准确率。低等级智能驾驶(L3如下)要求车道识别和道路匹配(这主要是为了保证智能驾驶只在容许的道路范围内打开,如高速路)的准确率更高,更进一步要求横向位置精度达到20厘米,另外对系统的可靠性要求也更高。
上面的两类应用是咱们目前最主要的业务场景,它们都要求在较低算力条件下实现高精定位功能。为了知足这些业务的须要,咱们开发了轻量级的一体化融合定位引擎。
2. 轻量级的一体化融合定位解决方案
这里咱们使用的定位技术主要包括:RTK-GNSS技术,图像语义匹配,IMU或汽车模型DR技术等。其中,图像语义匹配使用视觉设备(一般为车上装载的智能摄像头,如mobileye等)识别的车道线、地面标志等信息做为输入,与高精地图数据进行匹配定位,这一过程处理的语义要素有限,因此算力消耗不大。至于其余技术在传统导航定位中已经涉及,因此方案总体的算力消耗能够控制在和普通导航同一量级。
图4 一体化融合定位解决方案
上面的一体化方案框架能够接收所有或部分定位信号输入,同时提供道路级和车道级的定位结果,保证了在全场景下定位的连续性。在具体应用中落地时,方案的形式又有所不一样。
对于智能驾驶应用,高可靠性要求系统具有更多的冗余信息来容错,所以一般须要RTK-GNSS、IMU、视觉语义等全部信息输入,在收到这些信息以后须要解决两个问题:1)如何判断输入信号哪些是可靠的,2)如何充分利用全部信息进行融合定位。
这里咱们采用了基于多假设的粒子滤波做为高精融合定位的基本算法,而且设计实现了下面的算法改进:
目前该算法已经在一款L3级别智能驾驶车型上落地,正在进行大规模实验验证。
对于车道级导航应用,因为成本和使用条件的限制,一般没法获取全部输入信息。可是根据表2,咱们至少须要RTK-GNSS或者视觉语义其中之一进行高精度绝对定位。在手机终端上,比较便捷的实现方案是升级手机GNSS芯片支持RTK差分来提高精度。在前面华为手机上首发的车道级导航应用就是综合了华为和千寻的相关技术和服务来实现高精度的绝对定位。
对于车机,能够将车上用于低等级智能驾驶功能的智能摄像头信息接入导航,直接升级车道级导航功能。在这个应用场景下的高精融合定位仍然是以上面的粒子滤波算法做为基础,但须要在算法和工程上灵活适配各类不一样的输入信号类型和信号特征。
另外,针对导航场景的特色,一体化融合定位还根据车道级定位结果,好比汽车是否是在出口车道上,来辅助判断主辅路、高架桥等复杂路况条件下的偏航状况,提高用户导航的总体体验。
目前基于华为手机的车道级导航要发布上线,车机的车道级项目也正在实施落地,不久就会和你们见面。
3. 面向复杂场景的多元紧耦合SLAM技术
上面的轻量级融合定位方案能够解决室外大部分遮挡少、语义清晰场景的高精度定位问题,可是对于更复杂的场景,好比室内、停车场、城市复杂路口等,高精度GNSS可能无效,视觉语义信息也较少,这时候就须要融合更丰富的定位手段。在高等级智能驾驶(L4以上)中一般使用Lidar点云匹配,和/或高精度惯导DR来保证持续的高精度定位,但Lidar和高精惯导的成本很高,大规模应用受限。SLAM技术能够用低成本视觉传感器,持续推算高精度位置和姿态,能够做为低成本高精定位的有效手段。相比上面的轻量级方案,它的算力成本较高,可是在目前终端算力持续升级的大环境下,仍然具备很好的落地潜力。
咱们的思路是用一套紧耦合的方案,尽量充分利用各类低成本传感器:GNSS、IMU、视觉等提供的信息,依据这些信息在不一样维度上的偏差特征,创建最优化模型,实现最优的位置姿态估计。
图5 多元紧耦合SLAM算法框架
咱们在公开数据集EuRoc和Kaist上对比了这一套多元紧耦合SLAM算法和目前流行的视觉-IMU融合算法、视觉-IMU-GNSS融合算法的效果,其位置精度提高1倍以上。接下来咱们将在手机、车机终端上优化算法的算力消耗,并在将来面向全场景的高精度导航、智能驾驶应用中落地。
4、总结与展望
定位技术的发展由来已久。事实上,若是咱们回到二三十年前甚至更早,那时候就已经产生了用于测绘的专业的高精定位技术,因此定位精度自己并非问题。可是今天在人们出行方式深入变革的背景下再提升精定位,咱们面临的问题是怎么样构建用户用得起,又真正可以为出行提供便利的技术和应用。
因此,将来的高精定位首先须要扩展场景应用,从室外到室内,从驾车到步行,最终达到全场景覆盖。针对场景应用的特色,明确对高精定位在精度、可靠性、成本等各个维度上的需求。充分结合当前快速发展的传感、通信、计算等领域技术,设计最佳的解决方案。可能的研发方向包括: