貝太學(xué),黃俊琿,陳繼文,盧 博,裴 翦,劉洪磊
(1.山東建筑大學(xué) 機(jī)電工程學(xué)院,山東濟(jì)南 250100;2.寧波大學(xué)信息科學(xué)與工程學(xué)院,浙江寧波 315000)
近年來,伴隨著人工智能的發(fā)展熱潮,機(jī)器人技術(shù)蓬勃發(fā)展,各式各樣的機(jī)器人已經(jīng)逐步滲透到農(nóng)業(yè)、工業(yè)、生產(chǎn)制造業(yè)等[1-3]。
ROS(Robot Operating System)[4-7]是一個開放式的系統(tǒng)框架,其中具有很多開源軟件包,最初在2007 年應(yīng)用于斯坦福大學(xué)的機(jī)器人研究中。同步定位與地圖構(gòu)建SLAM(Simultaneous Localization and Mapping)[8-10],是機(jī)器人環(huán)境感知的重要技術(shù)之一,比較常見的分類有基于濾波的SLAM 和基于圖優(yōu)化的SLAM[11-12]。
該文針對SLAM 算法中的兩種算法,搭建履帶式機(jī)器人物理樣機(jī),研究算法的建圖性能。
移動平臺系統(tǒng)主要由本地層與服務(wù)器層組成,兩層通過無線網(wǎng)絡(luò)完成通信。本地層由操作系統(tǒng)層、驅(qū)動層組成,驅(qū)動層以兩輪差速履帶式模型為底層設(shè)計[13]。整個系統(tǒng)的組成框圖如圖1 所示。
圖1 移動平臺系統(tǒng)框圖
驅(qū)動控制器與傳感器構(gòu)成移動平臺的驅(qū)動層[14],傳感器感知外界環(huán)境并將環(huán)境信息以電信號形式發(fā)送給操作系統(tǒng)層,驅(qū)動層一方面將環(huán)境信息數(shù)據(jù)預(yù)處理并將數(shù)據(jù)傳遞給操作系統(tǒng)層,另一方面接收操作系統(tǒng)層發(fā)送的指令,控制移動平臺進(jìn)行運動。
操作系統(tǒng)層主要由ROS 系統(tǒng)與軟件驅(qū)動部分組成。ROS 系統(tǒng)主要完成移動平臺的實時定位、運動規(guī)劃與地圖構(gòu)建;軟件驅(qū)動部分主要提供通信接口,為底層與上層通信提供通道[15]。
操作系統(tǒng)層與驅(qū)動層主要由傳感、控制、驅(qū)動、執(zhí)行四部分組成。傳感系統(tǒng)可完成對履帶式機(jī)器人自身狀態(tài)數(shù)據(jù)和環(huán)境信息的感知??刂葡到y(tǒng)主要完成運動控制和路徑規(guī)劃的功能。驅(qū)動系統(tǒng)具有處理信息和傳輸信息的功能,接收控制系統(tǒng)的指令完成對執(zhí)行機(jī)構(gòu)的控制。執(zhí)行機(jī)構(gòu)可完成履帶式機(jī)器人的移動功能。履帶式機(jī)器人整體結(jié)構(gòu)框圖如圖2 所示。
圖2 履帶式機(jī)器人整體硬件結(jié)構(gòu)框圖
控制系統(tǒng)硬件選用樹莓派對雷達(dá)點云數(shù)據(jù)進(jìn)行處理,同時滿足實時定位、自主建圖、路徑規(guī)劃算法的運算。選用GY-85 九軸傳感器與霍爾型編碼器作為內(nèi)部傳感器。外部傳感器選用激光雷達(dá)與紅外線傳感器FC-51。FC-51 可以充分彌補2D 激光雷達(dá)的缺陷,能夠?qū)崿F(xiàn)對平臺周圍物體的掃描監(jiān)測,準(zhǔn)確感應(yīng)障礙物信息,保持安全距離。激光雷達(dá)則選用基于三角測距法的RPLIDAR A1,既能實現(xiàn)周圍環(huán)境的360 度掃描,又能優(yōu)化點云數(shù)據(jù)位置信息匹配,完成環(huán)境信息融合。驅(qū)動板電路組成框圖如圖3 所示。
圖3 驅(qū)動板電路組成框圖
系統(tǒng)軟件部分分為驅(qū)動、操作系統(tǒng)、服務(wù)器三層結(jié)構(gòu)。其中,驅(qū)動層收集內(nèi)外傳感器的信息,將信息預(yù)處理后發(fā)送到操作系統(tǒng)層;操作系統(tǒng)層接收傳感器數(shù)據(jù)、激光雷達(dá)數(shù)據(jù),借助SLAM 完成系統(tǒng)定位、地圖構(gòu)建;服務(wù)器層借助ROS 平臺,顯示地圖以及移動平臺的位置信息,同時實現(xiàn)路徑規(guī)劃目標(biāo)節(jié)點發(fā)布功能,進(jìn)一步由操作系統(tǒng)層按照相應(yīng)算法實現(xiàn)最優(yōu)路徑規(guī)劃[16]。系統(tǒng)數(shù)據(jù)流圖如圖4 所示。
如圖4 所示,傳感器數(shù)據(jù)的采集主要包括激光雷達(dá)的點云數(shù)據(jù)、紅外線的距離信息、加速度計的線速度、陀螺儀的角速度、里程計的線速度,這些數(shù)據(jù)信息一部分以點云數(shù)據(jù)形式在服務(wù)器層軟件部分進(jìn)行可視化,一部分以距離信息的形式傳遞給操作系統(tǒng)層,借助SLAM 框架實現(xiàn)地圖構(gòu)建與定位導(dǎo)航,最后以速度指令傳遞給執(zhí)行機(jī)構(gòu),控制移動平臺完成運動。
圖4 系統(tǒng)數(shù)據(jù)流圖
驅(qū)動層主要負(fù)責(zé)以下四項任務(wù):電池電量檢測、IMU 數(shù)據(jù)讀取、紅外線障礙檢測、MOVE-BASE[17]。軟件工作流程如圖5 所示。
圖5 驅(qū)動層軟件流程圖
兩輪差速履帶式模型運動時,操作系統(tǒng)層不斷地向物理樣機(jī)發(fā)送事先規(guī)劃好路線的速度指令,并根據(jù)物理樣機(jī)的自身位置信息做出進(jìn)一步的速度修正。電機(jī)的控制則通過增量型的速度環(huán)PID 完成。通過物理樣機(jī)的穩(wěn)定運行以及快速響應(yīng)可以有效避免誤差產(chǎn)生。
Rosserial[18]作為ROS 框架下的一種通信協(xié)議標(biāo)準(zhǔn),為驅(qū)動層發(fā)布、話題訂閱提供了可能,有效實現(xiàn)樹莓派與驅(qū)動層的數(shù)據(jù)傳輸。系統(tǒng)通信示意圖如圖6所示。
圖6 系統(tǒng)通信示意圖
該實驗選取兩種實驗環(huán)境,分別用Gmapping 算法和Cartographer 算法測試,實驗環(huán)境1 為教學(xué)樓走廊,環(huán)境2 為工作室。
環(huán)境1 的測試結(jié)果如圖7 所示,對比兩種算法的建圖效果,Gmapping 算法建圖與真實環(huán)境誤差較小,在教學(xué)樓走廊建圖效果優(yōu)于Cartographer 算法。
圖7 環(huán)境1實際環(huán)境建圖
環(huán)境2 的實驗結(jié)果如圖8 所示。Gmapping 算法構(gòu)建的地圖在最左側(cè)出現(xiàn)障礙物的混疊現(xiàn)象;Cartographer 算法在障礙物數(shù)量較多的工作室環(huán)境下,建圖效果更優(yōu),障礙物與整體地圖的輪廓也更加清晰。
圖8 環(huán)境2實際環(huán)境建圖
該文對基于ROS 的履帶式機(jī)器人室內(nèi)定位及地圖構(gòu)建進(jìn)行了研究,主要的研究內(nèi)容與結(jié)論如下:
對移動平臺系統(tǒng)進(jìn)行設(shè)計,選用教學(xué)樓走廊環(huán)境與工作室環(huán)境,選取SLAM 算法中主流的Gmapping算法與Cartographer 算法進(jìn)行地圖構(gòu)建實驗。
通過實驗發(fā)現(xiàn),Gmapping 算法在相對簡單的環(huán)境中建圖效果較優(yōu);在障礙物數(shù)量較多的情況下,Cartographer 算法因其幀間匹配算法位姿優(yōu)化效果的優(yōu)勢,會使其產(chǎn)生更小的誤差,得到更優(yōu)的建圖效果。