高精自动驾驶中的地图匹配定位技术

2023-10-21 19:30

本文主要是介绍高精自动驾驶中的地图匹配定位技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

引言

1. 地图匹配定位技术简介

2. 地图匹配定位技术原理

3. 地图匹配定位误差分析

4. 地图匹配常用算法

5. 总结


引言

汽车定位是让自动驾驶汽车知道自身确切位置的技术,在自动驾驶系统中担负着相当重要的职责。汽车定位涉及多种传感器类型和相关技术,主要可分为卫星定位、惯性导航定位、地图匹配定位以及多传感器融合定位几大类。其中地图匹配定位技术利用道路物理信息与预制高精度地图,实现实时的自动驾驶定位。在卫星定位、惯性导航系统出现明显误差时,地图匹配定位技术可为自动驾驶系统提供实时定位修正信息,因此对自动驾驶系统至关重要。本文将从地图匹配定位技术的简介、原理、误差分析以及常用算法进行介绍。

1. 地图匹配定位技术简介

无论是卫星定位(GNSS)还是惯性导航定位(INS),自动驾驶定位系统的误差都不可避免,定位结果通常偏离实际位置。引入地图匹配可以有效消除系统随机误差,校正传感器参数,弥补在城市高楼区、林荫区、立交桥、隧道中长时间GNSS定位失效而INS误差急剧增大的定位真空期。

地图匹配定位技术是指将自动驾驶汽车行驶轨迹的经纬度采样序列与高精度地图路网匹配的过程。地图匹配定位技术将汽车定位信息与高精度地图提供的道路位置信息进行比较,并采用适当算法确定汽车当前的行驶路段以及在路段中的准确位置,校正定位误差,并为自动驾驶路径规划提供可靠依据。

如图1所示,由于各种原因导致自动驾驶汽车定位信息存在误差,尽管汽车行驶在中间车道上,但定位效果与实际情况存在偏差,利用地图匹配定位技术可将定位信息纠正回正确车道,提高定位精度。

 图1 地图匹配定位效果示意图

2. 地图匹配定位技术原理

地图匹配定位是在已知汽车位姿信息的条件下进行高精度地图局部搜索的过程。首先,利用汽车装载的GNSS和INS做出初始位置判断,确定高精度地图局部搜索范围。然后,将激光雷达实时数据与高精度地图数据变换到同一个坐标系内进行匹配,匹配成功后即可确认汽车定位信息,地图匹配定位流程如图2所示。

 图2 地图匹配定位流程

高精度地图的预制是地图匹配的基础,需包含特征明显的结构化语义特征和具有统计意义的信息。高精度地图中常用于地图匹配的特征主要包含车道线、停止线、导流线、路灯、电线杆等特征明显的物体,同时还包括平均反射值、方差及平均高度值等具有统计意义的信息。

当自动驾驶系统的GNSS和INS出现较大误差时,汽车会根据实时感知数据进行环境特征的检测,主要检测对象是地面上的车道线与杆状物,并从高精度地图对应位置范围内提取对应的元素。实际匹配过程中,系统将检测出的车道线、护栏等道路特征与高精度地图提供的道路特征进行对比,修正汽车的横向纵向定位,如图3、4所示。

 图3 修正横向位姿示意图

 图4 修正纵向位姿示意图

图3中,GNSS将汽车定位在前进方向的左侧车道,自动驾驶汽车利用传感器检测到的车道线信息与高精度地图数据进行匹配后,确定汽车位于前进方向中间车道,与GNSS的定位结果存在差异,进而修正横向的位姿误差。图4中,纵向上修正主要提取传感器所检测到的广告牌、红绿灯、交通标志灯等道路元素与高精度地图进行匹配,可以修正汽车的纵向误差。

3. 地图匹配定位误差分析

地图匹配定位误差主要由局部搜索范围正确性问题引起,局部搜素范围正确性即道路选择的正确性,是地图匹配中极大的影响因素,在选择道路正确的情况下,才能继续之后的地图匹配过程。造成道路选择错误的原因主要包括路况引起的误差、传感器误差、高精度地图误差及算法误差等方面。

3.1 路况引起的误差

真实道路的情况复杂多变,无法保证汽车在各种复杂路况上都能够正确地提取特征,并实现正确定位。车速变换将会影响传感器采集数据的质量,车速越快,质量越低,甚至产生运动模糊、失真等情况。在没有INS的定位系统中,各种路况下造成的汽车轮胎漂移及路面颠簸等情况都可能使激光点云数据发生畸变、抖动和运动模糊等问题。与此同时,实际行驶情况中汽车有时会离开道路,这将导致道路匹配错误并引起误差。

3.2 传感器误差

进行地图匹配需要利用传感器的量测信息(如激光雷达、摄像头),这些数据存在误差将直接影响定位速度与成功率。

3.3 高精度地图误差

在实际使用中,一般默认高精度地图的精度比传感器获得的数据精度高,但实际上,高精度地图同样有可能存在较大误差。在地图数据本身存在误差时,即使在正确选择道路的情况下也会引入误差。

3.4 算法误差

在地图匹配过程中,不可避免地因算法存在的缺点导致发生错误匹配,发生错误匹配会对之后的地图匹配定位结果产生恶劣影响。

4. 地图匹配常用算法

任何一种地图匹配算法都涉及两个根本的问题:(1) 当前汽车在哪一条道路上;(2) 当前汽车在对应道路的哪一个位置。因此,地图匹配算法几乎都可以用如下表达进行形式化描述:

式中,Xn表示n时刻汽车的原始状态信息,如定位数据、速度、行驶方向等;G表示道路网络,由道路路段集R和道路节点集N构成。根据不同的地图匹配特点,将地图匹配算法分为几何匹配算法、概率统计算法和其他高级算法。

4.1 几何匹配算法

几何匹配算法包括点到点、点到弧和弧到弧的地图匹配算法。

(1) 点到点的地图匹配算法

点到点的地图匹配算法的原理即搜索汽车定位点与高精度地图中位置点之间几何距离最近的点作为匹配结果。该算法匹配精度取决于位置点集的数量,随着位置点集数量的增大,匹配精度更高,但占用的硬件资源也更多。点到点的地图匹配算法得到的匹配结果很可能会与实际情况不符,如在一条笔直道路上,待匹配GNSS点都会错误地匹配到道路两端的的节点上,这样的到的匹配精度显然不符合实际使用要求。

(2) 点到弧的地图匹配算法

通过寻找与汽车定位点几何距离最近的路段作为匹配线段,将汽车定位点投影到该选段上作为匹配结果。对于曲线则做线性化处理后进行投影,该算法只利用了部分数据,当两条曲线距离较小或相同时极易造成误匹配,在路网密度大时匹配结果的精度就会锐减,此时的算法缺乏稳定性。

(3) 弧到弧的地图匹配算法

将连续的汽车定位点组成一条轨迹曲线,寻找与这条曲线最近的匹配弧线作为匹配线段。由于最近路段的寻找方法是基于匹配路段与定位点的最小距离,所以若某定位点与非正确匹配线段非常近,将导致严重误差/

4.2 概率统计算法

概率统计算法通过在汽车导航定位系统中获得的历史轨迹,建立置信区域来与高精度地图进行匹配。置信区域参考GNSS误差、汽车航迹、汽车速度及道路信息等进行选取,与高精度地图匹配后采取最近距离原则来确定匹配选段。

一个完整的基于概率统计的地图匹配算法包括三个主要的处理过程,即确定误差区域、选取候选路段和计算匹配位置,基于概率统计算法地图匹配的一般过程如图5所示。

图5 基于概率统计法地图匹配的一般过程

误差区域是指可能包含汽车真实位置的区域范围,它应根据传感器定位结果和误差情况确定。在误差区域内的道路称为候选路段,地图匹配算法认为其中包含了汽车的真实位置。匹配路段的选取方法是从候选路段中挑选最有可能的汽车行驶路段,挑选原则依据具体的算法设计而不同,通常挑选参考量是高精度地图中的道路形状与汽车轨迹的相似程度。确定匹配路段后,计算汽车在该路段中最可能的位置,并用匹配结果修正原有的定位信息并输出。

4.3 其他高级算法

除了上述两种地图匹配算法外,还有非参数滤波算法和参数滤波算法等。非参数滤波算法包括了直方图滤波(Histogram Filter, HF)和粒子滤波(Particle Filter, PF)等。参数滤波算法包括卡尔曼滤波、扩展卡尔曼滤波(Extended Kalman Filter, EKF)、信息滤波(Information Filter, IF)、扩展信息滤波(Extended Information Filter, EIF)等。这些算法在固定场景下有很高的匹配准确率,但需要大量的数据进行参数的前期学习和总结,对系统的要求较高。

5. 总结

地图匹配是自动驾驶定位系统的关键技术,本文介绍了高精自动驾驶系统中的地图匹配技术,具体涉及技术原理、误差分析以及常用算法。在实际自动驾驶定位系统的设计中,要针对具体硬件条件和实际工况,有针对性地进行地图匹配技术的设计。

这篇关于高精自动驾驶中的地图匹配定位技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/256479

相关文章

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

IDEA如何让控制台自动换行

《IDEA如何让控制台自动换行》本文介绍了如何在IDEA中设置控制台自动换行,具体步骤为:File-Settings-Editor-General-Console,然后勾选Usesoftwrapsin... 目录IDEA如何让控制台自http://www.chinasem.cn动换行操作流http://www

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable