邵澤燕+邵澤健+陳成軍+李東年+丁文科+劉鵬
摘要:機(jī)械臂廣泛地應(yīng)用在工業(yè)自動(dòng)化生產(chǎn)以及人們?nèi)粘I钪?,機(jī)械臂而示教學(xué)習(xí)作為一種重要的運(yùn)動(dòng)規(guī)劃方式,是機(jī)械臂研究領(lǐng)域的一項(xiàng)重要研究內(nèi)容。鑒于此,設(shè)計(jì)了一種基于Kinect的虛擬機(jī)械臂增強(qiáng)現(xiàn)實(shí)示教系統(tǒng),通過Kinect傳感器采集人手位置數(shù)據(jù),利用機(jī)械臂逆運(yùn)動(dòng)學(xué)模型驅(qū)動(dòng)虛擬機(jī)械臂跟蹤人手運(yùn)動(dòng),實(shí)現(xiàn)對(duì)機(jī)械臂的虛擬示教;利用增強(qiáng)現(xiàn)實(shí)技術(shù),將虛擬機(jī)械臂疊加到真實(shí)環(huán)境中,實(shí)現(xiàn)對(duì)機(jī)械臂的增強(qiáng)現(xiàn)實(shí)示教。實(shí)驗(yàn)結(jié)果表明該系統(tǒng)能夠?qū)⑻摂M機(jī)械臂準(zhǔn)確地疊加到真實(shí)環(huán)境中,并實(shí)時(shí)跟蹤人手運(yùn)動(dòng),系統(tǒng)具有良好的交互性。
關(guān)鍵詞:機(jī)械臂示教;Kinect傳感器;骨骼跟蹤;逆運(yùn)動(dòng)學(xué);增強(qiáng)現(xiàn)實(shí)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A
Abstract:Manipulators are widely used in industrial production and people's daily life, while, manipulator teaching, as an important method for manipulator motion planning, is one of the key issues for the research area of Manipulators. This paper presents a virtual manipulator teaching system using augmented reality based on a Kinect sensor, where, the end-effector of the virtual manipulator follows the movement of the human hand based on a Kinect sensor through an inverse kinematics model, and then the resulting virtual manipulator is added into the real working environment by using augmented reality. The experimental results show that, in our system, the virtual manipulator can be accurately registered into the real working environment and follow the movement of the human hand in real-time.
Key words:manipulator teaching; Kinect sensor; skeleton tracking; inverse kinematics; augmented reality
1 引 言
機(jī)械臂在工業(yè)制造、軍事、娛樂、醫(yī)療等領(lǐng)域都具有廣泛的應(yīng)用。早期的機(jī)械臂只從事一些簡單的自動(dòng)化生產(chǎn)任務(wù),在線示教編程就可以滿足生產(chǎn)需要。隨著社會(huì)發(fā)展,機(jī)械臂的工作任務(wù)日趨復(fù)雜,而且在線示教編程過程必須依賴實(shí)體機(jī)械臂,示教過程變得煩瑣。隨著計(jì)算機(jī)仿真技術(shù)的出現(xiàn),機(jī)械臂虛擬示教方式也得到了發(fā)展。機(jī)械臂虛擬示教是利用計(jì)算機(jī)仿真技術(shù)進(jìn)行機(jī)械臂模型以及工作環(huán)境的模擬,基于機(jī)器人運(yùn)動(dòng)學(xué)算法,對(duì)機(jī)械臂模型進(jìn)行相應(yīng)的控制和操作,完成機(jī)械臂模型示教的過程[1]。機(jī)械臂虛擬示教過程不需要機(jī)械臂實(shí)體,從而把機(jī)械臂從在線編程中解放出來,提高了機(jī)械臂示教過程的直觀性和安全性[2]。
機(jī)械臂虛擬示教方式,雖然具有很多優(yōu)勢,但是與實(shí)際工作場景脫離,缺乏真實(shí)性。一些研究者將增強(qiáng)現(xiàn)實(shí)技術(shù)引入機(jī)械臂示教學(xué)習(xí)過程,將虛擬機(jī)械臂與真實(shí)場景融合。Fang等[3.4]采用增強(qiáng)現(xiàn)實(shí)技術(shù)對(duì)機(jī)械臂進(jìn)行運(yùn)動(dòng)路徑規(guī)劃及末端執(zhí)行器方向規(guī)劃。Chong等[5]基于增強(qiáng)現(xiàn)實(shí)技術(shù)為機(jī)械臂規(guī)劃與物理實(shí)體無碰撞的運(yùn)動(dòng)路徑。而Kinect傳感器的出現(xiàn)為機(jī)械臂示教學(xué)習(xí)和增強(qiáng)現(xiàn)實(shí)應(yīng)用提供了新的交互方式。林海波等[6]設(shè)計(jì)了基于Kinect的無標(biāo)定人機(jī)交互控制系統(tǒng),該系統(tǒng)利用Kinect獲取的人手骨骼數(shù)據(jù)控制機(jī)械臂運(yùn)動(dòng)。王祎等[7]利用Kinect深度圖像,基于增強(qiáng)現(xiàn)實(shí)技術(shù),進(jìn)行了虛擬物體與真實(shí)場景的碰撞交互實(shí)驗(yàn)。
鑒于此,提出了一種應(yīng)用Kinect進(jìn)行虛擬機(jī)械臂增強(qiáng)現(xiàn)實(shí)示教的方法。系統(tǒng)通過Kinect實(shí)時(shí)地獲取人手的運(yùn)動(dòng)軌跡,將運(yùn)動(dòng)軌跡傳遞給計(jì)算機(jī)中的機(jī)械臂模型,基于機(jī)械臂逆運(yùn)動(dòng)學(xué)算法,實(shí)現(xiàn)機(jī)械臂末端執(zhí)行器對(duì)人手運(yùn)動(dòng)的實(shí)時(shí)跟蹤,同時(shí)采用增強(qiáng)現(xiàn)實(shí)技術(shù),實(shí)現(xiàn)機(jī)械臂模型在真實(shí)環(huán)境的示教運(yùn)動(dòng)。該系統(tǒng)不僅具有虛擬示教的優(yōu)勢,又能實(shí)現(xiàn)虛擬機(jī)械臂與真實(shí)場景的融合,使示教過程顯得更自然、更真實(shí)。
2 系統(tǒng)框架
構(gòu)建的虛擬機(jī)械臂增強(qiáng)現(xiàn)實(shí)示教系統(tǒng)可分為三個(gè)部分:人手部位置數(shù)據(jù)提取、機(jī)械臂逆運(yùn)動(dòng)學(xué)求解、增強(qiáng)現(xiàn)實(shí)注冊(cè)。系統(tǒng)整體框架如圖1所示。
系統(tǒng)硬件部分主要由Kinect傳感器和計(jì)算機(jī)組成。Kinect傳感器能提供深度數(shù)據(jù)流、彩色視頻流、骨骼數(shù)據(jù)流等數(shù)據(jù)信息[8]。系統(tǒng)利用Kinect傳感器進(jìn)行彩色工作場景的采集和人右手骨骼位置數(shù)據(jù)的提取,利用計(jì)算機(jī)進(jìn)行機(jī)械臂三維模型的構(gòu)建、機(jī)械臂逆運(yùn)動(dòng)學(xué)方程的計(jì)算和增強(qiáng)現(xiàn)實(shí)注冊(cè)。本系統(tǒng)的具體工作流程如下:首先,利用Kinect獲得人右手骨骼數(shù)據(jù)和彩色場景數(shù)據(jù);然后,將獲取的人手骨骼數(shù)據(jù)傳遞給計(jì)算機(jī)中已構(gòu)建的虛擬機(jī)械臂系統(tǒng),基于逆運(yùn)動(dòng)學(xué)算法,實(shí)現(xiàn)機(jī)械臂末端執(zhí)行器對(duì)人手運(yùn)動(dòng)的跟蹤;最后,進(jìn)行增強(qiáng)現(xiàn)實(shí)注冊(cè),將Kinect獲取的真實(shí)工作場景數(shù)據(jù)與計(jì)算機(jī)中構(gòu)建的虛擬機(jī)械臂融合,令機(jī)械臂直觀地顯示在工作場景中,實(shí)現(xiàn)虛擬機(jī)械臂的增強(qiáng)現(xiàn)實(shí)示教過程。
3 手部位置信息獲取
3.1 Kinect骨骼數(shù)據(jù)提取
Kinect傳感器設(shè)備由一個(gè)紅外光源、一個(gè)深度攝像頭和一個(gè)RGB彩色攝像頭構(gòu)成,如圖2所示。Kinect通過紅外線光源和深度攝像頭可以獲取場景的深度信息,通過Kinect的內(nèi)置人體運(yùn)動(dòng)姿態(tài)識(shí)別程序又可以從獲取的深度信息識(shí)別出場景中人體的骨骼數(shù)據(jù)。骨骼點(diǎn)位置數(shù)據(jù)用三維坐標(biāo)(單位為m)進(jìn)行表示,其坐標(biāo)系以Kinect的深度攝像頭為原點(diǎn),其Z軸垂直于相機(jī)平面,X軸沿水平方向,Y軸沿豎直方向,如圖3所示。
Kinect可以實(shí)現(xiàn)人體20個(gè)骨骼關(guān)節(jié)點(diǎn)的跟蹤,圖4所示為這20個(gè)骨骼關(guān)節(jié)點(diǎn)的具體分布,分別為:頭部(head)關(guān)節(jié)、雙肩中央(shoulder center)關(guān)節(jié)、脊柱中段(spine)關(guān)節(jié)、臀部中央(hip center)關(guān)節(jié)、左臀部(hip 1eft)關(guān)節(jié)、右臀部(hip right)關(guān)節(jié)、左手(hand left)關(guān)節(jié)、右手(hand right)關(guān)節(jié)、左腕 (wrist left) 關(guān)節(jié)、右腕 (wrist right)關(guān)節(jié)、左肘(elbow left)關(guān)節(jié)、右肘(elbow right)關(guān)節(jié)、左肩(shoulder left)關(guān)節(jié)、右肩(shoulder right)關(guān)節(jié)、左膝蓋(knee left)關(guān)節(jié)、右膝蓋(knee right)關(guān)節(jié)、左踝(ankle left)關(guān)節(jié)、右踝(ankle right)關(guān)節(jié)、左腳(foot left)關(guān)節(jié)和右腳(foot right)關(guān)節(jié)。
3.2 Kinect SDK骨骼對(duì)象模型
Kinect SDK中定義的人體骨骼對(duì)象模型包括Skeleton Stream,SkeletonFrame,Skeleton和
Joint四部分[9]。SkeletonStream為骨骼數(shù)據(jù)流對(duì)象,SkeletonFrame則為骨骼數(shù)據(jù)幀對(duì)象,用于存儲(chǔ)一幀的骨骼數(shù)據(jù),其數(shù)據(jù)提取自SkeletonStream對(duì)象。Skeleton類定義了一系列字段對(duì)骨骼信息進(jìn)行具體描述,包括骨骼的位置信息以及骨骼中關(guān)節(jié)的位置信息。Joint類則用于描述骨骼跟蹤引擎跟蹤和獲取的骨骼數(shù)據(jù)中單個(gè)關(guān)節(jié)點(diǎn)的信息。
4 三自由度機(jī)械臂逆運(yùn)動(dòng)學(xué)求解
4.1 機(jī)械臂D-H模型
系統(tǒng)選用的是三自由度串聯(lián)機(jī)械臂,使用Denavit-Hartenberg(D-H)方法來描述相鄰兩桿的位置關(guān)系。用i表示連桿序號(hào),i=1,…,n,則D-H方法涉及四個(gè)連桿參數(shù):繞 軸旋轉(zhuǎn),使 軸轉(zhuǎn)到與 同一平面內(nèi)的關(guān)節(jié)角 (兩連桿夾角);沿 軸平移,把 移到與 同一直線上的距離 (兩連桿距離);沿 軸平移,把 移到與 同一直線上的距離 (連桿長度);繞 軸旋轉(zhuǎn),使 軸轉(zhuǎn)到與 同一平面內(nèi)的偏角 (連桿扭角)[10]。本文采用D-H模型建立的機(jī)械臂坐標(biāo)系如圖5所示。表1所示為機(jī)械臂D-H模型的連桿參數(shù)。
4.2 機(jī)械臂逆運(yùn)動(dòng)學(xué)
機(jī)械臂的運(yùn)動(dòng)學(xué)主要包括正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué),機(jī)械臂運(yùn)動(dòng)學(xué)一直是機(jī)械臂設(shè)計(jì)人員研究的重點(diǎn),尤其是機(jī)械臂逆運(yùn)動(dòng)學(xué)[11]。機(jī)械臂逆運(yùn)動(dòng)學(xué)是指給定了末端執(zhí)行器的位置,求解相鄰連桿的夾角的過程。在本文中,已知機(jī)械臂末端位置即人手位置 ,求解 , , 。
在D-H模型下,連桿i對(duì)連桿i-1相對(duì)位置關(guān)系 可用四個(gè)齊次變換矩陣來描述:
5 增強(qiáng)現(xiàn)實(shí)注冊(cè)
增強(qiáng)現(xiàn)實(shí)是指在同一環(huán)境中實(shí)現(xiàn)虛擬物體與真實(shí)環(huán)境的融合,并實(shí)現(xiàn)真實(shí)世界與虛擬物體的交互。增強(qiáng)現(xiàn)實(shí)的關(guān)鍵技術(shù)是三維注冊(cè)技術(shù)[12]。三維注冊(cè)是指虛擬物體和真實(shí)場景在三維空間中位置的一致性,即在空間上的整合。三維跟蹤注冊(cè)方法很多,基于標(biāo)識(shí)物的注冊(cè)技術(shù)無需復(fù)雜的硬件設(shè)備,標(biāo)識(shí)物的獲取較為容易,且此類方法精度較高,所以本文采用基于標(biāo)識(shí)物的注冊(cè)技術(shù)進(jìn)行跟蹤注冊(cè)。本文系統(tǒng)的注冊(cè)過程為:首先,Kinect設(shè)備采集彩色視頻圖像,增強(qiáng)現(xiàn)實(shí)系統(tǒng)對(duì)每幀圖像進(jìn)行檢測,識(shí)別到標(biāo)識(shí)物后,計(jì)算攝像機(jī)坐標(biāo)系相對(duì)于標(biāo)識(shí)物坐標(biāo)系的坐標(biāo)轉(zhuǎn)換矩陣;然后,根據(jù)此轉(zhuǎn)換矩陣,將虛擬機(jī)械臂注冊(cè)到標(biāo)識(shí)物坐標(biāo)系的原點(diǎn)上;最后,通過攝像機(jī)坐標(biāo)系與屏幕坐標(biāo)系的坐標(biāo)轉(zhuǎn)換,將虛擬機(jī)械臂渲染到真實(shí)場景中,實(shí)現(xiàn)虛擬機(jī)械臂與真實(shí)場景的融合顯示[13]。圖6顯示了基于標(biāo)識(shí)物的三維注冊(cè)過程,涉及到攝像機(jī)坐標(biāo)系、屏幕坐標(biāo)系、標(biāo)識(shí)物坐標(biāo)系這3個(gè)坐標(biāo)系之間的變換。
6 實(shí)驗(yàn)結(jié)果與分析
系統(tǒng)硬件部分由一臺(tái)Kinect傳感器、一張?jiān)鰪?qiáng)現(xiàn)實(shí)標(biāo)識(shí)卡和一臺(tái)普通計(jì)算機(jī)組成,如圖7所示。以三自由度虛擬機(jī)械臂為被控對(duì)象,采用Kinect傳感器采集彩色場景并獲取三維人手骨骼位置數(shù)據(jù),利用計(jì)算機(jī)進(jìn)行機(jī)械臂三維模型的構(gòu)建、機(jī)械臂逆運(yùn)動(dòng)學(xué)方程的計(jì)算和增強(qiáng)現(xiàn)實(shí)注冊(cè)。所采用的軟件開發(fā)環(huán)境為:VS2010 C++,Kinect SDK-v1.8,ARToolKit-2.71.2。系統(tǒng)流程如圖8所示。
為了驗(yàn)證本系統(tǒng)的可行性,分別用人手指引虛擬機(jī)械臂末端執(zhí)行器進(jìn)行上、下、左、右四個(gè)方向的運(yùn)動(dòng),觀察機(jī)械臂的運(yùn)動(dòng)情況。
圖9和圖10分別顯示的是虛擬機(jī)械臂跟蹤人手左右運(yùn)動(dòng)和上下運(yùn)動(dòng)的實(shí)驗(yàn)結(jié)果。由圖9和圖10可以看出虛擬機(jī)械臂不僅可以準(zhǔn)確地顯示在真實(shí)場景中,還可以實(shí)時(shí)準(zhǔn)確地跟蹤人手運(yùn)動(dòng)。實(shí)驗(yàn)表明本文所提出的基于kinect的虛擬機(jī)械臂增強(qiáng)現(xiàn)實(shí)示教系統(tǒng)具有良好的直觀性和交互性。
6 結(jié)束語
系統(tǒng)以三自由度虛擬機(jī)械臂為被控對(duì)象,利用Kinect獲取彩色場景圖和人右手位置數(shù)據(jù),將這些數(shù)據(jù)作為輸入傳遞給計(jì)算機(jī),通過對(duì)機(jī)械臂進(jìn)行逆運(yùn)動(dòng)學(xué)求解實(shí)現(xiàn)機(jī)械臂末端跟蹤人手運(yùn)動(dòng),通過采用增強(qiáng)現(xiàn)實(shí)注冊(cè)技術(shù)將虛擬機(jī)械臂直觀地顯示在真實(shí)工作場景中。實(shí)驗(yàn)證明系統(tǒng)具有良好的實(shí)時(shí)性和交互性。在今后的研究工作中,將進(jìn)一步針對(duì)不同的機(jī)械臂應(yīng)用場合,以Kinect骨骼跟蹤技術(shù)作為人機(jī)交互方式,研究基于增強(qiáng)現(xiàn)實(shí)的具體的機(jī)械臂無碰撞路徑規(guī)劃方式。
參考文獻(xiàn):
[1]張華文. 六自由度機(jī)器人三維可視化虛擬示教系統(tǒng)[D].
四川省綿陽市:西南科技大學(xué),2014.
[2]李想,錢歡,付莊,等. 基于QT和OpenGL的機(jī)器人離
線編程和仿真系統(tǒng)設(shè)計(jì)[J]. 機(jī)電一體化,2013,(4):
56-59.
[3]Fang H C, Ong S K, Nee A Y C. Novel AR-based interface
for human-robot interaction and visualization[J].
Advances in Manufacturing, 2014, 2(4): 275-288.
[4]Fang H C, Ong S K, Nee A Y C. Orientation planning
of robot end-effector using augmented reality[J].
International Journal of Advanced Manufacturing
Technology, 2013, 67(9): 2033-2049.
[5]Chong J W S, Ong S K , Nee A Y C, et al. Robot
Programming using augmented reality: An method
for planning collision-free paths[J]. Robotics and
Computer-Integrated Manufacturing, 2009, 25(3):
689-701.
[6]林海波,王浩,張毅. 基于Kinect的無標(biāo)定人機(jī)交互控
制系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2015,36(2):
551-555.
[7]王祎. 基于深度圖像的具有虛實(shí)物體碰撞交互功能的增
強(qiáng)現(xiàn)實(shí)系統(tǒng) [D]. 北京:北京林業(yè)大學(xué),2015.
[8]吳秦,陳智,周宇旋,等. 基于Kinect骨骼跟蹤技術(shù)的
人機(jī)交互[J].常州大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,26(3):
6-12.
[9]李恒. 基于Kinect骨骼跟蹤功能的骨骼識(shí)別系統(tǒng)研究
[D].西安:西安電子科技大學(xué), 2013.
[10]陳桂,王建紅,湯玉東. KUKA機(jī)器人運(yùn)動(dòng)學(xué)仿真與實(shí)
驗(yàn)研究[J]. 組合機(jī)床與自動(dòng)化加工技術(shù),2014,(8):
94-97.
[11]陳魯剛,平雪良,徐稀文. 平面三自由度機(jī)械臂的軌跡
規(guī)劃及仿真[J]. 工具技術(shù),2011,45(9): 26-30.
[12]桂振文. 面向移動(dòng)增強(qiáng)現(xiàn)實(shí)的場景識(shí)別與跟蹤注冊(cè)技
術(shù)研究[D].北京:北京理工大學(xué), 2014.
[13]高凈業(yè). 增強(qiáng)現(xiàn)實(shí)人機(jī)交互系統(tǒng)的研究[D]. 浙江杭
州:杭州電子科技大學(xué), 2011.