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