基于機器視覺的物體識別與抓取控制系統(tǒng)
引 言
機械手是在機械化、自動化生產(chǎn)過程中發(fā)展起來的一種新型裝置,是機器人領域的一個重要分支 [1-2]。1958 年美國聯(lián)合控制公司研制出的第一臺機械手具有運動部件與抓放機構(gòu)。第一代機械手主要依靠人工控制,影響這類機器人應用的主要是成本與精度。第二代機械手主要依靠微型電子計算機控制,具有視覺、觸覺能力,甚至具有聽與想的能力。通過在機械手上安裝各種傳感器,反饋感覺到的信息,使機械手具有感覺機能 [3-4]。第三代機械手則能獨立完成工作過程中的各種任務,這類機械手具有感覺功能、決策功能及執(zhí)行功能,已逐步發(fā)展成為柔性制造系統(tǒng) FMS 與柔性制造單元FMC 中的一個重要組成部分 [5-6]。機械手感知與控制軟件是公司的核心競爭力,但市場上并沒有通用的機械手感知與控制軟件,根據(jù)特定用途開發(fā)的機械手需要專門開發(fā)其配套感知與控制軟件。本文針對已有的物體傳送帶與桁架機械手, 開發(fā)一套基于機器視覺的物體識別及抓取控制系統(tǒng),實現(xiàn)傳送帶上輸送物品的位置識別、桁架機械手的運動控制與抓取功能。
1 物體輸送及抓取裝置
為實現(xiàn)物體的輸送與抓取,設計制造了傳送帶系統(tǒng)與桁架機械手。傳送帶由伺服電機驅(qū)動,能夠?qū)崿F(xiàn)物體的勻速運動。桁架機械手為直角坐標式機械手,具有高效、穩(wěn)定、高強度、高精度、高性價比及操作控制簡單等特點,廣泛應用于機械產(chǎn)品的抓取和搬運。
本文物體輸送及抓取裝置包括傳送帶、型材框架、X 軸、Y軸、Z軸滑臺模組、氣動夾爪以及一些連接件等,其主要功能是實現(xiàn)物體沿傳送帶表面的直線運動,桁架機械手實現(xiàn)X 軸、Y 軸和 Z 軸三個方向的直線運動及卡爪的轉(zhuǎn)動、抓取運動。其三維設計圖如圖 1 所示,實物圖如圖 2 所示。
圖 1 物體輸送及抓取裝置三維模型
圖 2 物體輸送及抓取裝置實物
2 基于機器視覺的物體識別
2.1 基于機器視覺的物體識別系統(tǒng)
機器視覺系統(tǒng)一般是將工業(yè)相機安裝在機器流水線上代替人眼來做測量與判斷,通過數(shù)字圖像攝取目標轉(zhuǎn)換成圖像信號,傳送至專用的圖像處理系統(tǒng),圖像處理系統(tǒng)再對這些信號進行各類運算,抽取目標特征,進而根據(jù)判別結(jié)果控制現(xiàn)場的設備動作 [7]。
工業(yè)相機俗稱攝像機,相比于傳統(tǒng)的民用相機而言,其性能穩(wěn)定可靠,易于安裝。工業(yè)相機的快門時間非常短,可以抓拍高速運動的物體,其圖像傳感器可逐行掃描,幀率遠遠高于普通相機,且能輸出光譜范圍較寬的裸數(shù)據(jù),比較適合進行高質(zhì)量的圖像處理算法。而普通相機拍攝的圖片的光譜范圍只適合人眼視覺,并且經(jīng)過 MJPEG 壓縮,圖像質(zhì)量較差,不利于分析處理。本文機器視覺系統(tǒng)采用一款130 萬像素的工業(yè)相機和焦距為 2.8 ~ 12 mm 的鏡頭。
由于物體在傳送帶上做連續(xù)直線運動,為確定物體的初始位置,觸發(fā)工業(yè)相機拍照,故在傳送帶上安裝一組光電傳感器。當傳送帶運送的物體經(jīng)過光電傳感器時,觸發(fā)計時開始,經(jīng)過時間延遲,確保物體在工業(yè)相機的視野范圍內(nèi),并啟動工業(yè)相機對物體拍照。拍照完成后進行圖像處理與物體識別,獲得物體位置,經(jīng)過坐標變換獲得物體在傳送帶坐標系內(nèi)的位置坐標。圖像坐標系與傳送帶坐標系如圖 3 所示, 其中圖像坐標系坐標原點在傳送帶坐標系中的坐標為(Δx, Δy)。假設圖像坐標系中某點 P 的坐標為(U,V),將 P 點坐標轉(zhuǎn)換到傳送帶坐標系中的坐標為(X,Y),圖像坐標系坐標與傳送帶坐標系坐標之間的關系為 :
X=Δ x+U
Y=Δ y+V
圖 3 圖像坐標系與傳送帶坐標系
2.2 基于機器視覺的物體識別程序
機械視覺系統(tǒng)首先需要的是視覺采集程序, 視覺采集程序就是通過程序控制相機, 在有物體通過時拍攝圖片。在 C# 程序中, 添加一個 MVSDK 類庫, 把相機函數(shù)添加到 MVSDK.cs 中, 并在程序開頭添加“using System. Runtime.InteropServices ;”“usingSystem.IO ;”“using CameraHandle=System.Int32 ;”,配置完成后即可通過程序調(diào)用相機函數(shù)拍照。
機器視覺的物體識別與定位根據(jù)圖片的 RGB值進行判斷。本文圖像處理方法采用 EmguCV,EmguCV是 .NET平臺下對 OpenCV圖像處理庫的封裝,包含圖像處理與機器視覺方面的較多通用算法 [8]。本文利用 OpenCV 提供的圖像輪廓與中心識別算法實現(xiàn)物體輪廓及位置識別。具體方法為 :通過 EmguCV 創(chuàng)建一個 C# 項目,在引用中加“Emgu.CV.dll”“Emgu.CV.UI.dll”“Emgu.CV.UI.GL.dll”“Emgu.Util. dll”,完成后即可使用 EmguCV 中的控件進行圖像輪廓與中心識別。
3 基于機器視覺的物體識別與抓取控制系統(tǒng)
基于機器視覺的物體識別與抓取控制系統(tǒng)工作流程如圖 4 所示。
圖 4 物體識別與抓取控制系統(tǒng)流程圖
根據(jù)物體識別與抓取控制系統(tǒng)工作流程,利用 C# 語言開發(fā)控制程序,控制程序界面如圖 5 所示。控制程序調(diào)試完成后共進行 100 次物體傳送與抓取實驗,正確抓取率為100%,驗證了本文系統(tǒng)的正確性與有效性。
圖 5 物體識別與抓取控制系統(tǒng)程序界面
4 結(jié) 語
本文設計了基于機器視覺的物體識別與抓取控制系統(tǒng), 主要包括以下功能 :
實現(xiàn)了程序控制相機對傳送帶上運動物體的拍照功能,利用圖像處理方法獲得了物體在圖像坐標系中的位置 ;
通過坐標變換獲得了物體在傳送帶坐標系統(tǒng)內(nèi)的位置,結(jié)合傳送帶的速度確定了抓取策略,通過控制桁架機械手與卡爪運動,實現(xiàn)了對物體的正確抓取。