MID360录制3D雷达数据bag包

0. 启动雷达

如果跑 FAST-LIO2 这类紧耦合算法,CustomMsg 是首选,它能提供算法所需的全部原始信息;

如果跑 Cartographer 这类通用SLAM,PointCloud2 格式以保证兼容性。

我是后者,选择PointCloud2。启动Livox雷达驱动并确认话题正常发布:

bash 复制代码
roslaunch livox_ros_driver2 rviz_MID360_launch.py

新开一个终端,确认雷达话题已发布:

bash 复制代码
source ~/livox_ws/devel/setup.bash
rostopic list | grep livox
  1. 录制多个指定话题
bash 复制代码
# 指定输出文件名
ros2 bag record -o office /livox/lidar /livox/imu

3. 查看bag信息

bash 复制代码
ros2 bag info office/office_0.db3

4. 播放bag包

bash 复制代码
# 正常播放
ros2 bag play your_file.bag

# 循环播放
ros2 bag play -l your_file.bag

# 加速播放(2倍速)
ros2 bag play -r 2 your_file.bag

# 从第10秒开始播放
ros2 bag play -s 10 your_file.bag

# 只播放特定话题
ros2 bag play your_file.bag --topic /livox/lidar

注意事项

1. 录制前规划

  • 磁盘空间:Mid-360点云+IMU数据,每分钟约200-500MB,请确保有足够空间

  • 文件命名 :使用有意义的名称,如hospital_1st_floor_20250320.bag

  • 创建专用目录 :建议建立bags/文件夹统一管理

2. 录制过程中的操作

  • 启动录制后,再控制机器人移动

  • 停止录制:在录制终端按Ctrl+C

  • 可以录制完整的建图路径,方便后续复现

放在最后

如何给mid360供电?

电动车上的12V蓄电池,可以用来给mid360供电吗?

**可以,但需要确保电源稳定可靠,并且额定功率留出足够余量。**Mid-360的供电要求非常明确,对电压的容忍度很高:

参数 Mid-360 规格 12V 蓄电池
供电电压范围 9V - 27V DC 满电约12.6V-13V,放电末期约10.5V
典型功耗 6.5 W (约0.54A @ 12V) 可轻松提供数安培电流
低温峰值功率 自加热模式下可达 14W (约1.2A @ 12V) 需确保电源线及保险能承载此电流

直接夹上电线虽然能转,但要做到长期稳定运行,必须处理好以下两点:

1. 电源线的"压降陷阱"

这是最容易被忽视的问题。Mid-360的原装线缆或推荐的兼容线缆,通常使用 0.75mm² 或更细的线材。如果从电池到雷达的线缆过长,细导线会产生明显的电压下降。

  • 风险:启动瞬间电流较大,如果线缆过长过细,到达雷达端的电压可能已低于其工作范围,导致雷达反复重启或工作异常。

  • 解决方案尽量缩短线缆 长度。如果必须用长线,使用更粗的线缆(如0.75mm²或1.0mm²以上),或适当提高电源电压(例如用16V电源)来补偿线损,但绝不能超过27V。

2. 考虑低温环境下的"功率余量"

如果你的电动车在冬天室外使用,这一点非常重要。Mid-360在低于0℃时会启动自加热模式 ,此时功耗会从平时的6.5W飙升到14W

  • 风险:如果供电系统(电池、线缆、保险丝)刚好按6.5W的规格配置,低温下可能因功率不足导致雷达无法启动或突然掉电。

  • 解决方案:为电源系统留有充足的余量,确保在低温峰值功率下仍能稳定供电。

是否需要屏蔽角度?

手持Mid360录制bag, 需要像2d雷达那样设置屏蔽角度吗?

完全不需要设置 。2D单线激光雷达(如思岚A1/A2、北阳等)的扫描平面是固定的一个水平面

  • 视场角有限 :通常只有270°或360°水平扫描,但垂直方向只有一条线

  • 安装位置敏感:安装在机器人上时,扫描平面会穿过车体本身

  • 产生虚假障碍物:如果不屏蔽穿过车体的角度,雷达会"看到"自己的机器人,在地图上形成永久性的虚假障碍物

因此,2D雷达必须通过配置文件设置angle_minangle_max,屏蔽掉被车体遮挡的角度范围。

1. Mid-360是3D雷达,拥有水平360°、垂直59°的全向视场角:

  • 垂直59°意味着它既能"看天"也能"看地"

  • 手持使用时,扫描范围覆盖前方、地面、天花板、左右两侧全方位

2. 近盲区仅10cm: Mid-360的最小探测距离低至10厘米。手持操作时,雷达与人体之间的距离通常大于10cm,身体本身不会成为持续的遮挡物。

3. 非重复扫描特性: Mid-360采用非重复扫描模式,点云会随时间累积填充视场内的空间,不像机械式雷达那样有固定的扫描线。这意味着:

  • 不会有固定的"扫描线穿过身体"的问题

  • 手持移动时,身体遮挡的区域会随着姿态变化被其他角度的扫描补全

根据Livox官方展示的手持扫描仪案例,Mid-360在手持设备上的典型安装方式是对地倾斜20°

bash 复制代码
安装建议:对地倾斜 20° 安装
覆盖范围:地面 + 前方 + 天花板
操作方式:无需刻意调整角度,即可实现全方位数据采集

这种安装方式充分利用了59°垂直视场角,手持走动时雷达可以完整覆盖行进方向的所有区域,完全不存在需要屏蔽的"死角"。

虽然不需要设置角度屏蔽,但有一个细节值得留意:点云中的"零点"处理

当探测距离超出量程(如>100m)或前方无物体时,Mid-360输出的点云坐标为(0,0,0)。这些零值点位于雷达坐标系原点附近,属于无效数据。如果你的SLAM算法对近处点敏感,可以在预处理阶段滤除这些接近原点的点------不过这与2D雷达的"屏蔽角度"是两回事,通常通过在代码中判断sqrt(x^2+y^2+z^2) < threshold就能解决。

关于MID360的数据格式

MID360提供的官方SDK支持三种输出格式:

xfer_format 格式名称 ROS1 ROS2 说明
0 PointXYZRTLT 标准PointCloud2 + 时间戳扩展
1 CustomMsg Livox专用格式,保留完整信息
2 PointXYZI PCL标准格式(仅ROS1支持)
维度 PointCloud2 (PointXYZRTLT) CustomMsg
数据完整性 丢失tag和独立line信息 保留全部原始信息
时间精度 毫秒级(依赖header) 纳秒级(每个点独立)
多回波信息 不支持 支持(tag字段)
噪点识别 不支持 支持(tag编码)
线束分割 需额外解析 直接提供line字段
通用性 ✅ 所有ROS工具链支持 ⚠️ 需专用节点处理
兼容性 与PCL、RViz、Cartographer无缝集成 需转换或专用适配(如FAST-LIO原生支持)

PointCloud2是ROS的标准点云格式sensor_msgs/PointCloud2),Livox驱动在此基础上扩展了时间戳字段,形成了 PointXYZRTLT 变体。核心结构

bash 复制代码
sensor_msgs/PointCloud2
├── header (时间戳、坐标系)
├── height/width (点云维度)
├── fields[] (字段定义:x, y, z, intensity, timestamp等)
├── point_step (每个点的字节数)
├── row_step (每行的字节数)
├── data[] (连续存储的点数据)
└── is_dense (是否有无效点)

存储方式 :所有点的数据是扁平化存储 的,通过 fields 定义每个字段的偏移量和类型。

PointXYZRTLT 格式中,通过 fields 定义以下字段:

字段 含义 说明
x, y, z 三维坐标 标准字段
intensity 反射强度 float32类型
timestamp 时间戳 Livox扩展字段,每个点独立时间
ring/line 线号 可选,MID360支持

CustomMsg是Livox雷达的专用格式livox_ros_driver2/msg/CustomMsg),专为保留Livox原始数据设计。核心结构

bash 复制代码
livox_ros_driver2/CustomMsg
├── header
├── timebase (基准时间,纳秒)
├── point_num (点云数量)
├── lidar_id (雷达设备ID)
└── points[] (CustomPoint数组)

每个 CustomPoint 包含

字段 类型 说明
offset_time uint32 相对于基准时间的偏移(纳秒级)
x, y, z float32 三维坐标(米)
reflectivity uint8 反射率(0-255)
tag uint8 多回波和噪点信息(8位编码)
line uint8 激光线号
  1. tag 字段(8位编码)
bash 复制代码
bit7 bit6 | bit5 bit4 | bit3 bit2 | bit1 bit0
   保留     回波序号    强度噪点    空间噪点
  • 回波序号(bit5-4):区分多回波(00=第0回波,01=第1回波...),对穿透玻璃等场景有用

  • 强度噪点置信度(bit3-2):标识是否为灰尘、雨雾等产生的弱回波噪点

  • 空间噪点置信度(bit1-0):标识是否为拉丝状噪点

  1. line 字段

标识该点来自雷达的哪条激光线。对于MID360,提供有效的线号信息,可用于按线分割点云或进行线束级处理。

  1. offset_time + timebase

组合成纳秒级精确时间戳,比PointCloud2的时间精度更高,对运动补偿至关重要。

相关推荐
fundoit3 小时前
OpenClaw通过ROS控制机器人完整教程
人工智能·ai·机器人·ai编程·openclaw
码农三叔3 小时前
(11-3)感知-运动耦合与行为理解:行为识别与预测
人工智能·机器人·自动驾驶·agent·人形机器人
沉睡的无敌雄狮6 小时前
B2B企业获客技术瓶颈:矩阵跃动龙虾机器人+GEO,精准捕捉采购端搜索流量
大数据·矩阵·机器人
yhdata7 小时前
多轴点焊机器人产业动能强劲:538.2亿元市场规模奠基,2032年将跃升至近1154.9亿元
机器人
欧阳秦穆7 小时前
使用openclaw+ollama+飞书部署智能机器人
机器人·飞书·openclaw
Deepoch7 小时前
Deepoc具身模型开发板:巡检机器人的“全天候工业视觉”中枢
人工智能·科技·机器人·开发板·巡检机器人·具身模型·deepoc
kyle~7 小时前
EfficientNet 分类器---协同缩放网络的三个维度深度 宽度 分辨率
人工智能·计算机视觉·机器人
沉睡的无敌雄狮7 小时前
AI优化效果不可控?矩阵跃动数据驱动型龙虾机器人,实现搜索排名稳定提升
人工智能·矩阵·机器人
xwz小王子7 小时前
Science Advances--3D打印新型触觉传感器,让机器人拥有人类级灵巧操作能力
3d·机器人