Livox-Mid-360 固态激光雷达ROS格式数据分析

前言:

Livox-Mid-360 官方采用livox_ros_driver2ROS功能包发布ROS格式的数据,livox_ros_driver2可以把Livox原始雷达数据转化成ROS格式并以话题的形式发布出去。

下面列举一些雷达的基本概念:

  • 点云帧:雷达驱动每次向外发送的一组雷达数据集合称为一帧雷达数据。如果帧率是10HZ,那么每帧点云数据是100ms内雷达扫描的点云集合。每发布一次toptic就是一帧。注意:一帧激光点云数据并不一定是雷达旋转一周所扫描的点云数据。
  • 点云帧发布频率:1s内雷达发送的帧数,比如10HZ表示1s内雷达发送10帧的点云数据,即每100ms发送一帧点云数据。
  • 扫描频率:雷达的扫描频率一般是针对机械式旋转激光雷达而言的,指1s内雷达旋转的圈数。固态激光雷达的扫描方式和旋转式激光雷达不同,不同产品、厂商有不同的方式。

1.livox_ros_driver2

livox_ros_driver2包中用于处理livox-mid-360的接口有rviz_MID360.launch文件,负责连接到 MID360 LiDAR 设备、发布 pointcloud2 格式数据、自动加载 rviz。

Livox ros 2内部主要参数配置说明:

  • publish_freq:设置点云发布,浮点数据类型的频率,推荐值为5.0、10.0、20.0、50.0等。最大发布频率为 100.0 Hz。
  • multi_topic:如果 LiDAR 设备有独立的主题来发布点云数据 0 -- 所有 LiDAR 设备都使用相同的主题发布点云数据 1 -- 每个 LiDAR 设备都有自己的主题来发布点云数据
  • xfer_format:设置点云格式,0 -- Livox pointcloud2(PointXYZRTLT)点云格式, 1 -- Livox 自定义点云格式, 2 -- PCL 库中的标准点云 2 (pcl :: PointXYZI) 点云格式。

2.点云数据:

查看livox_ros_driver2发布出的话题,/livox/lidar 的消息类型为:sensor_msgs/PointCloud2,sensor_msgs/PointCloud2消息的内容为下(注意:这是一帧点云的消息类型,不是每个点云的信息):


其中每个参数的意义参考以下文章:

sensor_msgs/PointCloud2雷达数据信息-CSDN博客

2.1 PointCloud2数据结构

sensor_msgs/PointCloud2 Message
File: sensor_msgs/PointCloud2.msg
Raw Message Definition
# 该消息包含一个n维点的集合,它可能包含额外的信息,如法线、强度等。点数据以二进制blob的形式存储,其布局由“fields”数组的内容描述。# 点云数据可以组织为2d(类似图像)或1d(无序)。以二维图像组织的点云可以由立体或飞行时间等相机深度传感器产生。# 传感器数据采集时间,坐标坐标系ID (3d点)。
Header headeruint32 seqtime stamp			# topic发布的系统时间 unit:秒string frame_id		# topic发布的系统时间 unit:纳秒# 点云的二维结构。如果云是无序的,高度为1,宽度是点云的长度(个数)。
uint32 height            #也就是线数,固态激光雷达点云不分线数,所以是1
uint32 width# 描述通道及其在二进制数据块中的布局。
PointField[] fields				# 每个点的数据类型,不同枚举值对应不同类型bool    is_bigendian			# 字节的排列顺序
uint32  point_step				# 单点的数据字节步长
uint32  row_step				# 一行数据的字节步长
uint8[] data					# 存储点云的数组,总长度为row_step*heightbool is_dense					# 如果没有非法数据点为真

2.2 fields数据结构

sensor_msgs/PointField Message
File: sensor_msgs/PointField.msg
Raw Message Definition
# 该消息以PointCloud2消息格式保存一个 点 条目的描述。
PointCloud2 message format.
uint8 INT8    = 1
uint8 UINT8   = 2
uint8 INT16   = 3
uint8 UINT16  = 4
uint8 INT32   = 5
uint8 UINT32  = 6
uint8 FLOAT32 = 7
uint8 FLOAT64 = 8string name			# 名
uint32 offset		# 从点结构开始的偏移量
uint8  datatype		# 枚举数据类型
uint32 count		# 有多少个元素

2.3 实际数据分析

header: 					// 点云的头信息seq: 4873stamp: 					// 时间戳secs: 595nsecs: 698295140frame_id: "livox_frame"
height: 1					// 如果cloud 是无序的 height 是 1
width: 9984					// 点云的长度(点云中点的个数)
fields: 					// 该消息以PointCloud2消息格式保存一个 点 条目的描述。- name: "x"				// “x”坐标信息offset: 0				// 从点结构开始的偏移量datatype: 7				// 枚举数据类型		FLOAT32 count: 1				// 域中有多少个元素- name: "y"				// “y”坐标信息offset: 4datatype: 7				// FLOAT32  占4个字节count: 1- name: "z"				// “z”坐标信息offset: 8datatype: 7				// FLOAT32  占4个字节count: 1- name: "intensity"		// 反射强度坐标信息offset: 12datatype: 7				// FLOAT32  占4个字节count: 1- name: "tag"				// 回波信息offset: 16datatype: 2				// UINT8    占1个字节count: 1- name: "line"offset: 17datatype: 2				// UINT8    占1个字节count: 1
is_bigendian: False			// 数据存储方式,包括大端与小端,具体解释见后文参考链接
point_step: 18				// 一个点占的字节数 
row_step: 179712			// 一行的长度占用的字节数
data:[省略]
is_dense: True				// 没有非法数据点
---

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

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

相关文章

使用 pytest 相关特性重构 appium_helloworld

一、前置说明 在 pytest 基础讲解 章节,介绍了 pytest 的特性和基本用法,现在我们可以使用 pytest 的一些机制,来重构 appium_helloworld 。 appium_helloworld 链接: 编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来 代码目录结构: pytest.ini 设置: [pyt…

扭蛋机小程序搭建:打造互联网“流量池”

随着互联网科技的发展,扭蛋机小程序成为了市场发展的重要力量。 扭蛋机市从日本发展流行起来的,玩法就是根据设置的概率,让玩家体验扭蛋机的乐趣。扭蛋机中有隐藏款和稀有款,为了获得稀有款商品,玩家便会进行扭蛋&…

【Azure 架构师学习笔记】- Azure Databricks (4) - 使用Azure Key Vault 管理ADB Secret

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (3) - 再次认识DataBricks 前言 Azure Databricks有access token,是具有ADB内部最高权限的token。在云环境中这些高级别权限的sec…

Evidential Deep Learning to Quantify Classification Uncertainty

本片文章发表于NeurIPS 2018。 文章链接:https://arxiv.org/abs/1806.01768 一、概述 近年来,神经网络在不同领域取得了革命性的进步,尤其是在dropout、normalization以及skip connection等方法被提出之后,撼动了整个机器学习领…

[Angular] 笔记 19:路由参数

油管视频 Route Parameters 路由参数是跟在 url 后面的数字,字符串,或者 数字字符串,例如如下 url 中的 123,此类参数会传给后端: www.facebook.com/profile/123 首先将 pokemon-template-form 组件移到 pokeman-ba…

回归预测 | MATLAB实ZOA-LSTM基于斑马优化算法优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)

回归预测 | MATLAB实ZOA-LSTM基于斑马优化算法优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图) 目录 回归预测 | MATLAB实ZOA-LSTM基于斑马优化算法优化长短期记忆神经网络的多输入单输出数据回归预测模型 (…

20231229在Firefly的AIO-3399J开发板的Android11使用挖掘机的DTS配置单前后摄像头ov13850

20231229在Firefly的AIO-3399J开发板的Android11使用挖掘机的DTS配置单前后摄像头ov13850 2023/12/29 11:10 开发板:Firefly的AIO-3399J【RK3399】 SDK:rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.…

Android Context在四大组件及Application中的表现

文章目录 Android Context在四大组件及Application中的表现Context是什么Context源码Activity流程分析Service流程分析BroadcastReceiver流程分析ContentProvider流程分析Application流程分析 Android Context在四大组件及Application中的表现 Context是什么 Context可以理解…

鸿蒙APP的代码规范

鸿蒙APP的代码规范是为了确保代码质量、可读性和可维护性而定义的一系列规则和标准。以下是一些建议的鸿蒙APP代码规范,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 代码风格: 采用…

PM大逃亡

欢迎来到程序小院 PM大逃亡 玩法&#xff1a;点击白色的小鬼&#xff0c;滑动鼠标移动&#xff0c;不要碰到黑色的怪物&#xff0c; 怪物会越来越多&#xff0c;看看你能坚持多久&#xff0c;快去大逃亡吧^^。开始游戏https://www.ormcc.com/play/gameStart/233 html <div…

ViT的极简pytorch实现及其即插即用

先放一张ViT的网络图 可以看到是把图像分割成小块&#xff0c;像NLP的句子那样按顺序进入transformer&#xff0c;经过MLP后&#xff0c;输出类别。每个小块是16x16&#xff0c;进入Linear Projection of Flattened Patches, 在每个的开头加上cls token和位置信息&#xff0c;…

自检服务器,无需服务器、不用编程。

自检服务器&#xff0c;无需服务器、不用编程。 大家好&#xff0c;我是JavaPub. 这几年自媒体原来热&#xff0c;很多人都知道了个人 IP 的重要性。连一个搞中医的朋友都要要做一个自己的网站&#xff0c;而且不想学编程、还不想花 RMB 租云服务。 老读者都知道&#xff0c…

索引的使用

一、索引是什么 索引是一种排序的表&#xff0c;它记录着索引字段的值以及对应行记录的数据所在的物理位置&#xff1b; ●索引是一个排序的列表&#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址&#xff08;类似于C语言的链表通过指针指向数据记录…

天擎终端安全管理系统clientinfobymid存在SQL注入漏洞

产品简介 奇安信天擎终端安全管理系统是面向政企单位推出的一体化终端安全产品解决方案。该产品集防病毒、终端安全管控、终端准入、终端审计、外设管控、EDR等功能于一体&#xff0c;兼容不同操作系统和计算平台&#xff0c;帮助客户实现平台一体化、功能一体化、数据一体化的…

SAP缓存 表缓存( Table Buffering)

本文主要介绍SAP中的表缓存在查询数据&#xff0c;更新数据时的工作情况以及对应概念。 SAP表缓存的工作 查询数据 更新数据 删除数据 表缓存的概念 表缓存技术设置属性 不允许缓冲&#xff1a; 允许缓冲&#xff0c;但已关闭&#xff1a; 缓冲已激活&#xff1a; 已…

Flask笔记

一&#xff1a;模板渲染 一般的话都序列化成字符串 二&#xff1a;项目拆分 2.1 项目拆分 app.py init.py views.py models.py 模型数据 2.2 蓝图 三&#xff1a;路由参数 3.1 String 重点 3.2 int 3.3 path 3.4 UUID 3.5 any 四&#xff1a;请求方式 五&#xff1a;Requ…

【经典算法】有趣的算法之---蚁群算法梳理

every blog every motto: You can do more than you think. 0. 前言 蚁群算法记录 1. 简介 蚁群算法(Ant Clony Optimization, ACO)是一种群智能算法,它是由一群无智能或有轻微智能的个体(Agent)通过相互协作而表现出智能行为,从而为求解复杂问题提供了一个新的可能性…

WPF 漂亮长方体、正文体简单实现方法 Path实现长方体 正方体方案 WPF快速实现长方体、正方体的方法源代码

这段XAML代码在WPF中实现了一个类似长方体视觉效果的图形 声明式绘制&#xff1a;通过Path、PathGeometry和PathFigure等元素组合&#xff0c;能够以声明方式精确描述长方体每个面的位置和形状&#xff0c;无需编写复杂的绘图逻辑&#xff0c;清晰直观。 层次结构与ZIndex控制…

机器学习距离度量方法

1. 机器学习中为什么要度量距离&#xff1f; 机器学习算法中&#xff0c;经常需要 判断两个样本之间是否相似 &#xff0c;比如KNN&#xff0c;K-means&#xff0c;推荐算法中的协同过滤等等&#xff0c;常用的套路是 将相似的判断转换成距离的计算 &#xff0c;距离近的样本相…

MySQL入门教程-触发器

9.触发器 什么是触发器 触发器(trigger)&#xff1a;监视某种情况&#xff0c;并进行某种操作&#xff0c;它的执行并不是程序调用&#xff0c;也不是手工启动&#xff0c;而是由事件来触发&#xff0c;例如&#xff1a;对一张表进行操作&#xff08;插入&#xff0c;更新&…