郭瑾,高偉,劉德山,徐本強(qiáng)
隨著虛擬現(xiàn)實(shí)技術(shù)和機(jī)器人技術(shù)的日益成熟,音視頻相結(jié)合的虛擬人模擬實(shí)現(xiàn)仿真機(jī)器人舞蹈動(dòng)畫作為一種嶄新的藝術(shù)形式受到越來越廣泛的關(guān)注,在包括計(jì)算機(jī)游戲在內(nèi)的各種娛樂應(yīng)用領(lǐng)域有著廣泛的應(yīng)用前景。虛擬人舞蹈借助計(jì)算機(jī)動(dòng)畫技術(shù),通過虛擬角色模型的表演,演繹了音樂與舞蹈的內(nèi)在聯(lián)系。
由于仿人機(jī)器人在運(yùn)動(dòng)過程中本身動(dòng)作的復(fù)雜性,以及各關(guān)節(jié)自由度的靈活性,仿人機(jī)器人高難度動(dòng)作的種種控制效果都不理想,因此研究其運(yùn)動(dòng)控制方法顯得特別重要。當(dāng)前對(duì)仿人機(jī)器人控制方法的研究主要集中在雙足運(yùn)動(dòng)與雙手協(xié)作兩個(gè)方面。雙足運(yùn)動(dòng)的常用控制方法是先進(jìn)行姿態(tài)規(guī)劃,再按穩(wěn)定性最大的要求進(jìn)行優(yōu)化,以求出最穩(wěn)定的步態(tài)[1-3];而雙手協(xié)作也需要先對(duì)雙手的運(yùn)動(dòng)路徑與姿態(tài)進(jìn)行規(guī)劃,然后考慮其他約束條件對(duì)其運(yùn)動(dòng)軌跡進(jìn)行優(yōu)化。由此可知,運(yùn)動(dòng)姿態(tài)與軌跡規(guī)劃對(duì)于仿人機(jī)器人雙足運(yùn)動(dòng)與雙手協(xié)作控制至關(guān)重要。為了獲得仿人機(jī)器人運(yùn)動(dòng)姿態(tài)預(yù)規(guī)劃所需要的數(shù)據(jù),一般是在某個(gè)表演者(真人)的主要關(guān)節(jié)上安裝特制的標(biāo)記點(diǎn),然后由該表演者做出各種所需的動(dòng)作,再采用動(dòng)作捕捉器快速和連續(xù)地記錄下這些標(biāo)記點(diǎn)的空間坐標(biāo),從而獲取人體的運(yùn)動(dòng)數(shù)據(jù)[4-5]。采用動(dòng)作捕捉器雖然能夠得到控制仿人機(jī)器人所需的運(yùn)動(dòng)數(shù)據(jù),但需要特定的場(chǎng)地和昂貴的動(dòng)作捕捉設(shè)備,阻礙了仿人機(jī)器人運(yùn)動(dòng)控制的研究;此外,仿人機(jī)器人的關(guān)節(jié)數(shù)量和安裝位置與真人也可能存在很大的差異,這就使得通過采集真人運(yùn)動(dòng)得到的關(guān)節(jié)運(yùn)動(dòng)數(shù)據(jù)與實(shí)際仿人機(jī)器人的關(guān)節(jié)運(yùn)動(dòng)數(shù)據(jù)可能存在較大的誤差。
機(jī)器人的動(dòng)作是表現(xiàn)在一定時(shí)間序列上的窒間位姿(位置和姿態(tài))的集合。機(jī)器人的動(dòng)作設(shè)計(jì)與實(shí)現(xiàn)是相當(dāng)復(fù)雜的過程,它具有很大的主觀性、模糊性,而且隨著關(guān)節(jié)和自由度的增多,關(guān)節(jié)之間的相互影響程度的增大,動(dòng)作設(shè)計(jì)和實(shí)現(xiàn)的工作量大大增加。
機(jī)器人的關(guān)節(jié)自由度數(shù)量和分布情況與機(jī)器人舞蹈動(dòng)作的性能有直接的關(guān)系,自由度的多少?zèng)Q定了機(jī)器人的潛在應(yīng)用能力。本文對(duì)機(jī)器人關(guān)節(jié)數(shù)量和分布與機(jī)器人的舞蹈動(dòng)作之間的關(guān)系作了詳細(xì)的分析。自由度設(shè)置過少,機(jī)器人的動(dòng)作不靈活甚至無法實(shí)現(xiàn)。要實(shí)現(xiàn)機(jī)器人的各種舞蹈動(dòng)作,關(guān)節(jié)自由度數(shù)目不能太少。但是基于能滿足基本動(dòng)作的情況下,盡量減少關(guān)節(jié)自由度,所以關(guān)節(jié)自由度也不能太多。
通過對(duì)NOBODY機(jī)器人視頻動(dòng)畫的分析,如圖1所示:

圖1 仿人機(jī)器人二維模型
結(jié)合考慮仿人機(jī)器人的本身結(jié)構(gòu)構(gòu)造情況。為了更好的利用虛擬人模擬實(shí)現(xiàn)仿人機(jī)器人的舞蹈動(dòng)畫,本文中采用三維虛擬人最小骨骼模型是由全身的所有關(guān)節(jié)和骨骼段組成。三維虛擬人骨架模型包括54個(gè)關(guān)節(jié)(包括一個(gè)重心位置)和53塊骨骼段,如圖2所示:

圖2 最小人體骨骼模型
每個(gè)部位體可以分別繞著各自的關(guān)節(jié)在不同的自由度方向上作旋轉(zhuǎn)運(yùn)動(dòng),產(chǎn)生虛擬人的運(yùn)動(dòng)。虛擬人模型的每個(gè)上肢有18個(gè)關(guān)節(jié)共32個(gè)自由度。其中肩關(guān)節(jié)有3個(gè)自由度,肘關(guān)節(jié)有2個(gè)自由度,腕關(guān)節(jié)有2個(gè)自由度,共7個(gè)自由度。為了表達(dá)復(fù)雜的舞蹈動(dòng)作,每個(gè)手指定義了3個(gè)關(guān)節(jié),其自由度分別是1,1,3,一共25個(gè)自由度[6-8]。
三維虛擬人最小骨骼模型不僅解決了仿人機(jī)器人的舞蹈動(dòng)作復(fù)雜性的問題,又保證了仿人機(jī)器人舞蹈動(dòng)作的完整性,從而基于三維虛擬人最小骨骼模型實(shí)現(xiàn)了仿人機(jī)器人的舞蹈動(dòng)畫。
為了更好的實(shí)現(xiàn)三維虛擬人仿真實(shí)現(xiàn)機(jī)器人舞蹈動(dòng)畫,本文特別設(shè)計(jì)了一個(gè)虛擬舞蹈動(dòng)作關(guān)鍵幀數(shù)據(jù)庫,存于專門的數(shù)組中。由于本論文中的舞蹈動(dòng)畫關(guān)鍵幀繁多,一一列出略顯繁雜,故而僅以一段舞蹈視頻中的關(guān)鍵幀為例,簡(jiǎn)單介紹一下本論文中的三維虛擬人舞蹈動(dòng)畫的虛擬數(shù)據(jù)庫表的設(shè)計(jì)思想。是以8個(gè)關(guān)鍵幀代表的虛擬數(shù)據(jù)庫表的簡(jiǎn)單舉例,如表1所示:

表1 三維虛擬人實(shí)現(xiàn)仿人機(jī)器人舞蹈動(dòng)畫的虛擬數(shù)據(jù)庫

本文中為了使關(guān)鍵手勢(shì)之間更好的過渡,而設(shè)計(jì)了過渡函數(shù)。
void Rotation::RMiddle(GLfloat array[])
{
for(int i=0;i { if(array[i]!=RMemberAngle[i]) { RFreeN[i]=array[i]-RMemberAngle[i]; if(RFreeN[i]>=0.0f &&RFreeN[i]<0.1f||RFreeN[i]<0.0f &&RFreeN[i]>-0.1f) { RMemberAngle[i]=array[i]; if(ifcontinue=1)rcontinuous=1; } RMemberAngle[i]+=RFreeN[i]/160.0f; } } } 在這個(gè)函數(shù)中array數(shù)組是新的關(guān)鍵舞蹈動(dòng)作數(shù)組中的數(shù)據(jù),MINSIZE是經(jīng)過宏定義的列坐標(biāo)的總數(shù),即各個(gè)關(guān)節(jié)需要控制的總數(shù)。RmemberAngle數(shù)組是用于記錄上一次變換后的數(shù)組,RfreeN數(shù)組負(fù)責(zé)記錄新數(shù)據(jù)和記憶數(shù)據(jù)之差,然后用這個(gè)差數(shù)據(jù)去除以一個(gè)特定的閾值,在本文設(shè)計(jì)中,定義該閾值為160.0f,該閾值的大小決定了舞蹈關(guān)鍵動(dòng)作之間過渡的速度,閾值越小速度越快,反之則越大。在過渡函數(shù)被調(diào)用的過程中,判斷新數(shù)組和記憶數(shù)組的差值是否已經(jīng)足夠小,如果足夠小,則直接將新數(shù)組中的數(shù)據(jù)賦值給記憶數(shù)組,以免產(chǎn)生無限循環(huán)的狀況。 三維虛擬人舞蹈動(dòng)作的平滑度直接影響到舞蹈運(yùn)動(dòng)的可懂性。虛擬人舞蹈動(dòng)作的特殊性在于它是有一些關(guān)鍵動(dòng)作合成的動(dòng)畫序列,相鄰的兩個(gè)舞蹈動(dòng)作之間存在著很大的動(dòng)作差異,如果不進(jìn)行平滑處理,將導(dǎo)致舞蹈動(dòng)作在相鄰關(guān)鍵動(dòng)作的銜接處產(chǎn)生大幅度變化,這樣將產(chǎn)生跳幀現(xiàn)象,給人失真的感覺。加入設(shè)計(jì)的過渡函數(shù)后,動(dòng)作平緩過渡,動(dòng)作銜接流暢,比較符合真實(shí)狀態(tài)下機(jī)器人的舞蹈動(dòng)畫。 NOBODY機(jī)器人舞蹈視頻的二維關(guān)鍵幀截圖,如圖3所示: 圖3 NOBODY機(jī)器人舞蹈二維關(guān)鍵幀截圖 三維虛擬人骨骼模型讀取表1虛擬數(shù)據(jù)庫的關(guān)鍵幀舞蹈動(dòng)作實(shí)現(xiàn)NOBODY機(jī)器人舞蹈動(dòng)畫的仿真結(jié)果,如圖4所示: 圖4 三維虛擬人實(shí)現(xiàn)機(jī)器人舞蹈動(dòng)畫的仿真結(jié)果 本文基于三維虛擬人的骨骼模型仿真實(shí)現(xiàn)了仿人機(jī)器人的舞蹈動(dòng)畫。論文中通過分析機(jī)器人舞蹈動(dòng)作運(yùn)動(dòng)的基本規(guī)律和實(shí)現(xiàn)動(dòng)作的基本方法,基于此建立了三維虛擬人實(shí)現(xiàn)機(jī)器人舞蹈動(dòng)作的關(guān)鍵幀數(shù)據(jù)庫,在此基礎(chǔ)上利用中間幀的過渡函數(shù)實(shí)現(xiàn)了虛擬人骨骼模型仿真實(shí)現(xiàn)了機(jī)器人的舞蹈動(dòng)畫。進(jìn)一步的工作將研究實(shí)現(xiàn)自動(dòng)提取二維視頻的關(guān)鍵幀算法以及二維關(guān)鍵幀轉(zhuǎn)換為三維關(guān)鍵幀的方法,這樣就可以實(shí)現(xiàn)二維視頻自動(dòng)驅(qū)動(dòng)三維虛擬人實(shí)現(xiàn)機(jī)器人的舞蹈動(dòng)畫。 [1]Kim J Y,Park I W.Walking control algorithm of biped humanoid robot on uneven and inclined floor[J].Journal of Intelligent &Robotic Systems,2007,48(4):457-484. [2]Harada K,Kajita S.Real-time planning of humanoid robot's gait for force-controlled manipulation[J].IEEE-ASME Transactions on Mechatronics,2007,12(1):53-62. [3]Yang H S,Yong-Ho Seo,Yeong-Nam Chae,et al .Design and development of biped humanoid robot,AM12,for social interaction with humans[C]// Proc of the 6th IEEE RAS International Conference on Humanoid Robots.Princeton:IEEE,2006:352-357. [4]Hirose M,Ogawa K.Honda humanoid robots development[J].Philosophical Transactions of the Royal Society A:Mathematical Physical and Engineering Sciences,2007,365(1850):ll-19. [5]Nakaoka S,Nakazawa A.Task model of lower body motion for a biped humanoid robot to imitate human dances[C]//Proc of 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.Edmonton:IEEE,2005:3157-3162 [6]Herda L,Fua P,Plaenkers R,et al.Using skeleton-based tracking to increase the reliability of optical motion capture[J].Human Movement Science Journal,2001,20(3):313-341. [7]Herda L,Fua P,Plaenkers R,et al.Skeleton-based motion capture for robust reconstruction of human motion[A].In:Proceedings of Computer Animation 2000,Philadelphia,Pennsylvania,2000,77-85. [8]Raunhardt,D.Boulic.R.Motion Constraint.The Visual Computer 2009(25):509-518.

4 結(jié)束語