金展
對于導(dǎo)航機器人關(guān)于SLAM實現(xiàn)的研究
金展
(哈爾濱理工大學,黑龍江 哈爾濱 150080)
傳統(tǒng)工業(yè)機器人執(zhí)行一般業(yè)務(wù)的工作效率低下,智能化程度不高。但隨著時代的發(fā)展,機器人智能化的程度逐年升高,其中,在如何實現(xiàn)未知環(huán)境中的實時定位與環(huán)境地圖構(gòu)建(SLAM)是實現(xiàn)機器人廣泛工業(yè)化和應(yīng)用在智能家居、智能出行等領(lǐng)域的一個問題。針對這個問題,設(shè)計了基于機器人操作系統(tǒng)(ROS)的導(dǎo)航機器人,在硬件設(shè)計和SLAM算法上給出了結(jié)構(gòu)和思想。目的是使導(dǎo)航機器人具有建圖、導(dǎo)航、規(guī)劃路徑、環(huán)境信息的檢測收集等功能,完成機器人的設(shè)計初衷和對已有技術(shù)的創(chuàng)新和再創(chuàng)造。
SLAM算法;同步定位;地圖構(gòu)建;激光雷達
隨著人工智能科技的迅速發(fā)展,該領(lǐng)域的產(chǎn)業(yè)迅速崛起。為了滿足越來越大的室內(nèi)業(yè)務(wù)和智能導(dǎo)航的需求,本文根據(jù)需要設(shè)計了基于機器人操作系統(tǒng)(robot operating system ROS)的智能導(dǎo)航機器人。導(dǎo)航機器人可以通過激光雷達采集周圍環(huán)境數(shù)據(jù)估算自身位姿信息,并利用位姿信息繪制環(huán)境地圖,進而實現(xiàn)即時定位和制圖技術(shù),即SLAM技術(shù)。傳統(tǒng)衛(wèi)星定位系統(tǒng)中的精度對于室內(nèi)來說很大,無法滿足其精細操作的需求,所以對于導(dǎo)航機器人的室內(nèi)定位來說,本文采用了探測器手段來獲取環(huán)境信息,從而實現(xiàn)室內(nèi)導(dǎo)航功能[1]。與一般探測器相比,激光雷達具有許多顯著的優(yōu)點,對于速度、距離、角度有較高的分辨率,能很好地適應(yīng)環(huán)境,并能通過對速度的測量域?qū)?,呈現(xiàn)物體的尺寸體積等因素。在成本上也比其他昂貴的設(shè)備有更好的性價比,能夠充分滿足測距和工業(yè)成本要求。
目前在實現(xiàn)SLAM的過程中,需要進一步使其滿足高穩(wěn)定性、低復(fù)雜度和高一致性這三大要求[2],為了實現(xiàn)導(dǎo)航機器人路徑算法計算完成,克服原有卡爾曼濾波器精度不高及穩(wěn)定性較差的缺點,使用一種基于平滑濾波的改進建圖算法。改進之后,SLAM 算法精度和抗干擾性都有所升高,能較好地實現(xiàn)導(dǎo)航機器人的建圖和定位,有效提升機器人的性能。SLAM問題的難點之一是定位與制圖兩者相互關(guān)聯(lián),機器人的運動定位結(jié)果又會受到地圖構(gòu)造時誤差的影響[3]。另外,機器人與外界交互所使用的傳感器的噪聲和精度也會較大程度地影響最終的結(jié)果,所以提高系統(tǒng)的穩(wěn)定性也是一個難點所在。
在本文中主要討論了設(shè)計機器人所采用的SLAM算法的原理和具體實現(xiàn)的步驟和想法,還有對導(dǎo)航機器人硬件層面的設(shè)計,因為要同時考慮工業(yè)成本及精確性,所以測試了不同種的原件,介紹了相對較優(yōu)的組合。同時介紹了如何很好地實現(xiàn)和達到機器人的預(yù)期設(shè)計目標和其未來前景。
通過機器人的傳感器,可以獲取外部環(huán)境的深層信息,因此,HectorSLAM算法在實際運用過程中,會有很多的干擾因素,如外部環(huán)境中的噪聲等。在實際應(yīng)用的過程中,這些誤差往往會迭代進行累加,進一步偏離期望值。所以為了得到更好的結(jié)果,通常會對這些誤差進行消除和避免。其中SLAM算法有以下三個階段。
掃描匹配。機器人自身坐標系與模擬地圖坐標系的原點已知且重合,機器人在模擬地圖中起始位置已知,第一次掃描數(shù)據(jù)在模擬地圖中各個點的坐標已知,相對于地圖坐標系的坐標來說第二次掃描數(shù)據(jù)的坐標也可測出。機器人的前后位姿是通過前后次激光點間的、變換后得到的結(jié)果。
將兩次的數(shù)據(jù)進行匹配。此時假設(shè)兩次采集的數(shù)據(jù)是接近的,即概率接近1。接著對其用最小二乘法構(gòu)造函數(shù),再對函數(shù)內(nèi)部展開,使誤差偏導(dǎo)等于0,進而求解高斯-牛頓方程。再在其中使用方程對地圖求偏導(dǎo),本文在這里使用雙線性插值的方法求出旋轉(zhuǎn)矩陣、,并通過前后位姿的關(guān)系,求出機器人在后一次采集時刻的位姿,SLAM定位完成。
建圖。后一次的機器人位姿求出,因為已知后一次采集的激光投射在環(huán)境下的坐標,所以可根據(jù)后一次機器人位姿得后一次激光投射在環(huán)境中坐標,就可以映射到模擬地圖。
SLAM中有一個關(guān)鍵的環(huán)節(jié)是特征提取[4],特征提取的目的是特征的形式來表示周圍特定的環(huán)境,這樣大大減少了計算的復(fù)雜性,特征提取的質(zhì)量直接影響基于特征的SLAM算法的效果。
在SLAM算法的實際環(huán)境運用中,數(shù)據(jù)匹配具有非常大的影響,傳感器每次對多個特征進行測量,其中包括幾個方面:地圖中不存在的特征、地圖中已經(jīng)存在的特征和虛假的特征。為了使機器人位姿和地圖中路標估計更準確,所以必須保證正確的數(shù)據(jù)關(guān)聯(lián),只有這樣,才可以保證獲得的觀測與造成此觀測的環(huán)境特征之間建立正確的對應(yīng)關(guān)系,所以應(yīng)該保證測量得出的值和模擬網(wǎng)絡(luò)地圖中的特征相匹配,這是構(gòu)建精確環(huán)境地圖的前提。一旦觀測與地圖之間發(fā)生了錯誤的關(guān)聯(lián)匹配,就會使機器人定位和環(huán)境地圖之間構(gòu)建的失敗,在實現(xiàn)同步定位與建圖過程中,機器人位姿和一些參量具有不確定性,這都會造成同步定位與地圖構(gòu)建的失敗,正是因為如此,SLAM過程中具有很多不確定性的參量,導(dǎo)致機器人的位姿無法準確地表達。因為在傳感器對機器人運動的辨別存在固有的不確定性,這種影響還包括了外部環(huán)境的噪聲影響,需要在地圖構(gòu)建的每一次迭代中,每次對產(chǎn)生的誤差增量進行累加,這會對地圖構(gòu)建以及機器人定位產(chǎn)生巨大影響,嚴重影響同步定位與地圖構(gòu)建的準確性[5]。所以需要使用一種新的匹配方法——圖像匹配法,卡爾曼濾波可以對這種誤差進行相應(yīng)的補償。這種濾波可以進行如下的表述:一個移動機器人在未知的環(huán)境中,在這個移動過程中傳感器將會檢測到一定的位置坐標,然后機器人會利用這種系統(tǒng)的控制輸入產(chǎn)生運動,可以利用獲得的周圍環(huán)境的觀測信息和通過機器人運動過程中對系統(tǒng)的控制輸入,可以估計機器人在環(huán)境中的位置。
由于基于Ubuntu的ROS操作系統(tǒng)是離散的分時系統(tǒng),而并不是實時系統(tǒng),但是導(dǎo)航車的運動控制對實時性有一定要求,所以需要供電系統(tǒng)中也采用分立式的電源設(shè)計來滿足MCU與車載控制器不同的電壓需求,使用了電壓轉(zhuǎn)換模塊,并通過譯碼器處理電平相匹配,因此需要使用額外的控制器來控制運動中的機器人,在這里使用stm32F407最小系統(tǒng)。伺服電機與電子調(diào)速器均使用控制周期為20 ms的控制信號。ROS中上位機和機器人的信息交互使用局域網(wǎng)的構(gòu)建來完成。核心控制器是Raspberry Pi 3B+,這是一款基于ARM架構(gòu),運行Linux操作系統(tǒng)的微機。其中Raspberry Pi 3B+的激光雷達RPLIDAR A1之間使用高速串口通信完成數(shù)據(jù)和命令的發(fā)送和驅(qū)動控制算法的接收,并作為運行平臺實現(xiàn)建圖及導(dǎo)航等功能。
激光雷達是通過發(fā)射激光束并接收反射激光束來實現(xiàn)測距功能的一種測距系統(tǒng)??梢杂萌菧y距原理對環(huán)境進行激光測距,反饋到上位機繪制平面點云地圖,實現(xiàn)實時的建圖。而本文使用激光雷達的是在低成本下穩(wěn)定性能更好的RPLIDAR A1,可在扇形區(qū)域內(nèi)對6 m內(nèi)的信息進行收集。機器人車載主機RK3399模塊是一款低功耗、高性能的應(yīng)用處理芯片,用來當作驅(qū)動機器人底盤的芯片是較適合的選擇。導(dǎo)航機器人組裝過程中的調(diào)試如圖1所示。SLAM測試過程中的可視化如圖2所示。
圖1 導(dǎo)航機器人組裝過程中的調(diào)試
圖2 SLAM測試過程中的可視化
實際操作步驟具體如下:①ROS首先加載有關(guān)的URDF文件,輸出相關(guān)連接信息和坐標系轉(zhuǎn)換關(guān)系信息;②啟動用于解析當前控制指令,獲取當前速度值及累計路程獲取、轉(zhuǎn)換等的base_controller和odom_publisher節(jié)點,同時啟動遠程鍵盤控制節(jié)點和車載驅(qū)動控制裝置;③啟動激光雷達機器人開始移動;④啟動用于建圖的節(jié)點hector_mapping,可以實現(xiàn)HectorSLAM算法;⑤啟動Rviz,實時觀察模擬地圖的構(gòu)建和正移動的機器人的當前位姿情況;⑥記錄所得數(shù)據(jù)及圖形。
根據(jù)地圖構(gòu)建模擬實際測試的結(jié)果來看,機器人的各項性能指標和導(dǎo)航建圖,包括環(huán)境信息等各項功能都達到預(yù)期精度要求。隨著經(jīng)濟的發(fā)展和科技的進步,人們對智能機器人等設(shè)備早以司空見慣。近年來服務(wù)型機器人、智能無人駕駛等領(lǐng)域逐漸被人們所重視,因此實現(xiàn)了機器人在不確定環(huán)境中自主導(dǎo)航能夠帶來一系列的機器人設(shè)備的革新,如在生活中的快遞物流機器人、老年人的智能輪椅和軍事上的偵查任務(wù)等功能,所以導(dǎo)航機器人在未來很可能將會被工業(yè)化制造并且廣泛普及。
[1]李玲玲.高精度室內(nèi)定位系統(tǒng)偽衛(wèi)星布局研究[D].哈爾濱:哈爾濱工業(yè)大學,2015 .
[2]夏漢均.基于ROS的機器人即時定位與地圖構(gòu)建技術(shù)的研究[D].沈陽:東北大學,2013.
[3]李昊.基于激光雷達的二維即時定位與制圖技術(shù)研究[D].南京:東南大學,2018.
[4]曹彥超.基于B樣條特征的SLAM算法研究[D].青島:中國海洋大學,2012.
[5]徐曙.基于SLAM的移動機器人導(dǎo)航系統(tǒng)研究[D].武漢:華中科技大學,2014.
TP242
A
10.15913/j.cnki.kjycx.2019.19.060
2095-6835(2019)19-0142-02
金展(1999—),男,安徽黃山人,哈爾濱理工大學電氣學院電力電子專業(yè)在讀本科生,主要研究方向為機器智能。
〔編輯:王霞〕