Ubuntu18.04从零开始搭建orb slam3及数据集测试

目录

一、安装基础环境依赖项

1、g++

2、gcc

3、cmake

4、git

5、build-essential编译器

二、安装Pangolin

1、依赖项

2、安装Eigen 3

3、编译

三、安装opencv

1、下载原文件

2、安装依赖项

3、编译

4、添加路径

5、配置bash

6、验证版本

四、安装Boost

五、安装DBoW2 and g2o and Sophus

六、安装orb slam

问题1

问题2

问题3

swap交换空间

查看

增加虚拟内存

删除虚拟内存

释放缓存

七、数据集测试

1、下载

2、解压

3、运行

问题

参考文章

最近工作需要研究这个,尝试摸索中,记录一下自己尝试的步骤,方便以后参考。

一、安装基础环境依赖项

1、g++

sudo apt-get install g++

2、gcc

sudo apt-get install gcc

3、cmake

sudo apt-get install cmake

4、git

sudo apt-get install git

5、build-essential编译器

sudo apt-get install build-essential

二、安装Pangolin

1、依赖项

sudo apt install libglew-dev
sudo apt install libpython2.7-dev

2、安装Eigen 3

sudo apt-get install libeigen3-dev

eigen3要在Pangolin之前安装,不然可能会出现无法make的情况

3、编译

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build && cd build
cmake ..
make
sudo make install

三、安装opencv

1、下载原文件

opencv下载页面

我下载的是4.5.1版本,放到主目录(或者你选定的目录)然后提取到此处,打开opencv文件夹

2、安装依赖项

sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

第二个命令可能会出现问题

E: 无法定位软件包 libjasper-dev

解决办法:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

然后重新输入一下第二个命令就ok了

3、编译

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \ -DOPENCV_GENERATE_PKGCONFIG=ON \ -DCMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install

4、添加路径

sudo gedit /etc/ld.so.conf.d/opencv.conf

打开一个空的文本文件,然后在里面添加opencv的安装路径:

/usr/local/lib

保存并关闭,出现warning是正常的情况,然后用下列命令让刚才的路径生效

sudo ldconfig 

5、配置bash

sudo gedit /etc/bash.bashrc

打开bash.bashrc文件,在文件末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH

 保存并关闭,然后执行生效命令并更新

source /etc/bash.bashrc
sudo updatedb

6、验证版本

查看版本号

pkg-config --modversion opencv4

四、安装Boost

sudo apt-get update
sudo apt-get install libboost-all-dev

五、安装DBoW2 and g2o and Sophus

不需要单独安装,在orb slam3中包含着,执行build.sh时就一起安装了

六、安装orb slam

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
chmod +x build.sh
./build.sh

问题1:

如果电脑性能不太好的话,最后一句可能会直接卡死,基本都是卡在 make 这步

解决办法:

gedit build.sh

然后对文本进行修改,将里面的几个 make 改一下,反正在 make / make -j / make -j2 / make -j4 里面试吧

然后继续编译最后两行

如果还不行,那就把build.sh文本中的每一行复制下来挨个跑一遍慢慢来(我是卡在Sophus的编译上,最后用 make 跑完的)

问题2:

在执行build.sh最后一部分编译orbslam时可能会出现如下错误

原因:没有安装openSSL开发包,找不到依赖文件,装上就行

解决办法:

sudo apt-get install libssl-dev

问题3:

原因:编译过程中内存不够

解决办法:多分配一些内存,或者用swap创建临时分区

swap交换空间

用于解决内存不足的情况

查看:
 free -m

增加虚拟内存: 
mkdir /home/su/swapfile     
cd /home/su/swapfile        
sudo dd if=/dev/zero of=swap bs=1G count=2    

 前两行需要根据自己的路径更改,第三行的 bs 和 count 可以根据电脑内存自己更改

转换格式

sudo mkswap -f swap  

激活

sudo swapon swap

 

这个时候再查看就发现成功增加了

永久生效

打开 /etc/fstab 文件

gedit /etc/fstab

在文本文件最后加一行:
/home/su/swapfile/swap none swap defaults 0 0

然后重启

删除虚拟内存:
sudo swapoff -v /swapfile
sudo rm /swapfile
释放缓存:
sudo -i
echo 3 > /proc/sys/vm/drop_caches

七、数据集测试

1、下载

进入EuRoC数据集,选择下载

如果从页面直接点进去可能会出现无法安全下载的情况,复制下载链接到新窗口并回车就可以下载了 

2、解压

在 ORB_SLAM3 下新建一个 dataset 的文件夹用来存放数据,下载完成的数据集解压得到一个 mav0 的文件夹,将整个文件夹移到 dataset 下新建的 MH01 文件夹内

3、运行

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./dataset/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt

问题:

没有可视化界面 

解决办法:

gedit ./Examples/Monocular/mono_euroc.cc

文本第83行将 false 改为 true 

 保存退出,然后重新编译

chmod +x build.sh
./build.sh

完成后再次输入运行命令即可显示可视化窗口

参考文章

ubuntu18.04如何从头搭建一套ORB_SLAM3的框架,并在测试集和自己的D345i相机上进行测试。

ORB_SLAM3在ubuntu18.04下的环境搭建及测试

Ubuntu系统安装opencv详细操作及具体应用

ubuntu18.04配置ORB-SLAM3(包含ROS)完整版教程

安装pfring 报错error: openssl/md5.h: No such file or directory

C++ internal compiler error:killed (program cc1plus)

Ubuntu如何设置或删除swap虚拟内存

ubuntu增加swap交换空间

ubuntu 清理缓存

ORB-SLAM3 单目运行EuRoC数据集没有显示图像

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值