Pixhawk is a project responsible for creating open-source standards for the flight controller hardware that can be installed on various unmanned aerial vehicles. Additionally, any flight controller built to the open standards often includes "Pixhawk" in its name and may be referred to as such.
An unmanned vehicle's flight controller, also referred to as an FC, FCB (flight control board), FMU (flight management unit), or autopilot, is a combination of hardware and software that is responsible for interfacing with a variety of onboard sensors and control systems in order to facilitate remote control or provide fully autonomous control. [1]
Pixhawk-standardized flight controllers are being used for academic, professional, and amateur applications, and are supported by two mainstream autopilot firmware options: PX4 and ArduPilot. Both firmware options allow for a variety of vehicle types through the Pixhawk flight controller system, including configuration options for unmanned boats, rovers, helicopters, planes, VTOLs, and multirotors. [2] [3] Many manufacturers have adopted various iterations of the Pixhawk standard, including Holybro and CubePilot. Refer to the UAV-systems hardware chart for a full list of flight controllers that have fully or partially adopted the Pixhawk standard.
Pixhawk flight controllers typically feature one or two microcontrollers. In the case of two microcontrollers, a main flight management processor handles all sensor readings, PID calculations, and other resource-heavy computations, while the other handles input/output operations to external motors, switches and radio control receivers. [4] Onboard sensors include an IMU with a multi-axis accelerometer and gyroscope, magnetometer to use as a compass, and a GPS tracking unit to estimate the vehicle's location.
The Pixhawk standards dictate the hardware requirements for manufacturers who are building products to be compatible with the PX4 autopilot software stack. However, due to ArduPilot's adaptation of Pixhawk flight controllers, the standard is able to ensure compatibility with ArduPilot as well. [5]
The open standards consist of a main autopilot reference standard for each iteration of the Pixhawk FMU, as well as various other standards that apply to the general Pixhawk control ecosystem, such as a payload bus standard or a smart battery standard. [6]
This is the main section of the Pixhawk open standards, containing all mechanical and electrical specification for each version of the flight management unit. Currently, versions 1, 2, 3, 4, 4X, 5, 5X, 6X, 6U, and 6C autopilots have been released. [7] The mechanical design standard includes dimensional drawings of the FMU's PCB, the selected sensor types and their locations, and areas that need additional heat sinking. The electrical standard includes the pin-out of each pin in the main processing microcontroller, and which interface each pin is set to communicate with. [4]
The autopilot bus standard is an extension of the autopilot reference standard specifically for providing more information about manufacturing the latest reference versions of Pixhawk FMU, such as the 5X and 6X. The main reason for this is that these are the first flight units featuring a system on module design, where the housing of the flight controller module takes the form of a compact prism with a set of extremely high-density, 100-pin connectors between the module and the baseboard (seen at the bottom of the image on the right). The baseboard allows users to plug the necessary peripheral devices (such as motors, servos, and radios) into the flight controller, while the system on module design results in an easily swappable flight computer. Additionally, this bus standard details PCB layout guidelines for the system on module along with a catalog of reference schematics for interfaces between the module and the baseboard. [8]
In the connector standard, the Pixhawk project specifies using the JST GH for the vast majority of all interfaces between the flight controller board and pluggable peripherals. Just as importantly, the standard defines a convention for user-facing pin-outs for telemetry, GPS, CAN bus, SPI, power, and debug ports. External pin-out information is critical for anyone developing a vehicle with an autopilot, as improperly plugging in peripherals results in a non-functional system at best, and a dangerous environment with broken hardware at worst. Although there is a great deal of variation within the Pixhawk family in terms of available ports and port types, the standardization of pin-outs for the most popular interfaces is immensely helpful to any user working with multiple generations of Pixhawk flight controllers.
Although this section serves as an accessory to the main Autopilot Reference Standard, it concisely details how the Pixhawk standards suggest making additional vehicle payloads that are compatible with a Pixhawk autopilot. [9] Although it is not strictly enforced across all vehicle payload manufacturers, this facilitates the possibility for users to implement payloads and flight controllers from different manufacturers.
The smart battery standard has not been published yet, but it is set to define the interface between a smart battery and a Pixhawk FMU. Such a standard would define the communication protocols, connectors, and capabilities of a battery management system that would be used in a Pixhawk-operated vehicle. [10]
Although there are a variety of radio solutions that can be interfaced with a Pixhawk flight controller, the project does have a short mechanical, electrical, and software definition for a Pixhawk-specific radio communication system. The standard anticipates connections between ground stations and radio modules to be over USB or Ethernet, while connections between local and remote radios could go over traditional radio-frequency links, or LTE. [11]
In 2008, Lorenz Meier, a master's student at ETH Zurich, wanted to make an indoor drone that could use computer vision to autonomously traverse a space and avoid collisions with obstacles. However, such technology did not exist, let alone in a way that was accessible to a university student. Motivated by participating in the indoor autonomy category of a European Micro Air Vehicle competition, Lorenz leveraged the help of professor Marc Pollefeys and assembled a group of 14 teammates to spend nine tireless months creating custom flight controller hardware, firmware, and high-level software. The team, named "Pixhawk," won first place in their category in 2009, being the first competitors to successfully implement computer vision for obstacle avoidance. [12]
Revisiting the project in subsequent years, Lorenz realized that there were not a lot of existing industry tools that could be used to accomplish what he and his team did. As a result, the Pixhawk team made the entire project open source. The ground control software that allowed the team to interface with the drone while it was in flight, the MAVLink communication protocol that was custom developed for streaming telemetry back to the ground station, the PX4 autopilot software that was responsible for controlling the drone, and the Pixhawk flight controller hardware that the autopilot ran on were all released to the public for further development. [13]
Over time, the released project began to grow. MAVLink was picked up by the open-source ArduPilot autopilot software development project, and the ground control software QGroundControl was subsequently used to interface with MAVLink systems. After a couple codebase rewrites and hardware development cycles, Lorenz and a worldwide team of open-source maintainers were able to support a manufacturer that would build a flight controller to their standards. In 2013, 3D Robotics became the first manufacturer of commercial Pixhawk flight controllers, officially lowering the barrier to entry to autonomous flight for enthusiasts and corporations worldwide. [13] Now, anyone could purchase an extremely capable autonomous flight control, flash it with free, open-source PX4 or ArduPilot firmware, and have a university research-level drone platform.
Lorenz heavily credits the open-source community with the extensive success of the Pixhawk platform, as the combined development power seemed to be greater than that of a well-resourced company. [12] In order to help standardize various developments across the project and ensure that it remained accessible and open-source, the Dronecode organization was founded in 2014. Dronecode is currently a non-profit organization under the Linux Foundation, and it has been responsible for facilitating conversations that define the Pixhawk standards. [10]
Unified Extensible Firmware Interface is a specification for the firmware architecture of a computing platform. When a computer is powered on, the UEFI-implementation is typically the first that runs, before starting the operating system. Examples include AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O.
Slugs is an open-source autopilot system oriented toward inexpensive autonomous aircraft. Low cost and wide availability enable hobbyist use in small remotely piloted aircraft. The project started in 2009 and is being further developed and used at Autonomous Systems Lab of University of California Santa Cruz. Several vendors produce Slugs autopilots and accessories.
coreboot, formerly known as LinuxBIOS, is a software project aimed at replacing proprietary firmware found in most computers with a lightweight firmware designed to perform only the minimum number of tasks necessary to load and run a modern 32-bit or 64-bit operating system.
Trusted Platform Module (TPM) is an international standard for a secure cryptoprocessor, a dedicated microcontroller designed to secure hardware through integrated cryptographic keys. The term can also refer to a chip conforming to the standard ISO/IEC 11889. Common uses are to verify platform integrity, and to store disk encryption keys.
Open-source robotics is a branch of robotics where robots are developed with open-source hardware and free and open-source software, publicly sharing blueprints, schematics, and source code. It is thus closely related to the open design movement, the maker movement and open science.
The Bus Pirate is a universal bus interface device designed for programming, debugging, and analyzing microcontrollers and other ICs. It was developed as an open-source hardware and software project.
LibrePilot is a Free software unmanned aerial vehicle project for model aircraft aimed at supporting both multi-rotor craft as well as fixed-wing aircraft. Initially founded by David Ankers, Angus Peart and Vassilis Varveropoulos in late 2009, under the name OpenPilot, it was conceived as both a learning tool and to address areas the developers perceived were lacking in other small UAV platforms. In July 2015 OpenPilot, was forked to create LibrePilot.
SeaBIOS is an open-source implementation of an x86 BIOS, serving as a freely available firmware for x86 systems. Aiming for compatibility, it supports standard BIOS features and calling interfaces that are implemented by a typical proprietary x86 BIOS. SeaBIOS can either run on bare hardware as a coreboot payload, or can be used directly in emulators such as QEMU and Bochs.
Paparazzi is an open-source autopilot system oriented toward inexpensive autonomous aircraft. Low cost and availability enable hobbyist use in small remotely piloted aircraft. The project began in 2003, and is being further developed and used at École nationale de l'aviation civile (ENAC), a French civil aeronautics academy. Several vendors are currently producing Paparazzi autopilots and accessories.
ArduPilot is an open source, uncrewed vehicle Autopilot Software Suite, capable of controlling:
NuttX is a free and open-source real-time operating system (RTOS) with an emphasis on technical standards compliance and on having a small footprint. It is scalable from 8-bit to 64-bit microcontroller environments. The main governing standards in NuttX are from the Portable Operating System Interface (POSIX) and the American National Standards Institute (ANSI). Further standard application programming interfaces (APIs) from Unix and other common RTOSes are adopted for functions unavailable under these standards, or inappropriate for deeply embedded environments, such as the fork system call.
MAVLink or Micro Air Vehicle Link is a protocol for communicating with small unmanned vehicle. It is designed as a header-only message marshaling library. MAVLink was first released early 2009 by Lorenz Meier under the LGPL license.
The PX4 autopilot is an open-source system for autonomous aircraft. The project was started in 2009.
Unified Diagnostic Services (UDS) is a diagnostic communication protocol used in electronic control units (ECUs) within automotive electronics, which is specified in the ISO 14229-1. It is derived from ISO 14230-3 (KWP2000) and the now obsolete ISO 15765-3. 'Unified' in this context means that it is an international and not a company-specific standard. By now this communication protocol is used in all new ECUs made by Tier 1 suppliers of Original Equipment Manufacturer (OEM), and is incorporated into other standards, such as AUTOSAR. The ECUs in modern vehicles control nearly all functions, including electronic fuel injection (EFI), engine control, the transmission, anti-lock braking system, door locks, braking, window operation, and more.
3DR, also known as 3D Robotics, is an American company located in Berkeley, California that produces enterprise drone software for construction, engineering and mining firms, as well as government agencies.
Jani Hirvinen is one of the early Finnish IT-technology pioneers. Hirvinen is also one of the first ones developing small private sector professional level UAVs. He is among the top developers of the ArduCopter platform that - together with the included autopilot - changed the way drones are being flown all over the world. He is also the co-founder of famous international unmanned institutions ArduPilot, DIYDrones and DroneCode.
The ESP8266 is a low-cost Wi-Fi microcontroller, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.
An autonomous aircraft is an aircraft which flies under the control of on-board autonomous robotic systems and needs no intervention from a human pilot or remote control. Most contemporary autonomous aircraft are unmanned aerial vehicles (drones) with pre-programmed algorithms to perform designated tasks, but advancements in artificial intelligence technologies mean that autonomous control systems are reaching a point where several air taxis and associated regulatory regimes are being developed.
Cyphal is a lightweight protocol designed for reliable intra-vehicle communications using various communications transports, originally destined for CAN bus, but targeting various network types in subsequent revisions. OpenCyphal is an open-source project that aims to provide MIT-licensed implementations of the Cyphal protocol. The project was known as UAVCAN prior to rebranding in March 2022.
AirSim is an open-source, cross platform simulator for drones, ground vehicles such as cars and various other objects, built on Epic Games’ proprietary Unreal Engine 4 as a platform for AI research. It is developed by Microsoft and can be used to experiment with deep learning, computer vision and reinforcement learning algorithms for autonomous vehicles. This allows testing of autonomous solutions without worrying about real-world damage.