洪 磊,嵇保健,王玉國
(1.南京工程學院汽車與軌道交通學院,南京 211167;2.南京工業(yè)大學自動化與電氣工程學院,南京 211800)
基于VC平臺的虛擬人運動分析軟件
洪 磊1,嵇保健2,王玉國1
(1.南京工程學院汽車與軌道交通學院,南京 211167;2.南京工業(yè)大學自動化與電氣工程學院,南京 211800)
常用Jack分析軟件在失重狀態(tài)下無法實現(xiàn)對動作的復雜動力學分析和計算。針對該問題,提出一種虛擬人運動分析軟件設計方法。依據(jù)人體的基本結(jié)構(gòu)和動態(tài)特征,結(jié)合剛體運動學和機器人學技術(shù),將虛擬人劃分成15個體段,使各體段簡化為勻質(zhì)剛體,并建立多剛體動力學模型,應用機器人Denavit-Hartenberg分析方法進行虛擬人的建模和分析,在此基礎上,采用標準C語言形式編寫虛擬人的運動學和動力學分析算法,利用OpenGL工具開發(fā)可視化仿真界面建立虛擬人的三維仿真場景。通過虛擬人飄浮出艙動作的運動仿真驗證了平臺的可行性和較好的人機交互性。
虛擬人;艙外活動;VC平臺;可視化;失重狀態(tài)
載人航天活動離不開航天員進行艙外活動(Extra-vehicular Activity,EVA)??臻g飛行器的在軌組裝與維護、衛(wèi)星回收、空間維修、空間科學實驗等工作,必須由航天員通過出艙活動來完成[1-2]。為了使航天員在太空微重力環(huán)境下能進行精確地操作,需在地面進行長時間的微重力模擬訓練。目前,模擬微重力環(huán)境的方法有物理方法和計算機方法,物理方法都有一定的局限性,為了彌補這些不足,產(chǎn)生了計算機動態(tài)仿真EVA的方法。計算機仿真EVA具有周期短、投資少等優(yōu)點,在載人航天中得到了越來越廣泛的應用。在計算機仿真EVA時,需要對失重狀態(tài)下虛擬人體進行分析,通過運動學建模和動力學分析,為太空失重環(huán)境的航天員的各種模擬訓練提供數(shù)據(jù)服務[3-5]。
目前,國內(nèi)外已經(jīng)開發(fā)了一些關于人體運動的可視化計算機仿真軟件,這些成果大多用于宇航與工效評估領域。運動人體軟件(DynamicMan,DYNMAN)[6]由美國電子安全協(xié)會開發(fā),主要用于人機工程和人體模型的運動學仿真,可進行零重力和正常重力下宇航員的運動以及對航天機艙的工作環(huán)境評估,并提供不同形態(tài)特征的宇航員的三維圖象模型,具有較強的可視性,但沒有考慮人體的動力學特性和人體受力問題。美國賓夕法尼亞大學人體建模與仿真中心開發(fā)的Jack軟件是一種人體行為仿真分析軟件[7-8],能夠按照設計者的要求模擬人體姿態(tài)并生成連續(xù)的動作仿真。是目前應用最廣泛的一種人體運動仿真軟件,但它無法實現(xiàn)對失重狀態(tài)下航天員動作的動力學分析和計算,不利于掌握人體各關節(jié)的受力情況。同時,該軟件價格比較昂貴,非Jack軟件的用戶無法使用其人機交互功能,因此,應用上有一定的局限性。針對上述問題,有必要建立一種易于普及且有一定交互能力的虛擬人運動分析軟件,實現(xiàn)對失重狀態(tài)下航天員動作分析與仿真。雖然航天員艙外作業(yè)動力學具有特殊的物理背景,但究其本質(zhì),仍然符合普遍意義下的運動學和動力學規(guī)律,虛擬人可劃分為多個體段,視為多剛體的動力學模型,其動力學問題的研究符合多剛體機器人動力學的研究條件,可應用機器人Denavit-Hartenberg(DH)分析方法進行虛擬人的建模和分析[9],相比于Matlab,Maple等工程語言,機器人相關運動學和動力學分析算法更適宜采用標準C語言進行開發(fā),其執(zhí)行速度快,代碼移植性好,因此,本文提出一種基于Visual C++(VC)平臺的虛擬人運動分析軟件設計方法,該方法采用C語言編寫虛擬人運動分析算法,同時集成OpenGL圖形庫開發(fā)可視化仿真界面,建立虛擬人的三維仿真場景。
本文所開發(fā)的VC軟件以失重狀態(tài)下虛擬人體運動分析和仿真研究為目標,通過設定各種輸入條件(包括人體測量參數(shù)、運動軌跡上的關鍵點、外力參數(shù)、各體段及關節(jié)的速度等),解算出沿該軌跡運動時的詳細路徑,以及在完成該運動過程中人體各關節(jié)的力矩。運動仿真結(jié)果以三維模型的形式顯示,數(shù)據(jù)以文本形式保存。
2.1 設計方案結(jié)構(gòu)
軟件系統(tǒng)以人體運動分析為核心,結(jié)合航天員艙外活動中漂浮出艙、開艙門、爬梯3個典型動作展開研究,完成了軟件的整體方案設計,方案包括3個基本的功能模塊:(1)虛擬人體建模;(2)受力運動分析;(3)運動學和動力學解算。
整體設計方案結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)整體設計方案結(jié)構(gòu)
主要模塊具體如下:
(1)虛擬人體的建模模塊
建模模塊主要完成虛擬人體模型體段劃分,進行虛擬人體整體坐標系與各體段坐標系的定義,確定各坐標系之間的變化關系。
(2)受力運動分析模塊
受力運動分析模塊主要完成虛擬人在運動中各體段質(zhì)心位姿的計算、外力/力矩對人體位姿影響的解算及計算給定人體運動所需的外力/力矩。
(3)運動學和動力學解算模塊
運動學和動力學解算模塊主要完成運動約束條件分析、給定路徑關鍵點的軌跡規(guī)劃和沿給定運動軌跡的各體段關節(jié)力和力矩解算。
2.2 軟件程序設計流程
根據(jù)軟件整體設計方案,虛擬人體運動分析解算的C語言程序流程如圖2所示。
圖2 虛擬人體運動分析C語言流程
為避免錯誤發(fā)生,程序設計時考慮了異常情況處理。異常情況主要包括接口數(shù)據(jù)文本輸入格式錯
誤、文本輸入數(shù)據(jù)顯失真、數(shù)據(jù)保存錯誤等。對于如上錯誤形式,可根據(jù)程序提示核對文本輸入數(shù)據(jù),給出正確的數(shù)據(jù)形式。
虛擬人的建模需要考慮人體的基本結(jié)構(gòu)也要考慮人體運動的動態(tài)特征。在本文軟件設計中的人體建模結(jié)合了機器人學和剛體運動學相關技術(shù),將虛擬人體進行必要的體段劃分,并將各體段簡化為不同形狀的勻質(zhì)剛體來進行處理,在不影響結(jié)果的情況下,使分析計算量大大簡化。
3.1 虛擬人體建模
本文軟件所采用的虛擬人體建模參數(shù)按中國成年男子(170 cm)的平均體段數(shù)據(jù)做為參考標準[10-12]。 根據(jù)設計需求,建模需要人體各體段質(zhì)量、尺寸、回轉(zhuǎn)半徑、轉(zhuǎn)動慣量參數(shù)數(shù)據(jù),作為輸入?yún)?shù),實際應用可根據(jù)宇航員的真實情況進行相應調(diào)整。
借鑒機器人學的相關技術(shù),將虛擬人體簡化為空間多臂機器人模型,分成5個分支共15個體段來分析。軀干作為載體部分,5個分支分別是左臂分支、右臂分支、左腿分支、右腿分支、頭頸分支。15個體段分別是軀干、左上臂、左前臂、左手部、右上臂、右前臂、右手部、左大腿、左小腿、左腳部、右大腿、右小腿、右腳部、頸部、頭部。 其中,左臂、右臂分支各7個自由度,左腿、右腿分支各4個自由度,頭頸分支2個自由度[13-14],15個體段共包括24自由度。
圖3為系統(tǒng)整體坐標系,i=1,2,3,4,5分別代表左臂分支、右臂分支、左腿分支、右腿分支和頭頸分支。
圖3 系統(tǒng)整體坐標系
變量定義如下:
(1)ΣI:慣性坐標系;
(2)ΣO:軀干坐標系;
(3)ΣiB:i臂基座坐標系;
(4)Σik:i臂第k桿坐標系(k=0,1,…,n);
(5)Cik:i臂第k桿質(zhì)心(k=0,1,…,n);
(6)Jik:連接i臂第k-1桿和第k桿之間的關節(jié)(k=0,1,…,n);
(7)bi0:軀干質(zhì)心到i臂第一關節(jié)的向量;
(8)rIO:慣性坐標原點到軀干質(zhì)心的向量;
(9)rik:i臂第k桿質(zhì)心位置向量(k=0,1,…,n);
(10)rie:i臂末端位置向量。
虛擬人體各體段分支采用機器人運動學DH方法建立連桿坐標系,以左臂分支為例,其各體段連桿坐標系如圖4所示。
圖4 左臂分支連桿坐標系
在圖4中,Lua,Lfa和Lhd分別表示左上臂、左前臂和左手的長度;Cua,Cfa和Chd分別表示各自的質(zhì)心。
根據(jù)左臂分支各關節(jié)連桿的DH參數(shù)可以寫出各個關節(jié)連桿之間以及左上臂、左前臂、左手到相應的關節(jié)連桿的變換矩陣。2個相鄰坐標系之間的DH參數(shù)變換矩陣為:
其中,a,α,d和θ為DH參數(shù),可由圖4坐標系得到。同理可建立其他分支局部坐標系各體段之間的變換矩陣。
3.2 虛擬人體受力運動分析
與地面情況不同,在空間環(huán)境下,人體處于失重狀態(tài),系統(tǒng)受到的外力主要來自于人體與外部環(huán)境(操作物或艙體)的接觸力。作用力的作用點主要在四肢部位(手部及腳部)。因此,對于虛擬人受力分析主要考慮2點:四肢受力和接觸外力。其正問題是考慮虛擬人受力后對人體位姿的影響。反問題是
考慮人體要達到某種位姿,反推需要作用的外力。下面著重說明受力對人體位姿的影響。
在空間環(huán)境下,人體受力主要作用在四肢部位,以手部受力為例,一般力的作用點選取在左手或右手的質(zhì)心位置。為簡化運算,對于推力動作,力的作用方向垂直手心向內(nèi),而對于拉力動作,力的作用方向垂直手心向外。
圖5 虛擬人體受力分析
對人體位姿將產(chǎn)生較大影響,其分析步驟如下:
(1)確定人體受力時刻的狀態(tài)。一般由軀干質(zhì)心位姿和各體段關節(jié)角來確定。由于人體受力后會相對其質(zhì)心繞χ,y和z軸反轉(zhuǎn),因此受力狀態(tài)還包括確定質(zhì)心位置和人體相對于質(zhì)心轉(zhuǎn)軸的轉(zhuǎn)動慣量。
(2)為在力坐標系即系統(tǒng)質(zhì)心系下分析,求力在系統(tǒng)質(zhì)心系χ-y-z 3個方向的投影。
(3)計算系統(tǒng)產(chǎn)生了平動速度向量 V和位移d向量。
由于手部受力作用實際較短,可以視為人體受到了沖量的作用。設沖量作用的時間為tf,人體受力的飄浮時間為tm。人體總質(zhì)量設為Ma,則根據(jù)沖量定理得:
(4)計算繞系統(tǒng)質(zhì)心χ,y,z方向的力臂和力矩。
作用力相對于系統(tǒng)質(zhì)心的力臂向量 L,即手部質(zhì)心相對系統(tǒng)質(zhì)心系的位置向量h在3個方向的值為手部質(zhì)心與系統(tǒng)質(zhì)心坐標差如下:
進而結(jié)合3個方向上的受力,求出繞系統(tǒng)質(zhì)心系χ,y,z軸力矩向量M的大?。?/p>
(5)計算運動角速度向量 ω和繞系統(tǒng)質(zhì)心角位移向量θ。
根據(jù)已經(jīng)求得的力矩和轉(zhuǎn)動慣量,由動量矩定理可得到虛擬人體繞質(zhì)心系 χ,y,z軸的角速度向量ω:
在受力后的漂浮階段可以視其角速度不變,因此,繞質(zhì)心三方向的角位移向量θ:
(6)計算末點軀干位姿。由于本文計算以軀干質(zhì)心位姿為基準,因此需要根據(jù)系統(tǒng)質(zhì)心反算軀干質(zhì)心。
至此,得出終點處軀干位姿坐標,由于各體段關節(jié)角在此過程中保持不變,則終點處人體系統(tǒng)狀態(tài)
確定,根據(jù)軀干坐標系與各體段坐標系的變換關系,各體段位姿坐標可求。
4.1 虛擬人三維模型的建立
本文應用機器人學技術(shù),將虛擬人體簡化為空間多臂機器人模型來分析,虛擬人的三維模型可參考一般機器人的三維模型的建立過程[15-16],這里將單臂機器人擴展為五臂機器人,在Visual C++開發(fā)環(huán)境下,構(gòu)建虛擬人OpenGL三維模型,基于VC平臺的虛擬人運動分析軟件界面如圖6所示。
圖6 基于VC平臺的虛擬人運動分析軟件界面
該軟件界面中左邊為仿真視景區(qū),右邊為操作面板區(qū),進行運動學和動力學分析等多項操作。
4.2 虛擬人飄浮動作運動仿真
圖7給出了一組虛擬人自由漂浮動作的仿真,其中,圖7(a)~圖7(f)分別表示了0 s~15 s中6個關鍵幀的圖像。
圖7 虛擬人自由漂浮動作關鍵幀仿真
它模擬了宇航員出艙的運動。這一組漂浮動作仿真的6個關鍵幀位姿數(shù)據(jù)可由Jack軟件提供,輸出txt文件。VC軟件讀入這些初始數(shù)據(jù)后,利用3次條樣插值算法完成這個路徑規(guī)劃并輸出仿真動作結(jié)果,計算給出該路徑下各關節(jié)的力矩在不同時刻t時對應的計算結(jié)果如表1和表2所示。
表1 左、右臂分支7個關節(jié)的力矩 (N·m)
表2 左、右腿分支4個關節(jié)的力矩 (N·m)
計算數(shù)據(jù)的準確性目前由于各種條件限制無法進行驗證,在現(xiàn)階段可以通過國外航天員艙內(nèi)活動的數(shù)據(jù)加以定性的驗證。將來預想可以通過采集我國航天員在失重水槽以及太空中的活動數(shù)據(jù)進行驗證。
為完成航天員艙外動作仿真和動力學分析的任務,本文提出一種基于VC平臺的虛擬人運動分析軟件設計方法,該方法將虛擬人簡化為空間五臂機器人,在VC平臺下構(gòu)建虛擬人的OpenGL三維仿真模型,結(jié)合導入的Jack人體位姿數(shù)據(jù),應用機器人動力學分析方法解算出失重狀態(tài)下的虛擬人出艙運動軌跡及該路徑軌跡下各關節(jié)的力矩。仿真結(jié)果表明,多臂機器人技術(shù)可應用于虛擬人運動分析和研究,據(jù)此設計開發(fā)的虛擬人VC平臺能為太空環(huán)境下的航天員各種模擬訓練提供數(shù)據(jù)服務,具有一定的應用價值。然而本文未考慮航天員身著航天服的條件,因此,今后可進一步研究著航天服條件下虛擬人的運動分析與仿真問題,使該軟件平臺具有更好的使用和推廣意義。
[1] 孫海鵬,王永生.俄羅斯航天員艙外活動地面模擬訓練方法與設備[J].國際太空,2012,25(10):26-32.
[2] Mousavi M,Appendino S,Battezzato A,et al.A New Method of Measuring the Stiffness of Astronauts’EVA Gloves[J].Acta Astronautica,2014,91(1):130-137.
[3] 李靜文,丁 立,楊愛萍.航天員艙外活動生物力學仿真及驗證[J].醫(yī)用生物力學,2012,27(4):438-443.
[4] 李 昊,李東旭,陳善廣.航天員艙外作業(yè)動力學建模與仿真方法研究[J].載人航天,2012,18(6):54-60.
[5] Liu Shuliang,Liu Qianyun.Numerical Simulation of EVA in Thermal Power Plants Based on System Dynamics[J].Chemical and Pharmaceutical Research,2014,6(5):368-373.
[6] 唐 毅,葛運建,江建舉,等.人體力學行為的計算機仿真的發(fā)展及其展望[J].系統(tǒng)仿真學報,2004,16(5):863-867.
[7] 劉社明,王小平,陳登凱,等.基于JACK的駕駛艙仿真及人機工效分析[J].計算機與現(xiàn)代化,2013,(8):106-110.
[8] 王 華,陳永科,楊艾軍,等.基于JACK的虛擬人維修動作生成設計[J].兵工自動化,2014,33(9):33-37.
[9] 韓建海.工業(yè)機器人[M].武漢:華中科技大學出版社,2012.
[10] 周前祥,柳忠起,丁松濤,等.中國青年男性人體特征體段幾何尺寸的相關性分析[C]//2011年空間生命與生命起源暨航天醫(yī)學工程學術(shù)研討會論文集.西安:中國空間科學學會,2011:50-56.
[11] 楊 敏,劉國聯(lián).南北方青年男體體型差異性分析[J].北京服裝學院學報,2014,34(1):53-57.
[12] 戚福洲.基于國際人體測量學數(shù)據(jù)的虛擬人建模技術(shù)研究[D].成都:西南交通大學,2014.
[13] 羅 冠,郝重陽,張 雯,等.虛擬人技術(shù)研究綜述[J].計算機工程,2005,31(18):7-9.
[14] 莊運杰,馬 麟,高 杰.虛擬人運動仿真的VRML重構(gòu)研究[J].系統(tǒng)仿真學報,2009,21(11):3321-3324.
[15] 董天平,馬 燕,劉倫鵬.基于OpenGL的工業(yè)化機器人仿真研究[J].重慶師范大學學報:自然科學版,2013,30(2):60-64.
[16] 李素芳,谷 林.基于3DS與OpenGL的三維人體模型構(gòu)建方法[J].軟件導刊,2013,12(12):156-160.
編輯 劉 冰
Virtual Human Motion Analysis Software Based on VC Platform
HONG Lei1,JI Baojian2,WANG Yuguo1
(1.School of Automotive&Rail Transit,Nanjing Institute of Technology,Nanjing 211167,China;2.College of Automation and Electrical Engineering,Nanjing University of Technology,Nanjing 211800,China)
Jack software can not realize the dynamic solution for Virtual Human(VH)motion at the state of weightlessness.Based on relative robotics and rigid body kinematics,a new concept of VH motion analysis software is presented in this paper to solve the above problems.According to the basic structure of human body and its dynamic characteristic,the VH is divided into a model of 15 rigid segments with even density and rigid kinematics model can be established,the algorithms for VH kinematics and dynamics analysis are implemented by standard C programs based on Denavit-Hartenberg method of robotic kinematic,and the visualization simulation interface is developed by OpenGL.Its feasibility is verified by the cabin floating action simulation for virtual human,and the software platform has good humancomputer interaction.
Virtual Human(VH);Extra-vehicular Activity(EVA);VC platform;visualization;gravity free condition
洪 磊,嵇保健,王玉國,等.基于VC平臺的虛擬人運動分析軟件[J].計算機工程,2015,41(10):71-75,82.
英文引用格式:Hong Lei,Ji Baojian,Wang Yuguo,et al.Virtual Human Motion Analysis Software Based on VC Platform[J].Computer Engineering,2015,41(10):71-75,82.
1000-3428(2015)10-0071-05
A
TP391.9
10.3969/j.issn.1000-3428.2015.10.014
江蘇省科技計劃產(chǎn)學研聯(lián)合創(chuàng)新資金前瞻性聯(lián)合研究基金資助項目(BY2014005-09);南京工程學院校級科研基金資助項目(YKJ201333)。
洪 磊(1982-),男,講師、博士,主研方向:參數(shù)化人體建模,虛擬現(xiàn)實,機器人技術(shù);嵇保健,講師、博士;王玉國,副教授、博士。
2014-10-17
2014-12-10E-m ail:njithl@163.com