OpenSim学习笔记(四):Scale的原理和操作

总所周知,OpenSim进行仿真计算依赖的是模型库中已经建立好的人体肌肉骨骼模型,以及使用者实际测量的运动数据,而Scale就是使得这二者在几何上相统一的“桥梁”,因此大部分时候我们都需要利用Scale’来作为后续操作的基础。


Scale(比例缩放)的原理

如前文所述,OpenSim的模型数据主要存储在建模层和计算层。
其中,建模层的数据包含模型的几何形状,计算层包含人体各骨块的质量,质心位置,骨块之间的连接方式,关节自由度等等。
在这里插入图片描述
从上图可以看出,Scale的意义在于:将实验测得的Experimental Marker(左图最上方)数据,与模型中预先标记好的Virtual Marker(右图最上方)进行比较;并以Experimental marker为依据,调整Virtual Marker的坐标,使得模型的markers能够和实验数据/受试者的数据完全吻合

比如在图中,R.Knee.Lat代表着右侧膝关节外侧标记点,R.Asis表示脊椎右侧末端前侧标记点,它们之间的实验距离和模型距离分别为e1和m1,那么Scale的主要目的就是改变m1使得m1=e1

不难想象,当所有的marker之间的距离都进行上述调整之后,模型得几何尺寸就会与受试者完全一致了

(有同学可能会问:修改的仅仅是点的相对位置,那模型该怎么调整呢?)
实际上,OpenSim中模型得几何尺寸是与marker点耦合的(在Scale这一步中),各个骨块的几何尺寸,肌肉的相对位置,都是根据virtual marker的位置而计算得到的,因此随着virtual marker的变动,模型的外形也会相应的发生变化。

此外,OpenSim为了使得Scale之后的动力学仿真更为精确,提供了对人体质量缩放的功能。在默认条件下,它会根据受试者质量Me与模型质量Mm的比例,对模型中的每一个骨块进行质量缩放,当然,可以手动输入质量缩放和尺寸缩放的权重(static pose weight中可以找到),这样做可以使得模型更为精确。能够更好地贴和每一个身体特征有特殊性的的受试者。

右侧选项卡可以看到Static Pose Weights选项

比如在实际采集数据的过程中,某些受试者可能长期处于一些特定的工作环境,导致其腿部骨骼存在增生,腿部肌肉也比较发达,这就会导致其腿部质量占比比普通人更大一些,这时对质量缩放的权重进行调整就是十分必要的了


Scale的基本操作

利用OpenSim模型库中的数据进行Scale

首先,在OpenSim安装文件夹下找到Models\Models\Gait2354_Simbody这一路径,利用OpenSim—File—Open Model命令载入Gait2354模型,其文件名为gait2354_simbody.osim

其次,在Toos—Scale Model中,点击最下方的Load,载入预先由开发人员设定好的Scale预设文件。
在这里插入图片描述
从中找到刚才打开模型的文件夹,并在其中找到Scale Setup文件如下图示
在这里插入图片描述
如我之前的文章所介绍的一样,OpenSim所有配置文件都是xml格式的文件,并且文件的命名都能很清楚的看出这个文件的用途。点击上图所示的文件,然后点击Open载入预设。载入预设之后,可以发现Scale Tool的界面与原来发生了变化
在这里插入图片描述

  1. 质量发生了变化,这代表OpenSim利用受试者质量和模型质量在进行质量缩放比例的计算
  2. 加载了Marker点信息,因为原本的模型是没有marker点的,只有对应实验测量仪标记点位置来给模型添加Marker,当然,Marker的位置通常有一个统一的标记和划分位置,所以不用我们自己调整
  3. 这是受试者静态状态各个Marker点的空间位置,这个位置会与模型的位置在运算中相匹配
  4. 给定了进行模型缩放所针对的时间范围,本例中为1s-1.1s

完成上述操作之后,点击下方的run按键,即可运行比例缩放,熟悉这个操作之后,便可以快速地利用别人的实验数据进行模型调整了



利用实验测得的数据进行Scale

这个例子来源于一个从CSDN中向我求助的同学,他从实验室获取了对应的实验数据,这个数据就是静态站立 的Marker点实验数据,subject_static.trc

显而易见,自己做的实验数据是没有现成的Scale Setup这类的配置文件给你用的

那么如何能利用自己的数据来进行缩放呢?

首先,点击FIle–Preview Experimental Data,在打开的文件选择框中选取你的实验轨迹文件,随后就看到如下所示的状态
在这里插入图片描述
当然,也有可能存在实验设备坐标系和软件规定坐标系不一致的现象,这时候明显看到实验数据轮廓是“歪的”,如下图所示

在这里插入图片描述

这类问题可以通过在左侧Navigator中右键点击之后选择Transform这一选项来调整
在这里插入图片描述
调整了之后,这时候就可以导入模型(如前文所述),这时要自己载入Marker点集,将其附加到模型上,右键单击Markers,在右键菜单中点击Load From File,可以加载模型本身预设好的点集
在这里插入图片描述
加载好点集之后,就可以打开Scale Tool了

首先在mass这一项输入受试者的体重数据
在这里插入图片描述
随后在上述两个框内点击右侧小文件夹图标选择静态站立动作轨迹文件,在下方的time中选择一个比较小的时间段,比如上述的1s-1.1s,这么做主要是为了提高运算速度,配置好之后点击Run,就可以得到以实验数据为基础的Scale的模型。

  • 11
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值