• Windows::Docker::Ubuntu 做 SLAM


    如题,这是一件很蛋疼的事情。

    为了完成这一件事情,需要达成目标:

    1. Ubuntu GUI 必须要能够显示。
    2. Ubuntu 可以链接 USB Camera。

    目标一

    目标1很容易达成。

    在 Win10 中安装一个 X11 Server,可以是 VcXsrv,可以是 Xming,比较不推荐 Xming,因为后面使用 pangolin 会发现 Xming 版本很难匹配。

    推荐使用 MobaXterm,这是一个 free Xserver and tabbed SSH client for Windows。免费的非常好。

    打开 MobaXterm 之后可以看到右上角有一个橘色 Xserver 的图标,点击开启 Xserver,图标变绿。鼠标放置在图标之上可以看到:

    Stop X11 server (Current DISPLAY=XXX.XXX.XXX.XXX:0.0)

    后面的 DISPLAY 就是在 client 端链接的环境变量。

    在 Ubuntu container 中输入

    export DISPLAY=XXX.XXX.XXX.XXX:0.0

    或者直接在 Ubuntu container 的创建中使用 -e 选项,添加环境变量。

    目标二

    目标2很蛋疼。

    可以在 Docker 的官网中看到 Docker 在 Windows 下是使用 Hyper-V (Windows 自带虚拟机软件) 创建一个虚拟机,在虚拟机中创建 containers。

    而 Docker 在 Mac 下是使用 Orcale VM VirtualBox 创建虚拟机,在虚拟机中创建 containers。

    所以,Docker 在非 Linux 环境下的工作方式是使用虚拟机软件做一个虚拟的 linux 系统,在 linux 系统中,创建 containers。

    在 Docker 官网可以直接下载 Docker 或者 Docker Toolbox,下这两个行。区别在于 Docker 安装之后只有一个可执行文件,这个可执行文件创建 Docker 虚拟机只能在 Hyper-V 中创建;而 Docker Toolbox 包括 Docker Kitmatic (Docker images、containers 管理软件)、Oracle VM VirtualBox。

    我以为使用 Docker Toolbox 可以使用 Oracle VM VirtualBox 作为虚拟机软件,然而并不是这样的。

    所以还是继续使用 Hyper-V。

    Hyper-V 可以添加设备,设备主要包括 Network Adapter 和 SCSI Controller。

    我就希望能够使用 SCSI Controller 将我的 USB Camera 链接进去,然而并不行,这个东西只能添加存储设备。

    查了一下 SCSI 确实只能添加存储设备。

    随后看到了可以使用一个叫 USB Redirector 的商业软件将 USB 设备映射到网络设备,网络设备越过 Hyper-V,在虚拟机内部再将网络设备映射回 USB 设备。

    然而这东西需要70多刀,没钱。。。

    在 GitHub 上搜索,USB Redirector 搜到的代码都是在 linux 下使用的,在 Windows 下没有办法。

    还是直接使用 VirtualBox 吧。

    秋嘚嘛嘚,我再找找,Google “USB Redirector Alternatives”,找到了这个链接:
    https://alternativeto.net/software/usb-redirector/

    里面有几种替换方案:FlexiHub、VirtualHere、USB/IP、USB over Network、USB Network Gate。

    先从免费开源的USB/IP开始弄,然而看了主页发现这东西是从 Linux 到 Windows 的映射,没有反方向的,扑街。这个链接可以佐证我的判断,https://sourceforge.net/p/usbip/discussion/418507/thread/6877196c/。

    FlexiHub 需要购买,而且是账号登陆,连破解都没有办法。

  • 相关阅读:
    内存管理简介之Buddy算法和slab分配
    进程通信方式介绍
    Linux内核网络栈实现分析(十一)驱动程序层(下)
    Linux内核网络协议栈深入分析(二)sk_buff的操作函数
    Linux内核网络协议栈深入分析(一)与sk_buff有关的几个重要的数据结构
    内核源码学习:伙伴算法
    寒假Day16Dinic模板更新+优化
    寒假Day20:数位dp
    寒假Day21:Catalan Square卡特兰数 JAVA写大数
    寒假Day17UVALive3231Fair Share(最大流+二分)
  • 原文地址:https://www.cnblogs.com/JingeTU/p/7624890.html
Copyright © 2020-2023  润新知