Edit me

MacOS Development Environment

The following instructions set up a PX4 development environment for macOS. This environment can be used to build PX4 for:

:::details Apple M1 Macbook users! If you have an Apple M1 Macbook, make sure to run the terminal as x86 by setting up an x86 terminal:

  1. Locate the Terminal application within the Utilities folder (Finder > Go menu > Utilities)
  2. Select Terminal.app and right-click on it, then choose Duplicate.
  3. Rename the duplicated Terminal app, e.g. to x86 Terminal
  4. Now select the renamed x86 Terminal app and right-click and choose *Get Info
  5. Check the box for Open using Rosetta, then close the window
  6. Run the x86 Terminal` as usual, which will fully support the current PX4 toolchain :::

:::tip This setup is supported by the PX4 dev team. To build other targets you will need to use a different OS (or an unsupported development environment). :::

Video Guide

@youtube

Homebrew Installation

The installation of Homebrew is quick and easy: installation instructions.

Enable more open files (Handle “LD: too many open files” error)

Create the ~/.zshenv file or append it (by running open ~/.zshenv on the terminal) and add this line:

ulimit -S -n 2048

Enforce Python Version

If not already existing, create the file ~/.zshrc and add these lines:

# Point pip3 to MacOS system python 3 pip
alias pip3=/usr/bin/pip3

Common Tools

After installing Homebrew, run these commands in your shell to install the common tools:

brew tap PX4/px4
brew install px4-dev

Install the required Python packages

# install required packages using pip3
python3 -m pip install --user pyserial empy toml numpy pandas jinja2 pyyaml pyros-genmsg packaging
# if this fails with a permissions error, your Python install is in a system path - use this command instead:
sudo -H python3 -m pip install --user pyserial empy toml numpy pandas jinja2 pyyaml pyros-genmsg packaging

Gazebo Simulation

First run the following commands:

brew unlink tbb
brew install tbb@2020
brew link tbb@2020

:::note September 2021: The commands above are a workaround to this bug: PX4-Autopilot#17644. They can be removed once it is fixed (along with this note). :::

To install SITL simulation with Gazebo:

brew install --cask xquartz
brew install px4-sim-gazebo

jMAVSim Simulation

To use SITL simulation with jMAVSim you need to install a recent version of Java (e.g. Java 15). You can download Java 15 (or later) from Oracle or use the AdoptOpenJDK tap:

brew tap AdoptOpenJDK/openjdk
brew install --cask adoptopenjdk15
brew install px4-sim-jmavsim

:::warning jMAVSim for PX4 v1.11 and beyond we require at least JDK 15.

For earlier versions macOS users might see the error Exception in thread "main" java.lang.UnsupportedClassVersionError:. You can find the fix in the jMAVSim with SITL > Troubleshooting). :::

Next Steps

Once you have finished setting up the command-line toolchain:

  • Install VSCode (if you prefer using an IDE to the command line).
  • Install the QGroundControl Daily Build :::tip The daily build includes development tools that are hidden in release builds. It may also provide access to new PX4 features that are not yet supported in release builds. :::
  • Continue to the build instructions.