当前位置: 首页 > article >正文

自动驾驶中地图匹配定位技术总结

引言

汽车定位是让自动驾驶汽车知道自身确切位置的技术,在自动驾驶系统中担负着相当重要的职责。汽车定位涉及多种传感器类型和相关技术,主要可分为卫星定位、惯性导航定位、地图匹配定位以及多传感器融合定位几大类。其中地图匹配定位技术利用道路物理信息与预制高精度地图,实现实时的自动驾驶定位。

高精度定位与高精度地图紧密联系,为自动驾驶汽车路线规划,道路感知,驾驶控制提供支持。

首先,高精度地图数据的采集、处理、以及地图的建模都需要以高精度的位置坐标作为框架。高精度地图中道路和场景是自动驾驶汽车感知和决策的数据基础。
其次,以高精度地图为基础,结合感知匹配实现高精度的自主导航定位,在定位信号中断或不稳定的情况下,保证自动驾驶汽车仍明确知晓车辆在当前环境中的准确位置。而高精度地图与高精度定位相结合,车辆能够提供了解当前位置可能的道路特征情况,调高传感器的识别精度,降低对于传感器的性能要求。

在卫星定位、惯性导航系统出现明显误差时,地图匹配定位技术可为自动驾驶系统提供实时定位修正信息,因此对自动驾驶系统至关重要。下面将从地图匹配定位技术的简介、原理、误差分析以及常用算法进行介绍。

地图匹配定位技术简介

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

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

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

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

地图匹配定位技术原理

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

在这里插入图片描述

图2 地图匹配定位流程

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

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

图3 修正横向位姿示意图

在这里插入图片描述

图4 修正纵向位姿示意图

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

地图匹配定位误差分析

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

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

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

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

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

地图匹配常用算法

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

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

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

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

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

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

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

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

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

一个完整的基于概率统计的地图匹配算法包括三个主要的处理过程,即确定误差区域、选取候选路段和计算匹配位置,基于概率统计算法地图匹配的一般过程如下图所示:
在这里插入图片描述
误差区域是指可能包含汽车真实位置的区域范围,它应根据传感器定位结果和误差情况确定。在误差区域内的道路称为候选路段,地图匹配算法认为其中包含了汽车的真实位置。匹配路段的选取方法是从候选路段中挑选最有可能的汽车行驶路段,挑选原则依据具体的算法设计而不同,通常挑选参考量是高精度地图中的道路形状与汽车轨迹的相似程度。确定匹配路段后,计算汽车在该路段中最可能的位置,并用匹配结果修正原有的定位信息并输出。

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

总结

地图匹配是自动驾驶定位系统的关键技术,在实际自动驾驶定位系统的设计中,要针对具体硬件条件和实际工况,有针对性地进行地图匹配技术的设计。

相关方案

高德技术解析:基于GPS+IMU+MM的车载多传感器融合定位方案

在这里插入图片描述

实现地图匹配定位需要定位系统传感器数据和参考地图形式之间有统一可匹配的要素,如与点云地图匹配的点云定位要素,与特征点地图匹配的特征点要素,与高精度地图匹配的语义要素等。

目前点云匹配常用方法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考链接:https://mp.weixin.qq.com/s/kYGNUbezbCi2p8wmBQ2UXw


http://www.kler.cn/a/17185.html

相关文章:

  • redhat虚拟机
  • kettle开发-Day43-数据对比
  • Nginx中实现流量控制(限制给定时间内HTTP请求的数量)示例
  • Python如何从HTML提取img标签下的src属性
  • HTML(超文本标记语言)
  • Linux学习笔记之组管理和权限管理
  • Web常见漏洞描述及修复建议
  • 基于YOLOv5的目标检测系统详解(附MATLAB GUI版代码)
  • vue+springboot 实现人脸识别方向
  • windows 下Node.js 版本管理工具
  • Java方法引用:提高代码可读性和可维护性
  • C++和Python编程语言各自的优缺点总结,分享一下我对程序员职业规划的看法
  • 【id:59】【20分】D. 旅馆顾客统计(静态成员)
  • 应用,auto,内联函数
  • 计算机基础 -- 硬件篇
  • 2023年web前端开发之JavaScript进阶(一)
  • 开心档之C++ 指针
  • Flex弹性布局
  • Vue电商项目--axios二次封装
  • 2023-05-06 GPT替代
  • 容器适配器---deque和STL ---stack queue priority_queue的模拟实现 C++
  • 【刷题之路Ⅱ】LeetCode 61. 旋转链表
  • 【转存】SpringBoot 中的自带工具类,快速提升开发效率
  • 基于javaweb的学生就业管理系统
  • 如何固定权重,对某些层得学习率改为0?
  • 教育专题讲座(带答案)