Skip to content

Mac 上的开发环境

MacOS 是受支持的 PX4 开发平台。按照本文指示搭建的开发环境可用于编译以下内容:

TIP

此设置由 PX4 开发团队提供支持。若要编译其他目标,你需要使用 其他操作系统(或 社区支持的开发环境)。

一键安装脚本

基础设置

“基础” 的 macOS 设置会安装编译固件所需的工具,同时包含安装/使用模拟器所需的常用工具。

环境设置

Details

苹果硅芯片 Macbook 用户注意! 如果你使用的是搭载 Apple M1、M2 等芯片的 Macbook,请通过设置 x86 终端以 x86 模式运行终端:

  1. 在“实用工具”文件夹中找到“终端”应用程序(访达 > 前往菜单 > 实用工具)。
  2. 选中 终端.app 并右键单击,然后选择“复制”。
  3. 重命名复制后的终端应用程序,例如命名为 x86 终端
  4. 现在选中重命名后的 x86 终端 应用程序并右键单击,选择 显示简介
  5. 勾选“使用 Rosetta 打开”选项,然后关闭窗口。
  6. 像平常一样运行 x86 终端,它将完全支持当前的 PX4 工具链。

首先进行环境设置:

  1. ~/.zshenv 文件(如果该文件不存在则创建它)中追加以下行,以允许打开更多文件:
    sh
    echo ulimit -S -n 2048 >> ~/.zshenv

    INFO

    如果不这样做,编译工具链可能会报告错误:"LD: too many open files"

::: 2. 在 ~/.zshenv 中追加以下行以强制使用 Python 3:

sh
# 将 pip3 指向 MacOS 系统的 Python 3 的 pip
alias pip3=/usr/bin/pip3

常用工具

为了设置能够为 Pixhawk/NuttX 硬件进行编译的环境(并安装使用模拟器的常用工具),请按以下步骤操作:

  1. 按照这些 安装说明 安装 Homebrew。
  2. 在终端中运行以下命令以安装常用工具:
    sh
    brew tap PX4/px4
    brew install px4-dev
  3. 安装所需的 Python 包:
    sh
    # 使用 pip3 安装所需的包
    python3 -m pip install --user pyserial empty toml numpy pandas jinja2 pyyaml pyros-genmsg packaging kconfiglib future jsonschema
    # 如果由于权限错误安装失败,说明你的 Python 安装在系统路径中,请使用以下命令代替:
    sudo -H python3 -m pip install --user pyserial empty toml numpy pandas jinja2 pyyaml pyros-genmsg packaging kconfiglib future jsonschema

Gazebo Classic 模拟

若要设置 Gazebo Classic 仿真环境,请按以下步骤操作:

  1. 在终端中运行以下命令:
    sh
    brew unlink tbb
    sed -i.bak '/disable! date:/s/^/  /; /disable! date:/s/./#/3' $(brew --prefix)/Library/Taps/homebrew/homebrew-core/Formula/tbb@2020.rb
    brew install tbb@2020
    brew link tbb@2020

    INFO

    2021 年 9 月:上述命令是针对此问题的临时解决方案:PX4-Autopilot#17644。问题修复后(连同此注释)可以移除这些命令。

::: 2. 安装带有 Gazebo Classic 的 SITL 仿真环境:

sh
brew install --cask temurin
brew install --cask xquartz
brew install px4-sim-gazebo
  1. 运行 macOS 设置脚本:PX4-Autopilot/Tools/setup/macos.sh。最简单的方法是克隆 PX4 源代码,然后从该目录运行脚本,如下所示:
    sh
    git clone https://github.com/PX4/PX4-Autopilot.git --recursive
    cd PX4-Autopilot/Tools/setup
    sh macos.sh

Gazebo 依赖项

完成命令行工具链的设置后:

  • 安装 VSCode(如果你更喜欢使用集成开发环境而不是命令行)。
  • 安装 QGroundControl 每日构建版本

    TIP

    每日构建版本包含了发布版本中隐藏的开发工具,还可能提供对发布版本中尚未支持的新 PX4 功能的访问权限。

:::