在 ROS 中,您可以将订阅或发布的点云数据保存为 .pcd
(Point Cloud Data)文件。这是一个常用的点云文件格式,由 Point Cloud Library (PCL) 支持。以下是如何做到这一点的基本步骤:
订阅点云主题:
ros::Subscriber sub = nh.subscribe("point_cloud_topic", queue_size, callbackFunction);
回调函数中保存点云:
pcl::PointCloud<pcl::PointXYZ>
)。.pcd
文件。void callbackFunction(const sensor_msgs::PointCloud2ConstPtr& cloud_msg) {
pcl::PointCloud<pcl::PointXYZ> cloud;
pcl::fromROSMsg(*cloud_msg, cloud);
pcl::io::savePCDFileASCII("saved_cloud.pcd", cloud);
}
?
创建点云数据:
发布点云数据:
.pcd
文件。pcl::PointCloud<pcl::PointXYZ> cloud;
// 加载或生成点云数据
pcl::io::savePCDFileASCII("saved_cloud.pcd", cloud);
sensor_msgs::PointCloud2 cloud_msg;
pcl::toROSMsg(cloud, cloud_msg);
pub.publish(cloud_msg);
pcl::PointXYZ
, pcl::PointXYZRGB
)。.pcd
文件可以是 ASCII 或二进制格式,根据需要选择。通过这种方式,您可以轻松地将 ROS 中处理的点云数据保存为 .pcd
文件,用于后续的分析、处理或其他应用。