任帥男,王慶輝
(沈陽化工大學 信息工程學院,遼寧 沈陽 110142)
在智能小車領域,避障技術是智能小車最基本也是比較關鍵的一項技術,涉及嵌入式、傳感器、信息融合、自動控制以及人工智能等多種技術[1].近年來,隨著人工智能技術的不斷發展,智能控制系統得到了廣泛的應用.神經網絡算法是人工智能領域舉足輕重的成員,其發展融合了多個學科,如心理學、計算機科學、生理學等[2],該算法可以處理難以用模型或規則描述的過程或系統,無需知道控制對象的結構及參數,具有較強的信息融合能力,并且在實際應用中便于硬件實現,很適合應用在智能小車的避障領域.現階段一些智能小車雖實現了避障目的,但多數研究采用攝像頭作為避障傳感器,不僅成本較高,而且適用環境局限性較強,還有部分研究使用固定安裝位置的傳感器利用傳統算法進行避障處理,魯棒性較差.本研究使用神經網絡算法進行深度實踐,將超聲波測距傳感器動態采集到的數據進行融合,不僅達到了精準避障的目的,又具有結構靈活、成本低、魯棒性強、擴展性好等優點.
小車的硬件結構實物如圖1所示.

圖1 “搖頭”避障小車硬件平臺
小車主體為兩輪平衡車,兩輪平衡車相對于傳統四輪車轉向靈活,并可實現原地轉向動作,不需要轉向空間,在復雜環境中避障效果好,適合作為避障小車的載體.傳感器選用超聲波測距模塊,該模塊相比于攝像頭具有成本低廉、性能穩定的優勢,并且能夠在無光環境下正常工作.傳統智能避障小車傳感器安裝在固定位置,不但成本大大提高,而且方位固定,有測量死角,可拓展性差[3].該模塊搭載在舵機上與之協同工作,能夠采集各個方向角的距離信息,具有成本低、位置準確、控制靈活等優點.
采樣頻率決定小車避障效果,采樣頻率越高,小車避障效果越好,但是會使小車運行速率降低,占用系統資源,增加運算負擔,采樣頻率太低則會使避障效果變差,甚至導致算法失效,所以選擇合適的采樣頻率尤為重要.
擬定仿真距離單位為毫米,如圖2所示,為了便于仿真驗證,小車看做勻速運行,每運行1 000 mm采樣一次,采樣過程中,舵機從左側平行小車方向為第1個采樣點,帶超聲波測距傳感器旋轉每30°讀取一次距離數據,直到旋轉到右側平行小車方向為最后一個采樣點為止,一共7個距離信息.在這里,假定超聲波傳感器距離采樣最大值為5 000 mm.采樣結束后,通過神經網絡算法輸出相對偏轉角來矯正小車運行方向.

圖2 避障小車采樣方法
BP神經網絡是一種單向傳播的多層前向網絡,其基本結構如圖3所示.BP神經網絡包括輸入層、隱層和輸出層,上下層之間實現全連接,而每層神經元之間無連接[4].

圖3 BP神經網絡結構
以小車“搖頭”時采集到的7組距離數據為神經網絡的輸入,如圖2所示,從0°到180°記做x1、x2、x3、x4、x5、x6、x7.以相對偏轉角即小車下一時刻運動方向與小車現時刻左側平行方向的角度記做α作為神經網絡的輸出.最終確立系統神經網絡為7輸入1輸出.
神經網絡隱層節點數對于神經網絡至關重要.節點數不能太大,也不能太少,太大將增加計算的復雜度,太少則難以訓練神經網絡[5].節點數的確定一般先通過經驗公式生成,然后觀察訓練結果再進行調整.常用的經驗公式為[6]
nimplicit=2ninput+1.
式中:nimplicit為隱層神經元個數;ninput為輸入神經元個數.
BP神經網絡是通過學習樣本的輸入對各個鏈接神經元的權值進行修正,通過不斷的誤差逆傳播修正使網絡對輸入模式響應的正確率不斷上升,所以提供一組正確合理的訓練樣本尤為重要.如圖4所示,模擬了一個訓練環境,小車運動軌跡是根據經驗人為繪制,通過該運行軌跡小車能夠由起點無碰撞的到達終點.
以該經驗運行軌跡通過2.2節所介紹的采樣方式統計出來的數據為訓練樣本,如表1所示.

圖4 避障小車訓練環境及經驗軌跡

表1 避障小車訓練樣本
為避免不同數量級的數據互相影響,神經網絡訓練樣本數據需要進行歸一化處理,本系統采用Matlab中的mapminmax函數對數據進行歸一化處理,數據存儲在矩陣input和output中.
Matlab中有神經網絡工具箱可供使用,工作區輸入nntool調出神經網絡工具箱,將訓練樣本導入工具箱,新建神經網絡,選擇BP神經網絡,Trainbfg函數作為訓練函數,Learngdm作為學習函數,性能函數為MSE,層數為3層,分別構建隱層為5個節點、18個節點以及30個節點的神經網絡,之后分別導入訓練樣本進行訓練,訓練結果如圖5、圖6和圖7所示.通過這3種典型的節點數訓練結果對比,5個隱層節點的神經網絡經過32個訓練周期才完成訓練,訓練周期較長,最佳驗證性能在第26周期,均方誤差為0.051 009°;30個隱層節點的神經網絡經過15個訓練周期完成訓練,最佳驗證性能在第9訓練周期,均方誤差較大,達到了0.252 38°;18個隱層節點的神經網絡僅用7個周期就完成了神經網絡的訓練,并且最佳驗證性能在第1個訓練周期,均方誤差較小,為0.017 327°,效果最佳.選擇合適的隱層節點對系統的訓練結果有很大影響,不能太多,也不能太少,此系統中選擇18個隱層節點的訓練結果作為小車的神經網絡算法.

圖5 5個隱層節點訓練結果

圖6 18個隱層節點訓練結果

圖7 30個隱層節點訓練結果
為驗證算法的可行性,模擬了如圖8所示的仿真環境,其中不僅變換了障礙物的位置和距離,在小車運行途中還隨機加入了不同形狀的障礙物來模擬非結構化環境,將小車所處環境下傳感器采集到的距離數據輸入到訓練好的神經網絡中進行分析,得到小車的模擬運行軌跡.由圖8可以看出:小車可以從起點無碰撞的安全到達終點,并且選擇的路線較為合理,對障礙物的識別能力較高.

圖8 避障小車在陌生環境下的運行軌跡
本文以兩輪平衡小車為主體,通過單超聲波傳感器配合舵機協同工作,使數據采集更加靈活多變.訓練樣本簡單易得.利用BP神經網絡算法進行數據融合,仿真驗證了算法的可行性.此外,本文只列舉了一種采樣方法,在實際應用中可改變采樣方式比如增加采樣頻率,增加采樣角度個數都可以適應更復雜的非結構化環境,同時只需要改變神經網絡的輸入量和隱層節點數便可以完成對小車的算法升級.