Windows下的Pixhawk 开发环境配置(基于 WSL2)

综述

适用于 Linux 的 Windows 子系统WSL2)允许用户在 Windows 上安装并运行 Ubuntu 开发环境,其使用体验几乎与在 Linux 计算机上运行无异。

借助此环境,开发者可以:

  • 在 WSL 终端中编译 Ubuntu 开发环境 支持的任何模拟器或硬件目标(Ubuntu 是 PX4 开发平台中支持和测试最完善的系统)。
  • 在运行于 Windows 的 Visual Studio Code 中调试代码。
  • 使用在 WSL 中运行的 QGroundControl for Linux 监控仿真环境。Linux 版 QGC 会自动连接到仿真环境。

若有以下需求,则还需安装 QGroundControl for Windows

WSL 不支持从内部连接 USB 设备,因此在命令行编译时无法使用 upload 选项更新固件,也不能通过 QGroundControl for Linux 更新固件。
这种方法与在自己的虚拟机中安装 PX4 类似,具体可参考 Windows 虚拟机托管工具链。WSL2 的优势在于其虚拟机与 Windows 深度集成,由系统管理,并且经过了性能优化。

安装

安装 WSL2

要在全新安装的 Windows 10 或 11 系统上安装带有 Ubuntu 的 WSL2,请按以下步骤操作:

  1. 确保计算机 BIOS 中已启用虚拟化功能。该功能通常分别被称为 “虚拟化技术”、“Intel VT-x” 或 “AMD-V”。
  2. 以管理员身份打开 cmd.exe。可以通过按下开始键,输入 cmd,右键单击 “命令提示符” 条目,然后选择 “以管理员身份运行” 来实现。
  3. 执行以下命令来安装 WSL2 和特定版本的 Ubuntu:
    • 默认版本(Ubuntu 22.04):
    • wsl --install

      Ubuntu 20.04(Gazebo-Classic 仿真环境

    • wsl --install -d Ubuntu-20.04
    • Ubuntu 22.04(Gazebo 仿真环境
    • wsl --install -d Ubuntu-22.04

      你也可以从应用商店安装 Ubuntu 20.04 和 Ubuntu 22.04,这样就可以通过常规的 Windows 添加/删除程序设置来卸载应用程序。
  4.  WSL 会提示你为 Ubuntu 安装设置用户名和密码。请记录这些凭据,因为后续可能会用到!此时,命令提示符已变为新安装的 Ubuntu 环境中的终端。

打开 WSL 终端

所有安装和编译 PX4 的操作都必须在 WSL 终端中完成(可以使用安装 WSL2 时的终端,也可以打开一个新的终端)。

如果你使用的是 Windows 终端,可以按照图示打开已安装的 WSL 环境的终端,并通过关闭标签页退出。

Windows 终端展示如何选择 Ubuntu 终端

若要使用命令提示符打开 WSL 终端,请按以下步骤操作:

  1. 打开命令提示符:
    • 按下 Windows 开始 键。
    • 输入 cmd 并按下 Enter 键打开命令提示符。
  2. 要启动 WSL 并进入 WSL 终端,请执行以下命令:
    wsl -d <发行版名称>

    例如:

    wsl -d <发行版名称>
    wsl -d Ubuntu-20.04
    1. 如果你只安装了一个版本的 Ubuntu,可以直接使用 wsl

    输入以下命令先关闭 WSL 终端,然后关闭 WSL:

    exit
    wsl -d <发行版名称> --shutdown

     

    或者,输入 exit 后直接关闭命令提示符。

安装 PX4 工具链

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

要安装开发工具链,请按以下步骤操作:

  1. 打开 WSL2 终端(如果之前的终端仍处于打开状态,可以继续使用)。
  2. 执行命令 cd ~ 切换到 WSL 的主文件夹,以便进行后续步骤
    这一步非常重要!如果在 WSL 文件系统之外的位置进行操作,可能会遇到执行速度极慢以及访问权限错误等问题。
  3. 使用 git(WSL2 中已预装)下载 PX4 源代码: sh git clone https://github.com/PX4/PX4-Autopilot.git --recursive ::: info 源代码中的环境设置脚本通常适用于较新的 PX4 版本。如果使用的是较旧版本的 PX4,可能需要 获取特定版本的源代码
  4. 运行 ubuntu.sh 安装脚本,并在脚本执行过程中确认所有提示信息: sh bash ./PX4-Autopilot/Tools/setup/ubuntu.sh ::: info 此脚本将安装用于编译 Pixhawk 以及 Gazebo 或 Gazebo Classic 目标的工具: – 可以使用 --no-nuttx 和 --no-sim-tools 选项省略 NuttX 和/或仿真工具的安装。 – 其他 Linux 编译目标未经测试(你可以尝试将 Ubuntu 开发环境 中的相应命令输入到 WSL 终端中)。
  5. 脚本执行完成后,重启 “WSL 计算机”(退出终端,关闭 WSL,然后重新启动 WSL): sh exit wsl --shutdown wsl 6. 切换到 WSL 主文件夹中的 PX4 仓库: sh cd ~/PX4-Autopilot 7. 编译 PX4 SITL 目标并测试环境: sh make px4_sitl 更多编译选项请参考 构建 PX4 软件

故障处理

如果你在设置过程中遇到任何问题,请查看当前的 Microsoft WSL 安装文档

我们还建议你安装最新的 Windows GPU 驱动程序,并在 Ubuntu 环境中安装较新版本的 kisak mesa,以便模拟大多数 OpenGL 功能:

sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update
sudo apt upgrade

 

下一篇 基于 WSL2 在Visual Studio Code 集成
Lam

Lam管理员

Let some folks get a head start and fly first.

本月创作热力图

近期评论

您尚未收到任何评论。