# Windows 虚拟机托管工具链

警告

这种开发环境是 不支持.湖泊 工具链安装 了解我们支持的环境和工具!

Windows 开发人员可以在以 Linux 为客户操作系统的虚拟机(VM)中运行 PX4 工具链。设置虚拟机后,PX4 在虚拟机中的安装和设置与在本地 Linux 计算机上完全相同。

虽然使用虚拟机可以非常方便地建立和测试固件构建环境,但用户应该注意:

  1. 在 Linux 上,固件构建速度会比本地构建速度慢。
  2. JMAVSim 模拟的帧速率比本地 Linux 慢得多。在某些情况下,载具可能会因虚拟机资源不足而崩溃。
  3. 可以安装 Gazebo 和 ROS,但速度非常慢。

TIP

为虚拟机分配尽可能多的 CPU 内核和内存资源。

有多种方法可以在系统上设置一个能够执行 PX4 环境的虚拟机。本指南将引导您完成 VMWare 设置。最后还有一个未完成的 VirtualBox 部分(欢迎社区成员对该部分进行扩展)。

# VMWare 设置

VMWare 的性能对于基本使用(构建固件)是可以接受的,但对于运行 ROS 或 Gazebo Classic 则不行。

  1. 下载 VMWare Player 免费软件 (打开新窗口)

  2. 在 Windows 系统上安装

  3. 下载所需版本的 Ubuntu 桌面 ISO 映像 (打开新窗口).(见 Linux 说明页面 推荐的 Ubuntu 版本)。

  4. 开放 VMWare 播放器.

  5. 在虚拟机设置中启用 3D 加速: 虚拟机> 设置> 硬件> 显示器> 加速 3D 图形

    备注

    要正确运行 jMAVSim 和 Gazebo Classic 等 3D 仿真环境,必须使用该选项。我们建议在虚拟环境中安装 Linux 之前执行此操作。

  6. 选择创建新虚拟机选项。

  7. 在虚拟机创建向导中,选择下载的 Ubuntu ISO 映像作为安装介质,并自动检测要使用的操作系统。

  8. 还可在向导中选择要在虚拟机运行时为其分配的资源。在不导致主机 Windows 系统无法使用的情况下,尽可能多地分配内存和 CPU 内核。

  9. 在向导结束后运行新虚拟机,让它按照设置说明安装 Ubuntu。请记住,所有设置都只供主机操作系统使用,因此你可以禁用任何屏幕保护程序和本地工作站安全功能,这不会增加网络攻击的风险。

  10. 启动新虚拟机后,确保安装 VMWare 工具驱动程序和工具扩展 在客户系统内。这将提高虚拟机的使用性能和可用性:

    • 图形性能显著增强
    • 适当支持硬件设备的使用,如 USB 端口分配(对目标上传很重要)、适当的鼠标滚轮滚动和声音支持
    • 根据窗口大小调整访客显示分辨率
    • 将剪贴板共享到主机系统
    • 共享文件到主机系统
  11. 继续 为 Linux 设置 PX4 环境

# VirtualBox 7 安装

VirtualBox 的设置与 VMWare 类似。社区成员,欢迎提供分步指南!

# 用于 QGroundControl / 固件闪存的 USB 直通功能

TIP

本节针对在 Windows 10 主机上运行 Ubuntu 20.04 LTS 的 VirtualBox 7 进行了测试。

虚拟机的一个限制是无法自动连接到主机 USB 端口上的飞行控制器,以便 通过终端构建并上传 PX4 固件.您也无法从虚拟机中的 QGroundControl 连接到飞行控制器。

为此,需要配置 USB 直通设置:

  1. 使用终端命令确保用户已添加到虚拟机的拨出组:

    sudo usermod -a -G dialout $USER
    

    然后在虚拟机中重启 Ubuntu。

  2. 在虚拟机中启用串行端口: VirtualBox > 设置 > 串行端口 1/2/3/...

  3. 在虚拟机中启用 USB 控制器: VirtualBox > 设置 > USB

  4. 为虚拟机中的引导加载程序添加 USB 筛选器: VirtualBox > 设置 > USB > 添加新的 USB 过滤器.

    • 打开菜单,插入连接到自动驾驶仪的 USB 电缆。选择 ...引导加载程序 设备出现在用户界面时。

      备注

      连接 USB 后,引导加载器设备只会出现几秒钟。如果在选择之前就消失了,请断开连接,然后重新连接 USB。

    • 选择 ...自动驾驶仪 当设备出现时(这发生在启动加载程序完成之后)。

  5. 在虚拟机实例的下拉菜单中选择设备 VirtualBox > 设备 > 您的设备

如果成功,您的设备将显示 lsusb QGroundControl 就会自动连接到设备。您还可以使用以下命令构建和上传固件:

使 px4_fmu-v5_default 上传

# 用于 QGroundControl 的 WiFi 遥测技术

如果使用 QGroundControl 在虚拟机中,应将虚拟机网络设置设置为桥接适配器模式。这样,客户操作系统就可以直接访问主机上的网络硬件。如果使用网络地址转换(NAT)(运行 Ubuntu 20.04 LTS 的 VirtualBox 7 默认设置为 NAT),这将阻止 QGroundControl 用于与载具通信的出站 UDP 数据包。