Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/PX4/PX4-Autopilot/llms.txt

Use this file to discover all available pages before exploring further.

You can fly PX4 in simulation without any hardware in two ways: pull a pre-built Docker image for the fastest possible start, or build PX4 from source for full control over the flight stack. Either path ends the same way — QGroundControl connects automatically and you fly a simulated vehicle using the same interface you would use with real hardware.

Choose your path

The Docker path requires no build environment setup. Install Docker, run one command, and open QGroundControl.
1

Install Docker

Install Docker Desktop for your platform (Linux, macOS, or Windows). On Linux, also add your user to the docker group so you can run containers without sudo:
sudo usermod -aG docker $USER
newgrp docker
2

Run the PX4 SITL container

Pull and start the pre-built PX4 SITL image. This launches a quadrotor simulation using the SIH simulator (no external rendering dependencies):
docker run --rm -it -p 14550:14550/udp px4io/px4-sitl:latest
The container publishes MAVLink heartbeats on UDP port 14550. Leave this terminal open.
3

Open QGroundControl

Download and launch QGroundControl. It listens on UDP port 14550 by default and connects to the simulated vehicle automatically within a few seconds.
4

Fly

The vehicle appears on the QGroundControl map. You can arm it, switch flight modes, plan a mission, and execute it exactly as you would with real hardware.
Other vehicle typesPass the PX4_SIM_MODEL environment variable to try different airframes:
# Fixed-wing plane
docker run --rm -it -p 14550:14550/udp -e PX4_SIM_MODEL=sihsim_airplane px4io/px4-sitl:latest

# Standard VTOL
docker run --rm -it -p 14550:14550/udp -e PX4_SIM_MODEL=sihsim_standard_vtol px4io/px4-sitl:latest

# Ackermann rover
docker run --rm -it -p 14550:14550/udp -e PX4_SIM_MODEL=sihsim_rover px4io/px4-sitl:latest
The Docker image uses the SIH (Simulation-In-Hardware) simulator, which runs entirely inside PX4 with no external dependencies. For Gazebo with 3D rendering, follow the build-from-source path.

Verify the connection

Once PX4 SITL is running, confirm that QGroundControl has connected:
  • The vehicle icon appears on the map at the default home position.
  • The top toolbar shows “Ready to Fly” or a disarmed status message.
  • The telemetry panel displays battery percentage, GPS fix, and flight mode.
If QGroundControl does not connect within 30 seconds, check that nothing is blocking UDP port 14550 on your firewall, and that PX4 is still running in the terminal.

Available make targets

The general syntax for make targets is:
make px4_sitl <simulator>[_<vehicle-model>]
CommandSimulatorVehicle
make px4_sitlSIH (headless)Quadrotor
make px4_sitl gz_x500Gazebox500 quadrotor
make px4_sitl gz_rc_cessnaGazeboFixed-wing plane
make px4_sitl gz_standard_vtolGazeboStandard VTOL
make px4_sitl gz_rover_ackermannGazeboAckermann rover
make px4_sitl jmavsimjMAVSimQuadrotor

Next steps

Gazebo simulation

Full vehicle list, world configuration, multi-vehicle setup, and ROS 2 integration with Gazebo.

Simulation overview

SITL vs HITL, simulator comparison, MAVLink port architecture, and remote server setup.

Build docs developers (and LLMs) love