摘要:為了保護(hù)貴重物品儲(chǔ)藏室的安全,設(shè)計(jì)了一種室內(nèi)巡檢機(jī)器人,該機(jī)器人使用麥克納姆全向輪進(jìn)行移動(dòng),可以靈活轉(zhuǎn)向。以此機(jī)器人為研究對(duì)象,基于機(jī)器人操作系統(tǒng)(ROS)對(duì)機(jī)器人的軟件和硬件進(jìn)行架構(gòu),基于ROS提供的各種功能包,設(shè)計(jì)開發(fā)巡檢機(jī)器人建圖導(dǎo)航系統(tǒng)。對(duì)SLAM建圖算法進(jìn)行了研究,選擇Cartographer算法作為建圖算法。實(shí)驗(yàn)表明,機(jī)器人可以完成建圖導(dǎo)航和巡視功能。
關(guān)鍵詞:機(jī)器人操作系統(tǒng);建圖算法;全向移動(dòng);巡檢
0? ? 引言
隨著人工智能和機(jī)器人技術(shù)快速發(fā)展,移動(dòng)機(jī)器人在生產(chǎn)車間、物流倉庫、變電站等場合的應(yīng)用逐漸增加。由于機(jī)器人所處的工作環(huán)境較為復(fù)雜,其建圖導(dǎo)航和運(yùn)動(dòng)控制的難度也相應(yīng)增加。機(jī)器人的定位與導(dǎo)航逐漸成為該領(lǐng)域研究的熱點(diǎn)問題,解決該問題的關(guān)鍵是同時(shí)定位和地圖構(gòu)建(Simultaneous Localization and Mapping,SLAM)技術(shù)。SLAM技術(shù)可以分為激光SLAM和視覺SLAM兩大類[1],目前激光雷達(dá)SLAM在全向移動(dòng)機(jī)器人平臺(tái)上的應(yīng)用還比較少見,存在較大的發(fā)展空間。
本文通過硬件和軟件架構(gòu),設(shè)計(jì)了一種可以全向行駛的巡檢機(jī)器人,在此基礎(chǔ)上,對(duì)SLAM建圖算法進(jìn)行研究,并使用Cartographer算法作為建圖算法。
1? ? 機(jī)器人全向移動(dòng)平臺(tái)
本文設(shè)計(jì)的機(jī)器人的硬件主要包括麥克納姆全向移動(dòng)平臺(tái)[2]和各種傳感器,麥克納姆輪是由瑞典麥克納姆公司發(fā)明生產(chǎn)的。許多室內(nèi)環(huán)境具有拐角、長廊等狹小部分,而差速移動(dòng)機(jī)器人靈活性差,不能很好地完成轉(zhuǎn)向,所以不適合在室內(nèi)進(jìn)行建圖導(dǎo)航等工作,麥克納姆輪因?yàn)槠洫?dú)特的構(gòu)造,可以很好地完成平移和旋轉(zhuǎn)等功能,具有很好的機(jī)動(dòng)性和靈活性,可以在室內(nèi)全向運(yùn)動(dòng)。
2? ? 機(jī)器人硬件系統(tǒng)設(shè)計(jì)
該系統(tǒng)使用樹莓派4B作為上位機(jī)控制整個(gè)機(jī)器人,相比于大多數(shù)ROS控制器,樹莓派4B具有更高的性能。機(jī)器人采用STM32運(yùn)動(dòng)控制器實(shí)現(xiàn)電機(jī)的驅(qū)動(dòng),支持4路直流電機(jī)閉環(huán)控制,下位機(jī)搭載了IMU加速度陀螺儀傳感器,用來校準(zhǔn)各種參數(shù)。
巡檢機(jī)器人在移動(dòng)過程中,需要激光雷達(dá)獲取周圍障礙物的具體位置信息和周圍環(huán)境的輪廓信息,通過這些信息才能完成地圖構(gòu)建和自主導(dǎo)航的功能。激光雷達(dá)通過USB接口與樹莓派相連,將外部環(huán)境信息發(fā)送給樹莓派進(jìn)行處理。巡檢機(jī)器人在巡檢過程中使用攝像頭實(shí)現(xiàn)巡視功能,攝像頭與樹莓派相連,可以實(shí)時(shí)上傳拍攝信息。機(jī)器人通過運(yùn)動(dòng)控制器連接4個(gè)直流電機(jī)來進(jìn)行運(yùn)動(dòng),IMU加速度陀螺儀搭載在STM32運(yùn)動(dòng)控制器上,將收集到的信息上傳到樹莓派,樹莓派通過獲取到的信息來判斷外界情況并進(jìn)行控制,最終實(shí)現(xiàn)地圖的精準(zhǔn)建模、機(jī)器人的準(zhǔn)確定位和機(jī)器人路徑實(shí)時(shí)規(guī)劃。當(dāng)攝像頭拍攝到可疑人員后,報(bào)警電路會(huì)啟動(dòng)進(jìn)行報(bào)警。機(jī)器人可以通過USB接口來擴(kuò)展其他傳感器,以實(shí)現(xiàn)更多的功能。
3? ? 機(jī)器人軟件架構(gòu)設(shè)計(jì)
本文機(jī)器人的軟件架構(gòu)設(shè)計(jì)是基于ROS的模塊化、層次化框架[3]。ROS是一種分布式結(jié)構(gòu),ROS系統(tǒng)中的每個(gè)功能模塊都可以單獨(dú)進(jìn)行設(shè)計(jì)和編譯,在運(yùn)行時(shí)以松耦合的形式結(jié)合在一起。ROS可以提高機(jī)器人的軟件復(fù)用率,這也是ROS使用方便的原因之一。為了更好地驅(qū)動(dòng)機(jī)器人,ROS將每一個(gè)程序細(xì)分化,成為不同的節(jié)點(diǎn)(Node)。節(jié)點(diǎn)與節(jié)點(diǎn)之間是松耦合的,因此開發(fā)者可以靈活開發(fā)程序,節(jié)點(diǎn)也是ROS中最小的處理器單元,每個(gè)節(jié)點(diǎn)都是以功能包的形式組織在一起。在ROS中多個(gè)節(jié)點(diǎn)可以組合成大的功能包,比如用于導(dǎo)航的功能包就包含建圖、定位、導(dǎo)航等多個(gè)功能包。
本文設(shè)計(jì)的機(jī)器人軟件架構(gòu)分成三個(gè)層次,分別是可視化操作層、節(jié)點(diǎn)應(yīng)用層、驅(qū)動(dòng)層。機(jī)器人的軟件架構(gòu)如圖1所示。
使用者通過監(jiān)控操作界面連接機(jī)器人,可以獲取機(jī)器人的所有信息,觀看攝像頭拍攝的錄像,并對(duì)機(jī)器人進(jìn)行操控;節(jié)點(diǎn)應(yīng)用層包含了實(shí)現(xiàn)機(jī)器人所有功能的節(jié)點(diǎn),機(jī)器人通過節(jié)點(diǎn)應(yīng)用層的各個(gè)節(jié)點(diǎn)去實(shí)現(xiàn)相應(yīng)的功能。通過啟動(dòng)底盤控制節(jié)點(diǎn)控制機(jī)器人移動(dòng),并同時(shí)啟動(dòng)SLAM建圖節(jié)點(diǎn)來實(shí)現(xiàn)地圖構(gòu)建,構(gòu)建好的地圖可以保存;通過啟用自動(dòng)導(dǎo)航節(jié)點(diǎn)以及圖像處理節(jié)點(diǎn)、報(bào)警節(jié)點(diǎn),可以根據(jù)保存好的地圖實(shí)現(xiàn)自主巡檢、最優(yōu)路徑規(guī)劃和報(bào)警等功能。
4? ? 機(jī)器人SLAM與自主導(dǎo)航系統(tǒng)實(shí)現(xiàn)
SLAM研究主要應(yīng)用于機(jī)器人移動(dòng)的自主化,即機(jī)器人在一個(gè)未知的環(huán)境下,從任意一個(gè)位置出發(fā),進(jìn)行移動(dòng),在移動(dòng)的過程中通過自身的估算和地圖進(jìn)行自身的定位,并且實(shí)時(shí)構(gòu)建增量式地圖,實(shí)現(xiàn)機(jī)器人的自主定位和導(dǎo)航。
SLAM算法經(jīng)過30多年的發(fā)展形成了顯著的成果,其使用的具體方法可分為兩大類,分別是基于濾波的方法和基于優(yōu)化的方法。Gmapping[4]算法是基于濾波的常見算法,該算法存在更新效率隨地圖擴(kuò)建下降、缺少閉環(huán)檢測、消耗資源等問題,因此不適用于室內(nèi)面積較大的儲(chǔ)藏室;而基于優(yōu)化的方法可以較好地解決這一問題,因此本文采用Cartographer算法作為建圖算法。Cartographer算法采用基于圖優(yōu)化的SLAM理論框架,分為局部SLAM(前端)和全局SLAM(后端)兩部分。局部SLAM主要負(fù)責(zé)Scan-to-Submap與閉環(huán)檢測,將掃描的激光數(shù)據(jù)與子圖進(jìn)行配比,然后會(huì)生成一個(gè)表達(dá)模型為柵格地圖的子圖,當(dāng)子圖沒有新的數(shù)據(jù)幀插入時(shí)會(huì)進(jìn)行閉環(huán)檢測,子圖創(chuàng)建之后會(huì)尋找與當(dāng)前估算位姿匹配的最優(yōu)結(jié)果,并將其添加到閉環(huán)約束中;全局SLAM主要消除局部SLAM累積的誤差,通過分支定界與預(yù)先計(jì)算的網(wǎng)格來實(shí)現(xiàn)全局閉環(huán)檢測。
巡檢機(jī)器人在導(dǎo)航過程中離不開定位和路徑規(guī)劃。一般來說,機(jī)器人的全局路徑規(guī)劃主要使用Dijkstra和A*算法,根據(jù)地圖的所有信息和指定的目標(biāo)位置進(jìn)行計(jì)算,從而得到一個(gè)全局的最優(yōu)解。局部路徑規(guī)劃是因?yàn)檠矙z機(jī)器人在全局路徑行駛中隨時(shí)會(huì)遇到障礙物,這就需要機(jī)器人在局部移動(dòng)時(shí)能夠?qū)崟r(shí)自主修正路徑,避免與障礙物發(fā)生碰撞。本文主要使用move_base功能包來完成機(jī)器人的路徑規(guī)劃。在導(dǎo)航過程中,本文通過蒙特卡洛定位算法實(shí)時(shí)計(jì)算出機(jī)器人所在地圖中的位置。
5? ? 結(jié)語
本文基于麥克納姆移動(dòng)平臺(tái)設(shè)計(jì)并實(shí)現(xiàn)了一種適合在室內(nèi)運(yùn)動(dòng)的巡檢機(jī)器人,用于保護(hù)儲(chǔ)藏室的安全。設(shè)計(jì)了基于ROS的軟硬件框架,研究了SLAM建圖算法,使用Cartographer建圖算法進(jìn)行建圖,下一階段將進(jìn)行攝像頭功能的研究和開發(fā)。本文為機(jī)器人硬件與軟件的設(shè)計(jì)提供了一個(gè)切實(shí)可行的設(shè)計(jì)方案,在機(jī)器人的定位導(dǎo)航和室內(nèi)安防領(lǐng)域具有一定的參考價(jià)值。
[參考文獻(xiàn)]
[1] 朱福利.基于SLAM的移動(dòng)機(jī)器人室內(nèi)環(huán)境感知和地圖構(gòu)建研究[D].廣州:廣東工業(yè)大學(xué),2016.
[2] 張鵬,高放,雙豐.基于ROS的全向移動(dòng)機(jī)器人控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2018(7):89-92.
[3] 劉昊.基于ROS的移動(dòng)操作機(jī)器人設(shè)計(jì)與開發(fā)[D].上海:上海交通大學(xué),2018.
[4] 常皓,楊巍.基于全向移動(dòng)模型的Gmapping算法[J].計(jì)量與測試技術(shù),2016(10):1-4.
收稿日期:2020-08-19
作者簡介:管晨曦(1996—),男,河南駐馬店人,碩士在讀,研究方向:智能機(jī)器人。