编译ElasticFusion过程(Ubuntu14.04)
Ubuntu14.04安装编译ElasticFusion过程
环境(Ubuntu14.04+cuda7.5+GTX 1070)
目前只是在数据集上进行了编译,之后我会在后面的博客中介绍采用传感器进行真实场景的三维重建过程。
1、首先是安装各种依赖库
sudo apt-get install cmake-qt-gui
sudo apt-get install git
sudo apt-get install build-essential
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install libudev-dev
sudo apt-get install openjdk-7-jdk
sudo apt-get install freeglut3-dev
sudo apt-get install python-vtk
sudo apt-get install libvtk-java
sudo apt-get install libglew-dev
sudo apt-get install libsuitesparse-dev
sudo apt-get install libeigen3-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libjpeg-dev
2、安装OpenNI2
这个很好安装,应该没有什么问题
git clone https://github.com/occipital/OpenNI2
cd OpenNI2
make -j8
sudo make install
sudo ldconfig
3、安装Pangolin
(这一步折腾了两天,走了好多弯路,心疼自己)
首先,要注意新版的Pangolin需要的gcc g++版本必须是5.x,否则最后一步编译会出现各种错误,但是ElasticFusion编译gcc g++版本最高不能超过4.8,所以先升级gcc g++到5.x,Pangolin编译成功后,再将gcc g++降级到4.8,就ok啦
编译就是cmake ,然后在make啦。在编译Pangolin之前还应该安装依赖libglew-dev,我们第一步就已经安装过了。
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
这样Pangolin就已经编译成功了。
4、安装cmake
ElasticFusion需要的cmake版本是3.2
sudo apt-get install build-essential
wget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz
tar xf cmake-3.2.2.tar.gz
cd cmake-3.2.2
./configure
make
sudo make install
错误:安装完成后,cmake --version查看cmake的版本,出现段错误。
解决:
sudo apt-get remove cmake cmake-data
sudo -E add-apt-repository -y ppa:george-edison55/cmake-3.x
sudo -E apt-get update
sudo apt-get install cmake
再检查cmake --version,出现cmake version 3.2.2就表示cmake-3.2安装ok啦。
5、ElasticFusion的编译
首先,需要下载ElasticFusion的源码,接下来,进行三个部分的编译:Core 、GPUTest和GUI.
5.1编译Core
cd ElasticFusion
cd Core
cd src
mkdir build
cd build
cmake ..
make -j8
sudo make install
sudo ldconfig
(1)make -j8的时候会出现错误:nvcc fatal: unsupported ......'compute_61'
有两种解决办法:
方法一:修改~/ElaticFusion/Core/Src/build中的CMakeCache.txt,将CUDA_ARCH_BIN对应的Value改成30 35 50 52,再点击Generate使之生效
方法二:修改~/ElaticFusion/Core/Src中的CMakeLists.txt中大约32行 set(CUDA_ARCH_BIN "30 35 50 52 61" CACHE STRING "Specify 'real' GPU arch to build binaries for, BIN(PTX) format is supported. Example: 1.3 2.1(1.3) or 13 21(13)") 注释掉;或者删除61。
(2)注意:不要忘记sudo make install 和 sudo ldconfig两句指令来找到动态链接库,否则最后跑数据集的时候会出错:
error: invalid texture reference:~/ElasticFusion/Core/src/cuda/convenience.cuh:68
最后,编译成功后将src中的build文件夹复制到与src同一目录下,这样GPUTest才能编译通过。
5.2编译GPUTest
编译Core成功后,再编译GPUTest就很容易了。
cd ElasticFusion
cd GPUTest
cd src
mkdir build
cd build
cmake ..
make -j8
sudo make install
sudo ldconfig
5.3编译GUI
cd ElasticFusion
cd GUI
cd src
mkdir build
cd build
cmake ..
make -j8
sudo make install
sudo ldconfig
这一步中cmake ..后可能会出现libOpenNI2.so in /usr/lib may be hidden by files in ~/OpenNI2/Bin/x64-Release,但是并没有影响之后的make 。
1、可能在make -j8这一步出现错误error: 'glDrawFrustum' is not a member of 'Pangolin'
解决方法:将~/ElasticFusion/GUI/src/Tools/GUI.h中,
大约247行的'pangolin::glDrawFrustum' 改成'pangolin::glDrawFrustrum'
2、另外,这一步在cmake .. z之后可能还会出现错误:missing OPENNI2_LIBRARY , OPENNI2_INCLUDE_DIR,
此时,需要手动将它们的路径添加到/elasticfusionpublic/GUI/src/build的CMakeCache.txt中,
例如,我的路径就是~/elasticfusion_dep/OpenNI2/Bin/x64-Release,/home/dkn/elasticfusion_dep/OpenNI2/Include
注意要写成绝对路径啊!!
GUI编译成功后,在build文件夹中会产生ElasticFusion的可执行文件。
6. 运行数据集
接下来,就可以下载数据集了dyson_lab.klg,数据集下载完成后,与ElasticFusion的可执行文件放在同一个目录下,也就是~/ElasticFusion/GUI/build
cd ~/ElasticFusion
cd GUI
cd build
./ElasticFusion -l dyson_lab.klg
结果如图所示
以上就是调试ElasticFusion以来遇到的各种问题以及解决办法,其中走了很多弯路,经过了很多次的尝试,还好终于成功了,在此记录下来,希望可以帮助到有需要的人。如果有什么问题,欢迎大家在我的博客下留言,我看到的话会及时做出解答。
编译ElasticFusion过程(Ubuntu14.04)相关推荐
- ubuntu linux编译环境搭建,Ubuntu14.04开发环境搭建
Ubuntu14.04开发环境搭建 嵌入式开发过程中很重要的一环节就是开发环境的搭建,开发环境搭建的好可以很好的提高开发效率.其中关键的一部就是挂载运行程序,对于程序的挂载运行需要借助NFS服务器,下 ...
- ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...
- 编译android 7.1 jdk版本,ubuntu14.04 安装 open-jdk-1.8,下载编译 android nougat 7.1.1
一,ubuntu14.04 安装 open-jdk-1.8 在 ubuntu 下,把jdk 解压到 /usr/lib/jvm/ 目录下,配置环境变量,就ok. 下面是我已经安装的jdk crg@crg ...
- Android10源码AOSP(从Ubuntu14.04环境搭建到下载编译运行)
Ubuntu14.04环境搭建 电脑为笔记本,CPU i7-10750H,16G内存 虚拟机使用VMware Workstation 15 Pro 操作系统为Ubuntu 64 位 14.04 AOS ...
- ubuntu14.04下Andriod2.3.1编译环境的搭建
准备工作:获取andriod2.3.1的源码包,以及对应的jdk1.6.0.26. 1.编译andriod2.3.1需要gcc4.4的版本,但是ubuntu14.04自带的版本比这个高.需要通过以下指 ...
- 全志平台ubuntu14.04+安卓7.1+openjdk-8编译
编译环境准备 软件:vbox 系统:ubuntu14.04 内存:8G 处理器:4个 磁盘大小:100G 以下是安卓7.1源码(全志)和内核编译步骤: 一.内核编译 1.安装jdk8(注本人使用的是o ...
- [总结]联想笔记本E460/虚拟机VMware10.0+Ubuntu14.04+opencv+ROS+PCL+OpenNI+g2o+DSO+Pangolin+win7(Ubuntu双系统)安装过程整理
虚拟机VMware10.0+Ubuntu14.04 参考这个人的博客: http://blog.csdn.net/u013142781/article/details/50529030 目前已经没有1 ...
- Ubuntu14.04上编译指定版本的protobuf源码操作步骤
Google Protobuf的介绍可以参考 http://blog.csdn.net/fengbingchun/article/details/49977903 ,这里介绍在Ubuntu14.04上 ...
- GDAL2.1.1库在Ubuntu14.04下编译时遇到的问题处理方法
不用作任何调整,直接在Linux下编译GDAL2.1.1源码的步骤是: $ ./configure $ make $ make install 非常简单, 这样也能正常生成gdal动态库.静态库,如果 ...
- 如何在ubuntu14.04(64位)编译运行32位程序
来源:http://andycoder.me/fix-32bug-under-ubuntu1404/ 缘起 我之前是ubuntu12.04(32bit),在一次手贱的apt-getremove之后呵呵 ...
最新文章
- NServiceBus的安装与调试
- [M]MagicTable转换异常解决方法
- C语言中struct, union, enum 三大复合数据类型
- 留学申请中,你们怎么老让我做科研啊?
- 【OpenCV 例程200篇】81. 频率域高斯低通滤波器
- MyBatis学习总结(25)——Mybatis Generator generatorConfig.xml配置文件详细说明
- 单元测试基本路径覆盖法(转)
- 作用 和会话期 进程组_进程 进程组 会话的关系及作用
- 进制转换的方法 详解
- c语言考研真题及答案pdf,中财信息学院C语言程序设计2002年考研真题及答案.pdf...
- linux病毒扫描工具,linux病毒扫描工具ClamAV使用
- 5 位改变世界的女性程序员
- 服务器所有文件后缀名变了,怎么样批量修改文件扩展名(后缀)
- Linux软件安装-RPM的安装技巧
- react手机号码344格式分割
- xmd后缀名改mp3_xmd文件怎么打开 - 狸窝
- watchdog linux 进程,watchdog
- matplotlib可视化番外篇bar()--带误差棒的柱状图
- 有没有免费的抠图软件?自用的抠图软件分享
- Java并发编程的艺术_Conc