自动驾驶定位导航技术概述丨曼孚科技

2023-10-08 13:50

本文主要是介绍自动驾驶定位导航技术概述丨曼孚科技,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
作为自动驾驶决策模块的重要组成部分,高精度定位导航技术是自动驾驶汽车安全行驶不可或缺的核心技术之一,在车辆横向/纵向精确定位、障碍物检测与碰撞避让、智能车速控制、路径规划及行为决策等方面发挥着重要的作用。

相较于有人驾驶驾驶员可以凭借双眼与记忆获取周围的可行驶区域、道路边界、车道线、障碍物、交通规则等详细信息,目前自动驾驶汽车的环境感知传感器与算法还无法达到与人类驾驶员同样的感知性能,因此自动驾驶汽车就需要高精定位、高精地图、联合感知等定位导航技术的支持。
在这里插入图片描述
目前常用的定位技术包括轨迹推算(DR)、惯性导航技术(INS)、卫星导航定位技术、路标定位技术、地图匹配定位技术(MM)以及视觉定位技术等。

然而,这些定位导航技术在单独应用时均存在一些无法避免的问题。

自动驾驶车辆对定位系统性能的要求与车辆的行驶速度密切相关。相关标准法规规定,乘用车行驶最高车速不得超过120km/h,客车最高设计车速不应大于100km/h。

基于目前的自动驾驶汽车整体技术水平和车辆限速要求,自动驾驶乘用车的最高车速不宜超过90km/h,自动驾驶客车的最高车速不宜超过70km/h。

一般情况下,有人驾驶车辆距离道路一侧路牙的安全行驶距离约为25cm,而自动驾驶汽车必须在行驶25cm的时间内更新一次定位信息且定位精度要小于等于25cm,否则就有可能导致车辆超出道路边界发生事故。

按照最高车速90km/h计算,车辆行驶25cm用的时间是0.01s,根据公式f=1/t,则定位信息更新频率为100Hz。因此定位信息更新频率需要大于等于100Hz,定位精度需要小于等于25cm才能保证车辆行驶安全。

目前,常用的定位导航系统均无法满足上述指标。比如惯性导航定位技术存在定位误差随时间累积、长时间内不能保证足够的导航精度的问题;卫星定位导航技术存在多路径、卫星信号遮挡和更新频率低等问题等。

正因为单一一种定位技术均存在一定程度上无法克服的弱点,所以研究组合导航就成为时下的热点。组合导航系统在成本以及性能上面更具优势。

本文将详细介绍自动驾驶定位所用到的主流导航技术。

一、全球卫星导航系统

全球卫星导航系统也叫全球导航卫星系统,是能在地球表面或近地空间的任何地点为用户提供全天候的三维坐标和速度以及时间信息的空基无线电导航定位系统。其包括一个或多个卫星星座及其支持特定工作所需的增强系统。

目前国际上主要有4种主流的全球定位导航系统,分别为美国的全球定位系统(GPS)、俄罗斯的格洛纳斯卫星导航系统(GLONASS)、欧盟的伽利略卫星导航系统(GALILEO)和中国的北斗卫星导航系统(BDS)。
在这里插入图片描述
其中应用最广泛的是全球定位系统(GPS)。GPS可以向全球用户提供连续、实时、高精度的三维位置、三维速度和时间信息,并能够进行全球、全天候和实时的导航,且其定位误差与时间无关,具有较高的定位和测速精度。

除了GPS以外,北斗卫星导航系统也是近年应用十分广泛且发展迅猛的一种全球卫星定位导航系统。

北斗由空间段、地面段和用户段三部分组成,可在全球范围内全天候、全天时为各类用户提供高精度、高可靠定位、导航、授时服务,并且具备短报文通信能力,已具备区域导航、定位和授时能力,定位精度为分米、厘米级别,测速精度0.2米/秒,授时精度10纳秒。

我们以GPS为例,简单分析其在自动驾驶定位导航中的作用。

在分析其作用之前,我们先来看一下GPS的组成与定位原理。

简单来说,GPS是由空间定位系统、地面监控网和用户接收系统三部分组成。其定位原理是利用到达时间测距来确定用户的位置。

首先测量信号从卫星发出至到达用户所经历的时间段,时间段乘以信号的速度便得到从卫星到接收机的距离,而卫星的位置是已知的,于是通过测量与3个以上的卫星距离便可以得到接收机的三维位置。

再具体到车辆定位上,GPS通常使用差分技术进行车辆的定位。

其工作原理是:在用户GPS接收机附近设置一个已知精确坐标的差分基准站。基准站的GPS接收机连续接收GPS卫星信号,将测得的位置与该固定位置的真实位置的差值作为公共误差校正量,然后通过无线数据传输或电台数据传输将该校正量传送给移动站的接收机。移动站的接收机用该校正量对本地位置进行校正,最后得到厘米级的定位精度。

不过,GPS定位也存在一定的误差。

GPS定位有3个假设前提。首先是接收机必须准确测量卫星信号的传输时间,此外卫星信号必须以已知的恒定速度传输,最后GPS接收机接收的卫星信号必须沿直线传输。若实际应用中出现任何不满足上述假设的因素都将导致测距误差,从而影响定位精度。

二、航迹推算(DR)

航迹推算是利用载体上某一时刻的位置,根据航向与速度信息,推算得到当前时刻的位置,即根据实测的无人驾驶汽车行驶距离和航向计算其位置和行驶轨迹。它一般不受外界环境影响,但由于其本身误差是随时间累计的,故单独工作时不能长时间保持高精度。

从原理上来看,航迹推算是对速度或加速度信号进行积分,可以基于车辆模型,也可以不基于车辆模型。

目前,实现航迹推算可以基于以下几种形式:

Ξ1. 惯性传感器

通过惯性传感器可以测量得到速度、加速度等信息,理论上这些值都可以通过积分得到位置、速度及航向。使用基于惯性传感器的航迹推算与地图匹配相结合可以修正传感器的一些误差并得到较为精确的定位。

Ξ 2. 地图匹配

地图匹配可以通过将估计值与道路最近点进行正交匹配来实现。利用贝叶斯滤波可以实现较好的地图辅助式定位。

Ξ 3. 动态滤波

一般情况下,用于定位的非线性滤波包含以下主要步骤:

时间更新:当下一个测量到达时,利用运动模型来预测车辆位置;

测量更新:利用当前测量和传感器模型来更新当前位置信息。

三、GPS/DR位置数据融合

GPS具有全球、全天候、高精度、实时定位等优点,但是其动态性能和抗干扰能力较差。

DR(航迹推算)系统一般采用低成本的陀螺仪和车辆里程表构成,通过对车辆航向角变化量和车辆位置变化量的测量,递推出车辆的位置变化,不受外界环境的干扰影响。

但由于DR系统自身不能提供车辆的初始位置坐标和初始航向角,定位误差随时间的累计会发散,从而导致定位精度下降。

通过将GPS和DR相结合,可有效规避两者弱点,不仅可以提高系统精度,还可以增强系统的抗干扰能力与跟踪能力。

一方面可以利用GPS系统提供的绝对位置辅助DR系统的初始化,并可以定期地对DR系统定位以及系统参数的校正。另一方面,在GPS无法定位时,车载定位导航系统又可以自动地切换到DR导航方式,直至GPS恢复正常接收后,系统再回到GPS与DR的组合导航。实现导航输出信息可视化,可以有效解决司机定向难的问题。

根据系统利用GPS信息方式的不同,基于Kalman滤波器的GPS/DR组合可分为松耦合组合定位和紧耦合组合定位两种。

松耦合模式的优点是组合结构简单,系统开发者不需要处理GPS原始的观测信息。同时两个系统能够独立工作,使得定位系统有一定余度。然而,由于GPS输出的位置与速度误差具有时间相关性,这也会给采用Kalman滤波器带来一定的难度。

紧耦合模式的优点是用伪距、伪距率作为观测量。其观测误差可以建模扩充为状态进行估计与矫正,因而可提高组合精度。不过,大的计算量和复杂的软、硬件设计阻碍了其广泛应用。

四、并行建图与定位

在未知环境中,自动驾驶汽车无法根据已知地图不断进行校正,实现精确定位,只能通过自身携带的传感器来获取环境信息,并经过信号处理抽取有效信息,以构建环境地图。这就需要同时定位与地图创建技术的支持。

SLAM,也被称为并行建图与定位,指的是自动驾驶汽车在位置环境中,从未知位置出发,在运动过程中通过环境信息,进行车体位置与航向的确定,同时创建环境地图并对地图进行实时更新,或在已知环境中,通过环境信息对车体位置和航向进行确定。

SLAM一般包含两个步骤:预测和测量。为了准确表示导航系统,SLAM需要在状态之间以及状态和测量之间进行学习。SLAM最常用的学习方法称为Kalman滤波。

基于Kalman滤波的SLAM方法利用包含自动驾驶汽车位姿向量和环境特征向量的增广向量表示空间环境,将自动驾驶汽车运动与环境特征的关系描述为两个非线性模型,即自动驾驶汽车运动模型与观测模型。

自动驾驶汽车控制信号输入到系统运动模型中,实现自动驾驶汽车的运动。Kalman滤波算法根据系统模型实现自动驾驶汽车位姿的预测,同时自动驾驶汽车根据系统观测模型获得对环境特征的观测。

预测特征和观测特征之间要进行数据关联匹配的处理,选择最佳匹配特征,用于对自动驾驶汽车位姿的更新,而候选匹配特征被认为是对环境观测获得的新特征,用于对地图的增广。

SLAM为车辆的位姿估计提供了新思路,在保证定位精度的同时,还提高了定位信息的输出频率,可以获取较为完整的环境重建结果。

参考资料:

[1]《自动驾驶汽车高精定位导航技术路线分析》——赵佳,刘清波

[2]《IEEE SIGNAL PROCESSING》——MAGAZINE, March 2017

[3]《无人驾驶汽车概论》——陈慧岩,熊光明等

这篇关于自动驾驶定位导航技术概述丨曼孚科技的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

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

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

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、