本文仅用于个人记录。
在使用ouster雷达运行fastlio代码时,提示
Failed to find match for field ‘ring’
但ouster雷达确实是发布了ring信息,可以从启动的rviz里面看到包括ring。
进一步检查,发现ouster对ring的定义是 uint_16t,而我印象中ring一般定义的都是 uint_8t,所以改了一下,就没有了这个报错。
即,将: ouster-ros/include/ouster_ros/os_point.h 这个文件中的 uint16_t ring
都改成 uint8_t ring
,之后再编译,fastlio便不出现这个warning。
但是,需要注意的是,ouster雷达可以发布多种类型的点云,在driver.launch
中的point_type
进行定义。选择 original
类型即可。
其他的几种类型,参考github官方给出的解释:
即:xyz
是最简单的,xyzi
增加了intensity,xyzir
增加了ring,original
是 ouster_ros::Point
定义的格式,可以翻源码,native
是原始的点进行的输出。original包括:ambient, intensity, range, reflectivity, ring, t, x, y, z。
intensity
和reflectivity
的区别:前者是我们一般说的“强度”,后者是ouster雷达特有的“材质反射率”。即,前者是这根激光发出后收到的返回强度,后者是这根激光打到的物体的表面的反射率。