Skip to content

PX4-Autopilot v1.15 Release Notes

Stable

The v1.15 release brings lots of new upgrades and fixes, thanks in part to the tremendous community response to the 1.14 release. In particular, PX4 v1.15 brings significant improvements for developers and integrators using PX4 as a target through ROS 2 and the uXRCE-DDS middleware. In addition to networking and middleware updates, the new PX4 ROS 2 Interface Library allows flight modes written as ROS 2 applications to be peers of PX4 flight modes.

This release also brings new hardware support from sensors to drivers, thanks to our growing network of partners from across the industry. In this release you will enjoy updated support for common hardware options, in part sponsored by the manufacturer themselves. We are thankful for their support!

Lastly, there have been many improvements and bug fixes in the navigation code, which should result in a more enjoyable experience and straightforward debugging.

All of this makes PX4 v1.15 an ideal release, especially for anyone already enjoying the many benefits of version 1.14. We hope more users try this release and report any issues to the developer team on GitHub. (Learn how to raise an issue here).

Please continue reading for upgrade instructions.

Major Changes

  • Major improvements to navigation
  • New and updated hardware support
  • Dynamic Modes API
  • ExperimentalPX4 ROS 2 Interface Library that simplifies controlling PX4 from ROS 2.

Upgrade Guide

  • Gazebo has replaced the jMAVSim simulator as the default simulation engine for PX4-Autopilot. If you're using JMAVSim, please move to Gazebo, as that is where we will be focusing our future efforts.
  • The SYS_MC_EST_GROUP parameter has been removed, and there are now dedicated parameters for selecting an estimator. Continue reading for a description of the changes.

Other changes

Hardware Support

Common

Control

Estimation

  • Derivation changed to Error-State Kalman Filter (PX4-Autopilot#22262) Main advantages of the "error state" derivation compared to the current "total state":
    • Better convergence properties (less sensitive to initial heading accuracy)
    • More stable numerically
    • Less computationally expensive
    • Correct way of describing the quaternion uncertainty using Lie group theory
  • Use Joseph stabilized covariance update algorithm for better covariance stability and allow use of "consider states" (inactive states with non-zero variance) (PX4-Autopilot#22770)
  • Covariance prediction, measurement jacobians, state struct and covariance index auto-generated using SymForce
  • Manual position update throught MAVLink (MAV_CMD_EXTERNAL_POSITION_ESTIMATE)
  • Add Auxiliary Global Position (AGP) fusion (for e.g.: external map matching vision algorithm)

Mag:

  • New mag type "Init" (EKF2_MAG_TYPE). In this mode, the magnetometer is only used to initialize the heading of the filter. The heading is then only estimated using gyro prediction and position/velocity updates (e.g.: GNSS).
  • Mag checks rework (EKF2_MAG_CHECK):
    • Parameterize strength tolerance (EKF2_MAG_CHK_STR)
    • Add inclination check (EKF2_MAG_CHK_INC)
  • Rework mag heading fusion to correctly consider mag bias and earth field uncertainties
  • Allow mag bias estimation in all mag modes
  • Improve heading convergence speed after bad heading initialization when using GNSS aiding

IMU:

  • Improve gyro and accel bias estimation numerical stability (change delta angle and delta velocity bias to accel and gyro bias)

Optical Flow:

  • Can now run before takeoff (useful for bench testing)

Yaw Emergency Estimator:

  • Change to Error-State derivation for better performances
  • Can now run before takeoff to initialize the heading of the EKF

Sensors

Simulation

  • [Gazebo] Support for Advanced Plane, a simulated fixed-wing vehicle that provides better aerodynamic simulation than the regular plane (PX4-Autopilot#22167, gz-sim#2185)
  • [Gazebo] The environment variable PX4_SIM_MODEL can now be used to indicate the simulation model (PX4-Autopilot#22400)
    • This supersedes PX4_GZ_MODEL, which is now deprecated.
  • [Gazebo] Separation of Gazebo and PX4 SITL (PX4-Autopilot#22467)
    • The two parts of the simulation are now separated.
    • They can be independently launched in any order, and even run on different hosts across a network.
    • Gazebo additional supports drag-and-drop via the resource spawner in Gazebo GUI
  • JMAVSim Simulator is now community supported.
    • It has been deprecated as part of the official PX4 development toolchain in order to focus our efforts on Gazebo
  • [Tools/simulation/gz]: load ApplyLinkWrench plugin by default (PX4-Autopilot#21874)
  • Allow user to specify Gazebo Garden/Harmony render engine in simulations (PX4-Autopilot#22693)
  • Add support for quad tailsitter VTOL in SITL Gazebo (PX4-Autopilot#20558)
  • [Feature] Parameter for enabling/disabling PX4's internal battery simulator in SITL (PX4-Autopilot#22710)
    • [New Parameter] SIM_BAT_ENABLE
  • [gz-bridge] Fix GZ timeout for slow starting simulations (PX4-Autopilot#22194)

Ethernet

  • [Ethernet] The default static IP address (used as a fallback for DHCP) has changed from 192.168.0.3 to 10.41.10.2 (PX4-Autopilot#22517)
    • This avoids potential conflicts where the192.168.0.x range is used by routers for WIFI/ethernet networks

uXRCE-DDS Interface

  • [uXRCE-DDS] DDS Topics YAML now allows the use of subscription_multi to specify that indicated ROS 2 topics are sent to a separate uORB topic instance reserved for ROS 2 (PX4-Autopilot#22266)
    • This allows PX4 to differentiate between updates from ROS and those from PX4 uORB publishers
    • With this change ROS2 users can now decide if the messages that they are sending to PX4 will overlap with the existing uORB ones or be kept in separate instances.
  • Move VOXL from microdds client to UXRCE-DDS client (PX4-Autopilot#22997)
  • Add parameter to disable time synchronization between Agent and Client (PX4-Autopilot#21757)

ROS 2

  • [Feature] Dynamic Modes API (PX4-Autopilot#20707)
  • [Feature] [PX4 ROS 2 Interface Library]Experimental: A new C++ library that simplifies controlling PX4 from ROS 2
    • Supports adding flight modes in ROS 2 that are peers of the PX4 modes running on the flight controller.
    • Modes behave the same as an FMU-internal modes
    • Propagated to GCS and selectable by users
    • Interface for arming checks and mode requirements
    • Integrated into the failsafe state machine
  • [Feature] Multicopter Go-to Interface (PX4-Autopilot#22375)

Platform Changes

Multi-Rotor

VTOL

  • VTOL back-transition: expose tilting time as parameter and reduce overall duration (PX4-Autopilot#21760)
    • [New Parameter] VT_BT_TILT_DUR
  • [Feature] VTOL Tailsitter: add automatic pitch ramps also in Stabilized mode (PX4-Autopilot#22584)
  • [Improvement] VTOL forward thrust assist: treat Descend as Land mode (PX4-Autopilot#22843)
  • Refactor uncommanded descend Quad-Chute (PX4-Autopilot#21598)
    • [New Parameter] VT_QC_ALT_LOSS

Fixed-Wing

Rover

  • Aion R1Experimental: ESC Driver for Roboclaw motor controller. This comes with build instructions and support for the Aion R1, a new differential drive rover, along with information about integrating the Roboclaw motor controller.
  • Add dedicated Rover build variants to px4/fmu-{v5,v5x,v6c,v6x} (PX4-Autopilot#22675)

Changelog

Full changelog available on Github here. (v1.14.0...v1.15.0)