OpenSim基础教程(3):OpenSim主要架构&文件类型说明

Xsens动作捕捉 2022-10-08 14165

该部分作为OpenSim非常基础的知识,csdn上有博主写的很好了,笔者将主要内容转载过来并稍作修改补充

版权声明:本文为CSDN博主「小张想好好学习」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_45367061/article/details/106923385


OpenSim基本逻辑介绍

根据Delp等人在其论文:OpenSim: Open-Source Software to Create and Analyze Dynamic Simulations of Movement[J]. IEEE Transactions on Biomedical Engineering中提到的基本逻辑架构,OpenSim主要由计算层,建模层,分析层和应用层组成:

OpenSim基础教程(3):OpenSim主要架构&文件类型说明

建模层(Model层)

主要包含模型的物理部分,如骨骼,肌肉,关节(可能还包含韧带)的几何轮廓等特征,在OpenSim中,模型往往采用医学影像技术对人体进行成像进而生成三维空间封闭曲面来得到。

计算层(SimTK层)

主要负责运行所有的动力学计算,同时存储相应的数据。OpenSim的计算层主要借助SimBody这一动力学仿真模块来完成,这个模块同样是由斯坦福大学生物力学实验室开发的。

SimBody通过System对象来存储模型所满足的动力学约束方程,通过State对象来存储前述方程中所有变量的值,包括时间,位置,速度,力的大小及其作用点等等。

使用者在对OpenSim进行输入和输出操作的过程,实际上就是在改变State的值。

分析层(Analysis层)

通过Modeler, Solver 和 Reporter三个模块来完成分析计算,分析层的主要任务在于计算层的方程和已知变量,计算出未知变量。例如,可以通过通用模型和比例系数计算出Scale模型。

而Reporter的主要功能在于,将计算结果通过可视化的方法显示出来,例如生成的模型运动仿真动画。


OpenSim数据类型介绍

.xml后缀文件

在OpenSim中,几乎所有的数据都是以xml后缀的格式来存储的,但是为了便于识别,于是将其中某些文件的后缀进行了更改,这意味着OpenSim的所有数据文件都可以用xml编译器来进行查看和改动(比如NotePad++),即使这个文件的后缀并不是.xml

在实际应用中,真正以.xml格式来存储的往往是:

  1. 各种计算的配置文件,比如Scale,IK,ID的setup文件,往往都是以.xml格式来存储的
  2. 标记点集合(marker set)
  3. 驱动器标签(actuators)

.osim后缀文件

.osim后缀文件记录了模型的全部数据,包括模型的几何特征(三维造型以及空间相对位置),力学特征(质量,质心,转动惯量,质量分布方式),以及各骨块之间相互联系的方式(关节/固定)

.trc文件

是轨迹trajectory单词的简写,代表着存储的数据为实验测量的轨迹数据。在实验中受试者所穿戴的贴片的轨迹会被动作捕捉设备获取,并且生成相应的.trc文件

.mot文件

是动作motion的简写,代表着存储的数据为随时间变化的运动学数据,包括各关节转角,质心平动的距离,速度等等,通过这个可以生成模型的运动仿真动画。当然,地面反作用力(也叫grf力)往往也以mot格式来存储。

.sto后缀文件

sto是一种结果输出文件的存储类型,是storage的简写。包括的内容例如输出的肌肉激活度、肌肉力、驱动器驱动力、运动学数据等等。


以上所有的数据都可以通过xml编译器打开,查看和更改,其中trc文件、.mot文件、.sto文件也可用excel打开查看。


笔者在微信群集结了中国众多OpenSim用户,一起交流分享学习和研究经验,如有朋友想要加入,请联系笔者:zhengsize@163.com


The End