车载多传感器融合定位方案:GPS +IMU+MM
导读
高德定位业务包括云上定位和端上定位两大模块。其中,云上定位主要解决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的更多相关文章
- Sensor fusion(传感器融合)
From Wikipedia, the free encyclopedia 来自维基百科,免费的百科Sensor fusion is combining of sensory data or data ...
- SAP 传感器辅助定位
一.简述 SAP:Sensor Assist Position 传感器辅助定位.高通公司提供的技术方案,旨在提升当卫星信号较差或终端短暂丢失卫星信号时终端的定位能力.该方案可分为三个阶段,第一.二阶段 ...
- Android 6.0 默认关闭定位和GPS,开启后默认选省电
默认关闭定位和GPS 修改位置 frameworks/base/packages/SettingsProvider/res/values/defaults.xml <string name=&q ...
- 扩展卡尔曼滤波EKF与多传感器融合
参考:https://blog.csdn.net/young_gy/article/details/78468153 Extended Kalman Filter(扩展卡尔曼滤波)是卡尔曼滤波的非线性 ...
- 手机定位室内gps没信号
手机定位一般分3种,gps,手机信号基站,上网地点,其中gps信号一般只有户外有,所以在室外的时候只开启定位和gps就可以定位了,但是在室内没有gps的情况,就需要开网络定位了.
- 网易云信融合CDN方案及实践
日前,网易云信视频云架构师席智勇在第七届GFIC全球家庭互联网大会进行了题为<网易云信融合CDN方案及实践>的分享,以下是演讲内容回顾. 图为 网易云信视频云架构师席智勇 CDN所面临的问 ...
- 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 ...
- 电脑上安装的android虚拟机,能进行基站定位和GPS定位吗?要怎么做才能定位?(转)
基站定位是通过电信运营商的服务来实现的,至少你得有SIM卡吧,一般电脑是不会有电话功能的吧,所以,通过基站定位不可能. GPS是需要有相应的硬件来支持的,类似于手机需要有GPS模块才可以,电脑一般没有 ...
- 手机定位原理 - GPS/GLONASS/北斗 + WIFI + 基站
卫星定位系统 - GPS/GLONASS/北斗: 关于GPS.GLONASS.北斗.伽利略系统的科普请自行谷歌. GPS是使用最广泛的全球定位网络,几乎是所有智能手机的标配.进几年,俄罗斯的GLONA ...
随机推荐
- C程序中可怕的野指针
一.疑问点指针是C语言一个很强大的功能,同时也是很容易让人犯错的一个功能,用错了指针,轻者只是报个错,重者可能整个系统都崩溃了.下面是大家在编写C程序时,经常遇到的一种错误的使用方法,也许在你的学习和 ...
- 远程调试出现DEP0600: 部署失败。无法通过新部署管道进行部署错误解决
昨天我连接树莓派调试没问题,今天来的时候却总是出现DEP0600: 部署失败.无法通过新部署管道进行部署.错误 我怀疑是环境问题,然后发现蓝莓派上面没有远程调试监视器(MSVSMON.EXE)进程,怀 ...
- Kafka工作流程分析
Kafka工作流程分析 生产过程分析 写入方式 producer采用推(push)模式将消息发布到broker,每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘(顺序写磁盘 ...
- ASP.NET登录验证码解决方案
目录 #验证码效果图 #代码 0.html代码 1.Handler中调用验证码生成类 2.验证码图片绘制生成类 3.高斯模糊算法类 #注意 #参考 在web项目中,为了防止登录被暴力破解,需要在登录的 ...
- springboot-权限控制shiro(一)
1. 场景描述 (1)权限控制是IT项目特别是企业项目,绕不开的重要模块,接下来结合springboot介绍下权限控制框架shiro. (2)springboot集成shiro的东西有点多,一篇博客完 ...
- 用JSP从数据库中读取图片并显示在网页上
<1>先在mysql下建立如下的table. 并insert图像. mysql.sql文件如下: CREATE TABLE photo ( photo_no int(6) unsigned ...
- Nginx搭建详细
Linux 安装Nginx搭建详细内容 进入:/usr/java/nginx位置下载nginx: wget et http://nginx.org/download/nginx-1.8.0.tar.g ...
- 【iOS】duplicate symbols for architecture x86_64
今天遇到了这个问题,错误如下: duplicate symbol _OBJC_IVAR_$_BCViewController.bank in: /Users/***/Library/Developer ...
- asp.net ashx处理程序中switch case的替代方案总结
目录 1.用委托字典代替switch...case; 2.利用反射替代switch...case: 3.比较两种方案 4.其他方案 4.说明 5.参考 在开发 asp.net 项目中,通常使用一般处理 ...
- NDK jni mk文件 so文件 巴啦啦 初体验
概念JNI(Java Native Interface,Java本地接口),实现了Java和其他语言的交互(主要是C/C++),如:Java程序通过JNI调用C/C++编写的在Windows上运行的D ...