DockerFile文件部署Ubuntu18.04、Ros melodic、SLambook2的编译详细攻略

这篇具有很好参考价值的文章主要介绍了DockerFile文件部署Ubuntu18.04、Ros melodic、SLambook2的编译详细攻略。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

        最近,在Ubuntu系统上跑各种项目,经常出现环境配置干扰问题,导致项目常年无法运行。因此,查询各种方法,最终采用使用Docker来解决此问题,并成功运行Rviz和Gazebo!!!

DockerFile文件部署Ubuntu18.04、Ros melodic、SLambook2的编译详细攻略,docker,go,ubuntu

        以下,为本人在配置、编写DockerFile文档时候遇到的一些问题。

二、Docker的学习

        Docker的详细学习,可以参考B战视频:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili, 因此,在本文中就不再进行基础的基本操作教学。

        需要基本掌握Docker基本操作、了解Docker network的运行机制

三、DockerFile文件

        本文的Dockerfile文件是参考本篇文章进行修改:Docker自动安装、启动、接入、结束ros-melodic-desktop-full的脚本_dbus[83]: the last reference on a connection was d-CSDN博客

3.1基本镜像

        本文的基本镜像选择是带有nvidia驱动支持的ubunut18.04的镜像文件。   

        前提需要:需要使用科学上网工具!!!!

         在本文件中,尝试设置了Docker的内部代理文件,方便Dockerfile文件在创建镜像的时候能够访问到外网,也可以不加。后续建Docker镜像的时候,使用命令--netowrk =host,直接使用宿主机的网络,也可。

 #这里因为gazebo需要使用nvidia驱动支持

FROM nvidia/cudagl:10.2-base-ubuntu18.04

# ENV HTTP_PROXY =http://xxxx:xxx

# ENV HTTPS_PROXY =http://xxxx:xxxx

# ENV NO_PROXY =xxxxxx

#基本信息描述

LABEL Description="xxxx $RES_NAME:$TAG" Author="yyy" Version="x.0"

        这里列出几个常用的镜像网站,用于Ros安装换源操作。

# Official sources.list

# ARG sourcelist="http://packages.ros.org/ros/ubuntu"

# Mirrors sources.list

# ARG sourcelist="http://mirrors.ustc.edu.cn/ros/ubuntu/"

# ARG sourcelist="http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/"

# ARG sourcelist="http://mirrors.sjtug.sjtu.edu.cn/ros/ubuntu/"

        这里设置Rviz的基本环境设置:

#RVIZ的显示

ENV NVIDIA_VISIBLE_DEVICES \

${NVIDIA_VISIBLE_DEVICES:-all}

ENV NVIDIA_DRIVER_CAPABILITIES \

${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics

  3.2 基础环境

#基础环境

ENV MYPATH /home

ENV XDG_RUNTIME_DIR="/tmp/runtime-root"

ARG DEBIAN_FRONTEND=noninteractive

ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=YES

#安装更新 、软件

RUN apt-get update

#测试能够走github

# 安装 curl 工具

RUN apt-get update && apt-get install -y curl

RUN curl -I https://github.com

        Ros-melodic的安装需要设置相应的时区,为了避免Dockfile文件在创建镜像时候的终端交互操作,因此提前设置时区:

        ENV TZ=Asia/Shanghai

#设置时区为上海

ENV TZ=Asia/Shanghai

#安装ros-melodic-full

RUN apt-get update \

#安装基本依赖

&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \

cmake gcc g++ git wget gnupg2 curl vim xarclock unzip tzdata gedit inetutils-ping \

&& echo $TZ > /etc/timezone \

&& ln -fs /usr/share/zoneinfo/$TZ /etc/localtime \

&& dpkg-reconfigure --frontend noninteractive tzdata \

#设置安装清华源以及设置密钥

&& sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main " > /etc/apt/sources.list.d/ros-latest.list'\

# && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654\

# && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654\

&& curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | apt-key add - \

&& apt-get update \

#安装ros-melodic

&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ros-melodic-desktop-full \

&& echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc \

&& bash -c '. ~/.bashrc' \

&& apt-get install -y --no-install-recommends python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential \

 3.3Rosdep init

# 设置环境变量 LANG 为 UTF-8

ENV LANG C.UTF-8

#安装rosdepc

&& apt-get -y install python3-pip && pip3 install -U rosdepc && rosdepc init && rosdepc update\

&& apt-get autoremove -y \

&& rm -rf /var/lib/apt/lists/* \

&& mkdir \${XDG_RUNTIME_DIR} && chmod 700 \${XDG_RUNTIME_DIR}

        这里安装rosdepc的时候可能会报编码的错误,因此需要设置一下基本环境:

        ENV LANG C.UTF-8

        这里需要说一下对于Rosdep的初始化,国内基本都会出现无法访问rosdep的国外网站,这里采用小鱼的Rosdepc进行替代,亲自测有效!!!需要注意这里的pip3不同电脑执行不一样,有的电脑执行pip即可,因此命令更替为:

&& apt-get -y install python-pip && pip install -U rosdepc && rosdepc init && rosdepc update

  3.4 SLambook2编译

        Slambook2的编译,基本按照此步骤就可以编译完成:

Ubuntu20.04 SLAM第三方库安装_ubuntu20.04 g2o库安装-CSDN博客        但是Slambook2一般放在github上,但是Dockerfile文件访问github一般很慢,因此本文替换为slambook2为gitee上的一个源码:

         仓库地址:https://gitee.com/goofwoof/slambook2.git

        在编译Pangolin、gstam、DBoW3也需要安装各种依赖,在安装依赖之前一定先使用命令行!!!!!否则容易报错找不到软件包

apt-get update   #更新

#安装SLAMbook2并编译

ENV slam_base /home/slambook2/3rdparty

RUN cd $MYPATH && git clone https://gitee.com/goofwoof/slambook2.git\

&& cd slambook2/3rdparty\

&& git submodule init \

&& git submodule update\

#安装eigen

&& apt-get -y install libeigen3-dev\

#安装Sopuhs

&& cd Sophus \

&& mkdir build && cd build && cmake .. && make && make install \

#安装Pangolin

#安装Pangolin依赖

&& apt-get update && apt-get -y install libglew-dev\

&& cd $slam_base/Pangolin && mkdir build && cd build && cmake .. && make -j4 && make install \

        Gstam在官方发布的SLambook2的3rdparty中并没有包括,因此需要自行从github中clone,但是Dockfile文件访问速度问题,这里笔者采用使用gitee上的一个仓库替代:

        仓库地址:https://gitee.com/juanmv/gtsam.git

#安装gtsam

&& cd $slam_base && git clone https://gitee.com/juanmv/gtsam.git && cd gtsam && mkdir build && cd build && cmake .. && make -j4 && make install \

#安装googletest

&& cd $slam_base/googletest && mkdir build && cd build && cmake .. && make -j4&& make install \

#安装g2o

&& cd $slam_base/g2o && mkdir build && cd build && cmake .. && make -j4 && make install \

#安装DBoW3

&& cd $slam_base && cd DBoW3 && mkdir build && cd build && cmake .. && make -j4 && make install \

#安装ceres-solver

#安装依赖

&& apt-get update && apt-get -y install doxygen  libgoogle-glog-dev \

&& cd $slam_base/ceres-solver && mkdir build && cd build && cmake .. && make && make install

        这里安装完成之后,自带OpenCv3.2版本,如果后续还想要安装OpencV其它版本,这里强烈建议直接进入容器内部安装完成之后,再使用命令进行打包即可

       docker commit -m "消息“ -a 作者 容器名字 镜像名字:版本

 3.5 端口暴露

              为方便后续在容器外面访问容器内部文档,这里暴露容器端口,方便之后端口的映射。

#暴露端口

EXPOSE 8082

#工作空间

WORKDIR $MYPATH

CMD ["/bin/bash"]

四、总结

        DockerFile文件部署Ubuntu18.04、Ros melodic、SLambook2的编译详细攻略,docker,go,ubuntu

         这个是运行之后结果,运行成功之后即可获得一个image的镜像。

        以上为本人最近在学习过程中针对环境干扰问题结合DockerFile文件进行搭建的基础环境时候,针对个人运到的问题进行的总结。

五、运行

        运行以下命令可以成功运行小乌龟案例。

Xhost +

docker run -it --privileged=true -v /tmp/.X11-unix:/tmp/.X11-unix --net=host -e DISPLAY=$DISPLAY --name=xx ubuntu_base:1.0

DockerFile文件部署Ubuntu18.04、Ros melodic、SLambook2的编译详细攻略,docker,go,ubuntu

        rviz的使用:

DockerFile文件部署Ubuntu18.04、Ros melodic、SLambook2的编译详细攻略,docker,go,ubuntu

Gazebo的使用:

DockerFile文件部署Ubuntu18.04、Ros melodic、SLambook2的编译详细攻略,docker,go,ubuntu

可能有一些地方有问题,还请读者见谅!最后感谢您读完本篇文章!

五、参考链接

尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili

Docker自动安装、启动、接入、结束ros-melodic-desktop-full的脚本_dbus[83]: the last reference on a connection was d-CSDN博客

Ubuntu20.04 SLAM第三方库安装_ubuntu20.04 g2o库安装-CSDN博客文章来源地址https://www.toymoban.com/news/detail-806879.html

到了这里,关于DockerFile文件部署Ubuntu18.04、Ros melodic、SLambook2的编译详细攻略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)

    备注:2023.7.4修改,如果是ros空间,可以在工作空间中使用单独cv_bridge的方式!!!比较简单,是我目前常用的方式。放在文章最后。 由于ROS Melodic自带的是Opencv3.2.0,而我自己下载的是opencv3.4.5,所以需要将cv_bridge的指向改为我自己安装的opencv。 全篇很长,建议看完后操作,

    2024年02月16日
    浏览(38)
  • Ubuntu18.04+ros-melodic Fast-lio2安装与实物运行【速腾16线+imu】

    对应使用方法: 速腾16线激光雷达(RS-Hellos-16P)在windows与ubuntu18.04下的调试与点云数据格式转换(pointclould2-->laserscan)_百川01的博客-CSDN博客使用2D雷达laser+imu实现cartographer实时建图_百川01的博客-CSDN博客 参考链接:使用速腾雷达32线Helios和fast-LIO2算法建图(一)_32线雷达数

    2024年02月16日
    浏览(47)
  • Ubuntu18.04 ROS melodic环境下,通过Gazebo软件仿真SLAM算法的学习(gmapping/karto/cartographer/hector)

    目录 一 环境场景搭建world 1.下载insert插件(该插件下会提供一些建好的场景,也可不下载) 2.环境搭建(自建) 3.保存环境 4.配置修改 5.启动环境 二 机器人模型URDF 1.模型创建的文件书写规范 2.检查文件格式是否正确 3.启动模型 三 机器人在场景中运动 1.机器人放在场景中

    2024年02月04日
    浏览(31)
  • 【EHub_tx1_tx2_A200】Ubuntu18.04 + ROS_ Melodic + 锐驰LakiBeam 1L单线激光 雷达评测

            大家好,我是虎哥,最近这段时间,又手欠入手了锐驰LakiBeam 1L激光雷达,实在是性价比太优秀,话说,最近激光雷达圈确实有点卷。锐驰官网的资料已经很丰富,我这里总结一下自己的简单测试经验,分享给大家。          LakiBeam1L是锐驰智光面向中低速场

    2024年02月03日
    浏览(29)
  • Ubuntu18.04安装ROS

    目录 一、安装ROS 1、ROS简介 2、安装ROS  二、ROS初步使用 1、小海龟  2、控制小海龟走圆形 (1)、创建工作空间  (2)、编译工作空间  (3)、配置环境变量  (4)、画圆程序的编写  (5)、控制小海龟走圆形  三、总结   机器人操作系统(Robot Operating System, ROS)是一个应

    2024年02月14日
    浏览(34)
  • ubuntu18.04安装ROS讲解

    首先,ubuntu18.04对应的ROS版本为melidic。 打开\\\"软件与更新\\\"对话框,把可从互联网下载下的几个框框都打勾。如图: 更换安装源 官方默认安装源不稳定,常出现在安装过程中网络超时等报错,现使用清华的安装源: 或者中科大安装源: 输入代码后,按回车,输入管理员密码即

    2023年04月24日
    浏览(46)
  • ROS的安装【Ubuntu18.04版本】

    ROS是机器人学习所需要用到的平台软件,记录一下装的过程,为下一次重装节省一下时间嘻嘻。 目录 一.设置sources.list 二.设置密匙 三.安装   四.配置环境   五.检测ros是否安装成 【在设置密匙的时候可能会遇见以下问题,没有找到有效的openPGP数据】  【解决方案如下】 

    2024年02月02日
    浏览(90)
  • ROS学习笔记01、安装Ubuntu18.04以及ROS环境

    马上开学,目前学校很多实验室都是人工智能这块,大部分都是和机器人相关,然后软件这块就是和cv、ros相关,就打算开始学习一下。 本章节是虚拟机安装Ubuntu18.04以及安装ROS的环境。 学习教程:【Autolabor初级教程】ROS机器人入门,博客中一些知识点是来源于赵老师的笔记

    2023年04月08日
    浏览(49)
  • Ubuntu18.04搭建AirSim+ROS仿真环境

    AIRSIM在UBuntu 18.04上构建的官网文档 AIRSIM是依赖于UE4引擎实现的,因此在安装AIRSIM之前要安装UE4引擎。 在Ubuntu上安装UE4引擎需要从源文件进行编译,因此我们需要访问UE4的github仓库。但想要访问UE4的github仓库,我们就必须建立github与UE4许可的链接,否则直接访问UE4的github仓库时就

    2023年04月08日
    浏览(79)
  • [ros][ubuntu]ros在ubuntu18.04上工作空间创建和发布一个话题

    构建catkin工作空间  mkdir -p ~/catkin_ws/src    cd ~/catkin_ws/src  catkin_init_workspace  cd ~/catkin_ws/  catkin_make 配置环境变量  echo \\\"source ~/catkin_ws/devel/setup.bash\\\"  ~/.bashrc  source ~/.bashrc 检查环境变量  echo $ROS_PACKAGE_PATH 遇到错误:上面操作不需要用sudo 进行操作,但是由于初学者可能存在

    2024年02月10日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包