Ubuntu20.04 + Docker + ORB-SLAM2

这篇具有很好参考价值的文章主要介绍了Ubuntu20.04 + Docker + ORB-SLAM2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        原生的Docker并不直接支持可视化,需使用x11进行可视化。

  • 安装x11

sudo apt-get install x11-xserver-utils
#下面这个命令每次电脑重启都要运行一次
xhost +  
#创建完容器后可以在容器内安装一个时钟测试
apt install xarclock
#运行时钟
xarclock
  •  下载ORB-SLAM2源码

#下载ORB-SLAM2
git clone https://github.com/electech6/ORB_SLAM2_detailed_comments.git
  • 在ORB-SLAM2文件夹中新建文件夹 3rdparty 存放第三方库

# 在3rdparty目录下载Pangolin(v0.6版本)
cd ORB_SLAM2/3rdparty
git clone https://github.com/stevenlovegrove/Pangolin.git
# 下载eigen
wget https://gitlab.com/libeigen/eigen/-/archive/3.3.8/eigen-3.3.8.zip
# 下载OpenCV3.4.15
wget https://codeload.github.com/opencv/opencv/zip/3.4.15 -O opencv.zip

        OpenCV编译会报ippicv错误,前往链接下载ippicv_2020_lnx_intel64_20191018_general.tgz文件,将其放入3rdparty文件夹,参考文章进行修改,重新压缩文件。

# 打开3rdparty/opencv/opencv-3.4.15/3rdparty/ippicv/ippicv.cmake文件
# 将42行的
     "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
# 改为手动下载的ippicv文件的本地路径(也就是将网络下载的模式改为本地文件下载的模式):
    "file:/home/wu/ORB_SLAM2_Docker/3rdparty/ippicv_2020_lnx_intel64_20191018_general.tgz" #(仅供参考,根据自己的路径填写)
  • ORB_SLAM2下创建Dockerfile文件

# 镜像基于 Ubuntu 20.04 操作系统,同时包含了 CUDA 和 OpenGL 的开发环境
FROM nvidia/cudagl:11.2.1-devel-ubuntu20.04

# 设置系统将以非交互模式运行 
ARG DEBIAN_FRONTEND=noninteractive
# 设置时区
ENV TZ=Asia/Shanghai

RUN apt-get update 
RUN apt-get install -y cmake git libgtk2.0-dev \
    libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy \
    libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev wget gdb vim zip \
    libglu1-mesa-dev freeglut3-dev mesa-common-dev libgl1-mesa-dev libglew-dev

# Pangolin
COPY 3rdparty/Pangolin-0.6 /tmp/Pangolin
RUN cd /tmp/Pangolin && mkdir build && cd build && cmake .. \
	&& make -j$(nproc) && make install \
	&& cd / && rm -rf /tmp/Pangolin

# Eigen
COPY 3rdparty/eigen-3.3.8.zip /opt/eigen-3.3.8.zip
RUN cd /opt && unzip eigen-3.3.8.zip  && cd eigen-3.3.8 && mkdir build && cd build \
&& cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE .. \
&& make install

# OpenCV
ENV OPENCV 3.4.15
COPY 3rdparty/opencv.zip /opt/opencv.zip
RUN cd /opt && unzip opencv.zip \
&& cd opencv-$OPENCV && mkdir build && cd build \
&& cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_CUDA=OFF -D WITH_OPENGL=OFF .. \
&& make -j$(nproc) && make install \
&& rm -rf /opt/* && ldconfig
  • 在ORB_SLAM2下打开终端,编译镜像

sudo docker build -t orbslam2 . 

        编译完成

run apt-get add --update --no-cache make git gcc libc-dev: 1.416 e: command,docker,容器

  • 利用编译好的镜像创建容器并运行 (ORB-SLAM2文件夹终端下)

    docker run --gpus all -it --rm\
        -v /tmp/.X11-unix:/tmp/.X11-unix:rw \
        -e DISPLAY=$DISPLAY \
        -v ${PWD}:${PWD} \
        -v ${HOME}/Dataset:${HOME}/Dataset \
        -w ${PWD} \
        --name orbslam2 \
        orbslam2
    
    1. --gpus all:使用 NVIDIA GPU 支持。这表明容器将访问所有可用的 GPU。

    2. -it:以交互式模式运行容器。

    3. --rm:当容器停止时自动删除容器实例。

    4. -v /tmp/.X11-unix:/tmp/.X11-unix:rw:将 X11 UNIX 套接字映射到容器内,允许 GUI 应用程序显示到主机的 X11 服务器。

    5. -e DISPLAY=$DISPLAY:设置 DISPLAY 环境变量,使容器内的应用程序能够连接到主机的 X11 服务器。

    6. -v ${PWD}:${PWD}:将当前工作目录映射到容器内相同的路径。

    7. -v ${HOME}/Dataset:${HOME}/Dataset:将主机上的数据集目录映射到容器内相同的路径。

    8. -w ${PWD}:设置容器的工作目录为当前工作目录。

    9. --name orbslam2:为容器指定名称为 "orbslam2"。

    10. orbslam2gl:指定要运行的镜像名称。

               注意,${HOME}/Dataset 为数据集文件,要换成自己电脑上的。

         进入运行的容器

run apt-get add --update --no-cache make git gcc libc-dev: 1.416 e: command,docker,容器

  •  在容器中对ORB-SLAM2源码进行编译

chmod +x build.sh
./build.sh

        编译时会报错,参考 orbslam2编译错误 - Ubuntu 20.04 ros noetic 进行修改,再次编译,成功!

  • 使用Kitti数据集测试

./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI00-02.yaml ../Dataset/Kitta/data_odometry_gray/dataset/sequences/00

        run apt-get add --update --no-cache make git gcc libc-dev: 1.416 e: command,docker,容器

run apt-get add --update --no-cache make git gcc libc-dev: 1.416 e: command,docker,容器

参考

        ORB-SLAM2 docker file编译

        使用Docker安装ORB_SLAM2

         [[gpu]]问题记录解决

关于Docker文件

        docker存放镜像路径(docker镜像默认存放位置) 

        docker的overlay2

      【容器文件系统】

        docker 的/var/lib/docker/overlay2文件干啥的 文章来源地址https://www.toymoban.com/news/detail-829530.html

到了这里,关于Ubuntu20.04 + Docker + ORB-SLAM2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 工程(十)——github代码ubuntu20.04在ROS环境运行单目和RGBD相机ORB-SLAM3稠密

    博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论交流一起学习。 加稠密建图:git@github.com:huashu996/ORB_SLAM3_Dense_YOLO.git 纯净版:git@github.com:huashu996/ORB_SLAM3.git orb-slam3的整个环境配置还是比较麻烦的,先将一些坑写在前面,供大家参考和避开这些坑。 orb-slam3的配置要求

    2024年01月25日
    浏览(34)
  • Ubuntu20.04配置YOLOV5算法相关环境,并运行融合YOLOV5的ORB-SLAM2开源代码(亲测有效)

              这篇博客介绍的是如何在Ubuntu系统下配置YOLOV5算法环境。并且运行一个融合YOLOV5的ORB-SLAM2开源代码。         安装的软件主要是anaconda,然后anaconda可以帮我们安装python、pytorch这些东西。我的ubuntu版本:ubuntu20.04.5LTS。 安装的anaconda类型: Anaconda3-2022.05 安装的p

    2024年02月02日
    浏览(37)
  • 【ORB_SLAM】Ubuntu20.04 配置ORB_SLAM3

    本文主要记录基于Ubuntu20.04环境下,对普通的ORB_SLAM3和稠密版本的ORB_SLAM3进行环境的配置。 这里采用鱼香ros的一键安装,感谢小鱼的一键安装。 Pangolin:链接: https://pan.baidu.com/s/1FXYLsEK1W3xmX0m_Vqylag 提取码: jgz2 (基于小六的注释后的ORB_SLAM3代码) https://github.com/electech6/ORB_SLAM3_d

    2024年02月15日
    浏览(43)
  • ORB_SLAM2配置——基于Ubuntu20.04+ROS+gazebo仿真

    一、引言 ORB-SLAM2,它是基于单目、双目或RGB-D相机的一个完整的SLAM系统,其中包括地图重用、回环检测和重定位功能。这个系统可以适用于多种环境,无论是室内小型手持设备,还是工厂环境中飞行的无人机和城市中行驶的车辆,其都可以在标准CPU上实时运行。该系统的后端

    2023年04月13日
    浏览(39)
  • 记录:ubuntu20.04+ORB_SLAM2_with_pointcloud_map+ROS noetic

    由于相机实时在线运行需要ROS,但Ubuntu22.04只支持ROS2,于是重装Ubuntu20.04。 上一篇文章跑通的是官方版本的ORB_SLAM2,不支持点云显示。高翔修改版本支持RGB-D相机的点云显示功能。 高翔修改版本ORB_SLAM2:https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map 环境:ubunntu20.04、opencv3.4.

    2024年02月11日
    浏览(38)
  • ORB-SLAM2详细安装教程(ubuntu18.04)

    paper: https://arxiv.org/pdf/1610.06475.pdf githup: :https://github.com/raulmur/ORB_SLAM2 提示:ORB-SLAM2源码作者推荐在Ubuntu 12.04, 14.04 和16.04上安装运行。 最近在ubuntu18.04上配置ORB-SLAM2运行环境时踩了很多坑,在这期间查阅了很多资料和博客,于是想对安装过程进行总结,方便自己反复查阅以及分享经

    2024年02月02日
    浏览(54)
  • ubuntu18.04配置ORB-SLAM3并跑EuRoC数据集(单目)

    1.1  C++11 or C++0x Compiler 安装 新建一个终端(新建终端的快捷键是Ctrl+Alt+T) 输入以下代码 sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install build-essential sudo apt-get install cmake 1.2  Pangolin 安装 Pangolin的官方教程地址:https://github.com/stevenlovegrove/Pangolin 安装Pangolin 1.2.1下载

    2023年04月20日
    浏览(44)
  • Ubuntu18.04版本下配置ORB-SLAM3和数据集测试方法

    使用:VMware Workstation Pro 虚拟机系统版本是:Ubuntu 18.04.06 虚拟机内存:8g(若为4g大小,很容易出现后文中ORB-SLAM3编译时会出现的内存问题) 虚拟机存储:50g 若是配置完发现存储空间不足,可以参考这篇博客进行清理: 下载配置技巧:Ubuntu18.04安装vmware-tools解决无法复制粘贴

    2024年02月09日
    浏览(40)
  • Ubuntu18.04:ORB-SLAM3使用数据集构建地图和保存点云地图

    在前一篇文章的Ubuntu18.04版本下配置ORB-SLAM3和数据集测试方法中,Ubuntu18.04的系统下成功配置完成了ORB-SLAM3,在ORB_SLAM3目录下输入命令: 即可在线构建地图,但是即使程序运行完成,也看不见地图文件,它在哪里? 原因:ORB-SLAM3并不会自己保存构建的点云地图文件。 若是想要

    2024年02月09日
    浏览(97)
  • Ubuntu18.04下使用安卓手机Camera和IMU信息运行ORB-SLAM2

    1、下载Android_Camera-IMU,将其中的Camera-Imu.apk文件发送至手机端进行安装。 下载命令: git clone https://github.com/hitcm/Android_Camera-IMU.git  发送至手机的文件在手机端安装以后的软件  在手机端安装好以后的软件如下:  2、安装功能依赖包:sudo apt-get install ros-melodic-imu-tools  # 修改

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包