激光SLAM平面点的提取、使用学习

1.20240625 学习了PaGO-LOAM

论文地址:

PaGO-LOAM: Robust Ground-Optimized LiDAR Odometry

github地址:

GitHub - url-kaist/AlterGround-LeGO-LOAM: The page for PaGO-LOAM: Robust Ground-Optimized LiDAR Odometry

其提取地面点方法采用了PatchWork方法,在提取到地面点坐标之后,在特征提取featureAssociation.cpp文件中:

在非地面点上提取角点

                int largestPickedNum = 0;for (int k = ep; k >= sp; k--) {int ind = cloudSmoothness[k].ind;if (cloudNeighborPicked[ind] == 0 &&cloudCurvature[ind] > edgeThreshold &&segInfo.segmentedCloudGroundFlag[ind] == false) {  // 在非地面点上提取边点

在地面点上提取面点:

                int smallestPickedNum = 0;for (int k = sp; k <= ep; k++) {int ind = cloudSmoothness[k].ind;if (cloudNeighborPicked[ind] == 0 &&cloudCurvature[ind] < surfThreshold &&segInfo.segmentedCloudGroundFlag[ind] == true) { // 在地面点上提取面点

总结,地面/平面并没有直接参与平面约束的优化,而是只是为特征提取提供了一个参照,让角点从非地面点上提取,而面点从地面点上提取。最后的优化方式和LOAM算法是一致的,就是使用点到线和面的距离来做两步优化。

2.lego-loam

提取面的方式,使用了1)就是点投影到了range图上,对比该点和上一个点的垂直角,如果小于一定角度,则认为是地面点。2)在后续的连通域提取中,去掉了连通域无效的地面点。这种平面提取的方法,当遇到崎岖不平的地形或灌木丛区域时,该模块可能很敏感,这是基于线的地面分割的潜在限制。

在优化的时候,也非直接使用平面-平面的约束,还是从点线距和点面距的角度来计算位姿变换。

3.patchwork++

在代码中,首先看estimateGround这个函数,包含了:

1)反射噪声点移除函数  reflected_noise_removal

分别从垂直角、点的z值、点的反射强度来进行约束去掉反射噪声点。

2)函数 flush_patches

清空扇区内bin的存储数据

3)pc2czm 函数

把点投射到4个扇区内的Bin中

4)sort 和 extract_piecewiseground 函数

sort是对一个bin中的点按照z值进行排序。

extract_piecewiseground函数中包含了:

 extract_initial_seeds :提取出来小于z阈值的该bin中的点,并求得这些点的均值,然后求取小于该均值的bin点。

estimate_plane 就是一个简单的平面拟合函数。

5)Region-wise Ground Plane Fitting (R-GPF)

同样用的是 extract_initial_seeds 和 estimate_plane 这两个函数,然后计算点到平面之间距离,使用满足距离约束的点来迭代拟合平面。

6)temporal_ground_revert

根据均值和方差来矫正一些误判的bin

参考:基于规则的地面检测算法(二) - 知乎

4.平面参与优化

这一块先写到这里,后续补充上,先找个简单的问题来发篇文章才是最重要的。要不然时间越来越紧了。

参考:

PaGO-LOAM:基于地面优化的激光雷达里程计-腾讯云开发者社区-腾讯云

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

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

相关文章

centos7 xtrabackup mysql 基本测试(5)mysql 建立 测试 数据库及内容

centos7 xtrabackup mysql 基本测试&#xff08;5&#xff09;mysql 建立 测试 数据库及内容 登录 mysql -u etc -p 1234aA~1创建数据库 名字是company show databases ; create database company;在 company里面 创建表employee use company; DROP TABLE IF EXISTS employ…

linux中的各种指令

按文件的大小进行查找 find / usr -size 100M 在home路径下创建txt文件 touch test.txt 查看test.txt文件中的内容&#xff1a; cat test.txt通过指令pwd可以查看当前所处路径。 切换超级用户的指令&#xff1a; su - root 离开时可以使用指令&#xff1a;exit grep指…

SPSS相关软件安装

Amos安装添加链接描述 SPSS process插件安装添加链接描述

20240629在飞凌开发板OK3588-C上使用Rockchip原厂的SDK跑通I2C扩展GPIO芯片TCA6424ARGJRR

20240629在飞凌开发板OK3588-C上使用Rockchip原厂的SDK跑通I2C扩展GPIO芯片TCA6424ARGJRR 2024/6/29 18:02 1、替换DTS了&#xff1a; Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\boot\dts\rockchip viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot2024…

【OCPP】ocpp1.6协议第4.10章节StopTransaction的介绍及翻译

目录 4.10、停止交易StopTransaction-概述 Stop Transaction StopTransaction.req 请求消息 StopTransaction.conf 确认消息 交易管理流程 应用场景 总结 4.10、停止交易StopTransaction-原文译文 4.10、停止交易StopTransaction-概述 在OCPP 1.6协议中的第4.10章“Stop Transa…

网易云音乐数据爬取与可视化分析系统

摘要 本系统采用Python语言&#xff0c;基于网易云音乐&#xff0c;通过数据挖掘技术对该平台的音乐数据进行了深入的研究和分析&#xff0c;旨在挖掘出音乐市场的规律&#xff0c;为音乐人、唱片公司、音乐爱好者等提供数据支持。系统的开发意义在于&#xff1a;一方面为音乐…

《妃梦千年》第十六章-第十八章:战火连天

第十六章&#xff1a;战火连天 经过几个月的相对平静&#xff0c;林清婉和苏珊逐渐适应了宫中的生活。然而&#xff0c;林清婉心中依然保持警惕&#xff0c;她知道&#xff0c;宫中的危机远未结束。 一天&#xff0c;林清婉正在书房中整理书籍&#xff0c;忽然接到了一封来自…

C++初阶编程:list容器的简单模拟实现

大家好啊&#xff0c;今天给大家带来的是我们C编程中&#xff0c;stl库里的重要角色--list的简单的模拟实现&#xff0c;希望通过这篇小博客&#xff0c;对大家更加深入理解list容器有所帮助。 前言&#xff1a; 在C标准库中&#xff0c;list是一种双向链表容器。 这里简单提…

C#基于SkiaSharp实现印章管理(3)

本系列第一篇文章中创建的基本框架限定了印章形状为矩形&#xff0c;但常用的印章有方形、圆形等多种形状&#xff0c;本文调整程序以支持定义并显示矩形、圆角矩形、圆形、椭圆等4种形式的印章背景形状。   定义印章背景形状枚举类型&#xff0c;矩形、圆形、椭圆相关的尺寸…

mathcup大数据竞赛论文中集成学习(或模型融合)的运用分析

ps: (模型融合和集成学习是两个紧密相关但又有所区别的概念。集成学习是一种更广泛的范式&#xff0c;而模型融合可以被视为集成学习的一种特殊形式或策略。) 1.集成学习原理 图1 如图1所示&#xff0c;集成学习是一种通过结合多个机器学习模型的预测来提高整体性能的策略。其…

全国今日油价查询-全国今日油价查询接口-API接口

关于油价的信息&#xff0c;以下是详细的分点表示和归纳&#xff1a; 最新油价调整&#xff1a; 时间&#xff1a;2024年6月28日0时 调整内容&#xff1a;汽油价格上调210元/吨&#xff0c;柴油价格上调200元/吨。 涨幅&#xff1a;加油站油价上涨0.16元/升-0.20元/升。 具体油…

20240629在NanoPi R6C开发板的预编译的Android12下使用iperf3测试网速

20240629在NanoPi R6C开发板的预编译的Android12下使用iperf3测试网速 2024/6/29 11:11 【表扬一下】友善之臂没有提供update.img的预编译固件&#xff0c;我心里一凉&#xff0c;这么多IMG文件&#xff0c;得一个一个选择呀&#xff01; 但是别人友善之臂特别急人之所急&#…

6.27-6.29 旧c语言

#include<stdio.h> struct stu {int num;float score;struct stu *next; }; void main() {struct stu a,b,c,*head;//静态链表a.num 1;a.score 10;b.num 2;b.score 20;c.num 3;c.score 30;head &a;a.next &b;b.next &c;do{printf("%d,%5.1f\n&…

Flink 从入门到放弃

0 写在前面 程序员闯荡江湖的一生都在与数据打交道&#xff0c;初入江湖时基于 MySQL 的 CRUD&#xff0c;渐入佳境后利用 Redis 实现查询加速及分布式控制&#xff0c;本质上都是数据处理&#xff1b;无论主动/被动&#xff0c;都在利用数据来达成业务/技术目的。自然而然的&a…

javaSE知识点整理总结(下)、MySQL数据库

目录 一、异常 1.常见异常类型 2.异常体系结构 3.异常处理 &#xff08;1&#xff09;finally &#xff08;2&#xff09;throws 二、JDBC 1.JDBC搭建 2.执行SQL语句两种方法 三、MySQL数据库 1.ddl 2.dml 3.dql &#xff08;1&#xff09;字符函数 &#xff08;…

Linux开发讲课22---I2C读写 EEPROM 实验(含代码)

EEPROM 是一种掉电后数据不丢失的存储器&#xff0c;常用来存储一些配置信息&#xff0c;以便系统重新上电的时候加载之。 EEPOM 芯片最常用的通讯方式就是 I2C 协议&#xff0c;本小节以 EEPROM的读写实 验为大家讲解 STM32 的 I2C 使用方法。实验中 STM32 的 I2C 外设采用主模…

防止它人代码调试?分享 1 段优质 JS 代码片段!

大家好&#xff0c;我是大澈&#xff01; 本文约 600 字&#xff0c;整篇阅读约需 1 分钟。 每日分享一段优质代码片段。 今天分享一段 JS 代码片段&#xff0c;是防止代码被调试或篡改的基础。 老规矩&#xff0c;先阅读代码片段并思考&#xff0c;再看代码解析再思考&#…

如何轻松解决复杂文档格式转换问题

上周&#xff0c;我遇到了一个棘手的问题&#xff1a;需要将一大堆PDF文件转换成可编辑的Word文档&#xff0c;时间紧迫&#xff0c;手动转换根本来不及。朋友推荐我使用了一个网站——xuelin.cc&#xff0c;这个网站不仅提供强大的AI对话功能&#xff0c;还能轻松完成各种文档…

Hadoop3:Yarn框架的三种调度算法

一、概述 目前&#xff0c;Hadoop作业调度器主要有三种&#xff1a;FIFO、容量&#xff08;Capacity Scheduler&#xff09;和公平&#xff08;Fair Scheduler&#xff09;。Apache Hadoop3.1.3默认的资源调度器是Capacity Scheduler。 CDH框架默认调度器是Fair Scheduler。 …

改机软件有哪些?实现一键新机、改串号、改IMEI和手机参数的需求 硬改手机软件,新机环境模拟 设备伪装,一键改机,一键复原

这次针对可以直接开端口修改参数的机型做一些工具解析 前面接触合作过很多工作室。其中很多工作室对于各自软件的跳验证有各自的需求。 一个机型各项参数一般有IMEI WiFi 蓝牙 sn psb ESN等等。 针对这些参数的修改首先要明白各自软件检测的具体是哪些参数来验证。 对于常用…