我目前正在构建感知管道,并且无法读取我的点云结构的点。我正在将点云读取到 PointCloud2 结构中,并希望能够写出点云的系列点,或者至少可以访问它们,因此我找到了一种稍后将它们写入文件的方法。我正在使用的基本代码在这里:
void cloud_cropbox_cb(const sensor_msgs::PointCloud2ConstPtr &cloud_msg)
{
// Container for original & filtered data
pcl::PCLPointCloud2 *cloud = new pcl::PCLPointCloud2;
pcl::PCLPointCloud2ConstPtr cloudPtr(cloud);
pcl::PCLPointCloud2 cloud_filtered;
// convert given message into PCL data type
pcl_conversions::toPCL(*cloud_msg, *cloud);
我希望能够访问云中每个点的 x、y、z 元素,理想情况下只需将它们全部写入文本文件。我尝试过使用pcl::io::savePCDFileASCII()
,但我认为这在这里不太适用。另一个注意事项是基本程序一直在运行,并且在手动关闭之前永远不会退出我不知道这是否与写入文件有关。任何有关使用哪些确切功能/我需要采取的步骤的帮助将不胜感激。