因为毕设需要学习ORB-SLAM3,所以便跟着网上的教程配置了一下环境,由于本人是新手,在搭建中也遇到了各种各样的问题,当遇到找不到答案的错误时,只能重装系统,因此便写下这篇博客,记录一下安装的步骤以及报错时解决的方法。
安装git
sudo apt-get install git
安装cmake
sudo apt-get install cmake
sudo apt install gcc
sudo apt install build-essential
到此,需要的一些工具就基本安装完毕了,下面开始安装ORB-SLAM3的相关配置。
sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev
sudo apt-get install libglew-dev
第一次安装时,安装的是最新版本的Pangolin,这会在ORB-SLAM3编译时报错,为了省事,我这里安装的旧版本的Pangolin。
下载Pangolin
git clone git://github.com/zzx2GH/Pangolin.git
进入Pangolin的安装目录,开始安装。
cd Pangolin
mkdir build
cd build
cmake ..
make
cmake --build
sudo make install
同样因为兼容问题,我这里使用的是3.4.11版本的OpenCV,在官网上找到对应的版本,下载压缩包。下载地址
解压
unzip opencv-3.4.11.zip
安装OpenCV
cd opencv-3.4.11
sudo apt-get install cmake
这里需要安装cmake的一些依赖。
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
进入OpenCV文件夹,创建编译文件夹
mkdir my_build_dir
cd my_build_dir
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
编译
make -j$(nproc)
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
这里可能会报错,解决的办法是
sudo gedit /etc/ld.so.conf.d/opencv.conf 在文件尾加入:/usr/local/lib
然后执行
sudo ldconfig
配置bash
sudo gedit /etc/bash.bashrc
在文件末尾加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,执行下列命令
sudo -s
source /etc/bash.bashrc
exit
sudo updatedb
至此,OpenCV就基本上安装完毕了。
sudo apt-get install libeigen3-dev
这里执行完命令后,需要找到Eigen的安装路径,将Eigen文件夹复制到/usr/include。在我的电脑上用的是以下命令完成。
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
在下载地址下载boost。(这里我安装的版本是1.77.0)
解压
tar -xvf boost_1_77_0.tar.gzY
然后进行安装
cd boost_1_77_0
./bootstrap.sh
sudo ./b2 install
sudo apt-get install libssl-dev
至此,ORB-SLAM3所需的一些配置文件就基本完成的,安装ros的话,后续可能会继续更新。
首先下载ORB-SLAM3的源码。
git clone git://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
然后安装编译
cd ORB_SLAM3
chmod +x ./build.sh
./build.sh
执行build.sh的时候可能会报错找不到eigen3,具体可以参考这篇博客解决。解决完之后,再执行刚刚的命令,没有报错的话就完成了编译。后续就可以下载数据集,运行orb-slam3了。