使用车载激光雷达数据在惯性测量单元读数帮助下构建地图

简介: 处理来自安装在车辆上的传感器的 3-D 激光雷达数据,以便在惯性测量单元 (IMU) 读数的帮助下逐步构建地图。这样的地图可以促进车辆导航的路径规划,也可以用于定位。

一、前言
处理来自安装在车辆上的传感器的 3-D 激光雷达数据,以便在惯性测量单元 (IMU) 读数的帮助下逐步构建地图。这样的地图可以促进车辆导航的路径规划,也可以用于定位。
二、概述
高清 (HD) 地图是一种地图服务,可提供精度高达几厘米的道路几何形状。这种精度水平使高清地图适用于自动驾驶工作流程,例如定位和导航。这种高清地图是通过从3D激光雷达扫描构建地图,结合高精度GPS和/或IMU传感器生成的,可用于定位几厘米内的车辆。此示例实现构建此类系统所需的功能子集。
三、加载和浏览记录的驾驶数据
此示例中使用的数据来自此 GitHub存储库,表示大约 100 秒的激光雷达、GPS 和 IMU 数据。数据以MAT文件的形式保存,每个文件都包含一个时间表。从存储库下载 MAT 文件并将它们加载到 MATLAB® 工作区中。
首先,加载从激光雷达保存的点云数据。每次激光雷达数据的扫描都使用对象存储为 3D 点云。此对象使用 K-d 树数据结构在内部组织数据,以便更快地进行搜索。与每次激光雷达扫描关联的时间戳记录在时间表的变量中。

从 MAT 文件加载 GPS 数据和变量用于存储车辆上 GPS 设备记录的地理坐标。

从 MAT 文件加载 IMU 数据。IMU 通常由报告车辆运动信息的各个传感器组成。它们结合了多个传感器,包括加速度计、陀螺仪和磁力计。该变量存储 IMU 传感器的报告方向。这些读数报告为四元数。每个读数被指定为包含四个四元数部分的 1×4 向量。将 1×4 矢量转换为四元数(自动驾驶工具箱)对象。

要了解传感器读数是如何传入的,请为每个传感器计算大致的帧持续时间。

GPS 传感器是最慢的,以接近 1 Hz 的速率运行。其次是激光雷达最慢的,以接近 10 Hz 的速率运行,其次是 IMU 以近 400 Hz 的速率运行。

四、可视化驾驶数据
要了解场景包含的内容,请使用流媒体播放器可视化记录的数据。
1.png
2.png

五、使用记录的激光雷达数据构建地图
激光雷达是功能强大的传感器,可用于其他传感器不起作用的挑战性环境中的感知。它们提供详细的、完整的 360 度车辆环境视图。
3.png

激光雷达可用于构建厘米级精度的高清地图,包括整个城市的高清地图。这些地图以后可用于车载定位。构建此类地图的典型方法是对齐从移动车辆获得的连续激光雷达扫描,并将它们组合成单个大点云。此示例的其余部分将探讨这种构建地图的方法。

首先获取对应于附近激光雷达扫描的两个点云。要加快处理速度,并在扫描之间积累足够的运动,请使用每十分之一次扫描。

在注册之前对点云进行降采样。缩减采样可提高配准精度和算法速度。对点云进行预处理后,使用广义ICP算法进行注册。通过将指标名称-值参数设置为“planeToPlane”来实现。可视化注册前后的对齐方式。
4.png

请注意,点云在注册后对齐良好。即使点云紧密对齐,对齐仍然不完美。
5.png

现在,一对点云的处理管道已经很好地理解了,可以将其放在整个记录数据序列的循环中。全班同学把所有这些放在一起。该类的方法采用新的点云,并完成前面详述的步骤。

此外,该方法还接受用于初始化注册的初始转换估计值。良好的初始化可以显著改善注册结果。相反,初始化不当可能会对注册产生负面影响。提供良好的初始化还可以缩短算法的执行时间。

提供登记初始估计的常用方法是使用恒定速度假设。使用上一次迭代的转换作为初始估计值。

该方法还创建和更新 2-D 顶视图流式点云显示。
6.png

点云配准本身就可以构建车辆穿越的环境地图。虽然地图可能看起来局部一致,但它可能在整个序列中产生了明显的漂移。在构建的地图上叠加地面实况轨迹。
7.png

通过计算轨迹之间的均方根误差 (rmse),将估计轨迹与真实轨迹进行比较。

在初始转弯后,估计的轨迹明显偏离地面真实轨迹。仅使用点云配准估计的轨迹可能会漂移,原因有很多。

六、使用 IMU 方向改进构建地图
IMU 是安装在平台上的电子设备。IMU 包含多个传感器,用于报告有关车辆运动的各种信息。典型的 IMU 包含加速度计、陀螺仪和磁力计。IMU 可以提供可靠的方向测量。

使用 IMU 读数为注册提供更好的初始估计值。此示例中使用的 IMU 报告的传感器读数已在设备上过滤。
8.png

使用IMU的方向估计显著改善了配准,从而以更小的漂移获得更近的轨迹。

目录
相关文章
|
4月前
|
人工智能 安全 机器人
2026年阿里云一键部署OpenClaw保姆级教程,快速拥有专属AI助理!
想拥有写周报、查资料、跑脚本的专属AI助理?只需一台阿里云服务器,按这篇保姆级教程操作,30分钟即可完成开源AI代理平台OpenClaw的部署!本地优先、支持多工具联动,7×24小时在线,新手友好。
559 5
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
1804 6
|
机器学习/深度学习 存储 PyTorch
PyTorch内存优化的10种策略总结:在有限资源环境下高效训练模型
在大规模深度学习模型训练中,GPU内存容量常成为瓶颈,特别是在训练大型语言模型和视觉Transformer时。本文系统介绍了多种内存优化策略,包括混合精度训练、低精度训练(如BF16)、梯度检查点、梯度累积、张量分片与分布式训练、
755 14
PyTorch内存优化的10种策略总结:在有限资源环境下高效训练模型
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶领域的应用与挑战####
本文旨在探讨深度学习驱动下的图像识别技术于自动驾驶汽车中的应用现状,重点分析其在环境感知、障碍物检测及路径规划等方面的贡献,并深入剖析该技术面临的数据依赖性、算法泛化能力、实时处理需求等核心挑战。通过综述当前主流算法框架与最新研究成果,本文为推动自动驾驶技术的稳健发展提供理论参考与实践指导。 ####
657 7
|
消息中间件 JSON Kafka
【十九】初学Kafka并实战整合SpringCloudStream进行使用
【十九】初学Kafka并实战整合SpringCloudStream进行使用
641 1
【十九】初学Kafka并实战整合SpringCloudStream进行使用
|
机器学习/深度学习 数据采集 自然语言处理
特征提取:它是什麼?为什么需要它?
【8月更文挑战第23天】
2071 0
|
存储 Java 编译器
Java语言中的实例化:深入解析
Java语言中的实例化:深入解析
771 1
|
SQL Java Apache
阿里云数据库 SelectDB 版内核 Apache Doris 2.1.4 版本正式发布
亲爱的社区小伙伴们,Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。
595 0
N..
|
开发框架 前端开发 UED
Bootstrap弹出框与警告框
Bootstrap弹出框与警告框
N..
350 0
|
前端开发 Java 开发工具
springboot对接阿里云视频点播
在阿里云的视频点播官方文档中,可以看到是有一个上传SDK和一个服务端SDK的,上传视频可以用上传SDK里面的服务端SDK里面的java上传SDK,其他操作查询删除什么的只能用服务端SDK里面的javaSDK