编译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之后呵呵 ...
最新文章
- svn 怎么直接同步指定服务器的某个文件夹
- PHP 实现随机字符串,可作为随机密码
- 深度学习之pytorch(二) 数据并行
- java mediainfo.dll_MediaInfo库的简单使用
- 给自己的网址加上https,添加ssl证书(springboot项目)
- apt update时出现签名无法验证,公钥失效的解决办法
- 泸州NGN属南气矿工程----N2000网管系统提示连接数据库失败
- 手机系统S40 S60 是什么意思?
- python与排版设计欣赏_有哪些排版惊艳的建筑作品集?
- 解除windows10多账户远程桌面连接限制
- 冯诺依曼计算机模型中存储器,在冯诺依曼计算机模型中存储器是指什么单元?...
- 关闭和打开445端口
- 滑动差分倒谱系数 matlab,【网安学术】基于音频特征参数的多语种分类算法
- 酒店客房住宿预定管理系统(ssm,mysql)
- 数学中的图像重构 -- CT中的 Radon 变换 图解
- Solaris/Linux 命令行 简单手册
- [科普]为什么360会报键盘记录
- 智慧景区场馆(票务)系统解决方案
- 爬虫遇到js动态渲染问题
- 免费180天的Ashampoo Anti-Virus 2014
热门文章
- 博图os更新_博途V14的新功能(通过U盘给第二代的精智及精简屏传输组态)
- 基于SSM框架的毕业设计管理系统的设计与实现(附资源下载)
- MATLAB函数unidrnd简介
- access查询女教师所有的信息_access数据综合查询
- spyder python下载_Spyder Python软件-Spyder Python下载-最火手机站
- cmd字体推荐-更纱黑体
- 前端html和js编码设置
- CREO:CREO软件之零件【模型】形状之拉伸、旋转、旋转混合的简介及其使用方法(图文教程)之详细攻略
- 聊一聊云电脑、云游戏以及阿里云的“无影”
- Cocos BabeLua配置