在学习高翔视觉SLAM14讲上出现的一些小问题,给自己做个笔记,顺序不固定,哪里出的毛病随手就记上了。代码可能有些表达不规范,但意思没错,都是已经解决过的问题,做个参考吧。
1.ch5
terminate called after throwing an instance of ' cv::Exception ' what () : opencv(3.4.15) / home / xxx /opencv 3.4.15 / modules / highgui /src / window.cpp:658:error:( -2:unspecified error ) The function is not implemented.(xxx→用户名)
配置库出现问题,opencv库安装依赖没有安装在3.4.15文件下
2.PCL点云和SLAM问题
官网下载PCL后,提示C++14报错,C++ no match
在CMAKE文件中将以下代码加入
ADD_COMPIE_OPTIONS(-std==c++11)
ADD_COMPIE_OPTIONS(-std==c++14)
set (CMAKE_CXX_FLAGS "-std = c++11-03")
提示PCL写入错误,需观察所测试文件(包含深度文件和彩色文件)是否放入build文件夹中
3.ceres编译问题
2022年的时候自己下载的ceres使用c++17运行,之后版本不保证能运行成功。只针对c++17情况
在CMAKE中修改
ADD_COMPILE_OPTIONS (-std = c++17)
set (CMAKE_CXX_FLAGS "-std = c++17")
4.Sophus编译问题(参考大佬:《视觉slam十四讲》ch4学习笔记——sophus库使用的问题及解决方法_slam十四讲ch4代码中的sophus报错连接-CSDN博客)
4.1.找不到eigen等
在CMAKE.txt文件中加
include_directories ("usr/include/eigen3/")
4.2.找不到Sophus/so
在CMAKE.txt文件中加
include_directories ("home/xxx/sophus")
(xxx→sophus库位置)
5.error: missing template arguments before "SO3_R"
由于用的是模板类的sophus库,因此要修改usesophus.cpp文件夹中的头文件。
将头文件.h 改为
#include "sophus/so3.hpp"
#include "sophus/se3.hpp"
6.出现fmt问题
将CMAKE.text文件中添加
tarrget_link_libraries(usesophus $ {sophus_LIBRARIES} fmt)
7.对于乌班图系统出现缓存锁的问题,主要表现在双系统中分配的磁盘空间占用完了,无法进一步操作时,先不要急着做挂载操作,新人(菜比如我)容易对改到系统盘
建议操作台
sudo rm / var / lib / dpkg / lock-frontend
sudo rm / var / eache / apt / archives / lock
sudo rm / var / lib / dpkg / lock
8.Opencv 相关问题
8.1依赖项 (参考大佬:《视觉SLAM十四讲》第五讲ch5实验错误总结_slam14 ch5 undistortimage-CSDN博客)
8.2编译成功,没有图像结果和数据
进入“运行”→“匹配启动”→“参数”→将文件读取地址导入
也可以
在 cv::imread("xxxx")
处xxxx中填写文件绝对路径
9.g2o配置问题
如果你是自己下的官网新的库,那确实痛苦如我
书上给的g2o库的构架太早,导致main.cpp代码错误
9.1.先移除g2o库
(1)删除g2o头文件,位于/usr/local/include/g2o下
sudo rm -r/usr/local/include/g2o
(2)删除g2o库文件,位于/usr/local/lib下
sudo rm -r/usr/local/lib/libg2o
(3)删除g2o可执行文件,位于/usr/local/bin下
sudo rm -r/usr/local/bin/g2o
9.2.在安装书中给的g2o库(上b站找找,没有估计得上github)
9.3.最后要用新库的话需要将老库移除后再重新安装(微笑)
10运行ch7时
在终端打开ch7,输入build/xxxx1 xxxx2 xxxx3 ....
xxxx1:cpp运行的文件,不是.cpp
xxxx2:文件
xxxx3:文件
11.ch8,光流,LKflow
11.1 Python3 associate.py rgb.txt depth.txt > associate.txt 出现 no module named numpy
→pip install numpy
→在执行最开始命令
11.2 directMethod
(1) CMAKE,c++11改c++14
(2) CMAKE,python改python3
11.3 .cpp文件→可编译无法运行
poseEstimationDirect函数后加return ture