前言:博主是个不怎么懂软件的菜鸟,前几天为了学习Soft Robotics企图装一个带SoftRobots插件的SOFA,但我搜了半天也没有较新的安装教程(连下载方式都变了好吗)。虽然有官 的安装教程但我在安装过程中还是出了很多意外。感慨于在身边诸多大佬们的帮助下我这个对软件一窍不通的人才安装成功,我以一个不怎么接触编程的人的角度写下这篇博客帮助也想学习Soft Robotics的各位。(博主为了写这篇教程忍痛把安好的SOFA删了又下了一遍)
宋铸恒
**P.S.**由于我并不是软件相关专业的有很多理解和做法可能并不准确,仅供参考,也欢迎指教。
教程仍然是跟着SOFT ROBOTS Plugins for SOFA官 来的,顺序有些许调整,要更详细一些。
官 教程是这个,这个和这个
文章目录
-
- @[toc]
- 预备工作
-
- Visual Studio2015或以上版本
-
- pthread库
- Qt (版本>= 5.5.0)
- Git
- Boost (版本>= 1.54.0)
- Python 2.7
- 下载
-
- SOFA源代码下载
- 补充的库下载
- SoftRobots插件源代码下载
- 生成runsofa.sln
-
- SOFA本体Configure过程中遇到的一些 错及解决
-
- fatal error C1083: 无法打开包括文件: “pthread.h”: No such file or directory
- Unable to find the Boost header files
-
- 方法1:
- 方法2:
- sofa/src/applications/plugins/SofaHighOrder/ExternalProjectConfig.cmake.in does not exist.
- 找不到Python
- 找不到Qt
- 添加SoftRobots插件
- 编译
- 测试
- @[toc]
- Visual Studio2015或以上版本
-
- pthread库
- Qt (版本>= 5.5.0)
- Git
- Boost (版本>= 1.54.0)
- Python 2.7
- SOFA源代码下载
- 补充的库下载
- SoftRobots插件源代码下载
- SOFA本体Configure过程中遇到的一些 错及解决
-
- fatal error C1083: 无法打开包括文件: “pthread.h”: No such file or directory
- Unable to find the Boost header files
-
- 方法1:
- 方法2:
- sofa/src/applications/plugins/SofaHighOrder/ExternalProjectConfig.cmake.in does not exist.
- 找不到Python
- 找不到Qt
- 添加SoftRobots插件
实际上开发SoftRobots插件的项目组也考虑到要装这个软件太麻烦了,提供了一个已经嵌入了SOFA的Ubuntu虚拟机映像,但这个下载链接无效了。不过据说给项目组发邮件的话回复很快。此处为了运行速度和想安在Windows系统下偏向虎山行。
预备工作
要下一个SOFA,首先你得下一堆东西…
Visual Studio2015或以上版本
利用其中的MSVC编译器来编译本软件,只需要用到基础功能。
建议安装VS2017 community版,安装可以参考这个
pthread库
博主在Cmake时曾因缺少这个库 错。这是一个实行了POSIX线程标准的线程库,Windows下的pthreads-win32是从类Unix系统移植来的。
或许你可以先跳过这一步,如果你也遇到了这个 错再安装也不迟。安装参考这个。单纯安装后博主也遇到了左边链接中提到的**“timespec”:“struct”类型重定义**问题,因此建议加上那个宏定义。
Qt (版本>= 5.5.0)
我猜这个是用来绘制SOFA的图形界面的
官 提供的下载链接是这个,选择qt-unified-windows-x86-online.exe,是在线安装包。你也可以安装离线安装包,选择qt-opensource-windows-x86-5.11.1.exe.
安装可以参考这个
但实际上,只是为了安装SOFA的话,
首先在where is the source code一栏填上你的sofa/src的地址,在where to build the binaries一栏填上你的sofa/build的地址,然后点击。
P.S.虽然官 教程有提及可以使用Ninja来代替此处的选择,但我没研究出怎么使用,此处仍然选择VS的MSVC编译器。
第一次Configure用时较长,,尤其是可能在**Cloning into ‘SofaHighOrder’…**一行停留许久。你可以稍微歇息一下
SOFA本体Configure过程中遇到的一些 错及解决
以下是博主在Cmake过程中遇到的一些 错及博主的解决方式。
fatal error C1083: 无法打开包括文件: “pthread.h”: No such file or directory
好的,如果你出了这个 错说明你刚刚没有安装推荐你安的pthread库,让你懒哈哈哈哈哈
不过即便安装pthread库后在CMakeError.log中仍然会有pthread相关 错。但不会影响SOFA的安装,可以忽略。
Unable to find the Boost header files
点击按键添加一个下面这样的Entry。
Name | Boost_ROOT |
---|---|
Type | path |
Value | 你安装Vcpkg的文件夹/vcpkg/installed/x64-windows/include(比如博主的是D:vcpkginstalledx64-windowsinclude) |
Description | 空 |
注意Value不能填**你安装Vcpkg的文件夹/vcpkg/installed/x64-windows/include/boost**,需要填包含Boost文件夹的文件夹的路径,否则仍然会像上图那样 错。
方法2:
在环境变量中添加一个下面这样的系统变量
变量名 | 值 |
---|---|
Boost_ROOT | 你安装Vcpkg的文件夹/vcpkg/installed/x64-windows/include(比如博主的是D:vcpkginstalledx64-windowsinclude) |
sofa/src/applications/plugins/SofaHighOrder/ExternalProjectConfig.cmake.in does not exist.
找不到Python
博主为此专门下了一个Python2.7。
。即便你单独下好了Python2.7你也可能需要手动勾选SofaPython选项(勾选前Enter列表中SofaPython_DIR显示找不到SofaPython,但你手动添加这个插件的话其实他找得到)
找不到Qt
类似找不到Boost的解决办法,点击,添加一个下面这样的Entry
Name | CMAKE_PREFIX_PATH |
---|---|
Type | path |
Value | 你安装Qt的文件夹/Qt/5.11.1/msvc2017_64(比如博主的是D:/Qt/5.11.1/msvc2017_64) |
Description | 空 |
再次运行Configure后刚添加的这个叫CMAKE_PREFIX_PATH的Entry会消失,取而代之的是一帮Qt的Entry
在此之前,在搜索框里输入python并确保你的PLUGIN_SOFAPYTHON打了勾,SofaPython_DIR不是not found
再次Configure,你就得到了与SoftRobots相关的几个Entry。不勾选这几个可选组件orz博主研究了很久也没能成功安装他们。根据名字和需要的库博主猜测SOFTROBOTS_GAMETRAKCONTROLLER是一个实现可以通过usb设备或蓝牙和外设交互的组件,SOFTROBOTS_COMMUNICATIONCONTROLLER似乎是实现利用 络通信和外设交互的组件,而SOFTROBOTS_ROBOTINOCONTROLLER猜测需要配合Robotino使用。Robotino是一款商业化的移动机器人系统,明显买不起。博主暂时不需要这个插件。
再次Configure。
完美。
这是博主最终的无误版Configure的反馈信息。
进入界面后先将解决方案配置调为Release,然后确保解决方案平台确实是你电脑的平台(博主的电脑是x64平台),等待左下角显示就绪后,点击本地Windows调试器开始编译。
然后你就可以去睡觉了。(即便你想用电脑做点别的应该也很难,不知道是我人品太差还是SOFA的编译真的很考验电脑,我的电脑呈现出了这样的尴尬局面 )
你可以通过打开在SoftRobots下的几个Example来进一步测试。可以参考官 给出的样例教程。或者你也可以探索SOFA官 上的入门教程。
至此,本次在Win10下安装SOFA仿真软件并加装SoftRobots插件的任务便完成了。
恭喜你能坚持安装完成,也祝你接下来的研究顺利。
顺带一提,电子科大微软学生俱乐部真是个好地方,里面人才又多,说话又好听
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!