Opensim源代码安装-visual studio 版本

1、下载安装Cmake
【下载网址】https://cmake.org/download/
【参考教程】https://blog.csdn.net/u011231598/article/details/80338941
注意下载安装程序installer,不是源码source。本机下载版本为3.14.5,安装到了D盘。外网下载比较慢。
在这里插入图片描述
2、下载安装Git
【下载网址】https://www.git-scm.com/download/
【参考教程】http://www.php.cn/tool/git/412892.html
【国内类似网站】coding.net/csdn/开源中国
本机下载了git (version2.22.0)和Git GUIClients——GithubDesktop,安装到了D盘。除了安装位置,一路next。测试是否安装成功时,不是在文件上右击,而是在空白处右击。Git 的入门学习使用,还可参加哔哩哔哩的教程
https://www.bilibili.com/video/av12427348/

3、Windows安装(不确定有没有用)
【参考教程】https://www.jianshu.com/p/5325decea0d2

4、OpenSim源码安装
【参考教程】https://github.com/simbody/simbody/blob/master/README.md#installing

下载Simbody源代码

  • 方法1:从https://github.com/simbody/simbody/releases下载源代码。查找编号最高的版本,单击.zip按钮,然后将其解压缩到您的计算机上。我们假设您将源代码解压缩到C:/Simbody-source。
  • 方法2:克隆git存储库。
  1. 得到git。有很多选择:
    1)适用于Windows的Git(最先进的),2)TortoiseGit(中级;适合TortoiseSVN用户), 3)GitHub桌面(最简单)。
  2. 克隆github存储库C:/Simbody-source。在Git Bash / Git Shell中运行以下命令,或者找到一种在GUI客户端中运行等效命令的方法:
 $ git clone https://github.com/simbody/simbody.git C:/Simbody-source
 $ git checkout Simbody-3.6
  1. 在上面的最后一行中,我们假设您要构建一个已发布的版本。随意更改您要构建的版本。如果你想在master分支上建立Simbody的最新开发版本(“前沿”),你可以省略该checkout行。
    要查看发行版集并签出特定版本,可以使用以下命令:
$ git tag
$ git checkout Simbody-X.Y.Z

本文选择第二种方式进行,方便直接。最后安装位置为C:\Users\De\opensim-core-source。下文应替换为此位置

配置和生成项目文件

  • 打开CMake。

  • Where is the source code中,指定C:/Simbody-source(应替换)。

  • Where to build the binaries中,指定类似的内容C:/Simbody-build,而不是在源目录中。这不是我们安装Simbody的地方; 见下文。

  • 单击Configure按钮。
    1)当提示选择生成器时,选择以Win64结尾的一个生成 64位二进制文​​件(例如,Visual Studio 14 2015 Win64Visual Studio 15 2017 Win64),或选择一个没有 Win64的生成器来构建32位二进制文​​件(例如,Visual Studio 14 2015Visual Studio 15 2017)。
    2)单击Finish

  • 你想在计算机上Simbody安装位置?通过更改CMAKE_INSTALL_PREFIX变量来设置它。我们假设您将其设置为C:/Simbody。如果您选择其他安装位置,请务必在我们下面使用的位置使用您的位置C:/Simbody。

  • 其他构建选项(未尝试):

  • BUILD_EXAMPLES看看Simbody能做些什么。默认开启。 BUILD_TESTING确保您的Simbody正常工作。默认开启。

  • BUILD_VISUALIZER能够看到你的系统移动!如果远程构建,您可以将其关闭。默认开启。

  • BUILD_DYNAMIC_LIBRARIES将三个库构建为动态库。默认开启。除非你知道你在做什么,否则请留下这个。

  • BUILD_STATIC_LIBRARIES将这三个库构建为静态库,其名称将以_static。默认关闭。你必须激活两种BUILD_DYNAMIC_LIBRARIES,BUILD_STATIC_LIBRARIES或两者兼而有之。

  • BUILD_TESTS_AND_EXAMPLES_STATIC如果正在构建静态库和测试或示例,则创建静态链接的测试/示例。可能需要一段时间才能构建,并且您不太可能使用静态链接库。

  • BUILD_TESTS_AND_EXAMPLES_SHARED如果正在构建测试或示例,则创建动态链接的测试/示例。除非你知道你在做什么,否则请留下这个。

  • 再次单击“ 配置”按钮。然后,单击“ 生成”以生成 Visual Studio项目文件。

构建和安装

  • C:/Simbody-build/Simbody.sln在Visual Studio中以管理员方式打开。

  • 从顶部的下拉列表中选择所需的解决方案配置。

  • Debug:调试符号; 没有优化(慢10倍以上)。库和可视化器名称以_d。结尾。

  • RelWithDebInfo:调试符号; 优化。这是我们推荐的配置。

  • Release:没有调试符号; 优化。生成的库和可执行文件比RelWithDebInfo更小但不快。

  • MinSizeRel:最小尺寸; 优化。可能比RelWithDebInfo或Release慢。
    您至少需要优化的库(所有配置,但Debug都已优化),但您可以让Debug库与它们共存。为此,请完成两次完整安装过程,每次配置一次。

  • 右键单击项目ALL_BUILD,然后选择Build。

  • 通过右键单击RUN_TESTS并选择Build来运行测试。确保所有测试都通过。如果您有多个核心,则可以使用RUN_TESTS_PARALLEL进行更快的测试运行。

  • (可选)构建项目doxygen以获取从Simbody源生成的API文档。如果您的doxygen版本早于Doxygen 1.8.8,您将收到一些警告; 如果可以升级。

  • 右键单击INSTALL并选择Build,安装Simbody 。

试验例子
在Visual Studio中的构建中(不是安装):

  1. 确保您的配置设置为发布配置(例如,RelWithDebInfo)。
  2. 右键单击名称之一的目标之一,Example -然后选择Select as Startup Project(设为启动项)。
  3. 键入Ctrl-F5以启动该程序。

设置环境变量并测试安装
如果您只是构建Simbody以将其与OpenSim一起使用,则可以跳过本节。

  1. 通过将Simbody bin/(路径取决于安装位置)目录添加到PATH环境变量,允许可执行文件找到Simbody库(.dll)。
    i. 在“开始”菜单(Windows 7或10)或屏幕(Windows 8)中,搜索environment。
    ii. 选择编辑系统环境变量
    iii. 点击环境变量
    iv. 在系统变量下,单击path,然后单击编辑
    v.添加C:/Simbody/bin(路径取决于安装位置);到文本字段的前面。不要忘记分号!
  2. 允许Simbody和其他项目(例如,OpenSim)找到Simbody。在相同的Environment Variables窗口中:
    i. 在用户变量,单击新建
    ii. 对于变量名称,键入SIMBODY_HOME。
    iii. 对于变量值,键入C:/Simbody。
  3. 更改仅在新打开的窗口中生效。关闭所有Windows资源管理器或命令提示符窗口。
  4. 通过导航C:/Simbody/examples/bin(路径取决于安装位置)并运行SimbodyInstallTest.exe或测试您的安装SimbodyInstallTestNoViz.exe。

注意:调试配置未安装示例二进制文件。但是,它们存在于构建环境中,因此您可以从那里运行它们。他们会跑得很慢!

问题】运行install时遇到:VS2013+Cmake便于g2o遇到问题:error MSB3073: 命令“setlocal D:\tools\cmake-3.6.0-rc3-win32-x86\bin\cmake.exe -D

【参考解答】原来install需要在c盘创建文件夹,所以需要管理员权限运行vs。https://www.douban.com/note/512587853/

5、在vs运行自己的程序
双摆

#include "Simbody.h"
using namespace SimTK;
int main() {
    // Define the system.
    MultibodySystem system;
    SimbodyMatterSubsystem matter(system);
    GeneralForceSubsystem forces(system);
    Force::Gravity gravity(forces, matter, -YAxis, 9.8);

    // Describe mass and visualization properties for a generic body.
    Body::Rigid bodyInfo(MassProperties(1.0, Vec3(0), UnitInertia(1)));
    bodyInfo.addDecoration(Transform(), DecorativeSphere(0.1));

    // Create the moving (mobilized) bodies of the pendulum.
    MobilizedBody::Pin pendulum1(matter.Ground(), Transform(Vec3(0)),
            bodyInfo, Transform(Vec3(0, 1, 0)));
    MobilizedBody::Pin pendulum2(pendulum1, Transform(Vec3(0)),
            bodyInfo, Transform(Vec3(0, 1, 0)));

    // Set up visualization.
    Visualizer viz(system);
    system.addEventReporter(new Visualizer::Reporter(viz, 0.01));

    // Initialize the system and state.
    State state = system.realizeTopology();
    pendulum2.setRate(state, 5.0);

    // Simulate for 20 seconds.
    RungeKuttaMersonIntegrator integ(system);
    TimeStepper ts(system, integ);
    ts.initialize(state);
    ts.stepTo(20.0);
}

在其他例子模板中,更改源程序.cpp可以出现此效果。但是不知道如何建立自己的项目,及头文件、外部依赖项等。
在这里插入图片描述

giyhub https://github.com/simbody/simbody/blob/master/README.md#download-the-simbody-source-code
csdn https://blog.csdn.net/lrm15659833890/article/details/88576891
opensim https://simtk-confluence.stanford.edu:8443/display/OpenSim/Building+OpenSim+from+Source

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值