Ubuntu/视觉SLAM十四讲踩坑记录

  • Ubuntu(20)/视觉SLAM十四讲踩坑记录:
    • 共性问题:
      • 1.安装OpenCV后,例程仍无法找到OpenCV文件
    • ch3 visualizeGeometry:
    • ch4:Sophus安装问题:
      • 1:[fatal error: sophus/se3.h: 没有那个文件或目录](https://blog.csdn.net/fb_941219/article/details/104590842)
      • 2:安装模板库(视觉SLAM十四讲第二版中使用)时,需要先安装fmt库(依赖问题):
    • ch5:OpenCV安装及例程运行问题
      • 1:OpenCV3安装问题:
      • 1:链接fmt出问题(仍没找到fmt头文件)(rgbd-joinmap例程)
    • ch6:g2o使用:
    • ch7:段错误 (核心已转储)
    • 其他:
      • c++: fatal error: 已杀死 signal terminated program cc1plus

Ubuntu(20)/视觉SLAM十四讲踩坑记录:

共性问题:

可参考:《视觉SLAM十四讲》 编译报错问题汇总 Ubuntu20.04
视觉SLAM十四讲slambook2示例代码所有依赖库的编译安装教程(VTK、OpenCV3、ceres、Sophus、g2o、Eigen、Pangolin、googletest等)

1.安装OpenCV后,例程仍无法找到OpenCV文件

原因:原CMakeLists.txt文件中未添加OpenCV库等三方库,需要自行在各文件中添加(书中有写),
如:

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS} )
target_link_libraries(xxxxx ${OpenCV_LIBS})

ch3 visualizeGeometry:

  1. pangolin安装 ,安装需要cmake版本>=3.17;通过apt安装最新只能到3.16(2021.09.24);可能卸载后通过snap install cmake --classic安装。直接到最新版本(方便、快速)。或者通过源码自行安装(容易出错)。
  2. cmake编译,在完成所有安装后,build/cmake 可能通过。但make时会出现如下错误:
    原因:其中引用的sigslot/signal.hpp是基于C++14标准的,而原CMakeLists.txt中的设置的标准为C++11。

    方案:改为c++14再次执行即可运行

ch4:Sophus安装问题:

1:fatal error: sophus/se3.h: 没有那个文件或目录

2:安装模板库(视觉SLAM十四讲第二版中使用)时,需要先安装fmt库(依赖问题):

参考:Ubuntu下安装Sophus模板库(SLAM学习)

ch5:OpenCV安装及例程运行问题

1:OpenCV3安装问题:

主要是依赖问题,安装可参考:Ubuntu安装Opencv3
可参考:视觉SLAM十四讲slambook2示例代码所有依赖库的编译安装教程(VTK、OpenCV3、ceres、Sophus、g2o、Eigen、Pangolin、googletest等)

1:链接fmt出问题(仍没找到fmt头文件)(rgbd-joinmap例程)

需要在CMakeLists.txt中添加fmt链接:

find_package(fmt REQUIRED)
set(FMT_LIBRARIES fmt::fmt)
target_link_libraries(joinMap ${OpenCV_LIBS} ${Pangolin_LIBRARIES} ${FMT_LIBRARIES})

ch6:g2o使用:

Q1:
在编译时一直找不到cs.h头文件。
在第一版源代码文件中的g2o/EXTERNAL 中有一个csparse文件夹,将其移动到/usr/local/include/g2o/EXTERNAL下,cmake、make install即可。

Q2:
关于关于高博3d2d程序报错的改动
《视觉SLAM十四讲》第六讲g2o实践代码报错解决方法
g2o初始化一些

code0 为原始代码,在新装的g2o等库中出现错误,原因参考上述文献(链接)。
code1和code2为改动实现的两种方法。两个位置的code1或code2要对应

 //DirectBlock* solver_ptr = new DirectBlock ( linearSolver );     //code0std::unique_ptr<DirectBlock> solver_ptr ( new DirectBlock ( std::unique_ptr<DirectBlock::LinearSolverType>(linearSolver)));  code1// g2o::OptimizationAlgorithmGaussNewton* solver = new g2o::OptimizationAlgorithmGaussNewton( solver_ptr ); // G-N code0g2o::OptimizationAlgorithmLevenberg* solver (new g2o::OptimizationAlgorithmLevenberg(std::move(solver_ptr)));  // code 1//g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg ( solver_ptr ); // L-M  //code0
 //DirectBlock* solver_ptr = new DirectBlock ( linearSolver );   //code0DirectBlock* solver_ptr = new DirectBlock ( std::unique_ptr<DirectBlock::LinearSolverType>(linearSolver) );  //code 2// g2o::OptimizationAlgorithmGaussNewton* solver = new g2o::OptimizationAlgorithmGaussNewton( solver_ptr ); // G-N code 0g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg (std::unique_ptr<DirectBlock>(solver_ptr));  //code2//g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg ( solver_ptr ); // L-M  //code0

ch7:段错误 (核心已转储)

执行书中的以下代码时:

build/pose_estimation_3d2d 1.png 2.png d1.png d2.png

出现错误:

-- Max dist : 94.000000
-- Min dist : 4.000000
一共找到了79组匹配点
段错误 (核心已转储)

参考文献:
BUG(跑slam14-ch7-2d3d时)
视觉SLAM十四讲,OpenCV库使用时出现已放弃(核心已转储)
后,回到文件,发现,是图片名字有误(采用第一版的源码库)。将原来的1_deepth.png 2_deepth.png 与执行代码对应即可。

其他:

c++: fatal error: 已杀死 signal terminated program cc1plus

原因:运行内存不足
[https://blog.csdn.net/baidu_26954729/article/details/92428426](https://blog.csdn.net/baidu_26954729/article/details/92428426)
https://www.jianshu.com/p/c4ef42f6b2ec
解决方法:
增加运行内存
方法1:减少运行线程。
方法2:直接增加运行内存(如加内存条,虚拟机多分配内存等)。

Ubuntu20/视觉SLAM十四讲踩坑记录相关推荐

  1. [视觉Slam十四讲(2)踩坑记录]第3讲:Fatal error :Eigen/core没有那个文件或目录

    [视觉Slam十四讲(2)踩坑记录]第3讲:Fatal error :Eigen/core没有那个文件或目录 问题描述: 在学习SlamBook2-ch3中对Eigen矩阵运算包内容时,编写好相关代码 ...

  2. 视觉SLAM十四讲第二版踩坑总结

    寒假花了点时间把slam第二版过了一遍,安装库文件实在太麻烦,我又总是因为内存问题把ubuntu系统搞坏,前前后后安了三四次.在此,记录第二版安装踩坑,如果未来不幸又要重装,留个参考. 视觉SLAM十 ...

  3. 《视觉SLAM十四讲》学习笔记:第5讲相机与图像

    <视觉SLAM十四讲>学习笔记:第5讲相机与图像 前言:本学习笔记将记录<视觉SLAM十四将>中一些重要的知识点,并对书中一些比较难的知识点添加上一些笔者个人的理解,以供笔者本 ...

  4. 《视觉slam十四讲》ch4学习笔记——sophus库使用的问题及解决方法

    在看完<视觉slam十四讲>第四章李群和李代数后,准备调试相应的代码,但是出现了各种各样的问题,但最后还是万幸,成功完成了调试.在这里记录一下期间遇到的问题和相应的解决方法以及最后的感想. ...

  5. 高翔视觉SLAM十四讲(第二版)各种软件、库安装的以及报错解决方法

    目录 前言 系统版本 下载高翔视觉SLAM十四讲第二版的源代码 一.安装 Vim 二.安装 g++ 三.安装 KDevelop 以及汉化 1.安装 2.汉化 四.安装 Eigen 库 五.安装 Pan ...

  6. 视觉SLAM十四讲(第二版)环境安装心得体会

    前言 将高博的视觉SLAM14讲(第二版)看完后,也将里面所有的代码都跑了一遍,在安装环境的时候遇到了无数的坑.为了后来的人能够更加快速上手SLAM,现将书中环境安装心得记录如下. 环境安装 1. 安 ...

  7. 《视觉SLAM十四讲 第二版》笔记及课后习题(第七讲)

    读书笔记:视觉里程计1 之前的内容,介绍了运动方程和观测方程的具体形式,并讲解了以非线性优化为主的求解方法.从本讲开始,我们结束了基础知识的铺垫,开始步入正题:按照第二讲的内容,分别介绍视觉里程计.优 ...

  8. 视觉SLAM总结——视觉SLAM十四讲笔记整理

    视觉SLAM总结--视觉SLAM十四讲笔记整理 说明 基础知识点 1. 特征提取.特征匹配 (1)Harris (2)SIFT (3)SUFT (4)ORB (5)特征匹配 2. 2D-2D:对极约束 ...

  9. 浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM

    浅读<视觉SLAM十四讲:从理论到实践>--操作1--初识SLAM 下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/s ...

最新文章

  1. VS中的 MD/MT设置
  2. 【开源推荐】AllJoyn:打造全球物联网的通用开源框架
  3. 数据库出现的bug原因以及解决方法
  4. Linux从入门到精通——磁盘与目录的容量(du、df)
  5. 撩课-Web大前端每天5道面试题-Day40
  6. MySQL的join类型
  7. 利用Python中的BeautifulSoup库爬取安居客第一页信息
  8. Spring Boot 2.1.4 发布,提醒全体用户升级 2.1
  9. “后序遍历二叉运算树进行Lambda演算的化简”带来的联系
  10. day9http协议
  11. Tomcat环境部署以及tomcat多实例搭建(同一台机器)
  12. Linux内核源码目录
  13. 二、 jQuery带本地时间的日历代码
  14. Excel数据转柱状图
  15. 网站根目录与服务器根目录,根目录在哪里_网站的根目录在哪?急急!!!
  16. win10误删的注册表能还原吗_教你手动还原Win10注册表?
  17. 电脑任务栏应用图标变成白色怎么恢复
  18. iOS应用安全-专栏总目录(持续更新) 丨蓄力计划
  19. [blender]常用按键操作以及新手失误教程
  20. 计算机主板上的命名,电脑主板常见命名规则整理:微星;华硕;技嘉

热门文章

  1. java程序设计 一种跨学科_清华大学出版社-图书详情-《Java程序设计:一种跨学科的方法》...
  2. 机械臂手眼标定C++ opencv(眼在手上)
  3. 电子商务信用如何提高?
  4. 毕业设计正式拉开帷幕——android的画图工具,基于samsung的spen
  5. 学生python编程--学习列表绘制彩虹
  6. python 将字典内容存入数据库_不止建筑 | Python处理文本文件数据的基本方法
  7. 【爬虫作业】使用scrapy爬取游戏发售表,存入mongo数据库
  8. python百度地图api经纬度_Python调用百度地图和高德地图API批量获取国内城市地址经纬度坐标...
  9. 谷粒学院 —— 10、课程管理:整合阿里云视频点播
  10. sha1散列算法详解示例