在windows系统中Linux子系统复现ORB_SLAM3 报错总结

1、安装Ubuntu开发环境

Windows系统设置中开发者选项,开启开发人员模式。开启Linux子系统功能

2、从github上将原码克隆下来

git clone 过程若出现fatal:远端意外挂断了;fatal:过早的文件结束符(EOF);fatal:index-pack失败

一般就是网络不好,多试几次就好了,或者增加缓冲大小

git config --global http.postBuffer 524288000

这里将缓冲大小设置为500MB

3、安装各种所需依赖sudo apt install …

(1)安装opencv

安装必要的依赖项,下载原码

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_GENERATE_PKGCONFIG=ON \
      -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
      -D BUILD_EXAMPLES=ON ..
make -j$(nproc)
sudo make install
sudo ldconfig

这里卡了很久,主要是18模型路径那里没弄清楚,一直报错未找到CmakeList.txt

13-19行用下面的语句也同样可运行

cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local .

(2)安装Pangolin

一开始安装了最新的版本,导致后面./build.sh编译的时候出现报错

error: ‘slots_reference’ was not declared in this scope

然后就卸掉重新下了Pangolin0.5版本

(3)安装eigen3

sudo apt install libeigen3-dev

(4)用sudo apt install 命令安装一些包的时候会出现

E: Unable to locate package XXX

sudo apt-get update和sudo apt-get upgrade大部分可解决

4、build.sh进行编译

(1)报错:找不到opencv版本>4.4

但我已经成功安装了opencv4.10,可能是安装过程中出了些问题 导致程序找不到我的opencv,于是我重新下载了一次就解决了

(2)报错:‘slots_reference’ was not declared in this scope

除了改Pangolin版本,还在终端改了

sed -i ‘s/++11/++14/g’ CMakeLists.txt

(导航的目录下要存在CmakeLists.txt)

原因:C++ 11 不支持编译,把 C++版本换到 C++14 就可以了

(3)编译到一半报一堆警告然后终止,后来隔一段时间编译多几次就解决了

5、下载数据集

一开始没有去官方下,最后运行执行文件时出现了未找到某张图片的报错,然后又去找官方的重新下载了一遍

wget -c http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_01_easy/MH_01_easy.zip

6、运行

命令:

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml/root/Dataset/EuRoC/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset -MH01_mono

(1)要看到图像模拟演示画面,要在./Examples/Monocular/mono_euroc.cc把第83行这里改成true

(2)在运行ORB_SLAM3时遇到界面停留且光标闪烁但程序没有进一步输出的情况
在这里插入图片描述
但我感觉是我自己电脑问题跑不动,操作应该是没问题的

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值