OpenSim教程五——源码安装OpenSim

OpenSim是开源的生物力学仿真系统,官方提供的GUI软件可以满足一般的模型编辑、运动学数据导入、动力学仿真查看等任务。但如果用户想根据自己需要扩展一些功能(如编写插件、自定义驱动方法、在其他软件中调用OpenSim接口等),就需要源码安装OpenSim了。

跟所有开源C++项目一样,OpenSim的源码安装需要用到git,CMake、MSVC等工具,对于新手来说具有一定难度。我也是根据Github上Readme的指引倒腾了很久才安装成功。先说一下几个需要注意的问题:1、安装的工具要具有相同的位数(32位或64位);2、要把电脑系统语言设置为英文;3、编译安装需要长时间等待。

下面是我根据官方指引在windows 10下源码安装OpenSim 4.0的步骤:
1、下载安装Visual Studio、git、CMake、Chocolatey等工具;
2、以管理员身份打开PowerShell,运行指令

choco install python2 jdk8 swig

3、通过git下载OpenSim源代码

git clone https://github.com/opensim-org/opensim-core.git

4、编译、安装依赖库BTK、docopt和simbody

mkdir opensim_dependencies_build
cd .\opensim_dependencies_build
cmake ..\opensim-core\dependencies                             `
      -G"Visual Studio 15 2017 Win64"                          `
      -DCMAKE_INSTALL_PREFIX="..\opensim_dependencies_install"
cmake --build . --config RelWithDebInfo -- /maxcpucount:8

结束后会在C:\opensim_dependencies_install文件夹中出现三个包含对应内容的子文件夹。

5、生成OpenSim解决方案并编译

cd ..
mkdir opensim_build
cd .\opensim_build
cmake ..\opensim-core                                              `
      -G"Visual Studio 15 2017 Win64"                              `
      -DCMAKE_INSTALL_PREFIX="..\opensim_install"                  `
      -DOPENSIM_DEPENDENCIES_DIR="..\opensim_dependencies_install" `
      -DBUILD_JAVA_WRAPPING=ON                                     `
      -DBUILD_PYTHON_WRAPPING=ON                                   `
      -DWITH_BTK=ON                                  
cmake --build . --config RelWithDebInfo -- /maxcpucount:8

这里的JAVA_WRAPPING设为on是为了在matlab中顺利调用OpenSim画图接口,编译过程中会闪过设置matlab的窗口;PYTHON_WRAPPING设为on是为了用python调用OpenSim接口。

6、单元测试

ctest --build-config RelWithDebInfo --parallel 8

测试主要函数是否能正确使用
test

7、安装到指定文件夹

cmake --build . --config RelWithDebInfo --target install -- /maxcpucount:8

结束后在C:\opensim_install文件夹会包含OpenSim的所有内容
在这里插入图片描述
然后将C:\opensim_install\bin添加到电脑的环境变量PATH中,并将其置顶。
env

至此,OpenSim的安装就结束了。大家可以根据自己的软件版本和安装目录自行修改上面指令,祝顺利!

### Matlab 中的人体模型仿真与建模 在 MATLAB 的环境中,可以通过多种方式实现人体模型的仿真和建模。虽然 MATLAB 自身并不专门针对人体建模提供内置的功能模块,但它提供了强大的数值计算能力和图形化界面开发能力,可以结合外部工具箱或自定义算法来完成这一目标。 #### 使用 Simulink 和 Simscape Multibody 进行人体建模 MATLAB 的 **Simscape Multibody** 工具箱是一个非常重要的资源,用于多刚体系统的动力学分析和仿真[^1]。该工具箱允许用户创建复杂的机械系统模型,包括关节、连杆和其他约束条件。对于人体建模而言,可以将身体的不同部分视为多个刚体组件,并通过关节连接起来形成完整的骨架结构。具体操作如下: - 定义各个肢体作为独立的刚体对象; - 利用旋转和平移关节模拟肩部、肘部、髋部等部位的动作; - 导入 CAD 数据或者手动设计几何形状表示肌肉、骨骼的具体形态; ```matlab % 创建一个新的 multibody model model = simscape.multibody.Model; % 添加地面平面 ground = addGround(model); % 构造上臂部件 (Upper Arm) upperArmBody = addRigidBody(model,'Upper_Arm',[0;0;-0.3],[eye(3)]); jointPos_UpperArm = [0 0 -0.2]; shoulderJoint = addJoint(model,[ground upperArmBody],'Revolute', jointPos_UpperArm); ``` 以上代码片段展示了如何利用 `simscape.multibody` API 来构建简单的单自由度关节以及关联的身体段落。 #### 借助第三方插件扩展功能 除了官方提供的解决方案外,还有其他一些专为特定应用领域定制的产品可供选择。例如提到过的 **AnyBody Technology** 是一款专注于对人体运动进行全面预测的专业级软件包[^2]。尽管它本身不是基于 MATLAB 开发的程序,但是能够导出结果到 MATLAB 平台做进一步的数据处理和可视化展示工作。 另外还存在像 **OpenSim** 那样的开放源码项目,它们同样具备详尽描述人类动作的能力并兼容 MATLAB 接口调用。这意味着研究人员既可以从 OpenSim 获取详细的生理参数又能在熟悉的 MATLAB 环境里执行高级运算任务比如优化控制策略或是统计评估指标等等。 #### 学习路径建议 为了更好地掌握上述技术要点,推荐按照以下顺序逐步深入探索: 1. 熟悉基础理论知识——阅读经典教材如《Robotics, Vision & Control》了解基本概念和技术背景; 2. 动手实践入门案例——尝试运行随附文档里的示范工程熟悉流程框架 ; 3. 结合实际需求调整改进方案——依据个人兴趣方向选取合适课题开展原创性研究活动. ---
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值