定位

定位是让自动驾驶的汽车找到自身位置的方法。

如何定位?

使用GPS全球定位系统。

问题:GPS精度(1-3米)过低,且受到环境的干扰严重。难运用到自动驾驶汽车中,

方法二、

利用车辆传感器测定的周遭环境与高精度地图中进行对比,从而确认汽车位置。

车辆传感器可以测量车辆与静态障碍物(树木、电线杆、路标和墙壁)之间的距离。从而构建一个基于自身为原点,车头的为轴的坐标地图。

车辆自身测定的地图的坐标系必然与高精地图坐标不一致。

但是在地图上也有可能找到车辆传感器所检测到的地标,将传感器的地标观测值与这些地标在地图上的位置进行匹配,地图自带坐标系,无人驾驶软件必须将传感器的测量得到的在车辆坐标系中的坐标,转换为地图坐标系中的坐标。

执行这类转换是解决定位问题的关键步骤。

总结:车辆将其传感器识别的地标与高精地图上存在的地标进行对比,为了进行该对比,必须能够在它自身坐标系和地图坐标系之间相互转换数据。而后,系统必须在地图上以十厘米的精度确定车辆的精确位置。

GPS定位

GNSS全球导航卫星系统

GPS 即全球定位系统,是一种由美国政府开发、并在全球范围运营的卫星导航系统。这类系统的通用名称为全球导航卫星系统或 GNSS,GPS 是使用最广泛的 GNSS 系统。

GPS 组成:

卫星:在任何特定时间,距离地球表面约2万公里。大约有30颗 GPS 卫星在太空运行。

控制站:控制站分散在世界各地,用于监视和控制卫星,其主要目的是让系统保持运行,并验证 GPS 广播信号的精确度。

GPS 接收器:GPS 接收器存在于手机、电脑、汽车、船只以及许多其他设备中,GPS 接收器应每次至少检测到四颗 GPS 卫星。

GPS 接收器实际上并不直接探测你与卫星之间的距离。它首先测量信号的飞行时间,即信号从卫星传播到你的 GPS 接收器需要多长时间,然后通过将光速乘以这个飞行时间来计算卫星的距离。

GPS定位扩展——实时运动定位 RTK

为了提高定位的精度,光速为每秒3*10的8次方,微秒级别的时间误差可以导致数百米的实际偏差。

RTK布置:

数个地面基站,能够确认自己的实际的精确的位置。

RTK作用:
RTK基站利用GPS测量自己的位置,与已知位置比较得到的误差即为GPS测量误差。可以将此误差传递给其他接收器用以调整。

RTK效果以及确定

效果:可将定位误差限定于10厘米内.

缺点: 环境干扰仍旧无法解决

GPS更新频率无法跟上车辆移动位置更新速率。

惯性导航——弥补GPS更新频率低

利用物理当前的汽车的初始位置、速度及行驶时长,通过加速度、初始速度和初始位置计算汽车在任何时间点的车速和位置。

当前位置=初始位置+速度×时间

加速度的测量:

传感器:三轴加速度计,可以精确测量加速度

加速度计根据车辆的坐标系记录测量结果。

地图坐标转换:

传感器:陀螺仪

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

IMU:

高更新频率,可达到1000赫兹,所以 IMU 可以提供接近实时的位置信息。

缺点:运动误差随时间增加而增加,只能在很短的时间范围内进行定位

但是,我们可以结合 GPS 和 IMU 来定位汽车,一方面,IMU 弥补了GPS 更新频率较低的缺陷;另一方面,GPS 纠正了 IMU 的运动误差。

激光雷达定位

方法:点云匹配

该方法将来自激光雷达传感器的检测数据与预先存在的高精度地图连续匹配。通过这种比较,可获知汽车在高精度地图上的全球位置和行驶方向。

点云匹配方法-ICP迭代最近点

假设我们想对两次点云扫描进行匹配,对于第一次扫描中的每个点,我们需要找到另一次扫描中最接近的匹配点。最终会收集到许多匹配点对,把每对点之间的距离误差相加,计算平均距离误差。我们的目标是通过点云旋转和平移来最大限度降低这一平均距离误差,这样就可以在传感器扫描和地图之间找到匹配。我们将通过传感器扫描到的车辆位置转换为全球地图上的位置,并计算出在地图上的精确位置。

滤波算法

LiDAR 定位方法,可消除冗余信息,并在地图上找到最可能的车辆位置。

Apollo 使用了直方图滤波算法,该方法有时候也被称为误差平方和算法(SSD)。

为了应用直方图滤波,我们将通过传感器扫描的点云划过地图上的每个位置,在每个位置,我们计算扫描的点与高精度地图上的对应点之间的误差或距离,然后对误差的平方求和。求得的和越小,扫描结果与地图之间的匹配越好。

该示例图中显示的一些对齐较好的点,用红色表示;以及一些对齐较差的点,用蓝色表示;绿色表示中等对齐。

卡尔曼滤波

LiDAR 定位方法,也是一种算法,它根据我们在过去的状态和新的传感器测量结果预测我们当前的状态。

具体来说,卡尔曼滤波使用了预测更新周期:

首先,我们根据之前的状态以及对移动距离和方向的估计,来估计或“预测”我们的新位置,并通过使用传感器测量我们的位置并加以纠正。

一旦使用传感器测量了我们的新位置,便可以使用概率规则,将传感器测量结果与我们现有的位置预测结合起来。

我们会永远遵循这个预测更新周期,也即需要对车辆进行定位时,先预测我们的新位置,然后用传感器测量我们的位置。

总结:

LiDAR 定位

优势:稳健性。只要从高精度地图开始,并且存在有效的传感器,我们就始终能够进行定位。

缺点:于难以构建高精度地图,并使其保持最新

视觉定位

粒子滤波:通过观察结果、概率和地图来确定我们最可能的位置的过程

视觉定位的优点在于图像数据很容易获得,

缺点在于缺乏三维信息和对三维地图的依赖。

Apollo 定位

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

这些传感器同时支持 GNSS 定位和 LiDAR 定位。GNSS 定位输出位置和速度信息,LiDAR 定位输出位置和行进方向信息。融合框架通过卡尔曼滤波将这些输出结合在一起,卡尔曼滤波建立在两步预测测量周期之上,在 Apollo 定位中,惯性导航解决方案用于卡尔曼滤波的预测步骤,GNSS 和 LiDAR 定位用于卡尔曼滤波的测量结果更新步骤。

百度无人驾驶课程——Apollo定位-笔记相关推荐

  1. 百度无人驾驶课程——无人驾驶

    无人驾驶出现的需求 人驾驶车 较高的交通事故 需要从头学起如何驾车 停车位的问题 自动驾车 更加可靠的驾驶 有可以学习的驾驶系统-更快的有效驾驶 不必考虑停车位的问题 自动驾驶的6个等级 0级:基本等 ...

  2. Apollo学习笔记 进阶课程之三:定位技术②

    Apollo学习笔记 进阶课程之三:定位技术② 百度的无人驾驶定位方案 1).GNSS定位 GPS误差来源: 上图为单点定位,基于TOA 载波定位技术:(RPK技术,PPP技术) RPK:可以在五秒内 ...

  3. 自动驾驶 | Apollo无人驾驶课程笔记0

    在公众号[计算机视觉联盟]后台回复[9076]获取我的AI学习笔记:我的微信:Kingsplusa:    --by 王博Kings,985AI博士,CSDN博客专家,华为云专家 我用了一周的晚上,将 ...

  4. 自动驾驶 | Apollo无人驾驶课程笔记3-定位

    在公众号[计算机视觉联盟]后台回复[9076]获取我的AI学习笔记:我的微信:Kingsplusa:    --by 王博Kings,985AI博士,CSDN博客专家,华为云专家 本系列<无人驾 ...

  5. 百度无人驾驶Apollo 2.0解析

    先贴原文地址为敬如何评价百度免费开放无人驾驶能力的 Apollo 计划? - xinhe sun的回答 - 知乎https://www.zhihu.com/question/58778536/answ ...

  6. 百度无人驾驶apollo项目路径规划a*算法分析

    百度无人驾驶apollo项目路径规划a*算法分析 车辆路径规划寻路算法有很多,apollo路径规划模块使用的是启发式搜索算法A*寻路算法 a*算法是一种在路网上中求解最短路径的直接搜索寻路算法,原理是 ...

  7. Windows上最全wsl2使用配置,包含基础配置、高级配置、开发工具、机器学习环境配置、机器人与自动驾驶环境配置(如Ros及百度的无人驾驶系统apollo)、服务器及Web开发环境配置等等

    Windows上最全wsl2使用配置,包含基础配置.高级配置.开发工具.机器学习环境配置.机器人与自动驾驶环境配置(如Ros及百度的无人驾驶系统apollo).服务器及Web开发环境配置等等. 文章比 ...

  8. Apollo学习笔记

    Apollo学习笔记 Apollo课程 智能驾驶入门课程 无人驾驶概览 1.软件层分为三层: 实时操作系统(RTOS):确保在给定时间内完成特定任务,实时时确保系统稳定性.驾驶安全性的重要要求.通过在 ...

  9. Apollo进阶课程⑪ | Apollo地图生产技术

    目录 高精地图生产流程 数据采集 数据处理 元素识别 人工验证 全自动数据融合加工 基于深度学习的地图要素识别 人工验证生产 地图成果 原文链接:进阶课程⑪ | Apollo地图生产技术 高精地图是自 ...

最新文章

  1. ICE 迁移64位安装问题
  2. java第十三章总结
  3. ASP.NET Core Controller与IOC的羁绊
  4. Javascript根据属性从对象数据中删除元素
  5. SQL Server 数据库中的 MD5 和 SHA1
  6. 这里带你了解IR2104驱动电路
  7. 一键实现证件照背景的替换,Python 制作可视化GUI界面真香啊
  8. Ubuntu安装翻译软件(goldendcit)
  9. 地理信息系统中最基本的两种数据模型:矢量模型和栅格模型
  10. Thematic框架主题结构图
  11. UGI九宫格sliced显示问题
  12. 安卓手机版微信聊天加密软件 悬浮窗版本
  13. c语言中 指针的研究,C语言中指针的研究与总结
  14. Nightingale 滴滴夜莺 运维监控-快速开始
  15. 高德获取ip地理位置
  16. 信息系统项目管理--计算题笔记
  17. [数学] Lucas定理模板
  18. WmiPrvSe.exe 的 cpu 占用
  19. 嵌入式C语言自我修养:从芯片、编译器到操作系统(附送书籍)
  20. VS中使用BugTrap定位程序崩溃点

热门文章

  1. 滴滴的派单算法,你们怎么看?
  2. 单片机串口中断控制流水灯c语言,利用单片机中断实现流水灯
  3. 使用Python计算fasta文件的序列长度
  4. 用TreeView做权限导航的一个例子
  5. mmdvm 接收_派之星和MMDVM热点常见问题
  6. OTB运行代码文件介绍
  7. tkinter常用控件
  8. 步进电机基础(6.1)-步进电机的特性测量方法-静态特性
  9. 六顶思考帽 学习笔记
  10. 5步完成SRM系统实施