前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【VSLAM】ORB-SLAM3安装部署与运行

【VSLAM】ORB-SLAM3安装部署与运行

作者头像
DevFrank
发布2024-07-24 15:26:00
830
发布2024-07-24 15:26:00
举报
文章被收录于专栏:C++开发学习交流

😏1. ORB-SLAM3介绍

ORB-SLAM3是一种基于视觉传感器的实时单目、双目和RGB-D SLAM系统

SLAM代表同时定位与地图构建,是指在未知环境下通过机器人上搭载的传感器获取数据并运用算法进行实时处理,从而在机器人运动中同时完成对机器人自身姿态的估计和构建三维环境地图。

ORB-SLAM3是由英国伯明翰大学开发的,是ORB-SLAM2的改进版本,加入了语义信息处理,能够更加准确地估计相机的位置和方向,并且可以识别场景中的物体和结构,实现更加智能化的SLAM过程。

😊2. 代码安装部署

1. 安装ros与opencv

安装依赖:

代码语言:javascript
复制
sudo apt-get update
sudo apt-get install git cmake build-essential libglew-dev libgtk2.0-dev \
libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff5-dev \
libopenexr-dev libeigen3-dev libboost-all-dev libprotobuf-dev protobuf-compiler \
libgoogle-glog-dev libgflags-dev libatlas-base-dev liblapack-dev libsuitesparse-dev \
libvtk6-dev python3-pip python3-dev python3-numpy python3-yaml

安装完ros后,会自带opencv 3.2.0版本。

代码语言:javascript
复制
pkg-config --modversion opencv
2. 安装Pangolin作为可视化和用户界面

安装依赖:sudo apt-get install libglew-dev libpython2.7-dev libgl1-mesa-dev libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

下载代码:git clone https://github.com/stevenlovegrove/Pangolin.git

编译安装:

代码语言:javascript
复制
cd Pangolin
mkdir build
cd build
cmake ..
make -j8
sudo make install
3. 安装Eigen3一个开源线性库,可进行矩阵运算

安装eigen3:sudo apt-get install libeigen3-dev

4. 安装ORB-SLAM3

下载代码:git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3

构建ORB-SLAM3:

代码语言:javascript
复制
cd ORB_SLAM3
chmod +x build.sh
./build.sh

可能的问题:AR编译不通过,删除即可;se3库有问题,重新编译对应库。

构建ROS版本的ORB-SLAM3:

代码语言:javascript
复制
gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/ORB_SLAM3/Examples_old/ROS

chmod +x build_ros.sh
./build_ros.sh

可能的问题:改一下CMakeList.txt中的参数。

😆3. 案例运行

1. 运行数据集

编译完成后会在ORB_SLAM3/Examples文件夹下生成各种可执行文件。这里以单目相机为例运行:

  1. 下载数据集:有TUM、KITTI、EuRoC三种数据集,这里使用TUM数据集,从https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download下载序列并解压缩。
  2. 执行命令,其中PATH_TO_SEQUENCE_FOLDER为数据集的存储路径,并将tumx.yaml与下载的数据集对应,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml分别对应 freiburg1, freiburg2 和 freiburg3,根据自己的情况对路径(相对路径或绝对路径)做修改。
代码语言:javascript
复制
./Examples/Monocular/mono_tum /home/dev/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/dev/ORB_SLAM3/Examples/Monocular/TUM1.yaml /home/dev/ORB_SLAM3/dataset/rgbd_dataset_freiburg1_xyz

2. 用真实相机usb_cam运行

ORB_SLAM3自带了ros的版本,在Examples_old/ROS中,编译完成后,先运行usb相机:

代码语言:javascript
复制
roslaunch usb_cam usb_cam-test.launch

然后执行单目vslam命令(注意将订阅的topic改成对应相机的):

代码语言:javascript
复制
rosrun ORB_SLAM3 Mono /home/dev/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/dev/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/Asus.yaml

以上。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 😏1. ORB-SLAM3介绍
  • 😊2. 代码安装部署
    • 1. 安装ros与opencv
      • 2. 安装Pangolin作为可视化和用户界面
        • 3. 安装Eigen3一个开源线性库,可进行矩阵运算
          • 4. 安装ORB-SLAM3
          • 😆3. 案例运行
            • 1. 运行数据集
              • 2. 用真实相机usb_cam运行
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档