我正在尝试找到一种可靠的方法来计算容器的角点。从这些角点的想法是计算机器人定位的容器的中心点,这意味着计算的中心点将是机器人的目的地,以便挑选容器。为此,我正在寻找任何计算角点的建议,或者可能是直接计算中心点的可能性。到目前为止,PCL库C / C ++用于处理3D数据。 下图是容器的屏幕截图 提前致谢。
答案 0 :(得分:2)
我做了以下事情:
左:N = 2,M = 1;右:N = 6,M = 6
之后:
这是剩下的轮廓:
我不知道你的情况下“典型”的输入图像是怎样的。由于我只能访问一个样本图像,我宁愿不推测适合您的“一般解决方案”。但要解决这种特殊情况,您可以通过以下方式分析每个轮廓:
我并不是说这是一个在现实场景中运行良好的解决方案。它也不快。您应该将其视为“草图”,以显示如何提取一些有用的信息。
答案 1 :(得分:1)
我认为车轮保持推车与地板的距离已知,您可以识别地板。过滤掉距离地面太近的所有点(这将除去车轮和除了推车之外的所有点,这将有助于限制数据并简化后续步骤。
如果您隔离购物车,您可以应用简单的平均点(质心),如果不精确,您可以尝试找到隔离车的bounding box(主要方向的最小最小值)和然后取出那个边界框的质心(这应该更精确,但由于顶部手柄仍然需要一个轻微的垂直偏移)。
如果您无法隔离购物车或其他方法效果不佳,您可以尝试使用PCL sample consensus专门使用SACMODEL_LINE。这将是一个涉及的策略,但会给出非常可靠的结果,基本上贯穿并找到每一行并从云中减去其成员,以便找到下一个最佳线。获得4个主要购物车行后,使用其参数查找质心。 *这对于购物车内或购物车上的随机物品以及各种尺寸的推车(假设它们总是具有线性垂直壁)也是强大的