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