0

我有一个城市广场,里面有 pcl 格式的人、汽车、树木和建筑物。我需要自动确定地平面并将这些对象投影到该地平面上,以获得包含被占用位置的 2D 地图。

任何的想法?

4

1 回答 1

2

我认为最好的办法是熟悉以下两个 PCL 教程:

http://pointclouds.org/documentation/tutorials/planar_segmentation.php

http://pointclouds.org/documentation/tutorials/project_inliers.php

第一个教程使用 RANSAC 算法在场景中找到主平面。我用它来查找机器人场景中的桌子和地板。你会用它来找到你的主要地平面。

第二个教程展示了如何将点直接投影到平面上。这就是您将 3D 点云变成 2D 点云的方法。请注意,尽管有“inlier”关键字,但您可以将整个点云投影到平面上。

实际上,如果您在“被占用”的地方之后,您可能想要投影不在地平面中的所有点(即异常值),并且在其上方(您可以使用 PCL 过滤器,例如 PlaneClipper3D ,例如,或者只是平面分割操作中异常值的补充。

如果您最终得到的平面(包含所有投影点)不在您想要的坐标系中,您可能希望旋转整个地块,例如,与坐标轴对齐,以便所有 z 坐标为零. 参见 pcl::transformPointCloud (可以从平面分割返回的平面系数中获得变换)。

我希望这是有帮助的,而不是太基本的水平,尽管这个问题相当笼统,所以我想应该没问题。

于 2012-08-22T10:47:45.947 回答