我使用代码这里进行三维测绘使用2D激光雷达。我想尝试实现传递过滤器,以消除在获取点中的离群点。我试图将替换为pass.setInputCloud (cloud);中的scan3dMsg,结果导致程序出错。我应该用什么取代云呢?
pcl::PassThrough<pcl::PointXYZ> pass;
pass.setInputCloud (cloud);
pass.setFilterFieldName ("z");
pass.setFilterLimits (0.0, 1.0);
//pass.setFilterLimitsNegative (true);
pass.filter (*cloud_filtered);发布于 2022-04-09 15:27:25
看看pcl文档。setInputCloud正在寻找具有pcl::PointCloud<pcl::PointXYZ>::Ptr类型的东西,而scan3dMsg是一个ros消息类型。如果您想要使用它,您需要首先将ROS消息转换为pcl类型,这是您在另一个问题中问过的;所以我不会在这里重新粘贴我的答案。
尽管如此,这些日子你不应该一直使用PointCloud消息,因为它已经过时了。有些包支持PointCloud2、非EOL发行版,并且在较少的步骤中完成了您想要做的事情:几何学
https://stackoverflow.com/questions/71805302
复制相似问题