基于機(jī)器視覺的智能導(dǎo)覽機(jī)器人控制系統(tǒng)設(shè)計(jì)
1 引言
移動(dòng)機(jī)器人是機(jī)器人學(xué)一個(gè)重要分支,且隨著相關(guān)技術(shù)的迅速發(fā)展,它正向著智能化和多樣化方向發(fā)展,應(yīng)用廣泛,幾乎滲透所有領(lǐng)域。于春和采用激光雷達(dá)的方式檢測道路邊界,效果較好,但干擾信號很強(qiáng)時(shí),就會(huì)影響檢測效果。付夢印等提出以踢腳線為參考目標(biāo)的導(dǎo)航方法,可提高視覺導(dǎo)航的實(shí)時(shí)性。
這里采用視覺導(dǎo)航方式,機(jī)器人在基于結(jié)構(gòu)化道路的環(huán)境下實(shí)現(xiàn)道路跟蹤,目標(biāo)點(diǎn)的???,以及導(dǎo)游解說,并取得較好的效果。
2 導(dǎo)覽機(jī)器人簡介
導(dǎo)覽機(jī)器人用在大型展覽館、博物館或其他會(huì)展中心,引導(dǎo)參訪者沿著固定路線參訪,向參訪者解說以及進(jìn)行簡單對話。因此導(dǎo)覽機(jī)器人必須具有自主導(dǎo)航、路徑規(guī)劃、智能避障、目標(biāo)點(diǎn)的??颗c定位、語音解說以及能與參訪者進(jìn)行簡單對話等功能,并具有對外界環(huán)境快速反應(yīng)和自適應(yīng)能力?;趯哟谓Y(jié)構(gòu),導(dǎo)覽機(jī)器人可分為:人工智能層、控制協(xié)調(diào)層和運(yùn)動(dòng)執(zhí)行層。其中人工智能層主要利用CCD攝像頭規(guī)劃和自主導(dǎo)航機(jī)器人的路徑,控制層協(xié)調(diào)完成多傳感信息的融合,而運(yùn)動(dòng)執(zhí)行層完成機(jī)器人行走。圖1為智能導(dǎo)覽機(jī)器人的總體結(jié)構(gòu)框圖。
3 導(dǎo)覽機(jī)器人硬件設(shè)計(jì)
3.1 人工智能層硬件實(shí)現(xiàn)
考慮到移動(dòng)機(jī)器人控制系統(tǒng)要求處理速度快、方便外圍設(shè)備擴(kuò)展、體積和質(zhì)量小等要求,因此上位機(jī)選用PC104系統(tǒng),其軟件用C語言編程。采用USB攝像頭,采集機(jī)器人前方的視覺信息,為機(jī)器人視覺導(dǎo)航,路徑規(guī)劃提供依據(jù)。外設(shè)麥克和揚(yáng)聲器,當(dāng)機(jī)器人到達(dá)目標(biāo)點(diǎn)后,進(jìn)行導(dǎo)覽解說。
3.1.1 控制協(xié)調(diào)層的硬件實(shí)現(xiàn)
機(jī)器人傳感器的選取應(yīng)取決于機(jī)器人的工作需要和應(yīng)用特點(diǎn)。這里選用超聲波傳感器、紅外傳感器、電子羅盤及陀螺儀,采集機(jī)器人周圍環(huán)境信息,為機(jī)器人避障、路徑規(guī)劃提供幫助。利用ARM處理平臺,通過RS-485總線驅(qū)動(dòng)電機(jī),驅(qū)動(dòng)機(jī)器人行走。
導(dǎo)覽機(jī)器人要求傳感器精度稍高,重復(fù)性好,抗干擾能力強(qiáng),穩(wěn)定性和可靠性高。機(jī)器人在行進(jìn)過程中必須能夠準(zhǔn)確獲得其位置信息,數(shù)字羅盤可靠輸出航向角,陀螺儀測量偏移并進(jìn)行必要修正,以保證機(jī)器人行走的方向不偏離。采用超聲波傳感器和紅外傳感器相結(jié)合的方法獲取前方障礙物信息。該系統(tǒng)設(shè)計(jì)選用6個(gè)超聲波傳感器和6個(gè)紅外傳感器。其中,正前方和正后方各1個(gè),其余4個(gè)超聲波傳感器分別位于正前方和正后方的兩邊,夾角為45°,紅外傳感器分別安裝在超聲波傳感器的正上方1~2 cm處。超聲波傳感器主要通過測距實(shí)現(xiàn)避障,而紅外傳感器主要是用于補(bǔ)償超聲波傳感器的盲區(qū),判斷近距離是否有障礙物。
3.1.2 運(yùn)動(dòng)執(zhí)行層的硬件實(shí)現(xiàn)
該智能導(dǎo)覽機(jī)器人的執(zhí)行機(jī)構(gòu)采用直流伺服電機(jī)。這里選用三洋電機(jī)Super_L (24 V/3.7 A)額定輸出功率為60 W,最大空載轉(zhuǎn)速為3 000 r/rain,并帶500線的光學(xué)碼盤,使機(jī)器人完成相應(yīng)動(dòng)作。導(dǎo)覽機(jī)器人采用閉環(huán)控制,通過光學(xué)碼盤測量車輪速度的實(shí)際值并反饋給微控制器?;趯?shí)際轉(zhuǎn)速與給定轉(zhuǎn)速的差值,驅(qū)動(dòng)器按一定的計(jì)算方法(如PID算法)調(diào)整相應(yīng)電壓,如此反復(fù),直到達(dá)到給定轉(zhuǎn)速。機(jī)器人調(diào)速采用FAULHABER公司的 MCDC2805實(shí)現(xiàn)。它能實(shí)現(xiàn)速度同步性能,同時(shí)轉(zhuǎn)矩波動(dòng)最小,內(nèi)置PI調(diào)節(jié)器能準(zhǔn)確到達(dá)指定位置。當(dāng)配備Super_L電機(jī)及集成編碼器時(shí),即使在轉(zhuǎn)速非常低的情況下,也能達(dá)到0.180的定位控制精度。
3.2 導(dǎo)覽機(jī)器人軟件設(shè)計(jì)
通過USB攝像頭或其他攝像頭采集導(dǎo)覽機(jī)器人前方的視覺信息,通過圖像處理算法處理視頻,使機(jī)器人能夠進(jìn)行路徑規(guī)劃和自主導(dǎo)航。通過接收下層的多傳感融合信息,能夠?qū)崿F(xiàn)近距離的避障,因此在遇到障礙物時(shí)進(jìn)行報(bào)警。到達(dá)目標(biāo)點(diǎn)后,能夠語音解說,解說完后能與參訪者進(jìn)行簡單對話。
4 視覺導(dǎo)航
視覺導(dǎo)航是移動(dòng)機(jī)器人一種導(dǎo)航方式,并且基本視覺導(dǎo)航的研究是未來移動(dòng)機(jī)器人導(dǎo)航的主要發(fā)展方向之一。該視覺子系統(tǒng)在整個(gè)系統(tǒng)中的作用是將攝像頭采集周圍環(huán)境的視覺信息進(jìn)行圖像理解,并根據(jù)圖像處理算法控制機(jī)器人運(yùn)動(dòng)。所謂“圖像理解”就是通過處理圖像數(shù)據(jù)來獲得對圖像所反映的場景的理解,包括圖像中含有哪些物體以及它們在圖像中的位置。罔像中蘊(yùn)含豐富信息,只需從中提取出有用信息即可。因此,罔像理解算法往往是根據(jù)具體目的而制定的,有一定的適用條件和局限性。
4.1 圖像預(yù)處理
原始圖像為Logiteeh攝像頭采集的一幅室內(nèi)用藍(lán)色標(biāo)簽制作的結(jié)構(gòu)化道路圖片,像素大小為320x240,首先將原始圖像進(jìn)行灰度變換,并通過選取合適的閾值進(jìn)行二值化處理。然后提取罔像有用信息,通過形態(tài)學(xué)的膨脹腐蝕等操作提取前進(jìn)方向。如圖2所示。
圖3為常見的邊緣算子檢測效果比較。從圖3中可看出Canny和Sobel算子檢測效果相對好些,其中Sobel算子對噪聲具有平滑作用,能提供較為精確的邊緣方向信息。這里采用Sobel算子進(jìn)行檢測,如圖4所示。
根據(jù)圖4,系統(tǒng)通過hough變換檢測兩條直線的位置,測出圖像的兩條邊緣線離兩端的像素大小,再根據(jù)實(shí)際地面距離進(jìn)行標(biāo)定,便可獲知機(jī)器人所在位置。
4.2 模板匹配算法
模板匹配技術(shù)是圖像目標(biāo)識別技術(shù)中一個(gè)重要的研究方向,具有算法簡單、計(jì)算量小以及識別率高等特點(diǎn),目前在目標(biāo)識別領(lǐng)域得到廣泛應(yīng)用。它是用一個(gè)較小的圖像,將模板與源圖像相比較,確定在源圖像中是否存在與該模板相同或相似的區(qū)域,若該區(qū)域存在,可確定其位置并提取該區(qū)域。它常采用模板與源圖像對應(yīng)區(qū)域的誤差平方和作為測度。
設(shè)f(x,y)為MxN的源圖像,g(s,t)為SxT(s≤M,T≤N)的模板圖像,則誤差平方和測度定義為:
當(dāng)A為常數(shù)時(shí),則可用2B相匹配,當(dāng)D(x,y)取得最大值時(shí),便認(rèn)為模板與圖像相匹配。通常假設(shè)A為常數(shù)時(shí)會(huì)產(chǎn)生誤差。嚴(yán)重時(shí)將無法正確匹配,因此可用歸一化互相關(guān)作為誤差平方和測度,定義為:
4.3 模板匹配改進(jìn)算法
但是按模板匹配算法求匹配計(jì)算工作量非常大,考慮到相關(guān)是卷積的一種特定形式以及 Matlab計(jì)算功能的強(qiáng)大,采用FFT方法,在頻域中計(jì)算后再進(jìn)行逆變換即可求出。圖像和定位模板圖像旋轉(zhuǎn)180°的傅里葉變換后作點(diǎn)乘運(yùn)算,再求其逆 FFT變換并返回空間域值也就相當(dāng)于相關(guān)運(yùn)算。在求取空間域值的最大值后,再根據(jù)最大值選取合適的閾值,便可確定目標(biāo)點(diǎn)的位置。實(shí)驗(yàn)中在模板匹配成功后,可將目標(biāo)和背景顏色二值化,并用紅色“十”字符號標(biāo)記,不斷更新數(shù)據(jù)信息。將??奎c(diǎn)設(shè)定在自己期望的像素位置(如圖像的中心位置偏下),然后自動(dòng)調(diào)整機(jī)器人位置,設(shè)計(jì)成如圖5形式,可知機(jī)器人需要向右行駛。
圖6為視覺導(dǎo)航算法流程。
5 實(shí)驗(yàn)結(jié)果與結(jié)論
基于以上設(shè)計(jì),對進(jìn)行機(jī)器人運(yùn)動(dòng)控制和路徑規(guī)劃進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)分別采用Matlab語言進(jìn)行圖像仿真,能夠自動(dòng)選擇合適的閾值分割,并得到較好的邊緣檢測,然而在實(shí)驗(yàn)中有時(shí)會(huì)因?yàn)楣庹諒?qiáng)度或其他因素影響,在進(jìn)行閾值分割時(shí)不能達(dá)到理想效果,在 VC環(huán)境下能夠控制機(jī)器人運(yùn)動(dòng),模板匹配取得較好效果,后續(xù)將著重在Visual C++6.0環(huán)境進(jìn)行圖像處理方法研究。這樣可以更好控制機(jī)器人運(yùn)動(dòng)??傊?,該系統(tǒng)設(shè)計(jì)可使機(jī)器人能夠在復(fù)雜多變的環(huán)境下準(zhǔn)確識別圖像信息,并做出正確決策,完成所需動(dòng)作,從而實(shí)現(xiàn)既定目標(biāo)。
pid控制相關(guān)文章:pid控制原理
c++相關(guān)文章:c++教程
伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理
pid控制器相關(guān)文章:pid控制器原理
攝像頭相關(guān)文章:攝像頭原理
評論