PX4 Autopilot is an open-source, platform-independent flight control system oriented for drones and other uncrewed vehicles. It provides a unified codebase for multiple vehicle types, including drones, airplanes, rovers, and boats, and is equipped with advanced control algorithms and sophisticated sensor fusion. V1.14 of PX4 Autopilot is now available. A summary of the major updates and enhancements is below. You can view the release notes here.
Actuator Configuration, and updated UI in QGroundControl
This feature simplifies the configuration of the actuator output to match the hardware configuration. It is available in the QGroundcontrol user interface, making setting up and configuring the drone easier. With this update, drone developers have more flexibility when it comes to building drone hardware.
It is now much easier to configure the drone for specific hardware requirements. This new update replaces mixer files for defining vehicle geometry, mapping motors, and other functions to specific flight control outputs and testing actuator behavior. It allows users to create individual mixing geometries and actuator mappings using parameters. Common configurations are still available as preset airframes to choose from.
The old mixer file approach effectively hard-coded the geometry and outputs that you had to use for each motor and actuator on a frame. Using dynamic control allocation is much more flexible because the configuration can easily be tailored to the exact setup using runtime parameters. For example, selecting a generic airframe will allow you to specify both the geometry and output mapping while selecting a particular ready-to-fly vehicle preconfigures everything, including the corresponding output mappings. Selecting a frame like an X500 is somewhere in between the geometry is fixed, but you can connect and map the motors to any flight controller output protocol and channel you like.
The Actuator Configuration UI was an experimental feature in PX4 Autopilot’s v1.13 release, but it has now become the default configuration for all users. To use the new actuator configuration UI, you must have a QGC version of v4.2.0 or later! Read more here.
New Mixing system; Dynamic Control Allocation enabled by default
The new mixing system provides Dynamic Control Allocation that supports advanced flight modes like VTOL and adaptive control. It improves how resources are used, which significantly reduces the likelihood of crashes during flight. Dynamic Control Allocation is now the default – the old mixers were purged.
ROS 2 Bridge
ROS 2 support is now native to PX4 Autopilot. The ROS 2 bridge enables PX4 to communicate efficiently with other systems and sensors to facilitate data sharing. ROS 2 is becoming standard among robotic systems, meaning the new feature lets developers access more hardware and software systems effectively.
The PX4 platform has introduced a new middleware, uXRCE-DDS, replacing the MicroRTPS bridge used in PX4v1.13. This change enhances the integration with ROS 2, allowing for a more streamlined communication process. The new architecture uses the same message definition for both uORB and ROS2 topics, which are maintained in a single shared repository. This also paves the way for microROS, enabling ROS 2 nodes to be defined directly within PX4.
For users transitioning from PX4 v1.13, the new XRCE_DDS agent will need to be used, and applications will need to be built using the new message definitions. Some minor modifications to the application code will be required, such as adjusting topic names to match the new naming pattern and modifying the QoS settings.
Gazebo: More than a Name Change
Yes, now Gazebo is Gazebo-Classic, and the new Gazebo is simply Gazebo. But this is more than a name change. The Gazebo renaming makes it easier to understand and acquire information when using the simulated system. The new naming system follows the version numbering, with the upstream Gazebo project identified as “Harmonic” for the current stable release, while Classic is based on Gazebo11. The change will make our simulated environment more organized and easier to use for our drone developers.
As a result, the simulator naming convention has changed. Gazebo Classic build targets are now prefixed with ‘gazebo-classic_’, while Gazebo targets are prefixed with ‘gz_’. Gazebo Classic can still be used in Ubuntu 20.04 or older, but from Ubuntu 22.04 onwards, only Gazebo is supported. Gazebo supports a variety of vehicles and can be used for multi-vehicle simulation. However, the range of vehicles is less diverse than in Gazebo Classic. The Open Source Robotics Foundation welcomes contributions to expand the simulation targets. For more information, visit the PX4 documentation and the Gazebo Harmonic release notes.
PWM Motor Default Limits
The default Pulse Width Modulation (PWM) limits for motors have been updated. The disarmed, non-spinning state is now set at 1000us, up from the previous 900us. When armed, the minimum thrust idle spinning is at 1100us, and the maximum thrust highest output is at 1900us. The PWM calibration for motors and Electronic Speed Controllers (ESCs) is consistently maintained between 1000us and 2000us. This adjustment has proven effective across all tested ESCs. The purpose of this modification is to simplify PWM calibration and configuration. By implementing this change now, everyone transitioning to the 1.14 stable and control allocation will immediately benefit from a consistent new actuator configuration.
Important: Ensure your motors are not spinning at a PWM output of 1000us by removing the propellers before updating. Follow the updated PWM calibration guide.
New and Improved Hardware
Support for two new flight controllers was added: Cubepilot Cube Orange+ and Holybro Unicore UM982 GPS. Additionally, support was improved for the VOXL 2, and Cubepilot Cube Black had an issue where the hardware detection fails when a CAN device is connected to CAN1 and talking, preventing the check from getting a clear result.
Contributors and Total Commits
The 1.14 version of PX4 Autopilot is the result of months of effort, with contributions from 45 community members who made nearly 2k commits. Contributions came from various fields, including industry leaders, hobbyists, graduates, and researchers. This update means that developers can harness drone and robotics technology more efficiently, offering better performance and flexibility to end-users.
Daniel Agar, the Technical Steering Committee (TSC) Chair of Dronecode Foundation, expressed delight in PX4’s latest update and noted how it enhances the drone ecosystem. He said:
“The latest release of PX4 brings tons of new fixes thanks to community contribution from our supporters. We are excited for the new features that bring support for new, more advanced use cases as we continue to evolve the codebase, and PX4 takes a more central role in modern architectures as the safety critical piece that controls the whole operation and no longer the black box that discouraged handling of external control”Daniel Agar, TSC Chair, Dronecode Foundation
Ramon Roche, the General Manager of Dronecode Foundation, is excited about the direction of the PX4 project and welcomes the ROS community to try an alternative for safety-critical operations of aerial robotics running on embedded microcontrollers.
“The new stable PX4 Autopilot release guarantees a solid foundation for developers looking to extend beyond the microcontroller into the Linux realm on the companion computer while having access to the real-time stream of telemetry needed to develop resource intensive control algorithms for the next generation of AI robotics.”Ramón Roche, General Manager, Dronecode Foundation
You can read the full release notes here.
How to get the release
You can get the latest release (and older ones) directly from GitHub. You can build the source or try the pre-built binaries that can be found now on the GitHub releases for the PX4 Autopilot repository. You can also load v1.14 directly into your supported flight controller of choice using QGroundControl through the same procedures as before.
PX4 is an open-source flight control software for drones and other uncrewed vehicles. The project provides a flexible set of tools for drone developers to share technologies to create tailored solutions for drone applications. PX4 is hosted by Dronecode, a Linux Foundation non-profit.
You can join our community by becoming a Dronecode Foundation member and contributing to our projects.