从包安装
  
  如果您无法使用Docker的存储库来安装Docker CE,则可以下载.deb适用于您的发行版的 文件并手动安装。每次要升级Docker CE时都需要下载新文件。
  
  安装Docker CE,将下面的路径更改为您下载Docker软件包的路径。
  
  sudo dpkg -i /path/to/package.deb
  
  Docker守护程序自动启动。
  
  通过运行hello-world 映像验证是否正确安装了Docker CE 。
  
  sudo docker run hello-world
  
  此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条信息性消息并退出。
  
  Docker CE已安装并正在运行。该docker组已创建,但未向其添加任何用户。您需要使用它sudo来运行Docker命令。继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令和其他可选配置步骤。
  
  docker下载ros镜像:
  
  虚拟机Ubuntu16.04
  
  sudo docker pull ros:kinetic-perception-xenial
  
  xenial: Ubuntu 16.04 VNC图形桌面不含ros
  
  sudo docker pull dorowu/ubuntu-desktop-lxde-vnc:xenial
  
  xenial: Ubuntu 16.04 VNC图形桌面已安装ros
  
  sudo docker push jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
  
  树莓派3B+ ros测试
  
  sudo docker pull ros:kinetic-perception-xenial
  
  运行镜像:
  
  sudo docker run -it --privileged --device /dev/vchiq --device /dev/video0 --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" ros:kinetic-perception-xenial
  
  运行docker容器并使用端口访问 6080
  
  sudo docker run -it --rm -p 6080:80 dorowu/ubuntu-desktop-lxde-vnc:xenial
  
  浏览http://127.0.0.1:6080/
  
  VNC查看器
  
  将VNC服务端口5900转发给主机
  
  sudo docker run -p 9080:80 -p 5900:5900 jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
  
  现在,打开vnc查看器并连接到端口5900.如果您想通过密码保护vnc服务,请设置环境变量VNC_PASSWORD,例如
  
  sudo docker run -p 9080:80 -p 5900:5900 -e VNC_PASSWORD=jyh654321 jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
  
  需要用到USB硬件设备,如Kinect,摄像头
  
  sudo docker run --privileged --device /dev/vchi --device /dev/video0 -p 7080:80 -p 5901:5900 jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
  
  注意,在虚拟机容器桌面复制命令需要,先复制到粘贴板,再右击粘贴,才能把命令发送到容器内;
  
  在虚拟机 容器1338e4261c4d   dorowu/ubuntu-desktop-lxde-vnc:xenial里安装ROS;
  
  ros环境搭建-ubuntu16.04系统安装ROS Kinetic
  
  https://blog.csdn.net/jacka654321/article/details/83015542
  
  测试:
  
  roscore
  
  后台运行:
  
  启动roscore后,在同一个终端窗口,输入:
  
  nohup roscore &
  
  nohup rosrun turtlesim turtlesim_node &
  
  你还看到一只萌萌的海龟出现在屏幕上,那么该怎么样来操纵这只小海龟呢?不需要重新打开新的一个终端,直接输入即可:
  
  rosrun turtlesim turtle_teleop_key
  
   启动 rviz
  
  nohup roscore &
  
  rviz
  
  安装ROS-Academy-for-Beginners教学包
  
  然后在创建一个名为tutorial_ws的工作空间,在它的的src路径下克隆ROS-Academy-for-Beginners软件包
  
  mkdir -p tutorial_ws/src
  
  cd tutorial_ws/src
  
  git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
  
  安装依赖
  
  并且安装ROS-Academy-for-Beginners所需要的依赖
  
  cd ~/tutorial_ws
  
  rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
  
  注意:以上命令非常重要,缺少依赖将导致软件包无法正常编译和运行。
  
  在开始编译之前,需要确保Gazebo在7.0版本以上
  
  gazebo -v
  
  如果你的Gazebo版本低于7.0,则需要进行升级
  
  sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
  
  wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
  
  sudo apt-get update
  
  sudo apt-get install gazebo7
  
  编译
  
  接着回到catkin_ws下编译
  
  cd ~/tutorial_ws
  
  catkin_make
  
  source ~/tutorial_ws/devel/setup.bash #刷新环境 方法一
  
  rospack profile #刷新环境 方法二
  
  注意:source命令,编译完成后必须刷新一下工作空间的环境,否则可能找不到工作空间。许多时候我们为了打开终端就能够运行工作空间中编译好的ROS程序,我们习惯把source ~/tutorial_ws/devel/setup.bash命令追加到~/.bashrc文件中(rosacademy_ws替换为你的工作空间名称),这样每次打开终端,系统就会刷新工作空间环境。你可以通过echo "source ~/tutorial_ws/devel/setup.bash" >> ~/.bashrc命令来追加。
  
  运行仿真程序
  
  编译完成后就可以运行本教学配套的仿真了,输入
  
  source ~/tutorial_ws/devel/setup.bash
  
  rospack profile
  
  roslaunch robot_sim_demo robot_spawn.launch
  
  打开一个新的终端,输入以下命令,用键盘控制机器人移动
  
  source ~/tutorial_ws/devel/setup.bash
  
  rospack profile
  
  rosrun robot_sim_demo robot_keyboard_teleop.py
  
  聚焦控制程序窗口,按下i、j、l等按键,这样你就可以通过键盘来控制机器人的移动了。
  
  过程图如下,记得运行前要刷新环境,或者用上面的方法把刷新命令添加到脚本;不然出报错robot_sim_demo not found;
  
  刚开启时,云会动;
  
  启动键盘控制后,
  
  转向控制键:
  
  yui
  
  jkl
  
  m,.
  
  速度控制键:
  
  qwe
  
  zxc
  
  局域网访问,本例nat方式,只能在虚拟机内打开,设置 桥接,可在宿主浏览器(局域网内)访问;
  
  虚拟机设置frp,可实现外网访问;
  
  https://blog.csdn.net/jacka654321/article/details/80879018
  
  在虚拟机宿主,把容器打包成镜像:
  
  sudo docker commit -m="xenial VNC ROS" -a="jacka654321" 1338e4261c4d jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
  
  上传至你的dockerhub:
  
  sudo docker login
  
  发布镜像 :
  
  将您的标记镜像上传到存储库: 
  
  docker push username/repository:tag
  
  sudo docker push jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
  
  感兴趣可以下载体验一下:
  
  sudo docker pull jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
  
  虚拟机Ubuntu系统里下载,
  
  sudo docker pull osrf/gazebo:gzweb8
  
  运行
  
  sudo docker run -it --privileged --device /dev/vchiq --device /dev/video0 --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" -v="/tmp/.gazebo/:/root/.gazebo/" --name=gazebo8 osrf/gazebo:gzweb8
  
  虚拟机Ubuntu系统部署示例
  
  在这个简短的例子中,我们将启动一个运行gazebo服务器的新容器,使用本地gazebo客户端连接到它,然后产生一个双倒立摆并记录模拟以供以后回放。
  
  首先启动一个带安装卷的gazebo服务器进行日志记录并命名容器gazebo:
  
  docker run -d -v="/tmp/.gazebo/:/root/.gazebo/" --name=gazebo osrf/gazebo:gzweb8
  
  现在使用相同的入口点在容器中打开一个新的bash会话来配置环境。然后下载double_pendulum模型并将其加载到模拟中。
  
  sudo docker exec -it 75f2ecd7afa4 bash
  
  进入容器后需要更换源:
  
  备份原来的源
  
  sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
  
  将以前的源备份一下,以防以后可以用的。
  
  更换源
  
  sudo gedit /etc/apt/sources.list
  
  将下面所有内容复制,粘贴并覆盖sources.list文件中的所有内容;
  
  阿里云
  
  # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
  
  deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted #Added by software-properties
  
  # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
  
  # newer versions of the distribution.
  
  deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
  
  deb-src http://mirrors.aliyun.com/ubuntu/ xenial multiverse universe #Added by software-properties
  
  # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
  
  ## Major bug fix updates produced after the final release of the
  
  ## distribution.
  
  deb http://mirrors.aliyun.com/ www.ysyl157.com ubuntu/ xenial-updates main restricted
  
  deb-src http://www.dasheng178.com/ mirrors.aliyun.com/ubuntu/ xenial-updates multiverse restricted universe main #Added by software-properties
  
  # deb-src http://www.hjylp178.com us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
  
  ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
  
  ## team, and may not be under a free licence. Please satisfy yourself as to
  
  ## your rights to use the software. Also, please note that software in
  
  ## universe WILL NOT receive any review or updates from the Ubuntu security
  
  ## team.
  
  deb http://mirrors.aliyun.com/ubuntu/ xenial universe
  
  # deb-src http://www.furggw.com us.archive.ubuntu.com/ubuntu/ xenial universe
  
  deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
  
  # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe
  
  ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
  
  ## team, and may not be under a free licence. Please satisfy yourself as to
  
  ## your rights to use the software. Also, please note that software in
  
  ## multiverse WILL NOT receive any review or updates from the Ubuntu
  
  ## security team.
  
  deb http://www.meiwanyule.cn mirrors.aliyun.com/ubuntu/ xenial multiverse
  
  # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial multiverse
  
  deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
  
  # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
  
  ## N.B. software from this repository may not have been tested as
  
  ## extensively as that contained in the main release, although it includes
  
  ## newer versions of some applications which may provide useful features.
  
  ## Also, please note that software in backports WILL NOT receive any review
  
  ## or updates from the Ubuntu security team.
  
  deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
  
  deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
  
  # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
  
  ## Uncomment the following two lines to add software from Canonical's
  
  ## 'partner' repository.
  
  ## This software is not part of Ubuntu, but is offered by Canonical and the
  
  ## respective vendors as a service to Ubuntu users.
  
  # deb http://archive.canonical.com/ubuntu xenial partner
  
  # deb-src http://archive.canonical.com/ubuntu xenial partner
  
  deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
  
  deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse restricted universe main #Added by software-properties
  
  # deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
  
  deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
  
  # deb-src http://security.ubuntu.com/ubuntu xenial-security universe
  
  deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
  
  # deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse
  
  清华源
  
  deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
  
  # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
  
  deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
  
  # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
  
  deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
  
  # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
  
  deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
  
  # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
  
  如果容器内没有gedit nano vi等文本编辑工具,需要从宿主复制过去;
  
  sudo docker cp /etc/apt/sources.list 75f2ecd7afa4:/etc/apt/sources.list
  
  sudo docker cp /etc/apt/sources.list 1338e4261c4d:/etc/apt/sources.list
  
   让更新源生效
  
  sudo apt-get update
  
  配置环境
  
  apt-get update && apt-get install -y curl
  
  curl -o double_pendulum.sdf http://models.gazebosim.org/double_pendulum_with_base/model-1_4.sdf
  
  gz model --model-name double_pendulum --spawn-file double_pendulum.sdf
  
  要开始记录正在运行的模拟,只需使用gz log即可。
  
  gz log --record 1
  
  几秒钟后,通过禁用相同的标志继续并停止录制。
  
  gz log --record 0
  
  为了反省我们记录的记录,我们可以导航到日志目录并用于gz log打开和检查钟摆的运动和关节状态。这将允许您逐步摆过摆链的姿势。
  
  cd ~/.gazebo/log/*/gzserver/
  
  gz log --step --hz 10 --filter *.pose/*.pose --file state.log
  
  如果您在本地安装了等效的Gazebo版本,则可以使用gzclient GUI连接到容器内的gzserver,方法是将主URI的地址设置为容器公共地址。
  
  export GAZEBO_MASTER_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' gazebo)
  
  export GAZEBO_MASTER_URI=$GAZEBO_MASTER_IP:11345
  
  gzclient --verbose
  
  在使用gzclient渲染的OpenGL视图中,您应该看到先前仍在振荡的移动双摆。从这里,您可以使用图形界面控制或监控模拟状态,添加更多摆锤,重置世界,生成更多日志等。要退出模拟,请关闭gzclient窗口并停止容器。
  
  docker stop gazebo
  
  docker rm gazebo
  
  即使我们的旧凉亭容器已被移除,我们仍然可以看到我们的记录日志已保留在主机卷目录中。
  
  cd /tmp/.gazebo/log/
  
  ls
  
  同样,如果您在主机系统上安装了等效的Gazebo版本,则可以使用记录的日志文件使用Gazebo回放模拟。
  
  export GAZEBO_MASTER_IP=127.0.0.1
  
  export GAZEBO_MASTER_URI=$GAZEBO_MASTER_IP:11345
  
  cd /tmp/.gazebo/log/*/gzserver/
  
  gazebo --verbose --play state.log
  
  使用教程:
  
  https://hub.docker.com/_/gazebo/
  
  参考链接:
  
  通过VNC访问docker容器的图形界面
  
  https://blog.csdn.net/spylyt/article/details/79944772
  
  https://hub.docker.com/r/dorowu/ubuntu-desktop-lxde-vnc/
  
  用于ARM和Debian的ROS Docker镜像
  
  https://blog.csdn.net/ZhangRelay/article/details/77504626
  
  https://github.com/osrf/docker_images
  
  https://hub.docker.com/r/osrf/gazebo/
  
  Ubuntu与ROS的Docker桌面系统与ROS在线练习课程(在线Linux虚拟机)
  
  https://blog.csdn.net/ZhangRelay/article/details/73522385
  
  https://www.shiyanlou.com/courses/63
  
  ROS_安装一个第三方仿真软件包——机器人模拟世界

Ubuntu安装 Docker CE,VNC访问docker图形界面并安装ROS的更多相关文章

  1. docker swarm 集群及可视化界面的安装及配置

    docker swarm 集群及可视化界面的安装及配置 2016-12-14 16:08:46 标签:swarm consul registrator 原创作品,允许转载,转载时请务必以超链接形式标明 ...

  2. 阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装

    阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装1. 背景在我们购买阿里云ECS服务器之后,默认的系统环境是很干净的,我购买的是ubuntu16.04,远程登录进入之后 ...

  3. [vt][xen]xenserver初始安装增加第二块硬盘&xen图形界面安装vm&设置xen里vm开机启动

    为XenServer挂载/增加第二块硬盘的方法 注意: xen6.x和xen7.x vm导出导入是不兼容的.这点有点蛋疼 新买机器后安装xenserver(一般都买刻录机+dvd来刻录xen官网的io ...

  4. 阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装

    阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...

  5. VMware安装CentOS时,无法以图形界面安装解决办法

    有的同学问: 用虚拟机软件(vmware.VirtualBox)安装CentOS系统时, 安装过程中没有中文,也没有出现图形界面,都是以命令行方式去安装, 有时候又会出现图形界面,不知道哪里配置的问题 ...

  6. Ubuntu 14.04 安装nVidia驱动后不能进入图形界面的恢复过程

    想要解决Ubuntu14.04的风扇不停的转的问题.由于ubuntu本身不支持双显卡切换,导致集显独显都处于开启状态,发热量和耗电量居高不下. 1. 安装驱动过程 参考[1]中的步骤,做了如下的操作. ...

  7. 关于web2py外网访问,图形界面不显示等问题的解决办法

    首先系统版本是ubuntu 15.04,系统默认安装了两个版本的python, sudo python web2py.py 默认会调用python2.7版本来执行 会提示 pydo@planpls:/ ...

  8. 在ubuntu上使用wxWidgets成功开发一个图形界面程序

    编译wxWidgets 下载最新版的源码,wxWidgets-3.0.2.wxWidgets在liunx是通过wxGTK实现的.wxGTK和wxWidgets的源码打包在一起.wxGTK依赖GTK+, ...

  9. 最小化安装CentOS 7后,图形界面的安装(GNOME、KDE等)

    安装图形化界面: 1.首先安装X(X Window System),命令为 yum groupinstall "X Window System" 2.检查一下我们已经安装的软件以及 ...

随机推荐

  1. IIS 服务器支持下载apk 文件

    前不久,在本地IIS文件下部署一个网站,可以下载apk文件,就是测试apk应用升级,发现访问不能下载,原因是IIS没有配置对这种apk文件的处理程序. 解决方案如下所示: 1.打开IIS, 找到MIM ...

  2. uvm_factory——我们的工厂(三)

    现在让我们回过头来想想factory 是用来干什么,它做了什么? fantory就是生产uvm_object 和 uvm_component.用factory 生产和用SV直接new有什么区别了? f ...

  3. EJB配置jboss数据源

    1.数据源的模板在\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\docs\examples\jca\下2.编辑数据源文件,比如mysql-ds.xml,命名规则是名称-ds. ...

  4. O2O的十八个细分市场,运营模式如何?

    社区O2O,这个行业也被媒体热炒有三年多时间了,有没有做的还算不错的案例呢?万科.龙湖.恒大.保利.易居中国.彩生活.拉卡拉.顺丰?哪个可以称得上是成功案例?战略变来变去,方向换来换去,基本上都是雷声 ...

  5. spark 之主成分分析

    C4∗2

  6. block总结我的

    1) struct Block_descriptor { unsigned long int reserved; unsigned long int size; void (*copy)(void * ...

  7. Vue 打印预览功能

    需求有几种情况: 1.直接在HTML写页面,将页面上的东西用A4纸打印出来: 2.后台传回PDF文件,前台浏览器预览并打印: 3.后台做好要打印的,传回图片,如base64编码,前台浏览器 预览并打印 ...

  8. Linux之Nginx服务 nfs文件存储 负载均衡

    一.搭建Nginx服务 Nginx 是俄罗斯人编写的十分轻量级的HTTP 服务器,Nginx,它的发音为"engine X",是一个高性能的HTTP和反向代理服务器,同时也是一个I ...

  9. Delphi 中内存映射对于大文件的使用

    这篇文章主要介绍了Delphi 中内存映射对于大文件的使用的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下 Delphi 中内存映射对于大文件的使用 平时很少使用大文件的内存映射,碰巧遇到了 ...

  10. (33)zabbix proxy分布式监控配置

    概述 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...