一. 编译代码

这里是用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?

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐