导读

高德定位业务包括云上定位和端上定位两大模块。其中,云上定位主要解决Wifi指纹库、AGPS定位、轨迹挖掘和聚类等问题;端上定位解决手机端和车机端的实时定位问题。近年来,随着定位业务的发展,用户对在城市峡谷(高楼、高架等)的定位精度提出了更高的要求。

特别是车机端定位,由于定位设备安装在车上,一方面,它可以搭载更丰富的定位传感器来解决特殊场景的问题,另一方面,各个传感器之间相互固连,有利于高精度的算法设计。这两点为车机端进一步提高导航精度的提供了可能。

城市峡谷一直是车机端定位的痛点。原因是城市峡谷的环境使用户无法接收到GPS信号或GPS信号受干扰,导致GPS无定位结果或定位精度差。这是“有源定位”固有的缺点,无法从算法上来克服。

针对这个问题,以GPS+IMU的多传感器融合方案越来越受到重视,因为“无源定位”的IMU恰好可以弥补GPS的短板。此外,车机还可以搭载里程计、视觉设备形成更丰富的多传感器融合方案。

对高德而言,地图数据是定位业务的灵魂。多传感器融合只是定位业务中的一部分,如何把多传感器与地图数据结合起来,始终是我们在思考的问题。

针对车机应用,我们使用GPS、IMU、里程计等传感器,结合高德地图的地图优势,提出了一种结合地图匹配(Map Matching)的多传感器融合算法——GPS/IMU/MM融合(软件+硬件的解决方案)。

本文概述了车载多传感器融合定位项目背景,该项目确立是为了向用户提供好的导航定位服务。为了解决用户反馈的三大痛点问题:偏航重算、无法定位和抓路错误,结合算法和数据,提出了一套软件+硬件的解决方案。最后,用实测数据验证对用户反馈问题的改善程度。

车载应用的痛点

  • 偏航重算:是指在高架或城市峡谷,信号遮挡引起位置点漂移;
  • 无法定位:是指在无信号区域(停车场、隧道)推算的精度低,导致出口误差大;
  • 抓路错误:是指主辅路、高架上下抓路错误。

其中,导致偏航重算和无法定位直接原因是GPS定位精度差和DR航位推算精度差。GPS定位精度由观测环境决定,难以改善;DR航位推算精度与DR算法性能有关,尤其是里程计系统误差和陀螺零偏的标定精度。对于抓路错误,直接原因是正确道路与误抓道路相隔太近,受定位精度限制无法区分;根本原因是只使用位置信息进行抓路,没有发挥其它数据的价值。

相关名词

GPS(GlobalPositioningSystem):指美国国防部研制的全球定位系统。用户设备通过接收GPS信号,得到用户设备和卫星的距离观测值,经过特定算法处理得到用户设备的三维坐标、航向等信息。使用不同类型的观测值和算法,定位精度为厘米级到10米级不等。GPS的优点是精度高、误差不随时间发散,缺点是要求通视,定位范围无法覆盖到室内。

IMU(Inertial measurementunit):指惯性测量单元。包括陀螺仪和加速度计。陀螺仪测量物体三轴的角速率,用于计算载体姿态;加速度计测量物体三轴的线加速度,可用于计算载体速度和位置。IMU的优点是不要求通视,定位范围为全场景;缺点是定位精度不高,且误差随时间发散。GPS和IMU是两个互补的定位技术。

MM(Map matching):指地图匹配。该技术结合用户位置信息和地图数据,推算用户位于地图数据中的哪条道路及道路上的位置。

技术方案

车机融合定位项目解决的是道路级的定位问题,受限于硬件性能,目前市场上通用的技术方案有两种,如下表1所示:

这两种技术方案涉及到3种技术手段,在场景覆盖和精度上,它们各有所长,互相补充。如表2所示:

表1表明,目前市面上存在的通用方案并不能完全解决偏航重算、无法定位和抓路错误这三个问题,尤其是抓路错误。为此,在技术层面上,我们将两套通用方案进行融合,提出了一套软+硬(GNSS+MM+DR)方案;在算法层面上,依靠高德的数据优势,以数据融合模块为核心,一方面提高定位结果可靠性,弥补硬件性能上的不足,另一方面对抓路错误问题进行专门的算法设计。

更进一步,将用户反馈的三个问题解构为算法上解决的三个问题:器件误差标定、场景识别和数据融合。如图所示:

功能模块

车机融合定位包括数据适配层(DataAdaptive Layer)、算法支撑层(Aided Navigation Layer)和融合层(NavigationLayer)。数据适配层负责将不同输入标准化、将信号同步;算法支撑层计算中间结果,为融合层服务;融合层是整个系统的核心,它负责融合算法支撑层输出的数据,得到可靠的导航信息。图3列出了各层所处位置及每个层的具体功能模块:

下面,将功能模块分为基础模块和特色功能两个部分分别进行介绍。

基础模块

GPS质量评估

GPS质量评估模块的功能是计算GPS位置、速度、航向角和全局可靠性指标。根据可靠性指标的大小将其投影到状态空间(GOOD、DOUBT、BAD、ABNORMAL)中,状态空间的值表征GPS数据质量的好坏。如图所示:

评估GPS质量有两个目的:第一,决定是否使用GPS数据进行器件误差标定或某些状态的判断(如转弯行为、动静状态等);第二,在数据融合模块,为设定GPS观测量的方差—协方差阵提供参考。

器件补偿

无GPS信号环境时,定位只能依靠DR算法。DR算法精度主要取决于IMU(陀螺仪和加速度计)和测速仪的误差,陀螺仪误差将引起位置误差随时间的二次方增长,测速仪误差将引起位置误差随时间线性增长,如图所示:

为改善无GPS信号环境的定位精度,必须进行器件误差补偿。

补偿模块的主要功能是利用GPS数据来补偿速度敏感器误差参数(比例因子)和IMU的误差参数(陀螺仪天向比例因子和陀螺仪三轴零偏)。补偿的目的是在无GPS信号或弱GPS信号的场景,仅靠DR算法也能得到较为可靠的导航信息。

DR算法

DR(DeadReckoning,航位推算)算法是指已知上一时刻导航状态(状态、速度和位置),根据传感器观测值推算到下一时刻的导航状态。DR算法包括姿态编排和位置编排两个部分。

姿态编排使用的是AHRS(Attitude andheading reference system )融合算法,处理后输出车机姿态信息。姿态编排流程如图6所示:

位置编排是指结合姿态编排结果,对测速仪观测值进行积分后得到车机位置。

融合算法

车机融合定位项目使用了GNSS、MM和DR三项技术,每项技术能够提供全部或部分车机导航信息,如表3所示。以位置信息为例,GNSS、MM和DR都输出车机位置,但由于不同技术手段有各自的误差源,致使不同技术的定位结果并不相同。

因此,融合算法有两个目的:第一,将不同技术的导航信息融合成唯一导航信息,使之可靠性高于未融合前的;第二,估计器件误差(陀螺仪零偏、测速仪尺度误差和导航误差等)。

融合算法基于Kalman滤波实现,其关键在于模型建立和模型参数设置。Kalman滤波模型由状态转移方程和观测方程构成。状态转移方程表示相邻导航状态之间的转移关系,它通过构建导航误差微分方程实现;模型参数是指状态转移噪声和观测噪声,观测噪声的设置与GPS质量评估模块相关。

经Kalman滤波处理后,得到导航误差的最优估值,如图所示。即经过补偿得到了导航信息的最优估值。

特色功能

主辅路识别

以往的主辅路识别策略是通过DR输出的位置和方向与两条候选路的关系,选择最接近的候选路作为输出。但对于道路级定位系统而言,DR输出误差与两条路的差异在同一量级,误判的概率较高,所以,需要从一些驾驶特征来解决此问题,例如,路口附近的转弯、变道等。

如图所示,具体步骤为:

  • 提取驾驶行为特征,求特征信息的转移概率;
  • 根据DR精度分类计算卷积和,求最终概率。

高架识别

过去,高架识别策略是通过高程积分和阈值法来判断,识别效果受坡角误差和速度误差的影响。其中,速度误差与高程积分误差成正比,是影响高架识别准确率的主要原因。为克服这一缺点,我们结合MM技术,计算道路坡度与输出pitch角的接近程度,以避免引入速度误差。高架识别流程如图所示:

停车场识别

停车场识别是新增模块,是停车场定位导航的前置工作。停车场定位导航的主要目的是将车机用户导航到指定的停车位,其中涉及到室内外场景地图切换、层与层地图切换和导航等一系列问题。停车场识别的目的就是为这地图切换提供支持。

停车场内容包括进出停车场识别和跨层识别。进出停车场识别是指利用停车场无GPS信号、上下坡、低速、高程变化等一系列特征判断车机是否进出停车场。停车场跨层识别是指利用上下坡、高程变化等特征判断车机是否在停车场内有跨层行为。识别流程如图所示:

效果

为验证本项目算法的效果,我们采集了实测数据,并从以下两方面验证:

  • 验证算法对用户痛点问题(偏航重算、无法定位和)的改善程度;
  • 与竞品及高德手机定位端产品性能的比较。 融合抗漂

针对高架和城市峡谷的偏航重算(位置漂移)问题,车机算法做了以下两点改进:

  • 多元参考:结合运动趋势、传感器信息和地图数据,将GPS可靠性归一化;
  • 场景分类:参考地图道路属性和GPS信号分布判断是否有遮挡。

在高架下采集两圈数据,使用车机软件和市场某款同类软件进行处理,效果如图14所示。从近半年的测试来看,在GPS受遮挡的场景下,本项目的抗漂能力明显优于传统方案。

器件标定

为验证有无陀螺仪动态零偏估计对DR方向和位置解算精度的影响,本项目采集了望京soho停车场的数据,经解算,效果如下。测试表明,经动态零偏补偿后,DR精度明显提高:

  • 零偏:动态零偏估计保证陀螺仪误差量级为0.01度/s;
  • 方向:停车场出口出的方向误差减小至40%以内,方向精度提升2倍以上;
  • 位置:停车场出口处的位置误差减小至25%以内,位置精度提升4倍以上。

主辅路识别

为计算主辅路识别的成功率,统计了近千条主辅路的识别效果,识别率达到90%以上,大于某厂商产品的75%。

横/纵向对比

最后,我们与市面的中高端竞品进行了横向对比,与高德手机端定位产品进行了纵向对比。横向对比结果表明,在器件成本不到竞品成本10%的情况下,不超过某一阈值的位置误差、方向误差和速度误差的占比均在90%以上,相对竞品,提高了1%~5%。主辅助路识别准确率优于90%,相对于竞品提高了15%。

纵向对比结果表明,在不同场景(高架,城市峡谷,环岛,停车场出口等)下,不超过某一阈值的位置误差占比提升15%~60%不等,这是因为车机算法对特殊场景(无GPS或弱GPS场景)进行了专门的算法设计和优化。全场景下的位置误差占比提升约20%。

小结

针对用户提出的三大痛点问题,本文结合多传感器融合和地图匹配,提出了一套车载多传感器融合定位方案,并应用于实际,提高了在城市峡谷中的定位精度,并且取得了不错的效果。

然而,城市峡谷的定位精度问题很难彻底解决,它似乎是一个没有终点的难题。为此,站在用户的角度,我们需要不停思考:需要什么样的传感器技术、应该设计什么样的算法、如何挖掘数据的最大价值。

关注高德技术,找到更多出行技术领域专业内容

车载多传感器融合定位方案:GPS +IMU+MM的更多相关文章

  1. Sensor fusion(传感器融合)

    From Wikipedia, the free encyclopedia 来自维基百科,免费的百科Sensor fusion is combining of sensory data or data ...

  2. SAP 传感器辅助定位

    一.简述 SAP:Sensor Assist Position 传感器辅助定位.高通公司提供的技术方案,旨在提升当卫星信号较差或终端短暂丢失卫星信号时终端的定位能力.该方案可分为三个阶段,第一.二阶段 ...

  3. Android 6.0 默认关闭定位和GPS,开启后默认选省电

    默认关闭定位和GPS 修改位置 frameworks/base/packages/SettingsProvider/res/values/defaults.xml <string name=&q ...

  4. 扩展卡尔曼滤波EKF与多传感器融合

    参考:https://blog.csdn.net/young_gy/article/details/78468153 Extended Kalman Filter(扩展卡尔曼滤波)是卡尔曼滤波的非线性 ...

  5. 手机定位室内gps没信号

    手机定位一般分3种,gps,手机信号基站,上网地点,其中gps信号一般只有户外有,所以在室外的时候只开启定位和gps就可以定位了,但是在室内没有gps的情况,就需要开网络定位了.

  6. 网易云信融合CDN方案及实践

    日前,网易云信视频云架构师席智勇在第七届GFIC全球家庭互联网大会进行了题为<网易云信融合CDN方案及实践>的分享,以下是演讲内容回顾. 图为 网易云信视频云架构师席智勇 CDN所面临的问 ...

  7. Sensor Fusion-based Exploration in Home Environments using Information, Driving and Localization Gains(基于传感器融合的使用信息、驾驶和定位增益在家庭环境中的探索)

    Authors: Joong-Tae Park, Jae-Bok Song Department:Department  of  Mechanical  Engineering,  Korea  Un ...

  8. 电脑上安装的android虚拟机,能进行基站定位和GPS定位吗?要怎么做才能定位?(转)

    基站定位是通过电信运营商的服务来实现的,至少你得有SIM卡吧,一般电脑是不会有电话功能的吧,所以,通过基站定位不可能. GPS是需要有相应的硬件来支持的,类似于手机需要有GPS模块才可以,电脑一般没有 ...

  9. 手机定位原理 - GPS/GLONASS/北斗 + WIFI + 基站

    卫星定位系统 - GPS/GLONASS/北斗: 关于GPS.GLONASS.北斗.伽利略系统的科普请自行谷歌. GPS是使用最广泛的全球定位网络,几乎是所有智能手机的标配.进几年,俄罗斯的GLONA ...

随机推荐

  1. 学习 Python 心得

    脚本式编程: 通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕.当脚本执行完成后,解释器不再有效. 让我们写一个简单的 Python 脚本程序.所有 Python 文件将以 .py 为扩展名.将以 ...

  2. LINUX_记录(一)

    我有了一台电脑,有好多的硬件,CPU啊.内存啊.光驱啊.硬盘啊等等,我不想装windows,我想装linux,我就装了一个linux.事实上,可以跑,没问题,我在思考,why? 我装的linux,包括 ...

  3. MyBatis 接口多参数的处理方法

    From<MyBatis从入门到精通> 1.接口类中增加的方法: /* 2.7 多个接口参数的用法 多个参数时,可以选取的方案有:使用Map类型或者使用@Param注解 使用Map类型作为 ...

  4. HBaseCon Asia2019 会议总结

    一.首先会议流程. 1. The current status of HBase 2.The advantage and technology trend of HBase on the cloud ...

  5. 2019年7月22日 - LeetCode0004

    https://leetcode-cn.com/problems/median-of-two-sorted-arrays/submissions/ 我的解法: 我看到了那个log的要求,也第一时间想到 ...

  6. git,github,gitlab,码云的区别

    git 是版本控制工具. github https://github.com/和gitlab https://about.gitlab.com/都是基于git仓库的web开发流程代码托管平台.两者的区 ...

  7. Atom实用插件

    下载atom狠戳本链接 中文简体插件(工具栏,右键菜单,设置菜单) simplified-chinese-menu 代码格式化插件(支持多种语言) atom-beautify 智能补全资源路径插件 a ...

  8. 安装win10体验

    没事干了,心血来潮弄了个win10专业版. 讲硬盘重新分区了,没办法,原来分的太少了. 使用winpe启动,直接将下载的win10还原到c盘,成功启动,设置的时候让提示输入id,没有啊?研究发现可以先 ...

  9. Flink 灵魂两百问,这谁顶得住?

    Flink 学习 https://github.com/zhisheng17/flink-learning 麻烦路过的各位亲给这个项目点个 star,太不易了,写了这么多,算是对我坚持下来的一种鼓励吧 ...

  10. [填坑] ubuntu检测不到外接显示器

    笔记本是win10+ubuntu18双系统,今天ubuntu(开启nivida独显状态)突然无法连外接屏幕,但切换win10就可以显示. 贴吧找到的简单解决方法,不需要重装驱动,记录分享在这里: su ...