ORB_SLAM3开发环境搭建(使用docker容器方式)

目录

一、简介

二、安装

1、下载容器 (ros基础镜像)

2、启动容器

3、在容器内安装依赖

4、安装 Pangolin 作为可视化和用户界面

5、下载编译ORB-SLAM3代码

6、Examples、Examples_old 测试数据集

(1)官方离线数据集测试(单目、双目相机视频数据集)

(2)实时摄像头测试(单目,双目和RGB-D相机,笔记本电脑摄像头)

(3)本地MP4测试,需要自己写demo


一、简介

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

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

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

官方源码说明:https://github.com/UZ-SLAMLab/ORB_SLAM3?tab=readme-ov-file

二、安装

1、下载容器 (ros基础镜像)

因为后续开发大概需要用到ros,因此直接基于ros的基础镜像去构建:

docker pull osrf/ros:melodic-desktop-full

如果拉取不了docker hub上的这个容器,说明网络不通

可以修改docker配置文件,启用某人的镜像加速 ,修改 /etc/docker/daemon.json如下:

{
    "registry-mirrors": ["https://dockerhub.xianfish.site"]
}

然后再重启docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

再次拉取镜像:

docker pull osrf/ros:melodic-desktop-full

2、启动容器

#让Docker容器内部能够运行可视化图像界面(显示到本地显示器)
xhost +

#创建并启动容器
docker run -it --net=host --privileged=true \
-e DISPLAY=":0" \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /dev/:/dev/ \
-v /home/zyh/:/home/ \
--name=test_orb \
osrf/ros:melodic-desktop-full /bin/bash

#进入容器
docker exec -it test_orb /bin/bash

说明:

-v /home/zyh/:/home/ 表示建立主机和容器内的共享目录,根据实际修改你想要的共享目录

3、在容器内安装依赖

尽量不要漏掉,因为后续编译或开发,可能需要用到

apt-get update
apt-get install git cmake wget vim build-essential libglew-dev libgtk2.0-dev
apt-get install libgoogle-glog-dev libgflags-dev libatlas-base-dev liblapack-dev libsuitesparse-dev
apt-get install libwayland-dev libxkbcommon-dev wayland-protocols libeigen3-dev
apt-get install libepoxy-dev libpthread-stubs0-dev
apt-get install libudev-dev pkg-config libgtk-3-dev
apt-get install software-properties-common
apt-get install ffmpeg
apt-get install libjpeg-dev libpng-dev libtiff5-dev libopenexr-dev
apt-get install libboost-serialization-dev

#选装realsense2 (用于后续支持realsense相机)
apt-get install ros-melodic-realsense2-*

#ros相关,摄像头驱动
apt-get install ros-melodic-usb-cam

4、安装 Pangolin 作为可视化和用户界面

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin && mkdir build && cd build
cmake ..
make -j4
make install
ldconfig
  • 安装 opencv3.2.0或4.4.0 (容器中已有opencv3.2.0,无需安装)
  • 安装 Eigen3 一个开源线性库,可进行矩阵运算,前面已安装过
apt-get install libeigen3-dev
  • 安装 DBoW2 and g2o (ORB_SLAM3文件中自带,不用下载安装)

5、下载编译ORB-SLAM3代码

  • 下载:
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
cd ORB_SLAM3
  • 修改CMakeLists.txt的opencv版本,并Eigen3的版本号去掉
#find_package(OpenCV 4.4)
find_package(OpenCV 3.2)
   if(NOT OpenCV_FOUND)
      message(FATAL_ERROR "OpenCV > 3.2 not found.")
   endif()

MESSAGE("OPENCV VERSION:")
MESSAGE(${OpenCV_VERSION})

#find_package(Eigen3 3.1.0 REQUIRED)
find_package(Eigen3 REQUIRED)
  • 修改Examples/Monocular/mono_euroc.cc,第83行将 false 改为 true,表示开启可视化界面
//    ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);
    ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, true);
  • 编译(此处最好是先cat查看脚本)
chmod +x build.sh && ./build.sh

6、Examples、Examples_old 测试数据集

(1)官方离线数据集测试(单目、双目相机视频数据集)

#下载单目相机数据集:
wget http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_01_easy/MH_01_easy.zip

#创建一个dataset文件夹用于存储数据集:
mkdir dataset

#解压下载的数据集,放到dataset目录下:
mkdir dataset/MH01
unzip MH_01_easy.zip
mv mav0 dataset/MH01/

#将/home/dataset/MH01改成你的数据集文件夹的地址,
#运行之后,会在当前目录下生成两个.txt结果文件
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml /home/dataset/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt

(2)实时摄像头测试(单目,双目和RGB-D相机,笔记本电脑摄像头)

参考:ORB-SLAM3 安装运行_ros运行orb-slam3-CSDN博客

(3)本地MP4测试,需要自己写demo

参考:ORB_SLAM3安装和本地视频_orslam3运行mp4-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤劳的搬运工zyh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值