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