Ubuntu20.04安装orb-slam3
说明:笔者是在一个全新的系统上面配置的。安装时间:2022.10.30
环境:虚拟机;VMare Workstation16 Pro,运行内存16G.
之后,笔者在Ubuntu18.04的机器上安装过,也能使用.
注意orb-slam3的版本.
版本说明:
- orb-slam3 : v0.4-beta.
- cmake : 3.16.3
- pangolin : v0.8
- openCV : 4.4.0
- Eigen : 3.3.7
- pyhon : 2.7.18
- boost : 1.70.0
注:笔者使用了科学上网工具
文章目录
0.安装cmake、git
cmake安装:
sudo apt-get update #软件更新
sudo apt install cmake # 安装cmake3.16.3
cmake --version #查看cmake 版本
g++ install
sudo apt install g++
git安装:
sudo apt install git
1.安装Eigen3
environment: Could NOT find OpenGL
sudo apt-get install libegl1-mesa-dev
environment: Could not find GLEW
sudo apt install libglew-dev
apt安装:
sudo apt install libeigen3-dev
注意:
默认安装可能会在以下文件夹:/usr/local/include/eigen3/Eigen
或/usr/include/eigen3/Eigen
那么需要将Eigen拷贝一份到:/usr/local/include
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
or
sudo cp -r /usr/include/eigen3/Eigen /usr/local/include
因为:许多程序使用的是:#include <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>,否则一些程序在编译时会因找不到Eigen/Dense而报错。
2.0安装pangolin(方法一)
下载pangolin:
笔者用的 V0.8 版本
git clone --recursive https://github.com/stevenlovegrove/Pangolin.git
安装依赖:
cd Pangolin
# Install dependencies (as described above, or your preferred method)
./scripts/install_prerequisites.sh recommended
安装:
# Configure and build
cmake -B build
cmake --build build
2.1安装Pangolin(方法二)
说明:不知道为什么上面突然装不上了,然后用这种方法装上了
下载Pangolin:
git clone --recursive https://github.com/stevenlovegrove/Pangolin.git
编译安装:
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
#如果遇到 :error: ISO C++1z does not allow dynamic exception specifications 类似报错
#使用:cmake -DBUILD_PANGOLIN_LIBOPENEXR=OFF .. #目的是禁用OpenEXR
sudo make install
3.安装Python
sudo apt install libpython2.7-dev
4.安装openCV4.4.0
说明:4默认不会生成.pc文件,最后查看版本的时候查看不到,找不到包。
安装依赖:
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
下载openCV:
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
把opencv_contrib放到opencv文件夹中
在opencv文件夹中打开终端
CMAKE_INSTALL_PREFIX表示安装的目标路径, OPENCV_EXTRA_MODULES_PATH表示opencv_contrib所在路径
编译安装:
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D DOPENCV_GENERATE_PKGCONFIG=ON ..
make -j4
sudo make install
sudo ldconfig
5.安装ORB-SLAM
下载orb-slam3:建议去github下载0.4版本的
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
安装orb-slam3:
cd ORB_SLAM3
chmod +x build.sh
./build.sh
6.安装ORB-SLAM可能遇到的错误
1.fatal error: boost/serialization/serialization.hpp: No such file or directory
解决方法:
sudo apt install libboost-filesystem-dev
2.fatal error: openssl/md5.h: No such file or directory
解决方法:
sudo apt install libssl-dev
3./usr/local/include/sigslot/signal.hpp:1180:65: error: ‘slots_reference’ was not declared in this scope cow_copy_type<list_type, Lockable> ref = slots_reference();
解决方法:
sed -i 's/++11/++14/g' CMakeLists.txt
4.internal compiler error: killed
解决方法:增加运行内存到16G。(据说安装时,内存占用最高可达14G)。当然还有其他方法,此处不介绍。
5./usr/bin/ld:找不到 -lboost_serialization
解决方法:安装boost库。笔者使用的1.70版本。
解压:
bzip2 -d boost_1_70_0.tar.bz2
tar xvf boost_1_70_0.tar
解压后:
cd boost_1_70_0
安装:
./bootstrap.sh
sudo ./b2 install
创建boost.sh文件:
cd /etc/profile.d
sudo gedit boost.sh
添加如下文字:
说明:BOOST_ROOT为boost文件的路径(改成你自己的boost解压之后的位置),笔者路径为:/home/u/Downloads/boost_1_70_0
。
BOOST_INCLUDE为boost头文件。BOOST_LIB为boost库文件。
#!/bin/sh
BOOST_ROOT=/home/u/Downloads/boost_1_70_0
BOOST_INCLUDE=/usr/local/include/boost
BOOST_LIB=/usr/local/lib
export BOOST_INCLUDE BOOST_LIB BOOST_ROOT
保存退出后,执行以下代码:
sudo chmod +x boost.sh
source boost.sh
6.error while loading shared libraries: libpango_image.so: cannot open shared object file: No such file or directory
原因:共享库文件装到了/usr/local/lib目录下,但是配置文件(/etc/ld.so.conf)中没有这个路径.
解决方法:
sudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf"
参考文章:
ORB-SLAM3配置安装及运行—Ubuntu20.04
ubuntu 20.04版本更新软件源为国内源(清华、网易、阿里云等等)
ubuntu 安装使用eigen3 (两种方式)
stevenlovegrove /Pangolin
ubuntu18.04下 安装SLAM-Pangolin(亲测有效)
Ubuntu20.04安装OpenCV4.4.0
Ubuntu18.04下编译ORB_SLAM3遇到的问题
编译 ORB-SLAM 3 出现 slots_reference 错误
报错:error while loading shared libraries 的解决方法