目录
最近工作需要研究这个,尝试摸索中,记录一下自己尝试的步骤,方便以后参考。
一、安装基础环境依赖项
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、下载原文件
我下载的是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下的环境搭建及测试
ubuntu18.04配置ORB-SLAM3(包含ROS)完整版教程
安装pfring 报错error: openssl/md5.h: No such file or directory