羅莐
(上海電氣自動(dòng)化設(shè)計(jì)研究所有限公司,上海 200023)
基金項(xiàng)目:本項(xiàng)研究工作得到了上海市科學(xué)技術(shù)委員會(huì)的資助,資助課題項(xiàng)目(17DZ2283400)
隨著工業(yè)化水平和科技的不斷發(fā)展,機(jī)器人的應(yīng)用愈加廣泛和深入。在“中國(guó)制造2025”和“工業(yè)4.0”[1]等宏觀戰(zhàn)略的激發(fā)下,機(jī)器人應(yīng)用也逐漸由自動(dòng)化轉(zhuǎn)向智能化。視覺(jué)作為機(jī)器人重要的信息輸入途徑,和機(jī)器人技術(shù)相結(jié)合具有定位精度高、自動(dòng)化、智能化和勞動(dòng)力成本低等優(yōu)點(diǎn)[2],因此被廣泛地應(yīng)用于工業(yè)生產(chǎn)中。一般來(lái)說(shuō)視覺(jué)系統(tǒng)的獲得主要有兩個(gè)途徑:一是配套的機(jī)器人廠商;二是獨(dú)立的視覺(jué)軟件公司。由于兩者互為競(jìng)爭(zhēng)關(guān)系,在功能邊界和通信接口上都存在一定的盲區(qū),所以不同品牌的機(jī)器人和視覺(jué)傳感器的跨平臺(tái)使用一直受到諸如此類(lèi)問(wèn)題的限制。本文采用基于獨(dú)立品牌的視覺(jué)相機(jī)建立機(jī)器人局部手眼(Eye-in-Hand)系統(tǒng),從底層數(shù)學(xué)模型出發(fā)論述了實(shí)現(xiàn)視覺(jué)引導(dǎo)的全過(guò)程。
機(jī)器人視覺(jué)引導(dǎo)基本有兩種方式:相對(duì)法和絕對(duì)法。相對(duì)法是通過(guò)記錄初次示教基準(zhǔn)點(diǎn)和視覺(jué)基準(zhǔn)點(diǎn),運(yùn)用關(guān)系運(yùn)算得到機(jī)器人工具坐標(biāo)(TCP)和工件視覺(jué)特征點(diǎn)之間的偏差基準(zhǔn)。然后利用這種初次建立的基準(zhǔn)關(guān)系,根據(jù)視覺(jué)系統(tǒng)新導(dǎo)入的結(jié)果通過(guò)位置補(bǔ)償重新還原機(jī)器人示教狀態(tài)。該方法的優(yōu)點(diǎn)是不需要依賴(lài)精確的TCP標(biāo)定,但是強(qiáng)調(diào)示教的準(zhǔn)確度。因?yàn)槌醮问窘痰暮脡膶⒂绊懞罄m(xù)所有的視覺(jué)引導(dǎo)結(jié)果。絕對(duì)法通常不需要示教,只要標(biāo)定出理想的TCP,然后直接驅(qū)動(dòng)機(jī)器人走到工件的視覺(jué)特征點(diǎn)上即可。不過(guò)受TCP精度的關(guān)聯(lián)影響,該方法對(duì)TCP的標(biāo)定要求比較高。通常是利用機(jī)器人的配套視覺(jué)軟件來(lái)實(shí)現(xiàn)自動(dòng)標(biāo)定??傊?,該方式是需要通過(guò)精細(xì)的規(guī)劃和繁瑣的準(zhǔn)備,以滿足和實(shí)現(xiàn)高精度場(chǎng)合的應(yīng)用要求。
圖1 全局手眼和局部手眼的概況
利用相對(duì)法和絕對(duì)法可以實(shí)現(xiàn)大部分的視覺(jué)引導(dǎo)應(yīng)用,不過(guò)在具體實(shí)施方面還和照相機(jī)的安裝位置和標(biāo)定方式有密切關(guān)聯(lián)。通常視覺(jué)傳感器的安裝可以分為兩種,局部手眼和全局手眼,如圖1所示。局部手眼(Eye-in-Hand)通俗來(lái)說(shuō)就是隨動(dòng)手眼(將相機(jī)固定到機(jī)器人末端),相機(jī)是隨著機(jī)器人末端進(jìn)行移動(dòng)的。全局手眼(Eye-to-Hand),就是固定手眼(將相機(jī)固定到機(jī)器人范圍之外),相機(jī)是不動(dòng)的,觀察機(jī)器人運(yùn)動(dòng)[3-4]。
圖2 基于固定坐標(biāo)系的標(biāo)定
圖3 基于運(yùn)動(dòng)坐標(biāo)系的標(biāo)定
通常來(lái)說(shuō)全局手眼一般采用基于固定坐標(biāo)系的標(biāo)定,而局部手眼則采用基于運(yùn)動(dòng)坐標(biāo)系的標(biāo)定,如圖2和圖3所示。兩者的區(qū)別在于,基于固定坐標(biāo)系的標(biāo)定,其視覺(jué)結(jié)果是以固定坐標(biāo)系原點(diǎn)的方式輸出的,這個(gè)固定坐標(biāo)系可以是機(jī)器人世界坐標(biāo)系也可以是自定義的用戶坐標(biāo)系。而基于運(yùn)動(dòng)坐標(biāo)系的標(biāo)定,其輸出的視覺(jué)結(jié)果是以圖像坐標(biāo)系原點(diǎn)的方式來(lái)輸出的,圖像坐標(biāo)系原點(diǎn)則是相機(jī)光心引垂線到視場(chǎng)平面的交點(diǎn)[5]。
如果標(biāo)定結(jié)果是基于固定坐標(biāo)系給出的,則可以用來(lái)直接操控機(jī)器人走到指定位置。而如果標(biāo)定結(jié)果是基于運(yùn)動(dòng)坐標(biāo)系給出的,那么無(wú)法拿來(lái)直接使用。因?yàn)橄到y(tǒng)中缺少相機(jī)坐標(biāo)系和工具坐標(biāo)系的關(guān)聯(lián)因子。機(jī)械臂不知道相機(jī)到底裝在TCP的哪個(gè)方位以及相互之間的距離。
雖然可以利用TSAI的方法可以解決以上問(wèn)題[6-7],但是計(jì)算過(guò)程比較復(fù)雜。為了避開(kāi)求解相機(jī)坐標(biāo)系和工具坐標(biāo)系的關(guān)聯(lián)因子,通過(guò)在局部手眼的系統(tǒng)基礎(chǔ)上,采用基于固定坐標(biāo)系的標(biāo)定配合“相對(duì)法”實(shí)現(xiàn)視覺(jué)引導(dǎo)。具體方法可以概括成兩個(gè)“還原”:首先是“視覺(jué)還原”,即通過(guò)當(dāng)前拍照位置和標(biāo)定時(shí)拍照位置的偏差關(guān)系還原視覺(jué)結(jié)果;其次是“示教還原”,即通過(guò)初次的示教基準(zhǔn)和視覺(jué)基準(zhǔn)的偏差關(guān)系還原機(jī)器人示教狀態(tài)。
由于該系統(tǒng)采用了基于固定坐標(biāo)系的標(biāo)定方式,根據(jù)標(biāo)定含義的解釋?zhuān)瑹o(wú)論機(jī)器人在何處拍照,相機(jī)都會(huì)默認(rèn)以在標(biāo)定時(shí)的位置狀態(tài)輸出坐標(biāo)結(jié)果,也就是說(shuō)圖像中相同位置點(diǎn)的視覺(jué)輸出結(jié)果是相同的。
圖4 局部手眼下的基于固定坐標(biāo)系的視覺(jué)標(biāo)定
以圖4所示為例,機(jī)器人在右側(cè)位置進(jìn)行視覺(jué)標(biāo)定時(shí),照相機(jī)會(huì)在正下方會(huì)投射一個(gè)平面,稱(chēng)為圖像坐標(biāo)系。在實(shí)際運(yùn)行過(guò)程中機(jī)器人需要根據(jù)應(yīng)用要求調(diào)整拍照位置,這樣實(shí)際的拍照位置就可能不是當(dāng)初做標(biāo)定時(shí)的位置。當(dāng)機(jī)器人移動(dòng)到左側(cè)拍照時(shí),視覺(jué)的輸出結(jié)果實(shí)際上放映的是右側(cè)最初標(biāo)定時(shí)的坐標(biāo)數(shù)據(jù)。然后把機(jī)器人在右側(cè)視覺(jué)標(biāo)定時(shí)的位置記作標(biāo)定基準(zhǔn)PCaliRef,把實(shí)際拍照位置記作PCam,把基于標(biāo)定的視覺(jué)結(jié)果記作PCaliVis,把基于實(shí)際拍照位置的視覺(jué)結(jié)果記作PCamVis。“視覺(jué)還原”的過(guò)程實(shí)際上就是求解PCamVis的結(jié)果。根據(jù)各坐標(biāo)系之間的相互關(guān)系得到:PCaliOfsRef= Inv(PCaliRef)×PCaliVis
然后再將實(shí)際拍照位置PCam代入,求出基于拍照點(diǎn)的視覺(jué)結(jié)果:PCamVis=PCam×PCaliOfsRef
與一般機(jī)器人“示教—再現(xiàn)”的調(diào)試模式相仿,相對(duì)法也采用類(lèi)似的“二步法”完成視覺(jué)引導(dǎo)。不過(guò)區(qū)別在于普通示教中只需要記錄示教基準(zhǔn),而在視覺(jué)引導(dǎo)中除了記錄示教基準(zhǔn)外還需要記錄初始的視覺(jué)結(jié)果,通過(guò)兩者的偏差向量配合新的視覺(jué)結(jié)果導(dǎo)入,重新還原示教狀態(tài)。具體過(guò)程如下:
第一步:視覺(jué)示教,如圖5所示。移動(dòng)機(jī)器人到合適的拍照位置,并且確保物距和標(biāo)定時(shí)的高度一樣。調(diào)節(jié)光圈和電子曝光時(shí)間得到高對(duì)比差的圖像,利用視覺(jué)軟件中的相關(guān)工具捕捉特征線條,輸出得到工件特征點(diǎn)坐標(biāo)。然后對(duì)該結(jié)果進(jìn)行“還原”處理,轉(zhuǎn)換成實(shí)際拍照位置的視覺(jué)結(jié)果,并將其記作視覺(jué)基準(zhǔn)PVisRef。
圖5 采用相對(duì)法實(shí)現(xiàn)視覺(jué)引導(dǎo)
第二步,機(jī)器人示教,如圖5所示。調(diào)整機(jī)器人至合適抓取位置記錄下坐標(biāo),即示教基準(zhǔn)PTechRef。接下來(lái)通過(guò)關(guān)系運(yùn)算得到兩者之間的偏差基準(zhǔn)POfsRef。根據(jù)以上過(guò)程以及各坐標(biāo)系之間的相互關(guān)系得到:POfsRef =Inv(PVisRef)×PTechRef。
第三步,還原示教,如圖5所示。移動(dòng)工件,根據(jù)視野情況重新調(diào)整機(jī)器人拍照位置,刷新視覺(jué)結(jié)果。同樣對(duì)視覺(jué)結(jié)果進(jìn)行“還原”處理得到實(shí)際的工件視覺(jué)坐標(biāo)位置PVis,根據(jù)圖上位置關(guān)系和偏差基準(zhǔn),可以得到最終的示教狀態(tài):PWork=Pvis×POfsRef。
根據(jù)機(jī)器人學(xué)的基礎(chǔ)需要用到3個(gè)數(shù)學(xué)工具對(duì)以上變換過(guò)程和關(guān)系運(yùn)算進(jìn)行推導(dǎo)計(jì)算。機(jī)器人的運(yùn)動(dòng)姿態(tài)和方向角的表示通常有“用歐拉變化表示運(yùn)動(dòng)姿態(tài)”和“用RPY組合變換表示運(yùn)動(dòng)姿態(tài)”等幾種方式[8],這里選用了RPY方式,RPY是由橫滾roll、俯仰pitch和偏轉(zhuǎn)yaw組成的一種旋轉(zhuǎn)集合。其具體定義是基于固定坐標(biāo)系先繞x軸旋轉(zhuǎn)A角,再繞y軸旋轉(zhuǎn)B角,最后繞z軸旋轉(zhuǎn)C角。
根據(jù)RPY的定義,如果有坐標(biāo)點(diǎn)(x,y,z,A,B,C)那么位姿矩陣求解結(jié)果如下:
TPosiToMatrix=
式中:x、y、z是長(zhǎng)度參數(shù),mm;A、B、C是角度參數(shù),(°)。這是一個(gè)4×4的齊次矩陣,左上3×3的方陣代表了旋轉(zhuǎn)變換,右上x(chóng)、y、z的列向量則代表平移變換。
逆矩陣求解結(jié)果如下:
(2)
-p·n=-(nx·px+ny·py+nz·pz)
式中:px、py、pz代表位姿矩陣的平移變換;{axayaz}、{oxoyoz}、{nxnynz}則是組成旋轉(zhuǎn)變換的3個(gè)矢量,分別是接近矢量、方向矢量和法線矢量。
根據(jù)齊次方程的定義和逆運(yùn)動(dòng)學(xué)的RPY變換解法,得到6個(gè)參量的結(jié)果如下:
TMatrixToPosi=
由于試驗(yàn)數(shù)據(jù)不能直觀反證這一求解過(guò)程,所以這部分內(nèi)容將采用更加直觀的制圖方式進(jìn)行說(shuō)明。首先在CAD軟件內(nèi)模擬機(jī)器人標(biāo)定和拍照的情形,然后通過(guò)軟件線性標(biāo)注和公式計(jì)算推導(dǎo),最總對(duì)兩種結(jié)果相比較來(lái)驗(yàn)證。圖6所示為機(jī)器人采用局部手眼方式,在A點(diǎn)做了標(biāo)定,然后在B點(diǎn)拍照。
圖6 Cad中的視覺(jué)標(biāo)定例子
那么機(jī)器人在A點(diǎn)做視覺(jué)標(biāo)定時(shí)的位置PCaliRef=(70,170,0,0,0,0)。機(jī)器人在B點(diǎn)的拍照位置PCam=(300,60,0,0,0,30)。由于系統(tǒng)采用了基于固定坐標(biāo)系的標(biāo)定方式,所以無(wú)論機(jī)器人在何處拍照,相機(jī)都會(huì)默認(rèn)以在標(biāo)定時(shí)的位置進(jìn)行結(jié)果輸出。雖然機(jī)器人在B點(diǎn)拍照,但它實(shí)際反應(yīng)的是B點(diǎn)在A點(diǎn)的投影結(jié)果。此時(shí)機(jī)器人在B點(diǎn)的拍照結(jié)果實(shí)際就是它在A點(diǎn)基于標(biāo)定時(shí)的結(jié)果,由此得到PCaliVis=(70,230,0,0,0,0)。
為了方便計(jì)算,可以在Excel環(huán)境中建立運(yùn)算模板,如圖7所示。首先將PCaliRef和PCaliVis代入,利用模型公式PCaliOfsRef=Inv(PCaliRef)×PCaliVis,算出標(biāo)定偏差基準(zhǔn)PCaliOfsRef。
圖7 Excel環(huán)境下矩陣的運(yùn)算過(guò)程
然后再將PCam代入,利用模型公式PCamVis=PCam×PCaliOfsRef,得到實(shí)際拍照位置的視覺(jué)結(jié)果。
根據(jù)根據(jù)齊次方程的定義和逆運(yùn)動(dòng)學(xué)的RPY變換解法得到:
X=270 mm,Y=111.961 mm
Z=0 mm,A=0°,B=0°,C=30°
最終得到的視覺(jué)坐標(biāo)位置為(270,111.961,0,0,0,30)。接著再通過(guò)CAD軟件的線性標(biāo)注功能測(cè)量出的結(jié)果為(270,111.96,0,0,0,30)。這2個(gè)結(jié)果基本吻合,小數(shù)點(diǎn)的差別主要由于弧角轉(zhuǎn)換時(shí)π取值精度造成的,通常影響在0.01 mm左右,遠(yuǎn)遠(yuǎn)小于機(jī)器人重復(fù)定位精度,所以對(duì)視覺(jué)引導(dǎo)的結(jié)果好壞影響不大。
首先利用視覺(jué)軟件做出工件的視覺(jué)坐標(biāo)點(diǎn),并結(jié)合上一步的過(guò)程,得出拍照點(diǎn)的實(shí)際轉(zhuǎn)化坐標(biāo),并將其記錄。PVisRef =(-346.48,-266.93,21.67,0,0,1.92)然后示教機(jī)器人,記錄下工件抓取點(diǎn)的機(jī)器人坐標(biāo)PTechRef =(-341.58,-274.46,297.15,180,0,38.87)。
同樣利用Excel環(huán)境建立運(yùn)算公式,將PVisRef和PTechRef代入,利用模型公式POfsRef=Inv(PVisRef)×PTechRef ,算出偏差基準(zhǔn)POfsRef,計(jì)算得:
移動(dòng)工件,調(diào)整機(jī)器人拍照位置,重新刷新視覺(jué)結(jié)果。同樣該結(jié)果需要利用視覺(jué)標(biāo)定基準(zhǔn)進(jìn)行還原,得到實(shí)際拍照位置的視覺(jué)特征點(diǎn)坐標(biāo)PVis(-349.24,-278.90,21.67,0,0,87.77)。然后將新的視覺(jué)結(jié)果PVis和POsfRef導(dǎo)入,利用模型公式PWork=PVis× POfsRef,計(jì)算得:
對(duì)位姿矩陣還原得到PWork=(-341.38,-274.56,297.15,180,0,36.95)
以上簡(jiǎn)要介紹了機(jī)器人視覺(jué)引導(dǎo)的基本方法,著重討論了不同標(biāo)定方式對(duì)視覺(jué)結(jié)果的影響,并以相對(duì)法結(jié)合基于固定坐標(biāo)系標(biāo)定的局部手眼為例,從底層數(shù)學(xué)模型出發(fā)講述了位姿計(jì)算的原理和完整的實(shí)現(xiàn)過(guò)程。通過(guò)對(duì)該方法的移植,可以在任何具備數(shù)學(xué)運(yùn)算的平臺(tái)上實(shí)現(xiàn)坐標(biāo)運(yùn)算和轉(zhuǎn)化。從而最終實(shí)現(xiàn)不同品牌機(jī)器人和視覺(jué)系統(tǒng)之間的關(guān)聯(lián)。例如在PLC上進(jìn)行數(shù)學(xué)運(yùn)算,然后通過(guò)標(biāo)準(zhǔn)的總線將位置數(shù)據(jù)傳給機(jī)器人,或者利用上位機(jī)配合OPC方式與機(jī)器人進(jìn)行通信等。