机器人与视觉标定理论详解

相机固定不动, 上往下看引导机器人移动
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
相机固定不动, 下往上看
1.相机非线性校正 使用机器人吸起标定板做非线性校正 2.相机与机器人做9点标定 可以使用实物标定,机器人抓住工件摆放9个位置,得到9个机械坐标,相机也得到9个像素坐标,然后标定。 参考上面的上往下看。
相机固定在机器人上,离旋转中心较近
1、相机非线性矫正 2、相机与机器人做9点标定 可以使用实物标定,机器人抓住工件摆放9个位置,得到9个机械坐标,相机也得到9个像素坐标,(机器人每次需要回到固定位置拍照),然后标定 3、计算机器人的旋转中心 机器人抓取工件分别旋转三个角度摆放到相机视野内,相机可以得到三个坐标值,通过三个坐标值拟合圆获得圆心坐标即为旋转中心
4、相机通过公式计算得出最终输出结果    
相机固定在机器人上,离旋转中心很远
1、相机非线性矫正 2、相机与机器人做9点标定 3、计算机器人的旋转中心 4、相机通过公式计算得出最终输出结果 注:由于选择中心距离视野很远,通常拟合出来的旋转中心存在比较大的误差,给定位精度造成影响。
分离轴
分离轴的设计方式有很多,xy + θ, x+y θ, x θ+y….,具体状况具体分析,目的是要找到旋转中心,做好9点标定。 1.相机非线性校正 2.相机与机器人做9点标定 3.计算机器人的旋转中心 4.相机通过公式计算得出最终的输出结果
旋转中心标定说明
旋转中心方法用于所有机器人与视觉配合场景 方法:计算工件实际发生的偏移量和旋转量,结合机器人的旋转中心进行二次补偿后,把补偿量 发送给机器人,然后机器人把补偿量补偿后进行抓取或放置即可;
点坐标旋转方法
计算某个点绕另外一点旋转一定角度后的坐标,如图:
机器人与视觉标定理论详解 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
下面计算所有的旋转和偏移量均是基于上面的公式
旋转中心标定说明
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,与物料位置也重合,然后去取料。这样就保证了每次取料后,物料相对于机器人的位置 一致,因此直接往目标位置放就可以。这种方式由于是取物料的时候调整位置,因此适用于 相机固定在机械手上、相机固定安装从上往下看的方式。如果相机固定安装从下往上看,由于机器人这时候已经取完料了,就不适合使用了。
特别注意
这里计算到的cdx和cdy一定要补偿到机器人的取料位置里,不能补偿到 放料位置。旋转中心方法计算到的偏差可以直接补偿到放料位置。原因如下:
旋转中心法的计算:
(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= θ
求旋转中心方法
当相机fov与旋转中心很近,可以用旋转3点以上拟合一个圆求圆心
当相机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 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+ 为正,反之为负
旋转中心标定—计算补偿
cdx cdy计算过程,旋转角度a
机器人与视觉标定理论详解 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给出)
机器人与视觉标定理论详解 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坐标


松下NPM贴片机使用DGS制作bad mark教程
Holtek针对红外线测温应用推出了最新款BH67F2752红外线测温MCU
关于PCB中的Layout九大注意事项细节问题
关于智能温控金奖系统Salus的介绍和分析
燃料电池在军事上的应用
机器人与视觉标定理论详解
河道水位实时监测系统的原理、功能及特点
电瓶修复技术之电池技术的基本知识介绍
绘图的API函数
什么才是真正的元宇宙?
美高森美联手Sibridge推出了一系列瞄准FPGA器件的高速IP内核
TD-SCDMA无线网络的覆盖和容量测试
魔石链APP区块链模式系统软件开发
窄带物联网领域将会只有NB-IoT和LoRa的竞争
周志华:中国人工智能发展具有局部优势,发展迅猛
ADI 公司为宽带通信设备开发提供具有突破性集成度的射频 I
新能源电池产业链及投资机会简析-磷酸亚铁锂
市场开始胶着,DRAM厂商要用降价刺激市场需求
最新MLCommons结果公布 英特尔展现强大AI推理性能
虹科分享|PCAN Router系列—最简单的产品功能演示