基于matlab使用车载激光雷达数据在惯性测量单元读数帮助下构建地图(附源码)

一、前言

此示例演示如何处理来自安装在车辆上的传感器的 3-D 激光雷达数据,以便在惯性测量单元 (IMU) 读数的帮助下逐步构建地图。这样的地图可以促进车辆导航的路径规划,也可以用于定位。为了评估生成的地图,此示例还展示了如何将车辆的轨迹与全球定位系统 (GPS) 记录进行比较。

二、概述

高清 (HD) 地图是一种地图服务,可提供精度高达几厘米的道路几何形状。这种精度水平使高清地图适用于自动驾驶工作流程,例如定位和导航。这种高清地图是通过从3D激光雷达扫描构建地图,结合高精度GPS和/或IMU传感器生成的,可用于定位几厘米内的车辆。此示例实现构建此类系统所需的功能子集。

在此示例中,您将学习如何:

  • 加载、浏览和可视化记录的驾驶数据

  • 使用激光雷达扫描构建地图

  • 使用 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 的速率运行。

四、可视化驾驶数据

要了解场景包含的内容,请使用流媒体播放器可视化记录的数据。

五、使用记录的激光雷达数据构建地图

激光雷达是功能强大的传感器,可用于其他传感器不起作用的挑战性环境中的感知。它们提供详细的、完整的 360 度车辆环境视图。

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

  1. 对齐激光雷达扫描:使用点云配准技术(如迭代最近点 (ICP) 算法或正态分布变换 (NDT) 算法)对齐连续激光雷达扫描。该函数返回刚性变换,该变换使移动点云相对于参考点云对齐。通过连续组合这些变换,每个点云都变换回第一个点云的参考系。

  2. 合并对齐的扫描:一旦注册了新的点云扫描并将其转换回第一个点云的参考系,就可以将点云与第一个点云合并。

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

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

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

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

  • 对点云进行降采样。

  • 估计将以前的点云与当前点云合并所需的刚性变换。

  • 将点云转换回第一帧。

  • 将点云与累积的点云图合并。

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

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

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

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

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

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

  • 来自传感器的噪声扫描,没有足够的重叠

  • 缺乏足够强大的功能,例如,靠近长路

  • 初始变换不准确,尤其是当旋转显著时

六、使用 IMU 方向改进构建地图

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

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

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

七、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

程序有偿获取:评论区下留言,博主看到会私信你。

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

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

相关文章

Lingo优化软件初步

一、Lingo软件介绍 1、lingo软件的简单介绍 美国芝加哥大学的Linus Schrage教授于1980年左右开发的专门用于求解最优化问题的软件包,后经多年完善与扩充,并成立了LINDO系统公司进行商业运作取得巨大成功。根据 LINDO公司主页(http://www.li…

FPGA入门系列12--RAM的使用1

文章简介 本系列文章主要针对FPGA初学者编写,包括FPGA的模块书写、基础语法、状态机、RAM、UART、SPI、VGA、以及功能验证等。将每一个知识点作为一个章节进行讲解,旨在更快速的提升初学者在FPGA开发方面的能力,每一个章节中都有针对性的代码…

Spring Boot 中的认证是什么,如何使用

Spring Boot 中的认证是什么,如何使用 在 Web 应用程序中,认证是一项重要的安全措施。Spring Boot 提供了丰富的认证机制,可以帮助我们轻松地实现各种认证需求。本文将介绍 Spring Boot 中的认证是什么,以及如何使用 Spring Boot…

多元回归预测 | Matlab阿基米德算法(AOA)优化极限梯度提升树XGBoost回归预测,AOA-XGBoost回归预测模型,多变输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 阿基米德算法(AOA)优化极限梯度提升树XGBoost回归预测,AOA-XGBoost回归预测模型,多变输入模型,多变量输入模型,多变量输入模型,matlab代码回归预测,多变量输入模型,多变量输入模型 评价指标包括:MAE、RMSE和R2…

oracle新建库(表空间)表

文章目录 前言一、sqlplus登录二、表空间1.新建表空间2. 查看表空间3. 查看表空间和对应数据文件4.表空间增加数据文件5.删除单个数据文件(只有一个默认的会删除失败)6.删除表空间及数据文件(慎用) 三、创建新用户并指定表空间1.去掉前缀2.新建用户&…

npm 记录

转 请看原文,我只是怕原文没了,复制了一遍。我目的是想记录缓存那一块。 前端工程化 - 剖析npm的包管理机制 - 掘金 在content-v2/sha512 执行 grep -n "https://registry.npmjs.org/base64-js/-/base64-js-1.0.1.tgz" -r ./ 获取缓存包…

整数序列(山东大学考研机试题)

水仙花数(中南考研机试题) 链接:3644. 水仙花数 - AcWing题库 /* 暴力枚举罢了 */ #include<iostream> using namespace std; const int N1e3100; int book[N]; int pow3(int k){return k*k*k; } int main() {int m,n;for(int i100;i<999;i){int t1,t2,t3;t1 i%10;t…

Redis从入门到精通【进阶篇】之消息传递发布订阅模式详解

文章目录 0. 前言1. 基本原理1.1 基于频道(Channel)的发布/订阅1.2 基于模式(Pattern)的发布/订阅 2. Redis 发布订阅实际应用2.1 Redis Sentinel2.1 SpringBoot Redis发布/订阅 3. Redis从入门到精通系列文章 0. 前言 发布订阅模式&#xff08;Publish-Subscribe Pattern&…

前端Vue自定义轮播图视频播放组件 仿京东商品详情轮播图视频Video播放效果 可图片预览

前端Vue自定义轮播图视频播放组件 仿京东商品详情轮播图视频Video播放 &#xff0c;可图片预览&#xff0c;下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13325 效果图如下: # cc-videoSwiper #### 使用方法 使用方法 <!-- g…

SSM学习笔记-------Spring(一)

SSM学习笔记-------Spring&#xff08;一&#xff09; Spring_day011、课程介绍1.1 为什么要学?1.2 学什么?1.3 怎么学? 2、Spring相关概念2.1 初识Spring2.1.1 Spring家族2.1.2 了解Spring发展史 2.2 Spring系统架构2.2.1 系统架构图2.2.2 课程学习路线 2.3 Spring核心概念…

Mac如何在终端使用diskutil命令装载和卸载推出外接硬盘

最近用 macOS 装载外接硬盘的时候&#xff0c;使用mount死活装不上&#xff0c;很多文章也没详细的讲各种情况&#xff0c;所以就写一篇博客来记录一下。 如何装载和卸载硬盘&#xff08;或者说分区&#xff09; mount和umount是在 macOS 上是不能用的&#xff0c;如果使用会…

2023亚马逊云科技中国峰会——Amazon DeepRacer

1.DeepRacer技术背景 早在20世纪初汽车问世之时&#xff0c;发明家们便已提出无人驾驶的设想。但即便是实现无人驾驶的初级阶段&#xff0c;也经历了足足百年时间。毕竟在复杂的城市路况下&#xff0c;机器若想像人一样实现感知、决策、控制等功能&#xff0c;必定面临各种复杂…