How to start using and developing the PX4?

Whether you are building a commercial platform or doing academic research, the PX4 environment is probably one of the best platform for you right now. The PX4 pro has a very active community of businesses and researchers developing the platform. The platform is open, and a large number of sensors and payloads are already integrated. Developers will appreciate the robust and modern architecture. This is a summary of the reading material for new PX4 users and developers.

Introductory material for operators

Introductory material for developers

High level autonomous operation

If you want your drone to operate autonomously and complete complex missions, you will most likely need a companion computer. This is a computer installed on the drone that communicates with the flight controller. The flight controller already has a number of autonomous features, but to run a more powerful machine vision system, or implement a state machine controller, you will most likely to write higher level code. All communications with other computers is done through a protocol called Mavlink. You have three options to communicate with the flight controller from your companion computer.

Write everything in Mavlink. This is not recommended, unless you are planning to write a large custom application

Use Dronekit. Dronekit is a python library. It is very simple to use. If you don't have previous experience with ROS, we recommend to use Dronekit.

Low level control

If you are planning to modify the state estimator or the controller, you need to modify the firmware of the flight controller. Fortunately, the PX4 pro has a modular architecture. We recommend starting by learning how to compile the firmware.