張青春,姚 勝,郭振久,何孝慈
(淮陰工學(xué)院自動(dòng)化學(xué)院,江蘇 淮安 223003)
隨著工業(yè)生產(chǎn)越來(lái)越自動(dòng)化、智能化,工業(yè)機(jī)器人的應(yīng)用也越來(lái)越普遍。機(jī)械臂作為機(jī)器人的分支之一,在工業(yè)生產(chǎn)中發(fā)揮著重要的作用,機(jī)械臂與機(jī)器視覺(jué)的結(jié)合使機(jī)械臂得到更廣泛的應(yīng)用,機(jī)械臂抓取物料的速度和精度問(wèn)題一直都是研究的焦點(diǎn)。在圖像處理方面,對(duì)目標(biāo)識(shí)別和定位時(shí)間的快慢直接影響機(jī)械臂的工作效率[1-3]。
機(jī)械臂在抓取物料的過(guò)程中,對(duì)物料的識(shí)別和定位是機(jī)械臂抓取系統(tǒng)的關(guān)鍵問(wèn)題。在實(shí)際物料抓取時(shí),系統(tǒng)會(huì)面臨一些結(jié)構(gòu)化的和復(fù)雜的外部環(huán)境,為使系統(tǒng)具有從未知環(huán)境中獲取信息的能力,需要給機(jī)械臂配備攝像頭模塊,單目和雙目攝像頭模塊作為機(jī)械臂的眼睛,單目視覺(jué)建立全局空間定位模型,實(shí)現(xiàn)目標(biāo)的定位和障礙物的識(shí)別,同時(shí)將攝取的環(huán)境信息上傳至上位機(jī)[4]。雙目視覺(jué)攝取的左右圖像經(jīng)過(guò)極線校正,使圖像的每一行像素處于同一水平線上,然后基于改進(jìn)的BM立體匹配算法,完成目標(biāo)的空間定位,然后將目標(biāo)的三維信息傳轉(zhuǎn)換為驅(qū)動(dòng)參數(shù)遞給機(jī)械臂,驅(qū)動(dòng)機(jī)械臂抓取目標(biāo)。
基于AR技術(shù)機(jī)械臂物料抓取系統(tǒng)的硬件主要包括機(jī)械臂、單目攝像頭模塊、雙目攝像頭模塊、WiFi模塊等。系統(tǒng)硬件框圖如圖1所示,系統(tǒng)實(shí)驗(yàn)硬件搭建圖如圖2所示。
圖1 整體硬件架構(gòu)圖
圖2 系統(tǒng)實(shí)驗(yàn)硬件搭建圖
機(jī)械臂由支架和舵機(jī)組成。采用6個(gè)型號(hào)為ZX361D的總線舵機(jī),其供電范圍為5~8.4 V,舵機(jī)準(zhǔn)確度為0.24°,具有四種舵機(jī)模式和四種馬達(dá)模式,舵機(jī)模式為180°/270°順逆轉(zhuǎn)動(dòng)四種,馬達(dá)模式為定圈/定時(shí)順逆轉(zhuǎn)動(dòng)四種,擁有15 kg/cm扭矩,滿足系統(tǒng)實(shí)驗(yàn)需求。在夾爪的止推軸承處安裝壓力傳感器,通過(guò)壓力傳感器調(diào)節(jié)夾爪的抓力。
系統(tǒng)中有兩個(gè)攝像頭模塊,分別為單目攝像頭模塊和雙目攝像頭模塊。其中,單目攝像頭獲取目標(biāo)及目標(biāo)周圍空間信息,建立全局空間模型,實(shí)現(xiàn)目標(biāo)物粗定位與障礙物識(shí)別并將攝取的環(huán)境信息上傳至上位機(jī);雙目攝像頭模塊根據(jù)雙目測(cè)距原理計(jì)算出目標(biāo)的深度信息,將目標(biāo)的位置信息轉(zhuǎn)化為世界坐標(biāo)[5]。
系統(tǒng)采用飛凌RK3399嵌入式計(jì)算機(jī),其核心板基于瑞芯微公司的RK3399處理器設(shè)計(jì)。具備2個(gè)ARMCortex-A72內(nèi)核,主頻1.8GHz;4個(gè)ARM Cortex-A53內(nèi)核,主頻1.4GHz;GPU采用Mali-T864,支持 OpenGL ES 1.1/2.0/3.0/3.1,OpenVG1.1,OpenCL,DX11;板載2 GB LPDDR3 RAM,16 GB eM-MCROM。在主板上裝有2.4 GHz和5 GHz雙頻WiFi模塊,傳輸速度在433 MB/s以上,滿足系統(tǒng)需求。
系統(tǒng)的軟件部分的設(shè)計(jì)包括單目視覺(jué)程序,雙目視覺(jué)程序和機(jī)械臂控制程序。系統(tǒng)收到開始指令后,開始工作,首先進(jìn)行軟硬件初始化,接著,啟動(dòng)單目視覺(jué)程序,首先對(duì)單目攝像頭進(jìn)行標(biāo)定,接著獲取環(huán)境信息,建立全局空間定位模型,實(shí)現(xiàn)障礙物的識(shí)別和基于顏色特征檢測(cè)對(duì)目標(biāo)的粗定位,同時(shí)將環(huán)境信息上傳至上位機(jī),上位機(jī)界面如圖3所示;雙目視覺(jué)程序啟動(dòng),雙目攝像頭開始采集圖像,采集后的圖像經(jīng)過(guò)極線校正操作得到在同一水平線上的左右視圖,縮小匹配的區(qū)域,接著進(jìn)行BM立體匹配,通過(guò)三維重建獲得目標(biāo)的三維坐標(biāo),并將目標(biāo)位置三維坐標(biāo)轉(zhuǎn)化為世界坐標(biāo)系坐標(biāo),完成對(duì)目標(biāo)定位。獲取目標(biāo)位置信息以后,將目標(biāo)信息傳遞給嵌入式計(jì)算機(jī),輸出對(duì)應(yīng)的控制參數(shù),并通過(guò)USB串口將數(shù)據(jù)傳輸給機(jī)械臂系統(tǒng),驅(qū)動(dòng)機(jī)械臂系統(tǒng)的執(zhí)行機(jī)構(gòu)動(dòng)作,從而完成對(duì)目標(biāo)的抓取,再將目標(biāo)放到設(shè)定好的區(qū)域。圖4為系統(tǒng)流程圖。
圖4 系統(tǒng)流程圖
目標(biāo)物在一個(gè)平面內(nèi)活動(dòng),將這個(gè)平面定義為世界坐標(biāo)系中Zw=0的平面。此時(shí),通過(guò)以下變換將像素坐標(biāo)系轉(zhuǎn)換到世界坐標(biāo)系:
2.3.1 雙目測(cè)距原理
如圖5所示,將目標(biāo)P看做質(zhì)點(diǎn)且P在相機(jī)視線范圍內(nèi),分別將左右兩個(gè)相機(jī)的光心標(biāo)記為OL與OR,p和p'為點(diǎn)P在左右相機(jī)感光器上的成像點(diǎn),相機(jī)的焦距為f,兩個(gè)相機(jī)的中心距為B,點(diǎn)P在左右相機(jī)成像的圖像坐標(biāo)的XL和XR,目標(biāo)P到兩個(gè)相機(jī)光心連線的距離Z為需要計(jì)算的深度信息[6-7]。設(shè)點(diǎn)p'到點(diǎn)p的距離為dis,則:
圖5 雙目測(cè)距原理圖
根據(jù)相似三角形原理可得:
2.3.2 極線校正
在雙目視覺(jué)中,存在一個(gè)重要的幾何關(guān)系即極線幾何,如圖6所示,將左右相機(jī)的光心記為OL與OR,OL與OR之間的連線為基線,記為B,空間中的一點(diǎn)M與兩光心構(gòu)成的平面為極面π,極面π與左右圖像所在平面之間交線稱為極線。點(diǎn)M向點(diǎn)P處移動(dòng),點(diǎn)P在左右視圖上的極線與點(diǎn)M的極線的交點(diǎn)為極點(diǎn)el、er。同時(shí),el和er也是基線與左右各自成像平面相交的點(diǎn)[8]。
圖6 極線約束原理圖
系統(tǒng)采用bouguet算法進(jìn)行校正,經(jīng)計(jì)算得到R1,T1與R2,T2,R為旋轉(zhuǎn)矩陣,T為平移矩陣。左右圖像經(jīng)過(guò)分解得到的旋轉(zhuǎn)和平移矩陣變換后,重投影共同面積最大,使圖像的失真率在可控范圍內(nèi)。具體步驟如下:
首先旋轉(zhuǎn)左右相機(jī),使左右相機(jī)的光軸平行。公式如下:
構(gòu)造 e1。其方向與左右相機(jī)投影中心的平移向量方向相同,所以:
e2為圖像平面方向的向量,方向與主光軸方向正交,沿圖像方向,與e1垂直,則通過(guò)e1與主光軸方向的叉積并歸一化獲得:
最后,整體旋轉(zhuǎn)變換矩陣為各自的旋轉(zhuǎn)矩陣與變換矩陣乘積。經(jīng)過(guò)整體旋轉(zhuǎn)變換矩陣變換,左右相機(jī)光軸平行,基線與成像平面也平行。公式如下:
2.3.3 BM立體匹配算法
根據(jù)極線約束原理,校正后的左右圖像的對(duì)應(yīng)極線在同一水平線上,因此,可以在左視圖中選取模式目標(biāo),在同一水平線上的右視圖中尋找匹配點(diǎn)。立體匹配算法根據(jù)算法特點(diǎn)可以分為局部、全局、半全局和基于深度學(xué)習(xí)的立體匹配算法。其中局部立體匹配速度快,根據(jù)系統(tǒng)的功能需求選用屬于局部立體匹配的BM匹配算法[9]。
1)BM匹配算法原理
壞像素規(guī)則:若發(fā)現(xiàn)尾位的像素值不相等,則按如下兩種情況討論:
a.若末位的像素值在模式P中沒(méi)有出現(xiàn),則將模式P向右移動(dòng)m位;
b.若末位的像素值在模式P中出現(xiàn),則將在模式P中出現(xiàn)的最右位置與該像素值對(duì)齊。
好后綴規(guī)則:若尾部已有兩個(gè)或兩個(gè)以上的像素已匹配,則按如下兩種情況討論:
a.若在P中t至m處的像素值已匹配,已匹配部分記為P',且P'在1至t中也出現(xiàn),t–1處的像素點(diǎn)不匹配,則將P右移到1至t中出現(xiàn)的P'與待匹配像素組中出現(xiàn)的位置;
b.若P中沒(méi)有出現(xiàn)P',在P'之前搜索與P'最長(zhǎng)的子后綴P″相同的像素組X,向右移動(dòng)P,使X的首位與方才P″的首位對(duì)齊[10]。
2)改進(jìn)的BM匹配算法
在匹配過(guò)程中需要儲(chǔ)存兩個(gè)右移位置值d1和d2,d1為當(dāng)像素不匹配時(shí),首先計(jì)算模式串最右端像素對(duì)應(yīng)的像素T[i]的下一次右移位置,d2為計(jì)算T[i+1]確定的下一次右移位置。d1和d2的計(jì)算規(guī)則如下:
首先,考察模式串P的末像素P[m]與對(duì)應(yīng)的待匹配像素組T[m]是否匹配。若不匹配,則考慮T[m]的下一像素T[m+i],且利用壞像素規(guī)則,求得d1的值;
其次,考察像素T[i+m+d1–1],計(jì)算d2的值。
若像素T[i+m+d1–1]不在模式串中,則考察其下一像素T[i+m+d1]是否與P[1]相同。若相同,則將模式串P右移m+d1位,否則移動(dòng)m+d1+1位。
若像素T[i+m+d1–1]在模式串中,則計(jì)算d2的值是否為1。
a.d2≠1時(shí),將模式串右移d1+d2–1位;
b.當(dāng)d2=1時(shí),考察像素T[i+m+d1–1]是否與P[1]相同。若不同,則將模式右移,使得T[i+m+d1–1]與T[i+m+d1–1]像素的前一位對(duì)齊,否則按d2≠1時(shí)右移。
2.3.4 立體匹配
在實(shí)際匹配中,由于受到光線,左右相機(jī)參數(shù)等因素的影響,模式串P不能在待匹配像素組T中出現(xiàn),無(wú)法達(dá)到每一個(gè)像素一一對(duì)應(yīng),只能通過(guò)尋找T中與模式串P最相近的像素,因此,實(shí)際匹配需要進(jìn)行匹配代價(jià)計(jì)算、代價(jià)聚合和視差優(yōu)化三個(gè)步驟。
2.3.5 目標(biāo)三維重建
三維重建需要獲取目標(biāo)的深度信息Z,根據(jù)雙目測(cè)距原理,由已知的焦距,視差和光心距離即可求得。若需獲得目標(biāo)物在世界坐標(biāo)系中的的橫縱坐標(biāo)X、Y,則需要知道cx和cy。令左視圖中的目標(biāo)點(diǎn)為(x,y),視差為d,在以左相機(jī)坐標(biāo)系下的目標(biāo)點(diǎn)世界坐標(biāo)為(X,Y,Z),用Q來(lái)表示目標(biāo)點(diǎn)的物理坐標(biāo)與世界坐標(biāo)間的關(guān)系:
將圖像坐標(biāo)映射到相機(jī)三維空間中,通過(guò)Q按下式進(jìn)行變換:
實(shí)驗(yàn)采用Windows10操作系統(tǒng),AMD2600 3.4 GHz,16 GB內(nèi)存的臺(tái)式電腦,在 Visual Studio2013編程平臺(tái)和OpenCV3.0圖像處理庫(kù)協(xié)同編程實(shí)現(xiàn)改進(jìn)BM匹配算法。實(shí)驗(yàn)使用Middlebury公開數(shù)據(jù)集中的Cones、Teddy、Tsukuba、Venus四組圖片,同時(shí)與BM算法、SGBM算法比較算法的的運(yùn)行時(shí)間。實(shí)驗(yàn)結(jié)果如表1所示。
表1 立體匹配時(shí)間表 s
從實(shí)驗(yàn)數(shù)據(jù)可以看出,BM算法和改進(jìn)的BM算法運(yùn)行時(shí)間皆低于SGBM算法,原因是SGBM算法的復(fù)雜度比BM算法的高[12]。從表中還可以看出,改進(jìn)的BM匹配算法經(jīng)過(guò)對(duì)模式串P移動(dòng)規(guī)則的調(diào)整,確實(shí)能加快匹配速度。
在相同的打光、相機(jī)曝光情況下,抓取小木塊60次,記錄每次立體匹配時(shí)間和抓取時(shí)間,最終取平均值,結(jié)果如表2所示。
表2 實(shí)驗(yàn)結(jié)果
在60次的抓取實(shí)驗(yàn)中,均能成功抓取,其抓取的平均時(shí)間為12.358 s,平均立體匹配時(shí)間為5.167 s。滿足系統(tǒng)需求。由于標(biāo)定的方法、機(jī)械臂裝配以及電機(jī)精度等原因,機(jī)械臂產(chǎn)生的誤差如表3所示。
表3 機(jī)械臂誤差 mm
其中絕對(duì)誤差為實(shí)際坐標(biāo)和機(jī)械臂末端到達(dá)坐標(biāo)之間的距離,最大絕對(duì)誤差為60次中的絕對(duì)誤差最大值;平均誤差(x,y,z)中x,y,z分別為在x,y,z方向上的平均絕對(duì)誤差。
為快速識(shí)別運(yùn)動(dòng)中的目標(biāo),縮短反應(yīng)時(shí)間,提高抓取的速度,設(shè)計(jì)了基于AR技術(shù)機(jī)械臂物料抓取系統(tǒng)。在研究雙目視覺(jué)立體匹配時(shí),使用了一種改進(jìn)的BM匹配算法,在不影響誤匹配率的前提下,比傳統(tǒng)的BM匹配算法速度快,且結(jié)合了機(jī)械臂系統(tǒng)、視覺(jué)系統(tǒng)、計(jì)算機(jī)系統(tǒng)完成了機(jī)械臂物料抓取系統(tǒng)總體方案的設(shè)計(jì)。根據(jù)系統(tǒng)的功能需求,進(jìn)行了硬件系統(tǒng)的各模塊設(shè)計(jì),完成了系統(tǒng)軟件的流程設(shè)計(jì),最后進(jìn)行了立體匹配算法和目標(biāo)抓取的實(shí)驗(yàn)。實(shí)驗(yàn)表明:改進(jìn)的BM匹配算法在不影響誤匹配率的前提下,有效的縮短了匹配時(shí)間,因此,降低了機(jī)械臂抓取物料的時(shí)間,在要求實(shí)時(shí)性高的領(lǐng)域,具有很好的使用價(jià)值。