ORB_SLAM3把所有的功能类编译成了一个动态库文件 libORB_SLAM3.so ,然后通过Examples的主程序调用这个动态库,比如 Monocular单目 RGB-D Stereo 双目,所以编译的重点是 libORB_SLAM3.so这个库文件,它编译好了基本上就成功了80%
ORB_SLAM3文件结构
简单介绍一下里面的主要内容:
include 头文件
src 源文件,和include内头文件一一对应
Examples 示例序源文件
Examples_old ros示例程序源文件
Thirdparty 第三方库
Vocabulary 应用场景下的大量训练图像,离线提取局部描述符
build.sh 不含ros主程序安装脚本
build_ros.sh ros主程序安装脚本
安装参考官网安装流程
https://github.com/UZ-SLAMLab/ORB_SLAM3/tree/master
首先我们从搭建环境开始
ubuntu18.04虚拟机
一、ROS一键安装
orb-slam3不需要ros也能运行,可以跳过此步不安装ros 。
ROS一键安装命令:
wget http://fishros.com/install -O fishros && . fishros
二、ORB_SLAM3依赖安装
1 安装c++编译软件
sudo apt update
sudo apt install git cmake gcc g++
2 安装EIGEN3
sudo apt-get install libeigen3-dev
3 安装pangolin0.6
安装依赖
sudo apt install libglew-dev libpython2.7-dev
下载 Source code (tar.gz) 解压到主目录,下载网址:
https://github.com/stevenlovegrove/Pangolin/releases/tag/v0.6
安装命令
cd Pangolin-0.6
mkdir build
cd build
cmake ..
make
sudo make install
测试
cd Pangolin-0.6/examples/HelloPangolin
mkdir build
cd build/
cmake ..
make
./HelloPangolin
运行此示例,效果显示是一个红绿蓝立方体,表示即为安装成功
报错可能会是缺少依赖,不报错可以不装。
sudo apt install libgl1-mesa-dev
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
4 安装OpenCV 4.4
ros melodic 自带opencv 3.2,如果安装了melodic ros版本,opencv就可以不在安装了,会省很多事,这也是安装ORB_SLAM3里面最大的一个坑,因为网上安装ORB_SLAM3的教程里都有安装opencv 4.4的选项,如果在安装opencv4.4版本,3版和4版会冲突,这也是很大的一个祸根,会导致以后运行ORB_SLAM3 ros版 报错:
ORB SLAM3 ubuntu18.04 ROS 运行 段错误 (核心已转储)
终端输入命令检查版本会输出3.2.0说明opencv3.2已经安装好了
pkg-config opencv --modversion
其他版本ros安装opencv请参考:
https://mp.csdn.net/mp_blog/creation/editor/129175515
三 ORB-SLAM3安装
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
chmod +x build.sh
./build.sh
这将在lib文件夹中创建libORB_SLAM3.so,并在Examples文件夹中创建可执行文件。
四 ORB-SLAM3 ros安装
修改build_ros.sh (因为ros文件在Examples_old里面,官网文件有误)
cd Examples_old/ROS/ORB_SLAM3
mkdir build
cd build
cmake .. -DROS_BUILD_TYPE=Release
make -j
gedit ~/.bashrc
在.bashrc文件最后面添加:
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples_old/ROS
安装
cd ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh
ORB_SLAM3 ros安装完成。
如果安装报错,可以分步编译安装,减少安装难度。