最近倒腾了一下旧项目,发现之前的环境不知道抽了什么风,直接不能用了,好吧,索性从头装过。
一、第三方库
主要包括Pangolin 、 OpenCV 、 Eigen
g2o 与 DBoW2在ORB-SLAM2里面自带可以不需要自己搞
# 更新apt库,更新软件列表
sudo apt-get updatesudo 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> 即可解决
如果上面都没什么问题,这里基本会比较顺利,能看到下图这样