【问题标题】:Calculation of corner points for the localization of robot in 3D data计算 3D 数据中机器人定位的角点
【发布时间】:2017-07-02 19:48:02
【问题描述】:

在使用pcl::SACMODEL_LINE RANSAC 线分割模块分割出点云的子集后。 在下一步中,使用

计算提取点云的中心点
pcl::compute3DCentroid(point_cloud, centroid);

这会给出准确的中心点,直到相机和提取的线模型对象相互平行。 在最后一步中,提取点云的角点即拟合线通过在中心点上添加已知距离来计算角点。 该技术将一直有效,直到相机与提取的线模型对象相互平行,相机与它形成一个角度,角点计算技术失败。 任何建议我应该如何使用 PCL 库中现有的可靠方法计算角点来计算提取的点云数据(pcl::SACMODEL_LINE) 的角点。

提前致谢。

【问题讨论】:

    标签: computer-vision image-segmentation point-cloud-library robotics ransac


    【解决方案1】:

    如果您使用 RANSAC 准确提取了子集云,您应该能够使用 getMinMax3d() 找到两个角点。 http://docs.pointclouds.org/1.7.0/group__common.html#ga3166f09aafd659f69dc75e63f5e10f81

    虽然这些不是子集云的实际点,但它们可用于确定边界和位于其上的点。

    【讨论】:

    • 谢谢。您能否再解释一下您帖子中提到的以下几点。 “虽然这些不是子集云的实际点,但它们可用于确定边界和位于其上的点。”
    • 假设您有一个只有两个点 (-5, 10, -2) 和 (5, -10, 2) 的点云。 getMinMax3d() 的结果将是 (-5, -10, -2) 和 (5, 10, 2)。这些“点”实际上并不存在于云中,但它们确实提供了有关每个维度的最大值和最小值的所有信息。例如,您可以使用 -5 的 x 最小值来找到点 (-5, 10, -2)
    • 感谢它确实有助于理解。
    • 如果您看到我绘制这些点的新附加图片。据我了解,绿点将是 getMinMax3d() 的结果,对吗?在引入维度之后,让我们说正如您提到的将 x 从 getMinMax3d() 映射到原始点对吗?
    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多