服装定制网站源码,中国建筑中心官网,电商推广联盟,大丰网站开发前言#xff1a;
Livox-Mid-360 官方采用livox_ros_driver2ROS功能包发布ROS格式的数据#xff0c;livox_ros_driver2可以把Livox原始雷达数据转化成ROS格式并以话题的形式发布出去。
下面列举一些雷达的基本概念#xff1a;
点云帧#xff1a;雷达驱动每次向外发送的一…前言
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 pointcloud2PointXYZRTLT点云格式 1 -- Livox 自定义点云格式 2 -- PCL 库中的标准点云 2 pcl PointXYZI 点云格式。 2.点云数据
查看livox_ros_driver2发布出的话题/livox/lidar 的消息类型为sensor_msgs/PointCloud2sensor_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: lineoffset: 17datatype: 2 // UINT8 占1个字节count: 1
is_bigendian: False // 数据存储方式包括大端与小端具体解释见后文参考链接
point_step: 18 // 一个点占的字节数
row_step: 179712 // 一行的长度占用的字节数
data:[省略]
is_dense: True // 没有非法数据点
---