自动驾驶学习笔记(十二)——定位技术
#Apollo开发者#
学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往:
《自动驾驶新人之旅》免费课程—> 传送门
《Apollo Beta宣讲和线下沙龙》免费报名—>传送门
文章目录
前言
卫星定位
RTK定位
IMU定位
GNSS定位
先验地图定位
SLAM定位
MSF定位
Apollo定位
Tips
总结
前言
见《自动驾驶学习笔记(七)——感知融合》
见《自动驾驶学习笔记(八)——路线规划》
见《自动驾驶学习笔记(九)——车辆控制》
见《自动驾驶学习笔记(十)——Cyber通信》
见《自动驾驶学习笔记(十一)——高精地图》
卫星定位
基础定位系统由三个部分组成:空间部分(GPS卫星)、地面监控部分和用户部分。如下图所示:
其基本工作原理是:至少测量出当前位置与4颗卫星的距离和对应时间,通过解方程即可求得当前位置在地球坐标系下的位置(x,y,z)。为什么是4颗呢?因为除了需要确定(x,y,z)三个位置参数,还需要一个卫星提供相对零点时间从而消除时间误差。
全球四大导航系统包括:美国全球定位系统、欧盟“伽利略”系统、俄罗斯“格洛纳斯”系统、中国北斗卫星导航系统。
定位模块除了需要告诉自动驾驶系统自动驾驶汽车当前的位置之外,实际还提供车辆当前的运动状态,比如车的航向,速度,加速度,角速度等状态信息。
RTK定位
基础的卫星定位是存在误差的,误差既来自系统的内部,也来自外部。例如卫星信号穿透电离层和对流层时产生的误差,还有卫星高速移动产生的多普勒效应引起的误差,以及多径效应误差通道误差、卫星钟误差、星历误差、内部噪声误差等。这些误差,有些可以完全消除,有些无法消除或只能部分消除。它们影响了系统的准确性和可靠性。
RTK(Real time kinematic,实时动态)载波相位差分技术,是卫星定位的扩展。它是实时处理两个测量站载波相位观测量的差分方法,将基准站采集的载波相位发给用户接收机,进行求差解算坐标。如下图所示:
1、 基准站先观测和接收卫星数据。
2、基准站通过旁边的无线电台(数据链 ),将观测数据实时发送给流动站(距离一般不超过20公里)。
3 、流动站收到基准站数据的同时,也观测和接收了卫星数据。
4、 流动站在基准站数据和自身数据的基础上根据相对定位原理,进行实时差分运算,从而解算出流动站的三维坐标及其精度,其定位精度可达1cm~2cm。
IMU定位
惯性测量单元(Inertial measurement unit,简称IMU)是测量物体三轴姿态角(或角速率)以及加速度的装置。一般的,一个IMU内会装有三轴的陀螺仪和三个方向的加速度计,来测量物体在三维空间中的角速度和加速度,并以此解算出物体的姿态。为了提高可靠性,还可以为每个轴配备更多的传感器。一般而言IMU要安装在被测物体的重心上。
IMU的核心参数指标有两个。陀螺仪角度偏差范围通常在0.1°/s - 0.001°/h。加速度计加速度偏差范围通常在100mg - 10ug。由距离计算公式s =½at²可以得出,100mg和10ug偏差的加速度计在60s之后的测量误差分别是3528m和0.35m,差距非常大。不同级别的IMU在精度和成本方面也相差甚远,如下图所示:
GNSS定位
GNSS是GPS与IMU组合定位。
GPS定位非常方便,但在高楼、隧道和停车场等场所会出现多径效应和信号衰减,导致测量精度下降。GPS的更新频率也比较低,一般为1s刷新一次。
为了解决上述问题,IMU通常用来辅助GPS进行定位,IMU不需要接收信号,不受信号质量影响,而且更新频率快,工作频率通常可达100Hz以上,可以弥补短期GPS刷新频率不足的问题。但是IMU有累计误差,在一段时间后需要校准,所以目前无人车主要通过GPS和IMU融合定位。
先验地图定位
先验地图定位是拿当前观测到的特征和事先建好的地图做匹配,如下图所示:
其2大核心问题是:特征提取和特征匹配(Feature matching )和重定位( Relocation )。特征提取和特征匹配常用的算法有:ICP ( iterative closest point )、NDT ( Normal Distributions Transform )和基于优化的方法。重定位是指在环境中找到自己的初始坐标,例如在停车场中启动的时候。
SLAM定位
先验地图的好处非常明显,通过事先建立好地图,然后在线做匹配从而得到目标当前的位置但环境会发生改变,如果周围的环境变化了,而地图没有更新,则会得到错误的定位信息。
SLAM(Simultaneous localization and mapping)意为“同步定位与建图”,其工作原理如下图所示:
SLAM根据类型划分为视觉SLAM和激光SLAM两种。视觉SLAM算法又包括ORB-SLAM、LSD-SLAM、VINS-Mono等。激光SLAM算法包括Cartographer和LOAM系列等。SLAM算法的精度已经足够,可以用于大规模分布式实时建图,但是鲁棒性有待加强。
MSF定位
MSF(Multi-Sensor Fusion)多传感器融合定位,接收GPS、IMU和激光雷达点云等多传感器的数据,通过NDT输出的结果和组合导航输出的结果,通过卡尔曼滤波进行融合,最后输出高精度的定位结果。其工作原理如下图所示:
Apollo定位
Apollo的定位模块包含三种定位方式:RTK定位、NDT定位和MSF定位,如下图所示:
Tips
GPS + IMU组合导航还是目前主流的用法。在此基础上结合先验地图,可以实现复杂场景的定位。如果要实现较高的鲁棒性要求,可以增加MSF的算法。而SLAM不依赖事先建好的地图具有强大的优势,是未来发展的方向。
总结
以上就是本人在学习自动驾驶时,对所学课程的一些梳理和总结。后续还会分享另更多自动驾驶相关知识,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成文本人持续分享的动力。
另外,如果有同在小伙伴,也正在学习或打算学习自动驾驶时,可以和我一同抱团学习,交流技术。
版权声明,原创文章,转载和引用请注明出处和链接,侵权必究!
文中部分图片来源自网络,若有侵权,联系立删。
相关文章:

自动驾驶学习笔记(十二)——定位技术
#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 卫星定位 RTK定位 IMU定位 GNSS定…...

【MySQL系列】PolarDB入门使用
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

第二节HarmonyOS DevEco Studio创建项目以及界面认识
一、创建项目 如果你是首次打开DevEco Studio,那么首先会进入欢迎页。 在欢迎页中单击Create Project,进入项目创建页面。 选择‘Application’,然后选择‘Empty Ability’,单击‘Next’进入工程配置页。 配置页中,详…...

网页设计--第5次课后作业
1、快速学习JavaScript的基本知识第11-14章 JavaScript入门 - 绿叶学习网 2、使用所学的知识完成以下练习。 1)点击 “点亮”按钮 点亮灯泡,点击“熄灭”按钮 熄灭灯泡 2)输入框鼠标聚焦后,展示小写;鼠标离焦后…...

Spring Cache框架,实现了基于注解的缓存功能。
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Spring Cache框架 简介Spring Cache 环境准备S…...
CSS-鼠标属性篇
属性名:cursor 功能:设置鼠标光标的样式 属性值: pointer:小手move:移动图标text:文字选择器crosshair:十字架wait:等待help:帮助 eg.html{ cursor: wait;}(此处使用css改…...

Fiddler弱网测试究竟该怎么做?
前言 使用Fiddler对手机App应用进行抓包,可以对App接口进行测试,也可以了解App传输中流量使用及请求响应情况,从而测试数据传输过程中流量使用的是否合理。 抓包过程: 1、Fiddler设置 1)启动Fiddler->Tools->…...

蓝桥杯-平方和(599)
【题目】平方和 【通过测试】代码 import java.util.Scanner; import java.util.ArrayList; import java.util.List; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);//在此…...

从零构建属于自己的GPT系列1:预处理模块(逐行代码解读)、文本tokenizer化
1 训练数据 在本任务的训练数据中,我选择了金庸的15本小说,全部都是txt文件 数据打开后的样子 数据预处理需要做的事情就是使用huggingface的transformers包的tokenizer模块,将文本转化为token 最后生成的文件就是train_novel.pkl文件&a…...
STM32内存介绍
ROM是一种只读存储器,经历了从NOR Flash到NAND Flash再到现在的eMMC的发展。为了便于使用和大批量生产,ROM进一步分为了4种类型:PROM、EPROM、EEPROM和Flash。PROM只能被编程一次,EPROM可擦写可编程且可达1000次,EEPRO…...
Qt::Window 、Qt::Tool是 Qt 框架中的一个窗口标志(Window Flag),用于指定窗口的类型和行为
Qt::Window Qt::Window 是 Qt 框架中的一个窗口标志(Window Flag),用于指定窗口的类型和行为。 在 Qt 中,窗口标志用于控制窗口的外观、行为和交互方式。通过使用不同的窗口标志组合,可以定制窗口的特性,…...

东胜物流软件 SQL注入漏洞复现
0x01 产品简介 东胜物流软件是一款致力于为客户提供IT支撑的 SOP, 帮助客户大幅提高工作效率,降低各个环节潜在风险的物流软件。 0x02 漏洞概述 东胜物流软件 TCodeVoynoAdapter.aspx、/TruckMng/MsWlDriver/GetDataList、/MvcShipping/MsBaseInfo/Sav…...

第1章 爬虫基础
目录 1. HTTP 基本原理1.1 URI 和 URL1.2 HTTP 和 HTTPS1.3 请求1.3.1 请求方法1.3.2 请求的网址1.3.3 请求头1.3.4 请求体 1.4 响应1.4.1 响应状态码1.4.2 响应头1.4.3 响应体 2. Web 网页基础2.1 网页的组成2.1.1 HTML2.1.2 CSS2.1.3 JavaScript 2.2 网页的结构2.3 节点树及节…...
Python教程---序列--序列修改元素
下面和大家讲一下如何进行序列修改元素。 序列修改元素可以进行两个操作。如下: 方法1:通过下标元素来修改 方法2:通过del来删除元素 # 创建一个原始的列表 stus [张三,李四,王五,赵六,王麻子,小红]#通过下标来直接修改元素中的内容 stus[0] 张三123 stus[2] 哈哈#通过d…...

Linux 中的 ls 命令使用教程
目录 前言 如何运用 ls 命令 1、列出带有所有权的文件和目录 2、获取以人类可读的方式显示的信息 3、列出隐藏文件 4、递归列出文件 5、在使用 ls 时对文件和目录做区分 6、列出指定扩展名的文件 7、基于大小对输出内容排序 8、根据日期和时间排序文件 让我们来总结…...

Kubernetes基础入门:Kubernetes的有关概述
Kubernetes基础入门:Kubernetes的有关概述 一、摘要二、为什么需要 Kubernetes?三、Kubernetes 的功能架构 💖The Begin💖点点关注,收藏不迷路💖 一、摘要 随着云计算和容器技术的快速发展,现代…...
C# 无法将“int[]“类型隐式转换为“int?[]“,无法将“string[]“类型隐式转换为“string?[]“
在 C# 中,不能将 int[] 隐式转换为 int?[],因为它们是两种不同的类型。int[] 是一个整数数组,而 int?[] 是一个可空整数数组。要解决这个问题,你可以使用显式转换或创建一个新的可空整数数组。 两种解决方案供大家选择 // 示例…...
趣链科技,HyperChain
目录 趣链科技 HyperChain 产品介绍 CA认证即电子认证服务 趣链科技 趣链区块链平台Hyperchain-核心产品-趣链科技 趣链科技飞洛区块链服务开放平台...

吴恩达《机器学习》9-7-9-8:综合起来、自主驾驶
在神经网络的使用过程中,需要经历一系列步骤,从网络结构的选择到训练过程的实施。以下是使用神经网络时的主要步骤的小结: 一、网络结构的选择 输入层: 第一步是选择网络结构,即确定神经网络的层数以及每层的单元数。…...
HTTP/HTTPS
HTTP/HTTPS 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP 是一个基于 TCP/IP 通信协议来传递数据&a…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...