跳至内容

视窗开发环境(基于 WSL2)

下面的说明介绍了如何在 Windows 10 或 11 上设置 PX4 开发环境,并在 Ubuntu Linux 中运行。 WSL2.

该环境可用于构建 PX4:

TIP

PX4 开发团队支持这种设置。理论上,该环境应能构建任何可在 Ubuntu 上构建的目标。上面列出的是已经测试过的目标。

概述

Windows Linux 子系统 (WSL2)允许用户安装和运行 Ubuntu 开发环境 在 Windows 上、 险些 就像在 Linux 计算机上运行一样。

在这种环境下,开发人员可以

  • 构建任何由 Ubuntu 开发环境 在 WSL Shell 中。(Ubuntu 是支持和测试最好的 PX4 开发平台)。
  • 调试代码 Visual Studio 代码 在 Windows 上运行。
  • 监控 a 仿真 使用 Linux 版 QGroundControl 在 WSL 中运行。Linux 版 QGC 会自动连接到模拟。

适用于 Windows 的 QGroundControl 如果需要,还需要

信息

不支持在 WSL 中连接 USB 设备,因此无法使用 WSL 更新固件。 上传 选项,或从 Linux 版 QGroundControl.

信息

该方法类似于在您的 拥有 中描述的 Windows 虚拟机托管工具链.WSL2 的优势在于其虚拟机已深度集成到 Windows 中,由系统管理,并对性能进行了优化。

安装

安装 WSL2

要在新安装的 Windows 10 或 11 上使用 Ubuntu 安装 WSL2:

  1. 确保您的计算机已在 BIOS 中启用虚拟化功能。它通常分别称为 "虚拟化技术"、"英特尔 VT-x" 或"AMD-V"。

  2. 开放 cmd.exe 为管理员。按开始键,输入 cmd右键单击 命令提示符 条目,并选择 以管理员身份运行.

  3. 执行以下命令安装 WSL2 和特定的 Ubuntu 版本:

    信息

    您还可以安装Ubuntu 20.04Ubuntu 22.04 这样就可以使用 Windows 的常规添加/删除设置删除应用程序:

  4. WSL 会提示您输入 Ubuntu 安装的用户名和密码。请记录下这些凭证,因为稍后会用到!

命令提示符现在是新安装的 Ubuntu 环境中的一个终端。

打开 WSL Shell

安装和构建 PX4 的所有操作都必须在 WSL Shell 中完成(可以使用安装 WSL2 时使用的相同 Shell,也可以打开一个新的 Shell)。

如果您使用 视窗终端 可以在已安装的 WSL 环境中打开 shell,如图所示,然后关闭标签退出。

显示如何选择 Ubuntu 外壳的 Windows 终端

使用命令提示符打开 WSL shell:

  1. 打开命令提示符:

    • 按下 开始 键。
    • 类型 cmd 并按下 进入 打开提示符。
  2. 要启动 WSL 并访问 WSL shell,请执行命令:

    wsl -d <;分布名称e>;

    例如

    wsl -d 乌班图
    wsl -d Ubuntu-20.04

    如果您只有一个版本的 Ubuntu,可以直接使用 wsl.

输入以下命令,首先关闭 WSL shell,然后关闭 WSL:

出口
wsl -d <;分布名称e>; --关闭

或者,在输入 出口 您可以直接关闭提示。

安装 PX4 工具链

接下来,我们在 WSL2 环境中下载 PX4 源代码,并使用正常的 Ubuntu 安装程序脚本 来设置开发者环境。这将为 Gazebo Classic 仿真、JMAVSim 仿真和 Pixhawk/NuttX 硬件安装工具链。

安装开发工具链

  1. 打开 WSL2 Shell (如果它仍然打开,您可以使用安装 WSL2 时使用的那个)。

  2. 执行命令 cd ~ 切换到 WSL 的主文件夹,进行下一步操作。

    警告

    这一点很重要!如果在 WSL 文件系统之外的位置工作,就会遇到执行速度非常慢和访问权/权限错误等问题。

  3. 下载 PX4 源代码 Git (已安装在 WSL2 中):

    Git 复制 https://github.com/PX4/PX4-Autopilot.git --递归

    信息

    源代码中的环境设置脚本通常适用于最近发布的 PX4 版本。如果使用旧版本的 PX4,可能需要 获取针对您的版本的源代码.

  4. 运行 ubuntu.sh 安装程序脚本,并确认脚本进程中的任何提示:

    敲击 ./PX4-Autopilot/Tools/setup/ubuntu.sh

    信息

    安装用于为 Pixhawk、Gazebo Classic 和 JMAVSim 目标构建 PX4 的工具:

    • 您可以使用 --无核x--无模拟工具 选项可省略 NuttX 和/或模拟工具。
    • 其他 Linux 构建目标尚未经过测试(你可以通过在 Ubuntu 开发环境 进入 WSL 外壳)。
  5. 脚本完成后,重新启动 WSL 计算机(退出 shell,关闭 WSL,然后重新启动 WSL):

    出口
    wsl --关闭
    wsl
  6. 切换到 WSL 主文件夹中的 PX4 资源库:

    CD ~/PX4-自动驾驶仪
  7. 构建 PX4 SITL 目标并测试环境:

    生产 px4_sitl

有关更多构建选项,请参阅 构建 PX4 软件.

Visual Studio 代码集成

在 Windows 上运行的 VS Code 与 WSL 集成得很好。

设置集成:

  1. 下载 并在 Windows 上安装 Visual Studio Code (VS Code)、

  2. 开放 VS 编码.

  3. 安装名为 远程 - WSL (市场)

  4. 打开 WSL 外壳

  5. 在 WSL 外壳中,切换到 PX4 文件夹:

    CD ~/PX4-自动驾驶仪
  6. 在 WSL 外壳中,启动 VS Code:

    代码 .

    这将打开与 WSL shell 完全集成的集成开发环境。

    确保始终在远程 WSL 模式下打开 PX4 资源库。

  7. 下次要开发 WSL2 时,只需在远程 WSL 模式下选择 打开 最近 (如下图所示)。这将为您启动 WSL。

    但请注意,WSL 虚拟机的 IP 地址已经更改,因此您将无法通过 QGC for Windows 监控仿真(您仍然可以使用 QGC for Linux 进行监控)。

QGroundControl

您可以在 WSL 或 Windows 中运行 QGroundControl,连接到正在运行的仿真。如果您需要 闪烁飞行控制板 对于新固件,您只能通过 Windows 版 QGroundControl 进行此操作。

WSL 中的 QGroundControl

设置和使用 QGroundControl 的最简单方法是将 Linux 版本下载到您的 WSL 中。

您可以在 WSL 外壳中执行此操作。

  1. 在网络浏览器中,导航到 QGC Ubuntu 下载区

  2. 右键单击 QGroundControl.AppImage 链接,然后选择 "复制链接地址"。这将类似于_________________________。https://d176td9ibe4jno.cloudfront.net/builds/master/QGroundControl.AppImage_

  3. 打开 WSL 外壳 并输入以下命令下载 AppImage 并使其可执行(在指定位置替换 AppImage URL):

    CD ~
    wget <;复制的应用程序图像L>;
    chmod +x QGroundControl.AppImage
  4. 运行 QGroundControl:

    ./QGroundControl.AppImage

QGroundControl 将启动并自动连接到正在运行的模拟,让您可以监控载具。

由于 WSL 不允许访问串行设备,因此无法用它来安装 PX4 固件。

Windows 上的 QGroundcontrol

安装 Windows 上的 QGroundControl 如果您希望使用在 PX4 中创建的固件更新硬件。

这些步骤描述了如何连接 WSL 中运行的模拟:

  1. 打开 WSL 外壳

  2. 运行命令检查 WSL 虚拟机的 IP 地址 ip addr | grep eth0:

    $ ip 地址 | grep eth0
    
    6: eth0: <;广播、组播、上行、下行P>; mtu 1500 qdisc mq UP 默认 qlen 1000
        局域网 172.18.46.131/20 溴化锂 172.18.47.255 范围 全球 eth0

    复制 eth0 界面 局域网 地址到剪贴板。在这种情况下 172.18.46.131.

  3. 在 QGC 中转入 Q > 应用程序设置 > 通信链接

  4. 为端口添加名为 "WSL" 的 UDP 链接 18570 的 IP 地址。

  5. 保存并连接。

信息

每次重新启动 WSL 时,您都必须更新 QGC 中的 WSL 通信链接(因为它获得的是动态 IP 地址)。

闪烁飞行控制板

必须使用以下方法来刷新定制的 PX4 二进制程序 适用于 Windows 的 QGroundControl 因为 WSL2 本身并不提供直接访问串行设备(如 Pixhawk 板)的功能。

执行以下步骤闪存在 WSL 中创建的自定义二进制文件:

  1. 如果您还没有在 WSL 中构建二进制文件,例如使用 WSL 外壳 和跑步:

    CD ~/PX4-自动驾驶仪
    生产 px4_fmu-v5

    注意: 请为您的电路板使用正确的目标。

  2. 从计算机上拔下 Pixhawk 板的 USB 电缆(如果已插入)。

  3. 开放式 QGC。

  4. 在 QGC 中转入 Q > 载具设置 > 固件

  5. 通过 USB 插入 pixhawk 电路板

  6. 连接后选择 "PX4 Flight Stack",选中 "高级设置",然后从下拉列表中选择 "自定义固件文件..."。

  7. 继续并选择之前刚创建的固件二进制文件。在打开的对话框中,查找左侧窗格中带有企鹅图标的 Linux 位置。它通常位于底部。在路径中选择文件: Ubuntu\home\{your WSL user name}\PX4-Autopilot\build\{your build target}\{your build target}.px4

    信息

    您可以将文件夹添加到收藏夹,以便下次快速访问。

  8. 开始闪烁。

故障排除

如果您的设置有任何问题,请检查当前的 微软 WSL 安装文档.

我们还建议您安装最新的 Windows GPU 驱动程序,并安装最新版本的 KISAK MESA 在 Ubuntu 环境中使用,这样就能模拟大部分 OpenGL 功能:

苏都 add-apt-repository ppa:kisak/kisak-mesa
苏都 适切 更新
苏都 适切 升级