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

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

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

技术方案

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

 

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

 

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

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

 

功能模块

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

 

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

基础模块

GPS质量评估

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

 

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

器件补偿

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

 

为改善无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滤波处理后,得到导航误差的最优估值,如图7所示。即经过补偿得到了导航信息的最优估值。

 

特色功能

主辅路识别

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

 

如图所示,具体步骤为:

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

 

高架识别

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

停车场识别

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

 

 

 

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

 

效果

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

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

融合抗漂

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

  • 多元参考:结合运动趋势、传感器信息和地图数据,将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%。

小结

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

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


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux-centos7 常用的基本命令--用户组管理

用户组管理 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维、root)。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同…

我画了35张图,就是为了让你深入 AQS!

来源 | 程序员cxuan责编 | Carol谈到并发,我们不得不说AQS(AbstractQueuedSynchronizer),所谓的AQS即是抽象的队列式的同步器,内部定义了很多锁相关的方法,我们熟知的ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Sem…

Cassandra Java堆外内存排查经历全记录

背景 最近准备上线cassandra这个产品,同事在做一些小规格ECS(8G)的压测。压测时候比较容易触发OOM Killer,把cassandra进程干掉。问题是8G这个规格我配置的heap(Xmx)并不高(约6.5g)已经留出了足够的空间给系统。只有可能是Java堆…

数据中台之结构化大数据存储设计

前言 任何应用系统都离不开对数据的处理,数据也是驱动业务创新以及向智能化发展最核心的东西。这也是为何目前大多数企业都在构建数据中台的原因,数据处理的技术已经是核心竞争力。在一个完备的技术架构中,通常也会由应用系统以及数据系统构…

清华硕士爆料:这些才是机器学习必备的数学基础

现如今,计算机科学、人工智能、数据科学已成为技术发展的主要推动力。无论是要翻阅这些领域的文章,还是要参与相关任务,你马上就会遇到一些拦路虎:想过滤垃圾邮件,不具备概率论中的贝叶斯思维恐怕不行;想试…

从求生存到修体系,我在阿里找到了技术人的成长模式

阿里妹导读:做业务就好比打仗,团队是我们的归属。在团队中,我们既要通力协作,又要定义问题,既要业务先赢,又要技术成长。越来越多的前端投身业务研发中。想要有更好的发展,业务理解力非常关键。…

2分钟 Docker 部署 SprinBoot 集成 Flowable 工作流引擎

文章目录一、 简介二、 docker流程引擎部署2.1. jdk安装配置2.2. 下载打包好的tar包2.3. 上传tar包2.4. 在线安装Docker2.5. 检验安装是否成功三、tar转docker镜像3.1. 查看当前镜像3.2. 加载备份的flow-mysql.tar镜像文件3.3. 加载备份的flow-admin.tar镜像文件3.4. 加载备份的…

亿级规模的 Feed 流系统,如何轻松设计?

阿里妹导读:互联网进入移动互联网时代,最具代表性的产品就是各种信息流,像是朋友圈、微博、头条等。这些移动化联网时代的新产品在过去几年间借着智能手机的风高速成长。这些产品都是Feed流类型产品,由于Feed流一般是按照时间“从…

linux-centos7 常用的基本命令--磁盘管理(df、du)、进程管理

一、磁盘管理 df(英文全称:disk full):列出文件系统的整体磁盘使用量(类似于windows我的电脑中的显示)du(英文全称:disk used):检查磁盘空间使用量 1、df …

他靠下班后 1 小时,挣到 3 倍工资:赚钱,真的不用拼命

越来越多的人学习编程不再只是为了当程序员,而是为了提升效率,多一份职业技能,正面应对瞬息万变的全球大环境。据麦肯锡全球研究院发布的一份就业报告中显示,到 2030 年,中国预计将有 1200 万~ 1.02 亿人面…

蚂蚁金服褚霸:敲最牛的代码,骑最野的车

你印象中的程序员是怎样的群体?随着全民互联网的发展,程序员这个群体快速走进大众视野,在新闻和影视剧中,他们被贴上各种标签:双肩包、格子衫、拖鞋、秃顶、刻板、木讷、单身……热搜新闻“996.ICU”更是道出了万千程序…

linux-centos7 常用的基本命令--top

1、Linux top 命令 1.1 top 命令基础用法 Linux top命令用于实时显示 process 的动态。 语法 top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]参数说明: d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 sq : 没有任何延迟的显示…

MongoDB副本集同步原理

MongoDB的同步原理,官方文档介绍的比较少,网上资料也不是太多,下面是结合官方文档、网上资料和测试时候的日志,整理出来的一点东西。 因为MongoDB的每个分片也是副本集,所以只需要搞副本集的同步原理即可。 一、Initi…

阿里技术专家告诉你,如何画出优秀的架构图?

作者 | 三画责编 | Carol来源 | 公众号「阿里巴巴云原生」导读:技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,也体现在优秀工程师在工作效率提升、产品性能优化和用户体验改…

解决Linux docker中的mysql区分大小写问题

注:mysql5.7为本例docker中mysql容器的名称。 进入mysql容器: docker exec -it mysql5.7 /bin/bash以root用户登录mysql: mysql -u root -p查看当前mysql的大小写敏感配置: show global variables like %lower_case%;lower_case_file_sys…

不要低估AI面临的困境

“通过对7000多家“AI初创企业”进行研究分析,我发现大多数人低估了AI发展所面临的困境和挑战。这其中,有你的参与吗?” 你可能听过Andrew Ng这句话类似的一些说法:“AI正如同我们新时代的电力!电力的发展曾经改变了无数行业;现如今的AI也将如…

mysql-修改mysql最大连接数

1、修改mysql最大连接数 systemctl start mysqld 启动mysql systemctl status mysqld 查看mysql状态 systemctl restart mysqld 重启mysql进入mysql查看最大连接数: mysql -u root -p sh…

重构技术架构首先解决组织架构

技术架构来源于人员组织架构 过去两年做了不少大型的中台项目,什么是中台?这篇文章就不多说了,自行百度一下,总而言之最后我得出了一个结论——企业什么样的人员组织架构就会什么样的系统技术架构。我们先以下一幅图:…

为你整理了一份 Mysql 的学习笔记,建议收藏学习!

作者 | 陈熹责编 | Carol来源 | 早起PythonSQL是一个存活近半个世纪的语言,如今仍有大量人在使用。它语法简单,对培养数据整理和提取的思维有很大帮助。我将我过去的笔记分享给大家,希望能为大家的学习提供参考,更希望有人因此能迈…

Redis 混合存储最佳实践指南

Redis 混合存储实例是阿里云自主研发的兼容Redis协议和特性的云数据库产品,混合存储实例突破 Redis 数据必须全部存储到内存的限制,使用磁盘存储全量数据,并将热数据缓存到内存,实现访问性能与存储成本的完美平衡。 架构及特性 命…