导读
10月30日,华为联合高德、千寻发布了业内首家面向手机用户的车道级导航应用。在这背后是高精度定位技术不断演进发展,最终走向成熟量产的过程。本文将结合高德地图在车道级导航及自动驾驶等领域的工作,分享我们对于高精度定位技术演进的思考,以及在高精定位实际落地应用中的一些实践。
一、高德定位技术概述
定位技术是支撑高德地图的导航、交通等核心业务的关键基础技术,他的主要任务是确定物体(通常是人或车)在一个相对固定的坐标系中的位置和姿态。我们用手机高德地图作为例子来说明都有哪些技术在实际应用场景中发挥作用。
通常手机的基础定位能力是由手机的GNSS芯片提供的,它为我们在室外的绝大部分场景下提供了5~10米的定位精度。但是在卫星信号不好的时候,定位可能会漂移,我们需要识别出这种情况。另外,当信号受到干扰的时候,位置可能出现有规律的偏移,我们也要识别出干扰,并且在可能的情况下重新解算出正确的位置。当GNSS定位不准的时候,想要持续定位,可以利用传感器识别出步行/驾车状态,再进行航位推算(PDR、VDR)。当进入室内卫星信号丢失了,常用的定位方法是根据手机扫描的基站和Wifi、蓝牙等信号做网络定位。
上面这些技术提供了基础的位置坐标,而在导航过程中,我们更关心的是行驶在哪条路上,有没有偏航,距离下个路口有多远,想得到这些信息就需要用到地图匹配技术。在一些非常复杂的场景下,比如高架桥、主辅路,判断道路变得非常困难,这时候还需要用到一些专门的识别模型来解决匹配问题。
图1 手机高德地图中的定位技术
上面提到的只是具体一个业务场景中的部分技术,下面展示了高德定位技术的一个更完整的大图。总的来讲,我们是通过构建一套“云+端+数据”的完整的技术体系,并建设质量迭代系统保证各技术模块的持续更新迭代,来支撑众多的定位业务应用。
图2 高德定位技术大图
二、定位技术如何向高精演进
回到图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 高精定位的技术路线
三、高精定位业务场景与解决方案
上面从技术的角度分析了高精定位可能的实现路径,接下来我们从高德的具体业务场景出发,看一看这些技术在实际业务中是如何落地的。
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)如何充分利用所有信息进行融合定位。
这里我们采用了基于多假设的粒子滤波作为高精融合定位的基本算法,并且设计实现了下面的算法改进:
-
根据假设特征缩减粒子维度,减少计算量;
-
采用分层归一化解决微小系统误差导致的粒子退化问题;
-
基于上下文的后验置信度计算,解决输入信号置信度缺失或错误;
-
基于信号窗口的输入信号延迟和乱序处理;
-
利用高精卫星定位和高精地图数据辅助传感器校准,提升DR能力。
目前该算法已经在一款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倍以上。接下来我们将在手机、车机终端上优化算法的算力消耗,并在未来面向全场景的高精度导航、智能驾驶应用中落地。
四、总结与展望
定位技术的发展由来已久。事实上,如果我们回到二三十年前甚至更早,那时候就已经产生了用于测绘的专业的高精定位技术,所以定位精度本身并不是问题。但是今天在人们出行方式深刻变革的背景下再提高精定位,我们面临的问题是怎么样构建用户用得起,又真正能够为出行提供便利的技术和应用。
所以,未来的高精定位首先需要扩展场景应用,从室外到室内,从驾车到步行,最终达到全场景覆盖。针对场景应用的特点,明确对高精定位在精度、可靠性、成本等各个维度上的需求。充分结合当前快速发展的传感、通讯、计算等领域技术,设计最佳的解决方案。可能的研发方向包括:
-
更低成本的高精GNSS技术,如PPP-RTK技术等;
-
基于最新通信技术(如5G)的高精度定位;
-
基于最新感知技术(如低成本Lidar)的高精度定位;
-
对各种定位技术的更深度的融合方案(如IMU、视觉辅助RTK解算)。