ORB_SLAM2的安装、问题及解决方式

一.引言

本文包括ORB_SLAM安装全指令及部分问题解决方式,同时在文末制作了自己的数据集用以运行。

部分资源和代码内容来自链接:https://blog.csdn.net/weixin_56566649/article/details/124355140

二.安装指令

1.库的安装

安装cmake,gcc,g++,git

打开终端输入指令

sudo apt-get update
sudo apt-get install  cmake gcc g++ git

2.安装Pangolin,本文安装为0.6版本

step1:请将下载好的文件夹改名为Pangolin,放于主目录中。随后,新打开一个终端,依次输入以下命令

sudo apt-get install libxkbcommon-dev
sudo apt-get install wayland-protocols
sudo apt install libglew-dev
cd Pangolin
mkdir build
cd build
cmake ..
make -j
sudo make install

step2:测试能否使用:

cd Pangolin
cd examples/HelloPangolin
mkdir build && cd build
cmake ..
make
./HelloPangolin

如果成功则出现如下彩色立方体:

3.安装Eigen3

sudo apt-get install libeigen3-dev

4.安装opencv3

从官网下载opencv3系列并提取到主目录,重命名为opencv3,

打开一个新的终端,输入以下命令

sudo apt-get install build-essential
sudo apt-get install cmake git 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
cd opencv3
mkdir build
cd build
cmake ..
make -j
sudo make install
 

(注:此处如果运行make -j执行不了可尝试执行make -j4或make -j8,下文出现的此项代码均同,原因在第4板块“问题及解决”中有详细解释)

安装完成后,打开一个新的终端:

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

这时会出现一个文档,在文档最后一行添加:

/usr/local/lib

保存好后,退出,打开一个新终端:

sudo ldconfig

再打开一个新终端,输入:

sudo gedit /etc/bash.bashrc

这时会出现一个文档,在文档最后一行添加如下代码:

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

添加完成后,保存并退出,并打开一个新终端,输入:

source /etc/bash.bashrc
sudo updatedb

安装完成,进行测试:

cd opencv3/samples/cpp/example_cmake
cmake .
make
./opencv_example

4.安装ORB_SLAM

里面要修改很多错误,此处借鉴了上传资源ORB_SLAM2,提取码9527,

打开一个新终端输入:

cd ORB_SLAM2
chmod +x build.sh
./build.sh

5.测试

(1)下载数据集Computer Vision Group - Dataset Download (tum.de)下载完成后,进入ORB_SLAM2文件夹创建一个文件夹:data,将下载好的数据集压缩包提取到data下面,然后打开一个新终端输入以下命令:

cd ORB_SLAM2
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml data/rgbd_dataset_freiburg1_xyz
 

三.制作自己的数据集

(1)下载文档,将其复制到ORB_SLAM2下面。

(2)再用自己的手机拍一个视频

(3)录制完成后,将其复制到ORB_SLAM2文件下,重命名为test.mp4。

(4)以上步骤完成后,ORB_SLAM2里面应该多了三个文件:test.cpp,test.yaml,test.mp4.

(5)修改ORB_SLAM2里面的CMakeLists.txt,添加如下代码,保存

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})
add_executable(test test.cpp)
target_link_libraries(test ${PROJECT_NAME})

(6)编译运行

cd ORB_SLAM2
mkdir build
cd build
cmake ..
make -j
cd ..
./test

四.可能出现的问题及解决方式

(1)无法获得锁,进程被占据无法更新需求

在更新库和安装依赖时总会出现如下错误:

E: 无法获得锁 /var/lib/apt/lists/lock。锁正由进程 2347(packagekitd)持有
N: 请注意,直接移除锁文件不一定是合适的解决方案,且可能损坏您的系统。
E: 无法对目录 /var/lib/apt/lists/ 加锁

解决方式:

首先打开终端执行如下代码,将终端关闭:

sudo kill 2347

其次,更改目录:

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo apt-get update

再进行尝试即可执行更新依赖等命令。

(2)安装opencv步骤及依赖报错: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

其中libjasper1是libjasper-dev的依赖包,执行完上述命令后再执行opencv更新依赖的命令:

sudo apt-get install build-essential
sudo apt-get install cmake git 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

(3)在安装时执行make -j总会出现死机问题

        用make -j带一个参数,可以把项目在进行并行编译,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。

        在多核CPU上,适当的进行并行编译还是可以明显提高编译速度的。但并行的任务不宜太多,一般是以CPU的核心数目的两倍为宜。

        本人在编译时,将make -j更改为make -j4,即可成功编译。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值