




摘 要:自主導航機器人的關鍵技術包括地圖構建、定位、路徑規劃與算法控制。文中設計的自主導航機器人,硬件組成包括樹莓派4B、STM32微控制器、激光雷達、深度相機等;系統上位機采用裝載Ubuntu以及ROS機器人操作系統的樹莓派作為運行控制器;深度相機負責接收外界環境視覺信息;激光雷達SLAM實現地圖掃描構建與環境感知;通過路徑規劃算法和Cartographer算法分解并控制電機的運動,實現地圖構建、定位及自主避障等功能。實驗結果表明:該系統不僅可用多種方式實現對機器人的控制,具備自主定位、建圖和避障導航等功能,還具有控制精度高、成本低、模塊化設計和易拓展等優點。
關鍵詞:樹莓派4B;ROS;激光雷達;深度相機;地圖導航;YOLOv5
中圖分類號:TP249 文獻標識碼:A 文章編號:2095-1302(2024)12-0-03
0 引 言
近年來,智能機器人在農業生產、倉儲物流以及工業制造等領域得到了廣泛應用,并且隨著人工智能技術的發展,機器人操作系統也得到了快速發展。然而,在機器人智能化水平不斷提高的同時,算法控制和室內定位導航等核心問題仍然是制約機器人發展的主要技術問題。實時精確定位技術和高效的規劃路徑自主導航技術在機器人的實際應用中被廣泛使用。ROS機器人操作系統的出現在很大程度上解決了機器人的算法問題,以其開源特性和分布式架構受到了眾多機器人開發者的青睞。在ROS操作系統中,各個功能模塊獨立存在,開發者可以自行設計、編譯和運行,這極大地提高了機器人的調試和運行效率。開發者可以通過在樹莓派等控制器上裝載ROS系統,并結合激光雷達和深度相機等外設,配合高效嵌入式控制器,對機器人實現多種方式的運動控制、定位和自主導航等[1]。本文將探討ROS機器人操作系統和SLAM技術在機器人自主導航和路徑規劃中的應用與實踐[2]。
1 系統設計
1.1 系統硬件組成
機器人控制系統的實施通常是將高級控制與基礎控制相結合,以實現地圖創建和自主導航功能。在該控制方案中,高級控制系統通常采用樹莓派4B作為主機,同時搭載Ubuntu 18.04操作系統和ROS Melodic機器人操作系統。通過USB接口可以實現上、下位機的數據傳輸,激光雷達和深度相機將環境信息實時傳輸至樹莓派進行處理和分析。基礎控制系統以STM32單片機作為控制核心,負責接收來自高級控制系統的指令。通過向帶編碼器的電機驅動器輸出PWM信號,控制電機旋轉,并將電機速度反饋信號傳至STM32控制器,實現閉環控制。另外,基礎控制系統還配備了IMU加速度陀螺儀傳感器,用于校正各項參數[3]。自主導航機器人整體設計框圖如圖1所示。
機器人主體分為3層,底層為麥輪底盤和12.6 V航模電池;中層為樹莓派主控以及USB擴展板、STM32驅動板以及OLED顯示屏;上層為激光雷達和深度相機。
STM32驅動板與樹莓派主控通過串口傳輸數據,樹莓派發送指令給STM32進行外設控制,STM32控制蜂鳴器、減速電機等外設,STM32控制板實時將IMU數據和輪式里程計數據反饋給樹莓派。機器人實物如圖2所示。
1.2 機器人系統架構
1.2.1 硬件層
自主導航機器人的系統架構可以由硬件層、驅動層和操作層3部分構成,系統整體的設計架構如圖3所示。
機器人硬件控制系統由下位機STM32拓展板和上位機樹莓派4B構成。該系統包括了直流編碼電機、蜂鳴器、激光雷達、深度相機等外設。對于樹莓派4B,采用Cortex A72架構的高性能處理器,其擁有1個升級的64位四核處理器,運行頻率為1.4 GHz,可以實現機器人所預期的各項功能。Ubuntu 18.04系統的定制化軟件可以滿足用戶日常生活和工作中的各種需求。Melodic的ROS系統版本在硬件和軟件使用方面具有較高的兼容性,避免了因開發者頻繁更改版本而出現不兼容問題;且其具有強大的工具集和庫,使得機器人控制和算法開發更加容易。它提供了各種類型的節點、通信機制和功能包等,以便開發者快速構建自己的機器人系統。系統使用PID算法和自適應控制算法精確控制小車的速度和轉向角度[4-5]。
1.2.2 驅動層
機器人驅動層包括上位機ROS系統節點控制代碼、底層硬件控制器驅動代碼。為了便于機器人系統的高效使用,可以通過編寫節點控制代碼實現多節點間傳遞、底層控制器應用和ROS包管理等功能,不僅提高了軟件集成度,便于機器人更新升級,更提升了機器人的運行效率和精度。
底層硬件控制器驅動代碼主要通過控制STM32控制板進行IMU信息傳遞、直流電機驅動、語音模塊應用等。通過底層驅動代碼實現與上位機的數據傳輸,提高了系統的運行效率和穩定性[6]。
1.2.3 操作層
操作層基于Linux操作系統,結合了Ubuntu 18.04操作系統和ROS機器人操作系統。Ubuntu 18.04操作系統為機器人可視化的操作界面以及穩定的控制系統提供支持,ROS操作系統為機器人開發提供了豐富的功能包和配套軟件,并具有眾多開源例程,方便開發者進行深度開發。通過操作層可以實現機器人在不同環境下的自主導航、行人識別等功能。
2 算法設計
2.1 Cartographer算法
機器人通常需要使用Cartographer算法來完成室內環境建圖。該算法主要通過使用機器人上的傳感器獲取環境信息,將這些信息進行處理和分析,然后生成一個完整的室內地圖。選擇激光雷達等可以獲取不同類型和精度的數據,進行綜合分析,提高建圖的準確性。建圖算法應具有自適應能力,特別是在室內環境復雜多變的情況下,能夠自動調整參數和算法流程,從而得到更加準確的地圖。我們先后采用了多種算法進行相機和雷達建圖,在相同環境(40 m2房間)下使用鍵盤控制節點控制機器人進行建圖測試[7]。測試結果見表1。
異常檢測和處理:在建圖過程中需要考慮數據異常情況的處理。例如,當某些傳感器失效或數據異常時,需要對數據進行異常檢測和處理,避免因誤差影響整體建圖的準確性和穩定性[8]。
在線建圖:機器人需要通過實時獲取環境信息進行建圖,因此建圖算法應該具有在線建圖的能力。在線建圖可以以最新的傳感器數據為基礎,快速更新地圖,并及時發現環境變化,實現更加精準的巡邏和安全保障[9]。
2.2 YOLOv5算法
YOLOv5是一種基于深度學習的目標檢測算法,它被用于在實時場景中快速準確地檢測并定位多個對象。YOLO是一種單階段檢測算法,在單個前向傳遞過程中預測對象的邊界框和類別。相對于之前的版本,YOLOv5在準確率和速度上都有所提高。它采用了一種輕量級神經網絡架構,結合最新的技術,如加權交叉熵損失函數、PANet、SAM和CSPDarkNet等,以實現更快的推理速度,得到更準確的檢測結果。YOLOv5提供了不同的預訓練模型,可以適應不同的應用場景和硬件要求[10]。它還提供了訓練和測試代碼,可以用于自定義數據集的目標檢測任務。
3 地圖構建與導航
3.1 Rviz地圖構建
在ROS機器人操作系統中,啟動Gazebo機器人仿真平臺和Rviz地圖仿真平臺,通過鍵盤控制節點控制機器人的行動,訂閱使用Cartographer算法所發布的地圖和坐標信息,最終在Rviz地圖仿真平臺實現周圍地圖的可視化構建、實時仿真以及對機器人移動路徑的規劃等操作。通過上述步驟,可以使機器人在指定環境中根據指令行動,且在Rviz仿真平臺上實時構建實況地圖,如圖4所示。
3.2 自主導航
自主導航機器人構建出周圍環境地圖后,可以通過鍵盤指令對已加載的地圖進行保存。地圖保存完成后,將地圖導入Rviz地圖仿真平臺,使用2D Pose Estimate指令固定機器人位置,使機器人的實時位置與平臺仿真位置相符。以機器人在地圖中的仿真位置為原點創建坐標系,并使機器人前進方向與X軸重合,此時地圖導入完成,分別由機器人底盤控制節點和自主導航節點進行自主導航。通過2D Nav Goal指令在虛擬仿真平臺中自行設定導航目標,機器人規劃最優路徑前往設定目標。在最終的測試中,發現機器人對于同一目標會同時規劃多條路徑,機器人通過相關算法計算后會選擇最短路徑,并能夠在行駛過程中識別路徑上的阻礙物,實現避障。
3.3 導航精度測試
在機器人自主導航精度測試過程中,可以隨機指定多個目標位置,并記錄機器人到達這些目標點時的位置坐標。然后通過比較目標位置和實際到達位置的數據來計算機器人的導航精度。最終,可以得到導航精度的平均值。導航實驗數據見表2。
通過分析表2的數據可知,自主導航機器人的工作精度基本滿足了日常要求,可以投入到實際應用中。
4 結 語
本文通過ROS機器人操作系統設計了一款自主導航機器人,該機器人采用麥克納姆底盤、STM32主控板、樹莓派4B、激光雷達、深度相機等硬件,并利用Cartographer算法和YOLOv5算法等實現了室內自主導航功能。通過測試結果驗證了機器人的性能,證明其在實際應用中基本滿足要求。未來,將繼續基于現有硬件平臺,進一步優化導航和路徑規劃算法,提高機器人定位和導航的穩定性和精準性。
參考文獻
[1]杭彤,李玲,柳燕菲,等.基于ROS的小車運動控制系統設計[J].電子制作,2023,31(18):3-6.
[2]金珍珍,周衛華,鄭軍,等.基于ROS的移動機器人控制系統[J].輕工機械,2021,39(3): 73-76.
[3]雒潔,王慶坡,周庭艷,等.基于樹莓派和ROS系統的智能語音導盲小車[J].單片機與嵌入式系統應用,2023,23(1):50-53.
[4]趙威,李振華.基于ROS系統和SLAM技術的智能小車的研究[J].物聯網技術,2022,12(7):97-99.
[5]李昕哲,高雨源,何棋威,等.一種基于ROS的SLAM智能小車設計[J].信息與電腦(理論版),2022,34(11):144-146.
[6]劉勝金,周海燕,楊溢凡,等.基于樹莓派的智能小車系統[J].電腦知識與技術,2019,15(14):158-160.
[7]王春梅,楊文龍.樹莓派接入OneNET實現物聯網系統的設計[J].電子設計工程,2019,27(7):133-137.
[8]劉繼元.基于樹莓派的物聯網應用[J].電子世界,2016(8):24-25.
[9]王嶸,萬永菁.一種基于SLAM的多功能探索機器人設計[J].機械與電子,2019,37(9):51-53.
[10]張吉圭,楊艷龍,曹澤洪,等.基于ROS和激光雷達SLAM的自主導航智能車設計[J].智能物聯技術,2021,4(5):35-41.
作者簡介:于子(2001—),男,研究方向為電氣工程自動化、嵌入式和機器人。
刁立強(1978—),男,碩士,副教授,研究方向為電氣工程。
曹鎮宇(2003—),男,研究方向為電氣工程自動化、嵌入式和物聯網。
許少娟(1981—),女,碩士,副教授,研究方向為電子通信。
徐乾龍(2002—),男,研究方向為自動化。