使用Kinect和EMGU机器人的本地化(OpenCV的包装) [英] Localization of a robot using Kinect and EMGU(OpenCV wrapper)

查看:250
本文介绍了使用Kinect和EMGU机器人的本地化(OpenCV的包装)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作的小WPF桌面应用来跟踪一个机器人。我有一个Windows的Kinect我的桌子上,我能做到的基本特点,并运行深度相机流和RGB摄像头流。



我需要的是跟踪地板上的机器人,但我不知道从哪里开始。我发现我应该使用EMGU(OpenCV的包装)



我想要做的就是跟踪机器人发现它使用深度摄像头位置。基本上,它是用立体三角测量机器人的定位。然后使用TCP和Wifi送机器人的一些命令他从一个地方移动到另一个使用RGB和深度摄像头。将RGB相机将也可用于在对象映射的区域,使得机器人可以采取的最佳路径,并避免了对象



的问题是,我从来没有与计算机视觉的工作之前,它实际上是我第一次,我不会坚持到最后期限,我愿意去学习所有相关的东西来完成这个项目了。



我在找细节,解释,提示,链接或教程来实现我的需要。



感谢。


解决方案

机器人定位是一个非常棘手的问题,我自己也一直在挣扎了好几个月,现在,我可以告诉你,我已经实现了什么,但你有多种选择:




  • 光学基于流的Odometery :(又称视觉里程计):

    1. 从一个图像或功能(我用诗Tomashi,或cvGoodFeaturesToTrack)

    2. 执行相同的连续图像

    3. 匹配这些提取关键点功能(我用卢卡斯金出武雄)

    4. 提取深度从Kinect的信息

    5. 计算两个三维点云之间的转换。




什么上述算法做是试图估计两帧之间的摄像机运动,它会告诉你的机器人的位置




  • 蒙特卡罗定位:这是相当简单,但你也应该使用轮odometery它。
    检查本文的出C#基础的方法。



上面的方法使用probabalistic模型来确定机器人的位置。



不幸的是,即使在存在C ++库做你需要的东西很容易,包装纸他们C#是一个艰巨的任务。不过,若你能代码的包装,那么90你的工作%的完成,使用的 PCL 和<一个关键库HREF =htt​​p://mrpt.org相对=nofollow> MRPT 。



最后一个选项(目前是最简单的,但最不准确的)是使用KinectFusion内置于Kinect的SDK的1.7。但我与它的经验对机器人定位已经很糟糕了。



您必须阅读的大满贯傻瓜的,它会使事情对蒙特卡罗定位非常明确。



硬的现实是,这是非常棘手,你将最有可能最终做自己。我希望你潜入这片广袤的主题,将学习真棒的东西。



有关详细信息,或者说我写的包装。下面只是评论...: - )



最佳


I'm working on small WPF desktop app to track a robot. I have a Kinect for Windows on my desk and I was able to do the basic features and run the Depth camera stream and the RGB camera stream.

What I need is to track a robot on the floor but I have no idea where to start. I found out that I should use EMGU (OpenCV wrapper)

What I want to do is track a robot and find it's location using the depth camera. Basically, it's for localization of the robot using Stereo Triangulation. Then using TCP and Wifi to send the robot some commands to move him from one place to an other using both the RGB and Depth camera. The RGB camera will also be used to map the object in the area so that the robot can take the best path and avoid the objects.

The problem is that I have never worked with Computer Vision before and it's actually my first, I'm not stuck to a deadline and I'm more than willing to learn all the related stuff to finish this project.

I'm looking for details, explanation, hints, links or tutorials to achieve my need.

Thanks.

解决方案

Robot localization is a very tricky problem and I myself have been struggling for months now, I can tell you what I have achieved But you have a number of options:

  • Optical Flow Based Odometery: (Also known as visual odometry):

    1. Extract keypoints from one image or features (I used Shi-Tomashi, or cvGoodFeaturesToTrack)
    2. Do the same for a consecutive image
    3. Match these features (I used Lucas-Kanade)
    4. Extract depth information from Kinect
    5. Calculate transformation between two 3D point clouds.

What the above algorithm is doing is it is trying to estimate the camera motion between two frames, which will tell you the position of the robot.

  • Monte Carlo Localization: This is rather simpler, but you should also use wheel odometery with it. Check this paper out for a c# based approach.

The method above uses probabalistic models to determine the robot's location.

The sad part is even though libraries exist in C++ to do what you need very easily, wrapping them for C# is a herculean task. If you however can code a wrapper, then 90% of your work is done, the key libraries to use are PCL and MRPT.

The last option (Which by far is the easiest, but the most inaccurate) is to use KinectFusion built in to the Kinect SDK 1.7. But my experiences with it for robot localization have been very bad.

You must read Slam for Dummies, it will make things about Monte Carlo Localization very clear.

The hard reality is, that this is very tricky and you will most probably end up doing it yourself. I hope you dive into this vast topic, and would learn awesome stuff.

For further information, or wrappers that I have written. Just comment below... :-)

Best

这篇关于使用Kinect和EMGU机器人的本地化(OpenCV的包装)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆