ubuntu22.04部署orbslam2
1. 创建conda环境orbslam_env,没有创建的可以去我的另外一篇文章看看:拯救者Y9000Pwin11 + 安装双系统linux22.04_拯救者 y9000p linux-CSDN博客
2. 安装orbslam的各种依赖
🕐 安装Pangolin
cd /你需要下载的地址/
cd Pangolin
# 判断是否下载成功 cd Pangolin/examples/HelloPangolin mkdir build ./HelloPangolin # 如果出现下面的情况则说明成功 |
🕑 安装OpenCV3.4.5
说明:conda便捷安装opencv是阉割版,不能实现视频和摄像头的读取功能,所以需要手动编译。
进入官网 : Releases - OpenCV , 选择 3.4.5 版本的 source , 下载 opencv-3.4.5.zip # 安装opencv的依赖包 sudo apt install build-essential
# 报错解决——安装低版本的libpng sudo vim /etc/apt/source.list deb http://cz.archive.ubuntu.com/ubuntu xenial main # 然后保存,更新,刷新 sudo apt-get update
# 下载opencv3.4.5安装包,链接:Releases - OpenCV # 进入opcncv-3.4.5文件夹,创建新的文件夹build,进入build文件夹,打开终端,执行: cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. # 显示如下就是安装成功。安装路径是/usr/local/
# 开始编译 & 安装 sudo make -j3 sudo make install
# 环境配置 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 # 保存,执行命令使得配置生效 source /etc/bash.bashrc # 更新 sudo updatedb
# 测试 打开opencv-3.4.5/sample/cpp/example_cmake目录,打开终端,执行 cmake . # 左上角出现如何就表示安装成功 |
🕒 安装Eigen3.3.7
Eigen下载地址:https://gitlab.com/libeigen/eigen/-/releases 下载的文件自己选择 cd ~/你的下载路径
cd eigen-3.3.7/
# 判断Eigen3是否安装成功 pkg-config --modversion eigen3 # 如果返回 ls /usr/local/include/eigen3/Eigen # 如果看到 |
3. 下载项目
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 ./build.sh # 下载数据集TUM,地址Computer Vision Group - Dataset Download # 执行单目 |
4. 报错解决
# 报错1:/home/qyp/coding/ORB_SLAM2/Thirdparty/g2o/g2o/types/../core/openmp_mutex.h:30:10: fatal error: ../../config.h: 没有那个文件或目录 # 解决1:安装g2o库 git clone https://github.com/RainerKuemmerle/g2o.git cd g2o # 验证是否安装成功 ls /usr/local/include/g2o # 出现config.h说明配置成功 # 然后再重新cmake .. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 报错2:Pangolin could not be found sudo apt install libglew-dev ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 报错3:static assertion failed:std::map must have the same value_type as its allocator 在ORB_SLAM2的安装路径下打开 /include 文件夹,在 LoopClosing.h 中修改第49-50行,将 typedef map 修改为: typedef map ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
参考文章:【Linux】linux下安装opencv3.4.5_linux安装opencv3.4-CSDN博客
[ORB_SLAM2]运行_orbslam2在编译时报错 static assertion failed: std::map m-CSDN博客