gitmyhub

PX4-Autopilot

C++ ★ 12k updated 9h ago

PX4 Autopilot Software

Open-source autopilot software for drones and unmanned vehicles that reads GPS, altitude, and orientation sensors and sends motor commands to keep aircraft flying, supporting multirotors, fixed-wing planes, rovers, boats, and more.

C++CMakeDockerROS 2MAVLinkDDSsetup: hardcomplexity 5/5

PX4 is the open-source autopilot software that runs inside drones and other unmanned vehicles. It is the code that takes sensor readings, like GPS position, altitude, and orientation, and sends commands to the motors and control surfaces to keep the vehicle flying where you want it to go. A wide range of vehicles use it: multirotors (the common quadcopter style), fixed-wing planes, VTOL aircraft that take off vertically and fly horizontally, ground rovers, boats, submarines, and more experimental platforms.

The software runs on dedicated autopilot hardware boards, particularly those in the Pixhawk family, which are small computers designed to mount inside a drone frame and connect to sensors and motors. It can also run on Linux-based companion computers. For developers who want to test without physical hardware, a simulation mode can be started with a single Docker command, and a ground control application called QGroundControl connects to it so you can practice flying in a simulated environment.

PX4 communicates with ground stations and companion computers using MAVLink, a widely used drone communication protocol. It also supports ROS 2 integration through DDS, a real-time messaging standard, which is popular in robotics research and automated mission planning.

The architecture is modular: functionality is split into independent components that pass data between each other through a publish-subscribe system called uORB. This design makes it possible to add or remove features, port the software to new hardware, or replace individual pieces without rewriting everything.

The project is governed by the Dronecode Foundation, which is part of the Linux Foundation. No single company controls it. The license is BSD 3-Clause, which allows commercial use. Academic users can cite it via a Zenodo DOI that the project maintains.

Where it fits