前言:博主是个不怎么懂软件的菜鸟,前几天为了学习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插件
  • 编译
  • 测试

实际上开发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的话,

只需要如上图这个MSVC 2017 64-bit组件(博主当初不知道,把Qt5.11.1和Tools下所有东西都装了,下死我了)

Git

接下来下载SOFA源代码,SoftRobots插件源代码,vcpkg等都要用到这个高级百*云

安装和使用教程可以参考廖雪峰老师的Git教程

Boost (版本>= 1.54.0)

Boost是一个影响甚大,应用广泛的C++库(SOFA基于C++)

在大佬的推荐下博主并没有直接安装Boost,而是安装了一个面向VS的开源C++库集成器Vcpkg,通过Vcpkg傻瓜式安装了Boost。Vcpkg的安装和使用教程参考这个。

然后Boost的安装就很轻松愉快了:在Vcpkg.exe所在文件夹shift+右键点击在此处打开powershell,在powershell中

#x64平台的电脑输入
.\vcpkg.exe install Boost:x64-windows
#x86平台的电脑输入
.\vcpkg.exe install Boost:x86-windows

截至写博客时,通过这种方法下载下来的是Boost1.68.0

**P.S.**当然你也可以直接安装Boost。实际上这样可能更容易让Cmake找到Boost,博主通过Vcpkg安装的Boost需要手动让Cmake找到,见编译部分。

Python 2.7

我们所必须的SoftRobots插件很大程度上依赖于SofaPython插件,另外有了SoftPython插件SOFA才可以识别“.py",".pyscn"扩展名的文件。SofaPython插件是默认安装的,前提是你有Python2.7。

注意,要成功安装SofaPython插件必须用Python2.7,不能使用Python3,否则生成Makefile时会出错。(血泪亲测)

因为博主之前为Python这个博主唯一接触过一点的语言下了Anaconda,于是博主试图用在Anaconda中激活的一个Python2.7环境来满足条件,但博主尝试了许久也无法让Cmake找到我这个2.7的Python,他只找到了在我Anaconda根目录的Python3.5…

因此我为了安装SOFA专门下了一个Python2.7.15(截至写博客时最新版Python2.7.x)。x64平台电脑下载Windows x86-64 MSI installer,x86平台电脑下载Windows x86 MSI installer。如果图省事一路默认选项安装即可(是的博主甚至安到了C盘)

好的,有了以上这些我们可以开始下载SOFA了

下载

SOFA源代码下载

SOFA官网提供稳定版(v18.06)和不稳定版。一开始博主下了稳定版,一秒下载两秒安装,那叫一个爽。但不幸的是要安装SoftRobots插件的话只能安装不稳定版。刺激。

找一个你认为适合安装SOFA的文件夹(博主安装在了D盘根目录),此处打开powershell,输入

git clone -b master https://github.com/sofa-framework/sofa.git sofa/src/

然后你可以去看一集番。因为Github的鬼屎速度303.37MiB左右博主下了二十几分钟。

下好之后在sofa/文件夹下新建一个build文件夹一会放runsofa.sln和编译好的软件用。

补充的库下载

需要额外下载四个库libPNG, libJPEG, libTIFF, Zlib, Glew.VS2015用户下载这个,VS2017用户下载这个。直接将解压出来的include,lib,licenses三个文件夹放到**sofa/src/**文件夹下就可以了。

SoftRobots插件源代码下载

进入sofa/src/applications/plugins文件夹,此处打开powershell,输入

git clone https://github.com/SofaDefrost/SoftRobots

这一次17.52MiB博主下了十分钟。(What?!)

实际上除了SoftRobots,项目组还提供了一个插件SoftRobots.Inverse,但这个插件目前不向公众开发。有兴趣的话各位可以发邮件给项目组,下载来试试。

别忘记将刚下的HIDAPI放进去

生成runsofa.sln

然后就可以点开Cmake图形界面了,做好多次报错的心理准备。

博主推荐先修改一下设定,打开Options下的Warning Messages…,像下面这样勾选抑制警告的两项,关掉可能很多条,干扰视线而不影响Cmake的Warning提示,有利于稍后更容易地找出报错原因。

首先在where is the source code一栏填上你的sofa/src的地址,在where to build the binaries一栏填上你的sofa/build的地址,然后点击Configure

然后为项目选择你将要使用的编译器,向下面这样选择。

P.S.虽然官网教程有提及可以使用Ninja来代替此处的选择,但我没研究出怎么使用,此处仍然选择VS的MSVC编译器。

第一次Configure用时较长,,尤其是可能在**Cloning into ‘SofaHighOrder’…**一行停留许久。你可以稍微歇息一下

然后是频繁出现地报错。

但不用担心,Configure这个操作本来就是要多次进行来逐渐更正错误,甚至可以在此期间调整要安装的插件。经过我的观察Generate多次也没有问题,只会在原本的基础上改动,不会出现重复的文件。因此放心大胆地来,每次你觉得修正了几个问题了就可以运行一次Configure。经过博主摸索发现了两种找报错原因的方式

  • 直接看ConfigureGenerate两个按键下面的信息框里的报错信息
  • 打开在**sofa/src/build/CMakeFiles/**下的CMakeError.log(错误日志)。这个日志会记录你在Cmake过程中所有的报错 (包括每一次Configure的报错)。我的经验是错误原因通常在”生成失败。“这句话附近。如果有多个错误,一个一个耐心解决。

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

如果你得到了类似这样的报错信息那你大概是像博主一样利用Vcpkg安装的Boost,Cmake没能找到你的Boost。(我错了,下次还犯)但用Vcpkg安装Boost真的很容易。Cmake给出了提示:

方法1:

点击Add Entry按键添加一个下面这样的Entry。

Name Boost_ROOT
Type path
Value 你安装Vcpkg的文件夹/vcpkg/installed/x64-windows/include(比如博主的是D:\vcpkg\installed\x64-windows\include)
Description

注意Value不能填**你安装Vcpkg的文件夹/vcpkg/installed/x64-windows/include/boost**,需要填包含Boost文件夹的文件夹的路径,否则仍然会像上图那样报错。

方法2:

在环境变量中添加一个下面这样的系统变量

变量名
Boost_ROOT 你安装Vcpkg的文件夹/vcpkg/installed/x64-windows/include(比如博主的是D:\vcpkg\installed\x64-windows\include)

sofa/src/applications/plugins/SofaHighOrder/ExternalProjectConfig.cmake.in does not exist.

有可能当添加SofaHighOrder的子目录EXTERNAL的时候会发生这样的报错,有时候又不会发生。我怀疑ExternalProjectConfig.cmake.in这个文件特别容易丢包。但解决很容易,博主在前面下载SOFA源码的Github仓库里找到了这个ExternalProjectConfig.cmake.in你说神不神奇。把这个文件下载下来放到**sofa/src/applications/plugins/SofaHighOrder/**文件夹下即可。(其实博主不知道怎么下这个文件,就在sofa/src/applications/plugins/SofaHighOrder/文件夹下新建了一个ExternalProjectConfig.cmake.in并把Github上该文件里的内容复制粘贴了进去)

在运行到SofaHighOrder这部分的时候你可能会碰到像下面这样的乱码,但不要紧,再Configure几次就没有了。

找不到Python

博主为此专门下了一个Python2.7。

你需要在搜索框中搜索Python以确保你确实添加上了SofaPython插件。即便你单独下好了Python2.7你也可能需要手动勾选SofaPython选项(勾选前Enter列表中SofaPython_DIR显示找不到SofaPython,但你手动添加这个插件的话其实他找得到)

找不到Qt

类似找不到Boost的解决办法,点击Add Entry,添加一个下面这样的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

以上便是博主安装SOFA本体过程中遇到过的报错,如果你遇到了别的无法解决的报错也欢迎讨论


这是博主在加装SoftRobots插件前得到的无误的反馈信息。并且你会发现本来一片红色的Entry列表此时全都是白/灰这种看起来就很OK的颜色。(如果还有红色的请再Configure一次。这之后如果还有,忽略)

在此之前,在搜索框里输入python并确保你的PLUGIN_SOFAPYTHON打了勾,SofaPython_DIR不是not found

这样SOFA软件本体的安装就没有问题了,接下来添加SoftRobots插件(现在你在搜索框查找SoftRobots是什么也查不到的)。

添加SoftRobots插件

博主一开始没看到正规添加SoftRobots插件的方法,手足无措下自行修改了SOFA的CMakeList.txt文件安上的…(狗屎英语教程)

正规方法是在搜索框搜索SOFA_EXTERNAL_DIRECTORIES,找到这个Entry并将Value填为你安装SOFA的文件夹/sofa/src/applications/plugins/SoftRobots(比如博主的是D:/sofa/src/applications/plugins/SoftRobots),

再次Configure,你就得到了与SoftRobots相关的几个Entry。不勾选这几个可选组件orz博主研究了很久也没能成功安装他们。根据名字和需要的库博主猜测SOFTROBOTS_GAMETRAKCONTROLLER是一个实现可以通过usb设备或蓝牙和外设交互的组件,SOFTROBOTS_COMMUNICATIONCONTROLLER似乎是实现利用网络通信和外设交互的组件,而SOFTROBOTS_ROBOTINOCONTROLLER猜测需要配合Robotino使用。Robotino是一款商业化的移动机器人系统,明显买不起。博主暂时不需要这个插件。

再次Configure。

完美。

这是博主最终的无误版Configure的反馈信息。

现在安装已经接近尾声了(步骤方面,时间方面还得要一会),你可以选择性的再安装几个部件。(报错了的话就放弃吧哈哈哈哈哈)给出官网上相关网页以供参考。

当你对Configure的结果感到满意后,Generate,点击!

注意,编译完成之前暂时先不要关闭CMake界面,否则可能编译失败

编译

你可以睡前来做这个

进入sofa/build/,用VS打开Sofa.sln,经过一段令人尴尬的等待,

进入界面后先将解决方案配置调为Release,然后确保解决方案平台确实是你电脑的平台(博主的电脑是x64平台),等待左下角显示就绪后,点击本地Windows调试器开始编译。

然后你就可以去睡觉了。(即便你想用电脑做点别的应该也很难,不知道是我人品太差还是SOFA的编译真的很考验电脑,我的电脑呈现出了这样的尴尬局面 )

第二天(博主的电脑编译了两个多小时),你会看到一个无法打开ALL_BUILD的报错,这是正常现象,无须在意。

如果你没有看到其他报错,恭喜你编译成功了!

测试

现在就可以来测试一下软件是否真的安装成功了。进入sofa/build/bin/release/,运行rensofa.exe,会进入这个蛇绕柱子的Demo。

你可以通过打开在SoftRobots下的几个Example来进一步测试。可以参考官网给出的样例教程。或者你也可以探索SOFA官网上的入门教程。

至此,本次在Win10下安装SOFA仿真软件并加装SoftRobots插件的任务便完成了。

恭喜你能坚持安装完成,也祝你接下来的研究顺利。

顺带一提,电子科大微软学生俱乐部真是个好地方,里面人才又多,说话又好听

记一次在Win10下安装SOFA仿真软件并加装SoftRobots插件的经历相关推荐

  1. 记第一次win10下安装、卸载ubuntu16.04的过程

    0.问题描述:在win10下安装完ubuntu后开机能选择进入ubuntu,点windows boot manager却进不去win10,只能按F12才能间接进去,找了很多方法,还是没能把引导程序改利 ...

  2. win10 mbr下装linux,在Win10下安装Ubuntu 18.04双系统(MBR+Legacy)

    刚刚在win10下安装了ubantu18.04系统,亲测有效!中途遇到了很多坑,一一为大家避免 以下就是我安装双系统的详细步骤 BIOS引导方式 目前主要的系统引导方式也有两种:传统的LegacyBI ...

  3. win10下安装Ubuntu后,启动时没有win10选项解决方法

    win10下安装Ubuntu后,启动时没有win10选项解决方法 参考文章: (1)win10下安装Ubuntu后,启动时没有win10选项解决方法 (2)https://www.cnblogs.co ...

  4. Docker知识4:如何在win10下安装 / 使用ubuntu ?应用WSL2

    官方文档:Install WSL on Windows 10 | Microsoft Docs 提要: 本文是关于docker的专题讨论,作者用一组文档尽可能保证完整地阐述Docker到底是啥?如何使 ...

  5. win10下安装ubuntu,双系统,免U盘

    win10下安装ubuntu,双系统,免U盘 关键词:win10,ubuntu,双系统,免, U盘 1-6,8 参考:https://www.jianshu.com/p/417c1001a559 7 ...

  6. win10下安装SQLServer2000

    <win10下安装SQLServer2000> 请注意:本机不能装些乱七八糟的流氓软件,如:加密软件等,否则这些软件的进程会导致上述的SETUP\SETUPSQL.EXE能启动但看不到界面 ...

  7. mysql安装最后两项无响应,win10下安装mysql8.0.23 及 “服务没有响应控制功能”问题解决办法...

    win10下安装mysql 1. 官网下载mysql 网址:https://www.mysql.com/downloads/ download页面往下拉:点击下图红框: 按下图指示操作: 下载之后解压 ...

  8. win10下安装多个cuda(cuda9.0和10.0),并自由切换版本

    1.前言 最近想测试下cuda版本的高地是否会影响GPU显存的初始占用,如果低版本的cuda占用显存较少那岂不是非常棒?所以这就牵涉到了多版本cuda共存的问题,网上很多博客只是浅谈了安装过程,我这里 ...

  9. win10下安装Ubuntu18.4双系统(适合小白)

    win10下安装Ubuntu18.4双系统(适合小白) 注:本篇为传统MBR引导方式下安装. 查了很多博客,有的地方说法都不同,导致踩了一些坑.所以大家参考的时候还是得对自己的电脑配置等要具体情况具体 ...

最新文章

  1. 【119】开始学习CMD
  2. 搜索算法相似度问题之BM25
  3. 搭建Jenkins+Sonarqub+Mysql+Android(上篇)
  4. matlab里符号的写法,Matlab中特殊符号的写法
  5. 智能车复工日记【6】:有bug的模糊PID记录
  6. 自动查询成绩的小玩意
  7. 磁盘IOPS计算与测量
  8. Java中有关日期的操作,昨天晚上赴约,搞到12点多才回来,今天写这一小段代码都花了一段漫长的时间,哎。。...
  9. jetson nano 相关设置(开机自动登录、取消休眠和屏保、开机自启动程序)
  10. 清理C盘内存有用的办法
  11. 湖南大学离散数学实验——代码(一)
  12. window.crypto.subtle进行rsa-oaep加密
  13. 2路10核物理服务器能否虚拟40vcpu,计算vCPU数量 依据公式
  14. python编程100例海绵宝宝-Python_Turtle库画一只派大星
  15. Modbus协议中文pdf免费下载地址
  16. c语言修改pdf文件内容,PDF怎么编辑修改?如何编辑PDF的内容?
  17. 怎样组织一次攻防演练比赛- 前期准备阶段
  18. 微信服务器 移动信号,微信消息延迟,只需更改手机这5个设置,效果“立竿见影”...
  19. 赵栋 201771010137 《面向对象程序设计(java)》课程进度表
  20. 优启通桌面只有一个计算机,优启通图文详细使用教程,优启通使用教程

热门文章

  1. 397高校毕业设计选题
  2. 区块链技术的应用可能会带来哪些风险?
  3. 向量学习2:图形围绕自己中心旋转、围绕图形外或内任意点为中心旋转
  4. H5小游戏 - 答题游戏
  5. 示波器仪器设备自动化校准计量检测软件系统NSAT-3010
  6. 熬夜肝了这一份C++开发详细学习路线
  7. [1002]:A+BII(大数计算)
  8. 次元服务器的位置,暮色次元服务器介绍
  9. 【2022年】软件测试前景和发展方向,软件测试行业出路?
  10. SpringBoot+Shiro+JWT+Mybatis-Plus搭建admin-shiro管理系统