0

我正在尝试为我大学的机器人班实施一项任务。该项目的主要任务是使用 KUKA-youbot 机器人抓取杯子。

我发现它的主要问题是关于项目的视觉计算部分。更准确地说,我使用的是 Kinect(将安装在机器人手臂上),一开始我想用这个程序来找到杯子:

  1. 开始之前给杯子拍照(真的很近)
  2. 使用openCV从安装在机器人手臂上的kinect实时计算图像的关键点和实时图像的关键点。
  3. 此时我可以使用 OpenCV 映射两个图像之间的关键点。
  4. 使用同一时刻从 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/

我想知道我的项目是否还有其他功能更强大的方法。也许是基于模型的东西,而不是像我最初的想法那样基于特征的东西。

谢谢卢卡

4

1 回答 1

0

您可以尝试使用棋盘校准,使用函数:findChessboardCorners() 和 calibrateCamera()。使用这些功能,您可以创建坐标系并从图像中找到对象在现实世界中的位置。

于 2019-06-13T00:25:10.123 回答