邱釗鵬,邱利軍,陳春先,辛 義
基于ROS開發(fā)平臺(tái)的服務(wù)機(jī)器人智能導(dǎo)航系統(tǒng)及仿真驗(yàn)證研究
邱釗鵬,邱利軍,陳春先,辛 義
(北京電子科技職業(yè)學(xué)院 機(jī)電工程學(xué)院,北京 100176)
對室內(nèi)移動(dòng)機(jī)器人的定位導(dǎo)航系統(tǒng)進(jìn)行了改進(jìn)設(shè)計(jì)。基于機(jī)器人操作系統(tǒng)(ROS)開發(fā)平臺(tái),應(yīng)用樹莓派控制器進(jìn)行平臺(tái)控制,采用激光雷達(dá)進(jìn)行環(huán)境信息收集,開發(fā)了一種擁有路徑規(guī)劃等多種功能的軟件算法。仿真結(jié)果說明該系統(tǒng)所構(gòu)建的環(huán)境地圖可以達(dá)到很高的精度,并且可以進(jìn)行模塊化開發(fā)和拓展,降低開發(fā)難度及費(fèi)用。
移動(dòng)機(jī)器人;導(dǎo)航系統(tǒng);開發(fā)平臺(tái);仿真驗(yàn)證
移動(dòng)機(jī)器人能適用于多種環(huán)境,其自身配備了傳感器等,在實(shí)際移動(dòng)的過程中可以獲得一系列環(huán)境信息,并基于這些信息來實(shí)現(xiàn)導(dǎo)航功能[1-3]。對機(jī)器人自主運(yùn)動(dòng)進(jìn)行分析可知,其中最為關(guān)鍵的是即時(shí)定位與地圖構(gòu)建(simultaneous localization and mapping,SLAM)技術(shù)[4-5]。本文對SLAM算法進(jìn)行了較深入的研究,并進(jìn)行室內(nèi)定位和導(dǎo)航系統(tǒng)的開發(fā)。機(jī)器人智能導(dǎo)航系統(tǒng)的控制器采用卡片式電腦樹莓派,硬件平臺(tái)的搭建創(chuàng)造性地使用了激光雷達(dá),軟件開發(fā)采用ROS分布式機(jī)器人操作系統(tǒng)框架,使該系統(tǒng)可以實(shí)現(xiàn)真正的差速驅(qū)動(dòng)和較低的開發(fā)成本。
SLAM模型見圖1。給出1:={1,2,…,u}以及1:={1,2,…,z},對0:={0,1,…,x}進(jìn)行求取。
由于機(jī)器人運(yùn)動(dòng)的起始點(diǎn)所處的環(huán)境和所處的地點(diǎn)并不明確,所以在移動(dòng)的過程中會(huì)對環(huán)境特征進(jìn)行持續(xù)采集,也就可以實(shí)現(xiàn)對自身位置以及姿態(tài)的確定,并在上述數(shù)據(jù)的基礎(chǔ)之上實(shí)現(xiàn)地圖的有效構(gòu)建。然而,對SLAM過程進(jìn)行分析[6-7]時(shí),由于SLAM過程具有不確定性,某一時(shí)刻機(jī)器人的位姿無法精確表示,需要使用分布進(jìn)行估計(jì)[8]。雖然傳感器會(huì)辨別機(jī)器人的相對運(yùn)動(dòng),但整個(gè)過程很難具有確定性,加之外界環(huán)境的噪聲影響[9],在迭代運(yùn)算中,相應(yīng)的增量容易產(chǎn)生誤差,便會(huì)采用更多的迭代次數(shù),而這種情況下又會(huì)產(chǎn)生相對更多的誤差,進(jìn)而影響到多方面的精確度。為了解決這一問題,就需要補(bǔ)償累積誤差。本研究采用環(huán)路閉合檢測法檢測補(bǔ)償累積誤差,檢測系統(tǒng)框圖如圖2所示。
圖1 SLAM模型
圖2 檢測系統(tǒng)框圖
A*算法是一種需求最優(yōu)路徑的方法,在很多領(lǐng)域都有應(yīng)用,也有著非常不錯(cuò)的效果,通常應(yīng)用于靜態(tài)環(huán)境中[10-11]。機(jī)器人要朝著某一目標(biāo)移動(dòng),但在規(guī)劃移動(dòng)策略前要進(jìn)行一系列準(zhǔn)備工作,首先需要規(guī)劃全局路徑。本系統(tǒng)的開發(fā)采用了A*算法進(jìn)行全局路徑規(guī)劃。
作為機(jī)器人操作系統(tǒng)(robot operating system,ROS)平臺(tái),主要硬件模塊包括了樹莓派3B,還包括RPLIDAR A1激光雷達(dá)以及Arduino、A4950模塊、Pro Mini模塊等,其相互間關(guān)系詳如圖3所示。若想要功能更加豐富,則需要配置其他類型的傳感器。
2.1.1 激光雷達(dá)
激光雷達(dá)(LiDAR)在工作過程中會(huì)向目標(biāo)發(fā)射激光束,一部分激光束會(huì)反射回來,基于被反射回來的光束,可實(shí)現(xiàn)對目標(biāo)距離的測量。激光傳感系統(tǒng)在生產(chǎn)實(shí)踐中有著非常普遍的應(yīng)用[12],例如二維、三維立體掃描激光雷達(dá)。本服務(wù)機(jī)器人智能導(dǎo)航系統(tǒng)采用RPLIDAR A1型激光掃描測距雷達(dá),其本質(zhì)上屬于一種二維激光雷達(dá),在實(shí)際應(yīng)用中有著非常低的成本,因此十分受歡迎。該設(shè)備采用三角測距原理,激光 掃描半徑6 m,在5.5 Hz下的測距分辨率可以達(dá)到0.2%。
圖3 ROS模塊相互間關(guān)系
2.1.2 控制器
樹莓派3B在眾多設(shè)計(jì)中有著普遍的應(yīng)用,本質(zhì)上屬于一種開源卡片式電腦,采用ARM架構(gòu)[13]。Linux內(nèi)核UbuntuMate操作系統(tǒng)是一種分時(shí)系統(tǒng),而為實(shí)現(xiàn)對移動(dòng)機(jī)器人運(yùn)動(dòng)的有效控制,需要配備Arduino ProMini最小系統(tǒng),并依托高速串口連接主控制器和驅(qū)動(dòng)控制器。
2.1.3 其他模塊
移動(dòng)機(jī)器人平臺(tái)要驅(qū)動(dòng)2個(gè)減速電機(jī),并要保證2個(gè)減速電機(jī)可以實(shí)現(xiàn)差速運(yùn)動(dòng),減速比為1∶30,額定功率為7 W,極限轉(zhuǎn)速為500 r/min。電機(jī)需要實(shí)現(xiàn)轉(zhuǎn)速反饋和里程統(tǒng)計(jì),這兩個(gè)功能依托其自帶的A/B相編碼器來實(shí)現(xiàn)。供電模塊采用電壓為12 V的航模 電池。
2.2.1 機(jī)器人操作系統(tǒng)(ROS)
ROS是一種開源級操作系統(tǒng),可以提供眾多的服務(wù),例如程序間傳遞信息。ROS采用分布式處理框架,所獲得的處理平臺(tái)存在差異,關(guān)鍵是應(yīng)用通信模塊實(shí)現(xiàn)對等式網(wǎng)絡(luò)解耦合,囊括了異步數(shù)據(jù)流通信等多種類型。在實(shí)際應(yīng)用中,ROS的分布式處理框架能夠保證每個(gè)可執(zhí)行程序的獨(dú)立性,可以真正實(shí)現(xiàn)松散耦合。為了更容易進(jìn)行共享和分發(fā),必須對其進(jìn)行分組,該過程的實(shí)現(xiàn)主要依托于功能包和功能包集。
2.2.2 系統(tǒng)軟件設(shè)計(jì)
機(jī)器人系統(tǒng)的開發(fā)實(shí)現(xiàn)模塊化,對應(yīng)的基本組織元為base_controller、myrobot、move_base、amcl等,在所有的包中有多個(gè)節(jié)點(diǎn),可以保證功能的實(shí)現(xiàn),如圖4所示。
圖4 ROS系統(tǒng)軟件框架
對myrobot包進(jìn)行分析可知,其所擁有的部分文件主要說明機(jī)器人在啟動(dòng)過程中必須進(jìn)行加載,此時(shí)主要應(yīng)用了ROS中的工具,同時(shí)還會(huì)將向坐標(biāo)變換關(guān)系傳送給系統(tǒng),在仿真測試中也可以得到很好的應(yīng)用。
base_controller包在實(shí)際應(yīng)用中可以控制機(jī)器人的運(yùn)動(dòng)。機(jī)器人在這一過程中還會(huì)向其傳送線速度和角速度運(yùn)動(dòng)指令,對于這部分所獲得的指令進(jìn)行計(jì)算,同時(shí)完成相應(yīng)的指令轉(zhuǎn)換,并在處理后將其傳送給驅(qū)動(dòng)控制器。后者也會(huì)將驅(qū)動(dòng)輪速度的消息傳送給前者,并對這部分的信息進(jìn)行針對性的轉(zhuǎn)換,最終呈現(xiàn)出的形式為里程信息和里程坐標(biāo)變換,并向其他節(jié)點(diǎn)傳送。該包所擁有的節(jié)點(diǎn)可以實(shí)現(xiàn)對機(jī)器人移動(dòng)的鍵盤遠(yuǎn)程控制,在地圖構(gòu)建的過程中實(shí)現(xiàn)對機(jī)器人移動(dòng)的遠(yuǎn)程控制,而這一過程的實(shí)現(xiàn)主要依托于Wi-Fi局域網(wǎng)。
對rpli-dros包進(jìn)行分析可知,其在實(shí)際工作的過程中需要與激光雷達(dá)進(jìn)行通信,完成相應(yīng)參數(shù)的配置,同時(shí)對傳感器所獲得的數(shù)據(jù)進(jìn)行讀取。本質(zhì)上,rpli-dros屬于RPLIDAR的ROS驅(qū)動(dòng)。
對cosserial包進(jìn)行分析可知,其在實(shí)際工作的過程中需要實(shí)現(xiàn)主控制器和驅(qū)動(dòng)控制器間的通信,而這一過程的實(shí)現(xiàn)主要依托于USB。
對SLAM包進(jìn)行分析可知,其在實(shí)際工作的過程中需要實(shí)現(xiàn)SLAM地圖構(gòu)建,move _base包的主要職責(zé)是導(dǎo)航,而amcl包的職責(zé)主要是定位。
2.2.3 驅(qū)動(dòng)控制算法
驅(qū)動(dòng)控制器可對電機(jī)等進(jìn)行控制,通常情況下,驅(qū)動(dòng)控制器的運(yùn)行周期被設(shè)定為20 ms,以保證良好的實(shí)時(shí)性,多任務(wù)主要依托于回調(diào)方式來實(shí)現(xiàn),其流程如圖5所示。底盤的驅(qū)動(dòng)采用減速電機(jī),配置數(shù)量為2個(gè)。在驅(qū)動(dòng)的過程中可以實(shí)現(xiàn)TTL電平的輸出,從而對電機(jī)方向進(jìn)行控制;若實(shí)現(xiàn)PWM信號輸出,可以實(shí)現(xiàn)對電機(jī)轉(zhuǎn)速的控制,所采用算法為
式中,Δ為控制量的增量,即輸出電機(jī)驅(qū)動(dòng)PWM信號占空比的變化量。P、I、D分別為PID控制器中P值參數(shù)、I值參數(shù)以及D值,Δ()為P值參數(shù)下控制變量,()為I值參數(shù)下控制變量。
PID控制器的輸出與前一時(shí)刻控制量疊加,得到當(dāng)前時(shí)刻控制器的實(shí)際輸出值。
圖5 驅(qū)動(dòng)控制器運(yùn)行流程
2.2.4 SLAM功能實(shí)現(xiàn)
Hector SLAM算法的開始需要獲得掃描數(shù)據(jù),然后需要處理其中所擁有的環(huán)境特征,實(shí)現(xiàn)特征點(diǎn)集的有效提??;后續(xù)就要對最佳匹配激光束的剛性變換進(jìn)行求解。此時(shí)主要應(yīng)用高斯-牛頓方程校正機(jī)器人位姿,同時(shí)也可以構(gòu)建占用柵格的地圖,如圖6所示。
圖6 實(shí)現(xiàn)功能框圖
(1)對于URDF機(jī)器人對應(yīng)的描述文件進(jìn)行加載,對于非固定關(guān)節(jié)所呈現(xiàn)的連接狀態(tài)進(jìn)行發(fā)布,并對于轉(zhuǎn)變坐標(biāo)系間所呈現(xiàn)出的關(guān)系進(jìn)行發(fā)布。驅(qū)動(dòng)控制器在這一階段實(shí)現(xiàn)啟動(dòng),base_controller需要啟動(dòng),odom_publisher節(jié)點(diǎn)此時(shí)也需要啟動(dòng),其所發(fā)揮的主要作用就是對命令解析進(jìn)行控制,對機(jī)器人現(xiàn)階段的速度和現(xiàn)階段所達(dá)到的里程數(shù)據(jù)進(jìn)行收集、變換和發(fā)布,鍵盤遠(yuǎn)程控制節(jié)點(diǎn)此時(shí)也需要被開啟。
(2)基于計(jì)劃配置工作參數(shù),開啟運(yùn)行激光雷達(dá)。
(3)啟動(dòng)hector _mapping,其在系統(tǒng)中的作用就是實(shí)現(xiàn)Hector SLAM。
(4)啟動(dòng)Rviz界面,其在系統(tǒng)中的作用就是對地圖的構(gòu)建進(jìn)行實(shí)時(shí)觀察,并對機(jī)器人位姿進(jìn)行實(shí)時(shí)觀察。在這種情況下,需要應(yīng)用機(jī)器人三維模型等。
2.2.5 導(dǎo)航功能實(shí)現(xiàn)
應(yīng)用ROS的move_base軟件包可以實(shí)現(xiàn)導(dǎo)航,并有效輸出控制命令等。對于move_base包所擁有的節(jié)點(diǎn),需要準(zhǔn)確地進(jìn)行配置,同時(shí)還需要針對性地配置參數(shù)、代價(jià)地圖,添加啟動(dòng)文件,明確目標(biāo)位置和方向,在傳感器相關(guān)信息的基礎(chǔ)之上,對路徑進(jìn)行針對性的規(guī)劃,同時(shí)對機(jī)器人進(jìn)行相應(yīng)的控制,保證其可以達(dá)到目標(biāo)狀態(tài)。
這一過程主要用到了傳感器的實(shí)時(shí)信息和應(yīng)用規(guī)劃路徑。應(yīng)用規(guī)劃路徑所使用的規(guī)劃算法為Dijkstra最優(yōu)路徑算法,可以對機(jī)器人的運(yùn)動(dòng)進(jìn)行有效控制。導(dǎo)航包在系統(tǒng)中可以實(shí)現(xiàn)以下部分的輸入:在二維環(huán)境中,應(yīng)用自適應(yīng)蒙特卡羅方法的概率定位系統(tǒng)amc1包,對于機(jī)器人所存在的位姿,依托粒子濾波器來實(shí)現(xiàn)跟蹤和相應(yīng)的預(yù)測;對Dijkstra進(jìn)行分析可知,其在系統(tǒng)中所發(fā)揮的作用就是給出先驗(yàn)地圖信息。
控制器模塊包括主控制器和驅(qū)動(dòng)控制器。
(1)主控制器。主控制器可以實(shí)現(xiàn)ROS、SLAM算法的有效運(yùn)行,在運(yùn)行中可以得到傳感器所收集的一系列數(shù)據(jù),實(shí)現(xiàn)地圖的構(gòu)建、機(jī)器人位姿的估算以及控制命令的輸出。
(2)驅(qū)動(dòng)控制器。驅(qū)動(dòng)控制器在機(jī)器人智能導(dǎo)航系統(tǒng)中的作用是對機(jī)器人的運(yùn)動(dòng)進(jìn)行控制,獲得主控制器所發(fā)布的控制命令。這一過程主要依托串口實(shí)現(xiàn),控制命令需要被轉(zhuǎn)變?yōu)閃PM占空比控制信號,由PID控制算法實(shí)現(xiàn)。系統(tǒng)軟件有驅(qū)動(dòng)控制等模塊,模塊間通信依托于話題發(fā)布、訂閱機(jī)制。
物理模型和平臺(tái)的URDF機(jī)器人描述文件是一樣的,Gazebo插件依托于XML描述文件的方式來實(shí)現(xiàn),對機(jī)器人模型的顏色等進(jìn)行修改,保證其符合真實(shí)情況。機(jī)器人系統(tǒng)的SLAM功能采用Hector SLAM算法實(shí)現(xiàn),應(yīng)用鍵盤遠(yuǎn)程控制機(jī)器人的運(yùn)動(dòng)。這一過程依托Wi-Fi局域網(wǎng)實(shí)現(xiàn)。機(jī)器人可以遍歷全部環(huán)境,進(jìn)而可以構(gòu)建地圖。在本系統(tǒng)的設(shè)計(jì)中,Hector SLAM需要激光雷達(dá)有較高的精度以面對最小二乘問題,而這一問題主要基于優(yōu)化的算法來實(shí)現(xiàn),不需要大量計(jì)算,適用于多種環(huán)境,地圖也可以達(dá)到較高的精度。
以上環(huán)節(jié)可以得到先驗(yàn)地圖,并在這一過程中對move_base包節(jié)點(diǎn)關(guān)系等進(jìn)行配置,對起始位姿、目標(biāo)位置以及后續(xù)對目標(biāo)方向進(jìn)行確定。在這一系列操作后導(dǎo)航就可以啟動(dòng)。算法能實(shí)現(xiàn)對路徑的自動(dòng)規(guī)劃,還能實(shí)現(xiàn)對機(jī)器人的自動(dòng)控制,保證其朝著目標(biāo)位置移動(dòng),同時(shí)開啟粒子云實(shí)時(shí)顯示。
室內(nèi)移動(dòng)機(jī)器人采用樹莓派控制器和RPLIADRA1激光雷達(dá)。通過一系列的軟件仿真及相應(yīng)的實(shí)驗(yàn)測試工作,全方位檢測了機(jī)器人系統(tǒng),并掌握了系統(tǒng)的性能以及實(shí)際的運(yùn)行表現(xiàn)。仿真結(jié)果證明:系統(tǒng)的導(dǎo)航等功能都可以很好地實(shí)現(xiàn),開發(fā)成本較低,可以真正實(shí)現(xiàn)模塊化的開發(fā)。在使用該系統(tǒng)的過程中,可以根據(jù)實(shí)際需求進(jìn)行拓展,并將其作為基礎(chǔ)實(shí)驗(yàn)平臺(tái)運(yùn)行。
[1] ENGEL J, SCH?PS T, CREMERS D. LSD-SLAM: Large-scale direct monocular SLAM[C]//European Conference on Computer Vision. Springer Cham, 2014: 834–849.
[2] FORSTER C, PIZZOLI M, SCARAMUZZA D. SVO: Fast semi-direct monocular visual odometry[C]//Robot?ics and Automation (ICRA), 2014 IEEE Interna tional Conference on. IEEE,2014: 15–22.
[3] LABBé M, MICHAUD F. Online global loop closure detection for large- scale multi-session graph-based slam[C]//Intelligent Robots and Systems (IROS 2014), 2014 IEEE/RSJ International Con?ference on. IEEE, 2014: 2661–2666.
[4] BONNABEL S. Symmetries in observer design: Review of some recent results and applications to EKF-based SLAM[C]// Robot Motion and Contro 2011. London: Springer, 2012: 3–15.
[5] 柯博文.樹莓派Raspberry Pi實(shí)戰(zhàn)指南[M].北京:清華大學(xué)出版社,2015.
[6] 周興社.機(jī)器人操作系統(tǒng)ROS原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2016.
[7] 雷泰,趙榮耀,袁方.基于模糊自適應(yīng)的PID控制器研究[J].陜西電力,2016, 44(6): 64–68.
[8] 姚雨,李慶,陳曦.優(yōu)化的A*算法在航跡規(guī)劃上的應(yīng)用[J].微電子學(xué)與計(jì)算機(jī),2017, 34(7): 51–55.
[9] 莊宿國,趙偉剛,楊霞輝,等.基于AutoCAD平臺(tái)的漲圈密封參數(shù)化軟件開發(fā)[J].火箭推進(jìn),2017, 43(3): 47–52.
[10] 王宏民,孫增鵬,趙曉光.面向室內(nèi)環(huán)境的主動(dòng)視覺即時(shí)定位與地圖構(gòu)建系統(tǒng)[J].廈門大學(xué)學(xué)報(bào)(自然科學(xué)版),2019, 58(3): 429–435.
[11] 張抒揚(yáng),董鵬,敬忠良.變分貝葉斯自適應(yīng)容積卡爾曼的SLAM算法[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2019, 51(4): 12–18.
[12] 權(quán)美香,樸松昊,李國.視覺SLAM綜述[J].智能系統(tǒng)學(xué)報(bào),2016, 11(6): 768–776.
[13] 董瑤,葛瑩瑩,郭鴻湧.基于深度強(qiáng)化學(xué)習(xí)的移動(dòng)機(jī)器人路徑規(guī)劃[J].計(jì)算機(jī)工程與應(yīng)用,2019, 55(13): 15–19.
Research on intelligent navigation system of service robot based on ROS development platform
QIU Zhaopeng, QIU Lijun, CHEN Chunxian, XIN Yi
(Electromechanic Engineering College, Beijing Polytech, Beijing 100176, China)
The positioning and navigation system of the indoor mobile robot is improved and designed. Based on the platform of robot operation system (ROS), raspberry controller is used for platform control, and laser radar is adopted to collect environmental information. A software algorithm with multiple functions such as path planning is developed. According to the simulation results, the environment map constructed by the system can achieve high precision and can be modularized and expanded to reduce the difficulty and cost of development.
mobile robot; navigation system; development platform; simulation verification
TP391.9
A
1002-4956(2019)12-0147-04
10.16791/j.cnki.sjg.2019.12.034
2019-04-29
2019-07-29
邱釗鵬(1979—),男,河南南陽,碩士,講師,主要研究方向?yàn)樽詣?dòng)控制、機(jī)器人技術(shù)與算法。E-mail: ty28me@163.com