# 基于 Windows WSL2 的开发环境
下面的说明介绍了如何在 Windows 11 上设置 PX4 开发环境,该环境在 Ubuntu Linux 中运行。 WSL2 (打开新窗口).
该环境可用于构建 PX4:
备注
此设置也可在 Windows 10 上使用,但需注意以下几点 注意事项.
警告
这种设置目前是 不支持的 Windows 开发环境.我们正在考虑这种设置是否以及在什么时候可以成为 推荐 Windows 开发环境
# 概述
Windows Linux 子系统 (打开新窗口) (WSL2 (打开新窗口))允许用户安装和运行 Ubuntu 开发环境 在 Windows 上、 险些 就像在 Linux 计算机上运行一样。
在这种环境下,开发人员可以
- 构建任何由 Ubuntu 开发环境 在 WSL Shell 中。(Ubuntu 是支持和测试最好的 PX4 开发平台)。
- 调试代码 Visual Studio 代码 (视窗).
- 监控 a 仿真 使用 Linux 版 QGroundControl 在 WSL 中运行。Linux 版 QGC 会自动连接到模拟。
适用于 Windows 的 QGroundControl 如果需要,还需要
- 更新固件 在真实的载具上。
- 监控真实载具。请注意,您也可以用它来监控模拟载具,但必须手动操作 连接到在 WSL 中运行的模拟.
备注
不支持从 WSL 连接到真实设备,因此无法使用 上传
选项,或从 Linux 版 QGroundControl.
备注
该方法类似于在您的 拥有 中描述的 Windows 虚拟机托管工具链.WSL2 的优势在于其虚拟机已深度集成到 Windows 中,由系统管理,并对性能进行了优化。
# 支持 Windows 10 图形用户界面
Windows 10 版本尚不支持 WSL2 应用程序的图形用户界面,因此窗口和图形功能将无法使用。这包括 Gazebo 和 jMAVSim 渲染可视化,以及在 WSL 中运行的 Linux QGC、 Git
gui 等。
发展是可能的,因为你还可以:
- 在 WSL2 中构建 PX4,并使用以下功能将其闪存到电路板上
Windows 版 QGC
. - 在 无头模式 (在
生产
用无头=1
),并使用Windows 版 QGC
.
备注
WSL2 图形用户界面支持由 Windows Linux 图形用户界面子系统(WSLg) (打开新窗口).默认情况下,稳定版 Windows 11 版本中已包含此功能。稳定版 Windows 10 中还没有(只有内部预览版)。有关推出信息,请参阅链接。
# 安装
# 安装 WSL2
在新安装的 Windows 11 系统上使用默认 Ubuntu 分发版安装 WSL2:
- 开放 cmd.exe 为管理员。按开始键,输入
cmd
,右键点击 命令提示符 条目,并选择 以管理员身份运行. - 执行命令
wsl --install
运行 WSL 的安装程序。 - 重新启动电脑。
- 开放
cmd
再次以普通用户身份(而非管理员身份)进行操作。按下 开始 键,输入cmd
并按 进入. - 执行命令
wsl
来访问 WSL shell。 - WSL 会提示您输入 Ubuntu 安装的用户名和密码。请记录下这些凭证,因为稍后会用到!
备注
如果您的设置有任何问题,请检查当前的 微软 WSL 安装文档 (打开新窗口).
# 打开 WSL Shell
安装和构建 PX4 的所有操作都必须在 WSL Shell 中完成(可以使用安装 WSL2 时使用的相同 Shell,也可以打开一个新的 Shell)。
打开 WSL shell:
- 打开命令提示符:
- 按下 开始 键。
- 类型
cmd
并按下 进入 打开提示符。
- 要启动 WSL 并访问 WSL shell,请执行命令:
wsl
备注
输入以下命令,首先关闭 WSL shell,然后关闭 WSL:
退出 wsl --shutdown
或者,在输入 出口
您可以直接关闭提示。
# 安装 PX4 工具链
接下来,我们在 WSL2 环境中下载 PX4 源代码,并使用正常的 Ubuntu 安装程序脚本 来设置开发者环境。这将为 Gazebo 仿真、JMAVSim 仿真和 Pixhawk/NuttX 硬件安装工具链。
安装开发工具链
打开 WSL2 Shell (如果它仍然打开,您可以使用安装 WSL2 时使用的那个)。
执行命令
cd ~
切换到 WSL 的主文件夹,进行下一步操作。警告
这一点很重要!如果在 WSL 文件系统之外的位置工作,就会遇到执行速度非常慢和访问权限错误等问题。
下载 PX4 源代码
Git
(已安装在 WSL2 中):Git 克隆 https://github.com/PX4/PX4-Autopilot.git --recursive
运行 ubuntu.sh 安装程序脚本,并确认脚本进程中的任何提示:
敲击 ./PX4-Autopilot/Tools/setup/ubuntu.sh
备注
安装用于为 Pixhawk、Gazebo 和 JMAVSim 目标构建 PX4 的工具。
- 您可以使用
--无核x
和--无模拟工具
选项可省略 NuttX 和/或模拟工具。 - 其他 Linux 构建目标尚未经过测试(你可以通过在 Ubuntu 开发环境 进入 WSL 外壳)。
- 您可以使用
脚本完成后,重新启动 WSL 计算机(退出 shell,关闭 WSL,然后重新启动 WSL):
退出 wsl --shutdown wsl
切换到 WSL 主文件夹中的 PX4 资源库:
cd ~/PX4-Autopilot
构建 PX4 SITL 目标并测试环境:
使 px4_sitl
有关更多构建选项,请参阅 构建 PX4 软件.
# Visual Studio 代码集成
在 Windows 上运行的 VS Code 与 WSL 集成得很好。
设置集成:
下载 (打开新窗口) 并在 Windows 上安装 Visual Studio Code (VS Code)、
开放 VS 编码.
安装名为 远程 - WSL (打开新窗口) (市场)
在 WSL 外壳中,切换到 PX4 文件夹:
cd ~/PX4-Autopilot
在 WSL 外壳中,启动 VS Code:
代码
这将打开与 WSL shell 完全集成的集成开发环境。
确保始终在远程 WSL 模式下打开 PX4 资源库。
下次要开发 WSL2 时,只需在远程 WSL 模式下选择 打开 最近 (如下图所示)。这将为您启动 WSL。
但请注意,WSL 虚拟机的 IP 地址已经更改,因此您将无法通过 QGC for Windows 监控仿真(您仍然可以使用 QGC for Linux 进行监控)。
# QGroundControl
您可以在 WSL 或 Windows 中运行 QGroundControl,连接到正在运行的仿真。如果您需要 闪烁飞行控制板 对于新固件,您只能通过 Windows 版 QGroundControl 进行此操作。
# WSL 中的 QGroundControl
设置和使用 QGroundControl 的最简单方法是将 Linux 版本下载到您的 WSL 中。
您可以在 WSL 外壳中执行此操作。
- 在网络浏览器中,导航到 QGC Ubuntu 下载区 (打开新窗口)
- 右键单击 QGroundControl.AppImage 链接,然后选择 "复制链接地址"。如下所示 https://d176td9ibe4jno.cloudfront.net/builds/master/QGroundControl.AppImage
- 打开 WSL 外壳 并输入以下命令下载 AppImage 并使其可执行(在指定位置替换 AppImage URL):
cd ~ wget <the_copied_AppImage_URL> chmod +x QGroundControl.AppImage
- 运行 QGroundControl:
./QGroundControl.AppImage
QGroundControl 将启动并自动连接到正在运行的模拟,让您可以监控载具。
由于 WSL 不允许访问串行设备,因此无法用它来安装 PX4 固件。
# Windows 上的 QGroundcontrol
安装 Windows 上的 QGroundControl (打开新窗口) 如果您希望使用在 PX4 中创建的固件更新硬件。
这些步骤描述了如何连接 WSL 中运行的模拟:
- 打开 WSL 外壳
- 运行命令检查 WSL 虚拟机的 IP 地址
ip addr | grep eth0
:复制$ ip 地址 | grep eth0 6: eth0: <;广播、组播、上行、下行>; mtu 1500 qdisc mq state UP group default qlen 1000 局域网 172.18.46.131/20 布拉德 172.18.47.255 范围 global eth0
eth0
界面局域网
地址到剪贴板。在这种情况下172.18.46.131
. - 在 QGC 中转入 Q > 应用程序设置 > 通信链接
- 为端口添加名为 "WSL" 的 UDP 链接
18570
的 IP 地址。 - 保存并连接。
备注
每次重新启动 WSL 时,您都必须更新 QGC 中的 WSL 通信链接(因为它获得的是动态 IP 地址)。
# 闪烁飞行控制板
由于 WSL2 本身无法直接访问 Pixhawk 电路板等串行设备,因此必须使用 Windows 版 QGroundControl 才能对定制的 PX4 二进制程序进行闪存。
执行以下步骤闪存在 WSL 中创建的自定义二进制文件:
- 如果您还没有在 WSL 中构建二进制文件,例如使用 WSL 外壳 和跑步:注意: 请为您的板使用正确的目标。
cd ~/PX4-Autopilot make px4_fmu-v5
- 从计算机上拔下 Pixhawk 板的 USB 电缆(如果已插入)。
- 开放式 QGC。
- 在 QGC 中转入 Q > 载具设置 > 固件
- 通过 USB 插入 pixhawk 电路板
- 连接后选择 "PX4 Flight Stack",选中 "高级设置",然后从下拉列表中选择 "自定义固件文件..."。
- 继续并选择之前刚创建的固件二进制文件。在打开的对话框中,查找左侧窗格中带有企鹅图标的 Linux 位置。它通常位于底部。在路径中选择文件:
Ubuntu\home\{your WSL user name}\PX4-Autopilot\build\{your build target}\{your build target}.px4
备注
您可以将文件夹添加到收藏夹,以便下次快速访问。
- 开始闪烁。