Ubuntu20/视觉SLAM十四讲踩坑记录
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:
- pangolin安装 ,安装需要cmake版本>=3.17;通过apt安装最新只能到3.16(2021.09.24);可能卸载后通过snap install cmake --classic安装。直接到最新版本(方便、快速)。或者通过源码自行安装(容易出错)。
- 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十四讲踩坑记录相关推荐
- [视觉Slam十四讲(2)踩坑记录]第3讲:Fatal error :Eigen/core没有那个文件或目录
[视觉Slam十四讲(2)踩坑记录]第3讲:Fatal error :Eigen/core没有那个文件或目录 问题描述: 在学习SlamBook2-ch3中对Eigen矩阵运算包内容时,编写好相关代码 ...
- 视觉SLAM十四讲第二版踩坑总结
寒假花了点时间把slam第二版过了一遍,安装库文件实在太麻烦,我又总是因为内存问题把ubuntu系统搞坏,前前后后安了三四次.在此,记录第二版安装踩坑,如果未来不幸又要重装,留个参考. 视觉SLAM十 ...
- 《视觉SLAM十四讲》学习笔记:第5讲相机与图像
<视觉SLAM十四讲>学习笔记:第5讲相机与图像 前言:本学习笔记将记录<视觉SLAM十四将>中一些重要的知识点,并对书中一些比较难的知识点添加上一些笔者个人的理解,以供笔者本 ...
- 《视觉slam十四讲》ch4学习笔记——sophus库使用的问题及解决方法
在看完<视觉slam十四讲>第四章李群和李代数后,准备调试相应的代码,但是出现了各种各样的问题,但最后还是万幸,成功完成了调试.在这里记录一下期间遇到的问题和相应的解决方法以及最后的感想. ...
- 高翔视觉SLAM十四讲(第二版)各种软件、库安装的以及报错解决方法
目录 前言 系统版本 下载高翔视觉SLAM十四讲第二版的源代码 一.安装 Vim 二.安装 g++ 三.安装 KDevelop 以及汉化 1.安装 2.汉化 四.安装 Eigen 库 五.安装 Pan ...
- 视觉SLAM十四讲(第二版)环境安装心得体会
前言 将高博的视觉SLAM14讲(第二版)看完后,也将里面所有的代码都跑了一遍,在安装环境的时候遇到了无数的坑.为了后来的人能够更加快速上手SLAM,现将书中环境安装心得记录如下. 环境安装 1. 安 ...
- 《视觉SLAM十四讲 第二版》笔记及课后习题(第七讲)
读书笔记:视觉里程计1 之前的内容,介绍了运动方程和观测方程的具体形式,并讲解了以非线性优化为主的求解方法.从本讲开始,我们结束了基础知识的铺垫,开始步入正题:按照第二讲的内容,分别介绍视觉里程计.优 ...
- 视觉SLAM总结——视觉SLAM十四讲笔记整理
视觉SLAM总结--视觉SLAM十四讲笔记整理 说明 基础知识点 1. 特征提取.特征匹配 (1)Harris (2)SIFT (3)SUFT (4)ORB (5)特征匹配 2. 2D-2D:对极约束 ...
- 浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM
浅读<视觉SLAM十四讲:从理论到实践>--操作1--初识SLAM 下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/s ...
最新文章
- VS中的 MD/MT设置
- 【开源推荐】AllJoyn:打造全球物联网的通用开源框架
- 数据库出现的bug原因以及解决方法
- Linux从入门到精通——磁盘与目录的容量(du、df)
- 撩课-Web大前端每天5道面试题-Day40
- MySQL的join类型
- 利用Python中的BeautifulSoup库爬取安居客第一页信息
- Spring Boot 2.1.4 发布,提醒全体用户升级 2.1
- “后序遍历二叉运算树进行Lambda演算的化简”带来的联系
- day9http协议
- Tomcat环境部署以及tomcat多实例搭建(同一台机器)
- Linux内核源码目录
- 二、 jQuery带本地时间的日历代码
- Excel数据转柱状图
- 网站根目录与服务器根目录,根目录在哪里_网站的根目录在哪?急急!!!
- win10误删的注册表能还原吗_教你手动还原Win10注册表?
- 电脑任务栏应用图标变成白色怎么恢复
- iOS应用安全-专栏总目录(持续更新) 丨蓄力计划
- [blender]常用按键操作以及新手失误教程
- 计算机主板上的命名,电脑主板常见命名规则整理:微星;华硕;技嘉
热门文章
- java程序设计 一种跨学科_清华大学出版社-图书详情-《Java程序设计:一种跨学科的方法》...
- 机械臂手眼标定C++ opencv(眼在手上)
- 电子商务信用如何提高?
- 毕业设计正式拉开帷幕——android的画图工具,基于samsung的spen
- 学生python编程--学习列表绘制彩虹
- python 将字典内容存入数据库_不止建筑 | Python处理文本文件数据的基本方法
- 【爬虫作业】使用scrapy爬取游戏发售表,存入mongo数据库
- python百度地图api经纬度_Python调用百度地图和高德地图API批量获取国内城市地址经纬度坐标...
- 谷粒学院 —— 10、课程管理:整合阿里云视频点播
- sha1散列算法详解示例