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