PX4 Architecture
Last updated
Last updated
The sections below provide high-level overview of the PX4 hardware and software stack for two "typical" PX4 systems; one that has just a flight controller, and another that has a flight controller and a companion computer (also known as a "mission computer").
:::note The provides information about the flight stack and middleware. Offboard APIs are covered in and . :::
The diagram below provides a high level overview of a typical "simple" PX4 system based around a flight controller.
The hardware consists of
The left hand side of the diagram shows the software stack, which is horizontally aligned (approximately) with the hardware parts of the diagram.
The diagram below shows a PX4 system that includes both a flight controller and a companion computer (here referred to as a "mission computer").
:::note The diagram shows a cloud or ground station connection via LTE, an approach that has been used a number of PX4-based systems. PX4 does not deliver software specifically for LTE and/or cloud integration (this requires custom development). :::
(running the PX4 flight stack). This often includes internal IMUs, compass and barometer.
connected to , (DroneCAN allows two-way communication, not single direction as shown) or some other bus.
Sensors (, , distance sensors, barometers, optical flow, barometers, ADSB transponders, etc.) connected via I2C, SPI, CAN, UART etc.
or other payload. Cameras can be connected to PWM outputs or via MAVLink.
for connecting to a ground station computer/software.
for manual control
The ground station computer typically runs (or some other ground station software). It may also run robotics software like or .
The PX4 flight stack running on the flight controller includes , , , and other .
The flight controller runs the normal PX4 flight stack, while a companion computer provides advanced features like and . The two systems are connected using a fast serial or IP link, and typically communicate using the . Communications with the ground stations and the cloud are usually routed via the companion computer (e.g. using the (from Intel)).
PX4 systems typically run a Linux OS on the companion computer (because the project delivers ROS-based avoidance libraries designed for Linux). Linux is a much better platform for "general" software development than NuttX; there are many more Linux developers and a lot of useful software has already been written (e.g. for computer vision, communications, cloud integrations, hardware drivers). Companion computers sometimes run Android for the same reason.