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

        首先让各位关注我的朋友们久等了,这个项目是我本科的毕业设计,写到四之后,我就一直忙于各种各样的事情,没有时间继续写了,十分抱歉。最近我终于抽出时间了 ,看了看之前写的,总觉得代码过多而原理过少。而且之前做项目的时候,走了不少弯路,甚至不少错路,这也写进去了。因此,在这里,我打算重开本专题,把我的毕设完完整整的讲明白。

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

项目研究目标

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

项目研究内容

        研究设计以解决以下四点问题:
        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 为待测的深度(距离)信息,不难得出:


∣ p l p r ∣ = B − ( x l − x r ) |p_l p_r |=B-(x_l-x_r) plpr=B(xlxr)

        根据相似三角形原理有:


∣ p l p r ∣ / B = ( Z − f ) / Z |p_l p_r |/B=(Z-f)/Z plpr/B=(Zf)/Z

        因此,待测的深度(距离)信息为:


Z = f B / ( x l − x r ) Z=fB/(x_l-x_r ) Z=fB/(xlxr)

        如果要根据上述公式对三维世界中的点进行双目测距,需要确定的参数有:摄像机的焦距(f)、两个摄像机的平行间距(B)、同一个点在两个摄像机平面所成像的像素坐标。
因此,需要计算的信息有:
        1、两个摄像机的内在参数(焦距等参数);
        2、两个摄像机的外部参数(相对位姿等参数);
        3、进行立体匹配,确定同一个点在两个摄像机成像位置。
        但是,上述情况是双目摄像头是在理想情况下的测距计算方法,实际情况下还存在诸多误差因素,主要有:
        1、摄像机在生产的过程中,由于镜片的制造工艺和装配误差,会造成一定程度的畸变,使得成像出现偏差,严重影响后续的图像处理。因此需要进行畸变矫正,以保证成像一致;
        2、两个摄像机在外观上不可能完全平行,在x、y、z三个方向上都会存在差异,如果不经过计算,直接进行对应点的计算,就会存在很大的误差。因此需要确定两个相机的相对位姿信息,予以矫正。
        综上,实现双目测距的具体步骤如图 2.1-3 所示:


图2.1-3 测距步骤

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


图2.1-4 处理步骤

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

        Hunt Tiger Tonight
        2019-10-29
        联系方式:18398621916@163.com(请勿使用其他联系方式,谢谢!)
        PS:再次请各位读者朋友注意,这里面很多东西涉及到我的毕设,写作辛苦,请勿滥用,转载请务必注明出处!

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐