黃焱 陽濤 張志勇
【摘 要】為了滿足虛擬維修仿真真實(shí)性要求,對比了Delmia與Unity3D中的人體模型及運(yùn)動仿真方法,建立了兩個平臺上人體關(guān)節(jié)運(yùn)動之間的對應(yīng)關(guān)系,在Unity3D中完成滿足虛擬維修工程要求的虛擬人建模并運(yùn)用逆向運(yùn)動學(xué)方法實(shí)現(xiàn)虛擬人仿真運(yùn)動控制,為Unity3D中進(jìn)行虛擬維修仿真提供了方法。
【關(guān)鍵詞】虛擬維修;Unity3D;Delmia;虛擬人;運(yùn)動控制
中圖分類號: TP391 文獻(xiàn)標(biāo)識碼: A 文章編號: 2095-2457(2019)11-0050-002
DOI:10.19694/j.cnki.issn2095-2457.2019.11.023
【Abstract】To meet the requirement of virtual maintenance simulation authenticity, the human model and motion simulation methods in Delmia and Unity3D are compared, and the relationship between the human joint motion on the two platforms is established. The virtual human model meeting the engineering requirements of virtual maintenance is built and the motion control of virtual human simulation is actualized by using inverse kinematics in Unity3D. A method is provided to do the virtual maintenance simulation in Unity3D.
【Key words】Virtual maintenance; Unity3D; Delmia; Virtual human; Motion control
虛擬維修仿真作為實(shí)物驗(yàn)證方法外對產(chǎn)品維修性分析驗(yàn)證的有效手段,已經(jīng)成為產(chǎn)品研發(fā)前中期保證產(chǎn)品具有良好維修性的主要方法之一。設(shè)計人員可以在虛擬環(huán)境中,對產(chǎn)品可視性、可達(dá)性、操作空間以及人體舒適度等進(jìn)行分析[1],從而在不借助實(shí)物的情況下發(fā)現(xiàn)維修性問題,及時進(jìn)行優(yōu)化,避免在后期設(shè)計已較為固定,甚至有零部件已經(jīng)在制造的情況下再進(jìn)行設(shè)計更改,從而能大幅減少更改產(chǎn)生的費(fèi)用和時間影響。
由于虛擬維修仿真的分析重點(diǎn)在于維修時設(shè)備、工具對人的影響,對產(chǎn)品尺寸精度要求不高,而人的感觀的真實(shí)性卻對分析結(jié)果有很大影響,因此相較于傳統(tǒng)的工程軟件中的人機(jī)分析模塊(如Delmia中的Human Task Simulation模塊),使用Unity3D這樣一款融合了高優(yōu)化度渲染和高效物理引擎的層級式虛擬系統(tǒng)開發(fā)平臺進(jìn)行仿真[2],能使維修場景更為接近真實(shí),仿真結(jié)果可信度更高,同時Unity3D開放的開發(fā)環(huán)境,使仿真平臺功能的擴(kuò)展升級變得十分方便,例如可以結(jié)合KINECT實(shí)現(xiàn)低成本的實(shí)時運(yùn)動捕捉系統(tǒng)[3]。
1 虛擬人建模
在Delmia中,虛擬人采用線框作為骨架,曲面造型形成人體,同時設(shè)有49個關(guān)節(jié)和83個自由度來驅(qū)動骨架進(jìn)而驅(qū)動虛擬人體。每個自由度根據(jù)人體極限設(shè)定了運(yùn)動范圍,使虛擬人的動作符合真實(shí)情況,如圖1所示。
Unity3D則可以導(dǎo)入其它建模軟件創(chuàng)建的虛擬人模型,在模型的逼真程度上相較Delmia更高。在導(dǎo)入設(shè)置中,將人物模型的Rig選項(xiàng)中的Animation Type選擇Humanoid,系統(tǒng)即會根據(jù)模型的骨骼結(jié)構(gòu)自動進(jìn)行綁定。Unity3D中,人物骨骼模型包含15個必選綁定點(diǎn)和39個可選綁定點(diǎn),如圖2所示,綁定后,在Muscles&Settings選項(xiàng)中出現(xiàn)對應(yīng)的關(guān)節(jié)自由度的運(yùn)動范圍設(shè)置。由于Unity3D中的關(guān)節(jié)自由度的運(yùn)動范圍與實(shí)際人體運(yùn)動極限范圍并不一致,需要進(jìn)行重新設(shè)置,Unity3D中對應(yīng)Delmia中關(guān)節(jié)運(yùn)動范圍如表1所示(不包含手指關(guān)節(jié))。
對關(guān)節(jié)運(yùn)動范圍進(jìn)行修改后,能使虛擬人的關(guān)節(jié)運(yùn)動范圍與Delmia中保持一致,從而使創(chuàng)建的姿態(tài)符合真實(shí)人可以達(dá)到的情況,滿足工程仿真分析的應(yīng)用要求,保證了后續(xù)運(yùn)動仿真的真實(shí)性。
2 基于逆向運(yùn)動學(xué)的虛擬人姿態(tài)控制
在創(chuàng)建虛擬人姿態(tài)時,可以通過正向和逆向運(yùn)動學(xué)來控制虛擬人的姿態(tài)。在實(shí)際工程應(yīng)用時,由于已知條件往往是虛擬人四肢的目標(biāo)位置,因此多采用逆向運(yùn)動學(xué)方法來對虛擬人姿態(tài)進(jìn)行控制。
在Unity3D中,可以通過OnAnimatorIK方法來使用逆向運(yùn)動學(xué)實(shí)現(xiàn)對虛擬人的實(shí)時控制。在OnAnimatorIK方法中,需要設(shè)定末端控制點(diǎn)(雙手、雙腳)的位置移動權(quán)重和目標(biāo)物體。運(yùn)行時,Animator組件會調(diào)用這個方法使虛擬人的末端控制點(diǎn)移動至目標(biāo)物體的位置,如圖3a所示,白色球?yàn)槟繕?biāo)物體。此外,由于逆向運(yùn)動學(xué)算法求解虛擬人姿態(tài)是一個多解問題,即同一個末端控制點(diǎn)(如手)的位置,存在多個可能的姿態(tài)(如手肘仍可以移動)。此時可以使用Unity3d提供的SetIKHintPosition方法,進(jìn)一步來進(jìn)行調(diào)節(jié),得到需要的虛擬人姿態(tài),如圖3b所示,深色球?yàn)镠int物體。部分代碼如下所示:
3 總結(jié)
本文提出了基于Unity3d的虛擬維修人體建模和運(yùn)動仿真方法,通過比對Delmia中的關(guān)節(jié)運(yùn)動范圍,在Unity3d中建立滿足工程應(yīng)用需求的虛擬人模型,然后使用逆向運(yùn)動學(xué)方法,實(shí)現(xiàn)對虛擬人的姿態(tài)控制,從而為在Unity3d環(huán)境下進(jìn)行虛擬維修仿真建立基礎(chǔ),使仿真的真實(shí)性得到提高。
【參考文獻(xiàn)】
[1]劉佳,劉毅.虛擬維修技術(shù)發(fā)展綜述[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報.2009,21(11):1519-1534.
[2]楊壹斌,李敏,解鴻文.基于Unity3D的桌面式虛擬維修訓(xùn)練系統(tǒng)[J].計算機(jī)應(yīng)用,2016,36(S2):125-128.
[3]趙洪利,胡周兵.基于UNITY交互式虛擬維修仿真系統(tǒng)的研究[J].機(jī)械工程與自動化,2016(02):88-90.作者簡介:吳旭琤(1987—),男,碩士,主要研究方向?yàn)轱w機(jī)維修性工程。