陳 暢,陳 亮,周雪峰
(1.華南理工大學(xué),廣州 510006;2.廣東省智能制造研究所,廣州 510070)
工業(yè)機(jī)器人的示教是指在工業(yè)機(jī)器人進(jìn)行工件選取、裝配等作業(yè)之前,首先規(guī)劃好機(jī)器人的正確運(yùn)動軌跡,并將其載入到機(jī)器人中。機(jī)器人示教直接關(guān)系到工業(yè)機(jī)器人在實際工作過程中的精度和效率,是工業(yè)機(jī)器人研究領(lǐng)域的熱點問題之一。從示教方式上來看,目前絕大多數(shù)機(jī)器人都是通過示教器或者離線編程進(jìn)行示教[1],盡管也能夠滿足機(jī)器人示教的一般要求,但這些示教方式都具有過程復(fù)雜,難度大,操作繁瑣等缺點,如示教器操作要求逐個輸入軌跡點,并要求操作者熟練掌握機(jī)器人編程語言等,從而增大了運(yùn)行和調(diào)試成本。以上這些問題成為制約提高機(jī)器人示教效率的瓶頸。
隨著人機(jī)交互技術(shù)的發(fā)展,采用自然交互的方式進(jìn)行機(jī)器人示教成為可能,自然手勢交互是一種快捷、方便、低認(rèn)知負(fù)擔(dān)的新型人機(jī)交互技術(shù)[2,3]。采用自然手勢交互進(jìn)行工業(yè)機(jī)器人示教具有學(xué)習(xí)成本低,精確度高,交互過程簡單等優(yōu)點。操作人員不需要對機(jī)器人控制有深入的了解,也不需要具備機(jī)器人編程的專業(yè)知識,只需通過簡單的自然手勢就能完成機(jī)器人控制與示教。本文將自然手勢交互與工業(yè)機(jī)器人示教相結(jié)合,通過手勢姿態(tài)傳感器獲取手部位置和姿態(tài)信息,并將其傳送給工業(yè)機(jī)器人實現(xiàn)機(jī)械臂定。
位和末端夾具的各種任務(wù)操作。實驗平臺上的樣機(jī)測試和誤差分析表明,采用自然手勢交互的工業(yè)示教機(jī)器人操作簡單、運(yùn)行可靠、準(zhǔn)確性高。
根據(jù)一般工業(yè)機(jī)器人的任務(wù)要求,本研究將工業(yè)機(jī)器人的示教動作分為兩類,一類是機(jī)械臂位置的改變,一類是末端夾具的抓取、放置、停止等任務(wù)動作,同時還要記錄下機(jī)器人手臂的運(yùn)動數(shù)據(jù)。示教系統(tǒng)總體設(shè)計方案和流程如圖1所示。
示教系統(tǒng)由主控前端數(shù)據(jù)采集處理模塊和從控端機(jī)器人模塊組成。主控部分主要由PC機(jī)和Leap Motion體感傳感器等硬件組成,主要完成手勢數(shù)據(jù)獲取、數(shù)據(jù)優(yōu)化處理、手勢識別、數(shù)據(jù)存儲等功能。從控部分主要由機(jī)器人控制器、機(jī)械臂、末端夾具,夾具控制器,Arduino模塊等硬件組成,從控部分受到主控部分動作觸發(fā)信號產(chǎn)生各類任務(wù)動作。主控端和從控端通過USB接口進(jìn)行通訊,數(shù)據(jù)處理流中手掌位置映射與姿態(tài)映射同時進(jìn)行且相互獨立,從而使得在示教中機(jī)械臂位置控制與末端夾具的姿態(tài)控制相互不受到影響,在機(jī)器人工作區(qū)域內(nèi)任意位置都能實現(xiàn)機(jī)器手的抓取、放置等操作。系統(tǒng)采用visual studio2015開發(fā),控制程序每0.45s向被控端機(jī)器人發(fā)送位置與手勢類別數(shù)據(jù),同時將數(shù)據(jù)以文本文檔格式儲存在計算機(jī)中,再通過示教程序讀出數(shù)據(jù)完成示教任務(wù)。

圖1 系統(tǒng)總體設(shè)計方案
手勢示教中前端數(shù)據(jù)采集由Leap Motion傳感器完成,在PC機(jī)上進(jìn)行數(shù)據(jù)處理。Leap Motion傳感器是一款桌面無接觸式交互設(shè)備,它通過紅外成像原理實時捕捉手勢運(yùn)動,精度能達(dá)到0.01mm,Leap Motion遵循右手坐標(biāo)系[4],如圖2所示,坐標(biāo)原點是設(shè)備的中心,X軸指向設(shè)備的長邊,Y軸豎直向上,Z軸指向設(shè)備側(cè)面,X-Z平面構(gòu)成一個水平面,當(dāng)手掌處于水平位置時,與該平面平行。

圖2 Leap Motion坐標(biāo)系
在本研究中數(shù)據(jù)處理PC機(jī)采用的是IPC-610G系列工控機(jī),Leap Motion通過USB接口與PC機(jī)通訊。Leap Motion將采集到的手掌、手指的位置和其他信息保存在一幀(Frame)當(dāng)中,利用Leap Motion SDK就可以獲取手掌、手指的空間位置坐標(biāo),并將手掌、手指的位置數(shù)據(jù)作為手勢特征數(shù)據(jù)用于識別手部的握拳、半握、張開三種手勢類別,用于控制機(jī)器人抓取放置及緊急停止動作。利用hand.palmNormal().roll()函數(shù)獲取手掌平面與Leap Motion空間坐標(biāo)系X-Y平面之間的夾角數(shù)值控制機(jī)器人末端夾具的旋轉(zhuǎn)角度。
被控端機(jī)器人采用EPSON SCARA LS3-401x型機(jī)器人,如圖3所示。該機(jī)器人具有四個自由度,負(fù)載3kg,定位精度為0.01mm。三個相互平行的旋轉(zhuǎn)關(guān)節(jié)實現(xiàn)平面內(nèi)的定位,第四關(guān)節(jié)為旋轉(zhuǎn)移動關(guān)節(jié)實現(xiàn)末端的空間移動,機(jī)器人控制器使用愛普生RC90,其集成了Microsoft.NET通信模塊可以進(jìn)行二次開發(fā),控制器使用以太網(wǎng)與計算機(jī)通訊,機(jī)器人手臂使用電源線和信號線連接到控制器。SCARA機(jī)器人末端裝有電動夾具,如圖4所示,電動夾具使用一個直流無刷電機(jī)驅(qū)動,控制器內(nèi)置,二指平動,行程為20mm。夾具與機(jī)器人的控制相互獨立,使用Arduino模塊向夾具控制器發(fā)送脈沖信號來驅(qū)動夾具運(yùn)動,示教中將手部張開、半握姿勢分別定義為高、低電平信號,從而控制夾具開合。

圖3 SCARA機(jī)器人

圖4 電動夾爪
由于存在硬件設(shè)備的不穩(wěn)定性和操作者動作的不連續(xù)性等因素,從而導(dǎo)致所獲得的幀數(shù)據(jù)具有較大的誤差,出現(xiàn)噪聲信號,因此本研究采用帶閾值的均值濾波算法對原始數(shù)據(jù)進(jìn)行優(yōu)化,以確保Leap Motion獲取的原始數(shù)據(jù)能夠有效使用。濾波方案如下:選取連續(xù)的n(10<n<20)幀數(shù)據(jù)作為觀測值進(jìn)行均值濾波計算,記其中第i(0<i<n+1)幀某一坐標(biāo)數(shù)據(jù)為(xi,yi,zi),設(shè)定各分量的閾值為M,只有當(dāng)所有分量都不大于閾值M的時候才為有效數(shù)據(jù),計算公式如下:

其中p(x,y,z)為連續(xù)n幀優(yōu)化后坐標(biāo)數(shù)據(jù),算法設(shè)定閾值過濾掉產(chǎn)生誤差的幀數(shù)據(jù),保證手勢控制的精度和手勢識別的準(zhǔn)確性。
根據(jù)系統(tǒng)設(shè)計目標(biāo),本研究設(shè)計了五種手勢動作來完成手部與機(jī)器人的交互行為,具體定義如表1所示。

表1 手勢及控制意義
靜態(tài)手勢主要研究的是手的姿態(tài)和單個手形,表中序號2,3,4為三種靜態(tài)手勢[5],本文采用K臨近算法[6]對這三種手勢進(jìn)行識別。取五個手指指尖相對于手掌中心的相對坐標(biāo)作為特征值,訓(xùn)練集T如下:


ωis表示樣本Ti的第s維的坐標(biāo),表示樣本T'j的第s維坐標(biāo),對于新輸入的手勢特征值通過式(3)求的與所有已知類別樣本的距離,然后從小到大的排序找出K個在訓(xùn)練集T 中與X距離最近的點記為:NK(X)。

其中I為指示函數(shù)相當(dāng)于一個布爾值,即當(dāng)yi=cj時,I為1,否則I為0,最后得到y(tǒng)為輸出的手勢類別。
由于手勢操作和機(jī)械臂運(yùn)動分別屬于不同的坐標(biāo)系統(tǒng),并且手勢操作空間和機(jī)械臂運(yùn)動空間都有各自的范圍限制,因此需要制定合理的數(shù)據(jù)動態(tài)映射策略。主要從以下方面考慮。
由圖2和圖5可知,Leap Motion傳感器和SCARA機(jī)器人的坐標(biāo)定義并不相同,假設(shè):

圖5 SCARA機(jī)器人坐標(biāo)系
在Leap Motion坐標(biāo)系空間中某一時刻掌心的位置記為A=(xn,yn,zn),對應(yīng)在機(jī)械臂坐標(biāo)空間該時刻的位置表示為Jn=(x'n,y'n,z'n)。為了使兩個坐標(biāo)系方向能夠關(guān)聯(lián)起來,現(xiàn)將Leap Motion的空間坐標(biāo)系繞X軸逆時針旋轉(zhuǎn)90°,再沿Y軸反向,具體變換過程如下:

2)再沿Y軸反向:

整理得到坐標(biāo)映射關(guān)系為:

從中可以看出,機(jī)械臂的Y坐標(biāo)方向受手勢空間Z坐標(biāo)控制,機(jī)械臂Z坐標(biāo)方向受到手勢空間Y坐標(biāo)控制。
Leap Motion控制器的是一款桌面級體感交互設(shè)備,它的交互區(qū)域即可視域較小,交互半徑約為61cm,前后夾角約為120°,左右夾角約為150°。另一方面,機(jī)器人的工作空間必須有一個極限范圍,否則可能發(fā)生碰撞,因此本研究設(shè)定SCARA機(jī)器人的安全有效動作區(qū)域為:在Z軸-56mm~100mm之間,介于最大臂400mm與最小臂長130mm之間的環(huán)形區(qū)域,且機(jī)械臂末端不能運(yùn)動到其后方區(qū)域,公式如下:

在機(jī)械臂實際操作過程中,不管是何種因素引起,機(jī)械臂都不能超出以上范圍,否則立即停止機(jī)械臂。
為了利用自然手勢在較小且舒適的范圍內(nèi)控制機(jī)械臂在整個工作區(qū)域內(nèi)執(zhí)行任務(wù),還需要對手勢姿態(tài)進(jìn)行一定的放大處理。假設(shè)當(dāng)前掌心位置數(shù)據(jù)與上一時刻位置數(shù)據(jù)的差值為向量機(jī)器人末端的移動量為現(xiàn)引入:

其中T=[t1,t2,t3]為控制系數(shù),引入控制系數(shù)就可以實時調(diào)整在交互過程中手部運(yùn)動對機(jī)器人手臂運(yùn)動控制的靈敏度。最后通過調(diào)用機(jī)器人動態(tài)鏈接庫SpelNetLib70.dll中點到點運(yùn)動方式函數(shù)GO(x',y',z',u')控制機(jī)器人末端到達(dá)工作區(qū)域最終映射點,其中x,y,z為機(jī)器人末端位置點,u'為機(jī)器人末端的旋轉(zhuǎn)角度。通過坐標(biāo)映射、空間限定及動作放大等一系列過程,可以很好地實現(xiàn)手勢姿態(tài)對機(jī)器人位置和末端夾具控制的交互過程。
SCARA LS3-401x型機(jī)器人的主要工作任務(wù)是搬取零件并進(jìn)行裝配,因此本實驗采用手勢引導(dǎo)機(jī)器人完成指定軌跡的運(yùn)動和工件的抓取放置等操作,從而驗證手勢示教的精度與抓取成功率,測試精度控制在3mm以內(nèi)。
實驗首先在機(jī)器人坐標(biāo)系中規(guī)劃一塊邊長250mm正方形示教區(qū)域,如圖6所示。操作者使用手勢控制機(jī)器人從A點抓取工件沿正方形邊線依次到達(dá)B,C,D最后返回A點,并在每點上執(zhí)行一次抓取與放置動作,實驗操作如圖7所示,試驗中每到一個點時機(jī)器人末端的實際位置與對應(yīng)示教區(qū)域的輪廓點可能會存在一段距離從而產(chǎn)生誤差,通過求出這段距離大小來確定實驗誤差。

圖6 實驗軌跡

圖7 手勢示教過程

表2 誤差及抓取放置成功率
實驗選取了10位從未操作過機(jī)器人的操作手,經(jīng)過5分鐘的手勢操控訓(xùn)練后即開始進(jìn)行實驗。實驗過程中分別記錄每位操作者操控機(jī)械臂到達(dá)A、B、C、D點時實際點與示教輪廓點之間的距離大小誤差以及在正方向邊線上的最大偏移量,統(tǒng)計每點上的平均誤差及每點上末端夾具的成功執(zhí)行率,在示教每條軌跡邊上誤差不操過1.5mm時視為成功。同時記錄10位操作者在成功示教每條軌跡邊與末端夾具抓取、放置所用的平均時間。
實驗采集的數(shù)據(jù)如表2、表3所示。從表2中可知在四個點上最大平均誤差為1.45mm,小于試驗預(yù)設(shè)的目標(biāo)誤差值。在軌跡AB,CD,DA示教全部成功,在BC軌跡上失敗一次,整體魯棒性好。統(tǒng)計完成整個示教任務(wù)中所有實驗者所用時間平均值為72.38s,基本都能流暢的完成整個示教過程。

表3 示教軌跡成功率
研究中充分利用手勢能表達(dá)出豐富信息的特點,建立手勢交互模型,研究中定義了5種手勢語義,以控制機(jī)器人不同運(yùn)動方式,使用K臨近算法對手勢進(jìn)行分類,為了使控制更加靈活文中引入了控制系數(shù)對手部動作進(jìn)行放大處理,再映射到機(jī)器人的位置運(yùn)動上。最后通過實驗驗證了手勢控制機(jī)器人的可行性,完成了手掌與機(jī)器人非接觸式的實時交互方式,這種控制方式使得人機(jī)交互變得更加自然和友好。
[1]Torgny B. Present and future robot control development—An industrial perspective[J].Annual reviews in Control 2007(31):69-79.
[2]Guna J, Jakus J,Pogac nik M,et al. An analysis of the precision and reliability of the Leap Motion sensor and its suitability for static anddyna-mic tracking[J].Sensors 2014,14(2):3702-3720.
[3]Casiez G,Roussel N,and Vogel D.filter:a simple speed-based lowpass filter for noisy input in interactive systems[A].Proceedings of the 2012 ACM Annual Conference on Human Factors in Computing Systems[C].Austin,TX,USA,2012,2527-2530.
[4]徐一雄.基于自然交互的多旋翼無人飛行器手勢控制方法研究[D].廣州:華南理工大學(xué),2016.
[5]李皓,張明明,等.基于手勢識別的機(jī)器人控制系統(tǒng)[J].計算機(jī)系統(tǒng)應(yīng)用.2015,24(2):266-269.
[6]周慶平,譚長庚,王宏君,湛淼湘,等.基于聚類改進(jìn)的KNN文本分類算法[J].計算機(jī)應(yīng)用研究,2016,33(11):3374-3377.
[7]麥健樺.基于自然手勢的機(jī)器人控制[D].廣州:華南理工大學(xué),2013.
[8]張文志,李星.基于手勢識別的兩輪機(jī)器人控制系統(tǒng)設(shè)計[J].研究開發(fā),2012,50(570):27-29.
[9]倪自強(qiáng),王田苗,劉達(dá).基于視覺引導(dǎo)的工業(yè)機(jī)器人示教編程系統(tǒng)[J].北京航空航天大學(xué)學(xué)報,2016,42(3):562-568.