码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ubuntu18.04安装并运行ORB-SLAM2


    查看版本号

    lsb_release -a

    换源

    Ubuntu系统自带的源都是国外的网址,国内用户在使用的时候下载比较慢甚至无法获取,需要替换成国内的镜像源

    • 备份源文件

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
    • 打开文件
    sudo gedit /etc/apt/sources.list
    •  换源

    打开清华镜像源仓库,选择Ubuntu版本并复制源,覆盖sources.list文件原来的内容。

    ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

    • 更新源
    sudo apt-get update

    安装第三方库

    安装依赖项

    1. sudo apt-get update
    2. sudo apt-get install git gcc g++ vim make cmake

    安装Pangolin

    • 下载

    安装Pangolin 0.6(稳定版),下载地址如下:

    https://github.com/stevenlovegrove/Pangolin/archive/refs/tags/v0.6.zip

    • 安装依赖项
    1. sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev
    2. sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpng-dev
    • 配置并编译
    1. cd Pangolin
    2. mkdir build && cd build
    3. cmake -DCPP11_NO_BOOST=1 ..
    4. make
    5. sudo make install
    • 验证
    1. cd ../examples/HelloPangolin
    2. mkdir build && cd build
    3. cmake ..
    4. make
    5. ./HelloPangolin

     安装成功后会自动打开如下窗口

    安装OpenCV3

    • 下载

    ORB-SLAM2要求至少 2.4.3,笔者采用3.4.5版本测试成功

    具体下载版本可在下边仓库中寻找

    Releases · opencv/opencv · GitHub

    • 安装依赖项
    1. sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    2. sudo apt update
    3. sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev
    4. sudo apt-get install libavformat-dev libjpeg.dev libtiff5.dev
    5. sudo apt-get install libswscale-dev libjasper-dev
    6. sudo apt-get install libcanberra-gtk-module libcanberra-gtk3-module
    7. #或者
    8. sudo apt-get install libcanberra-gtk*
    • 配置并编译
    1. mkdir build && cd build
    2. cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    3. #电脑性能差可去掉-j4,性能很好可增加数字(线程)
    4. make -j4
    5. sudo make install

    opencv的初次编译过程比较缓慢,耐心等待即可

    • 查看是否安装成功

    查询OpenCV版本、库以及头文件目录的三个命令来确保上面的OpenCV安装步骤都正常:

    1. pkg-config --modversion opencv
    2. pkg-config --cflags opencv
    3. pkg-config --libs opencv

    安装Eigen3

    Eigen3是一个纯头文件的库

    直接安装:

    sudo apt-get install libeigen3-dev
    

    也可使用源码安装,源码下载地址如下:
    GitCode - 开发者的代码家园

    1. cd eigen3
    2. mkdir build
    3. cd build
    4. cmake ..
    5. make
    6. sudo make install

    安装后头文件的存放地址为:

    /usr/local/include/eigen3/
    

    为方便后期orb-slam2的编译运行,将该头文件移动位置到:

    sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
    

     安装orb-slam2

    • 下载

    下载源文件并解压:
    GitCode - 开发者的代码家园

    在该文件夹下打开终端:

    1. cd ORB_SLAM2
    2. chmod +x build.sh
    3. ./build.sh

    注意系统若硬件不行(线程少),将build.sh里的make -j(默认启用最大线程)修改为make,防止卡死,反之性能很好可增加数字(线程):如make -j4/j8/jx

    编译过程中会遇到错误,因为源码中的一些文件源码中缺少头文件包含:

    error: ’usleep’ was not declared in this scope
    

    需要在报错的文件处加上头文件:

    #include 
    

    具体这些缺失的文件有:

    1. mono_euroc.cc
    2. mono_kitti.cc
    3. mono_tum.cc
    4. rgbd_tum.cc
    5. ViewerAR.cc
    6. stereo_euroc.cc
    7. stereo_kitti.cc
    8. LocalMapping.cc
    9. LoopClosing.cc
    10. System.cc
    11. Tracking.cc
    12. Viewer.cc

    下载Tum数据集

    Computer Vision Group - Dataset Download

    建议下载如下版本:

    下载后解压文件,笔者解压后的文件路径为:

    运行orb-slam2

    ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM2.yaml ./data/rgbd_dataset_freiburg1_xyz/

    第一条命令为运行命令,后接数据集的路径

     

    参考:
    【精选】Ubuntu 18.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM2+SLAM相关库的安装_orbslam2和orbslam3共存_ZARD帧心的博客-CSDN博客 

  • 相关阅读:
    简单聊聊Integer
    Thinkphp workerman gatewayWorker 不能在windows 下启动的解决办法
    数商云SCM系统供应商准入协同业务场景 | 助力建筑建材企业规范供应商准入环节
    Flume学习笔记(2)—— Flume进阶
    基于YOLOv8模型的烟火目标检测系统(PyTorch+Pyside6+YOLOv8模型)
    python实现炫酷的屏幕保护程序
    长尾分布系列论文解析(二)Delving into Deep Imbalanced Regression
    Container is running beyond memory limits
    【LeetCode动态规划#13】买卖股票含冷冻期(状态众多,比较繁琐)、含手续费
    【设计模式】组合模式
  • 原文地址:https://blog.csdn.net/qq_58158950/article/details/134509515
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号