PLC-LiSLAM线-面-圆柱体-激光SLAM

2023-11-24 07:10
文章标签 slam 激光 plc 圆柱体 lislam

本文主要是介绍PLC-LiSLAM线-面-圆柱体-激光SLAM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 摘要

平面、线段与圆柱体广泛存在于人造环境中。在本文中,我们提出了一个使用这些landmark的激光雷达SLAM系统。我们的算法有三个部分:局部建图、全局建图与定位。局部与全局建图模块通过最小化三维点到模型的残差来联合优化这些landmark的参数与位姿,这个过程我们称之为PLCA(plane-line-cylinder adjustment)。可以证明,通过一些预处理,PLCA问题与这些landmark的三维点的数量无关,因此可以使得位姿优化更加高效。定位部分通过将局部地图里的面、线与圆柱体,同全局地图里的面、线与圆柱体进行配准(PLCR, plane-line-cylinder registration),从而进行实时的位姿估计。检测这些landmark与数据关联的过程中可能会引入误检测与关联。我们通过检查后端的cost来纠正这些错误,而这个错误纠正机制是那些基于配准的方法,例如LOAM以及ICP很难做到的,因为他们并不维护数据关联。实验结果表明我们的算法比目前最先进的LiDAR SLAM算法性能要好,并且达到了实时的效果。

2. 主要贡献

我们证明,通过一些预处理,PLCA问题的求解与面、线以及圆柱体里的三维点的数量无关。因为这些landmark的表示是无边界的,许多三维点都会被包含在这些landmark里面。对于求解大尺度的PLCA问题,我们的方法行而有效。

我们提供了一个高效的PLCR问题求解方法。我们使用一阶泰勒展开来近似旋转,考虑到两帧之间的旋转一般是足够小的。如果比较大的旋转发生在两帧之间,我们进行迭代近似。

我们的算法能够容忍足够的检测误检测。因为遮挡以及激光雷达点云的稀疏性,检测这些landmark的过程容易引入误检测。这个错误纠正机制是那些基于配准的方法,例如LOAM以及ICP很难做到的,因为他们并不维护数据关联。我们的算法通过检验后端的cost来纠正这些误检测。

3. 方法论

3.1. 预备知识

平面:本文中的平面通过一个四维向量表示。前三维表示该平面的法向量,模长为1,最后一维为坐标系原点到该平面的距离。点到平面的残差,通过计算该点到平面的距离获得。

线:本文中的直线通过一个六维向量表示。前三维表示该直线的方向,后三维表示从原点出发的,垂直于该直线的向量,并且其模长为原点到直线的距离。计算点到线的残差,通过计算点到直线的距离获得。

圆柱体:本文中的圆柱体通过一个七维向量表示,前六维为该圆柱体所在的直线表示(同上),最后一维为该圆柱体的半径。计算点到圆柱体的残差,通过计算点到圆柱体所在的直线距离,并将该距离与半径比较获得。

3.2. 系统总览

本文提出的系统由前端与后端组成,前端检测面、线与圆柱体,并建立局部到全局的数据关联,从而进行后续的位姿估计。前端也决定了什么时候一个新的关键帧应当被创建。后端包括局部与全局的PLCA。局部的PLCA通过滑窗优化位姿与landmark。全局的PLCA优化所有的PLCA以及除了第一帧外的所有位姿。当有Landmark被再次观测到时,全局的PLCA便会被触发。

3.3. 前端

3.3.1. Landmark检测

对激光雷达每一条线的数据进行切分:类似于LOAM,计算每个三维点的曲率,并将属于edge点的部分提取出来,组成集合E。以每条线上每两个edge点作为两端,可以把这条线分为许多段,这些段里的点为平坦点,组成集合F。

平面与圆柱体检测:对于每个线上的每个段里的平坦点,寻找与其相近的,但不属于同一条线上的平坦点,如果用RANSAC法拟合平面的平均误差比较小,则利用平面模型来拟合,否则用圆柱体来拟合这些点。

直线检测:对每个段里的edge点,找到所有与其相近的,但属于另一条线的edge点p。利用这两个点可以求得直线方程。对p点再寻找一个在其他线的最近点p2。如果p2到该直线的距离足够小,则利用这三个点来拟合一条直线。重复这个过程直到没有点能够被加入到直线中。

3.3.2. Landmark关联

当新一帧点云获得后,首先计算属于该帧的集合E与集合F。并对这两个集合分别构建KD-tree。对上一帧里的每个点p,寻找其在当前帧的n个最近点。如果p属于面或者圆柱体,则这n个最近点都被保留,如果p属于直线,则保留这n个点的曲率最大的一个点。随后,利用RANSAC算法找到符合模型的内殿。通过这些内点,我们之后会使用PLCR方法来进行位姿估计。

3.3.3. 关键帧创建

受到ORB-SLAM的启发,当以下情况发生时,新的关键帧会被创建:

当前帧20%以上的点不能被追踪与关联。

当前帧与上一个关键帧的旋转角度大于5°。

当前帧与上一帧的距离大于设定的阈值。

对于新的关键帧,我们在没被关联到的三维点上检测面、线与圆柱体。对于新检测出来的landmark,首先会寻找与已有的landmark的均方根之差,如果大于设定的阈值,则新增一个landmark。

3.4. 面-线-圆柱体联合优化 (PLCA)

3.4.1. 全局PLCA

在全局的PLCA中,同时调整位姿、平面、线来最小化点到模型的距离。

3.4.2. 局部PLCA

局部PLCA优化滑窗中位姿和与之关联和landmarks。

3.4.3. 校正检测误差

检测过程可能会产生一些误识别的landmarks。一种常见的错误是把圆柱误识别成了线或者平面。另一个错误是遮挡误检的线。可以在有更多可用信息的时候校正这些错误。在局部和全局PLCA期间,检测每一个landmarks的RMSE。如果RMSE大于一个阈值,这个landmarks就可能是一个错误。本文对线、面、圆柱三种landmarks采取了三种不同的检测规则。

3.5. PLCR

2.5.1. 扫描内运动

采用线性插值来补偿扫描内运动

2.5.2. 约束

相对位姿内的旋转幅度相对较小,所以采用一阶泰勒展开来近似旋转:

4. 实验

参考文献

PLC-LiSLAM:线-面-圆柱体-激光SLAM(RAL 2022) - 知乎

腾讯内容开放平台

PLC-LiSLAM: LiDAR SLAM with Planes, Lines, and Cylinders 

这篇关于PLC-LiSLAM线-面-圆柱体-激光SLAM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

三维激光扫描点云配准外业棋盘的布设与棋盘坐标测量

文章目录 一、棋盘标定板准备二、棋盘标定板布设三、棋盘标定板坐标测量 一、棋盘标定板准备 三维激光扫描棋盘是用来校准和校正激光扫描仪的重要工具,主要用于提高扫描精度。棋盘标定板通常具有以下特点: 高对比度图案:通常是黑白相间的棋盘格,便于识别。已知尺寸:每个格子的尺寸是已知的,可以用于计算比例和调整。平面标定:帮助校准相机和激光扫描仪之间的位置关系。 使用方法 扫描棋盘:

C#编写上位机通过OPC DA读取西门子PLC数据

Sync_RW 引用:Quick.OpcComRcw 文档中原程序会报错: 原因:需要在安装有Simatic NET V14的电脑上运行这个程序。 需要注释掉下面程序,否则读取时会无故障提示退出。 //finally里的程序要注释掉,否则一点击read按钮,程序会直接无故障提示退出//finally//{// // Free the unmanaged memory/

激光SLAM如何动态管理关键帧和地图

0. 简介 个人在想在长期执行的SLAM程序时,当场景发生替换时,激光SLAM如何有效的更新或者替换地图是非常关键的。在看了很多Life-Long的文章后,个人觉得可以按照以下思路去做。这里可以给大家分享一下 <br/> 1. 初始化保存关键帧 首先对应的应该是初始化设置,初始化设置当中会保存关键帧数据,这里的对应的关键帧点云数据会被存放在history_kf_lidar当中,这个数据是和

镭射定位灯激光定位使用注意事项?

在现代工业、建筑测量、舞台设计以及科研实验等领域,镭射定位灯(常称激光定位器)因其高精度、远射程和直观性而得到广泛应用。然而,激光作为一种高强度光束,其使用若不当,不仅可能损害设备,还可能对人体健康造成危害。因此,掌握镭射定位灯激光定位的正确使用方法及注意事项至关重要。下面就跟着鑫优威一起来了解一下。   一、安全为先,做好防护   首先,操作者必须佩戴符合标准的激光防护眼镜,以防止激光直

用python fastapi写一个http接口,使ros2机器人开始slam toolbox建图

如果你想使用Python的FastAPI框架编写一个HTTP接口,以便通过接口启动ROS 2机器人的SLAM Toolbox建图,可以按照以下方式进行: 首先,确保你已经安装了fastapi和uvicorn库。你可以使用以下命令进行安装: pip install fastapi uvicorn 接下来,创建一个Python文件(例如app.py),并将以下代码添加到文件中: import

激光尘埃粒子计数器内光源选择:半导体激光管OR氦氖激光管?

在选择激光尘埃粒子计数器时,关键考虑因素包括光源类型、测量范围、灵敏度、稳定性、使用寿命以及应用场景等。针对这些因素,我们可以对半导体激光器和氦氖激光器(He-Ne激光器)进行比较,以判断选择哪种激光尘埃粒子计数器更合适。 激光管定义 半导体激光管(激光二极管) 半导体激光管,也被称为激光二极管(Laser Diode),是一种利用半导体PN结将电流转换成光能并产生激

GS-SLAM论文阅读笔记--GSFusion

介绍 GS-SLAM是最近比较新的方向,由于传统SLAM的研究变得很少,拥抱与新的技术结合的方法也许是个好主意。之前总结了大部分GS-SLAM的文章。但是这个方向在不断发展,而发展初期的很多论文值得参考。所以用博客记录一下比较新的论文阅读笔记。GSFusion 这篇文章是TUM发表的,TUM在SLAM领域是非常牛的,所以需要仔细阅读一下这篇文章,肯定会有所收获! 文章目录 介绍1.

PLC工业网关在钢铁企业生产过程中的应用-天拓四方

在当今工业自动化领域,PLC工业网关已经成为了提升生产效率、确保产品质量、增强系统可靠性的关键组件。本文旨在通过一个具体的工业应用实例,深入探讨PLC工业网关的功能、优势及其在现代工业环境中的重要作用,从而展示其在实际操作中的专业性和实用性。 在我国某大型钢铁企业,生产线上需要对钢材进行实时监测与控制。为了保证生产效率和产品质量,企业决定引入PLC工业网关来实现对生产过程的自动化控制。以