吳旭琤
(上海飛機(jī)設(shè)計研究院四性與產(chǎn)品支援部,中國 上海 201210)
虛擬維修已經(jīng)成為維修性分析的有效手段,設(shè)計人員可以在虛擬環(huán)境中,對產(chǎn)品可視、可達(dá)、操作空間以及人體舒適度等進(jìn)行分析,從而在設(shè)計階段可以做出前瞻性的決策與優(yōu)化實施方案[1]。常用的虛擬維修工程仿真軟件有Delmia,Jack 等[2],雖然這些軟件很大程度上已經(jīng)能幫助研究人員進(jìn)行維修性分析,但在人體運動方面仍有不少問題有待改進(jìn)。
本文針對在虛擬人基坐標(biāo)發(fā)生變化時,關(guān)鍵幀插值出現(xiàn)失真現(xiàn)象,考慮基坐標(biāo)在真實運動中的變化情況,引入修正因子進(jìn)行修正,并通過仿真實例來驗證模型的有效性。
在虛擬維修仿真中,常采用逆運動學(xué)算法獲得關(guān)鍵幀,再通過關(guān)鍵幀插值獲得連續(xù)的動作。當(dāng)基坐標(biāo)發(fā)生變化時,一般的關(guān)鍵幀插值算法會分別對關(guān)節(jié)角和基坐標(biāo)進(jìn)行插值,兩者以相同速率變化,而這與實際情況不相符,以下蹲動作為例,會出現(xiàn)穿透障礙的失真現(xiàn)象,如Delmia 動作庫中的下蹲動作,雙腳在下蹲過程中穿過地面。此時,往往需要添加較多的關(guān)鍵幀或使用碰撞檢測功能來防止失真現(xiàn)象。但前者需要花費更多的人力時間,影響仿真工作的效率,而后者則會消耗更多的計算機(jī)資源,在復(fù)雜場景下可能會影響仿真的實時性。發(fā)生這一問題的原因是人在實際運動時,基坐標(biāo)并非勻速運動,因此,在插值時需要對基坐標(biāo)進(jìn)行一定的修正。
本文的虛擬人采用多剛體系統(tǒng)的骨骼模型,全身有34 個關(guān)節(jié)自由度,如圖1 所示。
對于逆運動學(xué)問題求解,是已知運動鏈的末端控制點的目標(biāo)姿態(tài),計算運動鏈各關(guān)節(jié)的關(guān)節(jié)角度[3]。利用Jacobian 矩陣可以建立兩者關(guān)系,即:
△x=J△q
其中,J 為Jacobian 矩陣,由運動鏈的幾何特征唯一確定。
而逆運動學(xué)問題的解通??梢员硎緸椋?/p>
△q=J+△x
其中,J+=JT(JJT)-1為Jacobian 矩陣的Moore-Penrose 廣義逆。
根據(jù)逆運動學(xué)算法迭代求解得到的虛擬人姿態(tài)進(jìn)行關(guān)鍵幀插值,關(guān)節(jié)角與末端控制點的關(guān)系為:
x=T(q)B
中,B 為基坐標(biāo),T(q)為基坐標(biāo)與末端控制點的坐標(biāo)變換矩陣。
取修正因子h=L-x,L 為環(huán)境限制邊界,無限制的自由度分量取Li=xi。以地面限制為例,假設(shè)地面坐標(biāo)為z,則:
L=[x1,x2,x3,x4,x5,x6]T
h=[0,0,z-x3,0,0,0]T
修正后的基坐標(biāo)B′=B+h。
修正后的末端控制點x′=T(q)B′
通過對基坐標(biāo)的修正,可以消除與限制邊界的干涉量,達(dá)到姿態(tài)修正的目的。
以虛擬人下蹲動作為例,使用逆運動學(xué)算法求出下蹲后的姿態(tài),使用帶基坐標(biāo)修正的關(guān)鍵幀插值算法獲得完整的下蹲動作,整個運動過程中虛擬人都沒有與地面發(fā)生干涉,如圖2 所示。
本文中所使用的仿真實例是在AMD A10-5750M(2.5GHz)CPU,內(nèi)存4GB 的PC 機(jī)上完成,平均姿態(tài)計算時間為0.068s,可以流暢地完成仿真,具有較好的實時性。
為了解決仿真中基坐標(biāo)發(fā)生變化時出現(xiàn)的失真現(xiàn)象,本文提出了一種引入修正因子的關(guān)鍵幀插值算法,對基坐標(biāo)進(jìn)行了修正,所獲得虛擬人仿真動作符合真實情況,同時,具有較好的實時性。
[1]劉佳,劉毅.虛擬維修技術(shù)發(fā)展綜述[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2009,21(11):1519-1534.
[2]郝建平,蔣科藝,王松山,等.虛擬維修仿真理論與技術(shù)[M].北京:國防工業(yè)出版社,2008.
[3]李石磊,梁加紅,李猛,等.基于姿態(tài)庫和PIK 算法的虛擬人全身姿態(tài)生成[J].系統(tǒng)仿真學(xué)報,2011,23(12):2693-2700.