Mac 上的开发环境
MacOS 是受支持的 PX4 开发平台。按照本文指示搭建的开发环境可用于编译以下内容:
- 基于 NuttX 的硬件(如 Pixhawk 等)
- Gazebo Classic 仿真环境
一键安装脚本
基础设置
“基础” 的 macOS 设置会安装编译固件所需的工具,同时包含安装/使用模拟器所需的常用工具。
环境设置
Details
苹果硅芯片 Macbook 用户注意! 如果你使用的是搭载 Apple M1、M2 等芯片的 Macbook,请通过设置 x86 终端以 x86 模式运行终端:
- 在“实用工具”文件夹中找到“终端”应用程序(访达 > 前往菜单 > 实用工具)。
- 选中 终端.app 并右键单击,然后选择“复制”。
- 重命名复制后的终端应用程序,例如命名为 x86 终端。
- 现在选中重命名后的 x86 终端 应用程序并右键单击,选择 显示简介。
- 勾选“使用 Rosetta 打开”选项,然后关闭窗口。
- 像平常一样运行 x86 终端,它将完全支持当前的 PX4 工具链。
首先进行环境设置:
- 在
~/.zshenv
文件(如果该文件不存在则创建它)中追加以下行,以允许打开更多文件:shecho 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 硬件进行编译的环境(并安装使用模拟器的常用工具),请按以下步骤操作:
- 按照这些 安装说明 安装 Homebrew。
- 在终端中运行以下命令以安装常用工具:sh
brew tap PX4/px4 brew install px4-dev
- 安装所需的 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 仿真环境,请按以下步骤操作:
- 在终端中运行以下命令: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
- 运行 macOS 设置脚本:
PX4-Autopilot/Tools/setup/macos.sh
。最简单的方法是克隆 PX4 源代码,然后从该目录运行脚本,如下所示:shgit clone https://github.com/PX4/PX4-Autopilot.git --recursive cd PX4-Autopilot/Tools/setup sh macos.sh
Gazebo 依赖项
完成命令行工具链的设置后:
- 安装 VSCode(如果你更喜欢使用集成开发环境而不是命令行)。
- 安装 QGroundControl 每日构建版本
TIP
每日构建版本包含了发布版本中隐藏的开发工具,还可能提供对发布版本中尚未支持的新 PX4 功能的访问权限。
:::
- 继续阅读 构建说明。