【学习记录】Ouster雷达运行fastlio提示 Failed to find match for field ‘ring‘ 的解决办法

本文仅用于个人记录。

在使用ouster雷达运行fastlio代码时,提示

Failed to find match for field ‘ring’

但ouster雷达确实是发布了ring信息,可以从启动的rviz里面看到包括ring。
【学习记录】Ouster雷达运行fastlio提示 Failed to find match for field ‘ring‘ 的解决办法_第1张图片

进一步检查,发现ouster对ring的定义是 uint_16t,而我印象中ring一般定义的都是 uint_8t,所以改了一下,就没有了这个报错。
即,将: ouster-ros/include/ouster_ros/os_point.h 这个文件中的 uint16_t ring 都改成 uint8_t ring,之后再编译,fastlio便不出现这个warning。
【学习记录】Ouster雷达运行fastlio提示 Failed to find match for field ‘ring‘ 的解决办法_第2张图片

但是,需要注意的是,ouster雷达可以发布多种类型的点云,在driver.launch中的point_type进行定义。选择 original 类型即可。
【学习记录】Ouster雷达运行fastlio提示 Failed to find match for field ‘ring‘ 的解决办法_第3张图片
其他的几种类型,参考github官方给出的解释:
【学习记录】Ouster雷达运行fastlio提示 Failed to find match for field ‘ring‘ 的解决办法_第4张图片
即:xyz 是最简单的,xyzi增加了intensity,xyzir增加了ring,originalouster_ros::Point定义的格式,可以翻源码,native是原始的点进行的输出。original包括:ambient, intensity, range, reflectivity, ring, t, x, y, z。

intensityreflectivity的区别:前者是我们一般说的“强度”,后者是ouster雷达特有的“材质反射率”。即,前者是这根激光发出后收到的返回强度,后者是这根激光打到的物体的表面的反射率。

你可能感兴趣的:(学习)