楊大勇
(淮北工業(yè)與藝術(shù)學(xué)校 教務(wù)處,安徽 淮北 235000)
基于Kinect控制的類人機(jī)器人的運(yùn)動(dòng)研究
楊大勇
(淮北工業(yè)與藝術(shù)學(xué)校 教務(wù)處,安徽 淮北 235000)
基于 Kinect 控制技術(shù)分析了類人機(jī)器人的運(yùn)動(dòng)狀況:整個(gè)過程包括硬件機(jī)器人運(yùn)動(dòng)分層控制平臺(tái)的搭建、基于分層控制理論下機(jī)器人運(yùn)動(dòng)建模、基于機(jī)器人運(yùn)動(dòng)研究的體感人機(jī)交互系統(tǒng)的設(shè)計(jì)。根據(jù)現(xiàn)已存在的仿真平臺(tái)驗(yàn)證了該理論的可行性。
類人機(jī)器人;機(jī)器人運(yùn)動(dòng)建模;分級(jí)控制;人機(jī)交互系統(tǒng)
仿人機(jī)器人一般指具有雙手、雙腿、雙足等人類特征可自由移動(dòng)的機(jī)器人,它集多種高尖端技能和前沿學(xué)科于一體,一定程度上表征一個(gè)國(guó)家的創(chuàng)新實(shí)力與科技水平。日本本田公司于1997 年 10 月推出了仿人形機(jī)器人 P3,美國(guó)麻省理工學(xué)院研制出仿人形機(jī)器人科戈(COG)。雖然目前仿人機(jī)器人可用于軍事、醫(yī)療、勘探等多個(gè)領(lǐng)域,但對(duì)仿人機(jī)器人的研究大多仍停留在實(shí)驗(yàn)室內(nèi),現(xiàn)在研發(fā)的仿人機(jī)器人對(duì)周設(shè)環(huán)境的感知與適應(yīng)等多種能力仍待提高。可見,仿人機(jī)器人發(fā)展前景十分廣闊。
本論文描述的機(jī)器人系統(tǒng)采用分級(jí)控制方式。下層運(yùn)動(dòng)控制采用實(shí)時(shí)性比較好的運(yùn)動(dòng)控制板控,以實(shí)時(shí)控制機(jī)器人的位置與速度,上層采用裝有操作系統(tǒng)的主控制板。上層主要負(fù)責(zé)圖像信息采集處理、路徑規(guī)劃以及信息集成等工作。機(jī)器人的硬件結(jié)構(gòu)如圖所示:
圖1 硬件架構(gòu)
(一)ZMP移動(dòng)軌跡設(shè)計(jì)
根據(jù)ZMP穩(wěn)定理論,當(dāng)零力矩點(diǎn)落在機(jī)器人腳掌范圍內(nèi),機(jī)器人可以較為穩(wěn)定地行走。因此最簡(jiǎn)單的思路就是直接設(shè)計(jì)ZMP在每個(gè)步行單元都處在支撐點(diǎn),即每個(gè)步行單元的原點(diǎn)位置,因此有
(1)
(2)
其中Zc是身體質(zhì)心與運(yùn)動(dòng)約束平面的截距。
其中該次運(yùn)動(dòng)的起點(diǎn)與終點(diǎn)一般情況下是較為確定的。這就為運(yùn)動(dòng)方程的得出提供了約束條件。
在步行單元[0,T]內(nèi),設(shè)身體的初始值為(x0,y0),終止值為(x1,y1),則可解得身體的運(yùn)動(dòng)軌跡如下:
(3)
圖2 質(zhì)心在x軸位置隨時(shí)間變化曲線
(4)
質(zhì)心在x軸位置隨時(shí)間變化曲線如圖2所示,而下一步身體的起始位置即為上一步行單元的終止位置,即
(5)
(二)雙腳的運(yùn)動(dòng)軌跡
上面討論了身體的運(yùn)動(dòng)軌跡,然后還要獲得腳的運(yùn)動(dòng)軌跡,才能通過逆運(yùn)動(dòng)學(xué)得到下肢關(guān)節(jié)的運(yùn)動(dòng)角度。對(duì)于一個(gè)步行單元[0,T],設(shè)在[0,t1],[T-t,1T]時(shí)間內(nèi)為雙腳支撐階段。
對(duì)于支撐腳,在[0,T]內(nèi)有:
(6)
由于在[0,t1],[T-t,1T]時(shí)間內(nèi)為雙腳支撐階段,故這段時(shí)間內(nèi)擺動(dòng)腿也是靜止的:
(7)
(8)
因此可以設(shè)計(jì)如下曲線:
(9)
計(jì)算該曲線在t=0,t=T時(shí)刻的位置,速度,加速度得:f(0)=ps,f(T)=pe,f′(0)=0,f′(T)=0,f″(0)=0,f″(T)=0符合要求。因此對(duì)于時(shí)間段[t1,T-t1],可以使用該曲線生成x,y兩個(gè)方向的運(yùn)動(dòng)曲線如下:
(10)
取S(n)=0.02,S(n-1)=-0.02,T=40,用MATLAB畫出雙足步行x方向運(yùn)動(dòng)仿真曲線如圖3所示:
圖3 雙足步行x方向運(yùn)動(dòng)仿真曲線
由圖3可以看出,該曲線隨時(shí)間的變化率和所期望的值是相同的。
對(duì)于擺動(dòng)腿在z軸方向上的運(yùn)動(dòng)軌跡,需要指定抬腳高度h,并將時(shí)間分為抬腳階段[t1,t1+(T-2t1)ρ]和落腳階段[t1+(T-2t1)ρ,T-t1],其中0<ρ<1。根據(jù)式(6-11)設(shè)計(jì)運(yùn)動(dòng)曲線如下:
(11)
取h=0.06,T=40,ρ=0.5,用MATLAB畫出抬腳運(yùn)動(dòng)仿真曲線如圖4所示:
圖4 抬腳運(yùn)動(dòng)仿真曲線
由圖4可以看出,該曲線隨時(shí)間的變化率和所期望的值是相同的。
這樣便得到了一個(gè)步行單元內(nèi)的雙腳軌跡,再結(jié)合身體軌跡,就可以由逆運(yùn)動(dòng)學(xué)計(jì)算出下肢每個(gè)關(guān)節(jié)的運(yùn)動(dòng)角度。
(一)系統(tǒng)結(jié)構(gòu)
本論文中研究的體感人機(jī)交互系統(tǒng)更主要包含三個(gè)部分,一開始的是基于Kinect的人體姿態(tài)采集部分,姿態(tài)采集部分將包含了人體骨骼點(diǎn)信息的數(shù)據(jù)發(fā)送到數(shù)據(jù)處理端;第二個(gè)部分,稱為姿態(tài)識(shí)別。在數(shù)據(jù)處理端進(jìn)行濾波,計(jì)算和姿態(tài)識(shí)別工作。第三部分,稱為動(dòng)作控制。經(jīng)過數(shù)據(jù)轉(zhuǎn)換處理,將姿態(tài)數(shù)據(jù)轉(zhuǎn)換成機(jī)器人控制數(shù)據(jù),然后將數(shù)據(jù)送到仿真平臺(tái)和機(jī)器人身上,整個(gè)系統(tǒng)結(jié)構(gòu)如圖5所示:
圖5 系統(tǒng)結(jié)構(gòu)注:motion capture:動(dòng)作捕捉;motion recognition:動(dòng)作識(shí)別;filter:過濾;calcuation of the joints angle and position:同時(shí)計(jì)算角度和位置;format transfer:格式轉(zhuǎn)換;simulation:仿真;Robot model:機(jī)器人模型;excution:執(zhí)行;humanoid robot:類人機(jī)器人
(二)姿態(tài)識(shí)別
1.粒子濾波器
微軟官方提供的Kinect SDK可以捕捉關(guān)節(jié)和他們的軌跡。官方的Kinect SDK提供和固定的并且黑箱式的姿態(tài)追蹤模式。本文論述平臺(tái)采用的追蹤模型采用了這個(gè)固定的追蹤模式。在這個(gè)模式下,Kinect會(huì)采集人類身體中的20個(gè)骨骼關(guān)節(jié)點(diǎn)。但是一個(gè)很重要的問題是,這些關(guān)節(jié)點(diǎn)由于圖像處理的誤差原因,他們并不是非常的穩(wěn)定,所以這些數(shù)據(jù)的變化并不是一個(gè)連續(xù)的,也不是一個(gè)精確的結(jié)果。他們會(huì)在正確結(jié)果的附近以一個(gè)類似高斯分布的方式出現(xiàn)。所以,考慮使用粒子濾波器來解決這個(gè)問題。
2.關(guān)節(jié)角計(jì)算和姿態(tài)識(shí)別
(1)上半身模型: 上身骨骼模型的關(guān)節(jié)角是一個(gè)用來可以正確描述示教者的運(yùn)動(dòng)姿態(tài)的非常重要的參數(shù)。根據(jù)基本的線性代數(shù)的知識(shí)和人體上身模型如圖6所示:
圖6 上半身模型
注:wrist and hand:手腕和手; elbow:肘部
我們能夠容易的計(jì)算出上半身的關(guān)節(jié)的角度,從而識(shí)別出上半身的姿態(tài)。
(2)下半身模型: 因?yàn)橐贿吥7氯祟悇?dòng)作的一邊來平衡機(jī)器人的下肢運(yùn)動(dòng)平衡是一個(gè)非常困難的工作。我們采用了有限自動(dòng)機(jī)(FSM)來實(shí)現(xiàn)一個(gè)類似于上半身模型的姿態(tài)識(shí)別算法。這個(gè)下半身算法如圖7。在下半身,關(guān)節(jié)的歷史姿態(tài)是另一個(gè)非常重要的參數(shù)。將這個(gè)參數(shù)和人體關(guān)節(jié)骨骼角度結(jié)合,能夠提供給我們足夠的信息來識(shí)別出不同的動(dòng)作。
根據(jù)關(guān)節(jié)角度信息和關(guān)節(jié)歷史姿態(tài)信息,通過狀態(tài)機(jī)的相關(guān)準(zhǔn)則我們可以正確的識(shí)別出人體姿態(tài)并計(jì)算出機(jī)器人控制數(shù)據(jù)。圖8描述了有限狀態(tài)機(jī)的流程和姿態(tài)識(shí)別過程。
圖7 下半身模型
(注:hip:臀部;ankle:踝關(guān)節(jié);knee:膝蓋;shoulder line in last frame:肩線最后一幀;left:左;center(centre):中心;right:右(僅作部分標(biāo)注))
圖8 下半身姿態(tài)識(shí)別的有限狀態(tài)機(jī)的結(jié)構(gòu)
(注:criterion:準(zhǔn)則,規(guī)律;squat:蹲坐)
目前機(jī)器人仿真軟件有很多,較為專業(yè)的有 robotworks、robotcad,還有就是各機(jī)器人廠家開發(fā)的專用仿真軟件,如 ABB 的 robotstudio,KUKA 的SimPro,MOTOMAN 的 motosim 等等。
考慮到本次模擬對(duì)仿真要求不高,擬采用 openGL 進(jìn)行三維仿真模擬。 OpenGL 是一個(gè)開放的三維圖形(二維亦可)軟件包,可跨平臺(tái)的編程接口規(guī)格的專業(yè)的圖形程序接口,是一個(gè)功能強(qiáng)大,調(diào)用方便的底層圖形庫(kù)。而且其可較為方便地移植于不同的平臺(tái)之間,提供了復(fù)雜三維物體、曲線、曲面等的繪制函數(shù)。顯然,這些功能足夠本平臺(tái)使用,具有較高可實(shí)施性。
本文通過對(duì)類人機(jī)器人的運(yùn)動(dòng)建模,從而達(dá)到研究基于Kinect 控制的類人機(jī)器人運(yùn)動(dòng)情況的目
的。從對(duì)人體數(shù)據(jù)采集、機(jī)器人架構(gòu)設(shè)計(jì)、運(yùn)動(dòng)學(xué)分析、步態(tài)規(guī)劃和穩(wěn)定性控制進(jìn)行了較為深入的研究,主要研究結(jié)果包括:
(一)通過對(duì)類人機(jī)器人的仿人程度進(jìn)行分析,針對(duì)機(jī)器人的功能需求,提出了分層模塊化的軟硬件設(shè)計(jì)思路。在軟件結(jié)構(gòu)上,由上至下將其分為上層機(jī)、下層機(jī),并著重搭建了下層機(jī)的動(dòng)作規(guī)劃層和穩(wěn)定控制層的軟件平臺(tái)和程序整體架構(gòu)。配合軟件結(jié)構(gòu)分層,將硬件結(jié)構(gòu)上劃分為圖像采集器,主控制板,運(yùn)動(dòng)控制板,以及其他機(jī)器人硬件。
(二)將圖像采集的數(shù)據(jù)進(jìn)行處理,并在此基礎(chǔ)上進(jìn)行了機(jī)器人的運(yùn)動(dòng)學(xué)建模。
(三)基于ZMP穩(wěn)定性理論,對(duì)機(jī)器人的步行進(jìn)行了離線的步態(tài)生成,著重分析了支撐腳切換瞬間的速度與加速度不連續(xù)的問題,并使用Matlab仿真驗(yàn)證了此算法的合理性。
(四)基于對(duì)類人機(jī)器人的運(yùn)動(dòng)研究,探討了相應(yīng)的體感人機(jī)交互系統(tǒng)設(shè)計(jì)。
本文針對(duì)進(jìn)一步提高類人機(jī)器人的仿真程度,提出了分層模塊化的軟硬件設(shè)計(jì)思路,并用現(xiàn)有平臺(tái)進(jìn)行仿真模擬,驗(yàn)證了該理論的科學(xué)性以及可行性。相信該仿真技術(shù)一定會(huì)走出實(shí)驗(yàn)室,必定有巨大的發(fā)展前景。
[1] 梶田秀司.仿人機(jī)器人[M].管貽生,譯.北京:清華大學(xué)出版社,2007:15-32.
[2] M·伍科布拉托維奇.步行機(jī)器人和動(dòng)力學(xué)假肢[M].北京:科學(xué)出版社,1983:11.
[3] Erica Naone.Microsoft Kinect:How the Device Can Respond to Your Voice and Gestures[J].Pioneering with Science and Technology,2011(4):82-83.
[4] 狄海進(jìn).基于三維視覺的手勢(shì)跟蹤及人機(jī)交互中的應(yīng)用[D].南京:南京大學(xué),2011.
[5] 余濤.Kinect應(yīng)用開發(fā)實(shí)戰(zhàn):用自然的方式與機(jī)器對(duì)話[M].北京:機(jī)械工業(yè)出版社,2012.
[6] 張利格,畢樹生,高金磊.仿人機(jī)器人復(fù)雜動(dòng)作設(shè)計(jì)中人體運(yùn)動(dòng)數(shù)據(jù)提取及分析方法[J].自動(dòng)化學(xué)報(bào),2010 (1):107-112.
[7] 毛勇,王家廞,賈培發(fā),等.雙足被動(dòng)步行研究綜述[J].機(jī)器人, 2007 (3): 274-280.
責(zé)任編輯:力 草
2017-05-26
楊大勇(1970—),男,安徽淮北人,助理講師,研究方向:多媒體技術(shù)應(yīng)用。
TP242.6
:A
:1671-8275(2017)05-0141-04