国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于delmia環(huán)境下的沉浸式虛擬維修仿真系統(tǒng)虛擬人控制方法

      文檔序號:6443319閱讀:512來源:國知局
      專利名稱:基于delmia環(huán)境下的沉浸式虛擬維修仿真系統(tǒng)虛擬人控制方法
      技術(shù)領(lǐng)域
      本發(fā)明是基于DELMIA環(huán)境下的沉浸式虛擬維修仿真系統(tǒng)虛擬人控制方法,具體的說,是一種利用DELMIA軟件提供的沉浸式虛擬仿真系統(tǒng),進(jìn)行人體動作和行為的仿真, 使用戶像在實(shí)際產(chǎn)品上一樣對虛擬產(chǎn)品進(jìn)行實(shí)時(shí)操作,從而可在物理樣機(jī)產(chǎn)生之前及時(shí)地發(fā)現(xiàn)設(shè)計(jì)中存在的維修問題,它屬于虛擬現(xiàn)實(shí)技術(shù)輔助系統(tǒng)維修的技術(shù)領(lǐng)域。
      背景技術(shù)
      沉浸式虛擬仿真是指設(shè)計(jì)人員在沉浸式虛擬維修環(huán)境下對產(chǎn)品進(jìn)行“虛擬地”維修,可在物理樣機(jī)生產(chǎn)之前及時(shí)地發(fā)現(xiàn)設(shè)計(jì)中存在的維修問題,進(jìn)行維修性設(shè)計(jì)的分析,維修規(guī)程的確認(rèn)和輔助維修訓(xùn)練。利用動作捕捉系統(tǒng)與虛擬維修仿真軟件構(gòu)建沉浸式虛擬維修仿真系統(tǒng),不僅可以利用虛擬維修仿真軟件中的產(chǎn)品數(shù)據(jù),而且能夠讓用戶像在實(shí)際產(chǎn)品上一樣對虛擬產(chǎn)品進(jìn)行實(shí)時(shí)操作。目前動作捕捉系統(tǒng)與虛擬維修仿真軟件融合技術(shù)的研究進(jìn)展較慢,二者還相對獨(dú)立。一方面,虛擬維修軟件具有很強(qiáng)的仿真分析功能,但其中的人體運(yùn)動建模工作較為繁瑣且編輯的動作不夠真實(shí)有效;另一方面動作捕捉系統(tǒng)還只在動畫制作等特殊領(lǐng)域應(yīng)用較多,其配套的軟件一般只能利用三維動畫復(fù)現(xiàn)真人運(yùn)動軌跡,而不具有其他分析處理功能, 也不能載入CAD產(chǎn)品數(shù)據(jù)。因此,二者集成能有效的實(shí)現(xiàn)真人對虛擬維修仿真軟件中虛擬人的控制,為仿真分析提供更加真實(shí)有效的維修動作數(shù)據(jù),實(shí)現(xiàn)真正意義上的沉浸式虛擬維修。

      發(fā)明內(nèi)容
      (1)本發(fā)明的目的是基于DELMIA環(huán)境下的沉浸式虛擬維修仿真系統(tǒng)虛擬人控制方法,通過將動作捕捉設(shè)備所捕捉到的人體動作實(shí)時(shí)地導(dǎo)入到專業(yè)軟件提供的虛擬維修平臺當(dāng)中的虛擬人上,從而可以進(jìn)行沉浸式的虛擬維修活動。(2)本發(fā)明的技術(shù)方案以DELMIA虛擬仿真軟件和SmpeWarp無線光纖動作捕捉系統(tǒng)構(gòu)建沉浸式虛擬維修仿真系統(tǒng),并利用DELMIA提供的Automation 二次開發(fā)技術(shù),對二者的接口設(shè)計(jì)算法做了相應(yīng)研究,實(shí)現(xiàn)動作捕捉系統(tǒng)采集的真實(shí)的維修數(shù)據(jù)對DELMIA中虛擬人動作控制,提出了 DELMIA環(huán)境下虛擬人控制的新方案,實(shí)現(xiàn)用戶與虛擬環(huán)境的融合。以SiapeWarp無線光纖動作捕捉系統(tǒng)和目前航空部門普遍采用的DELMIA虛擬仿真軟件構(gòu)建沉浸式虛擬維修仿真系統(tǒng),并對二者間的接口設(shè)計(jì)進(jìn)行了深入研究,實(shí)現(xiàn)了動作捕捉系統(tǒng)對DELMIA軟件中虛擬人的控制。本發(fā)明基于DELMIA環(huán)境下的沉浸式虛擬維修仿真系統(tǒng)虛擬人控制方法,通過如下步驟實(shí)現(xiàn)步驟一、對動作捕捉軟件的數(shù)據(jù)輸出進(jìn)行設(shè)置
      選擇a^peRecorder作為動作捕捉軟件,對其數(shù)據(jù)的輸出進(jìn)行必要的設(shè)置。主要的輸出設(shè)置分為實(shí)時(shí)輸出和以文件方式輸出。步驟二、進(jìn)行動作捕捉,通過動作捕捉設(shè)備自帶的軟件實(shí)時(shí)發(fā)送數(shù)據(jù)有兩種方式,一種是人員穿上動作捕捉設(shè)備,進(jìn)行動作捕捉;另一種是之前進(jìn)行動作捕捉時(shí),用設(shè)備自帶的軟件對動作數(shù)據(jù)進(jìn)行錄制,而發(fā)送數(shù)據(jù)時(shí)則通過設(shè)備自帶軟件打開已錄制好的動作數(shù)據(jù)文件,向外發(fā)送數(shù)據(jù)。步驟三、接收并臨時(shí)保存動作捕捉軟件輸出的動作數(shù)據(jù)以UDPSocket的方式接收數(shù)據(jù),以數(shù)組的形式臨時(shí)保存當(dāng)前接收到的一幀數(shù)據(jù)。 為說明方便,該數(shù)組命名為gpo數(shù)組。該數(shù)組包含從1到235共235個(gè)數(shù)據(jù),分別以gpo (1)、 gpo (2)......gpo (235)表示。步驟四、對動作數(shù)據(jù)進(jìn)行計(jì)算根據(jù)臨時(shí)保存的當(dāng)前幀數(shù)據(jù)——即gpo數(shù)組——進(jìn)行計(jì)算,可以將該數(shù)據(jù)的格式轉(zhuǎn)換為DELMIA可以使用的動作數(shù)據(jù)格式,臨時(shí)保存在ορν數(shù)組和iAxisComponentsArray 數(shù)組當(dāng)中。該步驟可以進(jìn)一步細(xì)分為a)計(jì)算人體的方向和位置;b)計(jì)算人體每一個(gè)肢節(jié)的姿勢(不包括手指);c)計(jì)算人體手指每一個(gè)肢節(jié)的姿勢步驟五、將轉(zhuǎn)換完成的動作數(shù)據(jù)以Automation API的方式賦給DELMIA步驟六、重復(fù)步驟二到步驟五將動作數(shù)據(jù)轉(zhuǎn)換完成并輸入到DELMIA中的虛擬人使其動作后,此即標(biāo)志著一幀動作的完成。然后開始下一幀動作,重復(fù)步驟二到步驟五,直到不再進(jìn)行動作捕捉或動作捕捉設(shè)備自帶軟件不再發(fā)送捕捉到的動作數(shù)據(jù)為止。本發(fā)明要求的設(shè)備條件兩臺電腦,其中動作捕捉系統(tǒng)(SiapeRecorder)需要一臺,虛擬環(huán)境軟件平臺(delmia)需要一臺,兩臺電腦之間要有網(wǎng)絡(luò)連接,或者是一臺電腦,動作捕捉系統(tǒng)和虛擬環(huán)境平臺都在同一臺電腦上運(yùn)行,此時(shí)電腦要有網(wǎng)卡。軟件條件 Windows操作系統(tǒng),且配置要能夠正常運(yùn)行兩款軟件。(3)本發(fā)明的優(yōu)點(diǎn)本發(fā)明所采用的動作捕捉設(shè)備為Measurand公司的光纖式動作捕捉設(shè)備,采用的虛擬維修軟件平臺為Dassault公司的DELMIA軟件。Measurand公司開發(fā)了一些數(shù)據(jù)轉(zhuǎn)換插件軟件,可以將其動作捕捉設(shè)備所捕捉到的人體動作實(shí)時(shí)導(dǎo)入到MotionBuilder軟件或 Virtools軟件中去。本發(fā)明通過采用DELMIA軟件本身提供的接口進(jìn)行開發(fā),更為重要的是,本發(fā)明采用模塊化設(shè)計(jì)思想,具備可擴(kuò)展性,即對于不同的動作捕捉設(shè)備,通過選擇相應(yīng)的數(shù)據(jù)轉(zhuǎn)換模塊,可以得到同樣格式的動作數(shù)據(jù),以操縱DELMIA中的虛擬人。因此,用戶可以選擇多種動作捕捉設(shè)備,甚至可以同時(shí)采用不同的動作捕捉設(shè)備捕捉多人的動作,實(shí)時(shí)地導(dǎo)入到 DELMIA中的多個(gè)虛擬人上。


      圖1為基于DELMIA環(huán)境下的沉浸式虛擬仿真流程圖;圖2為Shaperecorder中的全局坐標(biāo)系圖;圖3為Delmia中的全局坐標(biāo)系具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。本發(fā)明首先利用Measurand公司的光纖式動作捕捉設(shè)備實(shí)時(shí)地捕捉人體的動作, 并由該設(shè)備自帶的SiapeRecorder軟件通過UDPSocket的方式實(shí)時(shí)向外發(fā)送數(shù)據(jù)。然后本發(fā)明利用UDPSocket的方式接收該數(shù)據(jù),接著進(jìn)行數(shù)據(jù)的轉(zhuǎn)換等計(jì)算,將包含人體動作的數(shù)據(jù)信息轉(zhuǎn)換成DELMIA可以使用的數(shù)據(jù)格式。具體實(shí)施流程圖如圖1所示,不過該數(shù)據(jù) DELMIA軟件本身并不能直接使用,需要通過DELMIA提供的Automation API接口,使用一系列的API函數(shù),對DELMIA軟件進(jìn)行操作。本發(fā)明是基于DELMIA環(huán)境下的沉浸式虛擬維修仿真系統(tǒng)虛擬人控制方法,具體實(shí)施步驟如下步驟一、對動作捕捉軟件的數(shù)據(jù)輸出進(jìn)行設(shè)置選擇a^peRecorder作為動作捕捉軟件,對其數(shù)據(jù)的輸出進(jìn)行必要的設(shè)置。 ShapeRecorder軟件有2種數(shù)據(jù)輸出方式,一種為實(shí)時(shí)輸出,一種輸出為文件,選擇實(shí)時(shí)輸出;該軟件有4種數(shù)據(jù)輸出格式,分別為Global Position and Orientation格式、C3D格式、BVH 格式和 MotionBuilder/Quest3D/Virtools Quaternion) format 格式,選擇 Global Position and Orientation格式。對實(shí)時(shí)輸出的UDPSocket的屬性進(jìn)行設(shè)置,如IP地址、 端口號等,具體以實(shí)施例為例。步驟二、進(jìn)行動作捕捉,通過動作捕捉設(shè)備自帶的軟件實(shí)時(shí)發(fā)送數(shù)據(jù)有兩種方式,一種是人員穿上動作捕捉設(shè)備,進(jìn)行動作捕捉,同時(shí)該設(shè)備自帶的軟件實(shí)時(shí)地發(fā)送數(shù)據(jù);另一種是之前進(jìn)行動作捕捉時(shí),用設(shè)備自帶的軟件對動作數(shù)據(jù)進(jìn)行錄制,而發(fā)送數(shù)據(jù)時(shí)則通過設(shè)備自帶軟件打開已錄制好的動作數(shù)據(jù)文件,向外發(fā)送數(shù)據(jù)。這兩種方式都是可行的。均通過UDPSocket的方式發(fā)送數(shù)據(jù)。步驟三、接收并臨時(shí)保存動作捕捉軟件輸出的動作數(shù)據(jù)以UDPSocket的方式接收數(shù)據(jù)。以數(shù)組的形式臨時(shí)保存當(dāng)前接收到的一幀數(shù)據(jù)。 為說明方便,該數(shù)組命名為gpo數(shù)組。該數(shù)組包含從1到235共235個(gè)數(shù)據(jù),分別以gpo (1)、 gpo (2)......gpo (235)表示。同時(shí),再建立2個(gè)數(shù)組,這2個(gè)數(shù)組將臨時(shí)保存數(shù)據(jù)轉(zhuǎn)換的計(jì)算結(jié)果,為說明方便, 將這2個(gè)數(shù)組命名為ορν數(shù)組和iAxisComponentsArray數(shù)組。ορν數(shù)組保存人體的姿態(tài)數(shù)據(jù),iAxisComponentsArray數(shù)組保存人體的方向和位置數(shù)據(jù)。ορν數(shù)組包含從O到136共
      137 個(gè)數(shù)據(jù),分別以 opv (0)、ορν (1)......ορν (136)表示。iAxisComponentsArray 數(shù)組包含從
      O 至Ij 11 共 12 個(gè)數(shù)據(jù),分另Ij 以 iAxisComponentsArray (0) >iAxisComponentsArray (1)、......
      iAxisComponentsArray(11)表不。步驟四、對動作數(shù)據(jù)進(jìn)行計(jì)算根據(jù)臨時(shí)保存的當(dāng)前幀數(shù)據(jù)——即gpo數(shù)組——進(jìn)行計(jì)算,可以將該數(shù)據(jù)的格式轉(zhuǎn)換為DELMIA可以使用的動作數(shù)據(jù)格式,臨時(shí)保存在ορν數(shù)組和iAxisComponentsArray 數(shù)組當(dāng)中,轉(zhuǎn)換的關(guān)系圖如圖2所示該步驟可以進(jìn)一步細(xì)分為1)計(jì)算人體的方向和位置令
      Yaw = gpo (6) X 3. 1415926 + 180Pitch = gpo (5) X 3. 1415926 + 180Roll = gpo (4) X 3. 1415926 + 180Xp = gpo(l)Yp = gpo (2)Zp = gpo (3)然后,令cy = cos (Yaw)sY = Sin(Yaw)cP = cos (Pitch)sP = Sin(Pitch)cR = cos (Roll)sR = Sin(Roll)再令iAxisComponentsArray (0) = cy X cPiAxisComponentsArray (1) = sYX cPiAxisComponentsArray (2) = sPiAxisComponentsArray (3) = -sYX cR-cy X sPX sRiAxisComponentsArray (4) = cy X cR-sYX sPX sRiAxisComponentsArray (5) = cPX sRiAxisComponentsArray (6) = sYX sR-cy X sPX cRiAxisComponentsArray (7) = -cy X sR-sYX sPX cRiAxisComponentsArray (8) = cPXcRiAxisComponentsArray (9) =XpiAxisComponentsArray(10) = -ZpiAxisComponentsArray (11) =Yp則iAxisComponentsArray數(shù)組將臨時(shí)保存人體的方向和位置數(shù)據(jù)。2)計(jì)算人體每一個(gè)肢節(jié)的姿勢(不包括手指)假設(shè)人體的某部分有兩個(gè)相鄰的肢節(jié),則這兩個(gè)肢節(jié)間存在著類似于“樹干—— 樹枝”的關(guān)系,而人體的總“樹干”肢節(jié)則為人體的臀部。例如,人的左前臂和左上臂這兩個(gè)肢節(jié),左上臂為“樹干”,左前臂為“樹枝”;人的臀部、腰部和胸部間,腰部既是臀部的“樹枝”,又是胸部的“樹干”。假設(shè)有某兩個(gè)相鄰的肢節(jié),令“樹干”肢節(jié)為a肢節(jié),“樹枝”肢節(jié)為b肢節(jié)。則gpo 數(shù)組中a肢節(jié)的翻滾角、俯仰角、偏航角數(shù)據(jù)分別為gpo (iar)、gpo (iap)、gpo (iay),b肢節(jié)的翻滾角、俯仰角、偏航角數(shù)據(jù)分別為gpo (ibr)、gpo (ibp)、gpo (iby)。令aR = gpo (iar) X 3. 1415926 + 180aP = gpo (iap) X 3. 1415926 + 180aY = gpo (iay) X 3. 1415926 + 180bR = gpo (ibr) X 3. 1415926 + 1800074]bP = gpo(ibp) X3. 1415926+1800075]by = gpo(iby) X 3. 1415926 + 1800076]然后令0077]cYa =cos(aY)0078]sYa =Sin(aY)0079]cPa =cos(aP)0080]sPa =Sin(aP)0081]c Ra =cos (aR)0082]sRa =Sin(aR)0083]c Yb =cos (by)0084]s Yb =Sin (by)0085]cPb =cos (bP)0086]sPb =Sin(bP)0087]cRb =cos (bR)0088]sRb =Sin(bR)0089]再令0090]MaT (0=c Ya XcPa0091]MaT (1=-sYa X cRa-cYa X sPa X sRa0092]MaT (2=sYa X sRa-cYa X sPa X cRa0093]MaT (3=s Ya XcPa0094]MaT (4=cYa X cRa-sYa X sPa X sRa0095]MaT (5=-cYa X sRa-sYa X sPa X cRa0096]MaT (6=sPa0097]MaT (7=cPaX sRa0098]MaT (8=cPaX cRa0099]Mb(O)=cYb XcPb0100]Mb(I)=sYbXcPb0101]Mb (2)=sPb0102]Mb (3)=-sYbXcRb-cYbXsPbXsRb0103]Mb (4)=cYb XcRb-sYbXsPbXsRb0104]Mb (5)=cPbXsRb0105]Mb (6)=sYb XsRb-cYbXsPbXcRb0106]Mb (7)=-cYbXsRb-sYbXsPbXcRb0107]Mb (8)=cPbXcRb0108]然后令0109]MatrixA (0) = Mb(O) XMaT (0)+Mb(I) XMaT (3)+Mb (2) XMaT (6)0110]MatrixA(I) = Mb(O) XMaT (1)+Mb (1) XMaT (4)+Mb (2) XMaT (7)0111]MatrixA (2) = Mb(O) XMaT (2)+Mb (1) XMaT (5)+Mb (2) XMaT (8)0112]MatrixA (3) = Mb (3) X MaT (0) +Mb (4) X MaT (3) +Mb (5) X MaT (6)
      MatrixA (4) = Mb (3) XMaT (1) +Mb (4) XMaT (4) +Mb (5) XMaT (7)MatrixA (5) = Mb (3) X MaT (2) +Mb (4) X MaT (5) +Mb (5) X MaT (8)MatrixA (6) = Mb (6) X MaT (0) +Mb (7) X MaT (3) +Mb (8) X MaT (6)MatrixA (7) = Mb (6) XMaT (1) +Mb (7) XMaT (4) +Mb (8) XMaT (7)MatrixA (8) = Mb (6) X MaT (2) +Mb (7) X MaT (5) +Mb (8) X MaT (8)其中,MatrixA是一個(gè)代表3X3矩陣的數(shù)組。這個(gè)矩陣的值代表了 b肢節(jié)相對于 a肢節(jié)的方向變換,即在肢節(jié)物體坐標(biāo)系3個(gè)坐標(biāo)軸(也即自由度)方向上的轉(zhuǎn)動的變換的疊加。令3個(gè)自由度的轉(zhuǎn)動角順序?yàn)橄圈?,再β,最后Y,則α = arctan (-MatrixA (6) +MatrixA (8))β = arcsin (-MatrixA (7))y = arctan (MatrixA(l) +MatrixA (4))最后,如果具體肢節(jié)的轉(zhuǎn)動方向和坐標(biāo)軸正軸的方向相同,則將α、β、Y臨時(shí)保存在OpV(bl)、OpV032)、OpV(b3)中,其中bl和α相對應(yīng),是b肢節(jié)相對于a肢節(jié)最先轉(zhuǎn)動的自由度,同理和β相對應(yīng)、b3和γ相對應(yīng);如果相反,則將-α、-β、-γ臨時(shí)保存在 opv (bl)、opv (b2)、opv (b3)中。3)計(jì)算人體手指每一個(gè)肢節(jié)的姿勢手指和其它肢節(jié)的計(jì)算有一些不同,一是因?yàn)檫M(jìn)行動作捕捉時(shí)未必會捕捉兩只手的數(shù)據(jù),二是因?yàn)閯幼鞑蹲皆O(shè)備自帶軟件輸出的手指數(shù)據(jù)只包括手指關(guān)節(jié)的位置數(shù)據(jù),不包括歐拉角形式的、手指肢節(jié)的方向數(shù)據(jù)。所以,如果在動作捕捉時(shí)不捕捉手部的動作,則可以省略此步驟;如果在捕捉時(shí)只捕捉一只手的動作,則只計(jì)算一只手的數(shù)據(jù),另一只不進(jìn)行計(jì)算;如果捕捉了兩只手的動作,則計(jì)算兩只手的數(shù)據(jù)。具體的計(jì)算方法以右手為例進(jìn)行說明,左手參照右手。令gpo (r)、gpo (p)、gpo (y)分別為右手的翻滾角、俯仰角和偏航角,則Yaw = gpo (y) X 3. 1415926 + 180Pitch = gpo (ρ) X 3. 1415926 + 180Roll = gpo (r) X 3. 1415926 + 180再令cy = cos(Yaw)sY = Sin(Yaw)cP = cos (Pitch)sP = Sin(Pitch)cR = cos (Roll)sR = Sin(Roll)再令Matrix00_Hand(0)Matrix00_Hand(l)MatrixOO_Hand(2)MatrixOO_Hand(3)Matrix00_Hand(4)
      =cyXcP =sYXcP =sP
      =-sYXcR-cyXsPXsR =cyXcR-sYXsPXsR
      MatrixOO_Hand(5) = cPXsRMatrixOO_Hand(6) = sYX sR-cy X sPX cRMatrix00_Hand(7) = -cyX sR-sYXsPXcRMatrixOO_Hand(8) = cPXcR^gpo(ax),gpo(ay),gpo(az)分別表示手指根部關(guān)節(jié) a 的 x、y、ζ 坐標(biāo),gpo(bx)、 gpo (by)、gpo (bz)分別表示手指除根部關(guān)節(jié)外離手掌較近的關(guān)節(jié)b的χ、y、ζ坐標(biāo),則dx = gpo (bx)-gpo (ax)dy = gpo (az) _gpo (bz)dz = gpo (by)-gpo (ay)再令v(0) = dx X Matrix00_Hand(0)+dy X Matrix00_Hand(1)+dz X Matrix00_Hand(2)v(l) = dx X Matrix00_Hand(3)+dy X Matrix00_Hand(4)+dz X Matrix00_Hand(5)ν (2) = dxX Matrix00_Hand (6) +dy X Matrix00_Hand (7) +dz X Matrix00_Hand (8)再令opv(y) = arcsin(v(1) + (sqr(v(0) Xv(0)+v(l) Xv(I))))opv(p) = -arcsin(v(2) + (sqr(v(0) Xν(0) +ν(2) Xv(2))))同時(shí)令oneoverModule = 1 + (sqr (dx X dx+dy X dy+dz X dz))再令VectorVO (0) = dxXoneoverModuleVectorVO(I) = dyXoneoverModuleVectorVO(2) = dzXoneoverModule其中,0pV(y)、0pV(p)分別表示手指根部關(guān)節(jié)相對于手掌的偏航角、俯仰角。需注意左手時(shí)opv(y) = -arcsin(ν(1) + (sqr(ν(0) Χν(0)+ν(1) Xv(I))))計(jì)算手指除根部外的其它關(guān)節(jié)的角度的方法是令gpo (ax)、gpo (ay)、gpo (az)分別表示手指離手掌較近的關(guān)節(jié)a的χ、y、ζ坐標(biāo),gpo (bx)、gpo (by)、gpo (bz)分別表示手指離手掌較遠(yuǎn)的關(guān)節(jié)b的χ、y、ζ坐標(biāo),令dx = gpo (bx) -gpo (ax)dy = gpo (az) _gpo (bz)dz = gpo (by) -gpo (ay)再令oneoverModule = 1 + (sqr (dx X dx+dy X dy+dz X dz))再令VectorVl (0) = dxXoneoverModuleVectorVl(1) = dyXoneoverModuleVectorVl(2) = dzXoneoverModule最后令opv (p) = arccos(VectorVO(0)XVectorVl(0)+VectorVO(1)XVectorVl (1)+VectorVO(2)XVectorVl(2))opv(p)即為a關(guān)節(jié)的彎曲角度。同時(shí),再令VectorVO (0) = VectorVl (0)VectorVO(I) =VectorVl(I)VectorVO (2) = VectorVl (2)將其進(jìn)行迭代運(yùn)算,可直至求出手指最末端關(guān)節(jié)的角度。步驟五、將轉(zhuǎn)換完成的動作數(shù)據(jù)以Automation API的方式賦給DELMIADELMIA提供了兩種主要的方式可對其進(jìn)行二次開發(fā),一種是出售CAA開發(fā)包,但價(jià)格非常昂貴,甚至比DELMIA軟件還要貴;另一種是DELMIA本身免費(fèi)提供的Automation API方式,本發(fā)明即采用此方式。通過該方式,DELMIA提供了一系列函數(shù),可以對其進(jìn)行調(diào)用、操作。其中,可以操作DELMIA里虛擬人的姿態(tài)的函數(shù)為ktPostureValues函數(shù),其參數(shù)即為ορν數(shù)組;可以操作虛擬人方向和位置的函數(shù)為ktPosition函數(shù),其參數(shù)即為 iAxisComponentsArray 數(shù)組。賦值后,DELMIA中的虛擬人的動作即和動作捕捉設(shè)備自帶軟件輸出的人體動作相一致。由于動作捕捉設(shè)備所捕捉的人體動作和其自帶軟件記錄、輸出的人體動作之間有可能存在一定的誤差,當(dāng)這種誤差小到肉眼可以忽略不計(jì)的時(shí)候,DELMIA中的虛擬人的動作即和穿著動作捕捉設(shè)備的人員的實(shí)際動作相一致。步驟六、重復(fù)步驟二到步驟五將動作數(shù)據(jù)轉(zhuǎn)換完成并輸入到DELMIA中的虛擬人使其動作后,此即標(biāo)志著一幀動作的完成。然后開始下一幀動作,重復(fù)步驟二到步驟五,直到不再進(jìn)行動作捕捉或動作捕捉設(shè)備自帶軟件不再發(fā)送捕捉到的動作數(shù)據(jù)為止。實(shí)施例本實(shí)施例以Measurand公司的光纖式動作捕捉設(shè)備所捕捉到的一幀動作數(shù)據(jù)為例進(jìn)行說明。其自帶軟件SiapeRecorder所捕捉到的人體動作如錯(cuò)誤!未找到引用源。所
      7J\ ο該設(shè)備包含了兩只手套,所以可以捕捉到兩只手的動作。接收到的動作數(shù)據(jù)臨時(shí)保存在gpo數(shù)組中,共有從1到2;35共2;35個(gè)數(shù)據(jù),如表1所示。表Igpo數(shù)據(jù)列表
      權(quán)利要求
      1.基于DELMIA環(huán)境下的沉浸式虛擬維修仿真系統(tǒng)虛擬人控制方法,其特征在于該方法具體步驟如下步驟一、對動作捕捉軟件的數(shù)據(jù)輸出進(jìn)行設(shè)置選擇ampeRecorder作為動作捕捉軟件,對其數(shù)據(jù)的輸出進(jìn)行設(shè)置;輸出設(shè)置分為實(shí)時(shí)輸出和以文件方式輸出;步驟二、進(jìn)行動作捕捉,通過動作捕捉設(shè)備自帶的軟件實(shí)時(shí)發(fā)送數(shù)據(jù)有兩種方式,一種是人員穿上動作捕捉設(shè)備,進(jìn)行動作捕捉;另一種是之前進(jìn)行動作捕捉時(shí),用設(shè)備自帶的軟件對動作數(shù)據(jù)進(jìn)行錄制,而發(fā)送數(shù)據(jù)時(shí)則通過設(shè)備自帶軟件打開已錄制好的動作數(shù)據(jù)文件,向外發(fā)送數(shù)據(jù);步驟三、接收并臨時(shí)保存動作捕捉軟件輸出的動作數(shù)據(jù)以UDPSocket的方式接收數(shù)據(jù),以數(shù)組的形式臨時(shí)保存當(dāng)前接收到的一幀數(shù)據(jù);為說明方便,該數(shù)組命名為gpo數(shù)組,該數(shù)組包含從1到235共235個(gè)數(shù)據(jù),分別以gpo (1)、gpo (2)......gpo (235)表示;步驟四、對動作數(shù)據(jù)進(jìn)行計(jì)算根據(jù)臨時(shí)保存的當(dāng)前幀數(shù)據(jù)——即gpo數(shù)組——進(jìn)行計(jì)算,將該數(shù)據(jù)的格式轉(zhuǎn)換為 DELMIA使用的動作數(shù)據(jù)格式,臨時(shí)保存在ορν數(shù)組和iAxisComponentsArray數(shù)組當(dāng)中;該步驟進(jìn)一步細(xì)分為a)計(jì)算人體的方向和位置;b)計(jì)算人體不包括手指的每一個(gè)肢節(jié)的姿勢;c)計(jì)算人體手指每一個(gè)肢節(jié)的姿勢;步驟五、將轉(zhuǎn)換完成的動作數(shù)據(jù)以Automation API的方式賦給DELMIA ; 步驟六、重復(fù)步驟二到步驟五將動作數(shù)據(jù)轉(zhuǎn)換完成并輸入到DELMIA中的虛擬人使其動作后,此即標(biāo)志著一幀動作的完成;然后開始下一幀動作,重復(fù)步驟二到步驟五,直到不再進(jìn)行動作捕捉或動作捕捉設(shè)備自帶軟件不再發(fā)送捕捉到的動作數(shù)據(jù)為止。
      全文摘要
      本發(fā)明基于DELMIA環(huán)境下的沉浸式虛擬維修仿真系統(tǒng)虛擬人控制方法,它有六大步驟如一、對動作捕捉軟件的數(shù)據(jù)輸出進(jìn)行設(shè)置;二、進(jìn)行動作捕捉,通過動作捕捉設(shè)備自帶的軟件實(shí)時(shí)發(fā)送數(shù)據(jù);三、接收并臨時(shí)保存動作捕捉軟件輸出的動作數(shù)據(jù);四、對動作數(shù)據(jù)進(jìn)行計(jì)算;五、將轉(zhuǎn)換完成的動作數(shù)據(jù)以Automation API的方式賦給DELMIA;六、重復(fù)二到五的步驟。本發(fā)明以DELMIA虛擬仿真軟件和ShapeWarp無線光纖動作捕捉系統(tǒng)構(gòu)建沉浸式虛擬維修仿真系統(tǒng),并利用DELMIA提供的Automation二次開發(fā)技術(shù),對二者的接口設(shè)計(jì)算法做了相應(yīng)研究,實(shí)現(xiàn)動作捕捉系統(tǒng)采集的真實(shí)的維修數(shù)據(jù)對DELMIA中虛擬人動作控制,提出了DELMIA環(huán)境下虛擬人控制的新方案,實(shí)現(xiàn)用戶與虛擬環(huán)境的融合。
      文檔編號G06F17/50GK102521464SQ20111044241
      公開日2012年6月27日 申請日期2011年12月26日 優(yōu)先權(quán)日2011年12月26日
      發(fā)明者呂川, 周棟, 張乃棟, 李永祥, 郭志奇, 陳桂玲 申請人:北京航空航天大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1