任帥男,王慶輝
(沈陽(yáng)化工大學(xué) 信息工程學(xué)院,遼寧 沈陽(yáng) 110142)
在智能小車領(lǐng)域,避障技術(shù)是智能小車最基本也是比較關(guān)鍵的一項(xiàng)技術(shù),涉及嵌入式、傳感器、信息融合、自動(dòng)控制以及人工智能等多種技術(shù)[1].近年來(lái),隨著人工智能技術(shù)的不斷發(fā)展,智能控制系統(tǒng)得到了廣泛的應(yīng)用.神經(jīng)網(wǎng)絡(luò)算法是人工智能領(lǐng)域舉足輕重的成員,其發(fā)展融合了多個(gè)學(xué)科,如心理學(xué)、計(jì)算機(jī)科學(xué)、生理學(xué)等[2],該算法可以處理難以用模型或規(guī)則描述的過(guò)程或系統(tǒng),無(wú)需知道控制對(duì)象的結(jié)構(gòu)及參數(shù),具有較強(qiáng)的信息融合能力,并且在實(shí)際應(yīng)用中便于硬件實(shí)現(xiàn),很適合應(yīng)用在智能小車的避障領(lǐng)域.現(xiàn)階段一些智能小車雖實(shí)現(xiàn)了避障目的,但多數(shù)研究采用攝像頭作為避障傳感器,不僅成本較高,而且適用環(huán)境局限性較強(qiáng),還有部分研究使用固定安裝位置的傳感器利用傳統(tǒng)算法進(jìn)行避障處理,魯棒性較差.本研究使用神經(jīng)網(wǎng)絡(luò)算法進(jìn)行深度實(shí)踐,將超聲波測(cè)距傳感器動(dòng)態(tài)采集到的數(shù)據(jù)進(jìn)行融合,不僅達(dá)到了精準(zhǔn)避障的目的,又具有結(jié)構(gòu)靈活、成本低、魯棒性強(qiáng)、擴(kuò)展性好等優(yōu)點(diǎn).
小車的硬件結(jié)構(gòu)實(shí)物如圖1所示.
圖1 “搖頭”避障小車硬件平臺(tái)
小車主體為兩輪平衡車,兩輪平衡車相對(duì)于傳統(tǒng)四輪車轉(zhuǎn)向靈活,并可實(shí)現(xiàn)原地轉(zhuǎn)向動(dòng)作,不需要轉(zhuǎn)向空間,在復(fù)雜環(huán)境中避障效果好,適合作為避障小車的載體.傳感器選用超聲波測(cè)距模塊,該模塊相比于攝像頭具有成本低廉、性能穩(wěn)定的優(yōu)勢(shì),并且能夠在無(wú)光環(huán)境下正常工作.傳統(tǒng)智能避障小車傳感器安裝在固定位置,不但成本大大提高,而且方位固定,有測(cè)量死角,可拓展性差[3].該模塊搭載在舵機(jī)上與之協(xié)同工作,能夠采集各個(gè)方向角的距離信息,具有成本低、位置準(zhǔn)確、控制靈活等優(yōu)點(diǎn).
采樣頻率決定小車避障效果,采樣頻率越高,小車避障效果越好,但是會(huì)使小車運(yùn)行速率降低,占用系統(tǒng)資源,增加運(yùn)算負(fù)擔(dān),采樣頻率太低則會(huì)使避障效果變差,甚至導(dǎo)致算法失效,所以選擇合適的采樣頻率尤為重要.
擬定仿真距離單位為毫米,如圖2所示,為了便于仿真驗(yàn)證,小車看做勻速運(yùn)行,每運(yùn)行1 000 mm采樣一次,采樣過(guò)程中,舵機(jī)從左側(cè)平行小車方向?yàn)榈?個(gè)采樣點(diǎn),帶超聲波測(cè)距傳感器旋轉(zhuǎn)每30°讀取一次距離數(shù)據(jù),直到旋轉(zhuǎn)到右側(cè)平行小車方向?yàn)樽詈笠粋€(gè)采樣點(diǎn)為止,一共7個(gè)距離信息.在這里,假定超聲波傳感器距離采樣最大值為5 000 mm.采樣結(jié)束后,通過(guò)神經(jīng)網(wǎng)絡(luò)算法輸出相對(duì)偏轉(zhuǎn)角來(lái)矯正小車運(yùn)行方向.
圖2 避障小車采樣方法
BP神經(jīng)網(wǎng)絡(luò)是一種單向傳播的多層前向網(wǎng)絡(luò),其基本結(jié)構(gòu)如圖3所示.BP神經(jīng)網(wǎng)絡(luò)包括輸入層、隱層和輸出層,上下層之間實(shí)現(xiàn)全連接,而每層神經(jīng)元之間無(wú)連接[4].
圖3 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
以小車“搖頭”時(shí)采集到的7組距離數(shù)據(jù)為神經(jīng)網(wǎng)絡(luò)的輸入,如圖2所示,從0°到180°記做x1、x2、x3、x4、x5、x6、x7.以相對(duì)偏轉(zhuǎn)角即小車下一時(shí)刻運(yùn)動(dòng)方向與小車現(xiàn)時(shí)刻左側(cè)平行方向的角度記做α作為神經(jīng)網(wǎng)絡(luò)的輸出.最終確立系統(tǒng)神經(jīng)網(wǎng)絡(luò)為7輸入1輸出.
神經(jīng)網(wǎng)絡(luò)隱層節(jié)點(diǎn)數(shù)對(duì)于神經(jīng)網(wǎng)絡(luò)至關(guān)重要.節(jié)點(diǎn)數(shù)不能太大,也不能太少,太大將增加計(jì)算的復(fù)雜度,太少則難以訓(xùn)練神經(jīng)網(wǎng)絡(luò)[5].節(jié)點(diǎn)數(shù)的確定一般先通過(guò)經(jīng)驗(yàn)公式生成,然后觀察訓(xùn)練結(jié)果再進(jìn)行調(diào)整.常用的經(jīng)驗(yàn)公式為[6]
nimplicit=2ninput+1.
式中:nimplicit為隱層神經(jīng)元個(gè)數(shù);ninput為輸入神經(jīng)元個(gè)數(shù).
BP神經(jīng)網(wǎng)絡(luò)是通過(guò)學(xué)習(xí)樣本的輸入對(duì)各個(gè)鏈接神經(jīng)元的權(quán)值進(jìn)行修正,通過(guò)不斷的誤差逆?zhèn)鞑バ拚咕W(wǎng)絡(luò)對(duì)輸入模式響應(yīng)的正確率不斷上升,所以提供一組正確合理的訓(xùn)練樣本尤為重要.如圖4所示,模擬了一個(gè)訓(xùn)練環(huán)境,小車運(yùn)動(dòng)軌跡是根據(jù)經(jīng)驗(yàn)人為繪制,通過(guò)該運(yùn)行軌跡小車能夠由起點(diǎn)無(wú)碰撞的到達(dá)終點(diǎn).
以該經(jīng)驗(yàn)運(yùn)行軌跡通過(guò)2.2節(jié)所介紹的采樣方式統(tǒng)計(jì)出來(lái)的數(shù)據(jù)為訓(xùn)練樣本,如表1所示.
圖4 避障小車訓(xùn)練環(huán)境及經(jīng)驗(yàn)軌跡
表1 避障小車訓(xùn)練樣本
為避免不同數(shù)量級(jí)的數(shù)據(jù)互相影響,神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本數(shù)據(jù)需要進(jìn)行歸一化處理,本系統(tǒng)采用Matlab中的mapminmax函數(shù)對(duì)數(shù)據(jù)進(jìn)行歸一化處理,數(shù)據(jù)存儲(chǔ)在矩陣input和output中.
Matlab中有神經(jīng)網(wǎng)絡(luò)工具箱可供使用,工作區(qū)輸入nntool調(diào)出神經(jīng)網(wǎng)絡(luò)工具箱,將訓(xùn)練樣本導(dǎo)入工具箱,新建神經(jīng)網(wǎng)絡(luò),選擇BP神經(jīng)網(wǎng)絡(luò),Trainbfg函數(shù)作為訓(xùn)練函數(shù),Learngdm作為學(xué)習(xí)函數(shù),性能函數(shù)為MSE,層數(shù)為3層,分別構(gòu)建隱層為5個(gè)節(jié)點(diǎn)、18個(gè)節(jié)點(diǎn)以及30個(gè)節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò),之后分別導(dǎo)入訓(xùn)練樣本進(jìn)行訓(xùn)練,訓(xùn)練結(jié)果如圖5、圖6和圖7所示.通過(guò)這3種典型的節(jié)點(diǎn)數(shù)訓(xùn)練結(jié)果對(duì)比,5個(gè)隱層節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)32個(gè)訓(xùn)練周期才完成訓(xùn)練,訓(xùn)練周期較長(zhǎng),最佳驗(yàn)證性能在第26周期,均方誤差為0.051 009°;30個(gè)隱層節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)15個(gè)訓(xùn)練周期完成訓(xùn)練,最佳驗(yàn)證性能在第9訓(xùn)練周期,均方誤差較大,達(dá)到了0.252 38°;18個(gè)隱層節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)僅用7個(gè)周期就完成了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,并且最佳驗(yàn)證性能在第1個(gè)訓(xùn)練周期,均方誤差較小,為0.017 327°,效果最佳.選擇合適的隱層節(jié)點(diǎn)對(duì)系統(tǒng)的訓(xùn)練結(jié)果有很大影響,不能太多,也不能太少,此系統(tǒng)中選擇18個(gè)隱層節(jié)點(diǎn)的訓(xùn)練結(jié)果作為小車的神經(jīng)網(wǎng)絡(luò)算法.
圖5 5個(gè)隱層節(jié)點(diǎn)訓(xùn)練結(jié)果
圖6 18個(gè)隱層節(jié)點(diǎn)訓(xùn)練結(jié)果
圖7 30個(gè)隱層節(jié)點(diǎn)訓(xùn)練結(jié)果
為驗(yàn)證算法的可行性,模擬了如圖8所示的仿真環(huán)境,其中不僅變換了障礙物的位置和距離,在小車運(yùn)行途中還隨機(jī)加入了不同形狀的障礙物來(lái)模擬非結(jié)構(gòu)化環(huán)境,將小車所處環(huán)境下傳感器采集到的距離數(shù)據(jù)輸入到訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)中進(jìn)行分析,得到小車的模擬運(yùn)行軌跡.由圖8可以看出:小車可以從起點(diǎn)無(wú)碰撞的安全到達(dá)終點(diǎn),并且選擇的路線較為合理,對(duì)障礙物的識(shí)別能力較高.
圖8 避障小車在陌生環(huán)境下的運(yùn)行軌跡
本文以兩輪平衡小車為主體,通過(guò)單超聲波傳感器配合舵機(jī)協(xié)同工作,使數(shù)據(jù)采集更加靈活多變.訓(xùn)練樣本簡(jiǎn)單易得.利用BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行數(shù)據(jù)融合,仿真驗(yàn)證了算法的可行性.此外,本文只列舉了一種采樣方法,在實(shí)際應(yīng)用中可改變采樣方式比如增加采樣頻率,增加采樣角度個(gè)數(shù)都可以適應(yīng)更復(fù)雜的非結(jié)構(gòu)化環(huán)境,同時(shí)只需要改變神經(jīng)網(wǎng)絡(luò)的輸入量和隱層節(jié)點(diǎn)數(shù)便可以完成對(duì)小車的算法升級(jí).