OpenSim教程三——使用OpenSim辅助开发减少行走代谢值的可穿戴式设备

概述

这篇文章介绍如何使用OpenSim 来评估步行助力装置的助力效果,以辅助其设计。其中会用到一个精简版的人体肌肉骨骼模型,通过肌肉驱动来使模型运动。我们分别在穿戴和不穿戴助行装置的条件下进行仿真,分析助行装置对人体步行过程中代谢值的影响。

一、导入模型

点击这里 进入下载页面,按要求填写信息后即可下载本教程所需模型资料,得到压缩包MetabolicsExample.zip,解压后将里面同名文件夹下的gait10dof18musc_32粘贴到Opensim 安装目录(如F:\OpenSim 3.3)下的Models文件夹中,方便后续操作。
打开OpenSim,点击File->Open Model…,选择Models\Gait10dof18musc_32下的subject01_metabolics.osim,载入后,我们便可在展示窗口中看到模型。这是一个身高1.8m、体重75kg、在跑步机上以1.2m/s行走的男性肌肉骨骼模型,另外它还带有代谢值探针/计算器。

二、无助力下行走模拟

在后面的实验中,我们使用OpenSim 的肌肉计算控制(Computed Muscle Control, CMC)工具来产生运动模拟。我们首先用残差缩减算法(Residual Reduction Algorithm, RRA)工具得到运动学数据,然后用CMC来找到一组肌肉刺激(muscle excitations)来尽可能复现这个运动轨迹。
1、在原先的模型上加载运动学文件。点击File->Load Motion…,选择gait10dof18musc_32\RRA\ResultsRRA\subject_adjusted_Kinematics_q.sto,接着就可以在运动控制栏控制模型“走起来”。
walk

2、用CMC生成一个肌肉驱动的运动模拟。在菜单栏选择Tools->Computed Muscle Control…打开计算机肉控制工具进行设置。点击Load…,选择CMC\walk_Setup_CMC.xml,加载预设的配置文件,可以看到一些原先空缺的栏目被填充了。
CMC Tool
其中Desired kinematics是CMC要复现的运动轨迹;Tracking tasks定义轨迹复现任务中要追踪的坐标;Time range to process设置一个步态周期的时期;
点击Run,当计算好后即可看到运行结果。
3、评估CMC得出的结果能否很好复现输入的运动轨迹。选择Tools->Plot…打开画图工具,在Y-Quantity…中选择Load file…,再选择CMC\ResultsCMC\walk_subject_Kinematics_q.sto,并在点选框中选pelvis_tilt, hip_flexion_r, knee_angle_rankle_angle_r ,点击OK;在X-Quantity…中选择time,然后点击Add将CMC计算的各关节角度随时间变化的曲线画出来。接着再在Y-Quantity…中选择RRA\ResultsRRA\subject_adjusted_Kinematics_q.sto,其余操作一样,在原图上添加RRA输出的运动学数据下各关节角度随时间变化的曲线。可以局部放大来观察两组曲线的匹配情况。
CMC evaluation

三、无助力行走下代谢值分析

OpenSim里有有代谢值计算器,可以计算模型中每块肌肉的代谢率和代谢值,同样也可以计算全身的代谢率和代谢值。上面所用人体模型中包含一组代谢探针(metabolic probes),当运行CMC时,探针分析器在后台计算步态周期中每块肌肉的代谢率和所有肌肉的能耗。
点击Tools->Plot…打开画图工具,在Y-Quantity…中点击Load File…,在CMC输出文件夹中找到walk_subject_MetabolicsReporter_probes.sto,并在点选框中点选metabolics_TOTAL, 然后点击OK。在X-Quantity…中选择time,最后点击Add画出一个步态周期中总代谢值曲线。
metabolic

四、构建步行助力装置模型

这里我们在右脚脚踝上装一个扭力弹簧作为辅助行走的装置。事实上,我们不会真正添加一个扭簧,而是用OpenSimCoordinateLimitForce来模拟类似的效果,即在踝关节转动超过一定角度时起阻尼作用。在模型展示窗口下方的Scripting Shell Window命令行中依次输入以下语句,添加一个CoordinateLimitForce到模型中。

# Get a handle to the current model and create a new copy
baseModel = getCurrentModel()
ankleSpringModel = baseModel.clone()
ankleSpringModel.setName(baseModel.getName() + '_ankle_spring')

# Create the spring we'll add to the model (a CoordinateLimitForce in OpenSim)
ankleSpring = modeling.CoordinateLimitForce()
ankleSpring.setName('AnkleLimitSpringDamper')

# Set the coordinate for the spring
ankleSpring.set_coordinate('ankle_angle_r')

# Add the spring to the model
ankleSpringModel.addForce(ankleSpring)

# Load the model in the GUI
loadModel(ankleSpringModel)

导入新模型后,在导航栏找到添加进来的扭簧:Navigator>walk_subject01_ankle_spring>Forces>Other Forces,选择AnkleLimitSpringDamper,然后修改里面的属性值:
–upper_stiffness=10.0,踝背屈时弹簧的强度;
–upper_limit=5.0,踝背屈超过5度时弹簧开始受力;
–lower_stiffness=1.0,跖屈时弹簧的强度;
–lower_limit=-90.0,踝跖屈超过90度时弹簧开始受力;
–damping=0.01,阻尼系数;
–transition=2.0,当踝关节转角超过预设值2度后,弹簧强度从0升到固定值。
在导航栏中右击模型的名字(walk_subject01_ankle_spring),选择Save As…,命名为subject01_metabolics_spring.osim

五、助力下行走模拟与代谢值分析

我们之前已经进行过无辅助下行走的仿真, 下面我们来进行穿戴辅助设备下行走的仿真,看下踝关节助力设备能否真的降低人行走中的代谢值。
1、在当前模型(subject01_metabolics_spring.osim)下操作,打开CMC工具并加载CMC\walk_Setup_CMC.xml,将输出路径设为ResultsCMC_AnkleSpring,其它设置不变,点击Run运行,然后关闭CMC面板,观看模拟结果。
2、先画出无辅助行走时的代谢结果。在菜单栏中点击Scripts->Run…,选择scripts\plotBaselineResults.py,在跳出的提示框中选保存CMC结果的文件夹(CMC\ResultsCMC),然后就会生成一个步态周期中代谢总量变化曲线和各肌肉代谢率变化曲线。
3、添加助力行走的代谢结果。同样地,运行脚本addPlotDeviceResults.py,在跳出的提示框中选CMC\ResultsCMC_AnkleSpring,然后就会在原图上添加新的曲线。在Total Metabolic Enegy图中可以看到,助力行走下的代谢值曲线明显低于无助力行走下的代谢值曲线,说明踝关节助力装置确实能降低行走时的代谢值。
comparision

参考资料

【1】Uchida T K, Hicks J L, Dembia C L, et al. Stretching Your Energetic Budget: How Tendon Compliance Affects the Metabolic Cost of Running[J]. Plos One, 2016, 11(3):e0150378.链接
【2】Dembia C L, Silder A, Uchida T K, et al. Simulating ideal assistive devices to reduce the metabolic cost of walking with heavy loads.[J]. Plos One, 2017, 12(7):e0180320.链接
【3】官方教程

  • 11
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 43
    评论
以下是基于Windows系统的OpenSim安装教程: 1. 下载OpenSimulator二进制文件 在OpenSimulator的官网(https://opensimulator.org/)上下载最新的Windows二进制文件。选择“Download”页面上的“Windows Binaries”链接,然后选择你需要的版本进行下载。 2. 解压缩OpenSimulator文件 将OpenSimulator文件解压缩到你想要存放它的文件夹中。你可以选择将其解压缩到C:\Program Files\OpenSimulator目录下,但这需要管理员权限。 3. 配置OpenSimulator文件 进入解压缩后的OpenSimulator文件夹,找到“bin”目录下的“OpenSim.ini.example”文件,并将其重命名为“OpenSim.ini”。 4. 配置OpenSimulator数据库 如果你想要使用MySQL数据库,请确保已经安装了MySQL服务器,并设置了正确的用户名和密码。在“OpenSim.ini”文件中,找到以下内容: ```[Startup] ; default is to use BasicData.ini as the data source, but you can choose ; to use a different one here. ; DataSource = "BasicData.ini" DataSource = "MySQL" ``` 将“DataSource”设为“MySQL”,并在下面添加以下内容: ```[DatabaseService] ; Connect string for the MySQL database server. ; This assumes you have a database called "opensim" which ; you have granted rights to the user specified below. ConnectionString = "Database=mysql;Server=localhost;Port=3306;Uid=root;Pwd=mypassword;Database=opensim;" ``` 将“Uid”和“Pwd”修改为你的MySQL用户名和密码,将“Database”修改为你想要使用的数据库名称。 5. 启动OpenSimulator 双击“bin”目录下的“OpenSim.exe”文件,OpenSimulator将会启动。如果出现错误,请检查“OpenSim.ini”文件中的配置是否正确。 6. 连接到OpenSimulator 用一个Second Life兼容的客户端(比如Firestorm、Singularity等),连接到OpenSimulator。在登录界面中,输入你的用户名和密码,以及OpenSimulator的IP地址和端口号(默认为“localhost:9000”),然后点击“连接”按钮。 7. 开始使用OpenSimulator 现在你可以在OpenSimulator中创建一个虚拟世界,并开始构建你的虚拟环境了!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值