陳策博,萬(wàn) 琴,蘇宏博,劉 波
(1.湖南工程學(xué)院 電氣與信息工程學(xué)院,湘潭 411100;2.湖南中南智能裝備有限公司,長(zhǎng)沙 410117)
近年來(lái),機(jī)器人技術(shù)在工業(yè)自動(dòng)化、醫(yī)療保健、軍事防務(wù)等領(lǐng)域得到了廣泛的應(yīng)用。機(jī)械臂作為一種典型的機(jī)器人,具有靈活性、精度高等優(yōu)點(diǎn),已經(jīng)成為各種工業(yè)機(jī)器人和服務(wù)機(jī)器人中不可或缺的部分。機(jī)械臂的末端軌跡規(guī)劃和控制是機(jī)械臂控制中的重要問(wèn)題,對(duì)于機(jī)械臂的操作精度和穩(wěn)定性有著重要的影響。
因動(dòng)力學(xué)和摩擦等因素,傳統(tǒng)的數(shù)學(xué)模型機(jī)械臂末端軌跡規(guī)劃和控制難以準(zhǔn)確描述機(jī)械臂運(yùn)動(dòng)特性?;谝曈X(jué)引導(dǎo)的機(jī)械臂末端軌跡規(guī)劃和控制備受關(guān)注。視覺(jué)引導(dǎo)方法可實(shí)現(xiàn)目標(biāo)物體的實(shí)時(shí)識(shí)別和跟蹤,提高機(jī)械臂末端定位和運(yùn)動(dòng)控制精度。在制造業(yè)中,早期的焊接通常采用機(jī)械定位和人工示教,精度低、瑕疵率高、產(chǎn)品部件不匹配,甚至產(chǎn)生結(jié)構(gòu)畸變。當(dāng)人工示教無(wú)法滿足工廠的精度要求時(shí),機(jī)器視覺(jué)系統(tǒng)的定位工作備受關(guān)注。因此,本文提出了一種基于PatMax 視覺(jué)引導(dǎo)的機(jī)械臂末端軌跡規(guī)劃與控制系統(tǒng)。該系統(tǒng)采用了Cognex 公司旗下的VisionPro 視覺(jué)軟件,對(duì)已有的視覺(jué)規(guī)劃和控制系統(tǒng)進(jìn)行了二次開發(fā)[1-2],可以更好地實(shí)現(xiàn)機(jī)械臂末端的軌跡規(guī)劃和精確定位。
視覺(jué)技術(shù)硬件組件的設(shè)計(jì)是其使用的關(guān)鍵之一。光源、鏡頭、攝像頭以及攝像頭與計(jì)算機(jī)之間的接口是視覺(jué)定位系統(tǒng)的主要硬件元件。康耐視3DA5120 點(diǎn)云相機(jī)是本文在研究中使用的主要設(shè)備之一。該相機(jī)具有超過(guò)150 萬(wàn)個(gè)3D 數(shù)據(jù)點(diǎn),可檢測(cè)元件上的細(xì)微特征,構(gòu)建高分辨率的3D 數(shù)據(jù)點(diǎn)云圖像。另外,采用了適應(yīng)性強(qiáng)的協(xié)作式工業(yè)機(jī)器人UR5,通過(guò)編寫程序,可以沿著所需的運(yùn)動(dòng)軌跡來(lái)精確地移動(dòng),也可以使用電信號(hào)與參與其他機(jī)器設(shè)備工作時(shí)進(jìn)行通信。在數(shù)據(jù)處理方面,配備了具有獨(dú)立顯卡RTX2060 的視覺(jué)處理工控機(jī)。為保證數(shù)據(jù)傳輸?shù)姆€(wěn)定性,使用四口網(wǎng)線交換機(jī)和五類通訊網(wǎng)線(30 m)。視覺(jué)定位系統(tǒng)硬件如圖1 所示。
圖1 視覺(jué)定位系統(tǒng)硬件圖Fig.1 Visual positioning system hardware diagram
3D 相機(jī)和工控機(jī)之間通過(guò)BCM 萬(wàn)兆以太網(wǎng)口建立連接,以確保圖像傳輸?shù)乃俣群唾|(zhì)量。機(jī)械臂控制柜和工控機(jī)之間建立了TCP/IP 通信[3-4],通過(guò)網(wǎng)口進(jìn)行數(shù)據(jù)傳輸。機(jī)械臂控制柜在上位機(jī)的角色下,向工控機(jī)發(fā)出拍照指令,實(shí)現(xiàn)了機(jī)械臂的拍照功能。之后,工業(yè)控制計(jì)算機(jī)指揮相機(jī)進(jìn)行拍照操作,并將捕獲的圖像數(shù)據(jù)傳遞給工業(yè)控制計(jì)算機(jī)內(nèi)部的程序進(jìn)行處理。將經(jīng)過(guò)處理的數(shù)據(jù)轉(zhuǎn)化為信號(hào),然后傳輸給機(jī)械臂,以便機(jī)械臂能夠執(zhí)行相應(yīng)的動(dòng)作。
本文采用了基于康耐視A5000 點(diǎn)云相機(jī)的視覺(jué)系統(tǒng),該系統(tǒng)使用了Gigabit Ethernet 萬(wàn)兆接口,利用VisionPro[5]軟件內(nèi)原有的CogAcqfifotool 工具來(lái)進(jìn)行采集并處理拍攝的圖像。在這個(gè)軟件的視覺(jué)系統(tǒng)中,首先創(chuàng)建了一個(gè)圖像抓取工具用來(lái)連接,此工具是維持先進(jìn)先出隊(duì)列的Acquisition FiFo 對(duì)象,可以設(shè)置視頻格式、亮度、對(duì)比度、曝光、對(duì)等參數(shù)[6],從而獲取含有深度信息的圖像。將采集的深度圖像信息傳輸給輸入圖像,并且同時(shí)進(jìn)行后續(xù)工作的處理。通過(guò)這樣的設(shè)計(jì),可以實(shí)現(xiàn)對(duì)圖像的高效準(zhǔn)確采集和處理,并為后續(xù)的數(shù)據(jù)分析提供有效的支持。
圖像采集步驟:
(1)通過(guò)Cognex GigE Vision Configuration 工具配置相機(jī)連接環(huán)境;
(2)確認(rèn)相機(jī)是否連接;
(3)為康耐視相機(jī)設(shè)置視頻格式;
(4)利用FIFO 對(duì)象,設(shè)置相機(jī)的參數(shù);
(5)利用Acquire()方法獲取圖像;
(6)將獲取圖像進(jìn)行保存。
一般來(lái)說(shuō),相機(jī)與機(jī)械臂之間的位置關(guān)系有兩種:一種是“眼在手外”(eye-to-hand),即相機(jī)攝像頭的位置在機(jī)械臂的外邊,并與機(jī)器人的基座的位置(即世界坐標(biāo)系)保持固定,不隨著其位置的改變而發(fā)生移動(dòng),這種模式適用于需要穩(wěn)定的視野,或是需要在機(jī)械臂的工作空間之外進(jìn)行視覺(jué)檢測(cè)和控制的情況;另一種是“眼在手上”(eye-in-hand),即相機(jī)攝像頭的位置安裝在機(jī)械臂上,并會(huì)隨著機(jī)械臂位置的變化而發(fā)生移動(dòng),需要進(jìn)行復(fù)雜的姿態(tài)計(jì)算和控制,這種模式適用于需要機(jī)械臂在其工作空間內(nèi)對(duì)目標(biāo)物體進(jìn)行精確定位和操作的情況,手眼標(biāo)定示意圖如圖2 所示。
圖2 手眼標(biāo)定示意圖Fig.2 Hand-eye calibration diagram
本文采用的是眼在手外的手眼標(biāo)定系統(tǒng),在機(jī)械臂外的架子上固定住Cognex3D 點(diǎn)云相機(jī),并固定機(jī)械臂的基座,使其不會(huì)隨著機(jī)械臂位置的變化而移動(dòng)。這樣就保證了相機(jī)和機(jī)械臂底座的位置相對(duì)固定。坐標(biāo)變換的示意圖如圖3 所示。
圖3 坐標(biāo)變換示意圖Fig.3 Coordinate transformation diagram
圖3 中:機(jī)械臂基座坐標(biāo)系(W);相機(jī)坐標(biāo)系(C);機(jī)械臂末端坐標(biāo)系(B);工件坐標(biāo)系(A)。
4 個(gè)坐標(biāo)系對(duì)應(yīng)3 個(gè)變換矩陣:
(1)機(jī)械臂基座坐標(biāo)系(W)—機(jī)械臂末端坐標(biāo)系(B),T(W-B)該變換矩陣可以直接從機(jī)械臂坐標(biāo)系得到。
(2)相機(jī)坐標(biāo)系(C)—機(jī)械臂基座坐標(biāo)系(W),T(C-W)該變換矩陣即為待求取的位置固定矩陣—手眼標(biāo)定矩陣。
(3)工件坐標(biāo)系(A)—相機(jī)坐標(biāo)系(C),T(A-C)該變換矩陣是一個(gè)相對(duì)固定的矩陣,通過(guò)視覺(jué)定位求取。
3D 相機(jī)不需要單獨(dú)標(biāo)定,但是需要和機(jī)械臂標(biāo)定。待求量是機(jī)械臂底座坐標(biāo)系(W)和相機(jī)坐標(biāo)系(C)之間的位姿關(guān)系:T(C-W)。
定義坐標(biāo)系A(chǔ)-B 的變換矩陣為T(A-B),根據(jù)坐標(biāo)系之間變換關(guān)系:
在標(biāo)定的過(guò)程中,固定住了標(biāo)定板坐標(biāo)系(A)和機(jī)械臂的末端坐標(biāo)系(B),所以在機(jī)械臂不同姿態(tài)下的T(A-B)均不會(huì)發(fā)生變化,這里令X=T(C-W),E=T(A-C),F(xiàn)=T(W-B),所以機(jī)械臂姿態(tài)下的X 值不會(huì)發(fā)生變化,但Ei、Fi 不同,E 與機(jī)械臂相關(guān),F(xiàn)與相機(jī)相關(guān)。
變換后,手眼矩陣為
用平移向量T 和旋轉(zhuǎn)矩陣R 來(lái)表示矩陣方程,可以得到:
式中:T 是大小為3×1 的平移矢量;R 是大小為3×3的旋轉(zhuǎn)矩陣。手眼標(biāo)定的基本方程可以由式(6)得到:
進(jìn)行多次變換機(jī)械臂末端位姿,對(duì)手眼標(biāo)定方程式(4)求解,即可得到手眼轉(zhuǎn)化矩陣X 的值。為了提高實(shí)驗(yàn)的精準(zhǔn)度,標(biāo)定時(shí)共拍攝6 組照片。
圖像定位前需要首先對(duì)圖像進(jìn)行預(yù)處理,首先使用3DPatMaxTool 工具對(duì)目標(biāo)物進(jìn)行尋找,以獲取物體的坐標(biāo)信息,并將其存儲(chǔ)到數(shù)據(jù)庫(kù)中。然后通過(guò)在目標(biāo)圖像中尋找相近的形狀來(lái)確定目標(biāo)物體的坐標(biāo)信息,該方法不受特定圖像灰度級(jí)別的限制,提高了精度和抗干擾性。此外,通過(guò)設(shè)定參數(shù)特征閾值,該算法能夠旋轉(zhuǎn)、縮放目標(biāo),具有較高的靈活性和適應(yīng)性。定位流程如圖4 所示。
圖4 PatMax 定位流程Fig.4 PatMax positioning flow chart
在使用3DPatMaxTool 工具時(shí),首先需要拍攝一張所需的3D 照片,并框選出所需的具體幾何特征。在選框的中心設(shè)定好訓(xùn)練模板原點(diǎn),用來(lái)定位Mark點(diǎn)的位置,這樣可以實(shí)現(xiàn)最高精度的定位。經(jīng)過(guò)訓(xùn)練后,PatMax[7]利用模板對(duì)Mark 點(diǎn)進(jìn)行圖像模板3D匹配,并返回該圖像的Mark 點(diǎn)的中心坐標(biāo),以實(shí)現(xiàn)精確定位,模板定位如圖5 所示。
圖5 PatMax 特征的模板定位Fig.5 PatMax feature template localization
通過(guò)手眼標(biāo)定得到了相機(jī)坐標(biāo)系下機(jī)械臂底座的位姿H(C-W),模板匹配定位是確定了工件坐標(biāo)系相對(duì)于相機(jī)的位姿H(A-C),通過(guò)讓機(jī)械臂直接讀取H(W-B),可以獲得機(jī)械臂末端坐標(biāo)系相對(duì)于機(jī)械臂基坐標(biāo)系的位姿。
工件坐標(biāo)系相對(duì)于機(jī)械臂末端坐標(biāo)系的位姿為
在本實(shí)驗(yàn)中,機(jī)械臂末端需要在2 塊焊板之間移動(dòng),利用基于VisionPro 軟件完成的視覺(jué)定位技術(shù),對(duì)機(jī)械臂末端進(jìn)行精確定位。而后,通過(guò)對(duì)機(jī)械臂控制系統(tǒng)的編程來(lái)控制機(jī)械臂末端按照預(yù)先設(shè)定的軌跡進(jìn)行運(yùn)動(dòng),實(shí)現(xiàn)對(duì)焊板的自動(dòng)焊接。
本試驗(yàn)在Win10 系統(tǒng)下,采用C# 的語(yǔ)言環(huán)境,利用VisionPro 開發(fā)軟件進(jìn)行開發(fā),手眼標(biāo)定的目標(biāo)物體三維特征明顯,視覺(jué)系統(tǒng)操作界面如圖6 所示。
圖6 視覺(jué)系統(tǒng)操作界面Fig.6 Visual system operating interface
視覺(jué)引導(dǎo)的機(jī)械臂末端軌跡規(guī)劃與控制的目的之一是獲取機(jī)械臂底座坐標(biāo)系上目標(biāo)物的坐標(biāo),通過(guò)相機(jī)拍攝的標(biāo)定,對(duì)圖像上的坐標(biāo)與機(jī)械臂的底座坐標(biāo)系進(jìn)行匹配,定位到目標(biāo)物便可以獲取其位置。
為了找到所需的目標(biāo)物,采用了VisionPro 開發(fā)軟件中的3DPatMaxTool 工具,該工具通過(guò)內(nèi)置的模板匹配技術(shù)來(lái)辨識(shí)目標(biāo)物,3DPatMaxTool 工具的輸入圖像是攝像機(jī)標(biāo)定后的圖像,目標(biāo)物的位置可以在工控機(jī)上直接輸出機(jī)械臂底座坐標(biāo)系上的坐標(biāo)。接著繼續(xù)使用以下工具Cog3D Range Grey Splitter Script3D 范圍灰色拆分器腳本,目的是將高度和灰度圖像(16 位Range)分離為高度圖像(16 位Range)和灰度圖像(16 位Grey),以便于軟件進(jìn)行模板匹配工作。
康耐視3D 點(diǎn)云相機(jī)拍攝一次照片會(huì)同時(shí)得到2D 成像照片和3D 點(diǎn)云圖兩種數(shù)據(jù)。然而在視覺(jué)定位軟件系統(tǒng)中,僅能直接使用2D 成像照片數(shù)據(jù),而無(wú)法直接讀取3D 點(diǎn)云圖數(shù)據(jù)。因此,需要通過(guò)代碼編寫的方式,將2D 成像照片中的坐標(biāo)點(diǎn)轉(zhuǎn)換為3D點(diǎn)云的坐標(biāo),增加一個(gè)坐標(biāo)軸的坐標(biāo)信息,以便于實(shí)現(xiàn)3D 點(diǎn)云圖像的使用。
文中所拍攝的6 幀點(diǎn)云圖片同時(shí)記錄了機(jī)械臂末端執(zhí)行器在機(jī)器人坐標(biāo)系下的位置,如表1 所示。表1 中X,Y,Z,UX,UY,UZ 分別代表六軸機(jī)械臂執(zhí)行器在機(jī)械臂基座坐標(biāo)系的坐標(biāo)。
表1 機(jī)器人六軸坐標(biāo)(相對(duì)于機(jī)械臂基座坐標(biāo)系)Tab.1 Robot six-axis coordinates(relative to arm base coordinates)
完成所有訓(xùn)練之后,進(jìn)行機(jī)械臂末端移動(dòng)實(shí)驗(yàn),改變工件的位置并使用相機(jī)進(jìn)行拍照定位,識(shí)別出的目標(biāo)物與模板進(jìn)行匹配,以坐標(biāo)的形式發(fā)送到工控機(jī),保存在設(shè)置好的路徑,然后傳輸給機(jī)械臂,機(jī)械臂末端可到達(dá)所需的位姿。標(biāo)定時(shí)共拍攝6 組照片,如圖7 所示。
圖7 點(diǎn)云標(biāo)定圖Fig.7 Point cloud calibration map
將訓(xùn)練好的1 組圖像與其他的5 組圖像使用3DPatMax 能快速匹配出標(biāo)定物的點(diǎn)云特征,按照式(5)可以得到5 個(gè)F 矩陣。通過(guò)對(duì)機(jī)械臂基座的位置信息和相機(jī)的外參矩陣,對(duì)EX=XF 進(jìn)行求解,最終得到手眼關(guān)系矩陣X:
再移動(dòng)工件的位置,進(jìn)行多次重復(fù)試驗(yàn),定位準(zhǔn)確率高達(dá)99%,3DPatMax 圖像定位得分為0.98。結(jié)果表明,每次都能定位到工件所需要到達(dá)的位置。
本文采用旋轉(zhuǎn)矩陣和平移向量以及3DPat-MaxTool 工具對(duì)眼在手外的手眼標(biāo)定系統(tǒng)康耐視3D點(diǎn)云相機(jī)進(jìn)行了圖像匹配定位和標(biāo)定,隨后基于成熟的可視化開發(fā)軟件,采用標(biāo)定好的相機(jī)進(jìn)行對(duì)視覺(jué)系統(tǒng)的二次開發(fā),以確保其可靠性。實(shí)驗(yàn)結(jié)果表明,采用PatMax 視覺(jué)引導(dǎo)的機(jī)械臂末端軌跡規(guī)劃與控制系統(tǒng)能夠快速地進(jìn)行應(yīng)用程序開發(fā),并準(zhǔn)確地定位訓(xùn)練并識(shí)別特征物品的位置,在實(shí)現(xiàn)工業(yè)自動(dòng)化,特別是機(jī)器人的精確控制方面具有重要實(shí)際應(yīng)用意義。