朱奇光,董惠茹,張孟穎
(燕山大學 信息科學與工程學院,河北 秦皇島 066004)
隨著類人機器人研究的深入以及模仿學習的不斷進步,類人機器人動作模仿相似性問題已經(jīng)成為了機器人領域的研究熱點[1]。一臺機器人的模仿學習程度是機器人智能化程度的重要體現(xiàn)。模仿學習在機器人仿生學中也有著舉足輕重的地位[2]?;谀7聦W習的類人體感機器人動作模仿的順利實現(xiàn)對于機器人自主獲取經(jīng)驗、機器人運動行為的發(fā)展、提高工業(yè)生產(chǎn)效率以及一些特殊任務的完成有著重要的意義。傳統(tǒng)的基于視覺的示教者動作識別方法受光照影響較為嚴重,可穿戴動作捕捉設備識別精度較高但價格高昂,以上問題使得3D Kinect相機從一眾動作識別設備中脫穎而出,同時Kinect 2.0設備的推出也使得關節(jié)坐標的定位更加穩(wěn)定[3~6]。Elbasiony R等[7]提出使用高斯過程潛變量模型提取相關特征并通過變分異方差高斯過程回歸算法將這些相關特征用于訓練回歸模型,提高了動作模仿的流暢度,但忽略了類人機器人手部動作模仿的準確性問題。Chen J X等[8]通過角度關節(jié)控制方案對人形機器人的下半身進行控制,并通過增益因子彌補機器人運動與人體運動之間的差異,可以控制機器人完成一些復雜的下半身控制,但未對類人機器人的上半身動作模仿進行研究。于建均等[9]利用質心-角度雅克比矩陣進行角度補償以實現(xiàn)機器人的平衡性控制,并且引入了權值可調(diào)的二次規(guī)劃進行優(yōu)化處理保證了動作模仿的相似性,但此方法只適用于低速運動的情況。Wen S H等[10]采用經(jīng)典的D-H模型對NAO機器人的正向運動學問題進行了推導,但考慮到的情況還不夠完備。Li S Y等[11]使用Kinect對示教者上肢運動進行動態(tài)跟蹤,然后通過Savitzky-Golay濾波器,高斯濾波器及卡爾曼濾波器對其進行濾波,但是減弱了整體的實時性能。張陽陽等[12]設計出一種以萊卡織物表面旋涂石墨烯/聚苯胺復合導電材料,有機硅導電銀膠作為電極的全柔性織物可拉伸傳感器,并利用該傳感器設計出一種主從手手勢映射系統(tǒng)提升了手勢映射的精準度,但是價格較為昂貴。Hang C C等[13]提出了一種改進的DTW算法解決了手勢序列未與候選序列端點對齊的問題,并引入提前終止匹配策略來減少不必要的計算量,但是降低了整體的魯棒性。上述文獻中的類人機器人動作模仿方法與手勢識別算法未能做到較好的相互融合,對于類人機器人動作模仿來說手部動作模仿的加入,可以使其更好的完成一些抓取任務,也可以使機器人應用于更多特定的場合,例如毒氣救援、醫(yī)療任務、娛樂場所等[14~17]。
本文將NAO機器人作為實驗平臺對類人機器人上半身(包括手部)的動作模仿問題進行了研究,對于手臂模仿部分采用改進的D-H模型進行兩只手臂的運動學模型創(chuàng)建,有效地解決了傳統(tǒng)模型創(chuàng)建中當相鄰連桿平行或接近平行時出現(xiàn)的奇異性問題。對于手部模仿部分提出的改進重心距離法提高了手勢識別的識別率的同時有效改善了手勢識別準確率,提升了模仿的相似度。
NAO機器人擁有2只自由度為5的手臂,對于手臂部分的模仿是動作模仿問題的關鍵,本文采用D-H模型的改進模型MD-H模型對類人機器人NAO的雙臂進行運動學求解,并通過齊次坐標變換矩陣來執(zhí)行相鄰幀之間的轉換。經(jīng)典D-H模型利用4個基本參數(shù)對相鄰關節(jié)的位置關系進行描述,但當相鄰連桿平行時,所創(chuàng)建的關節(jié)坐標系具有不確定性,求得的旋轉矩陣為奇異矩陣,從而引起運動學參數(shù)的突變和不連續(xù)。MD-H模型則包含5個基本參數(shù),在D-H模型4個參數(shù)基礎上引入了一個繞Y軸的旋轉角度βi,以保證運動學參數(shù)的連續(xù)性。MD-H模型的坐標系齊次變換矩陣如式(1)所示:
(1)
式中:ai為兩關節(jié)之間的連桿長度;αi為連桿扭角;di為連桿位移;關節(jié)角θi為繞zi-1軸轉動使xi-1軸與xi軸重合轉過的角度;βi為繞yi軸正向轉動使zi軸與zi+1軸重合所轉過的角度;連桿編號為i=1,2,…,5。
首先根據(jù)MD-H模型的坐標系創(chuàng)建規(guī)則,對類人機器人NAO的右手臂從肩部關節(jié)到腕部關節(jié)創(chuàng)建了相應的關節(jié)坐標系,如圖1所示。表1則列出了相應的5條工作鏈的MD-H模型連桿參數(shù),表中,“×”表示按照MD-H模型的建模規(guī)則βi不存在。
表1 MD-H模型連桿參數(shù)Tab.1 Comparison of trajectory error at four algorithms
圖1 NAO機器人手臂連桿坐標系Fig.1 NAO robot arm link coordinate system
類人機器人NAO的末端執(zhí)行器的位姿由肩關節(jié)、肘關節(jié)、腕關節(jié)間的齊次變換矩陣疊加而成,如式(2)所示。
(2)
式中:n(nx,ny,nz)、o(ox,oy,oz)、a(ax,ay,az)為手臂末端執(zhí)行器相對于基礎坐標系的位姿向量;p(px,py,pz)代表手臂末端執(zhí)行器的位置向量。
將表1給出的MD-H模型連桿參數(shù)代入式(2),求得NAO機器人手臂末端執(zhí)行器的位置方程,如式(3)~式(6)所示。
(3)
(4)
(5)
(6)
式中:L0=0.015 m;L1=0.105 m;L2=0.055 95 m;S1= sinθ1;C1=cosθ1;S3= sinθ3;C3=cosθ3;S4=sinθ4;C4=cosθ4;S5= sinθ5;C5=cosθ5;S(1+2)= sin (θ1+θ2);C(1+2)=cos (θ1+θ2)。
逆運動學問題是根據(jù)已給定的滿足工作要求的末端執(zhí)行器相對參考坐標系的位置和姿態(tài),即給出n(nx,ny,nz)、o(ox,oy,oz)、a(ax,ay,az)以及p(px,py,pz)的情況下,求解各個關節(jié)的運動參數(shù)。求解逆運動學的方法具有多樣性,本文采用逆推法進行了求解,解法如下:
聯(lián)立
可分別求出θ3、θ4的值,結果如式(7)、(8)所示。
(7)
(8)
將式(7)和式(8)結果代入式(5)中關于az的等式az=S3C4S5-C3C5中,令u=S3C4、v=-C3,求得θ5的值:
(9)
(10)
將求得的θ3、θ4、θ5的值代入式(4)中關于ox、oy的等式中,即可求得θ1與θ2的值,結果不唯一,通過NAO機器人手臂關節(jié)的旋轉角度范圍進行篩選并取值,NAO機器人右臂各關節(jié)旋轉角度范圍如表2所示。
表2 NAO機器人右臂各關節(jié)旋轉角度范圍Tab.2 Rotation angle range of right arm joints of NAO
對于人類來說,手部具有較高的自由度,是人體中最靈活的部位。但NAO機器人的2只手分別只有一個自由度對其張開和閉合進行控制,所以并沒有完成類似人類手部動作的能力。雖然NAO機器人只能完成部分抓取與釋放動作,但對于示教者手部動作模仿問題的研究,不僅可以增強類人機器人動作模仿的相似性,同時可以使機器人完成更多遠程抓取性質的任務。
本文借助Kinect 2.0傳感器提出了一種基于指尖識別的手部動作判定方法,這種方法在對抓取手勢進行判定的同時還可對另外4種數(shù)字手勢進行識別。利用深度圖像進行手部信息的提取較傳統(tǒng)的利用彩色圖像進行手部姿態(tài)識別的方法具有一定優(yōu)勢。深度圖像采用紅外傳感器進行獲取不受光照的影響,只要將示教者的手部置于Kinect的有效識別范圍就可以較好的識別出手部輪廓圖。對于Kinect 2.0不同距離下的手勢識別率對比結果如表3所示(以張開手勢為例)。
表3 不同距離的識別率對比Tab.3 Recognition rate comparison for different distances
Kinect 2.0的骨骼追蹤技術可同時獲取人體骨架中25個關節(jié)點的空間位置信息,其中Hand_Left、Hand_Right分別代表左手和右手。要進行手部輪廓的獲取,首先在代表手部點的周圍劃定一定區(qū)域來實現(xiàn)手部大致范圍的確定。經(jīng)多次實驗驗證,劃定80×80像素大小的正方形區(qū)域可完全包括示教者的手部范圍,如圖2(a)所示。然后,采用閾值分割法進行手部輪廓進行大致確定。通過將獲取到的鏈表中每一個手部點與預先設定的閾值進行比較,從而實現(xiàn)對于手部深度圖像的分割。在手部輪廓形狀的大致范圍確定后,通過腐蝕、膨脹等一系列操作,對手部輪廓周圍的噪聲點進行削弱。最終,獲取到示教者的右手手部輪廓圖,如圖2(b)所示。
圖2 手部區(qū)域和首部輪廓圖Fig.2 Hand area delineation and hand outline
首先,遍歷手部輪廓圖中所有的邊緣點,計算邊緣點到掌心點的距離,將其中的極大值點作為指尖選取的候選點。為消除手腕的干擾,對重心距離法做如下改進:對于抓取手勢的判定來說,Kinect 2.0傳感器的骨架追蹤功能可以識別出示教者拇指關節(jié),Thumb_Right(Thumb_Left)代表右手(左手)拇指關節(jié)。判斷候選點中是否存在與拇指關節(jié)坐標點相對重合的候選點,如果存在則將該手勢判定為張開手勢,否則判定為閉合手勢;對于數(shù)字手勢的識別,首先計算掌心與指尖候選點之間的距離,只有當掌心點與候選點之間的距離大于求得的距離中最大距離的0.6倍時才將其判定為有效的指尖點。最后,通過判斷有效指尖的個數(shù)完成對于數(shù)字手勢的識別。抓取動作判定如圖3所示,數(shù)字手勢識別如圖4所示,表4為本文算法的識別率與其他算法的識別率對比。
圖3 張開閉合手勢判定示意圖Fig.3 Schematic diagram of opening and closing gesture
圖4 數(shù)字手勢識別示意圖Fig.4 Schematic diagram of digital gesture recognition
表4 不同算法識別率對比表Tab.4 Table of comparison of recognition rates of different algorithms (%)
本文將類人機器人NAO作為實驗平臺,它是一個擁有很強自主性的仿人機器人,用戶可根據(jù)自己的需求來設置其行為,同時它也是世界上應用最廣泛的人形機器人之一。NAO機器人上肢動作模仿實驗如圖5所示,圖5中顯示了機器人對于示教者上肢的一些基礎性動作的模仿。示教者控制機器人的左、右手進行張開閉合的實驗如圖6所示。抓取任務實驗如圖7所示,實驗過程為NAO機器人受控跟隨示教者的動作成功將垃圾從紙箱上拾起丟入垃圾桶中,該實驗還可進行延伸,例如應用于一些生產(chǎn)線上的重復性任務。圖5、圖6、圖7所示的實驗過程靈活穩(wěn)定,證明了提出算法的可行性和有效性。通過實驗可以看出,對于手臂運動學建模采用的MD-H模型,可以在相鄰關節(jié)平行時順利進行坐標系的創(chuàng)建,避免了奇異性問題的發(fā)生。其次,從抓取實驗可以看出手勢判定算法也具有較高的準確性。
圖5 上肢動作模仿實驗Fig.5 Upper limb movement imitation experiments
圖6 手勢識別實驗Fig.6 Gesture recognition experiment
圖7 抓取實驗Fig.7 Grabbing experiment
本文將改進的D-H模型應用于機器人NAO的手臂運動學建模,并完成了正運動學及逆運動學的推導,該方法不僅提高了類人機器人動作模仿的相似性,同時解決了類人機器人相鄰連桿平行時出現(xiàn)的奇異性問題。其次,提出了改進的重心距離算法,提高了手勢識別準確率,使得NAO機器人可以更好地模仿示教者的手部姿態(tài)。最后,進行了完成率和相似性實驗,驗證了所提出方法的有效性。