1、下载安装Cmake
【下载网址】https://cmake.org/download/
【参考教程】https://blog.youkuaiyun.com/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存储库。
- 得到git。有很多选择:
1)适用于Windows的Git(最先进的),2)TortoiseGit(中级;适合TortoiseSVN用户), 3)GitHub桌面(最简单)。 - 克隆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
- 在上面的最后一行中,我们假设您要构建一个已发布的版本。随意更改您要构建的版本。如果你想在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 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中的构建中(不是安装):
- 确保您的配置设置为发布配置(例如,RelWithDebInfo)。
- 右键单击名称之一的目标之一,Example -然后选择Select as Startup Project(设为启动项)。
- 键入Ctrl-F5以启动该程序。
设置环境变量并测试安装
如果您只是构建Simbody以将其与OpenSim一起使用,则可以跳过本节。
- 通过将Simbody bin/(路径取决于安装位置)目录添加到PATH环境变量,允许可执行文件找到Simbody库(.dll)。
i. 在“开始”菜单(Windows 7或10)或屏幕(Windows 8)中,搜索environment。
ii. 选择编辑系统环境变量。
iii. 点击环境变量。
iv. 在系统变量下,单击path,然后单击编辑。
v.添加C:/Simbody/bin(路径取决于安装位置);到文本字段的前面。不要忘记分号! - 允许Simbody和其他项目(例如,OpenSim)找到Simbody。在相同的Environment Variables窗口中:
i. 在用户变量,单击新建。
ii. 对于变量名称,键入SIMBODY_HOME。
iii. 对于变量值,键入C:/Simbody。 - 更改仅在新打开的窗口中生效。关闭所有Windows资源管理器或命令提示符窗口。
- 通过导航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.youkuaiyun.com/lrm15659833890/article/details/88576891
opensim https://simtk-confluence.stanford.edu:8443/display/OpenSim/Building+OpenSim+from+Source