0
点赞
收藏
分享

微信扫一扫

ORBSLAM3(二) 编译与运行

ORBSLAM3编译

1.前置环境配置

因为我之前安装过C++,Pangolin,eigen,DBoW2,g2o,boost的依赖,所以不需要再次安装,没有安装过的同学可以查看这篇博文。

注意:一定要查看自己的OPENCV版本,确保其高于3.4.0。我因为OPENCV版本低于3.4.0,所以导致编译一直报错,弄了好久才发现是因为OPENCV版本过低,故而源码使用的FileNode类中real()方法不存在,导致一直编译不过。

2.源码下载

  1. 环境配置完成之后,下载ORBSLAM3的源码:下载地址
  2. 解压到桌面
  3. 使用终端打开该文件夹
  4. 调整内存值
mkdir swap
cd swap
sudo dd if=/dev/zero of=sfile bs=1024 count=2000000
sudo mkswap sfile
sudo swapon sfile
  1. 修改源码
// 修改1:CMakeLists.txt文件
findpackage(OPENCV 4)
// 修改为:
findpackage(OPENCV 3 REQUIRED)

// 修改2:KannalaBrandt8.cpp,LocalMapping.cc
// 在include之后添加如下代码
namespace cv
{
template<typename _Tp, int m, int n> static inline
Matx<_Tp, m, n> operator / (const Matx<_Tp, m, n> &a, float alpha)
{
return Matx<_Tp, m, n>(a, 1.f / alpha, Matx_ScaleOp());
}
}
  1. 进行编译
mkdir build
cd build
cmake ..
make  -j4  
  1. 测试数据集
    注意:要将数据集解压后放入对应名称的文件夹中才可以
例如: 下载了MH_O1_EASY数据集
你需要将解压得到的MH_01_EASY文件夹 名称修改为 MHO1
确保你的文件路径为:/###/###/MH##
然后执行如下代码:
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
其中"$pathDatasetEuroc"/MH01  替换为你数据集的地址即可

3.结果展示

我Ubuntu关机了,所以就展示一下别人的结果吧,意思是一致的。
请添加图片描述

举报

相关推荐

0 条评论