占宏 葉德禧



關鍵詞:移動機器人;自主導航;深度學習;卷積神經網絡
隨著計算機和自動控制等技術的快速發展,移動機器人已經被應用于工業制造、醫療服務、物流分揀等領域。與傳統工作環境穩定、內容單一的應用相比,移動機器人的應用場景將越來越復雜,這也對自主導航這一關鍵技術提出了更高的要求。通常移動機器人系統通過傳感器來感知周圍環境,如激光傳感器、超聲波傳感器、視覺傳感器等,但由于攜帶傳感器有限,大部分系統決策和控制能力不足。因此,提高系統導航的智能性和自主性,對移動機器人快速適應復雜的工作環境至關重要。
將深度學習算法與自主導航相結合,設計并開發了基于深度學習的移動機器人自主導航實驗平臺。該平臺包括樹莓派4B上位機、STM32F103RC下位機、電機及其驅動、傳感器等,系統利用小型且易于訓練的卷積神經網絡,僅由移動機器人攝像頭獲取的RGB圖像即可計算出導航控制信號,從而避免了復雜的特征工程和規劃策略,提高了系統導航的自主性。在所搭建的移動機器人平臺上進行自主導航實驗,結果表明該系統不僅在已知環境中可以很好地跟隨路線并規避障礙物,而且能夠在一定程度上規避未知障礙物實現自主導航,這對于移動機器人適應復雜的工作場景有著重要意義。
1移動機器人平臺
1.1平臺硬件系統
所搭建的移動機器人平臺如圖1所示,硬件系統主要包括底盤、電機及其驅動、傳感器、下位機、上位機和電氣連接六個部分。底盤采用麥克納姆輪,其輪轂軸與輥子轉軸成45°角,可保證機器人全向運動。采用TB6612FNG電機驅動,通過控制INl和IN2高低電平以及輸入PWM占空比可調整電機控制模式以及輸出平均電壓,從而控制GB37520直流減速電機的轉向與轉速。傳感器部分包括具有增量式輸出的霍爾編碼器和LETMC-520攝像頭,前者AB相輸出的脈沖速度和相位差分別代表電機轉速和轉向信息,后者僅使用其輸出的RGB圖像且像素為1080p。下位機采用32位ARM微控制器STM32F103RC核心板,主要負責執行傳感器數據采集任務、底盤控制任務和通信任務。上位機采用樹莓派4B,主要負責算法的實現與運行、采集傳感器數據以及與下位機進行通信。上位機與攝像頭之間通過USB2.0進行雙向通信,平臺上層和下層之間采用數據幀的格式,通過USB-TTL模塊進行雙向通信。下層使用航模電池作為電源,分別通過穩壓模塊和電機驅動板向下位機、霍爾編碼器等模塊提供電源。下位機向電機驅動發送PWM和電機驅動模式控制信號,同時從霍爾編碼器讀取電機的轉速和轉向信息。
1.2平臺軟件系統
移動機器人平臺軟件系統設計如圖2所示,上位機在Ubuntu Matel8.04下基于機器人操作系統ROS進行開發。底盤控制節點負責訂閱/cmd_vel話題,提取其中的底盤目標線速度和角速度信息,并通過逆運動學將其轉換為電機的目標轉速發送給下位機。同時,節點從下位機獲取底盤運動狀態數據,并發布相應話題。下位機軟件設計采用c語言編程,使用操作系統FreeRTOS進行任務調度管理。下位機對霍爾編碼器脈沖輸出進行正交解碼并解析出電機轉速和轉向信息,同時采用PID控制器控制四個電機的轉速使底盤以目標速度運動。
2基于深度學習的自主導航方法
2.1深度學習模型
采用卷積神經網絡(convolutional neural net-works,CNN)模型,包括圖像模塊和動作模塊,其架構如圖3所示。該神經網絡以分辨率為160×80的RGB圖像作為輸入,最終輸出為轉向控制信號。其中,五個卷積層均采用ReLU函數進行激活且過濾器數量分別為32、64、96、128、256,每層后加入批標準化層和20%的dropout層;滑動窗口大小分別為5、3、3、3、3,步幅均為2。緊跟著是四個單元個數分別為128,64,64,16的全連接層,每層同樣采用ReLU函數進行激活,前兩個全連接層后加入批標準化層和50%的dropout層,后兩個全連接層后僅加入50%的dropout層。
2.2模型訓練
在半開放的室外走廊環境下,操作者利用PS2手柄控制移動機器人沿規定路線運動并避開障礙物,來收集觀察一動作對數據,其中觀察為攝像頭獲取的RGB圖像,動作為移動機器人轉向控制信號。經實驗共收集包含106623個數據的數據集,其中約4/5的數據是在無障礙物情況下收集且其中相當一部分數據注入了噪聲,其他約1/5為躲避障礙物情況下收集且未注入噪聲。在無障礙物數據中,以0.1作為判斷閾值,如果轉向控制信號的絕對值大于該閾值,則將該情況視為轉角,反之則視為直道。經統計,轉角數據占總數據的比例為14.94%,有障礙物數據占總數據的比例為22.02%,其余為直道數據。將所收集數據數量按約3:1:1分為訓練集、驗證集和測試集,并對所收集數據進行歸一化,圖像的每個像素值被歸一化到[0,1]區間,轉向控制信號被歸一化到[-1,1]區間。在訓練過程中,使用RMSProp優化器來更新網絡參數,通過觀察訓練過程中模型在訓練集和驗證集上的表現來調整訓練的超參數。將均方誤差MSE作為網絡的損失函數、平均絕對誤差MAE作為訓練過程監控指標,通過實驗觀察神經網絡模型訓練不同輪次時在訓練集和驗證集上的性能,其結果如圖4所示,可以看出訓練20個輪次時可得到較好的模型。
將訓練好的模型在測試集上進行評估,其在測試集上的均方誤差和平均絕對誤差分別為0.039和0.102,說明預測轉向控制信號與目標轉向控制信號平均相差0.102,表明模型訓練取得了較好效果,其輸出基本符合預期。
3自主導航實驗
利用Keras和TensorFlow對深度學習模型進行學習,采用Python編程,模型在訓練端上經過訓練和評估后再移植到部署端使用。在上位機ROS環境中自主導航節點預先使用Keras和TensorFlow讀取訓練好的卷積神經網絡模型,通過訂閱/camera/rgb/image_raw話題以固定周期獲取攝像頭的RGB圖像,將其輸入模型獲取輸出的轉向控制信號,并經過反歸一化與一階低通濾波處理得到移動機器人的目標角速度,同時發布/cmd_vel話題,ROS中的底盤控制節點訂閱/cmd_vel話題以控制移動機器人運動。實驗中設計了四條路線,分別記為路線1、路線2、路線3和路線4,如圖5所示,四條路線上各放置一已知障礙物。
移動機器人進行自主導航實驗時,其目標線速度設為0.3m/s,分別在每條路線上運行5次,當其偏離指定路線超過5 s或與障礙物發生碰撞時即進行人工干預使其返回路線,根據干預次數和完成路線運動時間來評估模型的表現。通過實驗得到移動機器人在每條路線上的平均干預次數和平均完成時間結果如表1所示,可看出移動機器人在路線4上的平均干預次數較多,在其他路線上均較少。對于相同距離的路線,如路線1和路線4,路線2和路線3,平均完成時間基本相同,表明移動機器人在不同路線中可以保持較一致的前進速度進行自主導航。由實驗驗證了移動機器人在已知環境中可以較好地跟隨路線和躲避已知障礙物。路線存在未知障礙物(純凈水空桶)的情況下,對移動機器人進行自主導航實驗,觀察移動機器人運動過程如圖6所示,可以看出移動機器人以一定的速度前進,到達障礙物附近時較好地避開了未知障礙物并回到原運動路線上。上述實驗表明所設計的移動機器人能夠避開未知障礙物,同時驗證了用于自主導航的神經網絡模型具有較好的泛化性能。
4結論
本研究設計并開發了基于深度學習的自主導航移動機器人系統。以攝像頭獲取的RGB圖像作為一小型且易于訓練的卷積神經網絡的輸入,直接輸出導航控制信號,不僅降低了成本,而且避免了復雜的特征工程和規劃策略。通過實驗對系統的有效性進行了驗證,結果表明該系統具有較好的自主導航性能,對于移動機器人適應復雜環境作業(如地質科考、地震救援等)有著重要參考價值。同時,可為機器人工程專業提供教學實踐平臺,通過開展相關應用拓展,促進學生創新實踐能力的培養。896ED2A5-8C9B-40F1-A25F-C80015160D86