这篇是关于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. python使用matplotlib中的errorbar函数可视化误差条、并自定义数据点标记、数据点大小、数据点颜色、数据点边缘颜色、误差棒颜色、误差棒线条宽度、误差棒边界线长度、误差棒边界线厚度等
  2. Linux下截屏方法!
  3. 字节又莫名其妙发奖金了!网友:突然到账五万,吓得我差点报警...
  4. 10分钟搞定让你困惑的 Jenkins 环境变量
  5. php判断日期为空值,php判断值是否为空实例代码
  6. 20169205实验一 Java开发环境的熟悉(Linux+IDEA)
  7. UVA225Golygons 黄金图形
  8. 网络安全攻防实验室通关教程-注入关
  9. 【基于UML软件建模的选课系统】
  10. 如何在twitter上看片_我在Twitter上一年学到的东西
  11. MATLAB——LTI Viewer
  12. Nginx从入门到入坟(十)- Rewrite功能详解与案例实操
  13. python第三次作业
  14. 加拿大滑铁卢大学计算机世界排名,滑铁卢大学世界排名
  15. svn提示没有设置冲突_SVN冲突以及解决办法
  16. 关于File()中的pathname的路径
  17. IPTV桌面系统建设物料和费用:服务器+软件+电视盒
  18. 用python编写名片_python实现简单名片管理系统
  19. 【Pygame实战】风靡全球的切水果游戏升级版“水果忍者”上线啦,你敢来PK嘛?
  20. 易票联C#加密的方法

热门文章

  1. VIP邮箱与普通邮箱有什么区别?哪家收费邮箱好?
  2. java框架源码下载大全(持续更新中)
  3. 通过高通平台简单总结的权限问题
  4. 很多人劝你不要转行IT了,互联网人才饱和了,是真的吗?
  5. Linux下载文件命令wget的一些用法
  6. 简单的css条型动画
  7. CPA三--商品流通企业发出存货的方法(转载)
  8. 相干伊辛机CIM登陆物理学顶级综述RMP
  9. Tensorflow YOLOv3实现与详解
  10. word制作三线表模板,然后批量修改!