張友方,王 銳,張 波
(1.解放軍炮兵學(xué)院,安徽 合肥 230031)
本文設(shè)計的智能小車是一種集實時采集傳感器信號,智能分析外部環(huán)境、路徑信息,自動方向控制及速度調(diào)節(jié)等技術(shù)的自動設(shè)備。本系統(tǒng)設(shè)計的智能小車具有圖形識別能力,能自動識別三角形、圓形、正方形和十字形,并將該立方體搬起,運(yùn)送到指定地點。而且,要求小車以最快的速度和最高的精度完成以上功能,此外,由于立方體任意放置,搬運(yùn)順序不限,還要求小車具有最優(yōu)路徑選擇的能力。
系統(tǒng)組成原理如圖1所示。主要由單片機(jī)模塊、上位機(jī)、視頻采集模塊、驅(qū)動電機(jī)、伺服電機(jī)及機(jī)械手、尋線模塊、碼盤檢測模塊以及目標(biāo)跟蹤等模塊構(gòu)成。采用了基于TWI總線規(guī)范的主從機(jī)控制方式,以AVR系列單片機(jī) ATMega 128作為控制系統(tǒng)的主模塊,ATMega88作為底層控制模塊,實現(xiàn)系統(tǒng)控制和信號檢測。
系統(tǒng)通過視頻采集模塊把整個場景圖像送到上位機(jī)處理,通過對圖像的二值化和Hough變換處理,分辨出幾種立方體的擺放順序,然后通過無線通訊方式發(fā)送給小車。小車的主單片機(jī)ATMega 128根據(jù)接收到的立方體擺放信息,規(guī)劃出最優(yōu)的搬運(yùn)路徑,然后將規(guī)劃后的指令發(fā)送給從機(jī),由從機(jī)驅(qū)動電機(jī)行進(jìn),控制小車的運(yùn)動和定位。小車檢測到相應(yīng)立方體后,由從機(jī)控制伺服電機(jī)驅(qū)動機(jī)械手將立方體夾起,送到指定地點,然后將立方體放下,繼續(xù)執(zhí)行下一次搬運(yùn)動作,直到將所有的立方體都按要求運(yùn)送到指定的位置。在小車搬運(yùn)過程中,目標(biāo)跟蹤模塊使用DSP對上位機(jī)采集到的視頻信息進(jìn)行處理,實時跟蹤小車的行進(jìn)路線,并由此畫出小車的行進(jìn)示意圖。
方案一:采用電機(jī)細(xì)分驅(qū)動,電機(jī)細(xì)分驅(qū)動芯片TA8435可以用兩路PWM信號控制兩個步進(jìn)電機(jī),能夠節(jié)省單片機(jī)資源,但致命的缺點是當(dāng)單片機(jī)速度變化較大時,電機(jī)很容易失控。
方案二:L298驅(qū)動芯片,用L298驅(qū)動雖然占用較多的單片機(jī)I/O口,但控制比較容易。在速度變化較大時,基本上不會出現(xiàn)電機(jī)失控的情況。本設(shè)計采用方案二,直流電機(jī)驅(qū)動電路主要由一個雙橋式驅(qū)動芯片L298和7404組成,電路圖如圖2所示。為使其準(zhǔn)確調(diào)整兩電機(jī)的速度,以控制小車行進(jìn)方向,必須精確控制PWM的占空比。若輸入左電機(jī)的PWM占空比大于右電機(jī),則小車右轉(zhuǎn);反之,則左轉(zhuǎn)。
方案一:可見光發(fā)光二極管與光敏二極管組成的發(fā)射-接收電路,該方案缺點在于易受外界環(huán)境光源的干擾,容易造成誤判,準(zhǔn)確度不高。
方案二:反射式紅外發(fā)射-接收器,對黑白檢測比較敏感,靈敏度較高,且電路簡單,完全滿足系統(tǒng)要求。
比較兩種方案,選用方案二。
采用紅外檢測單元電路,如圖3所示。反射式紅外發(fā)射-接收器檢測到信號后與比較器LM324的參考電壓相比較,當(dāng)檢測不到黑線時,發(fā)射管發(fā)出的光經(jīng)面板反射后被接收管接收,接收管導(dǎo)通,LM324輸出低電平,當(dāng)檢測到黑線時,發(fā)射管發(fā)出的紅外光將不被接收管接收,LM324輸出高電平。
碼盤測速電路如圖3所示,碼盤見圖4所示,對射式紅外發(fā)射-接受器檢測脈沖個數(shù),通過計算脈沖的周期來計算小車的行進(jìn)速度。
圖形識別模塊在本設(shè)計中起著至關(guān)重要的作用,其識別正確與否直接影響到小車搬運(yùn)的正確與否。本系統(tǒng)場景設(shè)置比較單一,圖形邊緣信息較為規(guī)則,故采用Hough變換實現(xiàn)圖形識別。
Hough變換是對圖像進(jìn)行某種形式的坐標(biāo)變換。它將原始圖像中給定形狀的曲線或直線變換成參數(shù)空間的一個點,即原始圖像中給定形狀的曲線和直線的所有的都集中到參數(shù)空間的某個點形成峰值點。這樣,就把原始圖像中給定形狀曲線或直線的檢測問題變成尋找參數(shù)空間中的峰值點問題。利用Hough變換檢測各種圖形的具體思路如下:
(1)檢測三角形:三角形由 3條邊組成,其對應(yīng)的參數(shù)空間3個中心點的橫坐標(biāo)分別表示三角形3條邊的法向量與x軸的夾角θ,從而可以計算出3條邊與x軸的夾角,從而可以檢測出三角形。識別前后結(jié)果如圖 5(a)、圖 5(b)所示。
(2)檢測圓形:把平面上的圓轉(zhuǎn)換到參數(shù)空間,則圖像空間中過任意一點的圓對應(yīng)于參數(shù)空間中的一個三維錐面,圖像空間中同一圓上的點對應(yīng)于參數(shù)空間中的所有三維錐面必然交于一點,從而可以檢測出圓形。識別前后結(jié)果如圖6(a)、圖 6(b)所示。
(3)檢測矩形:矩形的特征是由兩組相互垂直的平行線組成。對于相互平行的直線段,其法向量與x軸夾角θ都相等,因此反映在參數(shù)空間中對應(yīng)的點都位于角度為θ的方向上,這樣通過在參數(shù)空間檢測特定角度的點就可以檢測出矩形。識別前后結(jié)果如圖7(a)、圖7(b)所示。
(4)檢測十字叉:對十字叉的所有邊緣進(jìn)行Hough變換后,可以將參數(shù)空間的累加值的比例變成為灰度值,這樣就可以繪出參數(shù)空間的累加響應(yīng)值分布圖,由此可以實現(xiàn)對十字叉形狀的識別。識別前后結(jié)果如圖8(a)、圖 8(b)所示。
方案一:采用電磁閥,在立方體的上表面固定一鐵片,給電磁閥通電時即可產(chǎn)生磁力將立方體吸引搬起,斷電即可放下。此方案設(shè)計比較簡潔,但電磁閥功率較大,長時間工作發(fā)熱現(xiàn)象較嚴(yán)重,故不選用此方案。
方案二:采用伺服電機(jī)和機(jī)械手,通過控制水平和垂直兩個方向的自由度,來完成取放立方體的動作。
對比兩種方案,方案二更節(jié)能,且機(jī)械結(jié)構(gòu)性能穩(wěn)定,本設(shè)計選用方案二。
常用的路徑規(guī)劃方法有很多種,例如人工勢場法、遺傳算法等。其中人工勢場容易出現(xiàn)振蕩和陷于局部極小,因此難以得到最優(yōu)的規(guī)劃路徑。遺傳算法具有較好的尋優(yōu)能力,但實際使用時容易出現(xiàn)早熟收斂現(xiàn)象。
根據(jù)題目要求,小車從起始點出發(fā),將4個立方體依次運(yùn)送到指定地點即可。雖然立方體的擺放順序是任意的,但放置地點固定。因此,一旦識別出立方體的擺放順序,那么立方體到各放置點的距離、小車到各個立方體和放置點的距離均是確定的。根據(jù)題意,上述問題可以描述如下:設(shè)有n個地點,小車從起始點出發(fā)到其他每個地點一次且僅是一次,問如何選擇行走的路線,使小車走過的總路徑最短?顯然這就是運(yùn)籌學(xué)中貨郎擔(dān)問題的變形。為此,建立如下數(shù)學(xué)模型:小車從起始地點1開始,設(shè)小車走到地點 i,記 Ni={2,3,…,i-1,i+1,…,n}表示由地點1到地點i的中間地點集合,S表示到達(dá)地點i之前中途所經(jīng)過的地點的集合。因此可選取(i,S)作為描述小車行進(jìn)過程的狀態(tài)變量,決策為由一個地點走到另一個地點,并定義最優(yōu)值函數(shù)fk(i,S)為從地點 1開始經(jīng)由k個中間地點的S集到地點i的最短路線的距離。由于n較小,因此可以采用動態(tài)規(guī)劃方法求解,其遞推關(guān)系為:
其中 k=1,2,…,n-1;i=2,3,…,n;dji為地點 i到地點 j的距離;邊界條件為 f0(i,φ)=d1i。
由動態(tài)規(guī)劃的最優(yōu)性原理可知,一個最優(yōu)策略的子策略總是最優(yōu)的,所以從k=1到k=n-1逐個階段求最優(yōu)策略,最終得到的解即為小車的最優(yōu)路徑。
由于本系統(tǒng)的功能復(fù)雜,因此不但硬件電路復(fù)雜,同時也需要很強(qiáng)的軟件系統(tǒng)支持。系統(tǒng)采用基于TWI總線規(guī)范的主從機(jī)控制模式,主機(jī)負(fù)責(zé)檢測信號和處理算法,從機(jī)負(fù)責(zé)驅(qū)動底層的硬件電路,主要解決了對CPU資源的競爭問題,大大提高了單片機(jī)的工作效率。軟件流程圖如圖9、圖10所示。
圖10 從機(jī)軟件流程圖
本文一改往常單個控制模塊的做法,采用基于TWI總線規(guī)范的主從機(jī)控制模式,將復(fù)雜的控制分成底層和上層,底層用來驅(qū)動具體的功能電路,上層主要用于檢測信號和處理算法,解決了單個控制模塊I/O口資源不足以及CPU資源的競爭問題,大大提高了單片機(jī)的工作效率。另外,采用了基于機(jī)器視覺技術(shù)的圖形識別方案,大大提高了圖形識別的精度和魯棒性。采用基于動態(tài)規(guī)劃的路徑規(guī)劃技術(shù),提高了小車的路徑規(guī)劃效率。采用數(shù)字PID控制算法,提高了小車的控制精度。系統(tǒng)反復(fù)測試,性能良好,為智能機(jī)器人系統(tǒng)設(shè)計提供了有力的技術(shù)支持。對系統(tǒng)將做進(jìn)一步研究,智能倉儲搬運(yùn)系統(tǒng)有著廣泛的市場應(yīng)用前景。
[1]夏良正,李久賢.數(shù)字圖像處理[M].南京:東南大學(xué)出版社(第 2 版),2006.
[2]《運(yùn)籌學(xué)》教材編寫組.運(yùn)籌學(xué)[M].北京:清華大學(xué)出版社(第 3 版),2005.
[3]曲道奎,杜振軍,徐殿國,等.移動機(jī)器人路徑規(guī)劃方法研究[J].機(jī)器人,2008,30(2):97-101.
[4]楊治明,周齊國.基于Hough變換理論的圖形識別[J].中國圖象圖形學(xué),2002,17(11):16-17.
[5]佟長福.AVR單片機(jī)GCC程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,2006.