一、安装VMWare虚拟机
在这里选择VMware 17.0的版本,可以去官网下载,如果嫌麻烦可以进入下面的阿里云盘网址保存之后解压下载:
https://www.aliyundrive.com/s/6LHmbBEcYbw
具体的安装步骤我是参考下面这个链接,里面有详细的安装步骤:https://mp.weixin.qq.com/s/qSn5yu6bB_6M-YC9bBeksA
二、安装Ubuntu20.04
安装好之后进行下一步,在虚拟机里面安装Linux操作系统,这里使用的是ubuntu,进入下面的链接下载Ubuntu20.04版本:
http://mirrors.aliyun.com/ubuntu-releases/20.04.6
进入网站之后会看到有好多个下载选项,这里选择下面图片中显示的选项下载。
在完成以上两个步骤之后虚拟机就正式安装完成了。下面的安装涉及的文件夹路径都不能带中文,且所有操作都在虚拟机内完成。
三、安装ROS系统
(一)一键安装
安装ROS的主要目的是为了它附带安装的许多依赖(包括OpenCV和eigen3等等),可以大大降低折腾力度。安装ROS之后就不用单独去下载安装OpenCV和Eigen3了。首先打开终端,输入以下指令安装ROS:
wget http://fishros.com/install -O fishros && . fishros
输入命令之后出现以下内容就表明输入无误,接着按照提示进行安装(过程很简单,只是费时间),在这里选择安装ROS1版本即可,其他配置按照默认推荐进行选择。
(二)验证依赖
安装完成后可以通过“apt policy 软件名”来检查对应依赖是否安装,输入以下指令:
apt policy libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpng-dev libeigen3-dev
检查后发现只有ffmpeg没有安装,输入以下指令安装:
sudo apt install ffmpeg
四、安装Pangolin0.6
(一)下载Pangolin0.6
https://github.com/stevenlovegrove/Pangolin/archive/refs/tags/v0.6.zip
下载解压并进入pangolin-0.6文件夹,右键打开终端,依次输入以下指令:
mkdir build && cd build
cmake -DCPP11_NO_BOOST=1 ..
make
sudo make install
(二)验证安装是否成功
依次进入文件夹:pangolin-0.6→examples→HelloPangolin,在文件夹中右键打开终端,依次输入以下指令:
mkdir build && cd build && cmake .. && make
./HelloPangolin
输入命令之后出现图示的立方体表示安装成功。
五、安装ORB-SLAM3
(一)下载ORB-SLAM3
在终端内输入以下命令安装依赖:
sudo apt install git cmake gcc g++ mlocate
再输入以下指令下载ORB-SLAM3:
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
也可以去 Github 下载源码:https://github.com/UZ-SLAMLab/ORB_SLAM3
下载完成后可以把文件夹名称改成ORB-SLAM3,方便使用。
(二)编译ORB-SLAM3
(1)首先检查OpenCV的版本号。之前在安装ROS系统时已经附带安装了OpenCV,打开终端输入以下指令查看版本号,可以看到版本号是4.2.0。
pkg-config --modversion opencv4
(2)进入ORB-SLAM3文件夹,打开CMakeLists.txt文件,找到find_package(OpenCV 3.2),把版本号改成自己的版本。
(3)再找到find_package(Eigen3 3.1.0 REQUIRED),把版本号 3.1.0 删掉。
(4)打开build.sh文件,将其中的make -j设置成合适的核数,在前面的教程中安装设置的虚拟机核数是2,所以全部改成j2。
(5)进入Thirdparty→DBoW2文件夹,打开CMakeLists.txt,找到find_package(OpenCV 3.2 QUIET),把版本号改成自己的版本。
(6)进入Examples→Monocular文件夹,打开mono_euroc.cc文件,把第83行的false改成true。(这一步是为了程序运行时能显示可视化窗口)
(三)安装ORB-SLAM3
打开 ORB-SLAM3 文件夹,找到 build.sh 这个文件。然后打开终端,输入以下指令进入 ORB-SLAM3 文件夹内(注意:ORB-SLAM3是文件夹名称,和前面自己修改的文件夹名称对应)
cd ORB-SLAM3
再按照 build.sh 里面的代码,一行一行的输入进终端里,直到完成。终端可能会输出一些警告,可以不用管。我在安装过程中出现了fatal error: Killed signal terminated program cc1plus、段错误(核心已转储)的问题,在网上查找资料发现可能原因是因为内存不足导致的。
最后显示下面的内容表示安装完成。
六、数据集测试
(一)下载数据集
在ORB-SLAM3文件夹下新建一个datasets文件夹,在datasets里新建一个MHO1文件夹。进入下面的网址下载压缩包MH_01_easy.zip。
https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads
把第一个 Machine Hall 01 数据集下载下来,下载 ASL 格式的,将里面的文件解压之后放到MHO1文件夹里。
(二)测试数据集
打开终端,依次输入以下命令进入 ORBSLAM3 文件夹进行测试, 注意将最后一行指令中的/home/qinxiang666/dataset/MHO1改成你所设置的MHO1文件夹的地址。
cd ORB-SLAM3
cd Examples
./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml /home/qinxiang666/dataset/MHO1 ./Monocular/EuRoC_TimeStamps/MH01.txt
同时注意文件夹地址一定要写对,尤其注意区分数字0和字母O的区别,如果输入不对就会出现下面的问题:
若出现下面的图片即表示测试成功。