What is open source flight control? (Ten famous open source hardware explained in detail)
The rapid popularity of drones is largely due to the development of open-source flight controllers, as the key device that has hindered the development of drones is the autopilot. So, what is an open-source flight controller, and how did it develop?
In the complex world of unmanned aerial vehicles, quadcopters have gained the public's attention first due to their simple structure, ease of use, and low cost.
However, quadcopters demand the highest level of flight control ability, which has led to the emergence of a large number of open-source flight controllers based on MEMS sensors.
How to define open source
Open source refers to the concept that was first applied to open-source software. The Open Source Initiative uses this term to describe software whose source code can be used by the public, and the use, modification, and distribution of such software are not restricted by licenses.
Each open-source project has its own forum, managed by a team or an individual, where the open-source code is regularly released. Programmers interested in the project can download the code, modify it, and then upload their own work. The managers then choose appropriate modifications from many and use them to improve the program, releasing a new version.
The development of open-source software gradually merged with hardware, resulting in open-source hardware (OSHW). Unlike software, physical resources should always aim to create physical goods.
Therefore, individuals and companies producing items (products) under the open-source hardware license have an obligation to ensure that the product has not been manufactured, sold, or authorized before being approved by the original designer, and that no trademarks owned by the original designer have been used.
The source code of hardware design can be obtained by others in a specific format for modification. While enabling technological freedom, open-source hardware provides knowledge sharing and encourages open communication and trade in hardware design.
The definition of open-source hardware (OSHW) 1.0 is based on the definition of open-source software.
This definition was created by Bruce Perens and developers from Debian as part of the Debian Free Software Guidelines.
What is open source flight control?
After understanding the concept of open-source hardware, it is easier to understand the concept of open-source flight controllers.
The so-called open-source flight controller is an Open Source Auto Pilot project based on the idea of open-source, which includes both open-source software and hardware. The software consists of firmware in the flight control hardware and ground station software.
Enthusiasts can not only participate in the development of software but also participate in the development of hardware. They can buy hardware to develop software or make their own hardware, which allows more people to freely enjoy the development results of the project.
The use of open-source projects has commercial implications, so each open-source flight controller project will provide official legal terms to define the rights of developers and users. Different open-source flight controllers have different legal definitions.
Development of open source flight control
The first generation open-source flight control system is based on Arduino or other similar open-source electronic platforms, with expandable connections to various MEMS sensors, which allows the drone to fly smoothly. Its main features are modularity and scalability.
The second generation open-source flight control system mostly has its own open-source hardware, development environment, and community. It adopts a fully integrated hardware architecture, integrating all 10DOF sensors, control MCU, and even GPS devices on a single circuit board to improve reliability. It uses an all-digital 3-axis MEMS sensor for the attitude control system (IMU); it can control the aircraft to complete autonomous navigation and can communicate with a radio and ground station when equipped, preliminarily possessing the function of a complete autopilot. This type of flight control can also support various unmanned devices, including fixed-wing aircraft, multi-rotor aircraft, helicopters, and vehicles, and has various flight modes, including manual flight, semi-autonomous flight, and fully autonomous flight. The main features of the second-generation flight control are high integration and high reliability, and its functionality is close to commercial autopilot standards.
The third-generation open-source flight control system will innovate in software and artificial intelligence. It will include advanced flight functions such as swarm flight, image recognition, autonomous obstacle avoidance, and automatic tracking flight, and will develop towards the direction of machine vision, clustering, and platformization of the development process.
Arduino flight control
To talk about the development of open-source flight control, we must start with the famous open-source hardware project, Arduino.
Arduino is the earliest open-source flight control developed by Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, and Nicholas Zambetti at the Interaction Design Institute Ivrea in Italy in 2005.
Arduino first built a flexible open-source hardware platform and development environment for electronic development enthusiasts. Users can obtain hardware design documents from the official Arduino website, adjust circuit boards and components to meet their actual design needs.
Arduino can view the source code and upload self-written code through the Arduino IDE software, which uses the Arduino language based on C and C++. It is very easy to learn, and the Arduino IDE can run on the three mainstream operating systems of Windows, Macintosh OSX, and Linux.
As this platform was gradually accepted by enthusiasts, various functional electronic expansion modules emerged, among which the most complex was the flight controller that integrated MEMS sensors.
In order to obtain better flight control design source code, Arduino decided to open its flight control source code, thus opening the development path of open-source flight control. The famous open-source flight control systems, WMC and APM, are direct derivative products of Arduino flight control, and are still developed using the Arduino development environment today.
APM flight control
APM(ArduPilotMega)is a flight controller product launched by the DIY drone community (DIY Drones) in 2007 and is currently the most mature open-source hardware project.
Based on the Arduino open-source platform, APM has made improvements to several hardware components, including the Inertial Measurement Unit (IMU) which includes an accelerometer, gyroscope, and magnetometer.
Due to its excellent customizability, APM has rapidly spread among the global RC model enthusiasts. With the open-source software Mission Planner, developers can configure APM settings, receive and display sensor data, and achieve automated flight using Google Maps, among other functions. However, Mission Planner is only compatible with Windows operating systems.
Currently, APM flight control has become a benchmark for mature open source flight control and can support unmanned devices such as multi-rotor, fixed-wing, helicopter, and unmanned vehicles.
For multi-rotors, APM flight control supports various four, six, and eight-axis products, and can stabilize and complete rich flight modes such as autonomous takeoff and landing, autonomous navigation flight, return home, altitude holding, and position holding after connecting to an external GPS sensor.
APM can also connect to external ultrasonic sensors and optical flow sensors to achieve altitude and position holding flight indoors.
PX4 and PIXHawk
PX4 is an open-source software and hardware project, which follows the BSD license. Its goal is to provide an affordable, high-performance autopilot for academia, hobbyists, and industry.
The project was initiated by the PIXHawk project at the Computer Vision and Geometry Lab, Autonomous Systems Lab, and Automatic Control Lab at ETH Zurich.
The PX4FMU autopilot module runs a highly efficient real-time operating system (RTOS), which uses Nuttx as a portable operating system interface (POSIX) environment. This allows software to use interfaces such as printf(), pthreads, /dev/ttyS1, open(), write(), poll(), ioctl(), etc. The software can be updated using a USB bootloader.
PX4 communicates with the ground station through MAVLink and is compatible with QGroundControl and Mission Planner. All software is open-source and follows the BSD license.
The PIXHawk flight controller, which was released in 2014 by 3DR in collaboration with the APM and PX4 teams, is an upgraded version of the PX4 flight controller. It has both PX4 and APM firmware and corresponding ground station software. This flight controller is currently the most high-end product in the world of flight control products and is the most popular product among hobbyists.
PIXHawk has a processing frequency of 168MHz and uses a Cortex-M4 microcontroller with an integrated hardware floating-point unit as the main control chip. It has two sets of gyroscopes and accelerometers MEMS sensors that complement each other, a three-axis magnetic field sensor, which can also be externally connected to another three-axis magnetic field sensor, and two GPS sensors, one primary and one backup, which switch automatically in case of a failure.
Based on its high-speed processing core and floating-point algorithm, PIXHawk uses the most advanced altitude hold algorithm, which can fix the altitude of the aircraft within 1 meter with just the barometric altimeter. It supports almost all types of multi-rotor, including tricopter and H4, which have irregular structures.
It enables the aircraft to have multiple flight modes, including fully autonomous route, key point surround, mouse guidance, "FollowMe," tail-first flight, and other advanced flight modes, and can complete autonomous tuning.
Project address: https://github.com/pixhawk
PIXHawk flight controller is very open, with hundreds of parameters open for players to adjust, and can be flown with simple debugging based on the basic mode. PIXHawk integrates multiple electronic maps, and enthusiasts can choose according to local conditions.
OpenPilot and Taulabs
OpenPilot is an autopilot project launched by the OpenPilot community in 2009, aiming to provide low-cost but powerful and stable autopilots to the society. The project consists of two parts, including the OpenPilot Autopilot and its matching software.
The firmware of the autopilot is written in C language, while the ground station is written in C++, and can run on the three mainstream operating systems of Windows, Macintosh OSX, and Linux.
The biggest feature of OpenPilot is its very simple hardware architecture, which can be seen from its many hardware designs.
The officially released flight control hardware includes CC, CC3D, ATOM, Revolution, Revolution nano, and derivative hardware such as Sparky, Quanton, REVOMINI, and even FlyingF3, FlyingF4, and DescoveryF4 directly extended from STM32 development boards. Among them, CC3D has become the preferred flight control for drones with a wheelbase of less than 300mm and ultra-small indoor models, while DiscoveryF4 is widely used by hobbyists to study flight control. Quanton has become the preferred hardware for Taulabs.
CC3D
CC3D is the most popular hardware under Openpilot, this flight control board uses only one 72MHz 32-bit STM32 microcontroller and one MPU6000 to achieve attitude control flight for quadcopters, fixed-wing aircraft, and helicopters (note that this hardware can only perform three degrees of freedom attitude control, not stabilization). The circuit board size is only 35mm×35mm.
Unlike all other open-source flight controls, it can maintain long-term attitude control without the need for GPS fusion or magnetic field sensors for correction. All of the above functions use a single firmware that can be changed by settings to switch between aircraft types, flight modes, and support for gimbal stabilization and other functions.
The compiled firmware only requires about 100KB of storage space, and its code efficiency is impressive, making it a role model for all flight control programmers. Its ground station software integrates a complete electronic map and can monitor aircraft status in real-time through a radio.
TauLabs flight control is a derivative product of OpenPilot flight control.
The most popular hardware of TauLabs at present is called Quanton, which was independently completed by members of the original OpenPilot flight control team.
It inherits the simple and efficient features of OpenPilot and expands on them by adding a barometer and a three-axis magnetometer. The main control microcontroller is upgraded to a Cortex-M4 core with hardware floating-point operation. This flight control is the earliest open-source flight control product that supports automatic parameter tuning and has a model identification algorithm that can perform self-tuning attitude PID control parameters during flight.
TauLabs can achieve many advanced flight modes and, when connected to an external GPS, can provide multirotors with functions such as altitude hold, position hold, and return home. The flight control integrates an electronic map, and the interface is very user-friendly, with a wizard mode for initialization that makes it easy for beginners to get started.
Multi Wii Copter (MWC)
Multi Wii Copter (MWC) flight controller is a typical Arduino-derived product designed specifically for multirotors with low cost. It fully retains the methods of development, device upgrade, and use of Arduino IDE.
Due to its low cost, simple architecture, and mature firmware, this flight controller has a large number of enthusiasts both domestically and internationally.
In addition to supporting common quadcopters, hexacopters, and octocopters, the biggest feature of this flight controller is its support for many unique types of aircraft, such as tricopters, BIcopter avatar-style aircraft, Y4-type multirotors (two axes are vertically arranged). This makes the development of this flight controller interesting and easy to win everyone's love.
KKMulti Copter
KK Flight Control (KKFC) is an open-source flight control project originating from South Korea and was the first widely accepted multi-rotor flight control in the early days of open-source flight control development. Its emergence was a shock to the entire quadcopter industry.
This flight control only uses three low-cost single-axis gyros and a simple four-channel remote control device to control common three, four, and six-rotor aircraft, and supports various layouts such as "cross", X-type, H-type, and up-down inversion.
The flight control uses three adjustable resistors to adjust the sensitivity as the tuning method, retaining the characteristics of early model gyros. As an important witness to the beginning of multi-rotor flight control, this "antique" classic flight control still has a large number of players.
Paparazzi(PPZ)
Paparazzi (PPZ) is a software and hardware open-source project that started in 2003 with the goal of creating a flexible and powerful open-source autopilot system. One of the unique features of PPZ is that it includes not only the usual components of a flight control system, such as hardware and software, but also ground station hardware, such as various modems and antennas, making it more like a complete small unmanned aerial system.
Another distinctive feature of this open-source project is its use of the Ubuntu operating system, which integrates all ground station software and development tools under one system, referred to by the project as the Live CD. With the CD and flight control hardware, users can complete all development and operation tasks.
The most popular hardware version of PPZ is currently the Paparazzi (PPZ) Lisa/M v2.0, which has numerous expansion interfaces and uses an expandable separate IMU sensor board. This approach was popular in the early days of open-source flight controllers as it allowed for continual hardware upgrades with improved sensors, similar to upgrading a desktop computer.
Autoquad flight control and ESC32 ESC
Autoquad is a German open-source flight controller that was developed in the early days of open-source flight control. Autoquad is known for its powerful functionality, but it was limited by the sensors available at the time, which forced it to use a large number of analog MEMS sensors.
Analog sensors refer to sensors that do not integrate an analog-to-digital converter (ADC) and computing core inside the sensor chip. Instead, they directly output the changes of the micro-electromechanical sensor as a voltage after amplification and hardware filtering, requiring the main control MCU to perform AD acquisition.
Because the sensor's output values are affected by different temperature environments, the analog MEMS sensors brought many calibration issues.
Many players had to use a refrigerator for sensor calibration when using the flight controller for the first time. To ensure the stability of batch products, some manufacturers had to heat the circuit board on the aircraft to maintain a constant temperature.
However, this calibration method brought extra fun to some experienced players, and many people enjoyed it. For most ordinary enthusiasts, it was indeed a difficult task. With the popularity of digital sensors with factory calibration, Autoquad, as a historical accumulation, has completed its mission.
However, another branch of this open-source project, ESC32, gradually gained acceptance among players.
This ESC is the first ESC product to use a digital interface for control. Players can control the motor speed through the serial port, I2C interface, and CAN interface, which is much faster than the traditional PWM interface.
The common PWM ESC has a waveform update rate of 400 times per second, while the update rate of a digital interface can reach millions of times per second. This high-speed communication is necessary, especially for multirotor aircraft that are very sensitive to changes in power.
The ESC also supports speed closed-loop control and can perform detailed parameter tuning for the motor, which is not possible with traditional RC ESCs. The project can be found at http://autoquad.org/wiki/wiki/aq-esc32/.
Of course, Autoquad is also making progress. It has released a new flight controller product, the Autoquad M4, which features a comprehensive upgrade of the main control MCU and sensors, using common STM32F4 MCUs and digital sensors.
However, faced with advanced flight control products like PIXHawk and APM that have been mature for many years, it has fallen from its predecessor to a newcomer.
Therefore, open-source flight control has largely promoted products like quadcopter drones to enter ordinary households, contributed to the development of unmanned aerial vehicle technology, and even helped people achieve their dreams of flying.
Leave a comment
All blog comments are checked prior to publishing