Что вы имеете в виду под 2D сеткой над плоскостью xy ? Вы по-прежнему хотите, чтобы значение z было исходным, или вы сначала хотите спроецировать облако точек на плоскость XY?
Сохранить значение Z
Если вы хотите сохранить значения Z, просто установите размер листа для Z из VoxelGrid
в бесконечное (или очень большое число).
pcl::VoxelGrid<pcl::PCLPointCloud2> sor;
sor.setInputCloud (cloud);
sor.setLeafSize (0.01f, 0.01f, 100000.0f);
sor.filter (*cloud_filtered);
Проект Облако на плоскости XY сначала
Проецирование облака на плоскость XY - это не что иное, как установка значения Z для каждой точки на 0 .
for(auto& pt : cloud)
pt.z = 0.0f;
Теперь вы можете сделать обычные VoxelGrid
на облаке проецируемых точек.