【问题标题】:Calculation of center point for the localization of robot in 3D data3D数据中机器人定位中心点的计算
【发布时间】:2017-02-22 15:13:59
【问题描述】:

我正在尝试找到一种可靠的方法来计算容器的角点。从这些角点的想法是计算容器的中心点用于机器人的定位,这意味着计算的中心点将是机器人的目的地,以便拾取容器。为此,我正在寻找计算角点的任何建议,或者如果有可能直接计算中心点。到目前为止,PCL 库 C/C++ 用于处理 3D 数据。 下图是容器的截图。
提前致谢。

afterApplyingPassthrough

【问题讨论】:

  • 你想找到那个矩形的中心吗?
  • 其实我没想到找到矩形的中心也可以解决问题。这意味着如果我的方法是找到角落并计算中心,那么离场只有几个步骤。正如你提到的,找到中心可能是一个更好的解决方案。找到中心并添加偏移量。您建议直接在 PCL 中计算它吗?
  • 那里有深度数据吗?我没有看到那个容器的任何内表面......(我知道它是 3d 数据,但你的传感器只能解析推车的前表面吗?)
  • 如果您看到第二张图片(刚刚上传),可以更好地看到容器向后。我猜它的方向是前面与向后部分数据对齐的方式。
  • 您有机会发布您正在查看的对象的图片吗?

标签: image-processing computer-vision point-cloud-library robotics point-clouds


【解决方案1】:

我做了以下事情:

  • 我对图像进行了二值化处理(黑色像素 = 0,绿色像素 = 1),
  • 反转图像(黑色像素 = 1,绿色像素 = 0),
  • 用 3x3 内核对图像进行 N 次腐蚀,并用相同的内核对图像进行 M 次膨胀。

左:N=2,M=1;右:N=6,M=6

之后:

  • 我计算了所有非零区域的轮廓和
  • 移除了包围整个图像的轮廓。

这是剩下的轮廓:

我不知道在您的情况下“典型”输入图像是什么样的。由于我只能访问一个示例图像,因此我不想推测适合您的“通用解决方案”。但要解决这种特殊情况,您可以通过以下方式分析每个轮廓:

  • 计算最适合您的轮廓的旋转矩形(您需要类似于 minAreaRect from OpenCV 的东西)
  • 计算矩形和轮廓内部的面积
  • 如果轮廓面积与旋转边界矩形的面积之间的差异很小,则轮廓近似为矩形
  • 找到既是矩形又满足其他条件(例如:容器的典型区域)的轮廓。假设这属于容器并计算其中心。

我并不是说这是一个在现实世界场景中运行良好的解决方案。它也不快。您应该将其视为展示如何提取一些有用信息的“草图”。

【讨论】:

  • 我上面贴的图片是点云数据的截图。从字面上看,这意味着处理不应在此图像上,而应在深度数据上。但是谢谢你,如果它是 2D 图像,它似乎很好。不是吗?
【解决方案2】:

我假设轮子使推车与地板保持一个已知的偏移量,并且您可以识别地板。过滤掉所有离地面太近的点(这将移除轮子和除购物车之外的所有东西,这将有助于限制数据并简化后续步骤。

如果您隔离购物车,您可以应用一个简单的平均点(质心),或者,如果这不精确,您可以尝试找到隔离购物车的bounding box(主要方向上的最小最大值),然后取该边界框的质心(这应该更准确,但由于顶部手柄仍需要轻微的垂直偏移)。

如果您无法隔离购物车或其他方法效果不佳,您可以尝试使用PCL sample consensus 特别是 SACMODEL_LINE。这将是一个复杂的策略,但会给出非常可靠的结果,基本上贯穿并找到每条线路并从云中减去其成员,以便找到下一个最佳线路。拥有 4 条主要购物车线后,使用它们的参数找到您的质心。 *这对于购物车内或购物车上的随机物品以及各种尺寸的购物车(假设它们始终具有线性垂直壁)也很有效

【讨论】:

  • 很好的建议。谢谢。你所说的(1)识别地板和(2)过滤掉离地板太近的点以移除轮子并只保留推车,以便之后我可以使用(3)边界框。 ?
  • 这些都是非常清楚的解释......至于如何实际实现它,有太多的解释。它的教程和课程思想的网络文档记录得非常好。这是一个很好的起点:pointclouds.org/documentation/tutorials 我建议先尝试这些教程,然后根据您的需要进行修改。
  • 实际上我一直在研究 PCL 教程并使用 RANSAC 进行平面拟合等。您能否提及任何可以检测和移除平面的特定示例,以某种方式过滤掉轮子会更容易之后,在购物车对象上找到一个矩形棱柱边界框?
  • 我认为计算质心将为您提供更强大的观点。不过,您可能需要为该点设置一个静态偏移量(因为顶部的那些小襟翼会将其拉起一点)。
猜你喜欢
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
相关资源
最近更新 更多