一. 编译代码
这里是用ubuntu20.04,opencv4安装orbslam2的一点记录。报错信息经过搜索找到了对应的解决办法,在这里做一个笔记
-
报错1:FATAL_ERROR "OpenCV > 2.4.3 not found."的错误
解决:将ORB_SLAM2/CMakeLists.txt中的opencv版本改成自己对应的版本 -
报错2:error: ‘CV_LOAD_IMAGE_UNCHANGED’ was not declared in this scope
解决: 把Examples文件夹里.cc文件所有的这个名改成cv::IMREAD_UNCHANGED -
报错3:No rule to make target ‘…/Thirdparty/DBoW2/lib/libDBoW2.so’, needed by ‘…/lib/libORB_SLAM2.so’. Stop.
解决:将ORB_SLAM2/Thirdparty/DBoW2/CMakeLists.txt中的opencv版本改成自己对应的版本 -
报错4: static assertion failed: std::map must have the same value_type as its allocator
解决:修改ORB_SLAM2/include/LoopClosing.h::50,把原来的:
typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> > > KeyFrameAndPose;
修改为:
typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
Eigen::aligned_allocator<std::pair<KeyFrame* const, g2o::Sim3> > > KeyFrameAndPose;
- 报错5:orb rror: ‘usleep’ was not declared in this scope
解决:给对应的文件加上头文件
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
二. 运行TUM RGBD数据集
rgb与深度图像对齐
1.编译成功后,从官网下载associate.py文件 https://vision.in.tum.de/data/datasets/rgbd-dataset/tools
2. 根据orbslam2的github提示来对齐图片,生成txt
python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
3 运行程序(非ros)
查看一下自己运行的数据集的名字,比如要运行fr3_walking_rpy,那么下面要选的就是TUM3.yaml(因为与fr3对应)
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml /数据集文件夹路径 /associations.txt 文件路径
4.运行结束后生成轨迹,可以用evo与groundtruth进行比较
evo测评TUM数据集
issue:How to get rotation error?