




摘要:針對廠房、銀行和大型超市等需要人工巡邏的場所,文章設計了一款基于ROS的巡邏機器人自主導航系統。文章將ROS系統部署到基于樹莓派硬件開發的巡邏機器人上,對巡邏機器人的環境感知模塊、導航模塊和監控模塊等進行研究設計。該系統使用同步定位與建圖(Simultaneous Localization and Mapping,SLAM)技術,通過激光雷達和里程計實現定位、建圖與導航功能。實驗結果表明,該系統定位收斂速度快,構建地圖精度高,路徑規劃穩定性好,能替代人類巡邏。
關鍵詞:ROS;巡邏機器人;SLAM;Gmapping算法;自適應蒙特卡羅定位算法
中圖分類號:TP242.6文獻標志碼:A
0 引言
廠房、銀行和大型超市等場所需要大量的人力執行日常的安保和巡邏任務,該任務具有一定的不確定性和危險性。隨著智能機器人技術的發展,其融合了機械工程、電子技術、計算機科學、自動化控制、人工智能等多個方面的知識和技術。種類繁多的機器人逐漸進入人們的日常生活中,為人類的生活和工作提供了諸多便利,重復性高且危險系數大的任務可以讓機器人代替人執行。現代機器人廣泛應用于軍事、工業制造、醫療、物流、家庭服務、娛樂等領域。因此,面向廠房、銀行和大型超市等場景開發一款價格低、功能豐富、智能化程度高的巡邏機器人,巡邏機器人代替人類在任務區域內進行現場巡邏以及監控,節約了人力成本,降低了巡邏人員安全風險,提高了突發情況響應速度。
1 巡邏機器人總體設計
文章的巡邏機器人具體有3個部分,分別是環境感知模塊、導航模塊和監控模塊。ROS(Robot Operating System)是部署在Ubuntu系統上的機器人元操作系統,其包含了大量的工具軟件、庫代碼和約定協議用于連接操作系統和機器人的驅動接口。不同的節點模塊間使用P2P的松耦合的連接。運用ROS搭建的巡邏機器人在生產生活中具有很高的實用價值,能夠有效地節省人力資源。在室內場景,如庫房、銀行和酒店等場所,其能夠實現實時的安防監控和巡邏功能。環境感知模塊采用激光雷達、深度相機和里程計等傳感器,能夠使系統實現激光同步定位與建圖(Simultaneous Localization and Mapping,SLAM)功能,而里程計配合激光雷達可以提高建圖精度。深度相機也能實現定位和建圖的功能,在本系統中使用深度相機實現視頻監控功能和人體跟隨功能。底盤驅動模塊采用編碼電機驅動麥克納姆輪,STM32驅動板作為下位機負責電機的控制和供電,部件安裝在較為輕便的亞克力板底盤上。
樹莓派作為上位機,安裝了Ubuntu20.04系統用來搭建ROS環境。其能夠實現定位、建圖、導航、視頻監控、底盤控制等功能。上位機樹莓派自帶Wi-Fi模塊,本巡邏機器人具有網絡通信功能,可以通過PC端進行遠程控制,查看監控攝像頭拍攝的實時畫面。
1.1 機械結構設計
機器人采用合金連接件、亞克力板和3D打印件作為機身結構件,在獲得堅固外觀的同時實現輕量化和較低的制造成本,為后續的升級拓展和維護提供了便捷性。激光雷達和底盤驅動板置于機器人的第二層。深度相機置于第三層,使其具有良好的監控視野。電子設備均勻分布在車身上,降低車身重心提高穩定性。底盤采用獨立電機驅動麥克納姆輪,使巡邏機器人具有全向移動功能,可以自由通過多障礙物復雜地形。
1.2 系統架構設計
在硬件系統中,上位機采用樹莓派作為機器人的數據處理和控制中心,下位機采用STM32驅動板實現底盤移動控制。樹莓派中將ROS-noetic環境配置到Ubuntu 20.04系統,負責接收激光雷達、深度相機、慣性傳感器和下位機的數據,將收集的數據進行處理、分析后發布指令,實現對機器人的控制。同時,所提設計方案將車身周圍環境信息發布在網絡,通過PC或移動手機端訪問控制。下位機作為小車底盤的控制中心,集成了一套對麥克納姆輪小車移動的控制算法,負責電機的供電與控制,收集編碼電機數據,上傳到上位機,通過分析轉換為里程計信息,實現巡邏機器人定位和建圖的誤差校正。
2 環境感知模塊
2.1 定位
巡邏機器人采用自適應蒙特卡羅定位(Adaptive Monte Carlo Localization,AMCL)[1]。AMCL算法主要解決傳統蒙特卡羅定位(Monte Carlo Localization,MCL)算法中機器人被“綁架”的問題。具體的解決方案為在迭代過程中隨機注入粒子:算法通過引入虛擬的“粒子”來模擬機器人可能的位置狀態;每個粒子都代表機器人在某一時刻的一種可能的位姿;算法的準確性通過調整這些粒子的“權重”來體現,權重越高意味著這個粒子的位姿估計越可信。
算法包括2個主要步驟:預測和更新。在預測步驟中,算法通過使用機器人的運動模型結合激光掃描數據來預估當前時刻機器人的位姿,并估計其運動軌跡。在更新步驟中,算法會對照實際的激光掃描數據來調整每個粒子的位姿估計,根據預測位姿與實際觀測數據的匹配程度來調整粒子的權重。算法包含一個自適應的重采樣過程,會檢查粒子的數量是否低于某個設定的閾值。如果粒子數量較少,說明當前的位姿估計不夠準確,這時算法會進行重采樣,即創建新的粒子來豐富位姿估計的多樣性。如果粒子數量足夠,算法則直接輸出當前的位姿估計結果,并準備進行下一輪的預測和更新。這個過程不斷迭代,使得機器人的位姿估計越來越準確。
2.2 建圖
巡邏機器人通過獲取周圍環境信息來實現自主導航,目前在機器人領域被廣泛應用的建圖算法是Gmapping[2],其在RBPF-SLAM的基礎上通過粒子重采樣和改進提議分布的方法緩解了粒子的退化問題,提高了定位和建圖的準確度。該算法在范圍較小的非結構化環境中具有出色的性能優勢,建圖效果好、計算量小且性能優異。設x1:k為位置和位姿的集合,m為地圖估計。算法過程可以用式(1)表示。
p(x1∶k,m|z1∶k,u1∶k-1)=p(x1∶k|z1∶k,u1∶k-1)×p(m|x1∶k,z1∶k)(1)
其中,x1∶k=x1,x2,x3,…,xk表示k個機器人位姿的集合,p(x1∶k|z1∶k,u1∶k-1)表示先驗概率估計,p(m|x1∶k,z1∶k)表示基于當前機器人位姿和觀測數據構建的全局地圖的集合。
3 導航模塊
巡邏機器人的路徑規劃算法分為全局路徑規劃算法和局部路徑規劃算法。全局路徑規劃算法是根據已知的全局代價地圖,在當前位置和目標位置之間計算出最短路徑。而局部路徑規劃算法是在機器人自身周圍較小空間內,實現實時動態避障。
在ROS系統中內置了Navigation功能模塊,其主要運用ROS機器人的各類傳感器數據和靜態地圖數據進行自主路徑規劃。文章在局部路徑規劃選擇動態窗口法[3](Dynamic Window Approach,DWA),而全局路徑規劃選擇了A*算法[4]。
3.1 局部路徑規劃
動態窗口法是一類經典的機器人局部路徑規劃算法[5]。其主要分為2個部分:一是速度空間(v,ω)線速度和角速度的計算,取值范圍如式(2)所示,具體取值范圍受機器人自身機體重量和電機性能等情況限制;另一個選擇當前情況下最優的速度空間作為當前速度。
V={(v,ω)|v1≤v≤v2,ω1≤ω≤ω2}(2)
3.2 全局路徑規劃
全局路徑規劃算法采用A*算法,是一種圖形搜索算法,常用于機器人路徑規劃中。A*算法尋找初始節點到目標節點的最短路徑。以下是A*算法的基本流程。
(1)初始化:創建2個集合,開集和閉集。開集存儲待檢查的節點,初始時只包含起始節點。閉集用于存儲已經檢查過的節點,初始為空。
(2)選定節點:從開集中選擇代價小的節點。若其為目標點,則算法結束;否則將其移至閉集,表示已檢查。
(3)拓展節點:通過計算當前選中的節點的鄰接節點的代價,如果該節點不在開集或者代價不是最小則移入閉集。
(4)重建路徑:當找到目標節點時,通過目標節點的父節點逆向追蹤到起始節點,得到最終的最短路徑。如果找到目標節點,則算法結束,輸出找到的最短路徑。如果開集為空,說明無法找到目標節點,算法結束。
A*算法的效率與其使用的啟發式函數(h值)有關,通過該函數判斷當前節點是否值得進一步檢查,這使得算法能夠優先考慮最有可能包含最短路徑的節點,如式(3)所示。
f=g+h(3)
其中, f為總代價,g為當前代價,h為預估代價。通過這種方式,A*算法能夠在大多數情況下找到最短路徑,在實際應用中表現良好。
4 監控模塊
監控模塊包括視頻監控和人體檢測與跟蹤功能。
4.1 視頻監控
文章通過巡邏機器人機頂安裝的相機,可以實現視頻監控功能。視頻監控與物聯網相結合,增加了遠程控制模塊。監控畫面通過網絡實時上傳到移動端或者PC端,如有突發情況發生,可以通過Wi-Fi模塊直接與下位機STM32進行串口通信,人工介入操控巡邏機器人進行移動。
4.2 人體檢測與跟蹤
當激光雷達實時探測到的地圖與靜態地圖存在不同時,監控模塊便會通過巡邏機器人機頂安裝的深度相機,調用ROS系統預置的人體骨骼識別PoseNet,當識別到人體時,將警報信息上傳到PC端或移動端。同時,監控模塊通過激光雷達識別人體位置信息,通過上位機樹莓派進行處理并向下位機發送移動指令,自主進行人體跟蹤,直到有人員介入控制。
5 實驗與結果分析
為了驗證文章的所使用相關算法的有效性,在真實室內環境中進行實驗。
5.1 定位與建圖
在真實室內環境中,文章的全局定位方法能夠在人為不干預的條件下進行隨機粒子生成,并通過機器人移動實現收斂,這充分證明了文章全局定位方法的有效性。Gmapping算法在真實室內環境下能夠準確建圖,如圖1所示。建圖完成后系統可以將地圖數據保存,如圖2所示。結果充分證明了文章建圖算法的有效性。
5.2 路徑規劃
文章使用的局部路徑規劃算法如圖3所示。全局路徑規劃算法如圖4所示。在真實室內環境下,系統能夠快速準確地規劃路徑,這充分證明了文章路徑規劃算法的有效性和魯棒性。
5.3 視頻監控與人體跟蹤
視頻監控實驗畫面如圖5所示。在真實室內環境中,其能將深度相機拍攝畫面實時上傳網絡,當發現可疑人體時,上報PC端并進行自主跟蹤。
6 結語
本文通過對多傳感器數據的融合處理,實現對巡邏機器人的AMCL重定位、Gmapping地圖構建、局部和全局路徑規劃、區域監控和人體跟蹤等功能。該系統在真實室內環境中進行了實驗論證,實驗結果表明該系統設計在定位、構建地圖、路徑規劃和區域監控等具有良好的效果。在默認模式下,系統能夠自主執行巡邏監控任務。在主動控制模式下,系統能夠對通過互聯網發送的遠程指令實時精準執行。由于該系統采用深度相機作為監控攝像頭,后續研究可以融合相機的深度信息,提高建圖的準確度和精度,以提高系統整體的魯棒性。該系統設計目的是替代人員執行巡邏任務以保護人員安全,可以在庫房、銀行等地進行巡邏監控,并能將深度相機識別的可疑信息上傳到PC端,同時具備自主跟蹤功能。
參考文獻
[1]游剛,李世蕓,仇雋挺,等.基于改進AMCL與點云匹配校正的落布機器人定位分析[J].機械設計與研究,2024(1):56-62.
[2]邵連奇,張媛媛,袁田,等.基于ROS的機器人自主探索導航與地圖構建研究[J].科技創新與應用,2023(8):37-40.
[3]張振濤.基于ROS的室內移動機器人路徑規劃算法研究與應用[D].杭州:浙江理工大學,2023.
[4]辛鵬.基于A*算法的移動機器人路徑規劃研究[D].邯鄲:河北工程大學,2022.
[5]王超.基于多傳感器的機器人導航研究[D].西安:西安工業大學,2023.
Design of patrol robot system based on ROS
Abstract: This paper designs an autonomous navigation system of patrol robot based on ROS for factories, banks, supermarkets and other places that need manual patrol. In this paper, ROS system is deployed on a patrol robot developed based on Raspberry PI hardware, and the environmental awareness module, navigation module and monitoring module of the patrol robot are studied and designed. The system uses simultaneous localization and mapping (SLAM) technology to achieve positioning, mapping and navigation functions through laser radar and odometer. The experimental results show that the system has fast convergence speed, high precision of map construction, good stability of path planning, and can replace human patrol.
Key words: ROS; patrol robot; SLAM; Gmapping algorithm; AMCL algorithm