李衛(wèi)鵬,買買提明·艾尼,加合甫·阿汗 ,古麗巴哈爾·托乎提
(1.新疆大學(xué)機(jī)械工程學(xué)院,新疆烏魯木齊 830000;2.烏魯木齊佰博機(jī)電科技有限公司,新疆烏魯木齊 830002)
近年來,避障測(cè)距系統(tǒng)在機(jī)器人、AGV小車、無人機(jī)、無人駕駛等方面得到廣泛應(yīng)用。常見的避障測(cè)距方式有激光雷達(dá)測(cè)距、紅外光電傳感器、視覺傳感器以及超聲波測(cè)距等。機(jī)器人在未知環(huán)境中的導(dǎo)航需要使用許多不同類型的傳感器,以向機(jī)器人運(yùn)動(dòng)控制器提供有關(guān)速度、位置、障礙物距離和方向等數(shù)據(jù)。使用激光雷達(dá)進(jìn)行距離和障礙物檢測(cè)已經(jīng)進(jìn)行了相當(dāng)多的研究,而車載攝像頭用來檢測(cè)圖像中的障礙物。光學(xué)傳感器對(duì)光敏感,攝像頭往往很昂貴。一種替代方法是使用超聲波傳感器,該傳感器適用于3~400 cm的近距離檢測(cè),并且每秒可提供多個(gè)距離測(cè)量,而成本低,可用于農(nóng)業(yè)作業(yè)機(jī)器人。
超聲波測(cè)距方面有很多研究。文獻(xiàn)[2]中提出了一種基于STM32的RS485總線多路超聲波測(cè)距系統(tǒng),與傳統(tǒng)超聲波測(cè)距系統(tǒng)相比,該系統(tǒng)簡(jiǎn)化了控制系統(tǒng)的硬件和軟件資源,可用于移動(dòng)機(jī)器人和智能汽車的避障系統(tǒng)中,但并未通過實(shí)驗(yàn)來驗(yàn)證可行性。文獻(xiàn)[3]中提出了一種基于CAN總線控制超聲波測(cè)距系統(tǒng),簡(jiǎn)化了移動(dòng)機(jī)器人系統(tǒng)控制核心的工作,但并未解決多超聲波傳感器的抗干擾問題。文獻(xiàn)[4]中提出了一種利用內(nèi)部溫度傳感器和ADC檢測(cè)回波的方法,避免了外部溫度計(jì)和回波比較電路,簡(jiǎn)化了外圍硬件,測(cè)量精度高;但實(shí)驗(yàn)中只是用不同大小的紙張來代替障礙物,沒有真正在實(shí)際場(chǎng)景下進(jìn)行實(shí)驗(yàn)。
本文作者針對(duì)以上遺留問題,首先搭建了搭載超聲波測(cè)距系統(tǒng)的移動(dòng)機(jī)器人小車,在不同車速下計(jì)入不同期望停車距離,在室內(nèi)場(chǎng)景下進(jìn)行了超聲波識(shí)別障礙后急速停車試驗(yàn)測(cè)試。在整理試驗(yàn)結(jié)果的基礎(chǔ)上建立了行車速度與識(shí)別障礙停車距離的理論模型,然后按理論模型的算法控制移動(dòng)機(jī)器人小車,最后再通過試驗(yàn)測(cè)試完善并驗(yàn)證了本文作者提出的理論模型的有效性,為移動(dòng)機(jī)器人急速停車避障提供了安全的理論模型和算法。
本文作者使用的超聲波測(cè)距系統(tǒng)主要由微控制器STM32F103ZET6、HC-SR04超聲波模塊、輪轂驅(qū)動(dòng)器、輪轂電機(jī)和電源等組成。其中,STM32F103具有144個(gè)IO引腳資源、64 kB SRAM、512 kB FLASH等,在性能上完全優(yōu)于同價(jià)位的51系列單片機(jī)。HC-SR04超聲波模塊具有成本低、測(cè)量精度高等優(yōu)點(diǎn),被廣泛應(yīng)用于機(jī)器人避障系統(tǒng)中。當(dāng)超聲波傳感器檢測(cè)到障礙物時(shí),把檢測(cè)距離值返回給單片機(jī),單片機(jī)通過處理距離值后發(fā)送控制指令給輪轂電機(jī),從而控制機(jī)器人繼續(xù)前進(jìn)還是保持停止?fàn)顟B(tài)。機(jī)器人總體設(shè)計(jì)框架如圖1所示。
圖1 機(jī)器人總體設(shè)計(jì)框圖
超聲波測(cè)距方法主要包括渡越時(shí)間檢測(cè)等,主要有收發(fā)一體和收發(fā)分離兩種。此系統(tǒng)采用了收發(fā)分離方式。采用收發(fā)分路模式進(jìn)行超聲波測(cè)距,不僅避免了收發(fā)一體式超聲波測(cè)距系統(tǒng)由于發(fā)射脈沖的余振而造成的檢測(cè)盲區(qū)的存在,而且增大了檢測(cè)距離,提高了測(cè)距精度。
超聲波測(cè)距的基本原理是超聲波測(cè)距傳感器根據(jù)微處理器輸出的觸發(fā)脈沖發(fā)射超聲波并檢測(cè)反射波。該超聲波的發(fā)射和探測(cè)之間的時(shí)間作為脈沖寬度數(shù)據(jù)輸出到微處理器,并根據(jù)聲速和時(shí)間差計(jì)算到障礙物的距離。假設(shè)是超聲波發(fā)射器到障礙物的距離,超聲波發(fā)射和接收到的聲脈沖信號(hào)之間的時(shí)間差為,空氣中的傳播速度為,測(cè)量距離公式如下:
=·2
(1)
由于聲波在空氣中傳播的速度與溫度有關(guān),在精度要求比較高的條件下需要做溫度補(bǔ)償,而溫度是利用單片機(jī)自帶的溫度傳感器反饋的。聲波在空氣中傳播的速度與溫度關(guān)系如下:
=3314+0607
(2)
式中:為測(cè)量時(shí)的環(huán)境溫度;為超聲波在空氣介質(zhì)中的傳播速度。超聲波測(cè)距示意圖如圖2所示。
圖2 超聲波測(cè)距示意
本文作者自主設(shè)計(jì)了移動(dòng)機(jī)器人小車。移動(dòng)機(jī)器人小車長(zhǎng)為0.9 m、寬為0.5 m、高為0.43 m,質(zhì)量約為55 kg,承載能力為2 000 N。車架所用材料為1.5 mm厚方鋼,采用橡膠輪胎內(nèi)置電機(jī)的方式提供動(dòng)力輸出,選用48 V鋰電池提供動(dòng)力來源。電機(jī)控制輸出模式為RS485輸出。傳感器采用市面上常見的HC-SR04超聲波傳感器,采用了定時(shí)器中斷計(jì)數(shù)方式來計(jì)算超聲波發(fā)射與接收的時(shí)間差。圖3為文中使用的移動(dòng)機(jī)器人小車。
圖3 移動(dòng)機(jī)器人小車
(3)
(4)
由式(3)(4)可得出
(5)
其中:
(6)
(7)
圖4 機(jī)器人運(yùn)動(dòng)學(xué)分析
在室內(nèi)5 m長(zhǎng)的過道內(nèi)進(jìn)行移動(dòng)機(jī)器人小車避障測(cè)距實(shí)驗(yàn)。因?yàn)槌暡▽?duì)平面有較強(qiáng)的反射能力,因此將墻壁作為此次實(shí)驗(yàn)用的障礙物。超聲波傳感器安裝在車架的最前端,車輪相對(duì)于車架最前端突出5 cm,即車輪與墻面撞擊時(shí),傳感器與墻面的距離為5 cm附近。實(shí)驗(yàn)中用卷尺作為測(cè)量工具,在地面上分別測(cè)取25~125 cm之間每隔10 cm處的距離值作為超聲波測(cè)距的墻面識(shí)別設(shè)定值。在每一設(shè)定值下分別對(duì)5組不同車速進(jìn)行實(shí)驗(yàn),每一組進(jìn)行5次測(cè)距求平均值。考慮到移動(dòng)機(jī)器人小車自身容易跑偏、車輪與地面打滑等問題,將起步距離均設(shè)定為3.3 m處。
3.2.1 測(cè)試結(jié)果與誤差分析
圖5為在不同識(shí)別距離下實(shí)際停車距離與行車速度關(guān)系??梢钥闯?超聲波測(cè)距預(yù)置值不同時(shí),移動(dòng)機(jī)器人小車急速停車位置到墻面的間距也不同,移動(dòng)機(jī)器人小車速度越高急速停車位置到墻面的間距也越小。當(dāng)超聲波測(cè)距預(yù)置值設(shè)定為25 cm時(shí),車速為0.36 km/h時(shí),實(shí)際停車位置與墻面的距離為23.3 cm,而車速為2.1 km/h時(shí),實(shí)際停車位置與墻面的距離為5.4 cm。同樣,當(dāng)超聲波測(cè)距預(yù)置值設(shè)定為125 cm時(shí),車速為0.36 km/h時(shí),實(shí)際停車位置與墻面的距離為123.9 cm,而車速為6.46 km/h時(shí),實(shí)際停車位置與墻面的距離為5.5 cm。這說明,移動(dòng)機(jī)器人小車速度對(duì)停車特性的影響很大。從誤差分析上看,當(dāng)電機(jī)轉(zhuǎn)速為5 r/min,即車速為0.4 km/h時(shí),實(shí)際停車距離與設(shè)定停車距離最大誤差不超過1.34 cm。這是因?yàn)楫?dāng)車速比較低的情況下,雖然超聲波檢測(cè)距離需要一定的時(shí)間等待回響信號(hào)到來,但是這個(gè)時(shí)間大約為20 μs,在車速較低時(shí)可以忽略。這與在停止?fàn)顟B(tài)下的測(cè)距結(jié)果基本一致。為了清晰地看出誤差變化情況,在停車距離與行車速度關(guān)系曲線上作出誤差線。從誤差線上可以看出:當(dāng)車速小于1 km/h時(shí),最大誤差不超過1.80 cm;當(dāng)車速大于2 km/h時(shí),誤差稍微變大。這主要是因?yàn)樾≤嚨钠鸩骄嚯x較長(zhǎng)時(shí)小車容易跑偏,從而造成了傳感器測(cè)距的不準(zhǔn)確。影響測(cè)量的主要誤差來源有兩方面:(1)車輪與地面打滑、小車自身慣性、小車偏離運(yùn)動(dòng)中心線以及人為測(cè)量的誤差等;(2)超聲波傳感器自身測(cè)距需要一定的時(shí)間來計(jì)算回響信號(hào)。從圖5中還可以看出:隨著車速越來越大,每一組實(shí)驗(yàn)中實(shí)際停車位置越來越靠近墻壁,直到小車撞到墻上。
圖5 不同識(shí)別距離下實(shí)際停車距離與行車速度關(guān)系
3.2.2 結(jié)果分析
運(yùn)用插值法,計(jì)算出在不同識(shí)別距離下停車位置分別為20、30、50、60、80、100 cm處的行車速度。可以得到:保證在20 cm處停車的最小速度應(yīng)為0.94 km/h,最大速度應(yīng)為5.89 km/h;保證在100 cm處停車的最小速度應(yīng)為0.86 km/h,最大速度應(yīng)為2.43 km/h;其他停車位置處的車速以此類推。當(dāng)行駛速度增大時(shí),要保證能在給定的位置下停車時(shí)的識(shí)別距離也隨之增大,在不同停車位置下,識(shí)別距離與行車速度之間的變化趨勢(shì)大致相近。通過多項(xiàng)式回歸分析,可以得出識(shí)別距離與行車速度滿足如下關(guān)系:
=++
(8)
其中:為行車速度,km/h;是超聲波預(yù)置值的識(shí)別距離,cm。系數(shù)、和可通過試驗(yàn)測(cè)試獲取的數(shù)據(jù)進(jìn)行回歸分析確定。
本文作者對(duì)試驗(yàn)測(cè)試的6種不同停車識(shí)別距離與行車速度關(guān)系進(jìn)行了多項(xiàng)式回歸分析,如圖5所示。然后如表1所示,通過平均、和值后,確定了系數(shù)=2.4和系數(shù)=5.4。而′是與小車與障礙物之間的停車距離預(yù)置值相關(guān)的值,并用=′+來描述。由于為預(yù)置值,所以確定值就行。通過計(jì)算確定=-2 cm,如表1所示。把以上試驗(yàn)結(jié)果確定的參數(shù)、和值代入到式(8)可得到計(jì)入小車車速、與障礙物之間的停車預(yù)置值相關(guān)的超聲波識(shí)別距離之間的關(guān)系式(9):
=24+54+′-2
(9)
式中:為小車行駛速度;為超聲波識(shí)別距離。
表1 試驗(yàn)測(cè)試分析獲取的系數(shù)
取∈[0.5,6] km/h,根據(jù)公式(8),計(jì)算出,∈[21.3,216.8] cm,如圖6所示。可以看出:6種情況下保證在給定停車位置時(shí),理論識(shí)別距離曲線與實(shí)際識(shí)別距離曲線吻合度較高。為了說明理論分析的準(zhǔn)確性,下面對(duì)理論分析進(jìn)行實(shí)驗(yàn)驗(yàn)證。
圖6 不同停車距離下識(shí)別距離與行車速度關(guān)系
為了進(jìn)一步驗(yàn)證公式(9)在機(jī)器人實(shí)際運(yùn)動(dòng)情況下的適用性,在Keil5軟件中編寫程序,算法流程如圖7所示。為了進(jìn)一步驗(yàn)證常數(shù)′值對(duì)停車距離的影響,分別在20、50、80 cm不同位置下進(jìn)行實(shí)驗(yàn)測(cè)試,分別取常數(shù)′-2 cm,′-5 cm,′-8 cm三種不同值,式中′為小車與障礙物之間的停車距離預(yù)置值相關(guān)的值,結(jié)果如圖8所示。可以看出:當(dāng)取′-5 cm、′-8 cm時(shí),實(shí)際停車距離都出現(xiàn)了小于期望停車距離的情況,并且停車位置波動(dòng)比較大;而取′-2 cm時(shí),雖然實(shí)際停車距離略大于期望停車距離,但從實(shí)際角度出發(fā),在期望停車距離之外可以停車,保證了行駛的安全性,取′-2 cm時(shí)更加符合實(shí)際需要,并且最大測(cè)量誤差不超過2.9 cm。從而驗(yàn)證了此算法模型在機(jī)器人小車上的可行性。
圖7 自動(dòng)變速測(cè)距避障流程
圖8 不同C′值時(shí)行車速度與停車距離之間的關(guān)系
根據(jù)此算法編寫程序,并且將代碼燒錄到單片機(jī)中進(jìn)一步驗(yàn)證。結(jié)果表明:識(shí)別避障距離是一個(gè)動(dòng)態(tài)變化的值,車速增大識(shí)別距離增大,車速減小識(shí)別距離減小。當(dāng)車速為0時(shí),=′-2 cm,即識(shí)別距離等于期望停車距離減2 cm。此算法模型不僅解決了小車在高速運(yùn)行時(shí)無法在給定的位置處及時(shí)避障停車的問題,而且進(jìn)一步提高了機(jī)器人小車行駛的安全性。
提出了一種基于 STM32 的機(jī)器人小車在不同車速下的超聲波測(cè)距方案,其結(jié)構(gòu)簡(jiǎn)單,在實(shí)驗(yàn)室已進(jìn)行測(cè)試。所作工作包括:
(1)完成了移動(dòng)機(jī)器人小車的搭建并進(jìn)行了運(yùn)動(dòng)學(xué)建模分析;
(2)根據(jù)多次的實(shí)驗(yàn)測(cè)試結(jié)果,得到了超聲波識(shí)別距離與行車速度的關(guān)系并根據(jù)多項(xiàng)式回歸分析確定了系數(shù)、值;
(3)對(duì)提出的動(dòng)態(tài)測(cè)距停止避障算法模型在STM32單片機(jī)中編程驗(yàn)證,得出了當(dāng)取′-2 cm時(shí)此算法模型更加精確并符合期望值的結(jié)論。