我正在使用小型WPF桌面应用来跟踪机器人。我的桌面上有一个Kinect for Windows,我可以执行基本功能并运行深度相机流和RGB相机流。
我需要的是跟踪地板上的机器人,但我不知道从哪里开始。我发现我应该使用EMGU(OpenCV包装器)
我想要做的是跟踪机器人并使用深度相机找到它的位置。基本上,它是使用立体三角测量来定位机器人的。然后使用TCP和Wifi向机器人发送一些命令,使用RGB和深度相机将他从一个地方移动到另一个地方。 RGB相机还将用于映射区域中的对象,以便机器人可以采取最佳路径并避开对象。
问题在于我以前从未使用过计算机视觉,而且它实际上是我的第一个,我没有坚持到最后期限而且我更愿意学习所有相关的东西完成这个项目。
我正在寻找细节,解释,提示,链接或教程以满足我的需求。
感谢。
答案 0 :(得分:3)
机器人本地化是一个非常棘手的问题,我自己已经挣扎了几个月,我可以告诉你我取得了什么但是你有很多选择:
上述算法正在做的是尝试估计两帧之间的相机运动,这将告诉你机器人的位置。
上述方法使用概率模型来确定机器人的位置。
令人遗憾的是,尽管C ++中存在的库可以非常轻松地完成您的需要,但将它们包装为C#是一项艰巨的任务。但是,如果您可以编写包装器代码,那么90%的工作都已完成,要使用的密钥库是PCL和MRPT。
最后一个选项(到目前为止最容易,但最不准确)是使用Kinect SDK 1.7内置的KinectFusion。但我在机器人定位方面的经验非常糟糕。
你必须阅读Slam for Dummies,它将使蒙特卡洛本地化的内容非常清晰。
艰难的现实是,这非常棘手,你很可能最终会自己做。我希望你能深入研究这个广阔的话题,并学习很棒的东西。
有关我编写的更多信息或包装。请在下面评论......: - )
最佳
答案 1 :(得分:1)
不确定是否会对您有所帮助......但我整理了一个可能有用的Python模块。