PX4-Autopilot v1.15 Release Notes
StableThe 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
- Experimental PX4 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
- [Pixhawk Standards] Pixhawk Autopilot Bus (PAB) Split Base ID and FMUM ID (PX4-Autopilot#22639)
- [Pixhawk Standards] [FMUv6X] Increase TELEM2 RX buffer size to increase throughput (PX4-Autopilot#21660)
- [New Hardware] Support for FMUv6XRT - Pixhawk 6X-RT (PX4-Autopilot#22263)
- [New Hardware] MicoAir H743 (PX4-Autopilot#23218)
- [New Hardware] ARK Mosaic-X5 RTK GPS (PX4-Autopilot#22735)
- [New Hardware] ARK Pi6X Flow (PX4-Autopilot#22829)
- [Feature] Add power module selector for Auterion power modules (PX4-Autopilot#22073)
- [Lights] Add LP5562 RGBLED driver (PX4-Autopilot#21649)
- [Holybro] Enable EKF2 on KakuteH7 / KakuteH7v2 / KakuteH7mini (PX4-Autopilot#21961)
- [Cubepilot] Add support for 4. variant of Orange+ (PX4-Autopilot#22039)
- [3DR] Control Zero Classic Support Improvements (PX4-Autopilot#22971)
Common
SYS_MC_EST_GROUP
has been removed and there are now dedicated parameters EKF2_EN, ATT_EN, and LPE_EN for Switching State Estimators (PX4-Autopilot#22567)- Most setups should enable EKF2_EN (the default).
- [Experimental] Zenoh Pico support (PX4-Autopilot#22017)
- [Bootloader] add force-erase option and bootloader version (PX4-Autopilot#22777)
- [uORB] Allow for more than 255 uORB messages (PX4-Autopilot#21923)
- [Feature] Improve mission resume, e.g. replay gimbal and camera commands of a survey (PX4-Autopilot#21710)
- [Feature] Resume mission with flight speed from previous mission items (PX4-Autopilot#21714)
- [Feature] Warn user when navigation failure is imminent (PX4-Autopilot#21876)
- [Navigator] Geofence improvements (PX4-Autopilot#22394)
- [Improvement] Commander: trigger warning when arming denied due to check failure (PX4-Autopilot#22885)
- [Improvement] Commander: make failsafe warnings shorter (PX4-Autopilot#22886)
- Support for a remote parameter database (PX4-Autopilot#22836)
- New platform independent UART interface (PX4-Autopilot#21723)
Control
- [Offboard] ros2 offboard control allows for direct motors and servo control (PX4-Autopilot#22222)
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
)
- Parameterize strength tolerance (
- 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
- NXP UWB SR150 Driver fixes (PX4-Autopilot#1123)
- Septentrio GPS updates (PX4-Autopilot#23386)
- Ublox add UBX-RXM-RTCM for RTCM input status (PX4-Autopilot#21595)
- Add TDK IIM42653 IMU driver (PX4-Autopilot#21019)
- [Feature] Make airspeed sensor configuration easier and consistent with other sensors (PX4-Autopilot#22510)
- [New Parameter]
SYS_HAS_NUM_ASPD
,FW_USE_AIRSPD
- [New Parameter]
- [logger]: log all GPS data (PX4-Autopilot#22421)
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.
- This supersedes
- [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
- [New Parameter]
- [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
to10.41.10.2
(PX4-Autopilot#22517)- This avoids potential conflicts where the
192.168.0.x
range is used by routers for WIFI/ethernet networks
- This avoids potential conflicts where the
MAVLink
- [Gimbal] fix auto RC and MAVLink mode (PX4-Autopilot#23236)
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)
- [New Parameter]
UXRCE_DDS_SYNCT
- [Documentation] Middleware uXRCE-DDS / ROS 2 / Gazebo Simulation
- [New Parameter]
ROS 2
- PX4 ROS 2 Interface LibraryExperimental: A new C++ library that simplifies controlling PX4 from ROS 2 (PX4-Autopilot#20707)
- Supports adding flight modes in ROS 2 that are peers of the PX4 modes running on the flight controller.
- Multicopter Go-to Interface (PX4-Autopilot#22375)
Platform Changes
Multi-Rotor
- [New Mode] Throw launchExperimental: Start a multicopter by throwing it into the air. PX4-Autopilot#21170
- [New Mode] Position Slow Mode: A slower version of Position mode, where the maximum horizontal velocity, vertical velocity and yaw-rate axes can be configured to lower values (using parameters, RC controller knobs/switches, or MAVLink). PX4-Autopilot#22102
- [Helicopter] add tail servo support PX4-Autopilot#21274
- [Helicopter] Add back support for coaxial helicopters with the new actuator allocation. Documentation, PX4-Autopilot#22083
- [Improvement] Multicopter position control parameter descriptions (PX4-Autopilot#21729)
- [Improvement] Default motor PWM limits minimum 1100 maximum 1900. Default changed from 900us to 1000us! Documentation, PX4-Autopilot#21513
VTOL
- VTOL back-transition: expose tilting time as parameter and reduce overall duration (PX4-Autopilot#21760)
- [New Parameter]
VT_BT_TILT_DUR
- [New Parameter]
- [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
- [New Parameter]
Fixed-Wing
- Simplified airspeed sensor configuration (PX4-Autopilot#22510):
- Replace parameter
CBRK_AIRSPD_CHK
with SYS_HAS_NUM_ASPD and renamed parameterFW_ARSP_MODE
to FW_USE_AIRSPD. - To be able to arm without an airspeed sensor set
SYS_HAS_NUM_ASPD
to 0. - To not use the airspeed sensor data in the controller, set
FW_USE_AIRSPD
to 0.
- Replace parameter
- [Improvement] Fixed-wing high (dynamic) wind hardening (PX4-Autopilot#21764)
- Attitude controller cleanup (PX4-Autopilot#22472)
- [Feature] FW TECS: rename
FW_T_THR_DAMP
toFW_T_THR_DAMPING
andFW_T_I_GAIN_THR
toFW_T_THR_INTEG
as the interpretation of these parameters has changed (PX4-Autopilot#22548) - [Feature] Enable high rate logging for VTOL (PX4-Autopilot#22700))
- [Feature] Add functionality to disable rate control of certain axes in fixed-wing Acro mode (PX4-Autopilot#21566)
- [New Parameter]
FW_ACRO_AXS_CTRL
- [New Parameter]
- Add Fixedwing path following as a separate controller state (PX4-Autopilot#21376)
- Added PerformanceModel for fixed wing (PX4-Autopilot#22091)
- [New Parameter]
FW_S_CEILING
- [New Parameter]
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)