Run autonomy you can read.
The flight stack is the one layer you should never treat as a black box. ArduPilot, PX4, and the Pixhawk hardware family are mature, auditable, and license-clear — if you understand what each one obligates you to.
What each layer gives you.
| Layer | Default | License / note |
|---|---|---|
| Flight stack (multirotor) | ArduPilot Copter | GPLv3 — derivative firmware must be shared |
| Flight stack (alt) | PX4 | BSD-3-Clause — permissive, vendor-friendly |
| Flight controller | Pixhawk (Cube / 6X class) | Open-hardware reference design |
| Ground control | QGroundControl / Mission Planner | Open-source GCS, cross-platform |
| Comms | MAVLink | Open messaging protocol, well-documented |
GPLv3 vs BSD-3-Clause is a shipping decision.
ArduPilot is GPLv3: if you modify the firmware and distribute the aircraft, you owe the modified source under the same license. For most build-it-yourself and research programs this is a feature, not a constraint — it keeps the stack auditable end to end.
PX4 is BSD-3-Clause: permissive, which is why it shows up in commercial vendor stacks. You can keep modifications closed. The trade is that the audit story is weaker, because you can no longer assume the shipped firmware matches the public tree.
- Research / internal builds → ArduPilot is usually the cleaner default.
- Commercial product with closed firmware → PX4’s license fits better.
- Either way: pin the exact commit, and keep the build reproducible.
Figures and configurations on this page are illustrative, drawn from public open-source documentation (subject to verification). Operation in the Republic of Korea requires national airworthiness rules, KC radio-frequency certification, and expert validation. All build content is published only after export-control and dual-use review. Open-source components are governed by their own licenses (ArduPilot: GPLv3, PX4: BSD-3-Clause). This page is not legal or export-control advice.