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时遇到界面停留且光标闪烁但程序没有进一步输出的情况
但我感觉是我自己电脑问题跑不动,操作应该是没问题的