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

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

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机