J'obtiens un nuage de points d'un lidar sur un robot de conduite autonome, mais c'est trop de données à traiter.
J'ai déjà implémenté un filtre de passage.
J'ai obtenu un très bon résultat et je me suis demandé s'il y avait d'autres filtres ou méthodes que je pourrais approfondir.
Bien sûr, je ne cherche pas quelque chose de spécifique mais plutôt une direction ou un conseil, parce que je suis assez nouveau dans la bibliothèque pcl et elle semble assez énorme.
Voici mon filtre maintenant :
pcl::PointCloud<PointXYZIR>::Ptr cloudInput;
cloudInput.reset(new pcl::PointCloud<PointXYZIR> (cloud_in));
pcl::PointCloud<PointXYZIR>::Ptr cloudFiltered;
cloudFiltered.reset(new pcl::PointCloud<PointXYZIR>);
// Create the filtering object: downsample the dataset using a leaf size
pcl::VoxelGrid<PointXYZIR> avg;
avg.setInputCloud(cloudInput);
avg.setLeafSize(0.25f, 0.25f, 0.25f);
avg.filter(*cloudFiltered);
//Filter object
pcl::PassThrough<PointXYZIR> filter;
filter.setInputCloud(cloudFiltered);
filter.setFilterFieldName("x");
filter.setFilterLimits(-100, 100);
filter.filter(*cloudFiltered);
filter.setFilterFieldName("y");
filter.setFilterLimits(-100, 100);
filter.filter(*cloudFiltered);
cloud_out = *cloudFiltered;