趙偉卓,楊 旗,張子昂
機器人自問世以來一直受到各國重視,被認(rèn)為是面向未來的新興產(chǎn)業(yè)發(fā)展中具有重要意義的高新技術(shù)之一[1]。近年來,國際上對自主導(dǎo)航機器人的需求不斷提高,使即時定位與地圖構(gòu)建(SLAM) 技術(shù)受到國內(nèi)外學(xué)者的廣泛關(guān)注。
目前,SLAM 技術(shù)主要基于2D、3D 激光雷達(dá)及單目、雙目、RGBD 相機進行建圖與導(dǎo)航。對于各類場景的SLAM 問題,國內(nèi)外學(xué)者進行了大量的研究。Kohlbrecher, S 等[2]人提出了Hector-SLAM,其采用高斯-牛頓方程求解非線性最小二乘問題,以此解決用于激光數(shù)據(jù)與地圖的前端掃描匹配建圖問題。Grisetti 等[3]在基于Rao-Blackwell 粒子濾波的SLAM 方法的基礎(chǔ)上進行改進,實現(xiàn)了Gmapping 算法。Hess 等[4]于2016 年提出的Cartographer 算法已經(jīng)成為具有代表性且較為前沿的基于圖優(yōu)化的激光SLAM 方法。Labbé等[5]提出的RTAB-MAP 系統(tǒng),通過RGB-D 相機進行同步定位和局部建圖,克服回環(huán)檢測隨時間推移影響實時處理的不足。
當(dāng)前,室內(nèi)機器人普遍采用激光雷達(dá)作為傳感器來建圖導(dǎo)航,由于深度相機進行三維建圖導(dǎo)航對圖像紋理特征點的要求較高,所以只能在特定場景中應(yīng)用[6]。本文在RTAB-MAP 的基礎(chǔ)上融入激光雷達(dá)里程計和rgbd_odometry 進行V_SLAM,以提高三維地圖輪廓信息的穩(wěn)定性。
室內(nèi)輪式ROS 導(dǎo)航機器人(見圖1) 以Intel NUC 作為下位機的主控單元,負(fù)責(zé)運行所有的ROS 主節(jié)點,并進行V_SLAM。Rplidar A1 作為主控雷達(dá),負(fù)責(zé)提供360°的環(huán)境激光數(shù)據(jù)。深度相機采用RealSense D415 采集深度點云圖像。該機器人的底盤驅(qū)動系統(tǒng)由四臺電機、Omini 全向輪,以及Stm32 單片機驅(qū)動板構(gòu)成。
圖1 ROS 機器人
ROS 是一種分布式軟件框架,本系統(tǒng)的上位機與下位機通過Topic、Server 進行通訊,同時設(shè)置環(huán)境變量ROS_MASTER_URI 確定Master 的位置。Stm32 與NUC 通過串口通信封裝庫進行通訊(見圖2)。
圖2 系統(tǒng)通訊流程圖
RTAB-MAP 能夠提供一種與時間和尺度無關(guān)的基于定位和外觀的建圖方案,可以用于解決環(huán)境中的閉環(huán)檢測問題[7]。利用該算法尋找定位點的過程中,如果所尋找到定位點的時間超出閾值,則RTAB-MAP 將VM 中的定位點轉(zhuǎn)移到LTM 中,而被轉(zhuǎn)移的位置點不再參與下次的檢測(見圖3)。STM (Short-Term Memory) 用于觀察連續(xù)圖像在時間上的相似度,并依此更新定位點的權(quán)重。WM 用于檢測定位點在空間上的閉環(huán)假設(shè)。
圖3 RTAB-MAP 視覺框架圖
為了更新獲取到定位點的權(quán)重,將Lt與STM中的最后一個點進行比較,相似度s 由式(1) 確定[8]:
其中,Npair表示定位點簽名間匹配上的單詞對的數(shù)量。如果s (Zt,Zc)超過固定的相似度閥值Tsimilarity,則將被比較的定位點Lc融合到Lt中。對于所有情況而言。RTAB_MAP 保留了在Zc和Zt中均存在的單詞,從而使其有更強的判別能力,Lc的鏈接重新鏈接到Lt,在STM 中則刪除Lc。
在RTAB-MAP 中,貝葉斯過濾器(Bayesian Filter Update) 的作用是通過估計當(dāng)前定位點Lt與在VM 中的儲存定位點形成閉環(huán)的概率來記錄閉環(huán)假設(shè)。
p (Lt|St=j )叫做轉(zhuǎn)移模型,我們在已知系統(tǒng)中St-1的分布條件下預(yù)測St的分布,以此近似地反映機器人從t-1 時刻到t 時刻的運動,可以分兩種情況進行預(yù)測:
(1) 當(dāng)在時刻t-1 沒有發(fā)生閉環(huán)的條件下,在時刻t 產(chǎn)生一個新定位點的概率。
(2) 當(dāng)t-1 時刻發(fā)生閉環(huán)的條件下,在時刻t產(chǎn)生一個新定位點的概率。
本文為探討機器人在室內(nèi)場景中建圖導(dǎo)航的實際應(yīng)用價值,基于建圖特征點、導(dǎo)航場景輪廓,以及滿足實際生活中復(fù)雜環(huán)境的需要,在Gazebo 仿真環(huán)境中搭建滿足要求的室內(nèi)仿真場景,并在實驗室完成了真實場景的構(gòu)建(見圖4)。
為了更好比較由激光雷達(dá)傳感器構(gòu)建的2D 柵格地圖與由深度相機構(gòu)建的三維深度圖像,分析各自優(yōu)缺點及可行性,筆者首先為搭建場景進行二維柵格地圖的構(gòu)建。
Gmapping 采用的RBPF 使用自適應(yīng)重采樣技術(shù),能夠克服粒子濾波算法存在的問題[9]。在室內(nèi)小場景中,相比于其他算法,Gmapping 表現(xiàn)出獨特的建圖優(yōu)勢,所以,本實驗采用Gmapping 來進行二維地圖構(gòu)建。
(1) 原始算法地圖構(gòu)建
由于視覺建圖導(dǎo)航本身的局限性,大多數(shù)V_SLAM 算法無法完成室內(nèi)建圖導(dǎo)航方案,而RTAB-MAP 能夠為可視化的SLAM 方法提供自動導(dǎo)航所需的開箱即用的占用網(wǎng)格輸出,使用外部里程計作為運動估計[10],基本可以完成本文的預(yù)設(shè)目標(biāo)。
(2) 擴展傳感器優(yōu)化后的3D 建圖
RTAB-MAP 是一種以內(nèi)存管理為核心的閉環(huán)方法,它獨立于所使用的里程計方法,這意味著它可以通過激光雷達(dá)里程計甚至車輪里程計進行閉環(huán)反饋。 因此, 本實驗將激光雷達(dá)里程計(icp_odometry) 與RTAB-MAP 進行融合,使用類似于視覺里程計的術(shù)語,關(guān)鍵幀指的是點云或激光掃描。激光掃描輸入的是2D,點云輸入的可以是2D 或3D。
對RTAB-MAP 擴展傳感器配置參數(shù)優(yōu)化后得到實驗室真實場景建圖(見圖5)。
從實驗結(jié)果可以看出,與用激光雷達(dá)作為建圖傳感器相比,深度相機所構(gòu)建的深度三維圖在地圖輪廓精度上有一定的不足,存在水平與垂直誤差,但空間地圖維度信息的優(yōu)勢明顯。
同時,通過將激光雷達(dá)里程計(icp_odometry)與RTAB-MAP 進行融合配置后,當(dāng)機器人在掃描過程中移動時,傳感器向RTAB-Map 提供至少迄今為止的,以O(shè)dometry message 形式估計的機器人的姿態(tài)及相應(yīng)的TF 轉(zhuǎn)換,也就是遵循與F2M 和F2F 相同的想法。對深度圖像做Database 分析可知,相比于原始RTAB-MAP,優(yōu)化配置后的算法能夠使深度地圖的輪廓和空間點云的精度顯著提升。
為了驗證優(yōu)化傳感器配置參數(shù)后基于V_SLAM的導(dǎo)航效果,本文在實驗室真實場景中完成定位導(dǎo)航性能實驗(見圖6),試驗結(jié)果證明本文視覺定位導(dǎo)航功能基本可以實現(xiàn),達(dá)到了預(yù)期的效果。
RTAB-MAP 是一種基于圖的多用途SLAM 方法。而執(zhí)行SLAM 所需的傳感器,無論成本低廉還是昂貴,對定位精度、地圖質(zhì)量和計算資源都存在一定的限制。本文在RTAB-MAP 的基礎(chǔ)上,通過擴展優(yōu)化傳感器的配置參數(shù),獲得信息更豐富、地圖邊緣更準(zhǔn)確的三維深度地圖,實驗結(jié)果理想,達(dá)到預(yù)期效果。今后,將繼續(xù)集成ROS 新里程測量方法,以便對移動機器人平臺自主導(dǎo)航SLAM 的配置進行比較。