经典文献阅读之--LOG-LIO(高效局部几何信息估计的激光雷达惯性里程计)

0. 简介

局部几何信息即法线和点分布在基于激光雷达的同时定位与地图构建(SLAM)中是至关重要,因为它为数据关联提供了约束,进一步确定了优化方向,最终影响姿态的准确性。然而即使在使用KD树或体素图的辅助下,估计法线和点分布也是耗时的任务。为了实现快速法线估计,《LOG-LIO: A LiDAR-Inertial Odometry with Efficient Local Geometric Information Estimation》研究了激光雷达扫描帧的结构信息,提出了一种新颖的快速近似最小二乘(FALS)方法,通过预先计算的方位角信息,当新的扫描帧到达时,估计法线仅需要点的距离信息,为了高效估计点的分布,我们将ikd树扩展到体素管理地图,并在保持法线一致性的同时增量更新其点云分布。对于满足基于法线的可见性和一致性检查的扫描点,我们设计了一种稳健且准确的分层数据关联方案,其中点到曲面的关联优先于点到平面的关联,在分布趋于收敛后,再进一步固定体素以平衡时间消耗和表示的正确性。文中的公式较多,所以我们主要先了解具体表示以及主要内容。该工作实现已在https://github.com/tiev-tongji/LOG-LIO 开源,还将Ring FALS作为独立的法线工具开源在GitHub - tiev-tongji/RingFalsNormal: A novel fast approximate least squares normal estimator using the structural information of certain LiDAR, is fast and accurate compared to PCL, and meets the real-time requirements of the LIO system.。

1. 主要贡献

地图体素内逐步更新点云分布以保持空间信息的正确性,同时与法线保持一致性。为了平衡时间消耗和表示的正确性,我们在扩展的ikd树上管理地图,并在分布收敛后进一步固定分布。本工作的主要贡献如下:

  1. Ring FALS一种利用特定激光雷达的结构信息的新型快速近似最小二乘法法线估计器,与PCL相比快速而准确,满足LIO系统的实时要求。
  2. 考虑地图体素内点分布的鲁棒且准确的分层数据关联方案,其中点到曲面的关联优先于点到平面的关联,大尺度优先于小尺度。

2. 准备性工作

2.1 符号表示

2.2 LiDAR观测模型

图1. LiDAR观测模型和多尺度surfel关联的示意图。(a) 紫红色线条表示红色点的射线。八个点是Ring FALS用来估计红色点法线的邻域点。(b) 五个蓝色椭圆代表最近体素对应的绿色查询点在扩展ikd-tree中的小尺度surfel。橙色椭圆代表由小尺度surfel合并而成的大尺度surfel。绿色查询点首先与大尺度surfel关联。如果大尺度surfel不能满足第2.4节和第4.2节的条件,则与其所在体素的小尺度surfel关联

在实践中,LiDAR通过结合目标表面的方位和距离测量来获取一个点的三维坐标[18],[19],如图1(a)所示。LiDAR观测模型如下:

2.3 最小二乘法法线估计

正态分布的闭式解是协方差矩阵(方程(4)中的)最小特征值所对应的特征向量。

点击经典文献阅读之--LOG-LIO(高效局部几何信息估计的激光雷达惯性里程计) - 古月居可查看全文

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

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

相关文章

【CANN训练营笔记】AscendCL图片分类应用(C++实现)

样例介绍 基于PyTorch框架的ResNet50模型,对*.jpg图片分类,输出各图片所属分类的编号、名称。 环境介绍 华为云AI1s CPU:Intel Xeon Gold 6278C CPU 2.60GHz 内存:8G NPU:Ascend 310 环境准备 下载驱动 wget ht…

git diff

1. 如何将库文件的变化生成到patch中 git diff --binary commit1 commit2 > test.patch 打patch: git apply test.patch 2. 如何消除trailing whitespace 问题 git diff --ignore-space-at-eol commit1 commit2 > test.patch 打patch: git ap…

在 Windows 中安装部署并启动连接 MongoDB 7.x(命令行方式启动、配置文件方式启动、将启动命令安装为系统服务实现开机自启)

MongoDB 的下载 下载地址:https://www.mongodb.com/try/download/community 这里需要对 MongoDB 的版本号说明一下: MongoDB 版本号的命名规则是 x.y.z,当其中的 y 是奇数时表示当前的版本为开发版,当其中的 y 是偶数时表示当前的…

非关系型数据库之Redis配置与优化

一、关系数据库与非关系型数据库 1.1关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上一般面向于记录。SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用…

Linux入侵排查

第2篇:Linux 入侵排查 0x00 前言 当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程&…

【C#】数字后缀及其作用 | Numeric Literal Suffixes and Their Usage in C#

C#中的数字字面量后缀及其作用 | Numeric Literal Suffixes and Their Usage in C# 在C#编程中,我们经常需要使用不同类型的数字,如整数、浮点数和高精度数字等。为了方便表示这些数字并明确其数据类型,C#提供了各种数字字面量后缀。本文将通过实例详细介绍这些后缀的作用和用…

【Python】【极简入门】12-元组

基本特性 元组就是一个逗号分隔的序列:t = ‘a’, ‘b’, ‘c’一般都用括号把元组括起来: t = (‘a’, ‘b’, ‘c’)创建单元素元组, 需要在末尾加上逗号: t1 = ‘a’, 不加逗号不构成元组:t2 = (‘a’)如果参数是一个序列 (字符串, 列表或者元组), 结果便会得到一个由元素…

首场直播,就在4月11日!

2024年的第一场直播,我们把目光聚焦到“大会员”。 这一次我们想聊聊,当大会员遇上泛零售企业,会产生怎样的“火花”。泛零售企业突破增长压力的机会在哪里?又有哪些挑战必须直面? 本次直播将结合泛零售企业“多业态、…

GEE问题——在使用sentienl数据云掩膜的时候发现出现中间连贯性的“条带”问题,如何解决?

简介 在使用sentienl+landsat数据掩膜的时候发现出现了中间连贯性的条带问题,如何解决?这里我们使用GEE出品的Landsat和sentinel数据的过程中,当我们进行云掩膜的时候出现了条带的问题。 问题 您注意到这个问题了吗? 我该如何消除它们(例如,在镶嵌前遮蔽瓦片最外层的 …

1379. 找出克隆二叉树中的相同节点

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始…

UniApp 应用发布到苹果商店指南

🚀 想要让你的 UniApp 应用在苹果商店亮相吗?别着急,让我来带你一步步完成这个重要的任务吧!在这篇博客中,我将详细介绍如何将 UniApp 应用顺利发布到苹果商店,让你的应用跻身于苹果生态之中。 引言 &…

十八、Rust gRPC 多 proto 演示

十八、Rust gRPC 多 proto 演示 网上及各官方资料,基本是一个 proto 文件,而实际项目,大多是有层级结构的多 proto 文件形式,本篇文章 基于此诉求,构建一个使用多 proto 文件的 rust grpc 使用示例。 关于 grpc 的实现…

高德定位 SDK 到底提供了什么服务?

最近我被高德的销售烦到不行,说是我用了他们的 SDK,现在 SDK 要收费。 表达是很绕的,什么授权啦,什么企业认证风险啦,讲了一堆,还跟我开始搬出协议了。感觉高德的销售真够垃圾的,编个话术都不会…

Lua环境下载与配置

这里介绍如何下载已经编译好的Lua环境,如何配置Lua环境。 如希望自己从源码编译Lua环境,请自行搜索资料。 第一步:下载编译好的lua环境 打开下面链接,然后根据指引下载。 The Programming Language Luahttps://www.lua.org/hom…

windows下基于python语言的TTS开发

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概述Visual St…

算法打卡day33|动态规划篇01|动态规划理论基础| Leetcode 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

动态规划理论 定义 动态规划(Dynamic Programming,简称DP),主要用于解决多阶段决策问题。它的核心思想是将一个复杂的多阶段问题转化为一系列相对简单的单阶段问题,然后逐一求解这些单阶段问题,最后将这些单阶段问题的解合并&…

坦克大战_java源码_swing界面_带毕业论文

一. 演示视频 坦克大战_java源码_swing界面_带毕业论文 二. 实现步骤 完整项目获取 https://githubs.xyz/y22.html 部分截图 启动类是 TankClinet.java,内置碰撞检测算法,线程,安全集合,一切皆对象思想等,是java进阶…

【vue2+antvx6】报错Cannot read properties of undefined (reading ‘toUpperCase‘)

我的代码是这样的 <el-collapseref"collapse"v-model"active"accordionclass"collapseStart"change"collapsechange"><el-collapse-item:name"String(index 1)"v-for"(i, index) in List":key"in…

杂货铺 | 使用 Github Pages 和 Hexo 搭建自己的独立博客

文章目录 &#x1f4da;Step1&#xff1a;安装Node.js和Git&#x1f4da;Step2&#xff1a;安装并初始化配置Hexo&#x1f4da;Step3&#xff1a;本地查看效果&#x1f4da;Step4&#xff1a;将博客部署到Github Pages上&#x1f407;创建项目代码库&#x1f407;配置SSH密钥&a…

本题解答错误----暂做记录----130. 被围绕的区域

130. 被围绕的区域 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;_130被围绕的区域_dfs_130被围绕的区域_bfs_01 错误经验吸取 原题链接&#xff1a; 添加链接描述130. 被围绕的区域 https://leetcode.cn/problems/surrounded-regions…