Releases: PX4/PX4-Autopilot
v1.15.0-Beta1
What's Changed
- Use snprintf over sprintf by @patrickelectric in #21583
- Fix uncalibrated RC input being used by @MaEtUgR in #21543
- Mavlink receiver unadvertise all uorb multi topics by @AlexKlimaj in #21631
- [mavlink_messages] Missmatch between header macros and class used by @loicdubois in #21603
- Create stale bot (Github actions) by @junwoo091400 in #21630
- Cannode add Gnss Auxiliary publisher by @AlexKlimaj in #21637
- FW Rate Controller: allow to enable/disable yaw axis in Acro by @sfuhrer in #21566
- FW Position Controller: navigateWaypoint(): fix corner case of vehicle not turning back to waypoint by @sfuhrer in #21635
- ekf2: fuse mag update last heading fuse time if updating all states by @dagar in #21276
- Add support for quadtailsitter in SITL Gazebo by @Jaeyoung-Lim in #20558
- Cannode add OSD drivers by @AlexKlimaj in #21639
- Layered, lock-free param system by @ThomasDebrunner in #21252
- ArmingStatus set to Armed based on actuator_armed.armed by @henrykotze in #21563
- Refactor uncommanded descend Quad-Chute by @RomanBapst in #21598
- Navigator: MissionFeasibilityCheck: check if items fit to the current vehicle type by @sfuhrer in #21602
- Add Open Drone ID arming check by @katzfey in #21652
- fmu-v6x: Increase Mavlink UART buffers by @niklaut in #21660
- Navigator: make sure to reset mission.item fields touched by set_vtol_transition_item by @sfuhrer in #21641
- FW/VTOL: open up a couple of param constraints by @sfuhrer in #21597
- Update sitl_multiple_run.sh by @gamberoillecito in #21538
- netman: update module description by @mrpollo in #21664
- netman: fix line too long by @julianoes in #21680
- ekf2: symforce - use builtin Rot3 and Quaternion operations by @bresch in #21359
- Update modalai fcv2 board support for 1.14 by @katzfey in #21653
- lights: Add LP5562 RGBLED driver by @julianoes in #21649
- rc_update: throttle trim centering fix for reverse channel by @MaEtUgR in #21682
- delete unused ECL_LIB_GIT_VERSION by @oneWayOut in #21677
- Add magnetometer thermal calibration/compensation. by @mcsauder in #20288
- ADS1115 Update docs - for discussion by @hamishwillee in #21638
- logger: restart on file write error by @bkueng in #21389
- Ublox add UBX-RXM-RTCM for RTCM input status by @AlexKlimaj in #21595
- ekf2: Fix description of EKF2_HDG_GATE by @mortenfyhn in #21708
- Always trigger all cameras by @potaito in #21684
- factory calib: add option to exclude mag to param SYS_FAC_CAL_MODE & exclude _PRIO params by @bkueng in #21707
- boards: increase init stack size by 150B by @bkueng in #21695
- EKF2: Zero gyro update by @bresch in #21691
- Motor output ramp consistent for higher than minimum initial motor command by @MaEtUgR in #21690
- ARKV6X sync with FMUV6X by @AlexKlimaj in #21669
- Update submodule sitl_gazebo-classic to latest Sat May 27 00:39:00 UTC 2023 by @dagar in #21645
- Convert Github Issue Templates to YAML by @junwoo091400 in #21629
- navigator: send commands to anyone listening by @sfuhrer in #21697
- Fix PWM/Oneshot calibration by @MaEtUgR in #21711
- mavlink heartbeat stream: Fix system status always reporting FLIGHT_TERMINATION in HITL by @KonradRudin in #21636
- Driver: Refactor MCP23009 GPIO expander into uORB driver by @niklaut in #21466
- Fix enum for COM_RC_IN_MODE in failsafe by @beniaminopozzan in #21733
- FW Rate Controller: fix saturation logic for VTOLs with differential thrust enabled by @sfuhrer in #21713
- Micro-XRCE-DDS-Client: update submodule by @bkueng in #21724
- boards: disable gyro fft module for v4 to safe flash by @sfuhrer in #21735
- ekf2: regenerate yaw estimator symforce by @dagar in #21740
- Navigator Mission: Improve mission resume by @sfuhrer in #21710
- param save: Add a blocking API for param saves to be used from shell. by @ThomasDebrunner in #21737
- lightware_laser_serial: fix pointer for enabling serial mode by @MaEtUgR in #21747
- ROMFS : POSIX Airframes reserve space for custom models by @hendjoshsr71 in #21744
- Fix reject_mag* and imu_coning* key errors by @duckythescientist in #21717
- ArmingChecks: disallow arming via parameter by @MaEtUgR in #21742
- mc_pos_control: pass on parameter metadata by @MaEtUgR in #21729
- Update ekf derivations to SymForce 0.9.0 by @bresch in #21762
- icp201: increase startup delay (FMUv6X) by @mrpollo in #21765
- Tiltrotor: VTOL back-transition: expose tilting time as parameter and reduce overall duration by @sfuhrer in #21760
- MR-CANHUBK3 ADAP board support, add ADC support by @PetervdPerk-NXP in #21579
- GitHub Actions: Use Debian 11 for linux targets and have the required cmake version by @MaEtUgR in #21749
- Navigator: loiter: remove unnecessary _loiter_pos_set by @sfuhrer in #21776
- Update Issue templates by @junwoo091400 in #21779
- Stale action re-configure (still just debug mode) by @junwoo091400 in #21783
- Stale bot configure by @junwoo091400 in #21785
- Do not handle yaw stick multiple times in Altitude and Position mode by @MaEtUgR in #21781
- rc.board_arch_defaults: add the silent flag for EKF2_MULTI_IMU by @Igor-Misic in #21758
- Handle illogical LOG_REQUEST_LIST messages more gracefully by @harrisonmg in #21784
- kakutef7: make it usable again by @Igor-Misic in #21759
- v6x: start mavlink on TELEM2 for skynode by @bkueng in #21751
- helicopter: add tail servo support by @bkueng in #21274
- VL53L1X: Reduce CPU usage by @dirksavage88 in #21787
- EKF2: vision attitude error filter by @bresch in #21791
- Navigator: Loiter: always establish new Loiter with center at current position by @sfuhrer in #21775
- Navigator RTL: run find_RTL_destination() only on_inactive by @sfuhrer in #21782
- (Mission) FeasibilityChecker: remove duplicate line by @tstastny in #21689
- ROMFS: auto try RGBLED is31fl3195 by @julianoes in #21718
- Random fixes for GCC 13 by @patrickelectric in #21738
- EKF2 cleanup. Use MAX_NUM_x constants instead of hard-coded numbers by @antonio-sc66 in #21809
- FMUv6X: Enable ADS1115 by @mrpollo in #21792
- geofence: fix altitude change fence check by @bresch in #21806
- lightware_laser_i2c: add SF30/D by @bkueng in #21807
- fake_magnetometer: add dpends=fake_magnetometer by @xianglunkai in #21803
- Default motor PWM configuration by @MaEtUgR in #21513
- EKF2: use timestamp from argument of PublishEvPosBias() by @sfuhrer in #21822
- rc_update: fix on-off-switch with negative threshold values by @MaEtUgR in #21796
- Optical ...
Stable Release v1.14.0
Major Changes
- Dynamic Control Allocation
- Improved Preflight Failure Check Reporting
- Failsafe Simplification and Simulation
- Default Simulation is now New Gazebo
- Improved ROS 2 Interface thanks to uXRCE-DDS
Read Before Upgrading
The v1.14 release includes a few breaking changes for users upgrading from previous versions, in particular we are moving away from using mixer files to define the vehicle geometry, motor mappings and actuators.
Additionally, we deprecated the Fast-RTPS interface used by ROS 2 in favor of a much cleaner solution that doesn't require a custom build target, and goes away with the additional message generation step.
Please see our detailed upgrade instructions on our docs.
Dynamic Control Allocation
We are very excited to enable the new dynamic control allocation by default; it allows users to define vehicle configurations at runtime without needing a mixer file, thanks to the new vehicle setup dashboard in QGroundControl.
Improved Preflight Failure Check Reporting (QGC Arming Checks UI)
PX4 v1.14 adds much improved preflight failure reporting through the events interface. If the vehicle won't arm, you can more easily find out why in the QGC Arming Checks UI (opens new window). No more wondering if it's a problem with the safety switch, a poor calibration, or something in the internals of the estimator!
As part of this change, it is now possible to switch to any mode when disarmed (previously you could not switch to a mode that required GPS if you didn't have a good position estimate). PX4 will only allow you to arm when the conditions for the current mode are met, and will report failure checks that are not relevant to the current mode as warnings.
Failsafe Simplification
Safety Failsafe handling has been simplified, in particular with respect to what happens if a failsafe is triggered when another failsafe is already in progress.
There is now a hold delay before the action is performed, giving the user time to override the failsafe if needed.
If multiple failsafes are triggered, the more severe action is taken. For example if both RC and GPS are lost, and manual control loss is set to Return mode and GCS link loss to Land, Land is executed.
The new Failsafe State Machine Simulation allows you to test failsafe behaviour under all possible configurations and conditions.
New Gazebo
Given the recent changes (opens new window) by the Open Robotics simulation team, we are introducing name changes for our gazebo simulations, mirroring Open Robotics naming scheme, starting with v1.14:
Ignition Gazebo (opens new window) to Gazebo
Gazebo (opens new window) to Gazebo Classic.
Most importantly this affects the PX4 build target names as well:
Gazebo targets are prefixed with gz_ (e.g. make px4_sitl gz_x500).
Gazebo Classic make targets are now prefixed with gazebo-classic_ (e.g., make px4_sitl gazebo-classic_cloudship).
Improved ROS 2 Interface via uXRCE-DDS
We updated the ROS 2 interface, replacing Fast-RTPS (opens new window) with uXRCE-DDS, resulting in an improved experience across the board. The change also avoids the need for _rtps build targets, enabling the interface on even more targets by default.
v1.14.0-rc1
Release Candidate v1.14.0
What's Changed
- [New] Dynamic Control Allocation
- [New] Default simulation is now New Gazebo
- [New] Improved ROS 2 Interface thanks to uXRCE-DDS
Read Before Upgrading
The v1.14 release includes a few breaking changes for users upgrading from previous versions. In particular, we are moving away from using mixer files to define the vehicle geometry, motor mappings, and actuators.
Additionally, we deprecated the Fast-RTPS interface in favor of a much cleaner solution that doesn't require a custom build target and goes away with the additional message generation step.
Please read the full release notes for recommended steps for upgrading users.
Changes between releases
Since beta2 ~ RC1
- FWPositionControl: navigateWaypoints: fix logic if already past waypo… - PX4-Autopilot#21642
- Geofence: Disable pre-emptive geofence predictor by default - PX4-Autopilot#21657
- VTOL mission item resets and QC rework - PX4-Autopilot#21665
- RTCM Fixes - PX4-Autopilot#21666
- FW/VTOL: open up a couple of param constraints - PX4-Autopilot#21671
- netman: update module description (#21664) - PX4-Autopilot#21673
- lights: Add LP5562 RGBLED driver - PX4-Autopilot#21685
- rc_update: throttle trim centering fix for reverse channel - PX4-Autopilot#21692
- Fix Rover Thrust Normalization - PX4-Autopilot#21722
- FW Rate Controller: fix saturation logic for VTOLs with differential thrust enabled - PX4-Autopilot#21725
- Fix PWM/Oneshot calibration - PX4-Autopilot#21726
- icp201: increase startup delay (FMUv6X) - PX4-Autopilot#21766
- SITL Tailsitter tuning fixes and add quadtailsitter - PX4-Autopilot#21773
- FMUv6X: Enable ADS1115 - PX4-Autopilot#21794
- Navigator: Loiter: always establish new Loiter with center at current… - PX4-Autopilot#21798
- Default motor PWM configuration - PX4-Autopilot#21800
- rc_update: fix on-off-switch with negative threshold values - PX4-Autopilot#21801
- ROMFS: auto try RGBLED is31fl3195 - PX4-Autopilot#21804
- netman line too long - PX4-Autopilot#21829
- icp201: increase startup delay (FMUv6X) - PX4-Autopilot#21834
- mag_cal: fix mag bias estimate to mag cal - PX4-Autopilot#21835
- airframes/x500_v2: move motors from AUX to MAIN - PX4-Autopilot#21841
- Opt flow fixes - PX4-Autopilot#21844
- Jenkinsfile-compile board updates - PX4-Autopilot#21860
Changelog since v1.13.3
Stable Release v1.13.3
Stable Release v1.13.3
What's Changed
- [New] CUAV Pixhawk V6X #21221
- [New] Holybro Pixhawk 6C Mini #21227
- [New] ARK PAB Carrier #21104
- [Fix] Cube Orange: enable mavlink_shell #20868
- [Fix] mRo Pixracer Pro: Configure FRAM for mRo PixracerPro. #21161
- [Fix] mRo Pixracer Pro: fix voltage/current monitoring #19757
- [Fix] Add support for ROS2 Humble for the microRTPS bridge #20968
Full Changelog: v1.13.2...v1.13.3
Stable Release v1.13.2
What's Changed
- Navigator: fix init of _mission_item by @sfuhrer in #20496
- Holybro PX4Vision: Don't use IO by @julianoes in #20534
- px4_fmu-v6: Add Revision 1 to manifest to note I2C4 is only internal by @julianoes in #20526
- VTOL takeoff problem hotfix by @MaEtUgR in #20568
- EKF2: ZVU improvements by @bresch in #20613
- fmu-v2: make optional sensor startup quiet by @julianoes in #20384
Full Changelog: v1.13.1...v1.13.2
Stable Release v1.13.1
What's Changed
- [BACKPORT v1.13] drivers/imu/invensense/icm42670p: cleanup and small fixes by @julianoes in #20165
- [BACKPORT v1.13] px4_fmu-v6x:HB Mini add Ver 3, Ver 4 init by @julianoes in #20166
- standard: fixed pusher assist in hover by @sfuhrer in #20220
- V1.13.0 ARKV6X Backport by @AlexKlimaj in #20253
- [BACKPORT v1.13] Pixhawk 6C external bus hack by @julianoes in #20250
- [BACKPORT v1.13] Add PX4 vision v1.5 Airframe by @julianoes in #20244
- Backport Add BMP390 to BMP388 driver by @AlexKlimaj in #20261
- [v1.13] boards/platform: remove confusing override by @julianoes in #20264
- [BACKPORT v1.13] Add Holybro Pixhawk Pi CM4 Baseboard Support by @julianoes in #20182
- [BACKPORT v1.13] libuavcan: update submodule by @julianoes in #20314
- [v1.13] Fix RTK by @julianoes in #20310
- 1.13 Backport Fix ARKV6X control allocator with base boards by @AlexKlimaj in #20315
- [BACKPORT v1.13] ms5611: ignore reading 0 by @julianoes in #20351
Full Changelog: v1.13.0...v1.13.1
Stable Release v1.13.0
This is the v1.13 stable release, which brings a number of significant improvements to PX4:
The full release notes are here: https://docs.px4.io/master/en/releases/1.13.html
Common
- Control Allocation Beta (PR#18776)
- Autotune for fixedwing and multicopter
- Explicit Joystick source selection (PR#17404)
- Possibility to:
- Explicitly allow just one source
- Fall back to other source in air
- Disable stick input completely
- Configuration parameter: COM_RC_IN_MODE
- Possibility to:
- Remaining flight time based on low battery (PR#17828)
- Remaining flight time based low battery RTL (PR#18646)
- Improved default battery estimation parameters (PR#19429, PR#19700)
- Autonomous gentle touch down using distance sensor (PR#19126)
- Orbit Flight Mode Improvements (approach smoothness, radius limiting, and stick input with heading not to the center)
Sensors
- Barometers
- Hygometer
- Sensirion SHT3X (PR#18910)
- IMU
- Optical Flow
- Pixart PAA3905 (PR#19461)
- Power Monitor
- Misc
Hardware
- ARK CAN RTK GPS (PR#18412)
- ATL Mantis EDU (PR#17910)
- Diatone Mamba f405 mk2 (PR#18402)
- Holybro Kakute H7 (PR#19019)
- Matek GNSS-M9N-F4 (PR#19061)
- Matek H743-slim (PR#18544)
- mRo Control Zero Classic (PR#19593)
- Pixhawk FMUv6C (PR#19544)
- Raspberry Pi Pico (PR#18083)
- Sky Drones SmartAP Airlink (PR#19529)
MAVLink
- MAVLink triggered parachute system support (PR#18589)
Estimation
- EKF2 barometer bias estimator
- EKF2 range finder kinematic consistency check
- EKF2 propeller momentum drag coefficient used for multi-rotor wind estimation.
- incremental accel and gyro auto-calibration
- dedicated magnetometer bias estimator for easy preflight calibration
Control
- Dynamic Control Allocation (PR#18776)
- Disabled by default, see usage instructions to get started
- Easy and flexible actuator configuration
- Support for more hardware setups without manual mixer file adjustments
- Possibility to dynamically adjust allocation in flight e.g. rotor loss
CAN
- UAVCANv1 aka OpenCyphal
- DroneCAN
- Battery Support
- Hygrometer Support
- Internal Combustion Engine (ICE)
- Log message handling from CAN nodes
Full Changelog:
Full Changelog: v1.12.0...v1.13.0
v1.13.0-rc1
PX4 stable v1.13.0 first release candidate
v1.13.0 Beta 1
v1.13.0-beta1 v1.13.0 Beta 1
Stable Release v1.12.3
- Enable Cube Orange built in ADS-B receiver by default: #18188
- fixed flash overflow on px4_fmu-v2_default and px4_fmu-v5_optimized