在发布ROS的点云话题时,出现报错:‘const struct pcl::PCLPointCloud2’ has no member named ‘__getMD5Sum’
环境:Ubuntn20.04 PCL1.12.1(当前最新的)
非常坑的是,PCL1.12.1作者应该对common/include下面的头文件进行了修改,找不到point_trait.h了,这个在上一个版本PCL1.12.0中还存在。
在发布点云消息的时候,你可以借用PCL_ROS库,这个相当于是一个数据接口,会调用point_cloud.h,之后是point_trait.h,上面报错就是因为缺少这个。
另外,我尝试使用sensor::msgs、toROSMsg对数据进行转换,但还是避不开这个问题。
解决方案
1.PCL版本 <= 1.12.0,在你的cpp文件中添加头文件
#include <pcl_ros/point_cloud.h>
2.PCL版本是1.12.1或者之后的,建议降低pcl版本,因为1.12.1中pcl_ros下的point_cloud.h文件会调用pcl/point_trait.h,但是pcl目录下并没有这个文件,应该是作者进行了修改,也不能直接copy过来。我目前还没找到解决方案,欢迎大佬评论区指导。