GSLAM:一套通用的SLAM框架与基准
学习使用GSLAM新框架,简述:为了中和测定这一框架在SLAM领域的性能,研究人员针对四个方面在框架内对算法进行了性能评测,下图中展示了DSO、SVO和ORBSLAM算法运行时每一帧的内存使用、分配内存数量、CPU使用和耗时等详细信息。结果证明SVO占用了最少的内存和CPU资源,耗时最短且很稳定,这主要因为它只是一个视觉里程计,只需要维持一个很小的局部地图,无需进行全局的强计算操作。
在编译GSLAM-ORBSLAM-master时遇到了8个问题,简单列出几个如下:
GSLAM-ORBSLAM-master/src/ORBextractor.cpp:607: error: 'FAST' was not declared in this scope
GSLAM-ORBSLAM-master/src/ORBextractor.cpp:616: error: 'ORB' has not been declared in this scope
GSLAM-ORBSLAM-master/src/ORBextractor.cpp:760: error: 'GaussianBlur' was not declared in this scope
GSLAM-ORBSLAM-master/src/ORBextractor.cpp:683: error: 'KeyPointsFilter' has not been declared in this scope
错误分析:
1、有'FAST' 'GaussianBlur' 'KeyPointsFilter'未定义
如果对ORBSLAM比较熟悉的话可以知道时缺少了opencv的两个头文件
2、有 'ORB' 未定义
同样以上,可以参考ORBSLAM中的文件去修改,或者去头文件下去查看,发现此错误后面定义的枚举类型在ORBextractor类下
解决方案:
1、添加2个头文件
#include <opencv2/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>
2、修改区间
定义到算法的错误处,在算法的第616
ORB::HARRIS_SCORE -> ORBextractor::HARRIS_SCORE
操作完成后,编译成功!