-->

ubuntu16.04 orbslam2 安装笔记

Posted on By Marquis

前言

以下根据ORB_SLAM2 的安装步骤完成安装。

昨天在 ubuntu16.04 orbslam 安装笔记 安装了orbslam,今天在此基础上安装orbslam2.
不过安装的时候出了问题,所以最后是重装了ubuntu,然后才编译成功的。

安装步骤

按照 官方教程,一步步来吧

安装 Pangolin

按照 Pangolin 的指示

OpenGL

sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

glew

sudo apt-get install libglew-dev

然后正式build

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .

获取ORB_SLAM2源代码 并 正式编译

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

然后使用脚本 build.sh to build the Thirdparty libraries and ORB-SLAM2:

cd ORB_SLAM2
chmod +x build.sh
./build.sh

以下为编译链接时的错误处理方法

编译时的错误1:虚拟内存不够

build的时候可能会提示virtual memory exhausted: Cannot allocate memory,我以为内存太小,增加了内存,还是不行,搜索发现是没有给swap空间,怎么建立swap呢?
切换到根目录
cd /
建立一个相应大小的空文件(这里count=1000就是1G啦):
sudo dd if=/dev/zero of=swapfile bs=1M count=1000
然后把该文件变成swap file:
sudo mkswap swapfile
开启swap file:
sudo swapon swapfile

link的时候会出现这种类型错误:
/opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgcodecs3.so.3.3.1: undefined reference to TIFFReadRGBAStrip@LIBTIFF_4.0

马后炮一下,我猜测这个问题的根源在于我装了ubuntu之后先装了anaconda,然后装的opencv以及ros(明显ros中的opencv是ros自带的啦),而anaconda自带了libtiff等库,但不知道为啥又用不了,很郁闷。

上面的出错信息表示它找的是我的ros中的opencv,我把cmakelist.txt中的opencv requied设为我安装的opencv版本数字时出错信息就变成非ros自带的opencv的了,还是 TIFF相关。
其实这就表明俺的opencv有问题!不过重装opencv还是不行!
当我按照别人的说法将conda的tiff去掉:conda uninstall libtiff 发现还是不行,这里让我用sudo make也不行。

坚决不要先装 anaconda 再装 opencv,不能这么搞!

我重装了ubuntu,不装anaconda,直接用系统自带的Python,就成功啦!