OpenSim教程四——在人体肌骨模型中添加三维模型
本文目標
OpenSim自帶的人體模型只有骨骼、肌肉和關節,如果需要研究人體與其他物體的相互作用(比如說人提起一個重物時胳膊各肌肉的受力分析),就需要在原模型中添加實體模型(該模型需在三維CAD軟件中建好)。本文就以人提水桶為例,介紹如何在一個上肢模型中添加一個水桶。
步驟
1、導入人體模型。打開OpenSim 4.0,在File->Open Models…中選擇Models\Arm26\arm26.osim,導入人體上肢肌骨模型,如下圖。
2、用xml編輯器(如Notepad++)打開arm26.osim(該文件一般在我的文檔\OpenSim\4.0\Models\Arm26下),瀏覽該文件,可以發現主要包含BodySet, ConstraintSet, ForceSet, MarkerSet, ContactGeometrySet, ControllerSet, ProbeSet, 和ComponentSet這八塊內容,如下圖。
在BodySet模塊中,可以發現在objects標簽下有ground, r_humerus和 r_ulna_radius_hand三個Body條目,表示組成現有模型的三塊部分(上半身、大臂、小臂)。
將文件復制、重命名為arm26_with_bucket.osim,在新的文件中進行編輯,以免破壞原文件。
添加一個新的Body條目,命名為bucket,如下圖
3、在bucket標簽中添加水桶質量、質心、轉動慣量等屬性(mass, mass_center, inertia_xx, inertia_yy, inertia_zz, interia_xy, inertia_xz, inertia_yz),如下圖
4、添加連接信息。在bucket里面添加Joint標簽,定義PinJoint,其中location_in_parent 和 orientation_in_parent定義了連接點在母體上的位置,location 和 orientation定義了連接點在子體上的位置,具體看下圖
5、定義廣義坐標。在PinPoint標簽里添加Coordinate標簽,設置關節類型、默認值、默認速度、運動范圍等屬性,如下圖
6、設置幾何屬性。在Joint標簽下面添加VisibleObject標簽,里面包括定義模型幾何參數的GeometrySet,其中水桶的模型文件bucket.vtp(也可以是其他格式的文件)放在geometry_file標簽下,如圖所示
7、保存文件,在GUI中打開arm26_with_bucket.osim,即可看到添加了水桶的人體模型。
總結
至此,我們演示了如何將一個現有的三維CAD實體模型嵌入到OpenSim的人體肌骨模型中,這在一些人機工程學的研究中十分有用。事實上,除了對.osim文件進行編輯,我們還可以直接在OpenSim軟件GUI中直接對物體的參數進行設置。
總結
以上是生活随笔為你收集整理的OpenSim教程四——在人体肌骨模型中添加三维模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迅视资管 网络直播不能哗众取宠
- 下一篇: 结对编程----五子棋游戏