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

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

相关文章

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

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 填充策略