opensim初级示例例三—缩放、逆运动学、逆动力学

5 篇文章 0 订阅
5 篇文章 1 订阅

一:目标

研究本例的目的是介绍Opesim如何运用实验数据求解逆运动学和逆动力学问题。为了诊断运动障碍,生物机械师让实验人员在运动捕捉实验台上重复运动,并用计算工具来分析运动。在分析物体运动时,通常需要计算关节角和关节力矩。在opensim中,逆运动学可计算关节角,逆动力学计算净关节反应力和净关节力矩。

建立最贴合运动物体的骨骼肌肉模型后,逆运动学计算关节角。随后,根据算出的关节角度和已有的模型角速度、角加速度、实验地面反作用力和力矩,逆动力学求解出每个关节处的净关节反应力和净关节力矩。下图所示流程图就表示了逆运动学和逆动力学工作关系。


做完本例,你能学会如下知识:

1.熟悉opensim缩放、逆运动学、逆动力学工具

2.使用实验数据求解逆运动学、逆动力学问题

3.解释逆动力学求解结果

4.发现逆动力学中的动态不连续问题

二:通用骨骼肌肉模型

本例使用模型3DGaitModel,它有32个自由度,由54块肌肉驱动。他是在Delp等的下肢模型基础上简化而来,在andersonpandy模型基础上添加了躯干和背部相关关节。

导入模型

实验数据包括:一个成年男性在仪器化跑步机上以自选速度行走时的标记点轨迹、地面反作用力。

三:骨骼肌肉模型缩放

缩放通用模型,调整它的人体尺寸、物理维度,来适应特定人体的尺寸。缩放对于逆运动学、逆动力学意义重大,因为他们的求解结果对缩放精确度非常敏感。Opensim中,缩放对象包括质量属性(质量、惯性张量)和身体各部分的维度。缩放时以下两种方法结合使用:


1.基于尺寸的缩放:实验人员与模型上对应标记点间的距离来决定缩放因子

2.手动缩放:用户自己根据预定的缩放因子来缩放。当对应的标记点数据不可用或用其他算法计算缩放因子时,手动缩放就很有用了。

在模型显示窗口,注意到模型上分布的粉色标记点,对应于运动捕捉实验中实际标记点。      

四、逆运动学

运动学研究无需考虑促成运动的力和力矩。因此,进行运动学分析,如逆运动学,不需要massinertia数据。逆运动学的目的就是找出能最好匹配实验对象的真实运动的模型关节角。本例中逆运动学分析所用的实验运动数据是实验标记点的位置。

逆运动学经历所记录运动的每一步、每一帧,然后计算关节角集,这些关节角能让模型运动最接近真实运动。软件通过求解加权最小二乘优化问题来达到标记误差最小。

标记误差是指实验对象与虚拟模型上对应标记点间距离。每个标记点都有相应的权重,表明其对最小二乘问题的影响程度。在逆运动学每一步分析中,都是求解一个广义坐标量,能使标记误差的权和最小,表示为

其中:q是广义坐标向量(如关节角等)

    Xiexp是指实验标记点的位置

Xiq)是指相应虚拟模型上的标记点

Wi是指相应标记点的权值

在图形窗口明显的显示出实验与计算标记点位置差异:选中逆运动学运行结果〉〉associate motion data>>选择实验数据>>红色表示虚拟,蓝色表示实验标记点

五、逆动力学

动力学研究运动、促成运动的力和力矩。因此,进行动力学分析,如逆动力学,需要massteria数据。逆动力学的目的是估计产生特定运动所需的力和力矩,他分析出来的结果还能用来预测肌肉是如何促成运动的。为算出力和力矩,需要迭代求解系统的运动方程组。运动方程组是由运动描述、模型mass属性得出。然后,利用逆运动学求出的关节角、实验时地面反作用力数据,根据动态平衡条件和边界条件,求解出每个关节处的净反应力和力矩

需要注意的是:关节反应力,或节段间力,是模型中特定关节的总作用力。区别于关节骨的骨力,是在关节的关节表面上看到的实际力,包括肌肉活动的影响。

如果Motion From File文本框是红色的,这意味着所选文件命名不正确,要确保是适用于逆动力学的命名。

在求解逆动力学问题时,运动数据和测力板数据都需要,使得运动方程数多于未知量数(自由度数),故变成了一个超静定问题。由于实验运动数据的错误以及模型的不准确,最终导致牛顿第二法则F=M*A不成立。为解决这个动力学不连续的问题,在模型的特定区段引入残余力和力矩,从而有

成立,这个方程将地面反作用力矩与残余力矩联系了起来

当计算和应用残余力和力矩使模型的运动与外力动态一致时,这种策略是不可取的,因为残差可能很大。已经开发出更先进的策略来处理残差和动态不一致性问题,如最小二乘算法,残留消除算法(REA),和残留的约简算法(RRA)。此外,OpenSim使用RRA作为其工作流程的一部分产生肌肉驱动模拟。


 

 

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
Sim中,动力学(Inverse Dynamics)是一种用于估计关节力和动量的方法。它可以根据给定的关节角度、角速度和角加速度等数据,计算出相应的关节力。动力学在仿真、运动分析和控制研究中具有广泛的应用。 要在OpenSim中进行动力学分析,通常需要以下步骤: 1. 创建一个模型:使用OpenSim提供的建模工具,您可以创建一个人体或其他生物的骨骼模型。该模型包括骨骼、关节和肌肉等组成部分。 2. 定义模型的初始状态:设置模型的初始关节角度、角速度和角加速度等参数。这些参数将成为动力学计算的输入。 3. 添加动力学约束:通过定义关节的约束条件,可以模拟人体运动中的生理限制。这有助于提高动力学计算的准确性。 4. 进行动力学计算:使用OpenSim提供的动力学求解器,可以根据模型的几何结构、质量和力学特性等信息,计算关节力和动量等参数。 5. 分析结果:通过分析动力学计算的结果,您可以了解关节力的分布、肌肉激活水平和动力学特征等信息。这对于理解人体运动机制和优化运动控制策略非常有帮助。 需要注意的是,动力学计算是基于模型的近似和假设进行的,因此计算结果可能与实际情况略有差异。此外,动力学计算还涉及许多复杂的数学和计算方法,需要一定的专业知识和技能才能正确应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值