机器人与视觉标定

机器人与视觉标定

1.相机固定不动, 上往下看引导机器人移动
2.相机固定不动, 下往上看
3.相机固定在机器人上,离旋转中心较近
4.相机固定在机器人上,离旋转中心很远
5.特殊固定方式 – 分离轴
目录

1.相机固定不动, 上往下看引导机器人移动

1.相机固定不动, 上往下看引导机器人移动
1.相机非线性校正 使用标定板做非线性校正
2.相机与机器人做9点标定 可以使用机器人扎9个点,或者机器人抓住工件摆放9个位置,得到9个 机械坐标,相机也得到9个像素坐标,然后标定
3.计算机器人的旋转中心 机器人抓取工件分别旋转三个角度摆放到相机视野内,相机可以得到三 个坐标值,通过三个坐标值拟合圆获得圆心坐标即为旋转中心
4.相机通过公式计算得出最终的输出结果 (rx0, ry0)为旋转中心,( x, y)为被旋转的点,(x0,y0)旋转后的点 x0= cos (a) * (x-rx0)  – sin (a) * (y-ry0) +rx0 y0= cos (a) * (y-ry0)  +  sin (a) * (x-rx0) +ry0

2.相机固定不动, 下往上看

2.相机固定不动, 下往上看
1.相机非线性校正 使用机器人吸起标定板做非线性校正
2.相机与机器人做9点标定 可以使用实物标定,机器人抓住工件摆放9个位置,得到9个 机械坐标,相机也得到9个像素坐标,然后标定。
3.计算机器人的旋转中心
4.相机通过公式计算得出最终的输出结果

3.相机固定在机器人上,离旋转中心较近

3.相机固定在机器人上,离旋转中心较近
1.相机非线性校正
2.相机与机器人做9点标定 可以使用实物标定,机器人抓住工件摆放9个位置,得到9个 机械坐标,相机也得到9个像素坐标(相机每次需要回到固定位置 拍照),然后标定。
3.计算机器人的旋转中心 机器人抓取工件分别旋转三个角度摆放到相机视野内,相机 可以得到三个坐标值,通过三个坐标值拟合圆获得圆心坐标即为 旋转中心

3.相机固定在机器人上,离旋转中心较近
4.旋转中心赋值到“图案原点”

4.相机固定在机器人上,离旋转中心很远
1.相机非线性校正
2.相机与机器人做9点标定
3.计算机器人的旋转中心
4.相机通过公式计算得出最终的输出结果
注:由于旋转中心距离视野很远,通常拟合出来的旋转中心存在比较 大的误差,给定位精度造成影响

5.分离轴
分离轴的设计方式有很多, XY + θ, X+Y θ,   X θ+Y…., 具体状况具体分析, 目的是要找到旋转中心, 做好9点 标定。
1.相机非线性校正
2.相机与机器人做9点标定
3.计算机器人的旋转中心
4.相机通过公式计算得出最终的输出结果

不用旋转中心方法

旋转中心标定说明
x
y
z
Base Frame
红色框为CCD FOV,黄色为工件 五星为Mark点 训练的标准位置
工件发生平移
工件发生平移和旋转
旋转中心方法用于所有机器人与视觉配合场景
方法:计算工件实际发生的偏移量和旋转量,结合机器人的旋转中心进行二次补偿后,把补偿量 发送给机器人,然后机器人把补偿量补偿后进行抓取或放置即可;

点坐标旋转方法
计算某个点绕另外一点旋转一定角度后的坐 标,如图:A(x,y)绕B(rx0,ry0)旋转 a度后的位置为C(x0,y0),则有如下关系 式:
x0= cos (a) * (x-rx0)  – sin (a) * (y-ry0) +rx0 y0= cos (a) * (y-ry0)  +  sin (a) * (x-rx0) +ry0
下面计算所有的旋转和偏移量均是基于上面的公式

• 工件发生平移
R
Cx,Cy
MDy
MDx
• {Cx,Cy,}旋转中心坐标;{Mx,My,}工件Mark坐标 • {MDx,MDy},Mark偏移量; • {RDx,Rdy},发送给机器人的补偿量
• 工件发生平移时 • 在拍照位置进行拍照后,与开始训练标准位置 时,Mark点成像会产生偏移; • Mark偏移量MDx = RDx ; MDy = RDy;如左上图 即相机计算出的Mark点偏移量,可以直接补偿 给机器人,然后进行抓取即可
旋转中心

• 工件发生平移
R Cx,Cy R Cx,Cy
R
NCx,NCy
MDy
MDx
CDy
CDx
NCx,NCy
• 工件发生平移时 • 在拍照位置进行拍照后,与开始训练标准位置 时,Mark点成像会产生偏移; • Mark偏移量MDx = CDx ; MDy = CDy;如左上图 即相机计算出的Mark点偏移量,可以直接补偿 给机器人,然后进行抓取即可 • 作为测试,可以机器人在拍照位置进行补偿后, Z轴不变然后再拍照,会获得和拍照位置一样 的图像;
旋转中心
补偿后,旋转中心位置

旋转中心标定说明
• 工件发生平移和旋转
R
Cx,Cy
R
Cx,Cy
MDy MDx
RDy
RDx
CDr
• 工件发生平移和旋转时 • 在拍照位置进行拍照后,与开始训练 标准位置时,Mark点成像会产生偏移; • Mark偏移量MDx RDx ; MDy RDy;如 左上图即相机计算出的Mark点偏移量, 不能直接补偿给机器人,需要计算出 RDx和RDy,和RDr = MDr 然后补偿给机 器人,机器人补偿后才能进行抓取
旋转中心

• 工件发生平移和旋转
R
Cx,Cy
R
Cx,Cy
R
NCx,NCy
MDy MDx
CDy
CDx
NCx,NCy
MDr
CDr
• 工件发生平移和旋转时 • 在拍照位置进行拍照后,与开始训练标准位置时, Mark点成像会产生偏移; • Mark偏移量MDx CDx ; Mdy CDy;如左上图即相机计 算出的Mark点偏移量,不能直接补偿给机器人,需要 计算出CDx和Cdy,和CDr = MDr 然后补偿给机器人,机器 人补偿后才能进行抓取 • 作为测试,可以机器人在拍照位置进行补偿后,Z轴不 变然后再拍照,会获得和拍照位置一样的图像;
TCx,TCy
旋转中心
补偿后旋转中心
R

旋转中心标定说明—计算补偿 • 计算过程,旋转角度a
X0,Y0
X1,Y1
Cx0,Cy0
Cx1,Cy1
X0,Y0
X1,Y1
Cx0,Cy0
TCx1,TCy1
Cx1,Cy1
a
a
这种补偿方式是机器人先进行平移和旋转,使得机器人的姿态根据产品的当 前位置做调整,保证取料时相对关系一致,这样机器人拿到物料的姿态都是 一致的。后续做什么作业都可以。 图中黑色表示模板位置,红色表示实时物料位置,Cdx和cdy表示为了将机器 人姿态调整到与训练时一致,需要的移动量;

旋转中心标定—计算补偿 • 计算CDx = Cx1 – Cx0 和 CDy = Cy1 – Cy0
CDx= cos (a) * (Cx0-X0) - sin (a) * (Cy0-Y0) + X1 – Cx0
CDy= cos (a) * (Cy0-Y0) +  sin (a) * (Cx0-X0) + Y1 – Cy0 从公式中可以看出,补给机器人的补偿量可以由:
旋转中心坐标(Cx0,Cy0)
标准的工件(Mark)坐标点(X0,Y0)
工件移动后新的(Mark)坐标点(X1,Y1)
工件(Mark)旋转角度a
所以利用旋转中心方法计算给机器人的补偿量时,首先要计算机器人的旋转 中心坐标,但是在很多场景下计算旋转中心坐标时,要么出了视野,要么旋 转的角度范围太小等,拟合的旋转中心都存在误差,导致补偿精度不够
一定要计算旋转中心坐标吗?其实不需要

旋转中心标定—计算补偿 • CDx Cdy计算过程,旋转角度a
X0,Y0
X1,Y1
Cx0,Cy0
TCx1,TCy1 Cx1,Cy1
CDx= cos (a) * (Cx0-X0) - sin (a) * (Cy0-Y0) + X1 – Cx0 = (cos (a) -1) * (Cx0-X0)  - sin (a) * (Cy0-Y0)  + MDx = (cos (a) -1) * StDx- sin (a) * StDy+ MDx
CDy= cos (a) * (Cy0-Y0) +  sin (a) * (Cx0-X0) + Y1 – Cy0 = (cos (a) -1) * (Cy0-Y0)  + sin (a) * (Cx0-X0)  + Mdy = (cos (a) -1) * StDy + sin (a) * StDx + Mdy
从公式中可以看出StDx = Cx0-X0,StDy = Cy0-Y0是个常量,MDx和Mdy是每次拍照是工件 (Mark)的坐标与标准位置工件(Mark)的差值;
StDx与StDy怎么计算呢?蓝色的为一个二元一次方程,我们需要旋转一个角度即可计算出;
如果计算出StDx和StDy则在运行时,直接带入上述公式,可以很快计算出CDx,Cdy这样给出 Robot的偏移量了,而不需要计算旋转中心的确切坐标了;
下面介绍如何求解StDx和StDy

旋转中心标定—计算补偿 • StDx,StDy计算过程,首先Robot在拍照点旋转一定角度a(一定是Robot给出)
X0,Y0
X1,Y1
Cx0,Cy0
TCx1,TCy1 Cx1,Cy1
CDx= cos (a) * (Cx0-X0) - sin (a) * (Cy0-Y0) + X1 – Cx0 = (cos (a) -1) * (Cx0-X0)  - sin (a) * (Cy0-Y0)  + MDx = (cos (a) -1) * StDx- sin (a) * StDy+ MDx
CDy= cos (a) * (Cy0-Y0) +  sin (a) * (Cx0-X0) + Y1 – Cy0 = (cos (a) -1) * (Cy0-Y0)  + sin (a) * (Cx0-X0)  + Mdy = (cos (a) -1) * StDy + sin (a) * StDx + Mdy
下面介绍如何求解StDx和StDy,旋转一定角度a后MDx和Mdy则为确定值,cos(a)和sin(a)为确 定值
0= (cos (a) -1) * StDx- sin (a) * StDy+ MDx
0= (cos (a) -1) * StDy + sin (a) * StDx + Mdy
StDx = -0.5*(Mdx*(cos(a)-1)+Mdy*sin(a)) / (1-cos(a))
StDy =  0.5*(Mdx*sin(a)-Mdy*(cos(a)-1))/(1-cos(a))
a是旋转标准的角度
Mdx=X1-X0,即旋转后Mark坐标与训练模板 的mark坐标

特别注意:
这里计算到的Cdx和Cdy一定要补偿到机器人的取料位置里,不能补偿到 放料位置。旋转中心方法计算到的偏差可以直接补偿到放料位置。
原因:
X
Y
dx
dy 旋转中心法的计算:
(X,Y)是定位到的产品位置 (GX,GY)是标准模板位置 (X’,Y’)是补偿了角度后的新位置 X’ = cos θ * (X-Xo) – sin θ *(Y-Yo) + Xo; Y’ = cos θ* (Y-Yo)  + sin θ* (X-Xo) + Yo;
Offset X=X’-GX Offset Y=Y’-GY Offset Theta= θ
(X’, Y’)
(Xo ,Yo)
(X, Y)
(GX, GY)

STD方法的计算:
CDx= cos (a) * (Cx0-X0) - sin (a) * (Cy0-Y0) + X1 – Cx0
CDy= cos (a) * (Cy0-Y0) +  sin (a) * (Cx0-X0) + Y1 – Cy0
X’= cos (a) * (X0-Cx0) - sin (a) * (Y0-Cy0) + Cx0
Y’= cos (a) * (Y0-Cy0) - sin (a) * (X0-Cx0) + Cy0
CDx=X1-X’
Cdy=Y1-Y’
这里是机器人在取料之前,先把自己的角度补正到与 物料当前角度一致,到(X’,Y’)位置处,然后移动 CDx,Cdy,与物料位置也重合,然后去取料。
这样就保证了每次取料后,物料相对于机器人的位置 一致,因此直接往目标位置放就可以。
这种方式由于是取物料的时候调整位置,因此适用于 相机固定在机械手上、相机固定安装从上往下看的方 式。如果相机固定安装从下往上看,由于机器人这时 候已经取完料了,就不适合使用了。
X
Y
CDx
CDy
(X’, Y’)
(Cxo ,Cyo)
(X1, Y1)
(X0, Y0)
a

程序说明
特征点的像素坐标 机器人坐标标定完成矩阵

利用上面公式计算STDX,STDy

训练标准位置的像素坐标,需要手动输入
实际运行位置的像素坐标和机器人坐标

计算补偿量

求旋转中心方法

旋转中心
FOV
• 当相机FOV与旋转中心很近,可以用旋转3 点以上拟合一个圆求圆心

旋转中心
FOV
• 当相机FOV与旋转中心很远,使用旋转3或 多个点求圆心,准确性会很差。
怎么办?
旋转中心的计算偏差

旋转中心
• (X0,Y0)为旋转中心, (X1,Y1)及(X2,Y2)为 工件在视野中旋转角度a的前后坐标, (Xt,Yt)为两点连线的延长。 • d = √(X2-X1)^2 + (Y2-Y1)^2 • 角度a • R = d/2/sin(a/2) R/d = (Xt-X1)/(X2-X1) R/d = (Yt-Y1)/(Y2-Y1) Xt = (1-R/d)*X1 + (R/d)*X2 Yt = (1-R/d)*Y1 + (R/d)*Y2
a
X1,Y1
X2,Y2
Xt,Yt
X0,Y0
X0= cos (90-a/2) * (Xt-X1)  – sin (90-a/2) * (Yt-Y1) +X1 Y0= cos (90-a/2) * (Yt-Y1)  +  sin (90-a/2) * (Xt-X1) +Y1 角度:X+  Y+ 为正,反之为负

这段程序用于计算旋转中心

训练标准位置的像素坐标,需要手动输入
实际运行位置的像素坐标和机器人坐标

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


最终的补偿

  • 0
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
标定找旋转中心_机器人视觉标定理论详解.pdf” 是一本关于机器人视觉标定理论的详细解析的文件。标定是指调整机器人的参数或者相机的参数,以使其能够准确地进行测量和定位。而旋转中心指的是机器人或者相机的旋转轴心,是确定其旋转运动的中心点。 在这本文件中,首先会介绍机器人视觉标定的基本概念和原理。机器人标定通常涉及到机械结构的参数标定,例如机械臂的关节角度和长度等;视觉标定则涉及到相机的内部参数(如焦距、畸变等)和外部参数(如相机的位置和姿态等)的确定。 接下来,文件会详细讲解如何通过不同的方法找到机器人或者相机的旋转中心。其中,机器人旋转中心的确定可以通过标定机器人关节角度和位姿的方法来实现;相机旋转中心的确定则可以通过棋盘格标定、激光投影标定等方法来实现。此外,文件还会介绍如何使用不同的检测算法来准确地找到旋转中心。 此外,文件还会深入探讨机器人视觉标定的一些常见问题和挑战,以及如何解决这些问题。例如,机器人标定中可能会涉及到机械臂的刚性变形和误差积累问题,视觉标定中可能会涉及到图像畸变和相机姿态估计误差等。 总而言之,“标定找旋转中心_机器人视觉标定理论详解.pdf”这本文件会通过详细的理论解析和实例说明,帮助读者深入理解机器人视觉标定的原理和方法,以及如何准确地找到旋转中心。这对于提高机器人和相机的测量和定位精度具有重要的应用价值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宋小童

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

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

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

打赏作者

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

抵扣说明:

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

余额充值