欢迎光临散文网 会员登陆 & 注册

基于ORB-SLAM3库搭建SLAM系统

2023-07-11 12:01 作者:小郭的牧羊人  | 我要投稿

作者:郭鸿源

转载请注明地址

原文地址:基于ORB-SLAM3库搭建SLAM系统

https://kx0e3q97cc.feishu.cn/wiki/RsIcwzWUAigfrWkuV5McpzNZn0b


目录

一、基础部分:基于ORB-SLAM3库搭建SLAM系统(点击可跳转至ORB-SLAM3库github链接)

1. 注意事项

2. 准备工作,下载安装要用的文件

2.1 新建一个文件夹,用于存放下载的文件

2.2 在github上下载ORB-SLAM3库

2.3 下载Pangolin

2.4 下载Eigen3

3. 安装下载的及相关所需的库

3.1 安装 Eigen3库

3.2 安装 Pangolin

3.2.1 安装Pangolin需要的依赖工具

3.2.2 安装 Pangolin

3.3 安装 OpenCV3.4.3

3.3.1 在官网下载OpenCV库

3.3.2 安装OpenCV依赖

3.3.3 编译OpenCV

3.3.4 配置环境

3.3.4.1 添加库路径

3.3.4.2 更新系统库

3.3.4.3 配置bash

3.3.4.4 版本检测

3.4 安装 boost 库

3.5 安装 libssl-dev

3.6 ORB-SLAM3 的编译和安装

3.6.1 ORB-SLAM3 编译

3.6.2 安装 ORB-SLAM3

4. 例程效果图

二、扩展部分:

1. 基于Gazebo搭建移动机器人,并结合SLAM系统进行定位和建图仿真;

1.1 创建功能包,导入依赖项

1.2 编写URDF或Xacro文件

1.2.1 编写封装惯性矩阵算法的xacro文件

1.2.2 编写模型相关xacro文件,并设置collision inertial以及color等相关参数

1.2.2.1 底盘Xacro文件

1.2.2.2 摄像头Xacro文件

1.2.2.3 雷达Xacro文件

1.2.2.4 组合底盘、摄像头与雷达的Xacro文件

1.3 启动Gazebo并显示机器人模型

2. 在前述工作基础上进行运动规划及运动仿真。

2.1 运动控制及里程计信息显示

2.1.1 添加机器人传动装置

2.1.2 xacro文件集成

2.1.3 启动gazebo控制机器人运动

2.1.4 Rviz查看里程计信息

2.2 雷达信息仿真以及显示

2.2.1 新建xacro文件,配置雷达传感器信息

2.2.2 xacro文件集成

2.2.3 编写launch文件,启动gazebo仿真环境

2.3 摄像头信息仿真及显示

2.3.1 新建xacro文件,配置摄像头传感器信息

2.3.2 xacro文件集成

2.3.3 编写launch文件,启动gazebo仿真环境

2.4 kinect信息仿真及显示

2.4.1 新建xacro文件,配置kinetic传感器信息

2.4.2 xacro文件集成

2.4.3 编写launch文件,启动gazebo仿真环境

三、附录

1. git安装

2. vi编辑器安装

四、Q&A

git clone

command

五、参考资料


注:

1.由于转化问题,文章中的部分代码无法一键复制,具体代码的语言在浅灰色代码框的左上角

2.本文中有部分图片由于识别原因无法展示,请用户自行下载相应文档

以下为正文内容:

一、基础部分:基于ORB-SLAM3库搭建SLAM系统(点击可跳转至ORB-SLAM3库github链接)

1. 注意事项


如果是新系统,需要先安装个git、vi编辑器、DBoW2、g2o(安装过程及可能遇到的问题、相应的对策解决方案放在附录中)



  • 备注:DBoW2、g2o在安装ORB-SLAM3中会自动安装编译,不再在附录中另行安装


  • DBoW2:主要用于回环检测


  • g2o:用于图优化



2. 准备工作,下载安装要用的文件

2.1 新建一个文件夹,用于存放下载的文件

这里我们将这个文件夹取名为 homework_exercise

2.2 在github上下载ORB-SLAM3库

在 homework_exercise 文件夹下打开终端,输入下列命令行或直接在github上下载提取

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3


2.3 下载Pangolin

在 homework_exercise 文件夹下打开终端,输入下列命令行或直接在github上下载提取

git clone https://github.com/stevenlovegrove/Pangolin.git


Bash
git clone https://github.com/stevenlovegrove/Pangolin.git


2.4 下载Eigen3

在 homework_exercise 文件夹下打开终端,输入下列命令行或直接在github上下载提取


Bash
git clone https://github.com/eigenteam/eigen-git-mirror


3. 安装下载的及相关所需的库

3.1 安装 Eigen3库

在 homework_exercise 文件夹下打开终端,输入下列命令行


Bash
cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install
 
#安装后,头文件安装在/usr/local/include/eigen3/


3.2 安装 Pangolin

在 homework_exercise 文件夹下打开终端,输入下列命令行

3.2.1 安装Pangolin需要的依赖工具

在终端依次输入以下指令


Bash
sudo apt install libgl1-mesa-dev
sudo apt install libglew-dev
sudo apt install cmake
sudo apt install libpython2.7-dev
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols


3.2.2 安装 Pangolin

在 homework_exercise 文件夹下打开终端,输入下列命令行


Bash
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .


3.3 安装 OpenCV3.4.3

3.3.1 在官网下载OpenCV库

官网网址:https://opencv.org/releases/page/5/


由于OpenCV - 4.0.0-alpha使用的博主不多,更常用的是3.4.3版本,这里笔者使用的是3.4.3


在“OpencV -3.4.3”板块 中找到“source”并点击










点击下载之后,将压缩文件放到 homework_exercise 文件夹,右键提取文件进行解压

更新一下,准备下一步,安装OpenCV依赖库。在终端输入以下指令


Bash
sudo apt-get update


3.3.2 安装OpenCV依赖

在终端中输入下列指令


Bash
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff5-dev libswscale-dev libjasper-dev

# 原博客安装的是libtiff4-dev,有博主运行过程报错,改成libtiff5-dev
# 这里,笔者使用安装libtiff4-dev时也没有报错,笔者最后选择libtiff5-dev安装。大家可以根据实际情况选择。


3.3.3 编译OpenCV

在 homework_exercise 文件夹下打开终端,输入下列命令行


Bash
cd opencv-3.4.3
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..


再次执行cmake指令,完成编译任务,在终端中输入下列命令行


Bash
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..


用make完成后续编译任务,在终端中输入下列命令行


Bash
make -j4


最后,完成编译安装


Bash
sudo make install


3.3.4 配置环境

3.3.4.1 添加库路径


Bash
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'


3.3.4.2 更新系统库


Bash
sudo ldconfig


3.3.4.3 配置bash


Bash
sudo gedit /etc/bash.bashrc


打开后在文件末尾添加下面两行代码


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


保存文件,执行下面的指令使配置生效


Bash
source /etc/bash.bashrc


更新


Bash
sudo updatedb


3.3.4.4 版本检测

安装好之后,我们肯定要对自己安装的OpenCV版本进行检测

输入下面的代码,查询OpenCV版本


Bash
pkg-config --modversion opencv



3.4 安装 boost 库

前往boost库官网进行下载,这里,笔者下载的是1.82.0版本

boost官网地址:https://www.boost.org/


下载之后,我们需要将下载的文件放在 homework_exercise 文件夹下并提取解压

解压后我们进入解压出来的文件夹,执行下面的指令


Bash
sudo ./bootstrap.sh


文件夹此时多了一些文件,我们再执行下面这个脚本


Bash
sudo ./b2 install


3.5 安装 libssl-dev

在 homework_exercise 文件夹下打开终端,输入下列命令行


Bash
sudo apt-get install libssl-dev


3.6 ORB-SLAM3 的编译和安装

3.6.1 ORB-SLAM3 编译

在 homework_exercise 文件夹下打开终端,输入下列命令行


Bash
cd ORB_SLAM3-master
chmod +x build.sh


打开ORB_SLAM3-master对应的CMakeLists.txt
找到 find_package(OpenCV 4.4)这行代码,将OpenCV版本号改为find_package(OpenCV 3.4)

3.6.2 安装 ORB-SLAM3

逐行依次执行下面的指令


Bash
echo "Configuring and building Thirdparty/DBoW2 ..."
 
cd Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j
 
cd ../../g2o
 
echo "Configuring and building Thirdparty/g2o ..."
 
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

cd ../../Sophus

echo "Configuring and building Thirdparty/Sophus ..."

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

cd ../../../

echo "Uncompress vocabulary ..."

cd Vocabulary
tar -xf ORBvoc.txt.tar.gz
cd ..

echo "Configuring and building ORB_SLAM3 ..."

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j5


在执行到最后一个模块时,笔者报错


报错信息显示,我们需要将realsense2添加到路径中


4. 例程效果图

打开 ORB_SLAM3 文件夹,并输入以下指令,跑例程数据集


Bash
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml ~/dataset/rgbd_dataset_freiburg1_xyz/ ~/dataset/rgbd_dataset_freiburg1_xyz/associations.txt



二、扩展部分:

1. 基于Gazebo搭建移动机器人,并结合SLAM系统进行定位和建图仿真;

1.1 创建功能包,导入依赖项

创建新功能包,导入依赖包:urdf、xacro、gazebo_ros、gazebo_ros_control、gazebo_plugins

1.2 编写URDF或Xacro文件

1.2.1 编写封装惯性矩阵算法的xacro文件


基于ORB-SLAM3库搭建SLAM系统的评论 (共 条)

分享到微博请遵守国家法律