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

相关文章

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

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

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

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

Python利用GeoPandas打造一个交互式中国地图选择器

《Python利用GeoPandas打造一个交互式中国地图选择器》在数据分析和可视化领域,地图是展示地理信息的强大工具,被将使用Python、wxPython和GeoPandas构建的交互式中国地图行... 目录技术栈概览代码结构分析1. __init__ 方法:初始化与状态管理2. init_ui 方法:

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

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)二、代码分析三、

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

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

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