上下双相机定位贴合【全场景的视觉标定讲解和halcon源代码】(3)

E、图像补偿分析

现在可以回到正题,这个旋转到是怎样产生误差的。

我们只要绿色产品位置移动到黄色位置即可,流程如下:
第一步:移动产品产生的偏差(1,1):

在这里插入图片描述

红色旋转中心坐标就变成了(-2,-2),绿色产品中心(0,0)
第二步:旋转角度45°,一定记住旋转中心在红色圆圈

在这里插入图片描述

因为绿色产品中和旋转中心的距离2√2 ,绿色产品中心位置:(-2,2√2-2)
所以可以看出,经过平移和旋转并不能把产品移动到目标位置,发现还差一个偏差(-2,2√2-2)(就是旋转后坐标减去旋转前坐标),这样解决前面的疑惑仅直接旋转获得的角度不正确,会出现一个偏差。

这里点位和角度都很特殊,后面会讲通用的角度位置偏差怎么通过Halcon算子计算。

同时,一定要注意在我们计算这个偏差的时候,我们用到了旋转中心的坐标;但是非常遗憾的问题,我们在做九点校正的时候(根据标定模型A),标定的基准是标定特征的中心,而不是旋转中心,实际项目中我们夹具抓取标定块进行标定,根本做不到把旋转中心和标定特征的中心重合,所以我们就需要通过旋转标定找到旋转中心并消除它。

不容易啊,终于回归本部分的正题了,开始标定了。

此模式:相机固定,夹具旋转,忘记了的看看上面模型图片。

2)首先九点标定

首先夹具旋转位置选择,一定要注意因为夹具是可以旋转的,所以当我们夹住产品开始标定时,我们选取那个角度就行标定呢?

这个角度要选好,因为,这就是我们抓取拍照或者飞拍的时候也需要保持这个角度姿态,如果不是这个角度,需要重新经过一个计算转换回去才行,这里需要大神来帮忙补充一下;因为我现在遇到的项目暂时还没有要求这个,因为只要旋转好的姿态标定就可以满足。

基本要求:
A、角度肯定能到拍照位置能拍照,别选一个角度导致轴或者机器人最后根本就走不到拍照点
B、选择这个角度姿态,有利于我们在定点旋转时,能够旋转更大的角度,因为旋转标定找圆心,其实就是定点旋转我们的标定特征,然后拟合找圆心,很明显点分布的角度越大,精度越高(没有做过旋转的,不理解没关系,后面讲解,到时回来看看就知道怎么回事了);200°旋转效果已经非常好了,很多时候因为视野和机构问题,能到达90°就已经可以了;

九点标定过程:
当这个旋转角度确定后,九点标定就变成了了标准模型A,过程就不详细讲了,这时就得到了一个矩阵:HomMat2D。

我们前面提到过这个矩阵其实就是两个坐标系转换关系,这里是指下相机的图片上像素坐标和标定特征中心的物理坐标的关系,但是上面我们知道了,我们需要的是下相机的图片上像素坐标和旋转中心的物理坐标的关系,所以下面进行旋转标定。

【拓展阅读:下面都是废话,控制不住自己想写,删掉又可惜,拓展阅读】
说一个题外话,那如果遇到项目的旋转臂很长,视野不够大,旋转几度都没有,这种项目有吗?肯定有啊。如果你们谁遇到了,由于读到这里受启发,是不是回来帮忙点个赞呢。方法就是旋转后,标定特征离开视野,只需要平移到视野中,提取特征计算后要减去这个平移值在拟合(我没有这样做过,也不敢列出来,没有实际验证过,本文中讲知识和halcon算子肯定都是项目实战验证过的,但是这方法肯定可行,或者那个大神做过帮忙解答一下);
大神:ihalcon管理员sc6231565 解答来了:
标定模型C10图片(ihalcon管理员sc6231565提供的图片)
视野很小,旋转轴有很长情况:
在这里插入图片描述

还有一个小诀窍,如果精度不是太高,两个点就行,一个点记录,然后直接转180度,再记录,直接就是直径了,两个点计算物理点相加除以2就是圆心,具体你们自己看着办吧,是不是感觉处处是惊喜啊,又学到了一招。

网上搜索相机标定,一大堆像素坐标系、图像坐标系、相机坐标系、世界坐标系,还有手眼标定里面的各个坐标系都不要去考虑,九点标定就是相机得到的图像像素坐标与轴或者机器人的X、Y物理坐标的关系,就是两个平面坐标的转换,不要去复杂话你的系统考虑中间问题。

所以六轴机器人来做九点标定,第一步应该是建立与工作平面平行的平面,然后再这个平面移动做九点标定,至于这个机器人的这个新坐标系怎么建立就找搞机器人的就行;当然如果要求不高,忽略。

3)旋转标定

首先选择一个定点,记录下点物理坐标P1(x,y),然后如下图绕着红色的旋转中心旋转,黄色表示标定的特征中心,灰色表示相机的图像,并且可以从图像看出,左边的旋转角度可能旋转90-120之间,其他位置已经跑出图像外了,而右边的旋转半径短(标定特征中心和旋转中心距离,实际项目机械结构决定的),视野大,所以旋转大于200度,保证特征在视野内。
在这里插入图片描述

再次强调这个旋转的前提,在定点P1(x,y)不变的位置进行旋转,这个点是“初始角度”的标定特征中心的坐标,而不是旋转中心的坐标。
计算过程如下:
记录第一个点物理点P1(x,y),提取特征中心的像素为(Prx1,Pry1)
旋转一个小角度,
记录第二个点物理点P1(x,y),提取特征中心的像素为(Prx2,Pry2)
咦,怎么物理点都没变呢都是P1呢,肯定啊,X,Y轴都没有动,X/Y坐标肯定不变啊;既然不变为啥要提他呢,因为我知道很多人一转起来又懵逼了,又不清楚自己在哪里了;一定搞清楚什么在变动,什么不变。

旋转第N个点物理点P1(x,y),提取特征中心的像素为(PrxN,PryN)

具体多少个点,旋转16-20个点完全够了。

现在已知的条件:定点物理点P1(x,y),一系列像素坐标(PrxN,PryN),还是有我们前面九点标定矩阵HomMat2D(不要忘了)。
求取??
一团乱,求取啥呢?一定不要忘了我们的初衷,得到旋转中心坐标和图像的像素坐标的关系,本质上呢:就是一个矩阵:HomMat2D_C1(模型C矩阵)
求取:HomMat2D_C1

下面将是本文章中第一个核心知识,直接项目用的Halcon源码。

自动化行业真的有一道门槛,你回发现在网上很难找到一些基础的源码或者直接可用的资料,大多数是原理性或者思路性的东西,但是只要你进入一家公司,就很轻松获得一些自己非常难查询到的东西,知识的流动最终变成人的流动,从一公司带到另一个公司。如果什么知识都可以查到,公司不是完蛋了吗?别人都把好东西放到网上,让别人来抢我的饭碗吗?我在说我自己吗,哈哈?所以想要打破这道膜,只有进入他,找一个这样的公司就行了啊,但是本公司只收有这方面工作经验的人,真tmd尴尬?怎么办呢??当时联系网站管理报个培训班啊啊!!!所以一切存在都是合理的啊。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值