【问题标题】:Finding distance travelled by robot using Optical Flow使用光流查找机器人行进的距离
【发布时间】:2011-03-05 09:24:02
【问题描述】:

我现在正在开发一个自主机器人的项目。我必须基本上找出机器人在任何两个间隔之间行进的距离。我正在使用 OpenCV,并使用 OpenCV 的 光流函数,我能够找出 2 个不同图像中每个像素的速度/距离。使用这些信息,我希望能够找出机器人在这 2 个图像之间的间隔内行进的距离。

我想到了一种方法,我们可以在像素行进的距离和机器人行进的距离之间开发输入输出映射(使用一些测试)。这样,使用神经网络,我们就能找到关系。但是,光流将取决于相机与像素的距离,这会导致问题。

有没有办法解决这个问题?

【问题讨论】:

    标签: localization opencv computer-vision robotics opticalflow


    【解决方案1】:

    我希望你最终能接受过去收到的答案。无论如何,不​​久前我已经在 SO(在 OpenCV 中)上发布了这个问题的解决方案,所以这里是:

    How can I determine distance from an object in a video?

    【讨论】:

    • 有没有一种方法可以让我找到机器人行进的距离,而无需尝试找出它与物体的距离,只使用光流?
    • @user280454 - 不,您无法在不知道机器人与摄像机帧的距离的情况下,根据摄像机帧中的信息计算机器人已行进的距离。但是,Jacob 上面的回答描述了如何使用光流信息获取距离。这可能很复杂,但这正是在计算机视觉中做任何事情的本质。
    【解决方案2】:

    你考虑过里程计吗?您可以使用编码器和加速度计来计算距离。更便宜。

    【讨论】:

    • 是的,我们已经考虑过了,但我们认为它会由于滑倒等导致太多错误
    【解决方案3】:

    answer offered by Jacob 是正确的追求路径,但您可能会发现由此产生的远距离旅行信息相当嘈杂。您可能需要考虑使用Kalman filters 随着时间的推移改进您的本地化估算。

    有大量关于卡尔曼滤波器的文献,但我在下面列出了一篇相关论文。

    Larry H. Matthies、Richard Szeliski 和 Takeo Kanade (1989)。 “Kalman Filter-based Algorithms for Estimating Depth from Image Sequences ”,国际计算机视觉杂志,第 3 卷,第 3 期,9 月,第 209-236 页。

    【讨论】:

      【解决方案4】:

      如何在不旋转特定距离的轮子的帮助下找到距离。

      Distance=no of rotation* circumference of wheel
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多