文章目录

  • 一、`./build.sh`编译ORB-SLAM3出现的各种问题
    • 1、问题:OpenCV > 4.4 not found
    • 2、问题:error: ‘slots_reference’ was not declared in this scope
  • 二、ORB-SLAM3 效果展示
    • 1、编译`./build.sh`成功
    • 2、发现源码里没有euroc_examples.sh文件
    • 3、测试EuRoC数据集上的效果
      • (2)视频序列:MH_01_easy
      • (3)视频序列:MH_03_medium
      • (3)视频序列:V1_01_easy
      • (4)使用IMU数据时可能出现的问题:
      • (5)单目、双目、单目+IMU、双目+IMU精度对比
    • 4、测试TUM-VI数据集上的效果
      • (2)视频序列:dataset-room1_512_16
      • (3)视频序列:dataset-corridor1_512_16
      • (4)视频序列:dataset-magistrale1_512_16
      • (5)视频序列:dataset-outdoors1_512_16
      • (6)运行问题:Fail to track local map!
  • 三、其他问题及本地相机运行参考

一、./build.sh编译ORB-SLAM3出现的各种问题

1、问题:OpenCV > 4.4 not found

编译build.sh时报错:OpenCV > 4.4 not found

解决方法
(1)找到ORB_SLAM3文件夹下的CMakeList.txt 中的find_package(OpenCV 4.4)位置,修改为:

LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)find_package(OpenCV 3 REQUIRED)if(NOT OpenCV_FOUND)message(FATAL_ERROR "OpenCV > 4.4 not found.")

2、问题:error: ‘slots_reference’ was not declared in this scope

Pangolin最新版本导致的bug,报错error;如果跑ORB-SLAM2、ORB-SLAM3不要用最新版的Pangolin进行编译安装,会导致error: ‘slots_reference’ was not declared in this scope或者cannot findind Eigen3.cmake,我就是安装了最新版然后编译ORB-SLAM2库的时候报了一大堆错,改环境跟代码花了一天时间都没有搞定,最后发现是这个问题,欲哭无泪www

解决方法

1、卸载最新版Pangolin,进入Pangolin文件夹的build里边,执行
sudo make uninstall

2、安装Pangolin v0.5的版本。

安装链接:https://github.com/stevenlovegrove/Pangolin/tree/v0.5

3、安装步骤
cd Pangolin
mkdir build && cd build
cmake ..
cd ..
cmake --build .
sudo make install

参考链接:https://codingnote.cc/p/484790/

二、ORB-SLAM3 效果展示

1、编译./build.sh成功

2、发现源码里没有euroc_examples.sh文件

好不容易build.sh编译完要测数据了,然后发现源码里没有euroc_examples.sh,然而README里是这么说的:

直接裂开,虚空examples,一查发现有同行说是新版的ORB-SLAM3库里没有了,于是赶紧找找有没有前辈下载下来了euroc_examples.sh这个文件,然后就找到了个github里头是有这个文件的,这个github还是ORB-SLAM3的详细注释版,以后要看懂代码的话少不了它,链接先放这了

https://github.com/electech6/ORB_SLAM3_detailed_comments

3、测试EuRoC数据集上的效果

(1)EuRoC数据集由两个针孔摄像头(pinhole)和一个惯性传感器(IMU)记录得到,以下只展示测试的部分视频序列的部分结果

(2)视频序列:MH_01_easy

MH_01_easy 双目 效果

Eval命令行示例:

echo "Launching MH01 with Stereo sensor"
./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt dataset-MH01_stereo
echo "------------------------------------"
echo "Evaluation of MH01 trajectory with Stereo sensor"
python evaluation/evaluate_ate_scale.py evaluation/Ground_truth/EuRoC_left_cam/MH01_GT.txt f_dataset-MH01_stereo.txt --plot MH01_stereo.pdf

和GroundTruth轨迹对比的Eval结果:
absolute_translational_error.rmse 0.025333 m
absolute_translational_error.mean 0.022465 m
absolute_translational_error.median 0.022143 m
absolute_translational_error.std 0.011709 m
absolute_translational_error.min 0.000709 m
absolute_translational_error.max 0.072913 m

(3)视频序列:MH_03_medium

MH_03_medium 双目 效果

MH_03_medium 单目+IMU 效果

(3)视频序列:V1_01_easy

V1_01_easy 双目 效果
V1_01_easy 单目+IMU 效果

(4)使用IMU数据时可能出现的问题:

(4-a)跟踪局部地图失败,需要等SLAM系统重新初始化

Fail to track local map!
IMU is not or recently initialized.
Reseting active map...
SYSTEM-> Reseting active map in monocular case`


(4-b)IMU加速度不足 not enough acceleration

(5)单目、双目、单目+IMU、双目+IMU精度对比

以MH_01_easy视频序列为例,双目或单目+IMU精度最高,单目偏差离谱(由于没有尺度因子,存在零点漂移)

4、测试TUM-VI数据集上的效果

(1)TUM-VI数据集由两个鱼眼摄像头(fisheye)和一个惯性传感器(IMU)记录得到,以下只展示测试的部分视频序列的部分结果

(2)视频序列:dataset-room1_512_16

dataset-room1_512_16 单目+IMU 效果

dataset-room1_512_16 双目+IMU 效果

(3)视频序列:dataset-corridor1_512_16

dataset-corridor1_512_16 单目+IMU 效果

dataset-corridor1_512_16 双目+IMU 效果

(4)视频序列:dataset-magistrale1_512_16

dataset-magistrale1_512_16 单目+IMU 效果

(5)视频序列:dataset-outdoors1_512_16

dataset-outdoors1_512_16 单目+IMU 效果
→ A.不忽略20米外的远处特征点,运行至户外大天空场景时可见算法跟踪到的红框内有很多天空点,会导致算法发散,对地图点的定位失败

→ B. 忽略20米外的远处特征点后最终建图效果,跑到最后不知为啥总会Shutdown,没能看到闭环检测后的效果,具体后面得再找找原因,

dataset-outdoors1_512_16 双目+IMU 效果
→ A.(1)不忽略20米外的远处特征点,运行至户外大天空场景时可见算法跟踪到的红框内有很多天空点,会导致算法发散,对地图点的定位失败

(2)运行到后边越来越卡顿,这是由于地图太大,缓存都吃满了


→ B.(1)忽略20米外的远处特征点,可见户外大天空场景下许多天空点都被滤除了,算法不会发散,匹配点集中在20米内

(2)这个是我跑的,在远、大场景不做闭环时,最后可能存在累计漂移

(3)我跑到最后不知为啥总会Shutdown,没能看到闭环检测后的效果,具体后面得再找找原因,最终建图效果可参照别人的结果

(4)忽略20米外的特征点后不会爆内存

(6)运行问题:Fail to track local map!

跟踪局部地图失败,等待系统执行重定位Relocalize或重新建图new map即可

三、其他问题及本地相机运行参考

https://blog.csdn.net/hhz_999/article/details/120473659
https://blog.csdn.net/qq_36804414/article/details/109241264
https://blog.csdn.net/qq_36804414/article/details/109248693

【算法】跑ORB-SLAM3遇到的问题、解决方法、效果展示(环境:Ubuntu18.04+ROS melodic)相关推荐

  1. 【算法】跑ORB-SLAM遇到的问题、解决方法、效果展示(环境:Ubuntu18.04+ROS melodic)

    文章目录 一.cmake编译ORB-SLAM库报错 1.问题:cmake 后出现rosdep错误 rosdep init / rosdep update问题 2.问题:cmake 后出现opencv2 ...

  2. ios 底部用定位 fixed。在软件盘出来后,页面元素被顶上去一部分,fixed定位的footer也跑到了上面去。解决方法...

    ios 底部用定位 fixed.在软件盘出来后,页面元素被顶上去一部分,fixed定位的footer也跑到了上面去.解决方法 $("input").focus(function() ...

  3. ubuntu18.04 ROS安装配置及常见问题得解决

    目录 1 更改Ubuntu软件源: 2 设置软件源 3 设置密钥 4 安装过程及问题解决 4.1 安装 4.2 初始化 4.2.1 初始化过程报错 4.3 更新 4.4 安装rosinstall 4. ...

  4. 算法概述---过拟合和几种解决方法

    1 过拟合问题 什么是过拟合? 一种扭曲的曲线,不停上下波动: 另一种说法,算法具有高方差,然后模型太过庞大,变量太多 千方百计的拟合训练集,导致无法泛化到新的样本中. 泛化: 一个假设模型应用到新样 ...

  5. latex 插图位置跑在文档最后的解决方法

    https://blog.csdn.net/lqhbupt/article/details/24812993

  6. 解决真机安装的Ubuntu18.04开机慢,关机关不了的问题

    第一次上手整真机Ubuntu 18.04,用U盘安装的时候,在勾选上安装显卡以及第三方软件的选项时,下一步就会卡死,一直在等待加载,一开始因为是显卡驱动问题,之后再安装也可以.就没勾上选项安装成功之后 ...

  7. 【解决方法】ubuntu环境sudo安装时出现“XXX不在soduers中”,且su root 认证失败无法进入root,且sudo passwd root 时又不能使用sudo

    问题:突然之间问题就出现了,毫无征兆.sudo apt install 安装时出现"XXX不在soduers中",且su root 认证失败无法进入root,且sudo passw ...

  8. mysql存入中文乱码解决方法(windows环境)

    项目中要将抓取一些网页内容保存到mysql数据库中,当抓取的内容中包含中文时,在控制台打印出来的中文是正常显示的,但存入数据库表中时,显示乱码. 进入mysql命令行,执行以下命令: show var ...

  9. 【Oracle】ora-02391解决方法,生产环境测试通过

    这个问题其实还是比较清晰的,就是在我们设置的profile中会定义对应session数限制,比如存在用户student,sessions_per_user为5,则student用户最多使用5个sess ...

最新文章

  1. linux升级OpenSSL
  2. python基础语法测评_Python基础语法知识点汇集
  3. 牛逼!Python函数和文件操作(长文系列第3篇)
  4. 使用Recast.AI创建具有人工智能的聊天机器人
  5. python socket之udp说明
  6. 深入理解卷积层,全连接层的作用意义
  7. JAVA进阶教学之(String类的构造方法)
  8. BugkuCTF-MISC题妹子的陌陌
  9. Linux 命令(117)—— gzip 命令
  10. [转]一张图帮你搞定职业规划
  11. Careercup - Facebook面试题 - 4907555595747328
  12. 视频格式mkv、mp4、avi、flv、mov、wmv、webm特点和区别
  13. Nacos 原理 Jraft Distro Grpc 持续跟新中...
  14. 使用TTP224触摸芯片时出现的一些问题
  15. 数据链路层的子层MAC层(图文详解)
  16. iOS:开发者账号申请
  17. 【论文阅读】ICLR 2022: Scene Transformer: A unified architecture for predicting future trajectories of ...
  18. 小小的PDF 攻防世界
  19. Unity 骨骼动画
  20. 职场人士需了解:职场文件删除了三种恢复方法

热门文章

  1. couchdb 视图操作_CouchDB 视图简介及增量更新视图的方法
  2. 开发板可以ping通百度IP,但是不能ping百度域名 提示ping: bad address 'www.baidu.com'
  3. .msi是什么文件呀?
  4. ERROR: Failed cleaning build dir for cryptography (mac环境)
  5. 滥用公司资源出书、策划婚礼? Meta二号人物受到内部调查
  6. Spring cloud Alibaba Nacos注册中心(2) NacosNamingService
  7. java对象克隆详解
  8. 模拟和矢量信号源进阶使用技巧
  9. VCF文件与vcftools简单介绍
  10. 港科夜闻|香港科大和香港科大(广州)26名研究人员成功获批2022年度国家自然科学基金青年科学基金项目...