【发布时间】:2014-05-12 10:27:25
【问题描述】:
我正在尝试为我大学的机器人班实施一项任务。 该项目的主要任务是用KUKA-youbot机器人抓取杯子。
我发现它的主要问题是关于项目的视觉计算部分。 更准确地说,我使用的是 Kinect(将安装在机器人手臂上),一开始我想用这个程序来找到杯子:
- 开始前拍个杯子(真的很近)
- 使用 openCV 从安装在机械臂上的 kinect 实时计算图像的关键点和实时图像的关键点。
- 此时我可以使用 OpenCV 映射两个图像之间的关键点。
- 使用 kinect 在同一时刻拍摄的 3d 点云图像实时映射图像的 2d 点。计算 3d 图像中的质心,从而知道杯子的位置。
问题在于,如果实时图像接近(如 1 米),则关键点提取并将它们与其他对象映射效果很好,否则特别是如果场景中有其他对象,openCV 算法会检测到其他重要的功能和映射不起作用。
我正在使用这个:http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html
正如您在第一张照片中看到的那样,机器人靠近杯子,一切顺利, http://postimg.org/image/byx8danpt/ 在这里,我们离杯子很远,没有任何效果。 http://postimg.org/image/9lhhzxk4z/
我想知道我的项目是否还有其他更实用的方法。也许是基于模型的东西,而不是像我最初的想法那样基于特征的东西。
谢谢 卢卡
【问题讨论】:
-
您是否尝试使用相机校准,我的提示是将您的捕获设备(kinect 或相机)修复到您的机器人手臂上,而不是真正修复它,这样您就可以轻松计算位置!
-
你的意思是把kinect固定在要抓取的物体(杯子)附近,把世界坐标的中心放在机器人初始位置,然后对机器人校准kinect?
-
是的,我会这么说,实际上您将相机固定在哪里并不重要,但校准将为您提供像素与真实世界坐标之间的数学联系
-
顺便说一句,你肯定需要更多的 feature_homography 来识别你的杯子,我猜这将是很多算法的组合,所以你可以确定它在哪里房间
-
好的,谢谢!我会尝试这样做。
标签: opencv computer-vision robotics object-recognition keypoint