Apollo Udacity自动驾驶课程笔记——高精度地图、厘米级定位

本文主要是介绍Apollo Udacity自动驾驶课程笔记——高精度地图、厘米级定位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:目前 Apollo 内部高精地图主要应用在高精定位、环境感知、决策规划、仿真运行四大场景,帮助解决林荫道路GPS信号弱、红绿灯是定位与感知以及十字路口复杂等导航难题。

1

高精度地图

1、高精地图与传统地图

1.1 定义:高精地图是当前无人驾驶车技术不可或缺的一部分。它包含了大量的驾驶辅助信息,最重要是包含道路网的精确三维表征,例如交叉路口布局和路标位置。

1.2 高精地图还包含很多语义信息,地图上可能会报告交通灯不同颜色的含义,也可能指示道路的速度限制,及左转车道开始的位置。

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

2、高精地图与定位、感知、规划的关系

2.1 定位:首先车辆可能会寻找地标,我们可以使用从各类传感器收集的数据,如摄像机图像数据、激光雷达收集的三维点云数据来查找地标。车辆将其收集的数据与其在高精地图上的已知地标进行比较,这一匹配过程是需要预处理、坐标转换、数据融合的复杂过程。横向:单目相机拍摄实虚线和地图对比,知道在那个车道。纵向:借助交通信号灯、路灯、灯杆等实现定位

2.2 感知:1)Camera、激光雷达超过一定距离受到限制,地图保证提前5-10公里感知。2)恶劣天气或夜间、遇到障碍物,传感器无法识别物体。3)即使传感器尚未检测到交通信号灯,高精地图也可以将交通信号灯的位置提供给软件栈的其余部分,帮助车辆做下一个决策。4)高精地图可帮助传感器缩小检测范围,ROI区域提高检测精度和速度。

2.3 规划:1)高精地图可帮助车辆找到合适的行车空间,还可以帮助规划器确定不同的路线选择,来帮助预测模块预测道路上其他车辆将来的位置。2)在具有低速限制、人行横道或减速带的区域,高精地图可以使车辆能够提前查看并预先减速

3、Apollo高精地图与构建

3.1 高精地图包含道路定义、交叉路口、交通信号灯精确位置、车道规则。不仅减小计算需求,还可以提供驾驶环境详细信息。

3.2 高精度地图的构建由五个过程组成:数据采集、数据处理、对象检测、手动验证和地图发布。

  • 数据采集:300辆Apollo测试车辆负责收集用于制作地图的源数据,多种传感器,如GPS、IMU、激光雷达、摄像机。Apollo定义了一个硬件框架,将这些传感器集成到单个自主系统中,通过支持多种类的传感器,Apollo收集各类数据将这些数据融合,最终生成高精度地图。

  • 数据处理:对收集到的数据进行整理、分类和精简,以获得没有任何语义信息或注释的初始地图模板。

  • 对象检测:使用人工智能来检测静态对象并对其进行分类,其中包括车道线、交通标志、甚至是电线杆,手动验证可确保自动地图创建过程正确进行并及时发现问题。

  • 在构建和更新地图的过程中,Apollo使用众包向公众发布其数据采集工具,以便任何人都可以参与制作高精度地图的任务,这加快了高精地图制作和维护的过程。

2

厘米级定位

1、GNSS RTK

1.1、GPS 4颗卫星定位。除了三颗卫星三角测量,再加一颗定位高度的卫星。接收端与卫星距离通过TOF原理测量飞行时间,但是光速很大,少量时间误差导致巨大误差。每颗卫星都配备了高精确度的原子钟。

1.2、为进一步减小误差,使用实时运动定位RTK。RTK涉及的地面基站,用来确定系统误差,然后传递给GPS接收器来调整。在 RTK 的帮助下,GPS 可以将定位误差限制在 10 厘米以内。

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

2、惯性导航

2.1、加速度需要三轴加速度计的传感器来测量,加速度计根据车辆的坐标系记录测量结果,还需要陀螺仪传感器将这些测量值转换为全局坐标系测量值。

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

2.3、评价:1)IMU 可以以高频率更新,可达 1000 赫兹。2)运动误差随时间增加而增加,我们只能依靠惯性测量单元在很短的时间范围内进行定位。

3、激光雷达定位

3.1、迭代最近点法ICP 是匹配点云常见方法,假设我们对两次点云扫描进行匹配。我们的目标是通过点云旋转和平移来最大限度地降低这一平均距离误差

3.2、滤波算法是一种LiDAR 定位方法,滤波算法可消除冗余信息并在地图上找到最可能的车辆位置。直方图滤波算法,将通过传感器扫描的点云滑过地图上的每个位置,在每个位置上计算扫描的点与高精度地图上的对应点之间的误差或距离然后对误差的平方求和,求得的和越小扫描结果与地图之间的匹配越好。

3.3、卡尔曼滤波是另一种LiDAR 定位方法。卡尔曼滤波使用了预测更新周期,首先我们根据之前的状态以及对移动距离和方向的来估计我们的新位置。当然运动估计并不完美,所以需要通过使用传感器测量我们的位置并加以纠正。一旦传感器测量了我们的新位置,我们便可以使用概率规则将不完美的测量结果与现有位置匹配起来。

3.4、视觉定位

粒子滤波:车道线在许多道路上却很常见,可以使用相同的粒子滤波原理对车道线进行拍照,然后使用拍摄的图像来确定车辆在道路中的位置,可以将道路摄像头图像与地图进行比较。

3.5、Apollo定位

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

  • 惯性导航解决方案用于卡尔曼滤波的预测步骤,GNSS 和 LiDAR 定位用于卡尔曼滤波的测量结果更新步骤。

 

这篇关于Apollo Udacity自动驾驶课程笔记——高精度地图、厘米级定位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建