Apollo自动驾驶入门课程第③讲 — 定位

目录

1. 定位的概述

2. 定位方法介绍

2.1 GNSS RTK

2.2 惯性导航

2.3 激光雷达定位

2.4 视觉定位

2.5 Apollo定位


本文转自微信公众号:Apollo开发者社区  原创: 阿波君 Apollo开发者社区 8月17日

上周我们发布了 Apollo入门课堂第②讲—高精地图,收到了很多开发者的认同和赞赏,也看到越来越多的开发者对学习自动驾驶技术有了浓厚的兴趣,希望有更多开发者能够通过本门课程,学到更多的自动驾驶知识。

本周我们将介绍定位模块的知识,了解车辆如何以个位数厘米级别的精度进行自定位。

定位是让无人车知道自身确切位置的方法,这是一个美妙但是十分艰难的任务,同时也对无人驾驶车十分重要。定位不仅仅是找出自身的大概方位,而是要以10cm级别,将车感信息与高精地图信息进行比较来精确的位置寻找。


视频链接为:Apollo入门课程-Sebastian定位_腾讯视频

1. 定位的概述

在日常生活中假设你手中有一张高精地图,定位的任务是确定你的车辆在这张高精地图上的位置。

大多数时候,我们使用GPS来进行定位,但是GPC对于无人车来说还不够精确。因此我们必须找到另一种方法来更准确地确定车辆在地图上的位置。最常用的方法是将汽车传感器所看到的内容与地图上所显示的内容进行比较。车辆传感器可以测量车辆与静态障碍物之间的距离。我们在车自身的坐标系中测量这些距离以及这些静态障碍物的方向。在车的坐标系中,汽车的前进方向始终向前,坐标系正方向始终与车头保持一致,但不一定与地图坐标系保持一致。当车辆传感器测量到地图上的物体,会将传感器的地表观测值与地图上的位置匹配,转换到地图自带坐标系,反之亦然,从而达到地图与车感数据的对比。

定位提供了许多可选择的方法,但每种都有自己的劣势。接下来将介绍主流的定位方法。

高精地图最重要特征之一是精度,手机上的导航地图只能达到米级精度,而高精地图可以使车辆能够达到厘米级的精度,这对确保无人车的安全性至关重要。

2. 定位方法介绍

2.1 GNSS RTK

如果在野外迷路,假如你看到自己离一棵树75米远,你只知道自己位于一个以树为中心半径为75米的圆上。但是如果看到一个离自己64米远的房子,你就会知道自己位于两个圆的交点处,但仍不知道自己位于哪个交点上。假设你看到了第三个路标,如路灯。经过测量你发现自己离路灯55米远,自己就知道了相对于这些地标的确切位置。

首先。假设现在有一个世界地图标注了这三个地标在世界上的确切位置,那么就可以知道自身的确切位置了,这就被称为三角测量。

GPS就是这样的工作原理,只是参照物并不是地标而是卫星。三颗卫星再加上一颗用来定位高度的卫星,4颗卫星就可以知道自身的确切位置了。GPS这类系统的通用名称为全球导航卫星系统或GNSS,GPS是其中使用最广泛的GNSS系统。

GPS分为三部分。第一部分是卫星,在任何特定时间大约有30颗GPS卫星在外层空间运行,它们各自距离地球表面约2万公里。第二部分由世界各地的控制站组成,控制站用于监视和控制卫星,其主要目的是让系统保持运行并验证GPS广播信号的精确度。第三部分是GPS接收器,GPS接收器存在于手机、电脑、汽车、船只以及许多其他设备中。

GPS接收器实际上并不直接探测你与卫星之间的距离,它首先测量信号的飞行时间即TOF原理。通过将光速乘以这个飞行时间,来计算离卫星的距离。由于光束的值很大,即使是少量的时间误差也会在距离计算中造成巨大的误差。

因此每颗卫星都配备了高精确度的原子钟。为进一步减小误差,使用实时运动定位(RTK)。RTK涉及在地面上建立几个基站,每个基站都知道自己精确的 “地面实况”位置,但是每个基站也通过GPS测量自己的位置。已知的 "地面实况"位置与通过GPS测量的位置之间的偏差,为GPS测量结果中的误差。然后将这个误差传递给其他GPS接收器以供其调整自身的位置计算。在RTK的帮助下,GPS可以将定位误差限制在10厘米以内。

但是仍存在高楼和其他障碍物可能阻挡GPS信号的问题,这使定位变得苦难或根本无法定位。GPS的更新频率很低,大约为10赫兹。由于无人驾驶车在快速移动,可能需要更频繁的更新位置。

2.2 惯性导航

假设一辆汽车正以恒定速度直线行驶,如果提供了汽车的初试位置、速度、行驶时长,那么汽车的位置即从初试位置开始,然后速度乘以时间。

假如给予一辆汽车的初始速度,并给予加速度和驾驶时间,就可以使用加速度、初始速度、初始位置来计算汽车在任何时间点的车速和位置。

加速度需要三轴加速度计的传感器来测量,有三种不同类型的三轴加速度计,它们采用不同的方法,但共同的目标是精确测量加速度。加速度计根据车辆的坐标系记录测量结果,还需要陀螺仪传感器将这些测量值转换为全局坐标系测量值。

三轴陀螺仪的三个外部平衡环一直在旋转,但三轴陀螺仪中的旋转轴始终固定在世界坐标系中。在坐标系中的位置是通过测量旋转轴和三个外部平衡环的相对位置来计算的。

加速度计和陀螺仪是惯性测量单元(IMU)的主要组件,IMU可以以高频率更新,可达1000赫兹,所以IMU可以提供接近实时的位置信息。但缺点在于其运动误差随时间增加而增加,我们只能依靠惯性测量单元在很短的时间范围内进行定位。但是我们可以结合GPS和IMU来定位汽车,一方面IMU弥补了GPS更新频率较低的缺陷。另一方面GPS纠正了IMU的运动误差。但是即使将GPS和IMU系统相结合也不能完全解决定位问题,比如我们在山间行驶或城市峡谷中或在地下隧道中行驶,那么可能长时间没有GPS更新。

2.3 激光雷达定位

利用激光雷达,可以通过点云匹配来对汽车进行定位。该方法将来自激光雷达传感器的检测数据与预先存在的高精地图之间匹配,通过这种比较可获知汽车在高精地图上的全球位置的行驶方向。匹配点云有多种方法,比如迭代最近点(ICP)就是一种方法。对于第一次扫描中的每个点,需要找到另一次扫描中最接近的匹配点。最终会收到许多匹配点对,把每个点的距离误差相加,然后计算平均距离误差。假设我们对两次点云扫描进行匹配。我们的目标是通过点云旋转和平移来最大限度地降低这一平均距离误差,就可以在传感器扫描和地图之间找到匹配,将通过传感器扫描到的车辆位置转换为全球地图上的位置并计算出在地图上的精确位置。

滤波算法是另一种LiDAR定位方法。将通过传感器扫描到的位置转换为全球地图上的位置并进算出在地图上的精确位置。滤波算法可消除冗余信息并在地图上找到最可能的车辆位置。Apollo使用了直方图滤波算法,该方法有时也被称为误差平方和算法(SSD)。为了应用直方图滤波,将通过传感器扫描的点云滑过地图上的每个位置,在每个位置上计算扫描的点与高精度地图上的对应点之间的误差或距离然后对误差的平方求和,求得的和越小扫描结果与地图之间的匹配越好。在事例中,蓝色表示较好,红色教差,绿色表示一般。

卡尔曼滤波是另一种LiDAR定位方法,卡尔曼滤波用于根据我们在过去的状态和新的传感器测量结果预测我们当前的状态。具体来说,卡尔曼滤波使用了预测更新周期,首先我们根据之前的状态以及对移动距离的方向来估计我们的新位置。当然运动估计并不完美,所以需要通过使用传感器测量我们的位置并加以纠正。一旦传感器测量了我们的新位置,我们便可以使用概率规则将不完美的测量结果与现有位置匹配起来。我们会永远遵循这个预测更新周期,只要我们需要对车辆进行定位,先预测我们的新位置,然后用传感器测量我们的位置。LiDAR定位的主要优势在于稳健性,只要从高精地图开始并且存在有效的传感器,就始终能够进行定位。主要缺点在于难以构建高精地图并使其保持最新,事实上几乎不可能让地图完全保持最新,因为几乎每个地图均包含瞬态元素,汽车,行人,停放的汽车,垃圾等。

2.4 视觉定位

图像是要收集的最简单的数据类型,摄像头便宜且种类繁多,易于使用。通过图像实现精确定位却非常困难,实际上摄像头图像通常与来自其他传感器的数据相结合以准确定位车辆,将摄像头数据与地图和GPS数据相结合,比单独使用摄像头图像进行定位的效果更好。假设一辆车正在路上行驶,感知到右边有树,但是地图显示道路右侧有几棵树有很多不同的点位置。如何知道车辆现在看到哪棵树?我们可以使用概率来确定哪个点最可能代表我们的实际位置。有些店是无法看到右边有树,可以先排出。

继续开车可以发现,有些点右边只有一棵树,也可以排出。

该过程称为粒子滤波。当然树木在许多道路上比较稀少,但是车道线在许多道路上却很常见,可以使用相同的粒子滤波原理对车道线进行拍照,然后使用拍摄的图像来确定车辆在道路中的位置,可以将道路摄像头图像与地图进行比较。如图所示,蓝色代表地图上两个不同位置的车道线,红色代表车辆摄像头观察到的车道线,红线与右侧蓝线的匹配度要比与左侧蓝线的匹配度高得多,更有可能位于右侧图像位置上。

视觉定位的优点在于图像数据很容易获得,缺点在于缺乏三维信息和对三维地图的依赖。

高精地图不仅可以减少计算需求,还可以通过提供有关驾驶环境的详细信息,来确保无人车的安全。保持这些地图的更新是一项重大任务,测试车队需要不断地对高精度地图进行验证和更新。此外,这些地图可能达到几厘米的精度,这是水准最高的制图精度。

2.5 Apollo定位

Apollo使用基于GPS、IMU、激光雷达的多传感器融合定位系统,这种方法利用了不同传感器的互补优势,也提高了稳定性和准确性。

Apollo定位模块依赖于GPS、IMU、激光雷达、雷达、高精地图,这些传感器同时支持GNSS定位和LiDAR定位,GNSS定位输出位置和速度信息,LiDAR定位输出位置和行进方向信息。融合框架通过卡尔曼滤波将这些输出结合在一起。

卡尔曼滤波建立在两步预测测量周期之上,在Apollo中,惯性导航解决方案用于卡尔曼滤波的预测步骤,GNSS和LiDAR定位用于卡尔曼滤波的测量结果更新步骤。

更多详细课程内容,大家可以登陆官网继续学习!

也可以添加社区小助手(Apollodev)为好友,回复“课程学习”进群与其他开发者共同交流学习。  

自课程上线以来,浏览量已超10万,已帮助全球97个国家约 7000 名学员入门自动驾驶与 Apollo 开源平台,其中37%为海外学员,本门课程已成为优达学城 (Udacity) 近期获得关注度最高的免费课程之一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440275.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux与Bash 编程——Linux文件处理命令-L1

目录: linux系统与shell环境准备 Linux系统简介操作系统简史Linux的发行版:Linux与Windows比较:Linux安装安装包下载Linux的访问方式远程登录方式远程登录软件:mobaxterm的使用:使用电脑命令行连接:sshd的…

网络编程懒人入门(一):快速理解网络通信协议(上篇)

转自即时通讯网:http://www.52im.net/ 原作者:阮一峰(ruanyifeng.com),本文由即时通讯网重新整理发布,感谢原作者的无私分享。 1、写在前面 论坛和群里常会有技术同行打算自已开发IM或者消息推送系统,很…

PCA算法中样本方差和协方差的无偏估计与n-1的由来

原文出处: http://blog.sina.com.cn/s/blog_c96053d60101n24f.html 在PCA算法中的方差协方差计算公式中除数为什么是n-1? 假设X为独立同分布的一组随机变量,总体为M,随机抽取N个随机变量构成一个样本,和是总体的均值和方差, 是常…

Apollo自动驾驶入门课程第④讲 — 感知(上)

目录 1. 感知的概述 2. 计算机视觉 3. 摄像头图像 4. LiDAR图像 5. 机器学习 6. 神经网络 7. 反向滤波法 本文转自微信公众号:Apollo开发者社区 原创: 阿波君 Apollo开发者社区 8月23日 上一篇文章中,我们发布了无人驾驶技术的 定位篇…

网络编程懒人入门(二):快速理解网络通信协议(下篇)

转自即时通讯网:http://www.52im.net/ 原作者:阮一峰(ruanyifeng.com),本文由即时通讯网重新整理发布,感谢原作者的无私分享。 1、前言 本文上篇《网络编程懒人入门(一):快速理解网络通信协议&#xff0…

为什么说逻辑回归LR是线性分类器?

问题描述:为什么说逻辑回归LR是非常典型的线性分类器? 首先,我们要弄明白区分线性与非线性分类器的标准是什么?是决策边界(Decision Boundary) 以二分类(LR可以用于多分类)为例进行…

朴素贝叶斯算法注意事项(有待完善)

1.朴素贝叶斯算法的优缺点总结: 优点: 朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率;分类速度快,准确度高;对缺失数据不太敏感,算法简单,常用于文本分类(如新闻…

网络编程懒人入门(三):快速理解TCP协议一篇就够

转自即时通讯网:http://www.52im.net/ 原作者:阮一峰(ruanyifeng.com),本文由即时通讯网重新整理发布,感谢原作者的无私分享。 1、前言 本系列文章的前两篇《网络编程懒人入门(一):快速理解网络通信协议…

分类问题的模型评估指标总结

在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四中不同的组合,构成混淆矩阵(可适用于多分类),通常有这几种主要模型评估指标:精确率(查的准)、召回率(查的全对正样本的区分能力)、F1值(反映模型…

nltk安装punkt等语料库时报SSL错误完美解决方案及离线安装方法

nltk是NLP领域中一个比较通用的国际分词工具,但是使用时往往依赖语料库数据包,需要安装到本地,以下介绍在线安装和离线安装两种方式: (ps:对NLP感兴趣的朋友可以相互学习,我的微信号&#xff1…

7. Deep Learning From Scratch

Intro 这是深度学习第7课。 到目前为止,您构建的模型依赖于预先训练的模型。 但它们不是许多用例的理想解决方案。 在本课程中,您将学习如何构建全新的模型。 Lesson [1] from IPython.display import YouTubeVideo YouTubeVideo(YbNE3zhtsoo, widt…

最实用的Git命令总结:新建本地分支、远程分支、关联和取消关联分支、清除本地和远程分支、合并分支、版本还原、tag命令、中文乱码解决方案、如何fork一个分支和修改后发起合并请求

1.常用命令git、tag整理 1、新建分支本地分支 git branch <branch-name>远程分支 git push origin <branch-name>:<new-branch-name> 2、删除分支本地分支 git branch -d <branch-name> 或 git branch -D <branch-name>远程分支 git push o…

Java基础部分快速复习(以前复习的时候放在自己的新浪博客上)

工作后Java基本没有用到&#xff0c;有时候自己也会把基础过一遍&#xff0c;下面的链接是以前重温的时候整理的Java基础最核心部分的知识点和代码示例放在自己的新浪博客上&#xff0c;如果以后有需要&#xff0c;直接从这里进入&#xff0c;可以快速复习&#xff0c;节省时间…

SQL基础用法总结(以前复习的时候放在自己的新浪博客上)

工作后主要做移动端和前端这一块&#xff0c;后端的知识都是靠自己学习积累的&#xff0c;下面的链接是以前重温的时候整理的SQL基础最核心部分的知识点和代码示例放在自己的新浪博客上&#xff0c;如果以后有需要&#xff0c;直接从这里进入&#xff0c;可以快速复习&#xff…

网络编程懒人入门(四):快速理解TCP和UDP的差异

转自即时通讯网&#xff1a;http://www.52im.net/ 原作者&#xff1a;MeloDev&#xff0c;本文由即时通讯网重新修订发布&#xff0c;感谢原作者的无私分享。 1、前言 对于即时通讯开发者新手来说&#xff0c;在开始着手编写IM或消息推送系统的代码前&#xff0c;最头疼的问…

Apollo自动驾驶入门课程第⑤讲 — 感知(下)

目录 1. 卷积神经网络 2. 检测与分类 3. 跟踪 4. 分割 5. Apollo感知 6. 传感器数据比较 7. 感知融合策略 本文转自微信公众号&#xff1a;Apollo开发者社区 原创&#xff1a; 阿波君 Apollo开发者社区 8月29日 上一篇文章中&#xff0c;我们发布了无人驾驶技术的 感知篇…

TextRank算法原理和提取关键词的主要过程详解 计算句子相似度 计算句子重要性公式

1、TextRank计算句子相似度和句子重要性的公式 2、TextRank算法提取关键词的过程 3、TextRank建立关键词无向图

Apollo自动驾驶入门课程第⑥讲 — 预测

目录 1. 简介 2. 不同的预测方式 3. 基于车道序列的预测 4. 障碍物状态 5. 预测目标车道 6. 递归神经网络 7. 递归神经网络在目标车道预测的应用 8. 轨迹生成 本文转自微信公众号&#xff1a;Apollo开发者社区 原创&#xff1a;涛涛CV Apollo开发者社区 9月6日 上一篇文…

使用PDF.js实现前端和手机端网页预览PDF文件(可定制,支持本地文件、Base64编码和远程URL跨域方式)

1.插件下载地址&#xff1a;https://mozilla.github.io/pdf.js/ 下载后解压pdfjs-1.10.88-dist.zip文件后得到&#xff1a; 2.把pdfjs-1.10.88-dist放到项目静态资源中&#xff0c;在自己的页面中通过iframe链接到pdfjs-1.10.88-dist/web/viewer.html文件中。 3.访问自己的页…

移动互联网浩荡十年 有的升腾,有的陨落

原创&#xff1a; 颜西龙 猎云网 &#xff08;ilieyun&#xff09;1周前 中国移动互联网的十年&#xff0c;是波澜壮阔、荡气回肠的十年。本文回溯了这段历史&#xff0c;在这十年间里&#xff0c;有的企业升腾&#xff0c;有的企业陨落。 2011年8月16日&#xff0c;北京798艺术…