1.cv_bridge与opencv版本不匹配问题
其他方法对我来说都有问题,我换成了opencv3的版本,就解决了
2.ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found
用这个方法完美解决
3.编译成功后,启动launch后
AttributeError: module 'ros_numpy.point_cloud2' has no attribute 'array'
出错在
pts_lidar = ros_numpy.point_cloud2.pointcloud2_to_xyzi_array(data)
原因是ros_numpy 0.05版本弃用了point_cloud2,所以得换一种方式将ros msg转换成numpy数组格式。
首先在BoundingBoxNode类里定义了一个函数
def pointcloud2_to_numpy(self, cloud_msg):
# 从sensor_msgs/PointCloud2消息中获取点云数据
pc_data = pc2.read_points(cloud_msg, field_names=("x", "y", "z"), skip_nans=True)
# 将点云数据转换为NumPy数组
pc_np = np.array(list(pc_data))
return pc_np
第二步将出错代码更换成
pts_lidar = self.pointcloud2_to_numpy(data)
第三步将
pts_intensity = pts_lidar[:, 3]
改成
pts_intensity = pts_lidar[:, 2]
成功。