0.简介
在学习视觉SLAM过程中,先后用了VINS_mono,VINS_Fusion,Omni_swarm,因为是第一次做视觉相关定位,所以大部分库都是第一次装,中间还从虚拟机换到双系统,意识到记录的重要行性,所以在此记录安装相关依赖库的教程。
环境: Ubuntu18.04

eigen
ceres
3.Opencv
cv_bridge
VINS_Mono/Fusion测试


1.Eigen
在安装Eigen和ceres之前,首先需要关注的都是版本问题,如果版本不对,需要卸载重装

1.1 确定需要的Eigen版本
VINS现在用的ceres是1.14的,那么他对应的Eigen版本是3.2.9,我们直接按照这个装,如果本身安装的版本不对,并且catkin_make报错,那就先卸载Eigen

1.2 卸载Eigen
1.2.1 查询eigen目录

sudo updatedb
locate eigen3

找到输出中为/usr文件夹下的结果

/usr/include/eigen3
/usr/lib/cmake/eigen3

1.2.2 删除对应文件夹

sudo rm -r   /usr/include/eigen3
sudo rm -r  /usr/lib/cmake/eigen3

1.3 安装Eigen3.2.10
我找了一会儿没找到3.2.0,我觉得3.2.10应该也是可以的,试试(如果我已经写出来的话,证明成功你可以继续)

1.3.1 下载地址
如截图红色显示


1.3.2 安装命令

unzip eigen-3.2.10.zip
 cd eigen-3.2.10/
mkdir build
 cd build/
 cmake ..
 sudo make install
 sudo updatedb
 locate eigen3

一般显示内容会多出很多类似的结果

/usr/local/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
/usr/local/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
/usr/local/include/eigen3/Eigen/src/Core/util/MKL_support.h

默认安装Eigen的目录为 /usr/local/include/eigen3/
为了方便后续代码寻找,避免报错,我们把Eigen移动到上一级

sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include

1.3.2检查

pkg-config --modversion eigen3

显示3.2.10,代表安装成功

2.ceres1.14
2.1检查电脑上是否有其他版本ceres

  sudo updatedb
 locate ceres

/usr/lib/libceres.a
/usr/lib/libceres.so
/usr/lib/libceres.so.1
/usr/lib/libceres.so.1.13.0
/usr/local/include/gtsam/3rdparty/ceres
/usr/local/include/gtsam/3rdparty/ceres/autodiff.h
/usr/local/include/gtsam/3rdparty/ceres/eigen.h
/usr/local/include/gtsam/3rdparty/ceres/example.h 

明显我电脑上有旧版本的ceres

    sudo rm -r /usr/include/ceres/ 

2.3 安装ceres1.14.0

tar xvf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..
sudo make
sudo make install

3.Opencv3.4.10

3.1 opencv 卸载
其实我的系统上本身有一个opencv4.0.0,但是不是我装的,我现在安装不上后续对应的cv-bridge,再加上vins系列对于oepncv4.0.0好像有些兼容问题,所以决定全都卸载,重新装

3.1.1 打开opencv的源目录,进行卸载

cd opencv-4.0.0/ 
sudo make uninstall
cd ..
sudo rm -r build

3.1.2 删除剩余文件
用sudo updatedb ,locate opencv4检查,删除所有出现的文件夹 尤其是 /usr/ 下的

3.2 opencv安装
3.2.1 下载
我下载的是3.4.10倒数第二个zip


3.2.2 安装
①依赖项

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  
sudo apt-get install qt5-default ccache libv4l-dev libavresample-dev  libgphoto2-dev libopenblas-base libopenblas-dev doxygen  openjdk-8-jdk pylint libvtk6-dev
sudo apt-get install pkg-config

②安装opencv3.4.10

unzip opencv-3.4.10.zip
cd opencv-3.4.10/
mkdir build
cd build/
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j4
sudo make install

3.2.3配置环境
①将opencv的库添加到路径

sudo gedit /etc/ld.so.conf.d/opencv.conf

在打开的文件中添加/usr/local/lib
②更新共享链接库

sudo ldconfig
sudo gedit /etc/bash.bashrc

在文件末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH

③配置生效

source /etc/bash.bashrc
sudo updatedb

④检查

pkg-config --modversion opencv

显示3.4.10即可
安装后不可以删除源码文件夹opencv-3.4.10

4.CV-bridge
注:GDPt_ws为我后续跑vins代码的工作空间,如果你有工作空间,或者已经完成创建,直接使用即可

mkdir -p GDPt_ws/src
cd GDPt_ws/src
git clone https://gitee.com/bingobinlw/cv_bridge
cd ..
gedit src/cv_bridge/CMakeLists.txt

把打开文件第六行的目录换成自己安装opencv的build目录

catkin_make

5.VINS_mono和VINS_Fusion检验
在5.1和5.2之间二选一

5.1 VINS_mono测试

cd GDPt_ws/src 
gitc clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono
cd ..
catkin_make

5.2 VINS_Fusion测试

cd GDPt_ws/src 
gitc clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion
cd ..
catkin_make

以下库的安装是为了应用功能包Omni-swarm,这里只写安装依赖项的教程,后边会再有文章写Omni的后续使用教程

  1. lcm库
  2. 6.1下载地址
    地址,下载lcm-1.4.0.zip

6.2 安装

unzip lcm-1.4.0.zip
cd lcm-1.4.0.zip
mkdir build
cd build
cmake .. 
sudo make install

7.CUDA+Pytorch
此项仅有Omni需要
虚拟机无法用,因为要用显卡,所以必须要安装ubuntu系统