项目实战——基于计算机视觉的物体位姿定位及机械臂抓取(基本原理)


        首先让各位关注我的朋友们久等了,这个项目是我本科的毕业设计,写到四之后,我就一直忙于各种各样的事情,没有时间继续写了,十分抱歉。

        最近我终于抽出时间了 ,看了看之前写的,总觉得代码过多而原理过少。而且之前做项目的时候,走了不少弯路,甚至不少错路,这也写进去了。因此,在这里,我打算重开本专题,把我的毕设完完整整的讲明白。

        另外请各位读者朋友注意,这里面很多东西涉及到我的毕设,写作辛苦,请勿滥用,转载请务必注明出处!

  项目研究目标

   设计一套基于双目视觉的系统,实现物体位姿自动识别与抓取功能。

  项目研究内容

       研究设计以解决以下四点问题:
        1、如何利用两颗摄像头实现双目测距;
        2、标志物的设计及如何实现标志物的识别;
        3、物体位姿的判定方法;
        4、确定机械臂的运动学逆解,并实现抓取。

        好的,现在就让我们开始第一部分的介绍,这也是计算机视觉的核心问题:如何利用两颗摄像头实现双目测距。

  双目测距原理

       如图 2.1-1 所示,分别以Ol和Or为坐标原点建立相机坐标系 Ol − ??????和 Or − ??????:
图2.1-1 摄像机位置模型

     其中:Ol为左摄像机光心,Or为右摄像机光心,世界坐标系O − XYZ与坐标 系Ol − ??????重合。

     P 为三维现实世界中的一点,在左右摄像机上分别成像于点P l和Pr。 假设左右摄像机完全平行(即:左右相机坐标系的 x 轴共线,yOz平面平行),平行间距为B,则从俯视图上看,如图 2.1-2 所示:
图 2.1-2 双目测距原理

   其中,f 为焦距,Z 为待测的深度(距离)信息,不难得出:

 如果要根据上述公式对三维世界中的点进行双目测距,需要确定的参数有:摄像机的焦距(f)、两个摄像机的平行间距(B)、同一个点在两个摄像机平面所成像的像素坐标。
因此,需要计算的信息有:

        1、两个摄像机的内在参数(焦距等参数);
        2、两个摄像机的外部参数(相对位姿等参数);
        3、进行立体匹配,确定同一个点在两个摄像机成像位置。

       但是,上述情况是双目摄像头是在理想情况下的测距计算方法,实际情况下还存在诸多误差因素,主要有:

        1、摄像机在生产的过程中,由于镜片的制造工艺和装配误差,会造成一定程度的畸变,使得成像出现偏差,严重影响后续的图像处理。因此需要进行畸变矫正,以保证成像一致;
        2、两个摄像机在外观上不可能完全平行,在x、y、z三个方向上都会存在差异,如果不经过计算,直接进行对应点的计算,就会存在很大的误差。因此需要确定两个相机的相对位姿信息,予以矫正。

        综上,实现双目测距的具体步骤如图 2.1-3 所示:
图2.1-3 测距步骤

        单目标定:计算摄像机的内部参数,消除相机的畸变;
        双目标定:计算两个摄像机的相对位姿信息,并进行矫正;
        立体匹配:将左右摄像机拍摄图像的对应像素点关联起来;
        计算深度:根据公式确定待测的深度(距离)信息。


        图2.1-4生动地描述了上述过程:
图2.1-4 处理步骤

   以上即为双目测距的主要原理的,那么下一部分就是单目标定了。

   
   PS:再次请各位读者朋友注意,这里面很多东西涉及到我的毕设,写作辛苦,请勿滥用,转载请务必注明出处!
————————————————
   版权声明:本文为CSDN博主「Hunt Tiger Tonight」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
   原文链接:https://blog.csdn.net/qq_32061503/article/details/102796466