• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于C3D數(shù)據(jù)的人體模型逆向動力學(xué)仿真分析方法

      2020-04-09 08:16李國成王亞平
      計算機(jī)輔助工程 2020年1期
      關(guān)鍵詞:動力學(xué)受力逆向

      李國成 王亞平

      摘要:基于AnyBody人體建模仿真分析軟件,采用試驗得到的動作捕捉格式數(shù)據(jù)C3D文件,研究人體逆向動力學(xué)仿真分析方法,給出C3D驅(qū)動AnyBody人體運動仿真分析時的操作步驟、報錯分析及其解決方案。仿真結(jié)果表明:人體模型基本參數(shù)設(shè)置、C3D參數(shù)設(shè)置、關(guān)鍵點的擬合和足底壓力板參數(shù)調(diào)節(jié)是實現(xiàn)人體模型動態(tài)分析的關(guān)鍵,其能有效提高人體模型逆向動力學(xué)仿真精度。

      關(guān)鍵詞:

      人體模型; AnyBody軟件; C3D文件; 逆向動力學(xué); 仿真

      中圖分類號:G804.63;T391.99

      文獻(xiàn)標(biāo)志碼:B

      Reverse dynamics simulation method on human body model

      based on C3D data

      LI Guocheng, WANG Yaping

      (School of Mechanical Engineering, Nanjing University of Science & Technology, Nanjing 210094, China)

      Abstract:

      Based on the simulation and analysis software AnyBody for human body modeling, the simulation and analysis method of human reverse dynamics is studied by using the test motion capture format data file C3D. The operation steps and the error analysis and its solution are presented for human motion simulation analysis of AnyBody driven by C3D. The simulation results show that the keys to realize dynamic analysis of human model are the basic parameters setting of human body model, the setting of C3D parameters, the fitting of key points, and the parameters adjustment of plantar pressure plate, and then the accuracy of inverse dynamics simulation of human body model can be improved.

      Key words:

      human body model; AnyBody software; C3D document; reverse dynamics; simulation

      0?引?言

      隨著逆向動力學(xué)研究的發(fā)展與深入,人體逆向動力學(xué)分析仿真技術(shù)已被廣泛使用,如歐美國家已使用于與人體生物力學(xué)相關(guān)的航空航天、康復(fù)醫(yī)療和汽車運輸?shù)阮I(lǐng)域[1?3],國內(nèi)在康復(fù)訓(xùn)練、騎行駕駛、運動空降等方面也已開展相關(guān)研究[4?6]。

      目前,常用的人體模型主要有3種:(1)多剛體人體模型;(2)有限元人體模型;(3)肌肉骨骼系統(tǒng)力學(xué)模型。

      多剛體人體模型不涉及肌肉和軟組織結(jié)構(gòu),只從運動學(xué)的角度研究問題。該模型在工業(yè)上使用最廣泛,但其不能從肌肉力、關(guān)節(jié)力出發(fā)對人體的生物力學(xué)載荷給予定量評估。這類典型軟件有SIEMENS Tecnomatix Jack。

      有限元人體模型擁有高度真實的人體肌肉和骨骼網(wǎng)格單元,具有求解肌肉力的實時優(yōu)化計算功能,有較好的仿真精度,但該類模型更多地適用于研究某特定工況下的載荷分布和組織形變,且需要很大的計算量。這類典型軟件有美國愛荷華州立大學(xué)開發(fā)的數(shù)字人體模型Santos。[7]

      肌肉骨骼系統(tǒng)力學(xué)模型包含筋骨肌腱與肌肉系統(tǒng),可以經(jīng)濟(jì)、有效、快速地求解試驗難以直接測量的人體關(guān)節(jié)力、肌肉負(fù)載,因此備受關(guān)注。[8]這類典型軟件主要有斯坦福大學(xué)的OpenSim[1]和丹麥的AnyBody[9]。OpenSim生物力學(xué)仿真平臺采用開源輸入,但操作繁雜;AnyBody人體建模仿真分析軟件擁有獨立的腳本語言AnyScript和模型庫,AnyScript與C語言、C++和Python有相似的結(jié)構(gòu),便于理解,且模型庫中包含成熟的實際應(yīng)用案例,是目前使用最廣泛的人體逆向動力學(xué)仿真分析軟件之一。

      目前,基于動作捕捉格式數(shù)據(jù)C3D文件驅(qū)動的AnyBody逆向動力學(xué)仿真分析方法尚未被廣泛掌握,未見相關(guān)文獻(xiàn)報道。本文以C3D文件驅(qū)動AnyBody人體逆向動力學(xué)仿真過程為研究對象,給出人體運動模擬仿真方法。針對此類仿真過程中流程不清晰、不齊全和分析報錯等問題,提供集中且具體的解決方案。仿真分析經(jīng)驗對運用此類方法解決問題具有參考意義。

      1?人體逆向動力學(xué)分析方法和步驟

      驅(qū)動人體模型進(jìn)行逆向動力學(xué)仿真分析的方式有2種,即驅(qū)動器代碼驅(qū)動和運動捕捉數(shù)據(jù)驅(qū)動。簡單運動可通過代碼直接驅(qū)動人體進(jìn)行逆向動力學(xué)計算,但實際情況下人體運動復(fù)雜多樣,如行走、下蹲、匍匐、抬手等動作,若通過運動捕捉數(shù)據(jù)(C3D、BVH格式)驅(qū)動,對準(zhǔn)確分析人體運動特性更有效。

      本文使用AnyBody 6.0及其AMMR 1.6.2模型庫,引用模型庫中的實例模板[10?11],建立人體環(huán)境模型。采用具有3塊力板的人體行走模型MoCapModel;輸入的C3D文件采用VICON三維運動捕捉系統(tǒng)和三維測力臺同步采集獲得,其中包含人體運動與足底三維力2部分?jǐn)?shù)據(jù)。

      基于C3D文件驅(qū)動的人體逆向動力學(xué)仿真分析基本步驟如下:

      (1)輸入C3D文件。將C3D文件復(fù)制到Input文件夾下,更改代碼中的C3D文件名。

      (2)調(diào)節(jié)人體參數(shù)與姿態(tài)。調(diào)節(jié)人體體節(jié)等基本參數(shù),如身高、體重等,并將人體姿態(tài)調(diào)節(jié)到C3D文件所指示的方向,調(diào)整人體重力方向。

      (3)關(guān)鍵點擬合。將C3D文件中的數(shù)據(jù)點與模型中的關(guān)鍵Marker點進(jìn)行擬合,使之重合或充分接近。人體模型由C3D文件中點的坐標(biāo)軌跡驅(qū)動,實現(xiàn)運動。

      (4)調(diào)節(jié)壓力板參數(shù)。三維測力臺測得的足底三維力等數(shù)據(jù)用于人體受力平衡分析。按照試驗中三維測力臺的類型與數(shù)據(jù)進(jìn)行壓力板參數(shù)設(shè)置和調(diào)節(jié),有助于模型動態(tài)分析順利進(jìn)行。

      (5)運動與參數(shù)最優(yōu)化運算。此運算在不包含任何力參與的情況下,獲得包含體位參數(shù)、更新后的標(biāo)記點位置和運動信息的txt文件,用于運動驅(qū)動確認(rèn)和參數(shù)優(yōu)化。

      (6)逆向動力學(xué)仿真。運用上一步得到的txt文件,在有力參與的情況下進(jìn)行逆向動力學(xué)分析,得到關(guān)節(jié)受力、肌肉受力和肌肉激活度等信息。

      2?人體體節(jié)比例調(diào)節(jié)

      輸入C3D文件后,需要更新人體模型的基本尺寸參數(shù),如被試者的身高、體重等,以保持模型與實際被試者的人體尺寸基本一致。

      打開主文件框的Input/TrialSpecificDate. any,更改BodyMass與BodyHeight的值。若只更改上述2項參數(shù),模型在參數(shù)優(yōu)化時可能會出現(xiàn)體節(jié)比例失調(diào)的問題。因此,根據(jù)實際人體尺寸,

      修改其他人體體節(jié)參數(shù)。人體體節(jié)參數(shù)修改代碼如下:

      AnyFolder Anthropometrics={

      AnyVar BodyMass=110;

      AnyVar BodyHeight=1.80;

      AnyVar ThighLength= 0.4405873526;

      AnyVar ShankLength= 0.4287552139;

      AnyVar FootLength=0.2184971098;

      AnyVar PelvisWidth=0.1664739884;

      AnyVar HeadHeight = 0.1456647399;

      AnyVar TrunkHeight = 0.6453291329;

      AnyVar UpperArmLength = 0.353839422;

      AnyVar LowerArmLength =0.27990017688;

      AnyVar HandLength = 0.1893641618;

      AnyVar HandBreadth = 0.0884393064;

      };

      3?試驗運動數(shù)據(jù)與人體關(guān)鍵點擬合

      用C3D文件中的試驗運動數(shù)據(jù)驅(qū)動人體模型完成指定動作,因此試驗運動數(shù)據(jù)與人體關(guān)鍵點的擬合是保證人體運動順利完成的關(guān)鍵。

      3.1?系統(tǒng)參數(shù)設(shè)置

      在試驗運動數(shù)據(jù)與人體關(guān)鍵驅(qū)動點擬合前,將主程序中的MotionAndParameterOptimizationModel改為1,InverseDynamicModel改為0,修改代碼如下:

      #ifndef MotionAndParameterOptimizationModel

      #define MotionAndParameterOptimizationModel 1

      #endif

      #ifndef InverseDynamicModel

      #define InverseDynamicModel 0

      #endif

      3.2?人體姿態(tài)調(diào)節(jié)

      初始狀態(tài)下人體模型的坐標(biāo)系與C3D中的坐標(biāo)系不一致,需要根據(jù)實際情況旋轉(zhuǎn)人體模型。本文所用C3D數(shù)據(jù)需要將人體模型繞x與z軸各旋轉(zhuǎn)90°,更改坐標(biāo)系代碼如下:

      AnyVar PelvisRotZ=90;

      AnyVar PelvisRotY=0;

      AnyVar PelvisRotX=90;

      調(diào)節(jié)后的人體姿態(tài)模型見圖1。圖中的人體姿態(tài)出現(xiàn)異常,理論上應(yīng)調(diào)節(jié)關(guān)節(jié)角度,但后期要進(jìn)行模型運動與參數(shù)最優(yōu)化運算,因此關(guān)節(jié)角度的更改對分析并無影響,此處可不更改。

      代碼默認(rèn)重力方向Gravity為{0,-9.81,0},需要更改Gravity為{0,0,-9.81},使軟件中重力的方向與C3D數(shù)據(jù)文件中的重力方向保持一致。

      3.3?C3D參數(shù)設(shè)置定義

      若C3D文件中有數(shù)據(jù),但在模型視圖窗口中始終無法觀察到標(biāo)記點的移動,則需注意以下2點:(1)C3D文件里點的坐標(biāo)單位與軟件中默認(rèn)的單位是否一致,若要將單位mm改為m,則需在C3DSettings.any中設(shè)置PointScaleFactor= 1/1000;(2)C3D文件是否被其他軟件處理過并將標(biāo)記點的數(shù)據(jù)放入已處理數(shù)據(jù)部分,可設(shè)置C3DSettings.any中MarkerUseAllPointsOnOff=On解決問題[12]。

      若不希望在模型視圖窗口中顯示C3D中點的三維軌跡,可將C3DSettings.any中的ConstructChartOnOff設(shè)置為Off即可。

      3.4?關(guān)鍵點的擬合和最優(yōu)化運算

      RunMotionAndParameterOptimizationSequence可進(jìn)行模型運動與參數(shù)最優(yōu)化運算。

      若在運算過程中報錯,且提示Marker點容差過大,則是由關(guān)鍵Marker點與C3D驅(qū)動數(shù)據(jù)點距離過大造成的。此時,可在樹狀窗口中點擊InitialConditions并運行,模型將移動到C3D文件的初始位置。在模型視圖窗口中可觀察到人體模型上關(guān)鍵Marker點與C3D驅(qū)動數(shù)據(jù)點之間的距離,見圖2。更改人體模型關(guān)鍵點的位置偏移量sRelOpt,將Marker點與關(guān)鍵點靠近至重合或充分接近。為工作簡便,可只運行Kinematics,直至分析成功。

      RunMotionAndParameterOptimizationSequence運行成功后,系統(tǒng)將自動保存txt文件,其中包含更新后的體位參數(shù)、更新后的標(biāo)記點位置和運動信息。

      4?壓力板設(shè)置

      人體足底壓力數(shù)據(jù)保持人體受力平衡,壓力板提供人體足底壓力和力矩等數(shù)據(jù)。

      4.1?壓力板類型

      模型庫中自帶的壓力板有3種類型,可設(shè)置為基本版本或AutoDetection版本,見圖3。

      基本版本沒有自動檢測功能,需要手動設(shè)置人體與特定壓力板接觸的部分。AutoDetection版本可自動檢測足底與特定壓力板的接觸。

      軟件中默認(rèn)壓力板類型為4型AutoDetection力板,其設(shè)置代碼如下:

      ForcePlateType4AutoDetection Plate1 (

      PlateName = Plate1,

      Folder =Main.ModelSetup.C3DFileData,

      Limb1=.BodyModelRef.Right.Leg.Seg.Foot,

      Limb2=.BodyModelRef.Left.Leg.Seg.Foot,

      No=0,

      VerticalDirection ="Y",

      HeightTolerance=0.07,

      VelThreshold=2.2,

      Fx=Main.ModelSetup.C3DFileData.Analog.DataFiltered.Fx1,

      Fy=Main.ModelSetup.C3DFileData.Analog.DataFiltered.Fy1,

      Fz=Main.ModelSetup.C3DFileData.Analog.DataFiltered.Fz1,

      Mx=Main.ModelSetup.C3DFileData.Analog.DataFiltered.Mx1,

      My=Main.ModelSetup.C3DFileData.Analog.DataFiltered.My1,

      Mz=Main.ModelSetup.C3DFileData.Analog.DataFiltered.Mz1,F(xiàn)ootPresent=HumanModelPresent)

      ={

      Cal=Main.ModelSetup.C3DFileData.Groups.FORCE_PLATFORM.CAL_MATRIX.Data[0];

      Switch_DrawForceVectorFromCOP = On;

      };

      4.2?壓力板參數(shù)定義

      實際試驗測試場景下的壓力板位置見圖4。總共設(shè)有6塊壓力板,人體左、右腳分別站在第3和第4塊壓力板上。

      C3D文件中的壓力板類型見圖5,查詢可知Date={2,2,2,2,2,2},表示6塊壓力板的類型均為2。

      軟件中的壓力板類型應(yīng)與C3D文件中的壓力板類型保持一致。將軟件中的壓力板改為2型AutoDetection力板,即

      第4.1節(jié)代碼

      中ForcePlateType4AutoDetection應(yīng)改為ForcePlate?Type2AutoDetection。VerticalDirection表示壓力板所在地平面的法線方向,默認(rèn)為y,應(yīng)修改為z,使其與人體重力方向保持一致。

      常見問題處理方式如下。

      (1)出現(xiàn)壓力板提示報錯。原因可能是C3D文件中力和力矩命名與默認(rèn)命名存在差異,按原文件力和力矩的路徑修改名稱即可。注意此時使用的是經(jīng)軟件處理過的C3D文件,應(yīng)使用DateFiltered下的力和力矩數(shù)據(jù),而不是Date內(nèi)的原始數(shù)據(jù)。

      (2)出現(xiàn)Cal行報錯。Cal為壓力板的校準(zhǔn)矩陣,如果試驗使用的壓力板不存在校準(zhǔn)矩陣,那么將Cal行注銷即可。

      (3)軟件中壓力板的顯示不在人體腳部正下方(見圖6),而在圖4中1、2位置處。打開壓力板的底層代碼文件ForcePlateType2AutoDetection.any,查看壓力板的位置組成參數(shù)。No值是壓力板的空間位置坐標(biāo)組成元素,調(diào)節(jié)No值可以更改壓力板的空間位置。將兩塊壓力板的No值分別改為2和3,壓力板將顯示為圖4中的正確位置3和4上,結(jié)果見圖7。

      5?逆向動力學(xué)分析

      RunMotionAndParameterOptimizationSequence運

      行成功后,將主程序中的MotionAnd

      Parameter

      OptimizationModel參數(shù)改為0,將InverseDynamic

      Model參數(shù)改為1,點擊InverseDynamicAnalysis

      Sequence,可以進(jìn)行逆向動力學(xué)計算。

      逆向動力學(xué)計算結(jié)束后,依次點擊Window→Chart2D/3D,可查看計算結(jié)果。若肌肉激活度大于1,排除模型姿勢不正確的原因外,可能是由于肌肉強度定義不正確,可在HumanModel.any中根據(jù)被試者實際情況適當(dāng)調(diào)節(jié)人體肌肉強度SpecificMuscleTensionSpine、StrengthIndexLeg和SpecificMuscleTensionShoulderArm的值。

      6?分析實例

      根據(jù)實驗室VICON三維運動捕捉系統(tǒng)和三維測力臺測得的真實C3D數(shù)據(jù)文件,進(jìn)行舉重運動員抓舉杠鈴動作的逆向動力學(xué)仿真分析。添加必要的環(huán)境條件,模擬人體雙手受杠鈴質(zhì)量載荷的受力情況,最終得到人體腰椎關(guān)節(jié)的受力情況。仿真結(jié)果見圖8,其中L1~L5分別表示第1~5腰椎。

      (1)腰椎關(guān)節(jié)在上下方向上的受力趨勢基本一

      致,且上下方向上受力最為明顯,最大受力位于L5與骶骨之間,此處上下方向上的力約為6 kN。

      腰椎關(guān)節(jié)前后方向上受力趨勢差異明顯,具體表現(xiàn)為腰椎上端受力向后,下端受力向前,中間部分逐漸過渡;左右方向上的受力趨勢基本一致,且受力均較小。

      (2)L1關(guān)節(jié)處上下方向上受力約為5.4 kN,與杠桿原理得出的L1腰椎受垂直壓縮力量級[5]一致。因文獻(xiàn)[5]中計算的是靜態(tài)人體腰椎關(guān)節(jié)受力,且只考慮豎脊肌力,與本文動態(tài)分析、考慮全身肌肉協(xié)同工作不同,故存在數(shù)值結(jié)果上的差異。

      7?結(jié)束語

      介紹基于運動捕捉數(shù)據(jù)C3D文件驅(qū)動人體模型運動的方法,結(jié)果認(rèn)為:人體姿態(tài)調(diào)節(jié)時,各關(guān)節(jié)角度調(diào)節(jié)與否對仿真分析的結(jié)果并無影響;通過調(diào)節(jié)人體參數(shù)與擬合關(guān)鍵點,可極大地提高模型逆向動力學(xué)仿真分析的精度;足底數(shù)據(jù)保持人體模型受力平衡,是模型逆向動力學(xué)分析成功的重要因素。本文逆向動力學(xué)仿真操作步驟、研究重點、代碼釋義、報錯分析及其問題解決方案等,對實現(xiàn)C3D文件驅(qū)動的人體逆向動力學(xué)分析和提高仿真分析精度具有參考意義。

      參考文獻(xiàn):

      [1]?SETH A, SHERMAN M, REINBOLT J A, et al. OpenSim: A musculoskeletal modeling and simulation framework for in silico investigations and exchange[J]. Procedia IUTAM, 2011(2): 212?232. DOI: 10.1016/j.piutam.2011.04.021.

      [2]?LEMIEUX P O, NATALIA N, NICOLA H, et al. Mechanical analysis of cuff tear arthropathy during multiplanar elevation with AnyBody shoulder model[J]. Clinical Biomechanics, 2012, 27(8): 801?806. DOI: 10.1016/j.clinbiomech.2012.04.008.

      [3]?TITO B, ELENA S, QIAN Z H, et al. Validation of AnyBody full body musculoskeletal model in computing lumbar spine loads at L4L5 level[J]. Journal of Biomechanics, 2017, 58(14): 89?96. DOI: 10.1016/j.jbiomech.2017.04.025.

      [4]?丁晨, 王君澤, 高瞻. 基于AnyBody的汽車駕駛中人體腿部逆向動力學(xué)仿真[J]. 中國生物醫(yī)學(xué)工程學(xué)報, 2013, 32(1): 124?128. DOI: 10.3969/j.issn.0258?8021.2013.01.019.

      [5]?鮑春雨, 孟慶華. 有限元法分析舉重運動員預(yù)備提鈴動作過程中腰椎節(jié)段的受力變化[J]. 中國組織工程研究與臨床康復(fù), 2010, 14(35): 6517?6519. DOI: 10.3969/j.issn.1673?8225.2010.35.014.

      [6]?付理強. 基于AnyBody模擬空降兵半蹲式著陸脊柱生物力學(xué)分析: 脊柱力矩、關(guān)節(jié)反作用力、肌肉激活度相關(guān)研究[D]. 大連: 大連醫(yī)科大學(xué), 2017.

      [7]?RASMUSSEN J, CHRISTENSEN S T. Musculoskeletal modeling of egress with AnyBody modeling system[C]// Proceedings of 2005 Digital Human Modeling for Design and Engineering Symposium. Iowa: SAE International, 2015: 519?522. DOI: 10.4271/2005?01?2721.

      [8]?CHOI H Y, SAH S J, NA S, et al. Human body modeling for virtual seat comfort testing[C]// Proceedings of 2006 Digital Human Modeling for Design and Engineering Conference. Lyon: SAE International, 2016: 20588?20594. DOI: 10.4271/2006?01?2335.

      [9]?孟祥杰. 基于肌肉骨骼生物力學(xué)載荷的駕駛?cè)搜渴孢m性研究[D]. 北京: 北京大學(xué), 2015.

      [10]?劉書朋, 司文, 嚴(yán)壯志, 等. 基于AnyBodyTM技術(shù)的人體運動建模方法[J]. 生物醫(yī)學(xué)工程學(xué)進(jìn)展, 2010, 31(3): 131?134. DOI: 10.3969/j.issn.1674?1242.2010.03.002.

      [11]?DAMSGAARD M, RASMUSSEN J, CHRISTENSEN S T, et al. Analysis of musculoskeletal systems in AnyBody modeling system[J]. Simulation Modelling Practice and Theory, 2006, 14(8): 1100?1111. DOI: 10.1016/j.simpat.2006.09.001.

      (編輯?武曉英)

      猜你喜歡
      動力學(xué)受力逆向
      對外直接投資逆向技術(shù)溢出的碳排放效應(yīng)
      低汽氣比變換催化劑動力學(xué)研究
      低汽氣比變換催化劑動力學(xué)研究
      用動力學(xué)觀點解決磁場常見問題的研究
      利用相對運動巧解動力學(xué)問題お
      “彈力”練習(xí)
      “彈力”練習(xí)
      兩個物體受力情況分析
      一道動力學(xué)題的多種解法
      逆向應(yīng)用不等式(組)解集的概念解題
      栖霞市| 广元市| 富蕴县| 鄱阳县| 济宁市| 朝阳县| 青神县| 政和县| 三亚市| 茶陵县| 贵州省| 宁安市| 文山县| 都昌县| 盘锦市| 陆川县| 临桂县| 通海县| 嵊泗县| 南川市| 兴和县| 防城港市| 奉节县| 喀喇沁旗| 淮滨县| 赤峰市| 绥阳县| 惠东县| 凤山市| 安丘市| 绥滨县| 开原市| 定襄县| 安平县| 周口市| 东山县| 民县| 蚌埠市| 油尖旺区| 华坪县| 马关县|