




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于physx的太空操作碰撞檢測仿真
0重、輕、刑的虛擬訓(xùn)練系統(tǒng)為了完成各種在太空中的航空航天任務(wù),工程師們需要在地面上進(jìn)行各種手段的模擬訓(xùn)練。傳統(tǒng)的訓(xùn)練技術(shù)存在:開發(fā)周長、投資大、有效培訓(xùn)時間短等。虛擬現(xiàn)實技術(shù)具有數(shù)字化程度高、可復(fù)用度高、開發(fā)周期短、資金投入小等特點,已被應(yīng)用于載人航天任務(wù)的模擬演練中。但是簡單地只依靠圖像渲染的虛擬現(xiàn)實訓(xùn)練系統(tǒng)缺少物理特征,即失重狀態(tài)下人體、物體的動力學(xué)特征和邊界特征。國外主流的航天員運動分析軟件大都是離線的,或是運動學(xué)的。文獻(xiàn)利用動力學(xué)的相關(guān)理論分析失重狀態(tài)下人體模型并編寫軟件,但都不是實時的應(yīng)用系統(tǒng)。鑒于物理引擎豐富的功能、碰撞空間上的算法優(yōu)勢和實時性,本文使用PhysX物理引擎技術(shù)建立航天員虛擬現(xiàn)實訓(xùn)練系統(tǒng)。本文介紹了物理引擎的基本情況,主體闡述了物理引擎在虛擬訓(xùn)練系統(tǒng)中的應(yīng)用。最后,對所建立的模型及方法進(jìn)行了仿真驗證。1物理引擎和熱物理引擎是一個仿真物理系統(tǒng)的軟件。早在1987年ACMSIGGRAPH會議上,AlanH.Barr就組織了“TopicsinPhysically-BasedModeling”的議題。物理引擎是面向游戲引擎而發(fā)展起來的,但是隨著引擎的發(fā)展,它的計算功能和仿真能力開始廣泛地應(yīng)用到工程仿真、電影特技等其他相關(guān)領(lǐng)域。PhysX是由NVIDIA公司發(fā)布的一個強(qiáng)大的跨平臺的物理引擎,可以實時地進(jìn)行物理仿真。PhysX的主要功能包括:物理中的基本的力;基本幾何形狀的物體和連接基本物體形成復(fù)雜的模型;物體間的碰撞檢測和碰撞響應(yīng);物理學(xué)粒子系統(tǒng);關(guān)節(jié)鉸鏈;織物;流體軟體等。與其他物理引擎不同,它的主要特點是提供硬件的加速支持。對于大場景的航天器仿真和航天員出艙仿真,物理引擎的實時性和擁有硬件加速是十分必要的。PhysX的主要計算可以在GPU和PPU(PhysicsProcessingUnit)兩個硬件平臺上加速。如果沒有這兩個平臺,PhysX也可以很好地支持多線程的計算優(yōu)化在CPU上完成計算所有任務(wù)。2在虛擬培訓(xùn)中2.1虛擬訓(xùn)練系統(tǒng)國內(nèi)應(yīng)用情況航天員完成各種任務(wù)需要大量的上肢和手部操作動作,更為重要的是在出艙活動的初期在沒有機(jī)械臂的情況下,航天員在艙外的運動主要是靠手抓緊扶欄移動身體及控制身體姿態(tài)完成。為了在地面訓(xùn)練航天員,建立航天員虛擬現(xiàn)實訓(xùn)練系統(tǒng),系統(tǒng)架構(gòu)如圖1所示。在虛擬現(xiàn)實訓(xùn)練系統(tǒng)中,包括四個主要部分:受訓(xùn)人員、人機(jī)交互設(shè)備、接口API和物理引擎。受訓(xùn)人員是訓(xùn)練的對象和主體。人機(jī)交互設(shè)備包括手部運動跟蹤設(shè)備、人體運動跟蹤設(shè)備、力反饋設(shè)備和顯示器。接口API包括可視化調(diào)試器RemoteDebugger、力反饋接口數(shù)據(jù)手套接口、位置跟蹤儀接口和逆向運動學(xué)模塊。由系統(tǒng)架構(gòu)可以看出,位置跟蹤儀和數(shù)據(jù)手套是系統(tǒng)的輸入回路,顯示器和力反饋設(shè)備是反饋回路。受訓(xùn)人員的運動情況會在PhysX物理引擎的可視化調(diào)試器中顯示出來,顯示的運動信息作為訓(xùn)練系統(tǒng)的視覺反饋回路。2.2人體信息與碰撞體建模本文建立基于碰撞體的可驅(qū)動的虛擬人模型,可驅(qū)動是指位置跟蹤儀和數(shù)據(jù)手套的信息作為驅(qū)動數(shù)據(jù)源,由物理引擎驅(qū)動人體在虛擬空間中運動。碰撞體建模解決了單獨使用圖形渲染引擎所帶來的物體模型之間相互穿透的問題。首先建立數(shù)學(xué)模型,模型實現(xiàn)時利用PhysX中的D6Joint關(guān)節(jié)。2.2.1ragpolns系統(tǒng)D6Joint是一種關(guān)節(jié)結(jié)構(gòu),結(jié)構(gòu)定義上游和下游體段有六個自由度的運動,即空間三個維度和姿態(tài)三個維度,并且對每一個自由度都有運動范圍的限制。詳細(xì)描述如表1。D6Joint為每一個自由度都提供電機(jī)驅(qū)動(motordriver),其中slerpDrive是最近角驅(qū)動器(shortestarctotarget)。驅(qū)動器的目標(biāo)有四種形式:drivePosition(位置)、driveOrientation(姿態(tài))、driveLinearVelocity(線速度)和driveAngularVelocity(角速度)。PhysXSDK中包含一套Ragbolls系統(tǒng),也稱布娃娃系統(tǒng)。系統(tǒng)造成一個人的肢體結(jié)構(gòu),定義15個體段,包括四肢、頭部、軀干,其中手部和腳部簡化成一個體段,身體軀干分成兩段描述,如圖2所示。根據(jù)人體的關(guān)節(jié)特點,在Ragbolls系統(tǒng)中定義的關(guān)節(jié)應(yīng)用球關(guān)節(jié)結(jié)構(gòu)和旋轉(zhuǎn)關(guān)節(jié)結(jié)構(gòu)。人體的關(guān)節(jié)沒有空間自由度,只有旋轉(zhuǎn)運動的自由度。但是Ragbolls系統(tǒng)并沒有運動的能力,定義的只是一個機(jī)械關(guān)節(jié)鉸鏈,沒有人的肌肉特征。肌肉的特性就是有力和力矩,并且作用在關(guān)節(jié)鏈接的相鄰剛體體段上。在訓(xùn)練系統(tǒng)中人體肢體關(guān)節(jié)實現(xiàn)利用的就是slerpDrive最近角驅(qū)動器driveOrientation姿態(tài)驅(qū)動目標(biāo)。2.2.2生物過程模型在太空中,航天員在空間站內(nèi)時,有空間站的物理保護(hù),航天員不需要穿出艙航天服,控制身體的運動也容易得多。在出艙活動中,航天員既要穿著笨重的航天服又要面對各種復(fù)雜的維修建設(shè)任務(wù)。本文論述的虛擬現(xiàn)實訓(xùn)練系統(tǒng)主要針對著航天服的人體進(jìn)行整體建模。在人體的仿真應(yīng)用研究領(lǐng)域多采用多剛體系統(tǒng)動力學(xué)模型,航天服的上肢部分也可以認(rèn)為是多段剛體結(jié)構(gòu)。在本文中我們也采用人體的多剛體模型。首先對人體各個體段建立運動模型,利用牛頓第二定律和歐拉方程建立數(shù)學(xué)模型,對于任意剛體i有:x·i=vi(1)v?i=F?imi(2)v?i=F?imi(2)q?i=12ωi*qi(3)q?i=12ωi*qi(3)ω·i=I-1i(τi-ωi×(Iiωi))(4)其中:xi代表剛體質(zhì)心位置,Fi代表合外力,ωi代表剛體角速度,qi代表剛體姿態(tài)四元數(shù),Ii代表剛體轉(zhuǎn)動慣量,τi代表剛體合力矩,mi代表剛體質(zhì)量。同樣,對四元數(shù)˙qi=[θixiyizi]可以簡化方程(3)為q·i=Qiωi,其中:Qi=12[-xi-yi-ziθizi-yi-ziθixiyi-xiθi](5)多個剛體通過鉸鏈關(guān)節(jié)鏈接的物理模型稱為多剛體系統(tǒng)。系統(tǒng)的約束就是指對系統(tǒng)內(nèi)各個剛體運動的一種限制。人體構(gòu)成的多剛體動力學(xué)系統(tǒng)是完整系統(tǒng)。如圖3所示對于關(guān)節(jié)l,定義代表剛體的運動狀態(tài)的物理量hl和時間位置約束方程fk:hl=[rilqilrjlqjl](6)fk(t,hl)=0;k=1,…,m(7)由式(1)~(4)導(dǎo)出簡化公式,省去小標(biāo)l,h·i=Hu(8)u=[viωiviωi](9)Η=[10000Qi000010000Qi](10)由約束方程fk(t,hl)=0兩邊求導(dǎo),得,ddtfk(h)=?f?hdhdt=?f?hΗu=0(11)定義雅克比矩陣Jf=?f?hΗ,得Jful=0。由分析力學(xué)第一類拉格朗日方程得約束力方程Ff=JTfλf,其中λf為拉格朗日乘子。本文通過PhysX物理引擎解算方程組:{Jful=0Ff=JΤfλf(12)本文是對穿著航天服的航天員進(jìn)行整體建模,需要考慮航天服和出艙活動的特點。航天服最大的特點是在航天服的軀干后背部裝有體積巨大的生命保障系統(tǒng),它的質(zhì)量是不可忽略的。航天員穿著艙外服航天員出艙活動時,主要是通過上肢完成任務(wù),下肢的運動并不明顯,所以本文建立的剛體模型腿部是和軀干固聯(lián)的。針對以上特點,定義7體段的人體模型,分別是:左(右)手、小臂、上臂、軀干、小腿和腳部為一體。對于7體段模型,只存在6個關(guān)節(jié)結(jié)構(gòu):左(右)肘關(guān)節(jié)、肩關(guān)節(jié)和腕關(guān)節(jié)(如圖4所示圓形代表關(guān)節(jié)位置)。在3DsMAX中,我們?yōu)槊恳粋€體段進(jìn)行3D建模,把模型文件轉(zhuǎn)換格式載入PhysX引擎中。在PhysX中,根據(jù)標(biāo)準(zhǔn)人體和航天服測量學(xué)得出的數(shù)據(jù)配置體段質(zhì)量信息和關(guān)節(jié)位置約束信息。在虛擬現(xiàn)實訓(xùn)練系統(tǒng)中,受訓(xùn)人員的小臂手腕處和身體佩戴位置跟蹤儀(如圖4中三角形位置所示),在位置跟蹤儀的實時數(shù)據(jù)驅(qū)動下,通過逆向運動學(xué)模塊解算出人體各個關(guān)節(jié)的角度信息,再映射到7段多剛體系統(tǒng)上去。關(guān)節(jié)系統(tǒng)是由slerp_drive驅(qū)動器驅(qū)動的,驅(qū)動器根據(jù)關(guān)節(jié)轉(zhuǎn)動的角度產(chǎn)生力矩使各個體段運動,達(dá)到人體跟蹤的運動位置,從而完成人體運動到剛體模型的映射和模型的肌肉特性。在可視化的數(shù)據(jù)調(diào)試工具RemoteDebugger中可以看到剛體模型靜止時的效果,如圖4。2.2.3建立條件指節(jié)和運動學(xué)模型正常人的手部有15個關(guān)節(jié)和5個手指,每個手指有3段3個關(guān)節(jié),分別用近節(jié)、中節(jié)、遠(yuǎn)節(jié)表示,在根部的近節(jié)有2個自由度,其余2個關(guān)節(jié)只有1個自由度。考慮到3D模型的不可變形性,拇指的近節(jié)的運動直接影響到手掌的形狀,所以在手部建模時把拇指的第一段和手掌合為一體,把第一關(guān)節(jié)的運動添加到第二關(guān)節(jié)上。對于中指,無名指和小指之間的夾角運動和近節(jié)旋轉(zhuǎn)角的運動在現(xiàn)實生活中很少用到,在這里不予以考慮,只考慮食指近節(jié)的旋轉(zhuǎn)角運動。這樣建立15段手部模型,如圖5所示,其中Hi代表一個指節(jié),i∈(1,15)。同樣,手部的關(guān)節(jié)定義依然采用D6Joint關(guān)節(jié),并提供slerp_drive驅(qū)動器。手部大部分的關(guān)節(jié)都是一個自由度,在D6Joint的配置項中限制關(guān)節(jié)的自由度,即只允許swingMotion。關(guān)節(jié)的運動范圍也是有限制的,根據(jù)標(biāo)準(zhǔn)人的手部運動范圍和航天服手套的機(jī)構(gòu)特點,定義手部運動范圍,即swingLimit和swing2Limit。隨著手部關(guān)節(jié)的伸展和彎曲,數(shù)據(jù)手套上的傳感器數(shù)值在0到255之間變化。把數(shù)據(jù)(0~255)映射到每個關(guān)節(jié)的運動范圍上,得到手部關(guān)節(jié)的具體運動情況。數(shù)據(jù)手套實時跟蹤手部的運動,產(chǎn)生運動數(shù)據(jù),在可視化調(diào)試器RemoteDebugger中的效果如圖5所示。2.3多模型格式的對比在現(xiàn)實世界中,手接觸物體時會遇到的阻礙,物體是有形狀和邊界的,但是在虛擬世界中形狀必須重新定義,這時就需要3D模型和碰撞檢查系統(tǒng)的支持。碰撞檢查系統(tǒng)是PhysX引擎的主要部分,應(yīng)用碰撞檢查系統(tǒng)首先要把max文件轉(zhuǎn)換到PhysX支持的文件格式。PhysX支持多種文件格式,本文選擇nxs格式文件,在可視化調(diào)試器中的效果如圖4。本文在虛擬世界中為每個3D網(wǎng)格模型都定義自己的邊界和形狀,碰撞檢查系統(tǒng)實時地的檢查任意兩個3D網(wǎng)格模型之間的距離信息,當(dāng)兩個模型距離很近時,系統(tǒng)會進(jìn)行精確計算,當(dāng)一個3D模型三角面片和另外一個3D模型的三角面片發(fā)生接觸時,碰撞檢查系統(tǒng)會檢查到,并做出碰撞反應(yīng)返回碰撞點坐標(biāo)和三角面片的法向量用于力的方向的計算。在PhysX物理引擎中,引擎在每一幀的數(shù)值計算中都需要實時調(diào)用其碰撞檢查模塊,來獲得物體的碰撞信息進(jìn)而判斷計算的正確性和下一步需要補(bǔ)償?shù)牧恐怠τ诎l(fā)生碰撞的物體,物理引擎會計算碰撞響應(yīng),根據(jù)碰撞信息計算接觸力,再把接觸力呈相反的方向作用在兩個物體上,從而完成物體碰撞反彈的功能。這樣就可以解決3D物體相互穿透的問題,當(dāng)帶有運動狀態(tài)的虛擬人的身體碰撞到物體時,物體和人也會相應(yīng)地向反方向運動。2.4接觸力算法設(shè)計所謂力反饋,其實是一種機(jī)械機(jī)構(gòu),在運行時能夠產(chǎn)生反作用力,將虛擬現(xiàn)實中傳遞的數(shù)據(jù)通過力反饋設(shè)備表現(xiàn)出對應(yīng)的力量與方向,力反饋的作用是讓操作者感受到虛擬現(xiàn)實中力的感覺。如果虛擬現(xiàn)實訓(xùn)練系統(tǒng)中有支持手部力反饋的功能,在實際操作過程中,便可以模擬虛擬世界的手去接觸物體,在碰到物體時會遇到的阻礙,這時力反饋表現(xiàn)出阻力去阻止手部繼續(xù)運動。在PhysX物理引擎中,當(dāng)兩個物體在碰撞接觸時,引擎會計算物體之間的接觸力和碰撞面法線等碰撞信息。接觸力算法是基于錯誤糾正思想,當(dāng)物體接觸發(fā)生穿透時,根據(jù)胡克定律:f=ke,其中穿透深度e,胡克系數(shù)k,n為平面法向量,pc為碰撞點,如圖6所示。PhysX提供一個強(qiáng)大的回調(diào)接口類,當(dāng)兩個注冊物體在碰撞時,回調(diào)該類的函數(shù)得到各種碰撞信息。在虛擬現(xiàn)實訓(xùn)練系統(tǒng)中結(jié)合物理引擎的力的計算功能和力反饋設(shè)備的反饋力,對虛擬手的5個手指末端指段進(jìn)行注冊,當(dāng)虛擬手在虛擬空間碰到物體時,回調(diào)函數(shù)返回碰撞的計算數(shù)值,根據(jù)該數(shù)值輸出給力反饋設(shè)備上,使人的手指直接感受到輸出的反饋力。在實際系統(tǒng)中,PhysX是以幀形式進(jìn)行迭代的,每一幀的時間都非常短,從動量的角度考慮,當(dāng)兩個注冊物體在碰撞時往往反饋的力的數(shù)值非常大,對于回調(diào)函數(shù)的返回數(shù)值還要乘以一幀時間才可以設(shè)置給力反饋設(shè)備。圖7為單個手指的CyberGrap力反饋佩戴示意圖。從圖7中可以看出力反饋的力是通過尼龍絲傳遞的,尼龍絲固定在手指的上面,當(dāng)手指正面碰到物體時,尼龍絲向上拉手指。但是當(dāng)物體和手指背面相碰時就沒有傳遞力的機(jī)構(gòu),所以在虛擬現(xiàn)實訓(xùn)練系統(tǒng)中,我們要區(qū)分手指接觸力的位置。從回調(diào)函數(shù)傳遞回來的碰撞信息中含有碰撞點的位置信息,這時根據(jù)碰撞點的位置轉(zhuǎn)換到手指體段本體坐標(biāo)系上,判斷碰撞點是在手指背面還是正面。3模擬實驗驗證3.1immo人工跟蹤儀平臺硬件部分包括:微機(jī)一臺(CPUCorei5,內(nèi)存3GB),Immersion公司CyberGlove數(shù)據(jù)手套(22個傳感器)一只,Immersion公司CyberGrasp力反饋一個,Immersion公司FlockOfBirds位置跟蹤儀一臺;軟件部分包括3DsMax建模軟件、flour0.3模型轉(zhuǎn)換工具及oFusion模型導(dǎo)出工具,PhysXSDK開發(fā)包,NxOgre綁定庫(支持nxs文件格式),OGRE圖形引擎,數(shù)據(jù)手套、位置跟蹤儀、力反饋SDK開發(fā)包,開發(fā)環(huán)境采用MicrosoftVisualSt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金融風(fēng)控考試題及答案
- 難點解析-人教版八年級上冊物理物態(tài)變化《熔化和凝固》專項訓(xùn)練試題(詳解版)
- 安全培訓(xùn)省級考試題庫及答案解析
- 阜南縣銀行從業(yè)資格考試及答案解析
- 航吊從業(yè)資格證模擬考試及答案解析
- 2025年廣東省安全員c證題庫及答案解析
- 安全工程知識題庫及答案解析
- 銷售部個人工作總結(jié)范文
- 重陽節(jié)發(fā)言稿(15篇)
- 2025年鄉(xiāng)村醫(yī)生考試題庫:農(nóng)村居民健康素養(yǎng)提升健康行為試題
- 2022年烏魯木齊市沙依巴克區(qū)政務(wù)中心綜合窗口人員招聘筆試試題及答案解析
- 第二部分壓裂材料
- GB/T 41098-2021起重機(jī)安全起重吊具
- GB/T 10416-2007農(nóng)業(yè)機(jī)械環(huán)形變速V帶及帶輪輪槽截面
- FZ/T 72025-2019西褲用針織面料
- 性健康教育課件
- 部編人教版《道德與法治》八年級上冊教案(全冊)
- 《國際服務(wù)貿(mào)易》第三章-國際服務(wù)貿(mào)易理論
- 檢驗科 ISO 15189體系文件 質(zhì)量手冊+程序文件+管理制度+采樣手冊+臨檢室+免疫室+生化室+PCR室+微生物與血庫作業(yè)指導(dǎo)書+記錄模板
- CAMDS操作方法及使用技巧
- 路燈施工勞動力、機(jī)械設(shè)備和材料投入計劃
評論
0/150
提交評論