ubuntu18.04安装ORBSLAM2

        最近倒腾了一下旧项目,发现之前的环境不知道抽了什么风,直接不能用了,好吧,索性从头装过。

一、第三方库

主要包括Pangolin 、 OpenCV 、 Eigen

g2o 与 DBoW2在ORB-SLAM2里面自带可以不需要自己搞

# 更新apt库,更新软件列表
sudo apt-get update

sudo apt-get upgrade

首先安装 vim 、 cmake 、 git 、 gcc 、 g++

ctrl+alt+t打开终端

sudo apt-get install vim cmake
sudo apt-get install git
sudo apt-get install gcc g++

1、Pangolin

Pangolin是对OpenGL进行封装的轻量级的OpenGL输入/输出和视频显示的库。 

安装依赖项

sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install libpython2.7-dev

建议下载0.5的版本,不然会报找不到lEigen的错

git clone -b 0.5 https://github.com/stevenlovegrove/Pangolin.git 

开始编译

# 开始编译和安装
cd Pangolin
mkdir build && cd build 
cmake -DCPP11_NO_BOOST=1 ..
sudo make install 

验证是否安装成功

# 验证
cd ../examples/HelloPangolin
mkdir build && cd build
cmake ..
make
./HelloPangolin

成功安装就可以看到下面这个 

2、opencv

地址:Releases - OpenCV

我用的是3.4.14的版本

安装依赖

sudo apt-get install build-essential 
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

如果出现Unable to locate package libjasper-dev,用一下方式解决

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

开始编译

cd opencv/
mkdir build
cd build
cmake ..
make -j4
sudo make install

cmake完能看到下图基本上是没问题的

验证是否安装成功

#验证

cd opencv/samples/cpp/example_cmake
cmake .
make
./opencv_example

成功了可以看到下图效果

 3、Eigen

我是通过源码安装的Eigen 3.3.7 · libeigen / eigen · GitLab

cd eigen
mkdir build && cd build
cmake ..
make
sudo make install

# 在很多程序中include时经常使用#include <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>
# 因此安装后需要将头文件从 /usr/local/include/eigen3/ 复制到 /usr/local/include
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include

验证是否安装成功

# 建立 test 测试文件
touch test_eigen.cpp
gedit test_eigen.cpp
g++ test_eigen.cpp -o test_eigen
./test_eigen

在test.cpp中添加如下代码

#include <iostream>
//需要将头文件从 /usr/local/include/eigen3/ 复制到 /usr/local/include
#include <Eigen/Dense>
//using Eigen::MatrixXd;
using namespace Eigen;
using namespace Eigen::internal;
using namespace Eigen::Architecture;
using namespace std;
int main()
{
        cout<<"*******************1D-object****************"<<endl;
        Vector4d v1;
        v1<< 1,2,3,4;
        cout<<"v1=\n"<<v1<<endl;
 
        VectorXd v2(3);
        v2<<1,2,3;
        cout<<"v2=\n"<<v2<<endl;
 
        Array4i v3;
        v3<<1,2,3,4;
        cout<<"v3=\n"<<v3<<endl;
 
        ArrayXf v4(3);
        v4<<1,2,3;
        cout<<"v4=\n"<<v4<<endl;
}

运行之后能看到下图

二、安装ORBSLAM2

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
./build.sh

安装过程中可能会遇到usleep的错误

只需要在ORB_SLAM2/include/System.h 中加上 #include <unistd.h> 即可解决

如果上面都没什么问题,这里基本会比较顺利,能看到下图这样

猜你喜欢

转载自blog.csdn.net/athrunsunny/article/details/131350640
今日推荐