徐青青
(宿遷學(xué)院機電工程學(xué)院,江蘇宿遷 223800)
工業(yè)機器人在工業(yè)領(lǐng)域得到廣泛應(yīng)用,是制造業(yè)生產(chǎn)自動化中的重要一環(huán)[1]。隨著計算機視覺技術(shù)的發(fā)展,如何將工業(yè)機器人與計算機視覺技術(shù)相結(jié)合成為研究的熱點問題。機器視覺在工業(yè)應(yīng)用領(lǐng)域中應(yīng)用廣泛,主要有3個功能:視覺測量、視覺引導(dǎo)和視覺檢測[2]。目前傳統(tǒng)的工業(yè)機器人通過示教或者離線編程的方式,無法滿足復(fù)雜作業(yè)環(huán)境要求,基于視覺引導(dǎo)的工業(yè)機器人分揀系統(tǒng),具有廣闊的應(yīng)用前景。王詩宇[3]等利用并聯(lián)機器人和康耐視相機搭建了物體分揀平臺。倪鶴鵬[4]等提出了一種基于時間與工件位置的圖像去重算法與基于牛頓-拉夫森迭代的動態(tài)抓取算法,提高了抓取的準確率與效率。唐旭[5]利用物體形狀特征不變性識別物體,利用雙臂機器人和Kinect相機搭建了一個智能分揀平臺。陳懇[6]建立以庫卡機器人為執(zhí)行體的物料分揀平臺。4自由度分揀機器人SCARA,集成了視覺系統(tǒng),具備視覺引導(dǎo)功能,可用于分揀平臺上的工件[7]??偨Y(jié)目前的研究成果,多是通過機器人分揀平面上相互獨立的物體,實際的生產(chǎn)環(huán)境會涉及到物體有重疊或者是遮擋的情況。為了進一步提高工業(yè)機器人在自動化生產(chǎn)線上的靈活性,本文利用深度相機獲取點云數(shù)據(jù)的特性,搭建了一個基于機器視覺的工業(yè)機器人智能分揀平臺。
本文利用Kinect深度相機、PC機、史陶比爾TX60型六關(guān)節(jié)串聯(lián)機器人,搭建如圖1所示的智能分揀平臺。Kinect深度相機用來獲取彩色圖像和深度圖像;PC機功能是通過處理彩色圖像來識別分揀物體,通過處理深度圖像獲取物體的位姿,并且與工業(yè)機器人控制器通信,傳輸抓取物體的位姿信息;史陶比爾工業(yè)機器人用來分揀物體,當(dāng)機器人控制器接收到上位機發(fā)送的分揀物體的位姿信息時,利用控制器Val3語言來接收位姿信息,并控制工業(yè)機器人執(zhí)行相應(yīng)的操作。
圖1 分揀平臺
搭建工業(yè)機器人智能分揀系統(tǒng)平臺,首先要對整個系統(tǒng)進行標(biāo)定。第一步標(biāo)定Kinect深度相機,獲取Kinect深度相機的內(nèi)外參數(shù),建立相機坐標(biāo)系與世界坐標(biāo)系之間的關(guān)系;第二步手眼標(biāo)定,獲取工業(yè)機器人基坐標(biāo)系與相機坐標(biāo)系之間的關(guān)系。Kinect深度相機標(biāo)定使用張正友[8]棋盤標(biāo)定法,利用OpenCV計算機開源視覺庫標(biāo)定模塊,檢測棋盤角點,求出相機的內(nèi)外參數(shù),如圖2所示;工業(yè)機器人手眼標(biāo)定,首先通過示教,建立起工業(yè)機器人的用戶坐標(biāo)系,然后通過第一步得出的相機外參數(shù),即可建立起工業(yè)機器人基坐標(biāo)系與相機坐標(biāo)系之間的關(guān)系,如圖3所示。
圖2 相機標(biāo)定
圖3 手眼標(biāo)定
標(biāo)定結(jié)果為:
(1)內(nèi)參數(shù)
(2)外參數(shù)
(3)機器人世界坐標(biāo)系與相機坐標(biāo)系關(guān)系矩陣
面對日益復(fù)雜的生產(chǎn)作業(yè)需求,對工業(yè)機器人分揀提出的要求越來越高,傳統(tǒng)的模板匹配和特征識別,可能無法滿足復(fù)雜分揀環(huán)境下的識別任務(wù),因此引入機器學(xué)習(xí)中的支持向量機(SVM)。SVM在解決小樣本、非線性及高維模式識別中有優(yōu)勢,并能推廣應(yīng)用到函數(shù)擬合等其他機器學(xué)習(xí)問題中[9],是一種監(jiān)督式學(xué)習(xí)方法。算法原理是首先將向量映射到一個更高維的空間里,在其中建立最大間隔超平面,將數(shù)據(jù)分開;然后在超平面兩邊再設(shè)立兩個互相平行的超平面;最后分隔超平面,使兩個平行超平面的距離最大化[10]。超平面分類如圖3所示。
圖3 超平圖
本系統(tǒng)主要是識別物體的形狀和顏色信息,算法流程圖如圖4所示。
圖4 支持向量機算法流程圖
使用SVM作為分類器,先訓(xùn)練SVM樣本模型。具體是第一步輸入圖片,對于給出的每個訓(xùn)練樣本,都要明確每個樣本的歸類是0還是1,即每個樣本都要標(biāo)注一個確切的類別標(biāo)簽,作為SVM訓(xùn)練時使用。一般SVM對于樣本特征的選擇以及維度沒有明確的要求,根據(jù)樣本實際情況選擇,常用的邊緣、Haar、角點、Sift、Surf、直方圖等各種特征表述參與訓(xùn)練。
第二步設(shè)置SVM參數(shù)。SVM常用的參數(shù)有SVM類型選擇、核函數(shù)類型以及算法的終止條件和松弛變量等。其中核函數(shù)的選擇是決定SVM識別效果的關(guān)鍵性因素,它的本質(zhì)作用是將低維空間的線性不可分類問題,借助核函數(shù)轉(zhuǎn)化為高維空間的線性可分,進而可以在高維空間找到分類的最優(yōu)邊界,即超平面。常見的核函數(shù)有線性核函數(shù)、多項式核函數(shù)、徑向基(RBF)核函數(shù)(也稱高斯核函數(shù))和Sigmoid核函數(shù)(二層神經(jīng)收集核函數(shù))。
(1)線性核函數(shù)
K(x,x1)=(xgx1)
(2)多項式核函數(shù)
K(x,x1)=[v(xgx1)+1]q
(3)徑向基(RBF)核函數(shù)
(4)Sigmoid核函數(shù)(二層神經(jīng)收集核函數(shù))
K(x,x1)=tan(h(v(xgx1)+c))
根據(jù)實際的識別情況,本系統(tǒng)選用多項式核函數(shù)作為SVM訓(xùn)練核函數(shù)。
第三步訓(xùn)練支持向量,輸入特征標(biāo)簽和核函數(shù),輸出支持向量分類器。
程序運行時,首先獲取從攝像機采集的彩色圖片,然后針對彩色圖像,進行ROI提取,裁剪出需要識別的物體的區(qū)域,保存作為測試圖片,接著訓(xùn)練圖片并且跟訓(xùn)練好的模型分類器作對比,最終找出支持向量,進而實現(xiàn)物體識別的功能。
通過工業(yè)機器人手眼標(biāo)定,建立相機坐標(biāo)系與機器人基坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。獲取分揀物體的位姿,是智能分揀系統(tǒng)的關(guān)鍵一步。Kinect深度相機輸出點云數(shù)據(jù),利用PCL開源庫,實現(xiàn)對點云數(shù)據(jù)的配準。本文使用基于采樣一致性(SAC-IA)粗配準算法和迭代最近點(ICP)精配準算法來實現(xiàn)點云的配準。SAC-IA粗配準算法流程圖如圖5所示,ICP精配準算法如圖6所示。
圖5 采樣一致性粗配準
圖6 迭代最近點點云精配準
SAC-IA粗配準首先對點云數(shù)據(jù)進行采樣,得出源點云P和目標(biāo)點云Q兩個點云,其次分別提取兩個點云的法向量,接著計算配準點云的快速點云特征直方圖(FPFH),即從待配準的源點云P中選取n個采樣點,為了盡量保證所采樣的點具有不同的FPFH特征,采樣點兩兩之間的距離應(yīng)滿足大于預(yù)先給定最小距離閾值d。計算隨機對應(yīng)點之間剛體變換矩陣,判斷是否達到迭代次數(shù),當(dāng)達到設(shè)定次數(shù)時,粗配準結(jié)束,反之繼續(xù)計算隨機對應(yīng)點之間剛體變換矩陣。
ICP精配準過程:
(1)將經(jīng)過SAC-IA粗配準后的源點云作為新的源點云,目標(biāo)點云保持不變;
(2)計算出源點云上的每個點到目標(biāo)點云上的每個點的距離,根據(jù)距離最近原則匹配初始點對應(yīng)關(guān)系;
(3)由于只是簡單地通過計算得出對應(yīng)點關(guān)系,因此初始對應(yīng)點集中可能會出現(xiàn)錯誤的對應(yīng)關(guān)系,這會影響最終ICP的配準結(jié)果,采用方向向量閾值剔除錯誤的對應(yīng)點對;
(4)確定ICP精配準所需的目標(biāo)函數(shù);
(5)求解剛性變換,計算源點云數(shù)據(jù)到目標(biāo)點云數(shù)據(jù)的旋轉(zhuǎn)矩陣和平移向量;
(6)判斷是否達到迭代次數(shù)或者是滿足收斂指定的范圍,如果條件成立則配準結(jié)束,反之將得到的經(jīng)過剛體變換的點云數(shù)據(jù)作為新的源點云數(shù)據(jù),繼續(xù)從第(2)步開始執(zhí)行,直至滿足條件為止。
針對物體形狀識別功能,設(shè)計圓形和正方形兩種樣本形狀。針對物體顏色識別功能,設(shè)計白色和紅色兩種顏色。在VS2010編譯環(huán)境下,編寫MFC上位機測試程序,如圖7所示。將學(xué)習(xí)的結(jié)果與物體本身的結(jié)果對比,如果相同,輸出正確識別結(jié)果。
圖7 物體識別模塊
針對物體位姿獲取功能,通過標(biāo)準姿態(tài)與點云算法配準姿態(tài)進行對比,配準結(jié)果如圖8所示,效果圖如圖9所示。經(jīng)過SAC-IA粗配準和ICP精配準后,得出目標(biāo)點云數(shù)據(jù)相對于基準點云的位姿。
圖8 點云配準結(jié)果
工業(yè)機器人智能分揀系統(tǒng)運行效果圖,如圖10所示。通過本文搭建的平臺,可以實現(xiàn)物體的識別和分揀功能。
本文針對工業(yè)機器人復(fù)雜分揀環(huán)境下的物體識別和位姿獲取問題,搭建了基于機器視覺的工業(yè)機器人智能分揀系統(tǒng)平臺,借助OpenCV庫實現(xiàn)基于SVM的物體識別分類算法,借助PCL庫實現(xiàn)點云數(shù)
圖9 點云配準效果圖
(a)識別
(b)開始抓取
(c)放置目標(biāo)
(d)放置完成
據(jù)的SAC-IA粗配準和ICP精配準算法來獲取物體位姿。實驗結(jié)果表明,該系統(tǒng)平臺能夠較好地實現(xiàn)物體識別和位姿獲取功能,為進一步推廣工業(yè)機器人在復(fù)雜環(huán)境下分揀物體提供參考。