裴漢華,秦會(huì)斌
(杭州電子科技大學(xué) 新型電子器件與應(yīng)用研究所,浙江 杭州 310018)
隨著老齡化問(wèn)題不斷加劇,社會(huì)對(duì)于服務(wù)型機(jī)器人的需求進(jìn)一步增加,在我國(guó)餐飲業(yè)中,顧客點(diǎn)餐和送餐等服務(wù)是最繁雜的工作[1]。餐飲業(yè)勞動(dòng)力的成本越來(lái)越高。再加上社會(huì)老齡化的問(wèn)題日益加劇,傳統(tǒng)的以人為勞動(dòng)力的運(yùn)營(yíng)方式已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足社會(huì)的需求,同時(shí)面對(duì)全球的經(jīng)濟(jì)壓力,如何縮減成本也是各行各業(yè)都在考慮的問(wèn)題。
送餐機(jī)器人的導(dǎo)航方式的設(shè)計(jì)直接決定送餐的效率,常用的方案有以下幾種:(1)使用反射式紅外光電管[2];(2)使用激 光掃 描[3];(3)使用磁導(dǎo)引傳感器[4];(4)使 用GPS導(dǎo)航[5]。使用反射式紅外光電管,信號(hào)處理的速度較快,電路結(jié)構(gòu)也比較簡(jiǎn)單,但是感知前方道路的距離有限,容易受外界環(huán)境的干擾,精度低;使用激光掃描來(lái)導(dǎo)航,對(duì)環(huán)境無(wú)明顯要求,通過(guò)反光帶更改路線,但是成本太高;磁導(dǎo)引傳感器通過(guò)鋪設(shè)磁帶更改路線,柔性較好,但一般磁導(dǎo)航傳感器只能檢測(cè)磁條上方100 Gauss以下的微弱磁場(chǎng),容易受到周?chē)饘傥镔|(zhì)的干擾,檢測(cè)的結(jié)果容易產(chǎn)生偏差;使用GPS導(dǎo)航,環(huán)境的影響較小,穩(wěn)定性和精度都很高,只是成本太高。除了以上的幾種導(dǎo)航方式外,視覺(jué)導(dǎo)航的應(yīng)用也很廣泛。視覺(jué)識(shí)別導(dǎo)航通過(guò)采用CCD攝像機(jī)構(gòu)建視覺(jué)導(dǎo)引系統(tǒng),是實(shí)現(xiàn)智能導(dǎo)航的最佳方式之一,也是項(xiàng)具有潛力的實(shí)用技術(shù)[6]。使用CCD的最大優(yōu)勢(shì)在于能夠準(zhǔn)確地判斷出機(jī)器人前方較長(zhǎng)的一段距離上路面的走向,可以給機(jī)器人的控制提供更多的信息,能夠很好地彌補(bǔ)上述導(dǎo)航方案的缺陷。
本文采用雙目視覺(jué)系統(tǒng)來(lái)為智能送餐機(jī)器人提供路徑規(guī)劃,與傳統(tǒng)的路徑規(guī)劃相比成本較低,并且能夠?qū)崟r(shí)地采集和存儲(chǔ)圖像信息,方便以后的分析。系統(tǒng)中使用的立體匹配算法,能夠減小信息獲取處理過(guò)程中的計(jì)算量,緩解微處理器處理數(shù)據(jù)的壓力,使得整個(gè)系統(tǒng)具有處理速度快、穩(wěn)定性好、準(zhǔn)確度高等特點(diǎn)。
系統(tǒng)在工作時(shí),首先,圖像采集模塊通過(guò)左右兩個(gè)CCD攝像機(jī)來(lái)采集路徑上的圖像信息,同時(shí)利用視頻解碼器將模擬圖像轉(zhuǎn)換為數(shù)字圖像。然后對(duì)處理得到的數(shù)字圖像進(jìn)行預(yù)處理,包括特征提取、模式識(shí)別、匹配等步驟,其中最重要的環(huán)節(jié)就是三維重建。雙目視覺(jué)技術(shù)是實(shí)現(xiàn)三維重建的常用方法,一套完整的雙目視覺(jué)系統(tǒng)包含攝像機(jī)標(biāo)定、雙目校正、立體匹配、三維重建等過(guò)程[7]。三維重建后可以獲取目標(biāo)在世界坐標(biāo)系下的具體坐標(biāo),從而為智能機(jī)器人建立運(yùn)動(dòng)模型提供必要的參數(shù)信息。機(jī)器人的寄存器中存儲(chǔ)有室內(nèi)環(huán)境的坐標(biāo)信息,將獲取的路徑坐標(biāo)信息與室內(nèi)環(huán)境坐標(biāo)信息對(duì)比,分析數(shù)據(jù)差值得出結(jié)果,機(jī)器人將結(jié)果信息發(fā)送給主控模塊,由主控模塊控制機(jī)器人的各種運(yùn)動(dòng)。系統(tǒng)整體方案如圖1所示。
圖1 系統(tǒng)整體方案設(shè)計(jì)
基于上述原理,實(shí)現(xiàn)智能送餐機(jī)器人的自主識(shí)徑,其基本模塊組成如圖2所示。
電源模塊:電源模塊的功能為為系統(tǒng)的其他模塊提供所需的電源。兩個(gè)12 V串聯(lián)的蓄電池構(gòu)成外接電源,通過(guò)LM2596電壓調(diào)節(jié)器,將24 V的電壓分別轉(zhuǎn)換成5 V。
圖2 系統(tǒng)框圖
(1)信號(hào)采集模塊:通過(guò)CCD攝像機(jī)獲取道路的圖像信息,并經(jīng)過(guò)信息處理得到道路的相關(guān)參數(shù)。
(2)電機(jī)驅(qū)動(dòng)模塊:從微處理器的I/O端口輸出的電流無(wú)法直接驅(qū)動(dòng)電機(jī),因此需要另外加一個(gè)驅(qū)動(dòng)模塊。通過(guò)MC33886來(lái)控制驅(qū)動(dòng)電機(jī)兩端的電壓能夠靈活地實(shí)現(xiàn)機(jī)器人的加減速運(yùn)行。
(3)舵機(jī)驅(qū)動(dòng)模塊:利用PWM波來(lái)控制舵機(jī)輸出轉(zhuǎn)角。
通過(guò)CCD攝像機(jī)采集到的圖像信息,經(jīng)過(guò)攝像機(jī)標(biāo)定、雙目校正、立體匹配、三維重建等過(guò)程,得到路徑的坐標(biāo)信息,將信息處理過(guò)后交給主控模塊,從而控制機(jī)器人的運(yùn)動(dòng)。
雙目立體視覺(jué)系統(tǒng)以人的眼睛為出發(fā)點(diǎn),用兩個(gè)攝像頭代替人的雙眼,以此來(lái)還原人類(lèi)通過(guò)眼睛識(shí)別目標(biāo)的過(guò)程。一個(gè)完整的雙目立體視覺(jué)系統(tǒng)主要包括以下幾部分:雙目視覺(jué)系統(tǒng)標(biāo)定、圖像獲取、雙目校正、立體匹配和三維重建[10]。
3.2.1 雙目視覺(jué)系統(tǒng)標(biāo)定
攝像機(jī)參數(shù)分為內(nèi)、外參數(shù),雙目視覺(jué)系統(tǒng)標(biāo)定就是求取攝像機(jī)內(nèi)外參數(shù)的過(guò)程。
因?yàn)槌上駜x幾何中心和光軸間存在誤差,在獲取攝像頭的內(nèi)部參數(shù)時(shí),需要引入兩個(gè)參數(shù)cx與cy。另一方面,考慮到成像儀是矩形,而非理想的正方形,因此設(shè)x、y方向的焦距分別為fx和fy。三維的空間坐標(biāo)使用x、y、z來(lái)表示,q里的 x與y表示二維投影空間,w用于限制任意兩個(gè)點(diǎn)的交比不變化。利用投影變換,把世界坐標(biāo)下的Q點(diǎn)映射進(jìn)投影平面q中,如式(1)所示。
求取攝像頭的外部參數(shù),要考慮雙目視覺(jué)系統(tǒng)中左右兩個(gè)攝像頭的相對(duì)位置關(guān)系,主要由平移向量T和旋轉(zhuǎn)矩陣R共同表征。T和R就是要求的攝像頭的外部參數(shù),其關(guān)系如式(2)和式(3)所示。
其中,Rl和Rr分別表示的是左右攝像頭的旋轉(zhuǎn)矩陣,Tl和Tr則分別代表左右攝像頭的平移向量。
3.2.2 雙目校正
雙目標(biāo)定之后,為了使兩個(gè)圖像完全行對(duì)準(zhǔn),將上述的標(biāo)定結(jié)果通過(guò)Bouguet算法得到旋轉(zhuǎn)矩陣和平移向量來(lái)進(jìn)行雙目校正。該方法是為了使攝像頭獲取的左右兩幅圖像中的任意一幅的重投影次數(shù)最小,也就是為了使觀測(cè)的面積最大化。根據(jù)雙目標(biāo)定的結(jié)果得到的各參數(shù)將二維的點(diǎn)重投影到三維坐標(biāo)里,重投影矩陣M如式(4)所示。
其中(ax,ay)為主點(diǎn)在左側(cè)攝像機(jī)拍攝圖像里的坐標(biāo)是主點(diǎn)在右側(cè)攝像機(jī)拍攝圖像的x坐標(biāo),Tx是雙目間距,f是攝像機(jī)的焦距。經(jīng)過(guò)雙目校正后,可以很好地校正兩幅圖像中的桶形畸變,使得兩幅圖像實(shí)現(xiàn)行對(duì)準(zhǔn)。
3.2.3 立體匹配
在整個(gè)系統(tǒng)中,立體匹配是最為重要的一個(gè)環(huán)節(jié)。其原理是通過(guò)尋找校正后兩幅圖像間的對(duì)應(yīng)點(diǎn),然后計(jì)算該點(diǎn)的視覺(jué)差,以此來(lái)獲取三維信息。
立體匹配要考慮選擇匹配基元、選擇匹配準(zhǔn)則等諸多問(wèn)題,其中最重要的是確定立體匹配算法[11]。目前,主流的立體匹配算法主要指的是SGBM(Semi-Global Block Matching)算法。
SGBM算法的流程如下:首先選取所有圖像中每個(gè)像素點(diǎn)的 disparity,將其組成一個(gè) disparity map,然后,設(shè)置一個(gè)全局的能量函數(shù),使其與disparity map相關(guān),計(jì)算這個(gè)能量函數(shù)得到的最小值,得出的結(jié)果就是對(duì)應(yīng)的disparity的最優(yōu)解。能量函數(shù)的表達(dá)式如式(5)所示:
其中,D表示的是上面提到的disparity map。E(D)表示的是disparity map對(duì)應(yīng)的能量函數(shù)。p和q都指的是圖像中的某個(gè)像素,Np指的是像素p相鄰像素點(diǎn),P1和P2指的是懲罰系數(shù)。C(p,Dp)指的是當(dāng)前的像素點(diǎn)的disparity是Dp時(shí),該像素點(diǎn)的cost。當(dāng)函數(shù)條件為真,I函數(shù)返回1,為假則返回0??紤]到在二維圖像中獲得最優(yōu)解的復(fù)雜性,可以將問(wèn)題分解為多個(gè)一維問(wèn)題??紤]下面的函數(shù):
其中,R指的是指向當(dāng)前的像素p的某一個(gè)方向,Lr(p,d)指沿著當(dāng)前方向,目前像素的p的disparity取值為d時(shí),其最小的cost值。因?yàn)長(zhǎng)r(p,d)會(huì)隨著像素移動(dòng)而不斷增長(zhǎng),所以為了防止數(shù)值溢出,當(dāng)前像素的cost值需要減去前面像素取不同的disparity時(shí)最小的cost值。然后將不同方向上的所有cost值相加,選擇累加的cost值最小的disparity作為像素最終的disparity。
通過(guò)對(duì)每個(gè)對(duì)象進(jìn)行上述操作后,得到了整個(gè)圖像的disparity map。具體的公式如式(7)所示:
3.2.4 三維重建
三維重建指的是將從不同角度拍攝的獨(dú)幅圖像恢復(fù)物體在空間里的坐標(biāo)[12]。三維重建的原理如圖3所示,其中,p為世界坐標(biāo)系下物體上某一點(diǎn),P1、P2為攝像機(jī) C1、C2所成圖像平面上的投影,O1、O2為 C1、C2的光心,點(diǎn) p正好位于 O1P1和O2P2的連線上,即兩直線的交點(diǎn),所以點(diǎn)p的三維空間位置唯一確定。
圖3 三維重建原理模型
正常情況下,若雙目攝像機(jī)C1和C2已經(jīng)標(biāo)定,其各自的投影矩陣為M1、M2,點(diǎn)p在世界坐標(biāo)下的坐標(biāo)為t=[X,Y,Z,1]T,P1、P2在圖像坐標(biāo)系下的坐標(biāo)分別為[u1,v1,1]T、[u2,v2,1]T,可得:
聯(lián)立式(10)和式(11)可求出(X,Y,Z)的值。
由于智能送餐機(jī)器人是在室內(nèi)工作,考慮到室內(nèi)的面積,因此實(shí)驗(yàn)只模擬了30 m長(zhǎng),5 m寬的范圍內(nèi)機(jī)器人的運(yùn)行軌跡,同時(shí)和實(shí)際的運(yùn)行軌跡進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果如圖4所示。從圖中可以看出,仿真軌跡和機(jī)器人的實(shí)際軌跡大致相符。
圖4 軌跡擬合結(jié)果
為了更好地驗(yàn)證送餐機(jī)器人系統(tǒng)的穩(wěn)定性,對(duì)上述數(shù)據(jù)進(jìn)行進(jìn)一步處理。取不同的X值時(shí),計(jì)算對(duì)應(yīng)的Y方向上模擬路徑與實(shí)際路徑的差值,得出的誤差曲線如圖5所示。
圖5 測(cè)距誤差曲線
圖中的曲線表明,模擬路徑與實(shí)際路徑的差值,即:Y1-Y2的值主要集中在±0.2的范圍內(nèi),其最大誤差(Y1-Y2)max≈0.32 m,整體的平均誤差,基本能夠滿足智能送餐的要求。