安装环境 Ubuntu20.04
ORB_SLAM3依赖项安装
opencv3
ORB_SLAM3可用opencv3或opencv4编译,作者这里安装测试了opencv3
Step1: 安装opencv的依赖包
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
- 如果提示找不到libjasper-dev软件包
sudo apt-add-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
Step2: 下载opencv和opencv_contrib
cd ~/<my_working_directory> # <my_working_directory>替换为你的工作目录
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv
git checkout 3.4.16
cd ..
cd opencv_contrib
git checkout 3.4.16
cd ..
Step3: 编译和安装opencv以及opencv_contrib模块
Step3.1 创建build目录
cd opencv
mkdir build
cd build
Step3.2 执行cmake命令
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
Step3.3 编译并安装
# 执行如下命令后获取cpu核心数以加快编译
nproc
# 将nproc得到的数字放在make -j后面,作者的电脑有16的CPU核心
make -j16
sudo make install
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
- opencv安装参考
Pangolin
- pangolin版本更新到了0.6。此版本编译ORB_SLAM2,ORB_SLAM3,DSO,LDSO等SLAM框架时均会出现问题。
- 解决方法:采用较早版本的pangolin
非常不建议使用最新版本的pangolin进行编译安装,会遇到error: ‘slots_reference’ was not declared in this scope或者cannot findind Eigen3.cmake
issue: https://github.com/raulmur/ORB_SLAM2/issues/1015
Step1: 安装Pangolin的依赖包
sudo port install glew
sudo apt-get install cmake
sudo apt-get install libpython2.7-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
sudo apt-get install libdc1394-22-dev libraw1394-dev
sudo apt-get install libjpeg-dev libpng12-dev libtiff5-dev libopenexr-dev
- libpng12-dev安装可能会报错,但不影响后续步骤。
# Ubuntu16.04之后不支持libpng12-dev 修改为
sudo apt install libpng-dev
- 这里提供一个较早版本的Pangolin
链接:https://pan.baidu.com/s/17A51BZIq_iJlCvLHUTCH7g
提取码:oitb
- 尽管有人提到了Pangolin v0.5版本可以解决问题,但作者的机器上并没有成功
这里提供了百度网盘的版本
链接:https://pan.baidu.com/s/17A51BZIq_iJlCvLHUTCH7g
提取码:oitb
--来自百度网盘超级会员V5的分享
Step2: 编译并安装Pangolin
cd Pangolin
# 百度网盘的版本有build文件,要先删除再创建
rm -rf build
mkdir build
cd build
cmake ..
# 16替换为你自己电脑的CPU核心数
make -j16
sudo make install
- pangolin安装参考
ORB_SLAM3安装
Step1: 安装ORB_SLAM3的依赖包
sudo apt install libpython2.7-dev
Step2: 下载、编译并安装ORB_SLAM3
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
chmod +x build.sh
# 可以修改 CMakeList.txt 中的`make -j`为`make -j16`来加快编译速度。16替换为你的电脑的CPU核心数
./build.sh
编译ORB_SLAM3常见问题
- ORBSLAM3 fatal error: openssl/md5.h: No such file or directory
- 解决方法:执行如下命令
sudo apt install libssl-dev
- make[2]: *** [CMakeFiles/ORB_SLAM3.dir/build.make:89: CMakeFiles/ORB_SLAM3.dir/src/LocalMapping.cc.o] Error 1
- 解决方法:在orb_SLAM3/include/CameraModels/KannalaBrandt8.h中添加
namespace cv
{
template<typename _Tp, int m, int n> static inline Matx<_Tp, m, n> operator/(const Matx<_Tp, m, n>& a, float alpha)
{
return Matx<_Tp, m, n>(a, 1.f/alpha, Matx_ScaleOp());
}
}
- ORB_SLAM3安装参考