ORB-SLAM3:1
1 安装
(1)g2o和DBoW2不需要自己下载安装,ORBSLAM3自带安装包。
(2)安装时可以根据build.sh中的命令行一个一个执行,直接执行build.sh错误太多,没办法一步一步调试。
(3)ORBSLAM3安装过程由很多警告,可以在CmakeLists.txt中将 - Wall后面加上 -w 来屏蔽错误。
(4)安装过程中会出现“无法分配内存的错误” ,这是运行内存不够用导致的错误,可以扩展swap内存,将暂不执行的程序储存在swap,需要执行时再从swap中取出,这样便可扩展内存(将储存变为运行内存)。
使用swapon -s
查看已存在的swap文件
使用free -m
查看内存情况。
使用下面代码建立swap,swapfile是swap文件的存放位置,可以直接建立在计算机路径下,count是要分配出来的内存(单位为Kb)。
dd if=/dev/zero of=/swapfile bs=1024 count=4194304
格式化分出的储存mkswap /swapfile
激活swap swapon /swapfile
如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。用 sudo gedit /etc/fstab
打开文件,在其最后添加如下一行:/swapfile swap swap defaults 0 0
删除swap:
$ swapoff /swapfile #卸载swap文件
$ 并修改/etc/fstab文件 #从配置总删除
$ rm -rf /swapfile #删除文件
其他swap操作
(5)安装过程中会遇到x3D = x3D_h.get_minor<3,1>(0,0) / x3D_h(3); 代码的错误,找到对应的文件和代码位置,将其更改为
x3D = cv::Matx31f(x3D_h.get_minor<3,1>(0,0)(0) / x3D_h(3), x3D_h.get_minor<3,1>(0,0)(1) / x3D_h(3), x3D_h.get_minor<3,1>(0,0)(2) / x3D_h(3));
2 使用
数据库,下载MH -05
解压到文件夹,然后执行(单目相机+IMU):
./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml /home/mol/study/SLAM/Datasets ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH05.txt
其中的/home/mol/study/SLAM/Datasets是数据库文件目录,就是解压后mav0的储存位置。
更多传感器见其他传感器例程使用