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

时间:2024-03-17 08:34:21

Scale(比例缩放)的原理

如前文所述,OpenSim的模型数据主要存储在建模层和计算层。
其中,建模层的数据包含模型的几何形状,计算层包含人体各骨块的质量,质心位置,骨块之间的连接方式,关节*度等等。
OpenSim学习笔记(四):Scale的原理以及操作
从上图可以看出,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中可以找到),这样做可以使得模型更为精确。能够更好地贴和每一个身体特征有特殊性的的受试者。

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

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

Scale的基本操作

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

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

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

  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,在打开的文件选择框中选取你的实验轨迹文件,随后就看到如下所示的状态
OpenSim学习笔记(四):Scale的原理以及操作
当然,也有可能存在实验设备坐标系和软件规定坐标系不一致的现象,这时候明显看到实验数据轮廓是“歪的”,如下图所示

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

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

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