呂開旺,王明睿,劉振國,郭 瑞,田 禛
(北京機械工業自動化研究所,北京 100120)
隨著當前世界形勢的不斷復雜變化,以及我國國民經濟的飛速健康發展,現代社會對工業生產的自主性和高效性的要求越來越高,工業正在加快改變其原有的工作方式,期望在市場中獲得更大的競爭力。工業生產方式更加靈活,自動化程度越來越高,以減少生產時間,提高生產效率,減少損耗和浪費,以更低的成本提高生產質量。
機器視覺已經是工業自動化的一個既定組成部分,它是一項成熟的技術,正被用于各種工業生產過程中。例如,機器視覺在過程控制中,可以自動檢查零件、子組件或最終產品,以發現制造缺陷[1]。機器視覺有助于以相對簡單的形式控制生產,避免熟練的操作人員花時間“觀察”機器工作。此外,自動檢測過程也比人工處理更快,效率更高。
本文利用視覺軟件中集成的圖像處理算法,通過視覺相機獲取AGV上的Mark點圖像,進行圖像預處理、目標檢測及識別,偏移誤差計算等步驟,對AGV到位偏差進行自動處理,結合機器人程序進行二次運算,獲得偏移坐標模型,從而引導機器人的抓取操作,快速精準的取放物料。
毫無疑問,視覺系統的關鍵部分是它的處理算法,算法開發構成了視覺系統工程的核心任務。但硬件的選擇和集成也很重要,如相機傳感器、鏡頭、照明設備、通信基礎設施和處理硬件,尤其是想要建立一個高度受控的成像環境。
1)相機:分辨率為4024×3036,幀率為9.6fps。
2)視覺控制器:采用某公司的視覺控制器,該款控制器性能比較穩定、處理圖像數據反應快速。
3)機器人:作業負載為7kg,臂展長920mm,反復定位精度為±0.02mm,作業靈活快速,可滿足多種作業場景。
4)AGV:采用激光導航方式,定位精度為±5mm,±0.5°。
5)通信設施:采用無線AP,通過以太網連接,建立TCP/IP網絡協議進行信息交互。
視覺引導機器人定位系統硬件構成如圖1所示。

圖1 視覺引導機器人定位系統硬件構成
在本文所述系統中,相機固定于機器人手臂六軸末端,與六軸同軸。AGV到達工位時發送到位信號,觸發機器人程序,驅動機器人從工作臺拿取物料,機器人到達拍照點時觸發相機拍照,相機將掃描到的信息傳遞給控制器,通過視覺軟件進行高精度特征匹配,標定轉換,變量計算后,將坐標偏差及角度傳給機器人,在機器人程序內進行二次運算。機器人建立坐標系變量,用相機傳遞的數據進行賦值,與工件坐標系變量進行叉乘運算,求得偏移后的坐標系,進一步求得工件的準確位置,從而驅動機器人實現取放料操作。

圖2 視覺定位系統流程圖
用于抓取物體的整個視覺引導機器人定位系統應由三個基本模塊組成:圖像處理應用程序,坐標系轉換算法以及通信接口[2]。
視覺定位系統還有一個重要的組成是軟件,軟件驅動圖像采集、處理和分析功能,并負責機器視覺應用的整體性能[3]。
本文所述系統采用某公司的視覺軟件,具有良好處理能力和存儲能力。用于檢索物體特征,可以滿足機器視覺系統需要的優秀圖像質量,作為內置軟件的嵌入式視覺系統,集成、實施和持續管理都相對簡單。
1)相機成像數學模型
當相機測量需要以真實世界坐標表示時(例如,用于機器人導航或高精度測量),系統校準的質量至關重要。
為了確定AGV上mark點的空間坐標,與在相機中成像點之間的對應關系,需先建立相機成像的數學模型,模型參數就是相機參數。相機參數矩陣分為內參數矩陣和外參數矩陣,內參數矩陣描述二維平面變換,對應相機坐標系與圖片像素間的轉換;外參數矩陣描述三維空間旋轉和平移,對應世界坐標系與相機坐標系間的變換[4]。
(1)內參數矩陣
理想針孔攝像機鏡頭系統如圖3所示。

圖3 視覺通道的常見步驟

圖4 針孔攝像機鏡頭系統
穿過相機中心OC并垂直于傳感器平面的線稱為相機主軸,即ZC。主軸與傳感器平面相交的點稱為主點,在圖3中表示為C。
由R3空間到R2平面的中心投影映射得:

由于投影顛倒了圖像,所以投影點rS相對于點rC的坐標具有負值。例如,點rC的坐標yC,在空間中有正值,因為YC軸向右。但是,將其投影到傳感器平面后,會變為負值。坐標xC也是如此。為了省略引入負坐標到點rS,可以將圖像平面圍繞軸C和x旋轉180度,獲得一個虛擬的平面,稱為假想傳感器平面。從圖3中可以看出,點rs'的坐標直接對應于點rC的坐標,投影定律也成立。
因此,中心投影可以用矩陣乘法來表示:

但針孔相機描述的是理想的投影,由于通常使用帶鏡頭的電荷耦合器件相機,上述模型不足以進行精確測量,因為類似矩形像素和鏡頭失真這樣的因素很容易發生。為了更準確地描述點映射,考慮畸變誤差等因素,攝像機內參矩陣描述為[5]:

fx,fy為縮放因子,Px,Py為變換因子,4個因子僅與相機結構有關。
相機內參數對于特定的相機是唯一的。通過將已知空間或平面物體中的標定點,與其在相機成像上的投影點進行匹配,因為標定點的真實世界坐標和相應的像素坐標是已知的,故可以通過封閉形式的解和數值優化來導出未知的相機內參數。
(2)外參數矩陣
世界坐標系,在經過平移、旋轉變換后,轉化為相機坐標系,兩種坐標系間的轉換關系就是相機的外參數矩陣[6],通過建立變換矩陣來對相機姿態進行描述,然后對該矩陣取逆即可求得相機的外參數矩陣。

[XCYCZC]T表示相機坐標系下的點,[XWYWZW]T表示世界坐標系下的點,R3x3,K3x1分別表示旋轉,平移矩陣。
相機標定的目標就是確定攝像機內在參數和攝像機外在參數。相機標定也稱為手眼標定,分為兩種情況:一種是相機固定于工作臺面上,另一種是相機隨著機器人移動,本文所述抓取系統屬于后者。
相機標定的一般原則在于找到足夠多的空間已知點和它們在圖像中的投影點的對應關系。相機與機器人進行聯合標定,機械手臂帶著相機,在保證Mark點在相機視野里的前提下,進行平移和旋轉,每次移動后相機拍照記錄圖像,得到n組對應的坐標,代入式(3)、式(4)式可求得相機坐標系與機械手空間坐標系的轉換關系。
2)機器人坐標系轉換
機器視覺引導機器人抓取是通過改變其工件坐標系來實現的。機器人的工件坐標系是根據具體作業場景建立的,由世界坐標系經過旋轉和平移轉化而成。
由于mark點與工件抓取點不是一個點,相機獲得的偏移量數據僅是對于mark點的,所以機器人在接收到偏移量數據后,仍需要進行運算,轉換為抓取點的偏移量。首先定義一個坐標系變量,將相機發送的數據賦值給該變量,再與工件坐標系變量進行叉乘運算,從而獲得機器人抓取工件的坐標點。
主要代碼如下:


通信接口用于控制自動抓取過程,通常情況下,是通過數字輸入/輸出信號或通過串行連接進行數據交互來實現的[7]。由于視覺系統通常直接應用各種組件,所以這些組件必須易于與其他機器元件協調和連接。建立通信接口可以方便快速的與其他設備進行信息交互,也有利于移植機器視覺引導定位系統到其他型號的硬件系統中。本文相機控制器與機器人采用以太網連接,建立socket套接字通訊,通過5GHz信道進行信息交互。
在相同條件下,對AGV到位誤差進行識別,通過相機對AGV上的mark點進行目標檢測,由圖像獲得偏移量信息,利用抓取系統算法求得抓取點坐標,進而驅動機器人精確抓取物料。記錄mark點、抓取點未偏移前的位置信息,同時記錄通過相機識別的mark點位置,以及機器人實際抓取的位置,對兩組點的偏移量進行比較。
實驗數據如表1所示。

表1 位置偏移量比較

(續)
由上表數據可以看出,機器人在重復定位精度為±0.02mm的前提下,抓取誤差為± 1mm,滿足作業要求,可以較精準的對物料進行抓取。抓取模型精度較高,可以考慮在其他作業類型中進行調試和應用。
本文對AGV到位誤差進行識別,通過機器視覺提取偏移量信息,再通過抓取定位模型進行運算,最終獲得Mark點偏移量與機器人抓取點的偏移量的幾何關系,從而驅動機器人快速精準的取放料。多次實驗數據佐證,本文構建的抓取系統偏移誤差較小,定位精確快速,滿足工業任務的要求,對于類似工業生產有一定的參考價值。