目录
一、系统设置
- 前言
- 一、系统设置
- 二、SLAM常用包配置
- 1.Debian常用软件包
- 2.OpenCV和opencv_contrib包
- 3.SLAM代码与第三方包
- Kdevelop安装
- Eigen安装
- Sophus安装
- Pangolin安装
- PCL安装
- Ceres-solver安装
- g2o安装
- Meshlab安装
- Octomap安装
- DBoW3安装
- 总结
SLAM代码需要在Linux下编译,因此我选择采用虚拟机配置Debian系统进行环境配置(Ubuntu用太久了换换口味~)
通过VM Workbench + Debian10镜像创建系统
二、SLAM常用包配置 1.Debian常用软件包包括gedit, nano, G++, cmake, git等等常用工具:
sudo apt install gedit nano g++ gcc cmake cmake-gui git gdb
2.OpenCV和opencv_contrib包
opencv与contrib安装较慢,因此先安装这两个部分,首先安装依赖项,
sudo apt install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libpng-dev libjpeg-dev libtiff5-dev libswscale-dev libjasper-dev libdc1394-22-dev libtiff-dev python-dev python-numpy libtbb2 libtbb-dev
这里有一个问题就是libjasper-dev的包被Debian10遗弃了。这个包主要用于JPEG-2000格式的图片处理,因此我没有安装这个包
随后git clone opencv的官方源码(如果网速太慢可以选择gitee上的opencv源)
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
开始cmake和编译安装
cd opencv
mkdir build
cd build
cmake .. -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D PYTHON_DEFAULT_EXECUTABLE=$(which python3) -D WITH_TBB=ON -D WITH_EIGEN=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ -D OPENCV_GENERATE_PKGCONFIG=ON
make -j2
sudo make install
接着需要配置opencv的环境,
# 把opencv库添加到系统路径
sudo nano /etc/ld.so.conf.d/opencv.conf
# 这是一个空白文件,在后面添加
# /usr/local/opencv/lib
sudo ldconfig
# #配置pkg-config
sudo nano /etc/bash.bashrc
# 在末尾添加
# PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
# export PKG_CONFIG_PATH
# 更新bash配置
source /etc/bash.bashrc
sudo updatedb
最后测试一下配置是否正确,
pkg-config --libs opencv4
# 如果出现 -lopencv_core 等一长串链接库则说明配置正确
3.SLAM代码与第三方包
首先git下十四讲的代码和第三方包,
git clone https://github.com/gaoxiang12/slambook2.git
cd slambook2
git submodule update --init --recursive
cd 3rdparty
Kdevelop安装
sudo apt-get install automake autoconf g++ libtool
sudo apt-get install kdevelop
Eigen安装
sudo apt-get install libeigen3-dev
sudo updatedb
locate eigen3
Sophus安装
# 当前路径在slambook2/3rdparty
cd Sophus
git checkout a621ff
mkdir build
cd build
cmake ..
make -j2
# 这里有个BUG,需要把Sophus/sophus/so2.cpp中的
# unit_complex_.real() = 1. ;
# unit_complex_.imag() = 0. ;
# 改为
# unit_complex_.real(1.) ;
# unit_complex_.imag(0.) ;
Pangolin安装
# 当前路径在slambook2/3rdparty
sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev
cd Pangolin
mkdir build && cd build
cmake ..
make -j2
sudo make install
PCL安装
sudo apt-get install libpcl-dev pcl-tools
Ceres-solver安装
# 当前路径在slambook2/3rdparty
sudo apt-get install liblapack-dev libsuitesparse-dev libgflags-dev libgoogle-glog-dev libgtest-dev libcxsparse3
cd ceres-solver
mkdir build
cd build
cmake ..
make -j2
sudo make install
g2o安装
# 当前路径在slambook2/3rdparty
sudo apt-get install libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-headers
cd g2o
mkdir build
cd build
cmake ..
make -j2
sudo make install
Meshlab安装
sudo add-apt-repository ppa:zarquon42/meshlab
sudo apt-get update
sudo apt-get install meshlab
Octomap安装
git clone https://github.com/OctoMap/octomap.git
sudo apt-get install doxygen-latex doxygen-doc doxygen-gui graphviz libclang1-6.0
cd octomap
mkdir build
cd build
cmake ..
make -j2
sudo make install
DBoW3安装
cd DBow3
mkdir build
cd build
cmake ..
make -j2
sudo make install
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?