楊記周,胡廣宇,許玉云,駱永樂(lè),雙 豐,3
(1.中國(guó)科學(xué)院合肥智能機(jī)械研究所,安徽 合肥 230031;2.中國(guó)科學(xué)技術(shù)大學(xué)合肥物質(zhì)科學(xué)研究院,安徽 合肥 230026;3.廣西大學(xué)電氣工程學(xué)院,廣西 南寧 530004)
隨著機(jī)器人技術(shù)的快速發(fā)展,智能機(jī)器人廣泛應(yīng)用于各行各業(yè)。但是,目前這些機(jī)器人僅能在單樓層間完成導(dǎo)航任務(wù),不能在各樓層間連續(xù)工作,影響了智能機(jī)器人的作業(yè)范圍。
在相關(guān)的研究中,Ali A[1]等提出一種新的、用于移動(dòng)機(jī)器人在半戶外環(huán)境下操作電梯按鈕的魯棒性方法,檢測(cè)電梯按鈕的成功率達(dá)到99%和7 f/s的高速幀率。
本文基于機(jī)器人操作系統(tǒng)[2](robot operating system,ROS),并使用激光雷達(dá)、慣性測(cè)量元件(inertial measurement unit,IMU)超聲波傳感器搭建了一臺(tái)多功能移動(dòng)機(jī)器人平臺(tái)IIMR-I。目前,該機(jī)器人平臺(tái)已經(jīng)可以實(shí)現(xiàn)即時(shí)定位與地圖構(gòu)建(simultaneous cocation and mapping,SLAM)、導(dǎo)航、定位以及避障的功能,并且能夠通過(guò)自身搭載的深度相機(jī),識(shí)別電梯按鈕的位置。使用機(jī)械臂按下電梯按鈕,以實(shí)現(xiàn)機(jī)器人在不同樓層間工作的能力。
IIMR-I移動(dòng)機(jī)器人采用雙輪差速驅(qū)動(dòng),提高了機(jī)器人越障、爬坡等能力;采用四個(gè)輔助輪結(jié)構(gòu),進(jìn)一步提高機(jī)器人的平穩(wěn)性;使用激光雷達(dá),獲取機(jī)器人周圍環(huán)境信息,用來(lái)構(gòu)建地圖和進(jìn)行路徑規(guī)劃;使用深度相機(jī)的彩色圖像進(jìn)行目標(biāo)檢測(cè),并結(jié)合深度數(shù)據(jù)獲取機(jī)械臂目標(biāo)點(diǎn)的三維坐標(biāo);使用編碼器、IMU,獲取機(jī)器人運(yùn)動(dòng)信息;同時(shí),為了防止機(jī)器人定位偏移而出現(xiàn)碰撞或跌落現(xiàn)象,增減了碰撞和防跌落傳感器。IIMR-I機(jī)器人導(dǎo)航架構(gòu)如圖1所示。

圖1 IIMR-I機(jī)器人導(dǎo)航架構(gòu)圖
IIMR-I機(jī)器人的導(dǎo)航系統(tǒng)可以分為ROS層和實(shí)時(shí)任務(wù)操作系統(tǒng)(real time operating system,RTOS)層,ROS層直接接收目標(biāo)點(diǎn)信息(機(jī)器人任務(wù)),通過(guò)內(nèi)部節(jié)點(diǎn)規(guī)劃出一條全局路徑和機(jī)器人運(yùn)動(dòng)速度相關(guān)命令并發(fā)送給RTOS層。RTOS層則根據(jù)接收到的速度命令控制機(jī)器人運(yùn)動(dòng)。ROS中的導(dǎo)航節(jié)點(diǎn)接收到目標(biāo)點(diǎn)信息后,首先根據(jù)先驗(yàn)地圖、當(dāng)前位姿估計(jì)及激光雷達(dá)信息規(guī)劃出全局路徑,即初始位姿到目標(biāo)點(diǎn)位姿的有效路徑。然后,局部路徑規(guī)劃器在全局路徑的基礎(chǔ)上規(guī)劃出局部路徑用來(lái)躲避動(dòng)態(tài)障礙物,并將控制命令發(fā)送給STM32,最終驅(qū)動(dòng)電機(jī)運(yùn)動(dòng)。STM32將電機(jī)上的編碼器數(shù)據(jù)發(fā)送給ROS層。ROS中的擴(kuò)展卡爾曼濾波[3]節(jié)點(diǎn)通過(guò)融合編碼器及IMU數(shù)據(jù)得到IIMR-I機(jī)器人的里程計(jì)信息。位姿估計(jì)節(jié)點(diǎn)[4](adaptive montecarlo localization,AMCL)根據(jù)機(jī)器人里程計(jì)信息、先驗(yàn)地圖及激光雷達(dá)數(shù)據(jù)對(duì)機(jī)器人位姿進(jìn)行實(shí)時(shí)估計(jì)。 IIMR-I機(jī)器人機(jī)械臂控制系統(tǒng)架構(gòu)如圖2所示。

圖2 IIMR-I機(jī)器人機(jī)械臂控制系統(tǒng)架構(gòu)圖
IIMR-I機(jī)器人擁有獨(dú)立的機(jī)械臂,可以用來(lái)實(shí)現(xiàn)按電梯的功能,同時(shí)還搭載了一款kinect[5-6]深度相機(jī)。它是微軟公司開(kāi)發(fā)的一款體感設(shè)備,可以同時(shí)獲取彩色信息和深度信息。當(dāng)機(jī)器人運(yùn)動(dòng)到目標(biāo)點(diǎn)附近時(shí),通過(guò)控制機(jī)械臂[7]使機(jī)器人完成指定功能,如按下電梯按鈕等。ROS層中的目標(biāo)檢測(cè)節(jié)點(diǎn)接收到目標(biāo)以后,根據(jù)深度相機(jī)的彩色圖像檢測(cè)到目標(biāo)位置,再根據(jù)深度相機(jī)的深度圖像得到目標(biāo)三維坐標(biāo)。機(jī)械臂控制節(jié)點(diǎn)根據(jù)目標(biāo)三維坐標(biāo)和舵機(jī)當(dāng)前參數(shù)通過(guò)運(yùn)動(dòng)學(xué)反解得到控制命令,并發(fā)送至機(jī)械臂舵機(jī)。最后,機(jī)器人使用舵機(jī)完成預(yù)定任務(wù)。
在室內(nèi)環(huán)境下,機(jī)器人通常無(wú)法使用GPS實(shí)現(xiàn)精確定位。因此,需要使用SLAM技術(shù)預(yù)先構(gòu)建地圖存儲(chǔ)在機(jī)器人本體內(nèi)。根據(jù)使用傳感器不同,并發(fā)建圖與定位(simultaneous cocation and mapping,SLAM)技術(shù)可以分為激光SLAM和視覺(jué)SLAM;根據(jù)空間維度可分為二維SLAM和三維SLAM。環(huán)境地圖可分為拓?fù)鋱D、特征圖和柵格圖。拓?fù)鋱D通常是根據(jù)環(huán)境的結(jié)構(gòu)定義的,環(huán)境中的位置為節(jié)點(diǎn),位置之間的連線為邊。使用拓?fù)鋱D時(shí),機(jī)器人必須能夠利用傳感器識(shí)別節(jié)點(diǎn),即要求節(jié)點(diǎn)具有明顯可識(shí)別的特征或信標(biāo)。特征圖通常采用幾何形狀,如邊、角、直線等特征信息,描述結(jié)構(gòu)化環(huán)境,使用特征圖定位相對(duì)準(zhǔn)確。但是其通常需要人工標(biāo)志,受傳感器噪聲影響較大,適用于結(jié)構(gòu)化環(huán)境。占有柵格地圖以柵格的形式劃分環(huán)境空間,并給柵格中每一個(gè)柵格單元分配一個(gè)被障礙物占有的概率值。這種方法簡(jiǎn)單且易于維護(hù),對(duì)障礙物環(huán)境以及傳感器噪聲不敏感。試驗(yàn)證明,采用柵格圖的效果和特征圖相差不大[8]。由于激光雷達(dá)具有測(cè)距準(zhǔn)確、誤差模型簡(jiǎn)單、受光照影響較弱等特點(diǎn),因此,IIMR-I智能移動(dòng)機(jī)器人平臺(tái)采用10 m激光雷達(dá)SLAM構(gòu)建二維柵格地圖。在初始時(shí)刻,機(jī)器人利用激光雷達(dá)觀測(cè)到某些障礙物時(shí),可以根據(jù)當(dāng)前機(jī)器人在地圖坐標(biāo)系中的位姿(初始時(shí)刻機(jī)器人坐標(biāo)系與地圖坐標(biāo)系重合),以及障礙物在機(jī)器人坐標(biāo)系中的位置,計(jì)算出障礙物在地圖坐標(biāo)系中的位置。此時(shí),將障礙物加入到地圖中(更新地圖),并作為先驗(yàn)地圖,如圖3(a)所示。隨著機(jī)器人運(yùn)動(dòng),機(jī)器人位姿發(fā)生改變,機(jī)器人對(duì)比當(dāng)前激光雷達(dá)觀測(cè)到的障礙物和先驗(yàn)地圖中的障礙物,計(jì)算出機(jī)器人當(dāng)前在地圖坐標(biāo)系中的位姿(位置更新),然后將新的特征加入到柵格地圖(地圖更新),如圖3(b)所示。最終,IIMR-I機(jī)器人構(gòu)建出完整的柵格地圖,如圖3(c)所示。

圖3 IIMR-I機(jī)器人SLAM過(guò)程圖
不論采用何種導(dǎo)航方式,智能移動(dòng)機(jī)器人主要完成的是路徑規(guī)劃、定位、避障等任務(wù)。根據(jù)機(jī)器人對(duì)環(huán)境信息知道的程度不同,路徑規(guī)劃可分為全局路徑規(guī)劃[9]和局部路徑規(guī)劃[10]。全局路徑規(guī)劃是利用存儲(chǔ)在機(jī)器人內(nèi)部的地圖,規(guī)劃一條從起點(diǎn)到終點(diǎn)的有效路徑,以避開(kāi)地圖中的靜態(tài)障礙物。局部路徑規(guī)劃是根據(jù)傳感器測(cè)量的數(shù)據(jù)規(guī)劃一條局部路徑,以避開(kāi)動(dòng)態(tài)障礙物。
rviz是ROS提供的一個(gè)可視化工具,通過(guò)rviz可以查看機(jī)器人和傳感器狀態(tài),以及為機(jī)器人設(shè)置目標(biāo)點(diǎn)、校準(zhǔn)機(jī)器人位姿等。當(dāng)機(jī)器人接收到目標(biāo)點(diǎn)以后,首先檢驗(yàn)?zāi)繕?biāo)點(diǎn)的有效性。如果為有效目標(biāo)點(diǎn),將會(huì)規(guī)劃出兩條路徑。通過(guò)在rviz中設(shè)置目標(biāo)點(diǎn),IIMR-I機(jī)器人規(guī)劃出了兩條導(dǎo)航路徑,分別為利用靜態(tài)地圖規(guī)劃出的全局路徑,它給出了機(jī)器人的總體運(yùn)動(dòng)方;利用激光雷達(dá)構(gòu)建出的局部路徑,它是在全局路徑的基礎(chǔ)上規(guī)劃出的動(dòng)態(tài)路徑。IIMR-I機(jī)器人路徑規(guī)劃如圖4所示。

圖4 IIMR-I機(jī)器人路徑規(guī)劃圖
機(jī)器人定位就是利用傳感器確定其在二維工作空間中的位姿的過(guò)程,它是機(jī)器人導(dǎo)航的基礎(chǔ)。目前,常用的定位傳感器有慣導(dǎo)、里程計(jì)、激光雷達(dá)、超聲波、紅外線等。由于現(xiàn)有傳感器普遍存在較大的測(cè)量噪聲,使用單一傳感器不能獲得較好的定位效果。在實(shí)際使用中,往往采用多傳感器信息融合技術(shù),對(duì)傳感器數(shù)據(jù)進(jìn)行綜合、平衡處理,獲得對(duì)環(huán)境信息的單一的綜合描述。IIMR-I機(jī)器人采用擴(kuò)展卡爾曼濾波[3]方法,融合了里程計(jì)和IMU信息用于定位,它使用泰勒級(jí)數(shù)將非線性系統(tǒng)線性化,放寬了卡爾曼濾波線的性化假設(shè)。IIMR-I機(jī)器人使用卡爾曼濾波定位效果如圖5所示。可以明顯看出,使用卡爾曼濾波后,機(jī)器人定位更加平穩(wěn)、準(zhǔn)確,隨著機(jī)器人運(yùn)動(dòng),累計(jì)誤差也在不斷增加。

圖5 IIMR-I機(jī)器人使用卡爾曼濾波定位效果
為了消除IIMR-I機(jī)器人使用里程計(jì)和IMU定位的累計(jì)誤差,在卡爾曼濾波之后,IIMR-I機(jī)器人還使用了自適應(yīng)蒙特卡洛定位(adaptive montecarlo localization,AMCL)算法。IIMR-I機(jī)器人蒙特卡洛定位效果如圖6所示。

圖6 IIMR-I機(jī)器人蒙特卡洛定位效果
它是一種粒子濾波算法,使用一組帶有權(quán)值的粒子模擬預(yù)估狀態(tài)的后驗(yàn)概率。隨著機(jī)器人運(yùn)動(dòng),不斷進(jìn)行狀態(tài)預(yù)測(cè)、更新權(quán)值、重采樣等操作,使得粒子最終收斂到機(jī)器人的實(shí)際位姿,完成定位過(guò)程。它可以有效處理非線性、非高斯系統(tǒng),近年來(lái)在機(jī)器人定位中得到了廣泛的應(yīng)用。
對(duì)A、B、C、D、E、F六個(gè)位置作機(jī)器人定位測(cè)試。以上述六個(gè)位置為起點(diǎn),在其周圍任取10個(gè)位姿作為目標(biāo)點(diǎn),當(dāng)機(jī)器人從起點(diǎn)導(dǎo)航到目標(biāo)點(diǎn)后再返回到起點(diǎn)位姿,得到結(jié)果如表1所示,并計(jì)算出最大誤差、最誤差和均值誤差。由于A點(diǎn)位置緊靠墻壁,當(dāng)機(jī)器人返回起點(diǎn)時(shí),激光雷達(dá)只能獲取到墻壁的直線信息,有效特征較少,因此定位誤差較大;在E點(diǎn)位置特征較多,定位誤差較小,與試驗(yàn)結(jié)果相符。在機(jī)器人導(dǎo)航過(guò)程中,IMU、里程計(jì)、測(cè)距雷達(dá)等都會(huì)存在誤差。為了避免機(jī)器人在目標(biāo)點(diǎn)處陷入震蕩,通常會(huì)讓機(jī)器人在目標(biāo)點(diǎn)附近一定范圍內(nèi)就認(rèn)為已經(jīng)到達(dá)目標(biāo)點(diǎn)而停止運(yùn)動(dòng),所以會(huì)導(dǎo)致機(jī)器人定位上存在誤差。從表1可以看出,IIMR-I機(jī)器人的定位精度在10 cm范圍內(nèi)。

表1 六個(gè)位置定位測(cè)試誤差
基于ROS的IIMR-I室內(nèi)移動(dòng)機(jī)器人平臺(tái)可以使用激光雷達(dá)構(gòu)建精準(zhǔn)的二維柵格地圖,并在此基礎(chǔ)上實(shí)現(xiàn)全局和局部路徑規(guī)劃,利用歷程計(jì)和IMU對(duì)機(jī)器人位姿進(jìn)行實(shí)時(shí)定位。機(jī)器人運(yùn)動(dòng)平穩(wěn),能夠即時(shí)避開(kāi)動(dòng)態(tài)障礙物,定位可靠,相對(duì)定位精度可以達(dá)到10 cm。后期將使用機(jī)器人機(jī)械臂和深度相機(jī)實(shí)現(xiàn)機(jī)器人抓取等動(dòng)作,并利用該平臺(tái)不斷優(yōu)化SLAM、導(dǎo)航等算法。