基于計(jì)算機(jī)視覺的移動(dòng)機(jī)器人導(dǎo)航
現(xiàn)代機(jī)器人技術(shù)在人工智能、計(jì)算機(jī)技術(shù)和傳感器技術(shù)的推動(dòng)下獲得了飛速發(fā)展,其中移動(dòng)機(jī)器人因具有可移動(dòng)性和自治能力,能適應(yīng)環(huán)境變化被廣泛用于物流、探測(cè)、服務(wù)等領(lǐng)域。移動(dòng)機(jī)器人的核心技術(shù)之一是導(dǎo)航技術(shù),特別是自主導(dǎo)航技術(shù)。由于環(huán)境的動(dòng)態(tài)變化和不可預(yù)測(cè)性、機(jī)器人感知手段的不完備等原因,使得移動(dòng)機(jī)器人的導(dǎo)航難度較大,一直是人們研究的重點(diǎn)。
本文引用地址:http://butianyuan.cn/article/89715.htm目前常用的一種導(dǎo)航方式是“跟隨路徑導(dǎo)引”,即機(jī)器人通過對(duì)能感知到某些外部的連續(xù)路徑參考信息做出相應(yīng)的反應(yīng)來(lái)導(dǎo)航。如在機(jī)器人運(yùn)動(dòng)路徑上敷設(shè)金屬導(dǎo)線或磁釘,通過檢測(cè)金屬導(dǎo)線或磁釘?shù)奶卣餍畔?lái)確定機(jī)器人的位置。從導(dǎo)航的角度看,這種方法的優(yōu)點(diǎn)是可靠性較高,但功能單一,如不能在行進(jìn)的同時(shí)對(duì)目標(biāo)進(jìn)行識(shí)別、避障,對(duì)環(huán)境的適應(yīng)能力較弱、靈活性較差、維護(hù)成本較高,因此限制了其在移動(dòng)機(jī)器人中的應(yīng)用。
隨著計(jì)算機(jī)技術(shù)、數(shù)字圖像處理技術(shù)及圖像處理硬件的發(fā)展,基于計(jì)算機(jī)視覺的導(dǎo)航方式在機(jī)器人導(dǎo)航中得到廣泛關(guān)注。在實(shí)際應(yīng)用中,只需要在路面上畫出路徑引導(dǎo)線,如同在公共交通道路上畫的引導(dǎo)線一樣,機(jī)器人就可以通過視覺進(jìn)行自主導(dǎo)航。相對(duì)于敷設(shè)金屬導(dǎo)線、磁釘?shù)确椒ǎ@種方法增強(qiáng)了系統(tǒng)的靈活性,降低了維護(hù)成本。視覺信息中包含有大量的數(shù)據(jù),要從中提取有用的信息,需要復(fù)雜的算法及耗時(shí)的計(jì)算。如何保證視覺導(dǎo)航系統(tǒng)在正確理解路徑信息的前提下仍具有較好的實(shí)時(shí)性和魯棒性,是該方法要解決的核心問題。
1 視覺導(dǎo)航系統(tǒng)構(gòu)成及工作過程
基于計(jì)算機(jī)視覺的移動(dòng)機(jī)器人導(dǎo)航實(shí)驗(yàn)系統(tǒng)的硬件部分由計(jì)算機(jī)、USB接口的攝像頭、LEGO實(shí)驗(yàn)用機(jī)器人組成。軟件分為2部分,即圖像處理和機(jī)器人運(yùn)動(dòng)控制?;谝曈X導(dǎo)航的原始輸入圖像是連續(xù)的數(shù)字視頻圖像。系統(tǒng)工作時(shí),圖像預(yù)處理模塊首先對(duì)原始的輸入圖像進(jìn)行縮小、邊緣檢測(cè)、二值化等預(yù)處理。其次利用哈夫變換提取出對(duì)機(jī)器人有用的路徑信息。最后,運(yùn)動(dòng)控制模塊根據(jù)識(shí)別的路徑信息,調(diào)用直行或轉(zhuǎn)彎功能模塊使機(jī)器人做相應(yīng)的移動(dòng)。整個(gè)工作流程如圖1所示。
1.1 視覺導(dǎo)航的圖像預(yù)處理
目前圖像采集設(shè)備都具有較高的空間和灰度分辨率,精度高、數(shù)據(jù)量大。
實(shí)驗(yàn)中的原始輸入圖像是USB攝像頭采集320×240像素的RGB格式圖像,最大幀數(shù)30幀/s。
圖像預(yù)處理的效果對(duì)后續(xù)哈夫變換檢測(cè)路徑信息的速度和準(zhǔn)確性有很大影響。對(duì)整幅圖像進(jìn)行抽取時(shí)計(jì)算量過大、也無(wú)必要,故先將彩色圖像轉(zhuǎn)換為灰度圖像,再將圖像的大小依據(jù)最近鄰域插值法原理進(jìn)行縮小以節(jié)約后續(xù)計(jì)算時(shí)間。在實(shí)驗(yàn)室環(huán)境下,經(jīng)測(cè)試,將原始圖像縮小到30%仍然能滿足需要,處理時(shí)間縮短了72%。
由于圖像傳感器從時(shí)間和空間上對(duì)介質(zhì)(光)采樣,其圖像質(zhì)量對(duì)現(xiàn)場(chǎng)的非均勻光場(chǎng)和其他干擾因素非常敏感,二值化時(shí),不同光照條件下閾值的確定是一件比較困難的工作。目前常用的閾值選取方法有雙峰法、迭代法和最大類間方差法。從執(zhí)行時(shí)問和處理效果2方面考慮,對(duì)3種方法比較后(結(jié)果如表1所示),在優(yōu)先考慮實(shí)時(shí)性的前提下,選用雙峰法來(lái)求取閾值。在實(shí)驗(yàn)室條件下,路徑環(huán)境相對(duì)理想,黑色引導(dǎo)線與背景反差較大。在灰度直方圖上,引導(dǎo)線和背景都形成高峰,對(duì)這2個(gè)峰值及谷底的求取也可簡(jiǎn)化,使用灰度級(jí)的最大值和最小值代替2個(gè)峰值,那么這2個(gè)峰值的中間值即可作為谷底用作圖像的閾值。
地面的反光和陰影,以及不均勻的光照都會(huì)導(dǎo)致同一幅圖像的二值化效果表現(xiàn)出很大差別,圖2和圖3是對(duì)同一幅圖像在不同光照條件下二值化的結(jié)果,可以看到在光照條件2下會(huì)出現(xiàn)大量的黑點(diǎn),這些黑點(diǎn)將嚴(yán)重影響提取路徑信息的速度并且可能導(dǎo)致錯(cuò)誤的路徑信息。然而,相對(duì)于灰度、顏色特征,邊緣特征受光照影響較小。為此,對(duì)縮小后的圖像先進(jìn)行引導(dǎo)線的邊緣檢測(cè),邊緣檢測(cè)后圖像中引導(dǎo)線邊緣像素灰度的對(duì)比度得到增強(qiáng),通過實(shí)驗(yàn)確定合適的閾值,然后對(duì)圖像進(jìn)行二值化以提取路徑信息。
1.2 引導(dǎo)線角度檢測(cè)
采用哈夫變換檢測(cè)路徑引導(dǎo)線的角度。為了簡(jiǎn)單而又不失一般性,引導(dǎo)線分1條路徑和2條相交的路徑。當(dāng)2條直線的夾角等于90°時(shí)即認(rèn)為是兩條相互垂直的路徑。直線的哈夫變換利用如下直線的極坐標(biāo)方程:
式(1)中,(x,y)表示圖像空間xy中所有共線的點(diǎn)即圖像中的黑點(diǎn);θ表示直線法線和x軸的夾角,取值范圍為0~180°;λ表示直線到原點(diǎn)的距離。
2 視覺導(dǎo)航的機(jī)器人運(yùn)動(dòng)控制
機(jī)器人運(yùn)動(dòng)控制部分分為直行控制和轉(zhuǎn)彎控制2部分。
2.1 直行控制
如果哈夫變換的檢測(cè)結(jié)果表明是一條直線即機(jī)器人視野中只有1條主引導(dǎo)線時(shí),則運(yùn)行直行模塊。實(shí)際中有2種情況需要考慮:一是機(jī)器人的初始位置不一定正對(duì)引導(dǎo)線,二是在機(jī)器人的機(jī)電配置中,左右輪子的馬達(dá)運(yùn)動(dòng)不會(huì)絕對(duì)精確和對(duì)稱。這些會(huì)使機(jī)器人在運(yùn)動(dòng)中出現(xiàn)側(cè)偏??刹捎孟率龇椒ㄟM(jìn)行直行控制:根據(jù)引導(dǎo)線在圖像平面坐標(biāo)中的位置來(lái)判斷機(jī)器人的偏向。當(dāng)引導(dǎo)線位于圖像平面的左半邊,說明攝像頭的光軸與引導(dǎo)線不垂直且相對(duì)于引導(dǎo)線右偏,則命令機(jī)器人左轉(zhuǎn);當(dāng)引導(dǎo)線位于圖像平面的右半邊,說明攝像頭的光軸與引導(dǎo)線不垂直且相對(duì)于引導(dǎo)線左偏,則命令機(jī)器人右轉(zhuǎn);當(dāng)引導(dǎo)線在圖像平面兩邊均存在時(shí),則命令機(jī)器人不偏轉(zhuǎn)繼續(xù)直行。機(jī)器人在前進(jìn)過程中,根據(jù)圖像平面中引導(dǎo)線位置不斷調(diào)整方位,以一定的轉(zhuǎn)動(dòng)角度(轉(zhuǎn)動(dòng)角度盡量小,這樣機(jī)器人的擺動(dòng)幅度就會(huì)小)在直線路徑上行走。
2.2 轉(zhuǎn)彎控制
如果哈夫變換的檢測(cè)結(jié)果表明是兩條相互垂直的直線,即機(jī)器人的視野中出現(xiàn)轉(zhuǎn)彎路口,則開始運(yùn)行轉(zhuǎn)彎模塊。
機(jī)器人需要在距轉(zhuǎn)角合適的距離處開始運(yùn)行轉(zhuǎn)彎模塊,以保證機(jī)器人視野中始終具有引導(dǎo)線。如圖4所示,AB段表示攝像頭的縱向視野范圍,C點(diǎn)為轉(zhuǎn)角點(diǎn),機(jī)器人需要知道自身在實(shí)際二維平面中相對(duì)于轉(zhuǎn)角點(diǎn)C的距離即BC段距離。由圖像信息獲得現(xiàn)實(shí)世界坐標(biāo)系中的參數(shù),即所謂三維重建,這需要對(duì)基于計(jì)算機(jī)視覺的移動(dòng)機(jī)器人導(dǎo)航系統(tǒng)進(jìn)行攝像機(jī)標(biāo)定。
鑒于移動(dòng)機(jī)器人識(shí)別的引導(dǎo)線在地面上這一限制條件,并且攝像頭固定在機(jī)器人上,可以選擇機(jī)器人坐標(biāo)系為世界坐標(biāo)系,即世界坐標(biāo)系與機(jī)器人同步移動(dòng)。坐標(biāo)原點(diǎn)為標(biāo)定模板的左下角標(biāo)定點(diǎn)的中心,Zw軸垂直地面,XwYw平面即為地面。在該坐標(biāo)系下地面目標(biāo)的坐標(biāo)可以表示為(Xw,Yw,0),標(biāo)定模板由直徑5 mm、相距10 mm共72個(gè)圓點(diǎn)構(gòu)成,如圖5所示。
移動(dòng)機(jī)器人的攝像機(jī)標(biāo)定問題,如果忽略因物面與攝像機(jī)光軸不垂直造成的非線性,則可歸結(jié)為在二維世界坐標(biāo)系中求變換矩陣M。
世界坐標(biāo)系(Xw,Yw,Zw),Zw軸垂直地面,XwYw平面即為地面,在該坐標(biāo)系下地面目標(biāo)的坐標(biāo)P可以表示為(Xw,Yw,0)。式(2)中Xi,Yj(其中i=1,2,…,n,j=1,2,…,n)即為地面目標(biāo)的坐標(biāo)(Xw,Yw)。只要有4個(gè)標(biāo)定點(diǎn)就可以求解該線性方程組,分別測(cè)得其在地面上的坐標(biāo)(Xw,Yw,0),再根據(jù)由圖像處理的方法得到的圖像坐標(biāo)系中的像素坐標(biāo)(ui,vj)(其中i=1,2,…,n,j=1,2,…,n),即可求得變換矩陣M,M=[m11,m12,m14,m21,m22,m24,m31,m32]T,其中m34=1。變換矩陣M的元素取值受到攝像頭俯仰角和架設(shè)高度的影響。在實(shí)驗(yàn)室條件下,本系統(tǒng)選取BC=13 cm時(shí)開始運(yùn)行轉(zhuǎn)彎模塊。
在單目視覺的條件下,對(duì)于固定的俯仰角,為保證道路引導(dǎo)線不移出攝像頭視野范圍,必須控制機(jī)器人以一定的弧度轉(zhuǎn)彎,即沿弧線路徑執(zhí)行轉(zhuǎn)彎模塊。要做到這一點(diǎn),弧線的弧度必須選取合適。在轉(zhuǎn)彎過程中需要根據(jù)機(jī)器人的位置不斷調(diào)整機(jī)器人的運(yùn)動(dòng)速度和轉(zhuǎn)動(dòng)角度,具體過程如下:
(1)找出圖像中最后一行中點(diǎn)m的像素坐標(biāo)(um,vm),即攝像頭視野最下方的中點(diǎn),通過變換矩陣M將其轉(zhuǎn)換為世界坐標(biāo)系xyz中的位置(xm,ym),z軸垂直于xy平面即地面。
(2)找出圖像中轉(zhuǎn)角點(diǎn)t的像素坐標(biāo)(ut,vt),通過變換矩陣M求出其在世界坐標(biāo)系xyz中的位置(xt,yt)。
(3)以地面上轉(zhuǎn)角點(diǎn)為圓心的世界坐標(biāo)系定義為XYZ,Z軸垂直于XY平面即地面,求出弧線在此坐標(biāo)系中的方程,(x-a)2+(y-b)2=r2(a,b)表示在坐標(biāo)系XYZ下弧線所在圓的圓心,r表示圓的半徑。
(4)將xyz坐標(biāo)系下的坐標(biāo)點(diǎn)(xm,ym)轉(zhuǎn)換到XYZ坐標(biāo)系下,用坐標(biāo)(Xm,Ym)表示,如圖6所示。X軸與x的夾角為θ,XOY坐標(biāo)系的原點(diǎn)O即為轉(zhuǎn)角點(diǎn)t,則:
(5)弧線方程中當(dāng)y=Ym時(shí),求得X,比較x與Xm,若Xm-x>0,則命令機(jī)器人左轉(zhuǎn);若Xm-x<0,則命令機(jī)器人右轉(zhuǎn),否則直行。
本系統(tǒng)確定轉(zhuǎn)彎弧的半徑為20 cm,弧度為90°的弧線即可使機(jī)器人順利轉(zhuǎn)彎,機(jī)器人視野中始終保持引導(dǎo)線。
3 實(shí)驗(yàn)結(jié)果及結(jié)論
實(shí)驗(yàn)中選用的LEGO移動(dòng)機(jī)器人,其運(yùn)動(dòng)速度為8.57 cm/s(指令設(shè)定Power=25 RPM)。導(dǎo)航場(chǎng)地中畫有寬1 cm的黑色引導(dǎo)線,實(shí)驗(yàn)要求中機(jī)器人完全根據(jù)引導(dǎo)線自主運(yùn)動(dòng)。實(shí)驗(yàn)中,識(shí)別1幀圖像并且機(jī)器人根據(jù)識(shí)別的路徑信息運(yùn)行直行或轉(zhuǎn)彎模塊共需0.311 s,即機(jī)器人每處理1幀圖像移動(dòng)2.67 cm。實(shí)驗(yàn)室中的光照條件是機(jī)器人移動(dòng)時(shí)的主要干擾,而銳利的引導(dǎo)線邊緣受光照影響較小,對(duì)這些干擾有較好的濾除作用。經(jīng)過在陰天白天、晴天白天以及開燈和不開燈的情況下、晚上開燈的情況下、遮蓋物位于攝像頭上方50 cm處形成陰影情況下,機(jī)器人能正確的沿引導(dǎo)線移動(dòng)。同時(shí),當(dāng)攝像頭視野范圍內(nèi)引導(dǎo)線消失即認(rèn)為出現(xiàn)障礙物,機(jī)器人能發(fā)出前方有障礙物的報(bào)警信息。
可見上面所述方法有較好的實(shí)時(shí)性和魯棒性有一定的通用性,使得該視覺導(dǎo)航方法具有一定的應(yīng)用價(jià)值。只要光照條件變化不是非常劇烈,在工廠、醫(yī)院、辦公樓等環(huán)境中,機(jī)器人根據(jù)路徑引導(dǎo)線可自主到達(dá)目的地。
當(dāng)然,由于移動(dòng)機(jī)器人活動(dòng)場(chǎng)景的復(fù)雜性和動(dòng)態(tài)特性,以及視覺處理的復(fù)雜性,視覺導(dǎo)航還有很多需要解決的問題,例如當(dāng)導(dǎo)航場(chǎng)地出現(xiàn)較大面積的強(qiáng)烈反光、極暗的陰影時(shí)能否有效可靠的進(jìn)行移動(dòng)機(jī)器人的導(dǎo)航控制,這需要進(jìn)一步研究。另外,如何將視覺系統(tǒng)與本系統(tǒng)機(jī)器人平臺(tái)中的超聲波傳感器、光電傳感器及聲音傳感器在空間、時(shí)間及數(shù)據(jù)上進(jìn)行融合以提高系統(tǒng)的適應(yīng)性和環(huán)境識(shí)別能力也是一個(gè)研究方向。
攝像頭相關(guān)文章:攝像頭原理
評(píng)論