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