摘要:Bezier曲線在各種CAD系統(tǒng)中,在大多數(shù)圖形系統(tǒng)中,在相關(guān)的繪圖和圖形軟件中都有廣泛的應(yīng)用。為了很好的模擬虛擬人在不平坦地面上的步行,該文利用Bezier曲線的良好特性來模擬虛擬人骨盆的運(yùn)動(dòng)。
關(guān)鍵詞:虛擬人步行;Bezier曲線;骨盆軌跡;非平坦地面
中圖分類號:P391文獻(xiàn)標(biāo)識(shí)碼:A文章編號:1009-3044(2008)34-1739-02
The Research of Virtual Human Walking on Uneven Terrain
ZHANG Han-hui
(Dept. of Computer Software and Theory, Software college, Xiamen University, Xiamen 361005, China)
Abstract: Bezier curve is widely used in such as kinds of CAD systems, graphic systems and graphic softwares. For simulating virtual human walking on uneven terrain, this paper use the great characteristic of Bezier curve to simulate the movement of virtual human's pelvis .
Key words: virtual human walking; Bezier curve; pelvis trajectory; uneven terrain
1 引言
采用逆運(yùn)動(dòng)學(xué)[1]方法來模擬虛擬人的步行運(yùn)動(dòng),首先需要確定下肢的根關(guān)節(jié)點(diǎn)即骨盆的位置。國外對步行運(yùn)動(dòng)中骨盆的運(yùn)動(dòng)軌跡已以進(jìn)行了許多研究。Girard[2]在弧形曲線間使用正弦曲線插補(bǔ)法, 用一條分段速度曲線來模擬人體在站立相時(shí)的骨盆運(yùn)動(dòng)軌跡。 Bruderlin和Calvert[3]使用一個(gè)簡單的動(dòng)力學(xué)模型和控制算法來模擬人體步行。他們假設(shè)在基于圓規(guī)步態(tài)的對稱步伐下,使用兩個(gè)自由度的可變長伸縮腿來計(jì)算骨盆軌跡。Griard和Bruderlin的方法可以很好地模擬人體正常步行步態(tài)下的骨盆運(yùn)動(dòng)。但是在模擬不平坦地形下人體的步行時(shí), 他們的方法就無法生成所需的骨盆運(yùn)動(dòng)軌跡。
Bezier曲線擁有很多更好,更方便地用于曲線和曲面設(shè)計(jì)的性質(zhì),并且也更容易實(shí)現(xiàn)。我們根據(jù)Bezier曲線的優(yōu)良性質(zhì), 用其來模擬骨盆運(yùn)動(dòng)軌跡, 不僅很好的實(shí)現(xiàn)了虛擬人在平地上的運(yùn)動(dòng), 同時(shí)也很好的實(shí)現(xiàn)了在不平坦地面上的步行。
2 Bezier曲線
Bezier曲線是法國工程師Pierre Bezier為雷諾公司設(shè)計(jì)汽車車身而開發(fā)的。Bezier方法將函數(shù)逼近同幾何表示結(jié)合起來,使得設(shè)計(jì)師在計(jì)算機(jī)上就象使用作圖工具一樣得心應(yīng)手。
Bezier曲線的公式如下[4]:
假設(shè)給出n+1個(gè)控制點(diǎn)位置:Pk=(Xk,Yk,Zk), 這里k可以取0到n。 這些坐標(biāo)點(diǎn)將混合產(chǎn)生下列位置向量P(u), 用來描述P0和Pn間逼近Bezier多項(xiàng)式函數(shù)的路徑:
■(1)
Bezier混合函數(shù)BEZk,n(u)是Bernstein多項(xiàng)式:
■ (2)
這里,參數(shù)C(n,k)是二項(xiàng)式系數(shù):
■ (3)
3 骨盆的運(yùn)動(dòng)分析
骨盆作為整個(gè)下肢運(yùn)動(dòng)的根關(guān)節(jié)點(diǎn), 其軌跡決定了人體步行運(yùn)動(dòng)的軌跡。同時(shí)我們需要找出骨盆的運(yùn)動(dòng)軌跡來實(shí)現(xiàn)逆運(yùn)動(dòng)學(xué)。然而找出骨盆運(yùn)動(dòng)對于虛擬人運(yùn)動(dòng)是一件很復(fù)雜的工作。
根據(jù)Saunder提出的理論[5-6], 在人體運(yùn)動(dòng)過程中,骨盆的運(yùn)動(dòng)主要有下面三個(gè)部分:
1) 骨盆旋轉(zhuǎn):骨盆繞其中心處的垂直軸線做小幅度旋轉(zhuǎn)運(yùn)動(dòng)(旋轉(zhuǎn)角度一般取±4度為宜),當(dāng)步幅增大時(shí),骨盆運(yùn)動(dòng)軌跡線的圓弧段將變得平坦(即半徑增大)。在腳跟觸地的瞬間,骨盆的旋轉(zhuǎn)角度達(dá)到最大,然后隨著腿的擺動(dòng)逐漸向另一個(gè)方向旋轉(zhuǎn)。
2) 骨盆傾斜:骨盆允許傾斜,則其軌跡線的圓弧段將變得比較平坦。事實(shí)上,此時(shí)位于擺動(dòng)腿一側(cè)的腰部位置低于支撐腿一側(cè)的腰部。這一動(dòng)作通常當(dāng)在雙腿支撐期結(jié)束,擺動(dòng)腿腳趾離地后立即發(fā)生。其直接后果是擺動(dòng)腿的膝蓋必須彎曲,否則,該腿將與地面相碰。當(dāng)擺動(dòng)腿經(jīng)過支撐腿時(shí),骨盆的傾斜角達(dá)到最大值。骨盆傾斜角平均為5度。
3) 骨盆側(cè)向的位移:這一模式是模擬行走過程中由于人體重心偏移而引起的骨盆左右移動(dòng), 移動(dòng)的幅度在4cm到5cm左右。兩條腿在步行過程中并不是處在兩個(gè)互相平行的平面內(nèi),在前進(jìn)過程中,擺動(dòng)腿會(huì)向內(nèi)傾斜,使兩腳間的距離減小,以減少骨盆側(cè)向位移的距離。
4 Bezier曲線在骨盆運(yùn)動(dòng)軌跡中的應(yīng)用
4.1 矢狀面骨盆運(yùn)動(dòng)軌跡分析
大量的人體步態(tài)觀察資料已經(jīng)顯示人體步行中骨盆運(yùn)動(dòng)軌跡的形狀類似于一條平滑正弦曲線[7]。
在矢狀面上(將3D曲線映射到Y(jié)Z平面上),骨盆在擺動(dòng)相的中間時(shí)刻(即mid-stance,MS)經(jīng)過垂直方向的最高點(diǎn),而在雙腿支撐期的中間時(shí)刻(MDS)經(jīng)過垂直方向的最低點(diǎn)。MDS的所處的時(shí)刻正好是兩個(gè)連續(xù)的MS時(shí)刻的中間點(diǎn),但是MDS的骨盆位置可以在兩個(gè)MS骨盆位置中間的任意位置,如圖1所示。
4.1.1 Bezier曲線的應(yīng)用
在我們的系統(tǒng)中,基于以下幾個(gè)方面的考慮,我們選擇Bezier曲線來模擬人體運(yùn)動(dòng)的骨盆軌跡:
1) Bezier曲線通過的兩個(gè)端點(diǎn)可以很好地表示骨盆正弦曲線的垂直方向上的最高點(diǎn)和最低點(diǎn)。
2) 由于骨盆的局部行為,在步態(tài)周期中骨盆變化的水平速率可以通過調(diào)整中間的控制點(diǎn)來模擬。
3) 可以通過調(diào)整一個(gè)或兩個(gè)控制點(diǎn)來輕松地改變Bezier曲線,而計(jì)算量也是合理的。
使用Bezier曲線來表示運(yùn)動(dòng)中骨盆運(yùn)動(dòng)曲線的幾何形狀,首先必須適當(dāng)?shù)胤胖每刂泣c(diǎn),由以上矢狀面上骨盆運(yùn)動(dòng)軌跡的分析,我們可以選取MS時(shí)刻骨盆的位置和MDS時(shí)刻骨盆的位置作為Bezier的兩個(gè)端點(diǎn)。
4.1.2 Bezier曲線控制點(diǎn)的選取算法
MS時(shí)刻骨盆的位置相對好確定,根據(jù)人體步行的速度及人體的身高及膝關(guān)節(jié)的彎曲度即可求出該時(shí)刻骨盆的位置。
對于MDS時(shí)刻骨盆的位置,由于它可以在兩個(gè)MS骨盆位置中間的任意位置,所以該時(shí)刻的每一個(gè)骨盆的可能的位置都可以定義一條骨盆運(yùn)動(dòng)曲線,所以給定在MDS時(shí)刻骨盆的位置,我們采用一種優(yōu)化方法,這種方法通過最小化支撐期支撐腿各關(guān)節(jié)的角加速度和,來衡量結(jié)果曲線[7]:
■ (4)
其中Wi是關(guān)節(jié)i的權(quán)重因子;fi(x)是在x時(shí)刻通過逆運(yùn)動(dòng)學(xué)計(jì)算得到的第i個(gè)關(guān)節(jié)角。
對于支撐腿來講,因?yàn)轷钻P(guān)節(jié)(末端效應(yīng)器)的軌跡是知道的,給出支撐期骨盆的軌跡,就可以應(yīng)用逆運(yùn)動(dòng)學(xué)來計(jì)算支撐期支撐腿的中間關(guān)節(jié)的角度。在目標(biāo)函數(shù)中,權(quán)重因子定義了一個(gè)給定關(guān)節(jié)的相對重要性和貢獻(xiàn)度。我們將規(guī)格化的各關(guān)節(jié)自由度參數(shù)作為目標(biāo)函數(shù)中默認(rèn)的權(quán)重因子。用戶可以任意地調(diào)整這些權(quán)重因子來生成不同的步態(tài)特征。
如圖1所示,MDS(pt2)時(shí)刻的骨盆位置是在兩個(gè)MS(pt1和pt3)時(shí)刻骨盆位置中間區(qū)域A的某個(gè)位置。 首先, 區(qū)域A被細(xì)分成一個(gè)5×5的網(wǎng)格。 每個(gè)單元格的中心位置通過我們的目標(biāo)函數(shù)來衡量,得到一個(gè)最優(yōu)結(jié)果。然后,最優(yōu)結(jié)果的網(wǎng)格再被細(xì)分成一個(gè)5×5網(wǎng)格。與前一步驟相同, 每一個(gè)新的細(xì)分網(wǎng)格的中心位置通過我們的目標(biāo)函數(shù)來衡量,得到一個(gè)最優(yōu)結(jié)果。我們選擇二級網(wǎng)格的最優(yōu)中心位置作為MDS時(shí)刻的骨盆的位置,并構(gòu)成逆運(yùn)動(dòng)學(xué)動(dòng)畫的骨盆曲線。 通過使用這種二級細(xì)分方法,區(qū)域A被細(xì)分成625個(gè)子區(qū)域。 因此,這個(gè)子區(qū)域中,只有少于1/12的子區(qū)域(由于不在關(guān)節(jié)鏈的工作空間內(nèi),其中的大多數(shù)可以在早期的衡量中排除)需要衡量以找到最好的曲線,而不是全部。
//兩級細(xì)分, 每一級細(xì)分成5×5網(wǎng)格
for(I = 1; i≤25; i++)
{
//建立骨盆曲線;
t = 0;
while(t≤1.0)
{
t = t +Δt;
//找出t時(shí)刻骨盆和腳跟的位置;
//應(yīng)用反向運(yùn)動(dòng)學(xué)得到中間關(guān)節(jié)角度;
score(i) = score(i) + 目標(biāo)函數(shù);
}
if(score(i) < min_score)
min_score = score(i);
}
return(i);
5 實(shí)驗(yàn)結(jié)果
應(yīng)用上述方法,我們在Microsoft VC++.NET 平臺(tái)下編寫了虛擬人步行中骨盆運(yùn)動(dòng)軌跡的實(shí)驗(yàn)程序,并通過了調(diào)試。如圖2 所示。
圖2中最上面的曲線是骨盆在豎直方向上的運(yùn)動(dòng)軌跡曲線(實(shí)際軌跡曲線上移),我們的下肢即沿著這條運(yùn)動(dòng)。從圖中可以看出,這種方法不僅可以很好的模擬平坦地面上虛擬人骨盆運(yùn)動(dòng)的軌跡,同時(shí)也能很好的模擬在非平坦地面(如圖所示的階梯)上骨盆運(yùn)動(dòng)的軌跡。
6 結(jié)論
在我們的系統(tǒng)中,主要是給出的是骨盆在豎直方向上的運(yùn)動(dòng),由此得到的曲線為矢狀面的運(yùn)動(dòng)軌跡。要真實(shí)的模擬骨盆的運(yùn)動(dòng),還需要進(jìn)一步研究水平面上的運(yùn)動(dòng)軌跡。通過向量組合兩條運(yùn)動(dòng)軌跡,得到的才是三維空間中骨盆的運(yùn)動(dòng)軌跡,這是我們下一步所要做的工作。(下轉(zhuǎn)第1751頁)
(上接第1740頁)
參考文獻(xiàn):
[1] Steketee S N,Badler N I.Parametric Keyframe Interpolation Incorporating Kinetic Adjustment and Phrasing Control[C].Proceedings of SIGGRAPH’85,1985:255-262.
[2] Girard M.Interactive Design of 3D Computer-Animated Legged Animal Motion[J].IEEE Computer Graphics and Applications,1987,7(6):39-51.
[3] Bruderlin A,Calvert T W.Goal-Directed Dynamic Animation of Human Walking[J].Computer Graphics,1989(23):233-242.
[4] Hearn D,Baker M P.Computer Graphics with OpenGL, Third Edition[M].Publlishing House of Electronics Industry,2005:355-362.
[5] Saunder J B,Inman V T,Eberhart H D.The major determinants in normal and pathological gait[J].J Bone Joint Surgery,1953(35):543-558.
[6] 喬立,蘇鴻根.基于分運(yùn)動(dòng)疊加的個(gè)性化虛擬人步行姿態(tài)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2004(1):126-129.
[7] Chung S K,Hahn J K.Animation of Human Walking in Virtual Environments[J].Computer Animation’,1999:4-15.