使用Kinect进行机器人导航

时间:2012-05-21 10:19:13

标签: artificial-intelligence kinect emgucv lego

到目前为止,我已经能够创建一个Kinect传感器位于一个地方的应用程序。我使用语音识别EmguCV(open cv)和Aforge.NET来帮助我处理图像,学习和识别对象。这一切都很好,但总有改进余地,我提出了一些问题:[忽略前三个,我想要第四个答案]

  1. 帧率非常糟糕。它就像5 fps,即使它应该像30 fps。 (这是没有所有处理)我的应用程序运行正常,它从相机获得颜色和深度帧并显示它。帧速率还不错。样品运行很棒,大约25 fps。即使我从样本中运行完全相同的代码,它也不会让步。 :-( [不需要代码,请告诉我可能存在的问题。]

  2. 我想创建一个小型机器人,可以在其上安装kinect和我的笔记本电脑。我尝试使用Mindstorms套件,但是低扭矩马达没有做到这一点。请告诉我如何实现这一目标。

  3. 如何在船上供电?我知道Kinect使用12伏电机。但它从AC适配器获得。 [我不想切断电缆并用12伏电池更换]

  4. 最大的问题:这个世界将如何导航。我做过A *和泛洪填充算法。我读了this论文就像一千次,我一无所获。我脑子里有导航算法,但它究竟会如何本地化? [它不应该使用GPS或任何其他传感器,只是它的眼睛,即Kinect]

  5. 帮助我将是非常棒的。我是新手,所以请不要指望我知道一切。我已经上网2周没有运气。

    非常感谢!

1 个答案:

答案 0 :(得分:4)

本地化是一项棘手的任务,因为它取决于对机器人所在环境的先验知识(你家的地图)。虽然存在同时定位和映射的算法,但它们往往是特定于域的,因此不适用于将机器人放置在任意位置并使其自动映射其环境的一般情况。

但是,如果您的机器人确实对其环境有什么样的粗略(概率)概念,Monte Carlo localisation是一个不错的选择。在较高的层面上,它类似于:

  1. 首先,机器人应该在其已知的环境中进行大量随机猜测(称为粒子)。
  2. 随着来自传感器的每次更新(即,在机器人移动了一小段距离之后),它使用其当前传感器数据的统计模型调整其每个随机猜测是正确的概率。如果机器人进行360º传感器测量,这可以很好地工作,但这不是完全必要的。
  3. 伦敦帝国理工学院的Andrew Davison的

    This lecture对所涉及的数学进行了很好的概述。 (考虑到你想要创造的东西,课程的其余部分也很可能对你很有趣)。祝你好运!