1.如何运行示例代码
首先是如何运行示例代码,这里遇到了很多问题:
(1)首先要下载Kitti数据集,并在config/default.yaml文件内修改路径。
(2)安装Glog、GTest、GFlags库,这部分比较简单,可能遇到的问题可以参考以下几个教程:
Ubuntu 16.04 系统 gflags & glog 安装_calvinpaean的博客-CSDN博客
安装glog 执行bash./ autogen时报错“没有这个文件”_蓝雨飞扬7的博客-CSDN博客
(3)Opencv版本,我最初用的是Opencv4,遇到了一些奇怪的bug,后来安装的Opencv3.4.5就解决了一部分奇怪的bug。
(4)修改app/run_kitti_stereo.cpp源码,主函数第一行为:
gflags::ParseCommandLineFlags(&argc, &argv, true);
(5)即使解决了所有问题,我还是不能用Clion直接运行程序,只能运行bin文件下的二进制程序。即在bin文件路径下直接命令行./run_kitti_stereo.cpp,虽然没解决Clion的问题,但至少能成功运行了。
2.主要头文件
能够成功运行代码后再来关注是怎么实现的,对于工程框架即各个文件夹内容的作用在P347已经详细介绍了,这里主要看一下include/myslam文件下的一系列头文件:
(1)algorithm.h:三角化函数,与前文讲过的方法不同,使用了SVD算法,后续再介绍。
(2)backend.h:后端,使用滑动窗口法对固定数量帧优化。
(3)camera.h:相机类,主要包括相机内外参数及世界、相机和像素三个坐标系下的坐标变换。
(4)common_include.h:常用矩阵类型的定