吳旭琤
【摘 要】為了提高虛擬維修仿真真實性及仿真功能的可擴展性,采用Unity3d作為仿真系統(tǒng)開發(fā)平臺,搭建虛擬維修場景,使用Humanoid Avatar系統(tǒng)進行虛擬人運動控制,使用物理引擎實現(xiàn)物體間的碰撞檢測,開發(fā)了可用于維修可達性、操作空間、舒適性分析的虛擬維修仿真系統(tǒng)。
【關(guān)鍵詞】虛擬維修;Unity3D;運動控制;維修性分析
中圖分類號: TP391 文獻標(biāo)識碼: A 文章編號: 2095-2457(2019)17-0029-001
DOI:10.19694/j.cnki.issn2095-2457.2019.17.012
Research of Virtual Maintenance Simulation System Based on Unity3D
WU Xu-cheng
(Shanghai Aircraft Design and Research Institute, Shanghai 201210,China)
【Abstract】To improve the authenticity of virtual maintenance simulation and the scalability of the simulation function, Unity3d is used as the simulation system development platform to build the virtual maintenance scene. The Humanoid Avatar system is used for virtual human motion control, and the physics engine is used to realize collision detection between objects. A virtual maintenance simulation system is developed that can be used to analyze accessibility, operating space, and comfort.
【Key words】Virtual maintenance; Unity3D; Motion control; Maintainability analysis
虛擬現(xiàn)實技術(shù)使設(shè)計人員可以在虛擬環(huán)境中,對產(chǎn)品可視性、可達性、操作空間以及人體舒適度等進行分析[1],可以在沒有實物樣機的情況對產(chǎn)品維修性進行分析驗證,是產(chǎn)品設(shè)計過程中確保問題能早期發(fā)現(xiàn)早期解決的有效方法,從而減少設(shè)計問題導(dǎo)致的設(shè)計返工和零部件報廢,減少研發(fā)時間和降低研發(fā)成本。
Unity3D作為一款融合了高優(yōu)化度渲染和高效物理引擎的層級式虛擬系統(tǒng)開發(fā)平臺,非常適合用來搭建虛擬維修仿真系統(tǒng)來對產(chǎn)品進行維修性仿真分析,由于其開放的開發(fā)環(huán)境,既可以搭建簡單實用的桌面級仿真系統(tǒng),又可以引入動捕數(shù)據(jù)衣、頭盔顯示器等輸入輸出設(shè)備,提高仿真的交互性和沉浸感[2-3]。
1 虛擬場景搭建
虛擬維修仿真中,虛擬場景一般包括仿真分析對象、維修工具、輔助場景。仿真分析對象即是維修的產(chǎn)品的數(shù)字樣機,通常采用工業(yè)建模軟件建模,不能直接導(dǎo)入Unity3D使用,需轉(zhuǎn)換為3D通用格式(如fbx、obj文件)再進行導(dǎo)入。為了之后仿真分析,對于仿真對象需要添加Collider碰撞體和Rigid Body剛體組件,根據(jù)物體形狀可選擇Box Collider、Sphere Collider、Mesh Collider。輔助場景是為了提升仿真沉浸感而添加的周圍環(huán)境,輔助環(huán)境和維修工具可采用3D動畫軟件(如3d Max、Maya、Blender等)進行建模,Unity3D支持這些軟件輸出格式的直接導(dǎo)入。
2 虛擬人建模與運動控制
虛擬人是維修仿真的運動主體,為了保證仿真真實性,建模時需要保證人體尺寸符合標(biāo)準(zhǔn),導(dǎo)入Unity3d后,使用Humanoid Avatar系統(tǒng)對人物Avatar骨骼進行綁定。同時,需要為人體模型添加Collider碰撞體組件,以供后續(xù)仿真使用。如果采用桌面式仿真平臺,需要對人物骨骼關(guān)節(jié)的運動范圍進行重新定義來對應(yīng)人體的運動極限。運動控制主要采用逆向運動學(xué)原理,使用OnAnimatorIK方法通過對人物的主要關(guān)節(jié)位置(如手掌、足心、髖關(guān)節(jié))的調(diào)整來改變?nèi)宋镒藙?,再使用SetIKHintPosition方法可以在末節(jié)點固定的情況下進一步調(diào)節(jié)姿勢。部分末端關(guān)節(jié)(如頭部、手指)則采用正向運動進行調(diào)整。
如果采用動作捕捉設(shè)備,則需要將動捕設(shè)備的跟蹤點與人物骨骼關(guān)節(jié)點進行綁定,并進行校準(zhǔn)。運動控制完全依靠動作捕捉輸入設(shè)備來驅(qū)動虛擬人,動捕設(shè)備跟蹤點的數(shù)量和跟蹤設(shè)備的精度決定了虛擬人動作的精細(xì)程度。
3 維修性分析系統(tǒng)搭建
虛擬維修仿真主要是對產(chǎn)品維修時的可達性、操作空間、舒適性進行分析。其中,可達性和操作空間分析,主要依靠人體與產(chǎn)品、工具與產(chǎn)品之間的碰撞檢測,來限制虛擬人的運動,檢查受到限制后的虛擬人能否完成維修工作。在Unity3d中,擁有Collider碰撞體和Rigid Body剛體組件的物體可以使用Collider.OnCollisionEnter(Collision)方法檢測物體是否發(fā)生碰撞,同時,可以通過Collision.contacts獲取碰撞點的位置進行提示。舒適性是通過計算每個關(guān)節(jié)角度相對于舒展位置的偏離量來進行分析評估的,在Unity3d中,使用HumanPose.muscles獲得所有定義關(guān)節(jié)的角度值,計算該值在Avatar的關(guān)節(jié)運動范圍所在的比例位置,得到該關(guān)節(jié)的舒適度評價。
上述系統(tǒng)搭建完成后,即可通過控制虛擬人的運動,對產(chǎn)品維修拆裝過程進行仿真,根據(jù)仿真中虛擬人的動作姿態(tài),得到維修性分析結(jié)果,仿真效果如圖1所示。
4 總結(jié)
本文搭建了基于Unity3d的虛擬維修仿真系統(tǒng),使用Humanoid Avatar系統(tǒng)進行虛擬人運動控制,使用物理引擎實現(xiàn)物體間的碰撞檢測,通過仿真完成了維修可達性、操作空間、舒適性的分析,為在Unity3d環(huán)境下進行虛擬維修仿真建立基礎(chǔ)。
【參考文獻】
[1]劉佳,劉毅.虛擬維修技術(shù)發(fā)展綜述[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報.2009,21(11):1519-1534
[2]楊壹斌,李敏,解鴻文.基于Unity3D的桌面式虛擬維修訓(xùn)練系統(tǒng)[J].計算機應(yīng)用,2016,36(S2):125-128
[3]吳予忠,張渝舜,趙新宇,等.基于Unity3D的航空發(fā)動機虛擬維修仿真系統(tǒng)的開發(fā)[J].科技創(chuàng)新導(dǎo)報,2018,(10):15-16.