王興偉,錢 鈞
(合肥工業(yè)大學(xué) 機(jī)械工程學(xué)院,合肥 230009)
基于Kinect的臨場機(jī)器人設(shè)計(jì)與實(shí)驗(yàn)研究
王興偉,錢 鈞
(合肥工業(yè)大學(xué) 機(jī)械工程學(xué)院,合肥 230009)
針對臨場機(jī)器人成本過高、不能識別追蹤特定人員的問題,搭建了一款基于Kinect的低成本臨場機(jī)器人,可識別追蹤特定人員?;赗OS搭建了機(jī)器人控制系統(tǒng),首先利用Kinect和編碼器實(shí)現(xiàn)2D-SLAM;然后利用Kinect通過人臉識別出特定人員并確定人體位置;最后進(jìn)行路徑規(guī)劃追蹤特定人員。通過實(shí)驗(yàn),該款機(jī)器人可有效追蹤特定人員。
臨場機(jī)器人;Kinect;SLAM;人員識別與追蹤
目前臨場機(jī)器人的需求越來越大[1],但成本較高,難以推廣。機(jī)器人主要通過激光、聲吶、視覺等外部傳感器獲取環(huán)境信息[2]。文獻(xiàn)[3~5]主要通過激光雷達(dá)或者激光雷達(dá)配合視覺等其他傳感器實(shí)現(xiàn)機(jī)器人對周圍環(huán)境的感知,得到的數(shù)據(jù)精確,但成本高昂;且僅依靠激光雷達(dá)難以完成人員識別等任務(wù)。視覺傳感器成本低、數(shù)據(jù)豐富,基于視覺傳感器的機(jī)器人環(huán)境感知技術(shù)已日趨成熟。文獻(xiàn)[6~9]主要使用視覺傳感器實(shí)現(xiàn)了機(jī)器人的環(huán)境信息獲取。
綜上,機(jī)器人利用視覺傳感器可以更低成本的獲取更豐富的外界信息。本文設(shè)計(jì)的臨場機(jī)器人使用分布廣泛的無線網(wǎng)絡(luò)、低成本開源控制器、Kinect視覺傳感器、Ubuntu操作系統(tǒng)和ROS(機(jī)器人操作系統(tǒng)),構(gòu)造簡單、經(jīng)濟(jì)性強(qiáng)、易于功能拓展。機(jī)器人平臺實(shí)現(xiàn)了SLAM(同時定位與制圖)、人臉識別與人員追蹤,可應(yīng)用于遠(yuǎn)程臨場任務(wù)。
本文所設(shè)計(jì)的機(jī)器人實(shí)體如圖1所示。
機(jī)器人為雙輪驅(qū)動,電機(jī)經(jīng)過諧波減速器后再通過同步帶將動力傳遞給驅(qū)動輪。機(jī)器人主要傳感器為Kinect視覺傳感器和編碼器。下位機(jī)是安裝有Debian操作系統(tǒng)的BeagleboneBlack開源控制器。上位機(jī)為安裝有Ubuntu和ROS的筆記本電腦。遠(yuǎn)程控制平臺可為任意一臺接入網(wǎng)絡(luò)的計(jì)算機(jī)。控制平臺可通過遠(yuǎn)程控制機(jī)器人上位機(jī),進(jìn)而控制機(jī)器人。
圖1 機(jī)器人實(shí)體
Kinect的RGB攝像頭和紅外攝像頭標(biāo)定使用MATLAB的Toolbox_calib工具箱完成。標(biāo)定完成可得到兩個攝像頭的內(nèi)參分別為Hrgb和Hir,然后進(jìn)行配準(zhǔn)。
設(shè)空間某點(diǎn)P在深度攝像頭坐標(biāo)系和RGB攝像頭坐標(biāo)系下的坐標(biāo)分別為Pir和Prgb,則有:
設(shè)R、T分別為紅外攝像頭坐標(biāo)系到RGB攝像頭坐標(biāo)系的旋轉(zhuǎn)矩陣和平移向量。則有:
根據(jù)式(1)~式(3)可求得:
2.1 機(jī)器人控制系統(tǒng)總體設(shè)計(jì)
機(jī)器人使用人員識別與定位程序得到的位置數(shù)據(jù)和2D-SLAM程序得到的地圖,通過ROS導(dǎo)航功能包完成實(shí)時路徑規(guī)劃。上位機(jī)通過網(wǎng)絡(luò)通信將運(yùn)動指令傳遞給下位機(jī)控制機(jī)器人動作。機(jī)器人控制系統(tǒng)的各程序使用ROS完成整合,總的程序流程為:
1)利用2D-SLAM程序構(gòu)建環(huán)境地圖。
2)人員識別與定位程序識別出特定人員后,實(shí)時追蹤該人員并確定其與機(jī)器人的相對位置。
3)坐標(biāo)轉(zhuǎn)換確定要追蹤的人體在環(huán)境地圖中的位置。
4)使用ROS導(dǎo)航功能包規(guī)劃出機(jī)器人運(yùn)動路徑。
5)上位機(jī)將運(yùn)動指令傳給下位機(jī)控制機(jī)器人運(yùn)動。
2.2 機(jī)器人運(yùn)動學(xué)分析
本文所設(shè)計(jì)的機(jī)器人可以實(shí)現(xiàn)原地轉(zhuǎn)向、直行和圓弧轉(zhuǎn)彎等運(yùn)動。在此僅分析圓弧轉(zhuǎn)彎模式,則直線運(yùn)動轉(zhuǎn)彎半徑為無窮大,原地轉(zhuǎn)向轉(zhuǎn)彎半徑為零。
其中,V和R分別為機(jī)器人的運(yùn)動速度與轉(zhuǎn)彎半徑,ω1和ω2為兩驅(qū)動輪的角速度,r為驅(qū)動輪半徑,d為兩驅(qū)動輪間距。
2.3 2D-SLAM程序設(shè)計(jì)
本文主要使用Kinect和編碼器的數(shù)據(jù)完成臨場機(jī)器人2D-SLAM。使用擴(kuò)展卡爾曼濾波算法(EKF)對基于編碼器的里程計(jì)數(shù)據(jù)和視覺里程計(jì)數(shù)據(jù)進(jìn)行融合提高機(jī)器人定位精度。機(jī)器人圓弧轉(zhuǎn)彎運(yùn)動模型如圖2所示。
圖2 機(jī)器人圓弧轉(zhuǎn)彎運(yùn)動模型
利用Kinect傳感器,根據(jù)特征提取與匹配算法提取相鄰兩幀圖像的特征點(diǎn)并結(jié)合深度圖像得到特征點(diǎn)三維坐標(biāo)。根據(jù)特征點(diǎn)的三維坐標(biāo)變換得到剛體的旋轉(zhuǎn)矩陣和平移向量,進(jìn)而得到機(jī)器人的位姿變化。機(jī)器人基于視覺里程計(jì)的位姿測量模型為:
2D-SLAM程序流程圖如圖3所示。
圖3 2D-SLAM程序流程圖
2.4 人員識別與定位程序設(shè)計(jì)
本文設(shè)計(jì)的人員識別與跟蹤程序,首先進(jìn)行人臉識別以此選定跟蹤區(qū)域,并不斷判斷跟蹤區(qū)域周圍是否可檢測出人體,如果檢測出人體,即將人體更新為跟蹤目標(biāo)。然后使用Camshift算法結(jié)合卡爾曼濾波算法對目標(biāo)進(jìn)行跟蹤,并實(shí)時計(jì)算出目標(biāo)中心與機(jī)器人的相對位置。其中Camshift算法是對每一幀圖像進(jìn)行Meanshift算法處理,把前一幀的結(jié)果當(dāng)作后一幀Meanshift算法的初始值,依次迭代[10]。程序流程圖如圖4所示。
在Kinect配準(zhǔn)完成以后,兩個攝像頭采集圖像的像素點(diǎn)有對應(yīng)關(guān)系。設(shè)RGB圖像中離跟蹤區(qū)域中心點(diǎn)最近的深度值不為零的點(diǎn)為C,點(diǎn)C相對于機(jī)器人的位置為(X,Y,Z),則有:
圖4 人員識別與定位程序流程圖
其中,(m,n)代表C在深度圖像對應(yīng)點(diǎn)的像素坐標(biāo)。z表示(m,n)點(diǎn)的深度值,(Cx,Cy)表示深度攝像頭的主點(diǎn),fx、fy表示深度攝像頭的焦距。
根據(jù)以上分析將實(shí)驗(yàn)分為三部分。首先進(jìn)行Kinect聯(lián)合標(biāo)定實(shí)驗(yàn),配準(zhǔn)深度圖像和RGB圖像;其次進(jìn)行2D-SLAM實(shí)驗(yàn)生成環(huán)境地圖;最后進(jìn)行人員識別與追蹤實(shí)驗(yàn),驗(yàn)證整個方案的可行性。
3.1 Kinect聯(lián)合標(biāo)定實(shí)驗(yàn)
本文采用MATLAB Toolbox_calib工具箱完成對Kinect的標(biāo)定,得到紅外攝像頭和RGB攝像頭的內(nèi)參矩陣Hir和Hrgb。兩個攝像頭分別對同一位姿的標(biāo)定板求外參數(shù)得到Rir、Tir和Rrgb和Trgb。
根據(jù)標(biāo)定結(jié)果和式(4)、式(5)得:
根據(jù)R和T對同時獲取的RGB圖像與深度圖像進(jìn)行處理生成一幀點(diǎn)云數(shù)據(jù),顯示如圖5所示。
圖5 生成的點(diǎn)云圖
點(diǎn)云圖證明兩個攝像頭圖像的配準(zhǔn)比較精確。
3.2 2D-SLAM實(shí)驗(yàn)
選擇環(huán)境較為復(fù)雜的實(shí)驗(yàn)室作為實(shí)驗(yàn)場景。實(shí)驗(yàn)室中間放置桌子和宣傳板等物品,圍繞實(shí)驗(yàn)室中間的物品劃定長方形作為參考運(yùn)動軌跡??刂茩C(jī)器人沿參考軌跡運(yùn)動一周得到圖6,圖中紅色方塊表示機(jī)器人。根據(jù)參考運(yùn)動軌跡與SLAM得到的定位數(shù)據(jù)得到圖7。
圖6 2D-SLAM結(jié)果圖
圖7 機(jī)器人運(yùn)動軌跡
分析圖7,考慮到機(jī)器人的中心很難完全沿參考運(yùn)動軌跡運(yùn)動,比較兩條軌跡各取值點(diǎn)間的Δx和Δy近乎相等。因此,機(jī)器人的定位是比較精確的。
3.3 人員識別與追蹤實(shí)驗(yàn)
以Kinect的RGB攝像頭中心位置為坐標(biāo)原點(diǎn),實(shí)測Kinect對人體的檢測范圍得到圖8。Kinect可檢測到人體的范圍是圖8中以三角形為節(jié)點(diǎn)的折線所夾的區(qū)域,可精確檢測人體位置的范圍為以圓圈為節(jié)點(diǎn)的折線所圍成的扇形區(qū)域。
圖8 Kinect可檢測人體位置的范圍
根據(jù)Kinect參數(shù)和實(shí)驗(yàn)數(shù)據(jù),本文設(shè)定機(jī)器人有效檢測區(qū)域?yàn)閳D8灰色扇形區(qū)域。該區(qū)域是在Y大于零時由以下四個方程所圍成。
在機(jī)器人追蹤特定人員過程中要保證人體處于機(jī)器人的有效檢測區(qū)域內(nèi)。使用人員識別與定位程序識別出需要追蹤的人員,并且得到人體與機(jī)器人的相對位置,如圖9所示。
圖9 人員識別與位置檢測圖
在得到要追蹤的人員相對于機(jī)器人的位置后,通過坐標(biāo)系轉(zhuǎn)換,確定該人員在地圖中的位置,使用ROS導(dǎo)航功能包完成機(jī)器人導(dǎo)航,結(jié)果如圖10所示。
圖10 機(jī)器人導(dǎo)航結(jié)果
本文設(shè)計(jì)了一款雙輪臨場機(jī)器人,采用Kinect視覺傳感器、開源控制器等低成本設(shè)備和開源的操作系統(tǒng),成本低廉,擴(kuò)展性好。機(jī)器人可以實(shí)現(xiàn)2D-SLAM和對特定人員的識別與追蹤。通過實(shí)驗(yàn)證明了本文方案的可行性。
Kinect傳感器對光線變化敏感,因此本文設(shè)計(jì)的機(jī)器人僅可在室內(nèi)使用。以后考慮結(jié)合其他傳感器擴(kuò)展其可用范圍。單個Kinect探測范圍較窄,以后考慮使用多個Kinect傳感器擴(kuò)大機(jī)器人探測范圍。
[1] 杜廣龍.面向多自由度機(jī)器人的非受限智能人機(jī)交互的研究[D].華南理工大學(xué),2013.
[2] 卜范騫,田國會,李曉磊.家庭服務(wù)機(jī)器人SLAM[A].中國自動化學(xué)會華東六省一市學(xué)術(shù)年會[C],2007.
[3] 周波,戴先中,韓建達(dá).基于激光掃描的移動機(jī)器人3D室外環(huán)境實(shí)時建模[J].機(jī)器人,2012,34(3):321-328,336.
[4] 苑晶,劉鋼墩,孫沁璇.激光與單目視覺融合的移動機(jī)器人運(yùn)動目標(biāo)跟蹤[J].控制理論與應(yīng)用,2016,33(2):196-204.
[5] 莊嚴(yán),盧希彬,李云輝,等.移動機(jī)器人基于三維激光測距的室內(nèi)場景認(rèn)知[J].Acta Automatica Sinica,2011,37(10):1232-1240.
[6] 王興偉,錢鈞.基于ROS的全方位移動機(jī)器人SLAM實(shí)驗(yàn)研究[J/ OL].中國科技論文在線,2016-5-25.
[7] Raúl Mur-Artal. ORB-SLAM: A Versatile and Accurate Monocular SLAM System[J].IEEE Transactions on Robotics, 2015,31(5):1147-1163.
[8] Engel J,Stückler J,Cremers D. Large-scale direct SLAM with stereo cameras[C].IEEE/RSJ International Conference on Intelligent Robots and Systems.IEEE,2015:1935-1942.
[9] 王曉華,傅衛(wèi)平.零件的雙目視覺識別定位與抓取系統(tǒng)研究[J].制造業(yè)自動化,2010,32(11):129-132.
[10] 張潤澤.基于OpenCV的視覺跟蹤平臺設(shè)計(jì)與實(shí)現(xiàn)[D].吉林:吉林大學(xué),2015.
Design and experimental research of telepresence robot based on kinect
WANG Xing-wei, QIAN Jun
TP242
A
1009-0134(2017)04-0004-04
2017-01-16
國家自然科學(xué)基金(51205104);中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)資金(2014HGCH0015)
王興偉(1988 -),男,山東濰坊人,碩士研究生,研究方向?yàn)檩喪揭苿訖C(jī)器人定位與導(dǎo)航。