本文主要是介绍【学习记录】Ouster雷达运行fastlio提示 Failed to find match for field ‘ring‘ 的解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文仅用于个人记录。
在使用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雷达特有的“材质反射率”。即,前者是这根激光发出后收到的返回强度,后者是这根激光打到的物体的表面的反射率。
这篇关于【学习记录】Ouster雷达运行fastlio提示 Failed to find match for field ‘ring‘ 的解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!