点云数据类型分析 sensor_msgs/PointCloud2

这篇具有很好参考价值的文章主要介绍了点云数据类型分析 sensor_msgs/PointCloud2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

ROS应用中,使用到雷达、相机等传感器。与单线雷达不同的是,多线雷达与深度相机的应用都会涉及到多维问题。3D视觉处理的主要是点云,点云,是很多点的集合。在处理点云数据之前需了解点云数据类型sensor_msgs/PointCloud2,所以记录一下学习过程。


一、什么是点云?

点云是某个坐标系下的点的集合。(就像天上的白云,颜色是白色,并且是由许多小水滴、小晶体等混合物组成的,每个组成该混合物的小个体便是“白云”的“点”)

点包含了数据信息,包括三维坐标 X,Y,Z、颜色、强度值等等。

点云在组成特点上分为两种,一种是有序点云,一种是无序点云。
有序点云:一般由深度图还原的点云,有序点云按照图方阵一行一行排列,从左上角到右下角。不过这其中会存在一些无效点,在很多情况下是无法获取有序点云的。
无序点云:无序点云就是其中的点的集合,点排列之间没有任何顺序,点的顺序交换后没有任何影响。是比较普遍的点云形式,有序点云也可看做无序点云来处理。处理无序点云只考量空间坐标和颜色值。

二、sensor_msgs/PointCloud2

1.查看ROS中的消息类型

~$ rosmsg list 

下拉找到s开头的类型输出,如下:

sensor_msgs/LaserEcho
sensor_msgs/LaserScan
sensor_msgs/MagneticField
sensor_msgs/MultiDOFJointState
sensor_msgs/MultiEchoLaserScan
sensor_msgs/NavSatFix
sensor_msgs/NavSatStatus
sensor_msgs/PointCloud
sensor_msgs/PointCloud2
sensor_msgs/PointField

显示消息描述:

~$ rosmsg show sensor_msgs/PointCloud2
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
uint32 height
uint32 width
sensor_msgs/PointField[] fields
  uint8 INT8=1
  uint8 UINT8=2
  uint8 INT16=3
  uint8 UINT16=4
  uint8 INT32=5
  uint8 UINT32=6
  uint8 FLOAT32=7
  uint8 FLOAT64=8
  string name
  uint32 offset
  uint8 datatype
  uint32 count
bool is_bigendian
uint32 point_step
uint32 row_step
uint8[] data
bool is_dense


官方网址:
http://docs.ros.org/en/jade/api/sensor_msgs/html/msg/PointCloud2.html

例如文章来源地址https://www.toymoban.com/news/detail-453932.html

---
//这个消息保存了一个n维点的集合point数据存储为二进制blob,其布局由fields数组的内容。
//点云数据可以是二维(像图像一样)或一维的(无序)
header: 
  seq: 240			//序列ID
  stamp: 
    secs: 107
    nsecs: 930000000
  frame_id: "base_laser_link"
height: 1		//点云的二维结构。如果云是无序的,则height为1,width为点云的长度。
width: 178
fields: 		//描述二进制数据blob中的通道及其布局
  - 
    name: "x"
    offset: 0
    datatype: 7			//uint8 INT8    = 1
    count: 1			//uint8 UINT8   = 2
						//uint8 INT16   = 3
						//uint8 UINT16  = 4
						//uint8 INT32   = 5
						//uint8 UINT32  = 6
						//uint8 FLOAT32 = 7			datatype:7		
  - 					//uint8 FLOAT64 = 8
    name: "y"
    offset: 4
    datatype: 7
    count: 1
  - 
    name: "z"
    offset: 8
    datatype: 7
    count: 1
  - 
    name: "index"			//字段名
    offset: 12			   //偏移量
    datatype: 5			  //数据类型枚举
    count: 1			 //字段中有多少个元素
is_bigendian: False		//是否为大端格式?
point_step: 16		   //点长度(单位为字节)
row_step: 2848		   //行长度(单位为字节)
data: [...........................] //很多数据,此处省略,实际点数据,大小为(row_step*height)
is_dense: False		//如果没有无效点,则为真,否则为假

到了这里,关于点云数据类型分析 sensor_msgs/PointCloud2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Java]关于基本数据类型与引用类型赋值时的底层分析的小结(简述)

    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/17969159 出自【进步*于辰的博客】 目录 1、关于赋值 1.1 基本数据类型赋值 1.2 String类型赋值 2、关于String赋值 2.1 情形一 2.2 情形二 3、关于String与char[]的比较 4、不同类型引

    2024年01月17日
    浏览(40)
  • 【驱动】I2C驱动分析(三)-关键数据类型

    i2c_bus_type 用于表示 I2C 总线类型。 bus_type 是 Linux 内核中用于表示总线类型的结构体,用于管理该类型总线上的设备。 .name : 用于指定总线类型的名称。在这里,总线类型的名称被设置为 “i2c”,表示 I2C 总线类型。 .match : 匹配设备与总线。 .probe : 用于在设备与总线匹配成功

    2024年01月19日
    浏览(47)
  • (星型、雪花、星座、交叉连接)多维数据模型各种类型优劣分析

    在数据仓库的建设中,一般都会围绕着星型模型和雪花模型来设计表关系或者结构,同时从模型中又衍生出星座模型和交叉模型。下面我们先来理解这几种模型的概念和比较。 我们先来了解一下事实和维度。 事实,表示的是某一个业务度量。比如说订单的金额,订单中出售

    2024年02月07日
    浏览(60)
  • 数据分析基础-数据可视化02-不同数据类型的可视化概念及原则

    将数据空间映射到颜色空间。 数据可以被划分为两个主要的数据空间:连续数据和分类数据。这两种数据空间有不同的特点和适用的分析方法。 连续数据(Continuous Data): 连续数据是指可以在某个范围内取任何数值的数据。在连续数据空间中,数据点之间存在无限多的可能

    2024年02月11日
    浏览(45)
  • Python基础知识详解:数据类型、对象结构、运算符完整分析

    Python提供了丰富的数据类型,让我们可以灵活地处理各种数据。 首先是数值类型。数值类型包括整型、浮点型和复数。 整型(int)用于表示整数,例如年龄、数量等。我们可以直接将一个整数赋值给一个变量,如下所示: 浮点型(float)用于表示带有小数点的数,例如长度

    2024年02月09日
    浏览(65)
  • 【服务器数据恢复】Raid磁盘阵列常见故障类型&原因分析

    由于raid的特点和优势,磁盘阵列技术被广泛应用于服务器和存储等商用领域。由于用户基数大,出现故障的情况也不少。通过这篇文章介绍一下常见的raid磁盘阵列数故障类型和原因。   故障类型一、磁盘阵列处于降级状态时未及时rebuild。 RAID磁盘阵列的数据安全冗余是利用

    2023年04月25日
    浏览(46)
  • KSS-ICP: 基于形状分析技术的点云配准方法

    目录 1. 概述 2. 算法实现 3. 实验结果 总结 Reference 三维点云配准是三维视觉领域一个经典问题,涉及三维重建,定位,SLAM等具体应用问题。传统的配准可以被分为两条技术路线,即基于全局姿态匹配的方法以及基于特征点对应的方法。全局姿态匹配通过在全局范围查找变换矩

    2023年04月08日
    浏览(85)
  • 点云数据处理合集(一)点云数据集及获取

    (1)星载:卫星 (2)机载:飞机,无人机 无人机上配置GPS或IMU,可获取大范围的点云,可达10cm 精度,适用于大尺度测绘(城市级 别)、DEM、正射影像(高精度相机) (3)地面:三脚架上固定 扫描仪固定在三脚架上,进行较大范围的扫描获取点云,可达mm精度,距离可达

    2023年04月09日
    浏览(34)
  • CVPR 2023 | Point-NN:​首次实现0参数量、0训练的3D点云分析

    点击下方 卡片 ,关注“ CVer ”公众号 AI/CV重磅干货,第一时间送达 点击进入— 【3D点云】微信技术交流群 不引入任何可学习参数或训练,我们是否可以直接实现3D点云的分类、分割和检测? 为此,本文提出了一个用于3D点云分析的非参数网络,Point-NN,它仅由纯不可学习的

    2024年02月10日
    浏览(42)
  • nav_msgs/Odometry.h发布机器人位姿(位置和方向)和线速度、角速度

    在 ROS(Robot Operating System)中, #include nav_msgs/Odometry.h 是一个用于处理和发布里程计数据的头文件。这个头文件定义了 nav_msgs/Odometry 消息类型,它广泛用于在 ROS 中表示机器人或其他移动实体的运动学和位置信息。以下是 nav_msgs/Odometry 消息类型的一些主要功能和组成部分:

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包