【3】机器人手眼标定:固定向下相机

 

 

 

 

相机固定向下安装是手眼搭配中最简单的应用模式,也是大家最常用,最容易理解的一种方式。就让我们从这种简单的应用场景一起思考其中的一些奥妙吧。

— Edited By Hugo

 

 

 

 

如上图所示:

要让机器人的手抓住杯子,就必须知道杯子跟手的相对位置关系,而杯子的位置则是通过机器人的眼睛看见的,所以,我们只需要知道机器人的手可以眼睛的转换关系,就可以随时抓取机器人眼睛所看到的物体了。

 

先演示下相机标定过程:

 

STEP 1:准备好一张标定板,里面有3X3的圆。

STEP 2:把标定板水平放置在相机正下方,控制相机拍照得到一张图片,并按顺序(走Z字型)记录图片上9个圆的中心位置。

 

STEP 3:控制机器人TCP工具末端按顺序(走Z字型)移动到每个圆心,并记录下9组机器人位置坐标数据。

 

STEP 4: 执行标定,这里使用HALCON标定算子作为演示,利用上面求得的数据。

 

  -图像上9个位置-

image_x:=[727.884,2395.058,1505.023,666.948,2678.36,1505.023,666.948,2678.36]

image_y:=[755.759,664.057,1289.824,1787.698,1707.432,1505.023,666.948,2678.36]

 

  -机器人9个位置-

robot_x:=[-57.011,-33.521,-46.759,-58.678,-30.024,-46.759,-58.678,-30.024]

robot_y:=[323.965,324.565,316.237,309.794,309.695,-46.759,-58.678,-30.024]

 

  -图像与机器人数据结合-

vector_to_hom_mat2d (image_x, image_y, robot_x, robot_y, HomMat2D)

 

STEP 5:标定完成后,拍摄一个特征点的,求得像素位置

img_x:=2094.344

img_y:=1326.878

 

利用以下算子即可把像素坐标转换成机器人坐标

affine_trans_point_2d(HomMat2D,img_x,img_y, Qx, Qy)

 

到这里标定以及转过程就完成了。是不是觉得很简单?那么问题来了,他怎么做到的呢,这个标定函数里面做了什么?下面一起看看:

 

 

如上图所示:

 

矩阵A代表了图像像素点的点集合,矩阵B代表了机器人在世界坐标系下的点集合,在机器人应用中,我们习惯使用齐次坐标与齐次矩阵来统一描述刚体的位置和姿态。而X就是我们需求出的AB两组点集之间的旋转平移关系矩阵。

 

在做平面手眼标定(非3D)时,都是利用该等式进行求解的。这也是我们通常熟悉的N点标定的数学原型。这也无论是四轴机器人还是六轴机器人(姿态固定)都同样适用。

 

听到矩阵两个字是不是很烦?没关系你看看这个两个等式就很容易明白了。

 

矩阵最开出现的目的在于简化线性方程的写法。矩阵的本质就是线性方程式,两者是一一对应关系。

 

为何图像与机器人的标定关系可以这样来表示呢?

 

我们知道,三维空间中的一个平面可以使用一个三元一次方程来表示,所以在平面标定中,假设图像坐标系为A平面,机器人坐标系为B平面。那么通过三元一次方程组,可求出一个平面分别与AB平面相交。可表示如下:

 

 

当使用N组数据时,即可使用点集A*矩阵R=点集B的方式进行表示了。这个矩阵R矩阵我们通常称为仿射变换矩阵。

 

 

 

 

仿射变换(Affine Transformation)是空间直角坐标系的变换,从一个二维坐标变换到另一个二维坐标,仿射变换是一个线性变换,他保持了图像的“平行性”和“平直性”,即图像中原来的直线和平行线,变换后仍然保持原来的直线和平行线,仿射变换比较常用的特殊变换有平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)。

 

已知给定两个对应点集AB,如何估计指定变换矩阵R的参数?

 

一对对应点可以列两个线性方程,多个对应点可以列出线性方程组,为了求解参数,需要的对应点数至少为自由度的一半,多个点时构成超定方程组,可以基于最小二乘或者SVD分解等方法进行求解,这里就暂时展开讨论。

 

 

 

 

 

 

关于SVD求解过程可参考下面连接:

 

https://blog.csdn.net/chenaiyanmie/article/details/80011244

 

在实验过程中遇到问题的或者存在疑问的

 

可以关注后联系我~

 

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

robotvision+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值