Docker简介
Docker是以Docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员设计的,用于构建,发布和运行分布式应用的平台。它是一个跨平台,可移植并且简单易用的容器解决方案。
Docker将应用程序与程序依赖都打包到镜像中,保持运行环境的一致性,真正做到“一次构建,随处运行”。
普罗米修斯的docker仿真镜像已经打包好了运行普罗米修斯仿真时所需的整个环境,将仿真镜像拉取下来即可立即开启仿真,通过VNC进行图形界面操作。
此处感谢wandgibaut的vnc_ros镜像,它是这里普罗米修斯docker仿真镜像的基础镜像。

普罗米修斯docker仿真镜像实际操作
Linux平台是Docker原生支持平台,在Linux上使用Docker可以得到最佳的用户体验,所以这里介绍在ubuntu下使用普罗米修斯docker仿真镜像的操作。
ubuntu本地环境配置
安装docker
sudo apt-get update
sudo apt-get install docker
sudo apt install docker.io
下载VNC
wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.19.107-Linux-x64
chmod 777 VNC-Viewer-6.19.107-Linux-x64
打开VNC
./VNC-Viewer-6.19.107-Linux-x64
下载QGC
wget https://s3-us-west-2.amazonaws.com/qgroundcontrol/latest/QGroundControl.AppImage
chmod 777 QGroundControl.AppImage
打开QGC
./QGroundControl.AppImage
拉取普罗米修斯docker镜像(此步骤需要一些时间,耐心等待即可)
sudo docker pull shixiaohan/prometheus:publish-2
(备注:shixiaohan/prometheus:publish-2 镜像内所用Prometheus代码为2021年5月份时的Prometheus代码)
创建容器
镜像拉取完后,运行下面命令
sudo docker run -p 5901:5901 shixiaohan/prometheus:publish-2

VNC连接
等容器跑起来(等待十秒钟左右)即终端显示如上图所示后,在VNC地址栏输入172.17.0.2:5901并敲回车

然后点击continue

然后输入密码 headless 并点击OK

进入后界面如下:

开始仿真
在容器内打开gnome终端(默认终端是gnome终端),按照prometheus wiki上启动相应仿真命令即可开始仿真,和在普通ubuntu上进行仿真操作一样。
下面是指点飞行仿真截图,直接在终端运行 roslaunch prometheus_gazebo sitl_control.launch 即可。



圆框穿越:

二维码降落:

astar避障:

仿真启动后,本地电脑ubuntu上已经打开的QGC地面站会自动连上
停止容器
不想使用此容器后,在本机ubuntu上打开一个终端,用 sudo docker ps 命令查看此容器ID,(若容器停止后想查看容器ID用 sudo docker ps -a 命令查看)
下图中的红框内即是容器ID

然后用 sudo docker stop 容器ID 命令可停止此容器。
再次启动此容器时注意
后面再使用启动此容器直接使用命令 sudo docker start 容器ID ,然后VNC连接即可,不需要再运行 sudo docker run -p 5901:5901 shixiaohan/prometheus:publish-2 命令,此命令会基于 shixiaohan/prometheus:publish-2 镜像再创建一个全新的容器,而不是启动之前已经创建的容器。
删除容器
在已经把对应容器停止的情况下,可以用命令 docker rm 容器ID 删除此容器,注意如果之前没有对此容器生成镜像备份,删除此容器后原本自己在此容器内所作的修改便无法再找回来。删除容器后,想再次创建一个全新的容器,可以用命令 sudo docker run -p 5901:5901 shixiaohan/prometheus:publish-2 即可基于 shixiaohan/prometheus:publish-2 镜像创建一个新的容器然后开始仿真。
删除普罗米修斯docker仿真镜像
可以使用命令 docker rmi -f shixiaohan/prometheus:publish-2 强制删除 shixiaohan/prometheus:publish-2 这个镜像,若再想使用此镜像用命令 sudo docker pull shixiaohan/prometheus:publish-2 拉取到本地ubuntu上即可。
- End -
技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。
阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!
网友评论