新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 機器計算機視覺的應用-打孔機影像定位系統設計

        機器計算機視覺的應用-打孔機影像定位系統設計

        ——
        作者:凌華科技自動化產品事業部 連錦湮 時間:2006-11-24 來源:今日電子 收藏

        前言

        覺的應用大致上可以分成定位、量測、識別、缺陷檢測四大類,其中以定位的應用最為廣泛。機器視覺系統可以用來檢視主機板上的電子組件,也可以用來控制機械手臂,在機械手臂上加裝CCD,利用影像辨識的定位,帶動機械手臂來做病毒研究、藥物混合等一些高危險性的醫療研究。除了精準之外,對人類的生命也比較有安全保障。

        影像定位后的坐標轉換

        市面上影像比對的函數庫(Library)很多,使用者可以自行選用合適的函數庫。以下所提的系統采用Euresys公司開發的eVision EasyMatch,這是一種基于灰度相關性的圖像匹配函數庫,速度非常快,而且能夠達到次像素(sub-pixel)精度的匹配結果。對于旋轉、比率變化(縮/放)和平移等,都能精確找到模板圖像(Golden Image)的位置。故本文僅對影像定位后的二維坐標產生的“位移”與“旋轉”做探討。

        ● 坐標位移
        公式:X2 = X1 + ΔX
        Y2 = Y1 + ΔY

        圖1 坐標位移示意圖

         

        圖1是坐標位移的示意圖。

        ● 坐標旋轉
        (1)將(X1,Y1)轉換成極坐標→ (X1,Y1) = (R11)
        其中,R1 = √X12 + Y12
        θ1 = arctan( Y1 / X1 ),即反正切函數
        (2)θ2 = θ1 + θ,其中,θ= 表示旋轉角度
        得出 X2 = Cos (θ2) * R1
        = Cos (arctan(Y1/X1)+θ) *
        √X12 + Y12
        Y2 = Sin(θ2) * R1
        = Sin(arctan(Y1/X1)+θ) *      √X12 + Y12

        圖2 坐標旋轉的示意圖

        圖2是坐標旋轉的示意圖。

        ● 坐標位移+旋轉
        遇到同時發生坐標位移和旋轉時,先計算位移,再套用旋轉的公式,即可算出最后的結果。
        下面介紹如何設計出結合“機械運動”與“覺”的自動化定位系統。

        基本架構

        ● GEME-3000主控制器:含HSL控制卡,安裝Windows XP操作系統
        ● 3-Axis定位平臺:三菱伺服馬達+滾珠螺桿
        ● 運動控制器:HSL-4XMO控制模塊
        覺組件:使用IEEE 1394 CCD采集影像,利用Euresys eVision的EasyMatch進行影像比對(Pattern Match),作定位偏移的補正計算。
        完整的實際系統如圖3所示。

        圖3 系統架構實機圖

        系統校正

        ● Mitsubishi驅動器調校:10 000 pulse/roll,即運動控制卡送出10 000個脈波,馬達會轉一圈。
        ● 滾珠螺桿的螺距vs. Pulse/Roll:如,螺距=10mm/roll,10 000 pulse/roll意味著1μm/pulse,即每發出一個脈沖,螺桿會前進1μm。
        ● F.O.V.(Field of View)的選定:F.O.V.要大于定位點的大小,太小則導致可接受的“初步定位”誤差變小;太大則導致因定位點影像太小,影像定位誤差大。
        ● CCD工作距離的選定:工作距離要大于打孔頂針,以免對焦時打孔頂針撞到工件。當F.O.V.及工作距離確認后,即求出鏡頭和延伸環。

        教導作業

        ● 啟動系統3軸回到初始位置,待3軸回定位后,再由人工將工件置于3軸之定位平臺上并作“初步定位”;
        ● 手動控制Z軸緩慢下降,使其接近定位平臺上方(約0.5~1.0mm);
        ● 手動控制X/Y軸,使打孔頂針剛好在工件第一個孔位上方;再將Z軸緩慢下降,使其插入第一個孔位內。如定位不準,可以手動移動工件,使其定位更準確。
        ● 精確定位后,將Z軸上升至CCD的實時影像可看到完整“定位點”后,執行圖4所示的流程圖。

        圖4 圖像處理軟流程圖

        自動定位

        ● 由人工將工件置于3軸定位平臺上,作“初步定位”后并啟動本系統;
        ● 系統會驅動3軸定位平臺將CCD移至定位點上方(2個不同位置),取像并利用已“教導”的標準影像做“影像比對”作業;
        ● 計算出“初步定位”的偏移量(Shift X/Y)及旋轉角度 (Rotation Angle);
        tx = GoldeXY[CCD_Find][1] - m_Find.GetCenterX();
        ty = GoldeXY[CCD_Find][0] - m_Find.GetCenterY();
        if (CCD_Find==0) {  //第一次定位
           shiftx = ZeroX - tx*Calibration;
           shifty = CCD_Y - ty*Calibration;
        } else {  //第二次定位
           dx = CCD_Locate[1][0] - tx*Calibration;
           dy = CCD_Y - ty*Calibration;
           angle = atan2( dy - shifty, shiftx-dx);
           CalNewLocate(angle, shiftx, shifty);
        }
        ● 通過“極坐標轉換”,重新計算工件上所有孔位的新坐標(Point Table)。
        void CalNewLocate(F64 angle, F64 shiftx, F64 shifty)
        {
           int i;
           F64 P[TOTAL_POINT*2];
           F64 t;

           for (i=0; i<TOTAL_POINT; i++) { //極坐標轉換
              P[i*2] = sqrt( OrgLocate[i*2] * OrgLocate[i*2]
                    + OrgLocate[i*2+1] * OrgLocate[i*2+1]);
              P[i*2+1] = atan2( OrgLocate[i*2],
                       OrgLocate[i*2+1])+ angle;
           }
           for (i=0; i<TOTAL_POINT; i++) {
              t = P[i*2]*sin(P[i*2+1]);
              NewLocate[i*2]   = (shiftx + t)*SCALE_X;
              t = P[i*2]*cos(P[i*2+1]);
              NewLocate[i*2+1] = (shifty + t)*SCALE_Y;
           }
        }

        結束語

        機器視覺系統不但大幅的提升了工業的生產力,而且增加了使用者的能力。使用機器視覺系統可以保護人眼的健康和提高檢測精度,而機器視覺系統能24小時不停頓地工作,且能在高速下執行檢查,而檢視的準確度也能控制在較穩定的程度之內。
        此外,在危險工作環境中,在需要快速處理的軍事武器操控,實時、大量的生產線上,在量測、定位、對象判別等高精確性工作中,機器視覺系統也都有很好的應用前景。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 苍山县| 永嘉县| 涪陵区| 毕节市| 天水市| 焉耆| 甘德县| 临朐县| 中卫市| 渭南市| 宜良县| 武冈市| 江达县| 墨江| 奉化市| 萍乡市| 远安县| 泰安市| 高青县| 鄱阳县| 太湖县| 武清区| 波密县| 遂溪县| 竹山县| 双城市| 革吉县| 金门县| 津南区| 定安县| 吕梁市| 江安县| 交城县| 五指山市| 林甸县| 开封县| 施秉县| 明水县| 神农架林区| 东城区| 满洲里市|