相機(jī)固定不動(dòng), 上往下看引導(dǎo)機(jī)器人移動(dòng)機(jī)器人與視覺標(biāo)定理論詳解 相機(jī)固定不動(dòng), 上往下看引導(dǎo)機(jī)器人移動(dòng)1.相機(jī)非線性校正 使用標(biāo)定板做非線性校正 2.相機(jī)與機(jī)器人做9點(diǎn)標(biāo)定 可以使用機(jī)器人扎9個(gè)點(diǎn),或者機(jī)器人抓住工件擺放9個(gè)位置,得到9個(gè)機(jī)械坐標(biāo),相機(jī)也得到9個(gè)像素坐標(biāo),然后標(biāo)定 3.計(jì)算機(jī)器人的旋轉(zhuǎn)中心 機(jī)器人抓取工件分別旋轉(zhuǎn)三個(gè)角度擺放到相機(jī)視野內(nèi),相機(jī)可以得到三個(gè)坐標(biāo)值,通過三個(gè)坐標(biāo)值擬合圓獲得圓心坐標(biāo)即為旋轉(zhuǎn)中心 4.相機(jī)通過公式計(jì)算得出最終的輸出結(jié)果 (rx0, ry0)為旋轉(zhuǎn)中心,( x, y)為被旋轉(zhuǎn)的點(diǎn),(x0,y0)旋轉(zhuǎn)后的點(diǎn) x0= cos (a) * (x-rx0) – sin (a) * (y-ry0) +rx0 y0= cos (a) * (y-ry0) + sin (a) * (x-rx0) +ry0 相機(jī)固定不動(dòng), 下往上看1.相機(jī)非線性校正 使用機(jī)器人吸起標(biāo)定板做非線性校正 2.相機(jī)與機(jī)器人做9點(diǎn)標(biāo)定 可以使用實(shí)物標(biāo)定,機(jī)器人抓住工件擺放9個(gè)位置,得到9個(gè)機(jī)械坐標(biāo),相機(jī)也得到9個(gè)像素坐標(biāo),然后標(biāo)定。 參考上面的上往下看。 相機(jī)固定在機(jī)器人上,離旋轉(zhuǎn)中心較近1、相機(jī)非線性矯正 2、相機(jī)與機(jī)器人做9點(diǎn)標(biāo)定 可以使用實(shí)物標(biāo)定,機(jī)器人抓住工件擺放9個(gè)位置,得到9個(gè)機(jī)械坐標(biāo),相機(jī)也得到9個(gè)像素坐標(biāo),(機(jī)器人每次需要回到固定位置拍照),然后標(biāo)定 3、計(jì)算機(jī)器人的旋轉(zhuǎn)中心 機(jī)器人抓取工件分別旋轉(zhuǎn)三個(gè)角度擺放到相機(jī)視野內(nèi),相機(jī)可以得到三個(gè)坐標(biāo)值,通過三個(gè)坐標(biāo)值擬合圓獲得圓心坐標(biāo)即為旋轉(zhuǎn)中心 4、相機(jī)通過公式計(jì)算得出最終輸出結(jié)果 相機(jī)固定在機(jī)器人上,離旋轉(zhuǎn)中心很遠(yuǎn)1、相機(jī)非線性矯正 2、相機(jī)與機(jī)器人做9點(diǎn)標(biāo)定 3、計(jì)算機(jī)器人的旋轉(zhuǎn)中心 4、相機(jī)通過公式計(jì)算得出最終輸出結(jié)果 注:由于選擇中心距離視野很遠(yuǎn),通常擬合出來的旋轉(zhuǎn)中心存在比較大的誤差,給定位精度造成影響。 分離軸分離軸的設(shè)計(jì)方式有很多,XY + θ, X+Y θ, X θ+Y….,具體狀況具體分析,目的是要找到旋轉(zhuǎn)中心,做好9點(diǎn)標(biāo)定。 1.相機(jī)非線性校正 2.相機(jī)與機(jī)器人做9點(diǎn)標(biāo)定 3.計(jì)算機(jī)器人的旋轉(zhuǎn)中心 4.相機(jī)通過公式計(jì)算得出最終的輸出結(jié)果 旋轉(zhuǎn)中心標(biāo)定說明旋轉(zhuǎn)中心方法用于所有機(jī)器人與視覺配合場景 方法:計(jì)算工件實(shí)際發(fā)生的偏移量和旋轉(zhuǎn)量,結(jié)合機(jī)器人的旋轉(zhuǎn)中心進(jìn)行二次補(bǔ)償后,把補(bǔ)償量 發(fā)送給機(jī)器人,然后機(jī)器人把補(bǔ)償量補(bǔ)償后進(jìn)行抓取或放置即可; 點(diǎn)坐標(biāo)旋轉(zhuǎn)方法計(jì)算某個(gè)點(diǎn)繞另外一點(diǎn)旋轉(zhuǎn)一定角度后的坐標(biāo),如圖: 機(jī)器人與視覺標(biāo)定理論詳解 A(x,y)繞B(rx0,ry0)旋轉(zhuǎn)a度后的位置為C(x0,y0),則有如下關(guān)系式: x0= cos (a) * (x-rx0) – sin (a) * (y-ry0) +rx0 y0= cos (a) * (y-ry0) + sin (a) * (x-rx0) +ry0 下面計(jì)算所有的旋轉(zhuǎn)和偏移量均是基于上面的公式旋轉(zhuǎn)中心標(biāo)定說明STD方法的計(jì)算: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’ 這里是機(jī)器人在取料之前,先把自己的角度補(bǔ)正到與 物料當(dāng)前角度一致,到(X’,Y’)位置處,然后移動(dòng) CDx,Cdy,與物料位置也重合,然后去取料。這樣就保證了每次取料后,物料相對(duì)于機(jī)器人的位置 一致,因此直接往目標(biāo)位置放就可以。這種方式由于是取物料的時(shí)候調(diào)整位置,因此適用于 相機(jī)固定在機(jī)械手上、相機(jī)固定安裝從上往下看的方式。如果相機(jī)固定安裝從下往上看,由于機(jī)器人這時(shí)候已經(jīng)取完料了,就不適合使用了。 特別注意這里計(jì)算到的Cdx和Cdy一定要補(bǔ)償?shù)綑C(jī)器人的取料位置里,不能補(bǔ)償?shù)?放料位置。旋轉(zhuǎn)中心方法計(jì)算到的偏差可以直接補(bǔ)償?shù)椒帕衔恢谩T蛉缦拢?/span> 旋轉(zhuǎn)中心法的計(jì)算:(X,Y)是定位到的產(chǎn)品位置,(GX,GY)是標(biāo)準(zhǔn)模板位置,(X’,Y’)是補(bǔ)償了角度后的新位置,則: 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= θ 求旋轉(zhuǎn)中心方法當(dāng)相機(jī)FOV與旋轉(zhuǎn)中心很近,可以用旋轉(zhuǎn)3點(diǎn)以上擬合一個(gè)圓求圓心 ![]() 當(dāng)相機(jī)FOV與旋轉(zhuǎn)中心很遠(yuǎn),使用旋轉(zhuǎn)3或多個(gè)點(diǎn)求圓心,準(zhǔn)確性會(huì)很差。 ![]() 解法![]() (X0,Y0)為旋轉(zhuǎn)中心, (X1,Y1)及(X2,Y2)為工件在視野中旋轉(zhuǎn)角度a的前后坐標(biāo),(Xt,Yt)為兩點(diǎn)連線的延長。 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+ 為正,反之為負(fù) 旋轉(zhuǎn)中心標(biāo)定—計(jì)算補(bǔ)償CDx Cdy計(jì)算過程,旋轉(zhuǎn)角度a![]() 機(jī)器人與視覺標(biāo)定理論詳解 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是個(gè)常量,MDx和Mdy是每次拍照是工件(Mark)的坐標(biāo)與標(biāo)準(zhǔn)位置工件(Mark)的差值; StDx與StDy怎么計(jì)算呢?藍(lán)色的為一個(gè)二元一次方程,我們需要旋轉(zhuǎn)一個(gè)角度即可計(jì)算出; 如果計(jì)算出StDx和StDy則在運(yùn)行時(shí),直接帶入上述公式,可以很快計(jì)算出CDx,Cdy這樣給出Robot的偏移量了,而不需要計(jì)算旋轉(zhuǎn)中心的確切坐標(biāo)了; 如何求解StDx和StDyStDx,StDy計(jì)算過程,首先Robot在拍照點(diǎn)旋轉(zhuǎn)一定角度a(一定是Robot給出) ![]() 機(jī)器人與視覺標(biāo)定理論詳解 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,旋轉(zhuǎn)一定角度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是旋轉(zhuǎn)標(biāo)準(zhǔn)的角度 Mdx=X1-X0,即旋轉(zhuǎn)后Mark坐標(biāo)與訓(xùn)練模板的mark坐標(biāo) |
|