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源代码
$ git clone https://github.com/simbody/simbody.git C:/Simbody-source
$ git checkout Simbody-3.6
$ 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 Win64或Visual Studio 15 2017 Win64),或选择一个没有 Win64的生成器来构建32位二进制文件(例如,Visual Studio 14 2015或Visual 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中的构建中(不是安装):
设置环境变量并测试安装
如果您只是构建Simbody以将其与OpenSim一起使用,则可以跳过本节。
注意:调试配置未安装示例二进制文件。但是,它们存在于构建环境中,因此您可以从那里运行它们。他们会跑得很慢!
问题】运行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