[关闭]
@aod321 2018-12-20T03:36:44.000000Z 字数 2492 阅读 429

Windows下配置Docker显示RVIZ指南

Docker


Docker
ZiYin

第一步,安装

Docker是一个依赖Linux环境的软件,所以在Windows上配置Docker本质上都是得先构建一个虚拟的Linux环境官方提供了Docker for windows和Docker toolbox两种方式。本文采用的是toolbox方案

下载地址

国内推荐网盘下载

Docker ToolBox官方下载
Docker ToolBox网盘下载

第二步,初次运行Docker Quickstart Terminal

Docker Quickstart Terminal就是Docker提供的一键启动的脚本,本质上是一个快捷方式(链接到git bash然后运行start.sh的快捷方式)。
安装好toolbox以后桌面上就可以看到它,如果你这时候双击打开它,就会遇到两个连环坑,这两坑一环扣一环,所以建议还是先把爬坑指南看完再操作。

啰嗦版

  • 一个小坑:双击运行后,进入如下界面,提示需要下载最新的boot2docker.iso,接着脚本开始自动的从github上下载最新的程序,由于国内的网络环境(你懂的),这一步要么龟速到怀疑人生,
    要么干脆就无法连接。
    • 你以为的出坑指南:如果你有自带梯子的路由器(还好笔者在公司搭了一个),那么只要继续等待就可以了,下载不会花费很久。如果你没有,请自行去找个国内搬运的镜像下载(反正你下了也没用)
    • 其实现实是:由于下面的天坑,这步无论下载没下载成其实都没差,反正脚本识别不到。。。。意不意外,惊不惊喜?瞬间怀疑人生有木有。
  • 官方亲手挖的天坑:由于官方发布最新18.09镜像时忘了在文件里加入版本号(坑爹啊),所以无论cache目录下是否放了镜像,脚本都检测不到版本号,所以就会陷入反复检测反复下载的死循环。
  • 终极解决方法:
    用UltraEdit打开上一步下载好的ISO镜像,按Ctrl+G定位到0x8032,在后面加上-v18.09.0,接着保存,确认修改后镜像放到了cache目录下后,再次打开脚本即可。

第三步,安装Xming

Docker镜像里其实不大适合放GUI程序,因为它本身不能直接显示图形界面,需要配置X11转发才可以。点此了解X11,由于我们需要RVIZ,所以免不了要配置X11服务端,Xming就是Windows下面的一个X11服务端。下载好后直接默认安装,为了方便Docker镜像图形接入,建议直接不带安全规则运行,也可以在配置里把docker地址添加到信任,请自行测试。

不带安全规则运行Xming的方法

方法1

装完以后找到快捷方式,添加-ac参数,然后确定,双击修改后的快捷方式打开Xming,如图所示

2.png

方法2

按WIN+R,输入
"C:\Program Files (x86)\Xming\Xming.exe" :0 -ac -clipboard -multiwindow

然后回车即可运行

下载地址

国内推荐网盘下载

(网盘下载)[https://pan.baidu.com/s/1TGBD5Rc8OZlZy34eru_mkQ]
(SourceForge下载)[https://newcontinuum.dl.sourceforge.net/project/xming/Xming/6.9.0.31/Xming-6-9-0-31-setup.exe]

第四步,配置 VM VirtualBox端口转发

说明

由于笔者用的激光雷达是将数据发到本地5600 UDP端口,而我们RVIZ却在一个Docker容器内,所以我们既需要将Docker容器和linux虚拟环境的5600端口连接(由笔者提供的脚本自动完成),又需要将本机实体系统5600端口转发到虚拟机的5600 UDP端口,最终形成一个从本机到容器5600端口的通道。

到这里大家应该能发现这™其实这是一个本机、微型Linux虚拟机、虚拟机上跑的Docker虚拟容器之间的复杂的三角恋关系啊~,给一张图大家体会一下
3.png

方法步骤

注意,这个只需要刚安装的时候配置一次,不用每次都配置

双击运行桌面上的Oracle VM VirtualBox,然后在出来的界面中可以看到刚才的Docker启动脚本已经帮我们创建了一个叫做default的镜像,我们选中它,然后点设置
5.jpg
接着选择网络,默认网卡1,点高级,再选择端口转发
6.jpg
接着设置如下UDP转发规则,设置完成后点OK,然后关掉VirtualBOX窗口
7.jpg

第五步,执行雷达上位机程序

双击桌面上的Docker Quickstart Terminal,等待片刻后进入Linux虚拟环境,接着cd到ml16_windocker.sh(笔者写的脚本)所在的目录
初次执行时候
./ml16_windocker.sh init
以后进入
./ml16_windocker.sh run

进入容器环境后,
roslaunch ml16_view display_ml16.launch

即可开启RVIZ显示~
最后放一张靓照~
8.jpg

Reference:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注