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