复盘一下slam中常用的几种点云类型

news2024/11/20 7:21:34

使用livox雷达常涉及至少3种点云格式,一个是livox官方定义的custom格式,另外两个就是激光、视觉常用的pcl类型和ros类型。之前总结过Livox雷达驱动程序发布点云格式CustomMsg和pcl::PointXYZI、pcl::PointXYZINormal之间的关系,现在再来复盘一下、

1.livox驱动 CustomMsg类型

Header header             # ROS standard message header
uint64 timebase          # The time of first point
uint32 point_num      # Total number of pointclouds
uint8 lidar_id               # Lidar device id number
uint8[3] rsvd                 # Reserved use
CustomPoint[] points    # Pointcloud data

第一个是ros消息标准的头,第二个为该帧第一个点的时间戳,然后是该帧总共的点数量,然后是id,rsvd是保留部分,还没有意义,最后一个就是每个激光点数据了,它的格式是这样的:

uint32 offset_time      # offset time relative to the base time
float32 x               # X axis, unit:m
float32 y               # Y axis, unit:m
float32 z               # Z axis, unit:m
uint8 reflectivity      # reflectivity, 0~255
uint8 tag               # livox tag
uint8 line              # laser number in lidar

offset_time应该是基于base的时间补偿;
然后是点的xyz坐标,单位是米;
reflectivity对应点的反射率,转化为激光点的强度,8位对应值为0-255;
tag是激光点的一些属性,主要涉及多回波信息及噪点信息。是一个二进制表达,通过与二进制tag做解算得回波、噪点信息(注:);
line是激光雷达扫描的线数(livox avia为6线,从原始扫描点云可以看出,从原始扫描点云可以看出,后期可以按线来对原始点处理、筛选;

2.ros类型 sensor_msgs/PointCloud2

ros官方数据:http://docs.ros.org/en/jade/api/sensor_msgs/html/msg/PointCloud2.html
在这里插入图片描述此消息包含 N 维点的集合,这些点包含附加信息,例如法线、强度等。 点数据存储为二进制 blob,由 “fields”数组的内容。
header是message的头;
height、width对应点云的高和宽;
fields是点云的具体信息,下面详述;
is_bigendian 不懂
point_step 一个点的长度(以字节为单位)
row_step 一行的长度(以字节为单位)
data 实际点数据,大小为(row_step*height)
is_dense 如果没有无效点则为真

3.pcl类型

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

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

相关文章

【TypeScript】TS进阶-泛型(八)

🐱个人主页:不叫猫先生 🙋‍♂️作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门到…

【Linux】工具使用

文章目录一、Linux 软件包管理器 yum二、 Linux开发工具(1) Linux编辑器-vim使用(2)简单vim配置三、Linux编译器-gcc/g使用四、动态库和静态库五、Linux调试器-gdb使用六、Linux项目自动化构建工具-make/Makefile(1)make/Makefile…

如何才能精通 Redis?

为什么我要讲 Redis? 已经出过这么多主题的书籍和课程了,这次我为什么要选择 Redis 这个主题呢? 那自然是因为 Redis 是我们实际开发中不可或缺的组件之一,也是目前全球最流行的 KV 数据库。相信小伙伴们在工作中也会频繁接触到…

【入门篇】2 # 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度

说明 【数据结构与算法之美】专栏学习笔记。 为什么引入这些时间复杂度 先看下面代码 // n 表示数组 array 的长度 int find(int[] array, int n, int x) {int i 0;int pos -1;for (; i < n; i) {if (array[i] x) {pos i;break;}}return pos; }上面代码中如果没有 …

Redis序列化和java存入Redis数据序列化反序列化总结

背景&#xff1a; 最近考虑java代码数据在保存redis时&#xff0c;通常要配置序列化&#xff0c;才能保存到redis中&#xff0c;然而我们知道Redis中也有序列化&#xff08;RDB和AoF两种形式&#xff09;&#xff0c;有点混淆总结一下。 java中数据保存redis过程序列化的原因是…

图解:什么是二叉查找树?

文章目录1. 二叉查找树的概念2. 二叉查找树的实现&#x1f351; 定义节点&#x1f351; 函数接口总览&#x1f351; 构造函数&#x1f351; 拷贝构造&#x1f351; 赋值重载&#x1f351; 析构函数&#x1f351; 查找操作&#x1f345; 动图演示&#x1f345; 非递归实现&#…

【机器学习】线性回归(实战)

线性回归&#xff08;实战&#xff09; 目录一、准备工作&#xff08;设置 jupyter notebook 中的字体大小样式等&#xff09;二、构建实验所需的数据&#xff08;以下实验将基于此数据&#xff09;三、实现线性回归的两种方式方法一&#xff1a;通过直接求解得到拟合方程参数&…

Python金融风控模型案例实战大全

大家好&#xff0c;我是Toby老师&#xff0c;今天介绍 《Python金融风控模型案例实战大全》。 1.《Python金融风控模型案例实战大全》程覆盖多个核心知识点&#xff0c;包括风控建模全流程知识介绍&#xff0c;信用评分卡&#xff0c;信用评分卡知识包含个人信用评分卡和企业信…

ifconfig-显示和配置网络

ifconfig是linux中用于显示或配置网络设备&#xff08;网络接口卡&#xff09;的命令&#xff0c;英文全称是network interfaces configuring。配置网卡的IP地址语法例&#xff1a;ifconfig eth0 192.168.0.1 netmask 255.255.255.0 系统命令 语法 ifconfig [网络设备][down up…

读Go语言精进之路

主要是摘取书中&#xff0c;个人感觉比较重要的内容。 文章目录第一部分 熟知Go的一切理解Go的设计哲学使用Go语言原生编程思维写Go代码第二部分 项目结构、代码风格和标识符命名第三部分 声明、类型、语句与控制结构13 了解切片的底层原理14 了解Map实现原理并高效使用15. str…

Word处理控件Aspose.Words功能演示:在 C# .NET 中将 DOC/DOCX 转换为 PNG

Aspose.Words 是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word。此外&#xff0c; Aspose API支持流行文件格式处…

Linux系统中常见的压缩命令和特殊权限说明

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java案例分…

PHP多进程(二)之pcntl_wait

上篇文章我们说到父进程应该回收子进程结束之后产生的数据,这样才会不浪费系统资源。 一个程序启动之后&#xff0c;变成了一个进程&#xff0c;进程在以下情况会退出 1&#xff09;运行到最后一行语句 2) 运行时遇到return 时 3) 运行时遇到exit()函数的时候 4) 程序异常的时…

docker搭建maven私服(nexus3),整合springboot上传下载依赖

一、前言 我们在JavaWeb开发中必不可少的就是jar包管理-maven&#xff0c;在没有maven之前&#xff0c;都是自己手动下载jar包导入到项目中&#xff0c;非常的繁琐。 maven出现之后&#xff0c;又迎来新的问题&#xff0c;对于仓库里人家发布的都可以引用下载&#xff0c;但是…

音视频面试基础题

编码原理 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?核心思想就是去除冗余信息&#xff1a; 1&#xff09;空间冗余&#xff1a;图像相邻像素之间有较强的相关性 2&#xff09;时间冗余&#xff1a;视频序列的相邻图像之间内容相似 3&#xff09…

CVPR21 - BasicVSR:简单有效的视频超分辨率Baseline

文章目录原文信息初识相知组件分析BasicVSRIconVSR部分实验回顾原文信息 原文链接 初识 相比于图像超分&#xff0c;视频超分(VSR&#xff0c;Video Super-Resolution)显然是一件更具挑战性的任务。视频超分比图像超分多了时间维度的信息、更为复杂&#xff0c;而在当时&…

结构体的声明使用及存储方式

文章目录 一、结构体的声明与使用 1、1 结构体的简单声明 1、2 结构体的特殊声明 1、3 结构体自引用 1、4 结构体变量的定义和初始化 1、5 结构体传参 二、结构体在内存中的存储方式 2、1 结构体在内存中的存储方式的引入 2、2 结构体的内存对齐 2、3 修改默认对齐数…

AcWing - 寒假每日一题2023(DAY 1——DAY 5)

文章目录一、AcWing 4261.孤独的照片&#xff08;简单&#xff09;1. 实现思路2. 实现代码二、AcWing 3400.统计次数&#xff08;简单&#xff09;1. 实现思路2. 实现代码三、AcWing 4366. 上课睡觉&#xff08;简单&#xff09;1. 实现思路2. 实现代码四、AcWing 3443. 学分绩…

程序员接私活最最完整攻略

接私活对于程序员这个圈子来说是一个既公开又隐私的话题&#xff0c;当你竭尽全力想要去接私活的时候一定做过这样的事情&#xff0c;百度搜索“程序员如何接私活”、“程序员在哪里接外包”等等问题&#xff0c;今天就送大家最完整攻略&#xff0c;千万别错过了。 做私活挣钱吗…

有趣且重要的Git知识合集(10)git stash操作

这种一般用于多分支&#xff0c;或者多人协同合作时会使用到的git命令 场景1&#xff1a; 当你在dev分支上写了很多代码&#xff0c;此时线上有bug&#xff0c;需要紧急在hotfix分支上修改&#xff0c;那直接git add提交又不太好&#xff0c;毕竟还没有开发完&#xff0c;那么…