李業(yè)謙 陳春苗



摘? 要: 基于傳統(tǒng)移動機器人導航系統(tǒng)存在橫向偏差大的問題,為了縮小移動機器人行駛的橫向偏差,提出基于ROS和激光雷達的移動機器人自動導航系統(tǒng)設計。通過激光雷達傳感器設計和導航服務器端優(yōu)化設計,完成系統(tǒng)的硬件設計;依托移動機器人導航程序設計和獲取激光雷達數(shù)據(jù),完成系統(tǒng)的軟件設計,實現(xiàn)移動機器人自動導航系統(tǒng)的設計。在ROS和激光雷達的基礎上,實現(xiàn)了移動機器人的自動導航。測試結果顯示,基于ROS和激光雷達的移動機器人自動導航系統(tǒng)與傳統(tǒng)導航系統(tǒng)相比,在移動機器人行駛過程中具有較小的偏差。
關鍵詞: 移動機器人; 自動導航; 系統(tǒng)設計; ROS; 激光雷達; 系統(tǒng)測試
中圖分類號: TN953?34; TP242? ? ? ? ? ? ? ? ? 文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)10?0176?03
Design of mobile robot automatic navigation system based on ROS and laser radar
LI Yeqian, CHEN Chunmiao
(Nanfang College of Sun Yat?Sen University, Guangzhou 510970, China)
Abstract: In allusion to the large lateral deviation existing in the traditional mobile robot navigation system, a mobile robot automatic navigation system based on ROS and laser radar is proposed to reduce the lateral deviation of mobile robot running. The hardware design of the system is completed by means of the laser radar sensor design and the navigation server optimization design; the software design of the system is completed relying on the design of navigation program of mobile robot and the acquirement of laser radar data, so as to realize the design of the automatic navigation system of mobile robot. The automatic navigation of mobile robot is realized based on ROS and laser radar. The testing results show that, in comparison with the traditional navigation system, the mobile robot automatic navigation system based on ROS and laser radar has smaller deviation in the process of mobile robot moving.
Keywords: mobile robot; automatic navigation; system design; ROS; laser radar; system testing
0? 引? 言
如今工業(yè)機器人技術迅猛發(fā)展,工業(yè)上依靠人工來完成的工作大多被工業(yè)機器人承擔,因此移動機器人的研究已從工業(yè)生產(chǎn)上向生活領域轉(zhuǎn)換[1]。如果將工業(yè)機器人比作傻瓜式操作,不需過多腦力思考,那么移動機器人就會智能很多,因為移動機器人可以滿足工業(yè)生產(chǎn)和社會上不同的需求[2]。移動機器人與工業(yè)機器人在種類和復雜程度方面都屬于同一個級別,移動機器人的應用場景是多樣化的。
盡管移動機器人在研發(fā)上仍有些困境,但選擇高超技術手段還可以提高相應功能。導航技術作為移動機器人的研究核心,指移動機器人通過測量激光雷達傳感器所感知到的環(huán)境信息和自身姿態(tài),實現(xiàn)姿態(tài)之間的自主移動,在移動過程中還可以合理地避開障礙物[3]。因此本文在導航技術的基礎上,引入ROS和激光雷達,設計一套移動機器人自動導航系統(tǒng),更好為人類服務。
1? 移動機器人自動導航系統(tǒng)硬件設計
1.1? 激光雷達傳感器設計
激光雷達通過自身不斷接收反射的激光信息,來確定周圍環(huán)境情況與移動機器人之間的距離,可以縮小移動機器人導航的橫向偏差。采用激光雷達傳感器的目的是可以感知到當前環(huán)境信息,并構建當前所處的環(huán)境地圖,國外的激光雷達傳感器雖有較高精度和掃描范圍,但成本高[4]。本文設計的激光雷達傳感器是成本超低的360°激光掃描測距雷達傳感器,最大掃描范圍可達6 m,可實現(xiàn)360°全方位掃描和自動導航功能[5]。激光雷達傳感器內(nèi)部結構如圖1所示。
激光雷達傳感器的采樣頻率可以達到10 Hz、4 000次/s,可以實現(xiàn)對周圍環(huán)境邏輯信息的快速獲取,幫助移動機器人實現(xiàn)快速精準的導航。相比傳統(tǒng)導航系統(tǒng)中的傳感器,激光雷達傳感器中融合ROS原理,ROS可以實現(xiàn)導航路徑規(guī)劃的實時導航,自動將障礙物避開[6]。基于ROS的激光雷達傳感器測距原理如圖2所示。
基于ROS的激光雷達傳感器在每次測距時,都采用激光三角測距技術,產(chǎn)生激光掃描區(qū)域周圍的環(huán)境,在通過實時監(jiān)測導航遇到障礙物反射回來的激光測距信號,就可以快速得到周圍物體與移動機器人之間的距離,降低導航的橫向偏差。
1.2? 導航服務器端優(yōu)化設計
導航系統(tǒng)的服務器端會隨時接收到移動機器人的環(huán)境數(shù)據(jù),必須要優(yōu)化服務器端的設計,擴大服務器的容量,避免在行駛時造成較大的橫向偏差。移動機器人自動導航系統(tǒng)的服務器端主要有兩個組件,分別是地圖創(chuàng)建和路徑規(guī)劃[7]。地圖創(chuàng)建是在電子地圖上面將坐標點標記出來,然后將電子地圖上面的坐標點連接起來,形成一個全局式電子地圖,并將坐標點和連接信息存放在數(shù)據(jù)庫中,坐標點可以根據(jù)移動機器人發(fā)送過來的坐標點標記,也可以直接標記。路徑規(guī)劃可以為移動機器人提供導航路徑,包括自動和手動兩個功能,主要完成移動機器人自動導航系統(tǒng)的管理工作[8]。導航服務器的架構圖如圖3所示。
地圖創(chuàng)建和路徑規(guī)劃都是在系統(tǒng)的后臺實現(xiàn)的,前端是用網(wǎng)頁的行駛操作每一個功能點,同時還要響應移動機器人自動導航系統(tǒng)中硬件端的路徑請求。導航服務器端的后臺管理為移動機器人自動導航系統(tǒng)的后臺管理進行地圖創(chuàng)建和路徑規(guī)劃,并通過控制器來修改地圖上的坐標點[9]。后臺管理的視圖端口可以發(fā)送導航坐標點給導航服務器請求一條可行的路徑,導航服務器端根據(jù)導航路徑規(guī)劃來完成自動導航任務,實現(xiàn)移動機器人的自動導航。
2? 移動機器人自動導航系統(tǒng)軟件設計
2.1? 移動機器人導航程序設計
移動機器人在行駛時,會由于導航系統(tǒng)的程序運行不穩(wěn)定,造成行駛的橫向偏差大,因此在移動機器人自動導航系統(tǒng)硬件設計的基礎上,采用VC++編程實現(xiàn)移動機器人導航程序設計[10]。移動機器人自動導航程序流程如圖4所示。
移動機器人自動導航程序在設計過程中,要考慮到對自動導航系統(tǒng)各個構件的保護,導航位置角和姿態(tài)角同時都大于一個特殊值時,要是用移動機器人自動停止行走,并且系統(tǒng)控制器輸出的控制值也要采取最大值限制。根據(jù)導航服務器的信號采集、信號濾波和傳輸?shù)人钑r間長短,確定移動機器人的導航周期為100 ms。
基于加強自動導航系統(tǒng)構件的保護,將系統(tǒng)軟件操作界面融入導航程序設計中,確定了移動機器人的一個導航周期,實現(xiàn)了移動機器人的自動導航。
2.2? 獲取激光雷達數(shù)據(jù)
移動機器人開啟自動導航模式時,要先根據(jù)獲取到的激光雷達數(shù)據(jù)對周圍環(huán)境定位,通過檢測出移動機器人與周圍物體之間的距離,來縮小行駛的橫向偏差。對周圍環(huán)境建立模型時,需通過觀測平臺控制移動機器人,使用激光雷達結合ROS構成里程計來測量移動機器人的周圍環(huán)境。激光雷達獲取測量的距離信息,里程計通過記錄移動機器人中導航儀的讀數(shù),在設定的初始位置計算位姿估計。通過移動機器人自動導航系統(tǒng)自帶的速度控制主題和控制節(jié)點,來控制移動機器人全向移動。
在移動機器人自動導航系統(tǒng)中,ROS Base Controller是常用的控制節(jié)點,通過監(jiān)聽在自動導航系統(tǒng)中的發(fā)布,利用ROS進行移動機器人的激光雷達數(shù)據(jù)獲取,控制移動機器人的運動。
綜上通過激光雷達傳感器設計和導航服務器端優(yōu)化設計,完成系統(tǒng)硬件設計;依托移動機器人導航程序和獲取激光雷達數(shù)據(jù),完成系統(tǒng)軟件設計,基于ROS和激光雷達實現(xiàn)了移動機器人自動導航。
3? 系統(tǒng)測試
3.1? 搭建測試平臺
根據(jù)本文設計的自動導航系統(tǒng),實驗室測試所用的移動機器人搭載了兩個芯片處理單元,分別為樹莓派和ART98G035LCY。
樹莓派的型號選擇3B+,主要特征有:內(nèi)存為1 GB;雙頻903.77ac無線網(wǎng)卡;搭載1.4 GHz 四核中央處理器;可以搭載重量型的操作系統(tǒng)。
ART98G035LCY屬于一種低端的微控制器,內(nèi)核為72 MHz,主要特征有:最大可以承受64 KB的存儲器;兩個轉(zhuǎn)換器,可以用于測距的傳感器;兩個控制器;三個USART接口,可以用于串口通信。
3.2? 實驗步驟
上文在導航服務器端設計中提到測試前先創(chuàng)建環(huán)境地圖,證明實驗的真實性。創(chuàng)建步驟如下:
1) 連接激光雷達并獲取數(shù)據(jù);
2) 將激光數(shù)據(jù)發(fā)布到ROS中;
3) 發(fā)布里程計數(shù)據(jù);
4) 控制移動機器人的遠程運動;
5) 控制移動機器人在實驗環(huán)境中行走;
6) 記錄實驗結果。
3.3? 實驗結果分析
利用上述搭建的測試平臺和測試步驟,采用移動機器人的行駛距離作為自變量,讓移動機器人在寬為4 m的道路上行駛,得到移動機器人橫向偏差變化曲線(向右為正,向左為負),如圖5所示。
從變化曲線中可知,傳統(tǒng)導航系統(tǒng)計算移動機器人行駛的橫向偏差時,向右偏差都在0.6 m左右,而向左橫向偏差達到0.7 m,行駛過程中產(chǎn)生的橫向偏差較大;然而采用基于ROS和激光雷達的移動機器人自動導航系統(tǒng)計算移動機器人行駛的橫向偏差時,左右偏差都在0.2 m內(nèi),行駛過程中產(chǎn)生橫向偏差較小。因此可知基于ROS和激光雷達移動機器人自動導航系統(tǒng)可縮小移動機器人行駛的橫向偏差。
4? 結? 語
本文提出基于ROS和激光雷達的移動機器人自動導航系統(tǒng)設計。通過移動機器人自動導航系統(tǒng)的硬件設計和軟件設計,實現(xiàn)了移動機器人的自動導航。測試結果表明,基于ROS和激光雷達的移動機器人自動導航系統(tǒng)相比于傳統(tǒng)導航系統(tǒng),移動機器人行駛的橫向偏差較小。
參考文獻
[1] 壽佳鑫,張志明,蘇永清.基于ROS和激光雷達的室內(nèi)移動機器人定位和導航系統(tǒng)設計與實現(xiàn)[J].機械與電子,2018,36(11):78?82.
[2] 汪名飛,丑武勝,樊嘉欣.多功能巡檢救援機器人系統(tǒng)設計及定位導航[J].機械設計與制造,2018(11):233?236.
[3] 蘭建軍,李春來,劉寅東.光伏電站巡檢機器人電磁導航系統(tǒng)設計[J].電測與儀表,2017,54(9):30?34.
[4] 譚巧,徐啟峰,謝楠.實現(xiàn)線性測量的光學電壓傳感器設計[J].電力系統(tǒng)自動化,2017,41(3):135?140.
[5] 石鑫,韓月,丁思紅.粒子計數(shù)器的一種新型光學傳感器設計[J].傳感技術學報,2018,31(1):30?35.
[6] 楊梅芳,任尚坤,趙珍燕.基于磁導率檢測技術的傳感器設計研究[J].中國測試,2017,43(2):77?81.
[7] 仝青,張錚,張為華.擬態(tài)防御Web服務器設計與實現(xiàn)[J].軟件學報,2017,28(4):883?897.
[8] 郭少敏,石軍鋒.基于Android和ZigBee的嵌入式Web服務器設計[J].現(xiàn)代電子技術,2018,41(8):100?103.
[9] 劉洪劍,王耀南,譚建豪.一種旋翼無人機組合導航系統(tǒng)設計及應用[J].傳感技術學報,2017,30(2):331?336.
[10] 蘭坤,張巖,沈旭昆.一種基于視覺的手術導航系統(tǒng)設計與實現(xiàn)[J].系統(tǒng)仿真學報,2017,29(9):2025?2034.