这篇是关于elasticfusion的编译说明,caffe的编译以及最终semanticfusion编译见下一篇博客:semantic fusion中的caffe 配置记录 Ubuntu16.04

环境说明:

ubuntu 16.04

CUDA 版本:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

Nvidia驱动版本:

| NVIDIA-SMI 418.87.01    Driver Version: 418.87.01    CUDA Version: 10.1

这里直接用命令行安装的驱动:

 sudo apt remove --purge nvidia*sudo apt install nvidia-418 nvidia-prime nvidia-settings

nvidia-prime很重要,因为后面需要用到独立显卡跑代码

注意cuda 和nvidia驱动有约束关系:
然后编译顺序什么的就很重要了

首先安装依赖:

sudo apt-get install -y cmake-qt-gui git build-essential libusb-1.0-0-dev libudev-dev openjdk-8-jdk freeglut3-dev libglew-dev libsuitesparse-dev libeigen3-dev zlib1g-dev libjpeg-dev libpng12-dev

注意原github上面说的是openjdk-8-jdk,可是apt下载不到7了,还删除了命令行里面的cuda,因为已经装好了。

开始编译:

由于最终目标是semanticfusion,所以直接下载semanticfusion的代码:

git clone --recursive https://bitbucket.org/dysonroboticslab/semanticfusion

代码很大。。。所以我等了好久。。
进入路径 semanticfusion/elasticfusionpublic/
编译很容易出问题,所以我们严格按照该路径下的build.sh的编译顺序:


#Installing Pangolin
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ../ -DAVFORMAT_INCLUDE_DIR="" -DCPP11_NO_BOOST=ON
make -j8
cd ../..#Up to date OpenNI2
git clone https://github.com/occipital/OpenNI2.git
cd OpenNI2
make -j8
cd ..#Actually build ElasticFusion
cd ../Core
mkdir build
cd build
cmake ../src
make -j8
cd ../../GPUTest
mkdir build
cd build
cmake ../src
make -j8
cd ../../GUI
mkdir build
cd build
cmake ../src
make -j8

make出现报错error: ‘glDrawFrustrum’ is not a member of ‘pangolin’
针对这个问题在Pangolin/include/pangolin/gl目录下的gldraw.h中发现没有glDrawFrustrum而是glDrawFrustum,所以将报错位置semanticfusion/elasticfusionpublic/GUI/src/Tools/GUI.h中的glDrawFrustrum改为glDrawFrustum(作者代码为什么会copy错不得而知。。。)

测试运行

  1. 下载测试数据:
    测试数据集
  2. 命令行运行:
cd semanticfusion/elasticfusionpublic/GUI/build
./ElasticFusion -l dyson_lab.klg

如果出现图形化界面说明编译成功!

过程中出现的问题:

GLSL 3.30 is not supported. Supported versions are 1.10, 1.20, 1.30, 1.00 ES and 3.00 ES

出现上述问题的原因是代码找不到独显,在intel核显上跑就会这样,所以之前需要下载nvidia-prime来控制是否使用独立显卡。
当然,驱动版本太高了(430)了系统也找不到显卡,所以会抱这个错,删除原来的驱动然后命令行安装418版本的就可以了

Your GPU "GeForce GTX 950M" isn't in the ICP Step performance database, please add it
Your GPU "GeForce GTX 950M" isn't in the RGB Step performance database, please add it
Your GPU "GeForce GTX 950M" isn't in the RGB Res performance database, please add it
Your GPU "GeForce GTX 950M" isn't in the SO3 Step performance database, please add it

这个原因是代码没有对我的显卡(GTX950M)做适配,需要手动将参数写到代码里面。代码文件去获取显卡参数的方法是运行GPUtest,具体参考:
点击这里

cd semanticfusion/elasticfusionpublic/GPUTest/build
./GPUtest ../

但是在运行GPUtest时我这里报错:

terminate called after throwing an instance of 'std::runtime_error'what():  Rebuild Pangolin for PNG support.
Aborted (core dumped)

网上能搜到的解决的方法很少,可以参考这个方法

更新:

可以运行了,显卡配置是1080Ti,对应的参数是:

icpStepMap["GeForce GTX 1080 Ti"] = std::pair<int, int>(384, 48);
rgbStepMap["GeForce GTX 1080 Ti"] = std::pair<int, int>(96, 160);
rgbResMap["GeForce GTX 1080 Ti"] = std::pair<int, int>(512, 432);
so3StepMap["GeForce GTX 1080 Ti"] = std::pair<int, int>(256, 48);

关于caffe的配置以及semanticfusion的编译,见下一篇博客:semantic fusion中的caffe 配置记录 Ubuntu16.04

semantic fusion中的Elastic Fusion 配置记录 Ubuntu16.04相关推荐

  1. 双系统gazebo闪退_记录Ubuntu16.04下PX4联合Gazebo仿真时遇到的问题与解决方法

    一.arm-none-eabi-gcc版本问题 在Ubuntu16.04中使用sudo apt-get install gcc-arm-none-eabi命令会自动安装默认版本(gcc version ...

  2. 在ubuntu16.4中安装mysql_【Linux】Ubuntu16.04环境下MySQL的安装与使用

    最近在写一个小的功能,想要把数据存储到MySQL,所以在本地虚拟机上安装的Ubuntu16.04上安装MySQL以供使用,下面记录下安装和简单使用的过程. 1.运行环境 Ubuntu16.04 2.打 ...

  3. 【基于Python+Flask项目部署系列--03】开发测试环境配置-基于Ubuntu16.04

    一.开发测试环境介绍 前提已经部署完[基于Python+Flask项目部署系列--02]Ubuntu16.04服务器安装.建议部署2套环境:开发测试环境+生产环境. 这篇文章主要讲解测试环境如何配置p ...

  4. 深度学习主机环境配置2---显卡配置:ubuntu-16.04.2-desktop-amd64.iso + GTX1070TI

    1.ubuntu-16.04.2-desktop-amd64.iso + GTX1070TI下载对应的驱动 cuda官网:https://developer.nvidia.com/cuda-downl ...

  5. SpringBoot中LogBack日志输出配置记录

    <?xml version="1.0" encoding="UTF-8"?><!-- Created by jinKai on 2017/1/ ...

  6. 虚拟机网络配置(ubuntu16.04)

    环境准备:在VMware上克隆三台ubuntu,对其网络进行配置,使其相互ping通且连接网络 1.虚拟机的配置与网络编辑设置 ①vmware->编辑->虚拟网络编辑器:设置网络 ②删除v ...

  7. PCL点云库学习(1):环境配置(Ubuntu16.04+QT5+VTK8.0)

    方式一:从公共软件源安装 sudo apt-get install libpcl-dev pcl-tools 直接输入上面代码安装,不保证一定能行.有一堆依赖的东西,保不准就报错了. 方式二:编译安装 ...

  8. python3环境搭建odoo_【环境配置】ubuntu16.04配置odoo13环境

    系统环境配置 安装python3.6 sudo apt-get update sudo apt-get install software-properties-common python-softwa ...

  9. 记录ubuntu16.04使用kinectv2报错openni2_grabber.cpp @ 325 : No devices connected.找不到设备的解决过程

    环境:安装了pcl1.8.0,openni2,libfreenect2: pcl1.8.1源码通过安装:https://blog.csdn.net/dantengc/article/details/7 ...

最新文章

  1. 秉承着一位代码艺术家的分享精神
  2. iOS中的UIView
  3. 1037:计算2的幂
  4. rm: cannot remove directory `misc': Device or resource busy
  5. webpack文件配置
  6. 使用mybatis操作AS400数据库
  7. JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
  8. 计组之I/O系统:1、I/O系统基本概念
  9. 4.平凡之路-封装帮助类和加载属性文件
  10. 在iphone开发中的get请求和post请求
  11. 网页端启动服务器控制台程序,在ASP.Net(C#)中调用服务器端的控制台应用程序
  12. 根据字幕自动配音的软件 如何自动识别语音识别语音生成字幕
  13. PyTorch读取目标检测数据集
  14. 矩阵连乘积问题--动态规划
  15. 第26课时,实践4,定期存款利息计算器
  16. UE4(虚幻4)做一个双开平移自动门+双开旋转门+使用相对坐标
  17. java多态app_【Java基础】Java中的多态
  18. Python的异步编程介绍(MD)
  19. Linux —— 进程间通信
  20. [转载]基于UML的需求分析和系统设计(完整案例和UML图形演示)

热门文章

  1. PHP之Zip扩展,解压缩文件,ZipArchive类
  2. PHY6252超低功耗物联网蓝牙无线通信芯片
  3. java正则多条件表达式匹配提取
  4. 简单循迹小车实验心得_新人刚刚接触单片机,求教一个简单的循迹小车程序(实在看不懂)...
  5. 用c++做一个弹窗恶搞——类似病毒但没危害
  6. R 数据可视化 02 | 火山图
  7. 驱动 | Linux | NVMe | 2. nvme_probe
  8. Java 正则表达式(深度长文)
  9. c语言fstream头文件的作用,iostream头文件的作用是什么
  10. 线性系统理论的发展历程