Elasticfusion 配置与运行

电脑配置:ubuntu16.04(64位)+GTX1070

一、依赖库的安装

编译准备:下载官方给出的的依赖如下
sudo apt-get install -y cmake-qt-gui git build-essential libusb-1.0-0-dev libudev-dev openjdk-7-jdk freeglut3-dev libglew-dev cuda-7-5 libsuitesparse-dev libeigen3-dev zlib1g-dev libjpeg-dev
注意:cuda-7-5 应与自己电脑的cuda匹配,openjdk-7-jdk也应与自己电脑匹配

build-essential —— Linux下的C/C++编译环境及依赖,如gcc和g++

libudev-dev —— 用户空间的设备文件管理库

openjdk-7-jdk —— 开源的Java开发环境

freeglut3-dev —— 开源的OpenGL库

libglew-dev —— OpenGL库

libsuitesparse-dev —— 稀疏矩阵运算库

zlib1g-dev —— 数据压缩库

libjpeg-dev —— JPEG图像压缩库
如果上面没有通过,参照这篇文章继续配环境:https://blog.csdn.net/jthree2012/article/details/80837661

二、

首先通过git下载源码,命令如下: 
git clone https://github.com/mp3guy/ElasticFusion.git 

下载后解压,进入ElasticFusion 新建deps ,在deps下安装相关依赖

1.按照这篇文章来https://blog.csdn.net/qq_34622997/article/details/85262344

2.程序可以跑通数据集

让人头大的去配置libfreenect2

 

 libfreenect2  

git clone https://github.com/OpenKinect/libfreenect2.git  //下载源码

sudo apt-get install build-essential cmake pkg-config libturbojpeg libjpeg-turbo8-dev mesa-common-dev freeglut3-dev libxrandr-dev libxi-dev         //安装依赖项

sudo apt-add-repository ppa:floe/libusb

sudo apt-get update

sudo apt-get install libusb-1.0-0-dev   //安装libusb

sudo apt-get install libglfw3-dev     //安装GLFW3

//编译如下

cd libfreenect2

mkdir build

cd build

cmake .. -DBUILD_OPENNI2_DRIVER=ON

make 

sudo make install

sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/

测试  ./bin/Protonect

 

若测试没有问题,在此路径下执行如下操作:

sudo apt-get install openni2-utils

sudo make install-openni2

NiViewer2

注意:

ElasticFusion的驱动用的是openni2,但是kinect2用libfreenect2驱动,所以在编译的时候编译出来带openni2的libfreenect2,cmake .. -DBUILD_OPENNI2_DRIVER=ON,但是如果系统里面事先没装好openni2,是编译不出来的,所以先装好libopenni2-dev,这样就可以编译出来带openni2的libfreenect2的驱动,即能在build的lib中找到libfreenect2-openni2.so 

注意:将libfreenect2/build/lib 下的libfreenect2-openni2.so ,libfreenect2-openni2.so.0 , libfreenect2.so.0.2 拷贝到OpenNi2/Bin/x64-Release/OpenNi2/Drivers下,此时./NiViewer 执行OpenNi2/Bin/x64-Release 下的NiViewer成功显示。
并且,保证/usr/lib/OpenNI2/Drivers下也包含上面三个文件

注意:

跑kinect2时,将MainController.cpp第37行的Resolution::getInstance(640, 480)改为Resolution::getInstance(512, 424)

否则可能会出现以下错误:

ElasticFusion: /home/slam/ElasticFusion/GUI/src/Tools/OpenNI2Interface.cpp:119: 
OpenNI2Interface::OpenNI2Interface(int, int, int): Assertion `findMode(width, height, fps) && "Sorry, mode not supported!"' failed.

但是,如果你是先编译然后再改分辨率的话需要重新编译,在编译GUI是需要make clean之前编译的GUI

注意:cuda配置的时候需要配置好环境,否则问题很多,配出来就是缘分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值