The PX4 Autopilot Software project, managed by the PX4 organization, is a sophisticated flight control system designed for drones and other unmanned vehicles. It supports a wide range of airframes and is compatible with multiple operating systems including Linux, NuttX, and MacOS. The project is under active development with contributions from a global community of developers focused on continuous improvement and feature expansion.
Recent commits have been focused on enhancing various modules of the software:
Planned activities include further enhancements to MAVLink protocols, sensor drivers, and testing of newly introduced features.
The PX4 Autopilot Software project is robustly maintained with a clear focus on enhancing functionality and ensuring stability across various unmanned vehicle platforms. While the project benefits from active contributions and detailed documentation, the complexity of changes especially in critical systems like EKF2 underscores the need for rigorous testing and validation.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
David Sidrane | ![]() |
1 | 2/1/0 | 3 | 25 | 1807 |
Daniel Agar | ![]() |
3 | 6/4/0 | 21 | 41 | 1190 |
vs. last report | +2 | +5/+3/= | +19 | +39 | +1184 | |
Peter van der Perk | ![]() |
1 | 1/2/0 | 1 | 1 | 57 |
vs. last report | +1 | +1/+1/= | +1 | +1 | +57 | |
Beat Küng | ![]() |
1 | 1/2/0 | 1 | 2 | 54 |
vs. last report | +1 | =/+1/= | +1 | +2 | +54 | |
Matthias Grob | ![]() |
1 | 0/0/0 | 3 | 5 | 40 |
Alex Klimaj | ![]() |
1 | 5/2/2 | 3 | 4 | 21 |
vs. last report | +1 | +3/+2/+2 | +3 | +4 | +21 | |
Julian Oes | ![]() |
1 | 1/0/0 | 1 | 1 | 2 |
Hamish Willee | ![]() |
1 | 0/1/0 | 1 | 1 | 2 |
vs. last report | = | -1/+1/= | = | = | = | |
None (mtzm) | 0 | 1/0/0 | 0 | 0 | 0 | |
Mathieu Bresciani (bresch) | 0 | 1/1/0 | 0 | 0 | 0 | |
vs. last report | -2 | -3/-3/= | -5 | -8 | -231 | |
Daniel Mesham (DanMesh) | 0 | 1/0/0 | 0 | 0 | 0 | |
Alexis Guijarro (TOTON95) | 0 | 1/0/0 | 0 | 0 | 0 | |
Simone Ciresa (ciresimo) | 0 | 1/0/0 | 0 | 0 | 0 | |
Jukka Laitinen (jlaitine) | 0 | 0/1/0 | 0 | 0 | 0 | |
vs. last report | = | -1/+1/= | = | = | = | |
murata,katsutoshi (muramura) | 0 | 3/0/0 | 0 | 0 | 0 | |
vs. last report | -1 | =/-1/= | -1 | -3 | -30 | |
Liu1 (cuav-liu1) | 0 | 1/0/0 | 0 | 0 | 0 | |
Roman Bapst (RomanBapst) | 0 | 1/0/0 | 0 | 0 | 0 | |
None (asimopunov) | 0 | 1/0/0 | 0 | 0 | 0 | |
vs. last report | -1 | +1/=/= | -1 | -7 | -343 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The PX4 Autopilot Software project, managed by the PX4 organization, is a sophisticated flight control system designed for drones and other unmanned vehicles. It supports a wide range of airframes and is compatible with multiple operating systems including Linux, NuttX, and MacOS. The project is under active development with contributions from a global community of developers focused on continuous improvement and feature expansion.
Since the last report 6 days ago, there has been significant activity within the PX4 Autopilot Software project. Key developers such as Beat Küng, Alex Klimaj, Daniel Agar, Peter van der Perk, Hamish Willee, Julian Oes, Matthias Grob, David Sidrane, and others have contributed to various aspects of the project. The changes include updates to MAVLink communication handling, enhancements in EKF2 modules, improvements in sensor drivers, and various code cleanups and optimizations.
src/modules/mavlink/mavlink_main.cpp
, src/modules/mavlink/mavlink_main.h
src/drivers/imu/analog_devices/adis16507/ADIS16507.cpp
src/modules/ekf2
.src/systemcmds/sd_bench/sd_bench.cpp
msg/LogMessage.msg
src/modules/ekf2
.The recent activities in the PX4 Autopilot Software project demonstrate a robust effort towards refining the software's capabilities, particularly in enhancing MAVLink communication protocols, improving estimator checks, adding new hardware support through drivers, optimizing performance for different unmanned vehicle types, and streamlining the development environment. Future efforts will likely continue to focus on these areas while also addressing any emerging needs based on community feedback and technological advancements.
Issue #23092: [Bug] Airspeed selector invalidating data - This issue involves the airspeed selector flagging the airspeed data as invalid during flight, which doesn't occur consistently but has significant implications for flight safety and performance.
Issue #23091: TECS: addition of pitch in turns based on load factor - This proposal aims to adjust pitch during turns to maintain altitude more effectively, which could enhance the efficiency and stability of fixed-wing aircraft during maneuvers.
Issue #23090: Add separate vertical velocity limits for manual modes - This issue addresses the need for separate ascent and descent speed limits in manual flight modes to prevent rapid descents that could lead to hard landings or other safety issues.
Issue #23089: Added RTL and Land to modes that can be ignored for RC loss failsafe - This change proposes allowing RTL and Land modes to ignore RC loss, enhancing operational flexibility and safety during critical phases of flight.
Issue #23088: check if bson document size is set to zero and set to decoded size - This technical issue involves ensuring the BSON document size matches the decoded size, which is crucial for data integrity and system reliability.
Issue #23087: Tools: skip submodule check in CLion - A minor but useful improvement for developers using CLion, simplifying the development process.
Issue #23086: mRo Control Zero Classic: Enable GPS2 port by default - This enhancement ensures that the secondary GPS port is enabled by default on the mRo Control Zero Classic, improving out-of-the-box functionality for users requiring dual GPS setups.
Issue #23082: ekf2: start organizing aid sources - Organizational changes to enhance code clarity and maintainability.
Issue #23081: sensors/vehicle_angular_velocity: silence gyro selection fallback warning - Minor fix to reduce unnecessary warnings, improving the user experience during debugging.
Issue #23079: drivers/ins/vectornav: add missing sensor_gps velocity magnitude - A fix that ensures complete data capture from VectorNav sensors, enhancing data accuracy.
Issue #23078: drivers/ins/vectornav: minor fixes - Continued improvements to VectorNav sensor integration.
Issue #23076: ARK Pi6X: add IIS2MDC Mag and update EKF delays - Hardware support enhancements for the ARK Pi6X board, improving sensor compatibility and performance.
Issue #23075: sd_bench: make sure that unaligned is really unaligned - Ensures more accurate benchmarking of SD card performance, particularly in testing alignment impacts on speed.
Issue #23074: Enable Pixhawk to Receive MAVLink v2 Framed Messages - Addressing compatibility issues with MAVLink v2 messages, which are crucial for advanced communications and features in UAV systems.
The recent activity in the PX4 Autopilot project includes significant updates aimed at improving system capabilities such as data handling, sensor integration, and flight mode enhancements. Notable open issues involve enhancements to airspeed handling, pitch adjustments during turns, separate vertical velocity limits in manual modes, and improvements in failsafe operations during RTL and landing phases. The project also continues to see robust activity in addressing various minor fixes and updates, indicating active maintenance and incremental improvements across various modules of the system.
This pull request introduces a new parameter for controlling pitch during turns based on the load factor in fixed-wing aircraft, specifically targeting standard VTOL configurations. The motivation behind this change is to address the observed drop in altitude during turns, aiming to maintain a more consistent flight level without excessively increasing throttle.
TECS.cpp
and TECS.hpp
: Added a new term in the pitch control computation that accounts for the load factor. This term adjusts the pitch to increase the angle of attack during turns, compensating for the reduced lift.FixedwingPositionControl.cpp
and FixedwingPositionControl.hpp
: Integration of the new TECS modifications into the fixed-wing control logic, including updating parameter handling.fw_path_navigation_params.c
: Definition of a new parameter (FW_T_RLL2PTCH
) that allows tuning of the new pitch adjustment feature.FW_T_RLL2PTCH
) enhances modularity and allows easy tuning without affecting other systems.FW_T_RLL2PTCH
is a thoughtful choice, providing flexibility to users or developers to enable or disable this feature based on their platform's needs. The parameter's range and default value seem reasonable but would benefit from real-world testing to fine-tune.FW_T_RLL2PTCH
parameter will be critical for adoption and correct usage of this feature.The pull request is well-crafted with a clear focus on enhancing flight performance during turns by compensating for altitude loss due to reduced lift. The changes are isolated, minimizing impact on existing functionalities while providing significant benefits under specific flight dynamics. With thorough testing and documentation, this feature could be a valuable addition to the PX4 autopilot capabilities for fixed-wing aircraft, particularly VTOLs.
In the past few days, there has been a significant amount of activity in the PX4/PX4-Autopilot repository, with several pull requests (PRs) being merged and closed. Notably, there were no PRs that were closed without being merged.
#23057: sensors/vehicle_angular_velocity: silence gyro selection fallback warning (PX4_WARN -> PX4_DEBUG)
#23070: ekf2: GPS yaw only invalidate yaw_align if stopping due to fusion failure
#23075: sd_bench: make sure that unaligned is really unaligned
#23076: ARK Pi6X: add IIS2MDC Mag and update EKF delays
#23078: drivers/ins/vectornav: add missing sensor_gps velocity magnitude
The recent activity primarily involved merging improvements and bug fixes that enhance system stability, usability, and developer experience. These changes are crucial for maintaining the reliability and performance expected by end-users and developers alike. There were no significant issues with PRs being closed unmerged, indicating a healthy workflow in the repository management.
This pull request introduces new parameters for setting separate vertical velocity limits in manual flight modes (Altitude and Position) for multicopters. The changes are primarily within the MulticopterPositionControl
and FlightModeManager
modules, affecting how vertical velocities are handled and constrained.
MPC_Z_V_MAN_UP
for ascent and MPC_Z_V_MAN_DN
for descent) have been added to allow configuration of vertical speed limits in manual modes.MPC_Z_VEL_MAX_UP
and MPC_Z_VEL_MAX_DN
). If they do, they are set to the global limits, and appropriate warnings are logged.FlightTaskManualAltitude
ensure that the new parameters are used to constrain vertical velocities. The task now checks against these new limits instead of the global maximums when calculating velocity setpoints.FlightModeManager.cpp
ensures that empty vehicle constraints are published when no flight task is active, which helps maintain expected behavior across different flight modes.The pull request is well-crafted with clear, concise code changes that adhere to the project's coding standards and practices. It introduces useful functionality that provides finer control over drone behavior in manual flight modes, which can enhance user experience and safety during operations. The implementation checks for parameter limits add a layer of safety that prevents misconfiguration.
Given the scope and impact of the changes, this PR should undergo thorough testing, especially in real-world flight conditions, to validate the behavior under various scenarios before merging into the main branch.
src/modules/ekf2/EKF/mag_control.cpp
This file is part of the PX4 Autopilot's Extended Kalman Filter (EKF) module, specifically handling magnetometer control logic. Given its critical role in flight stability and navigation, the recent significant changes warrant a thorough review to ensure reliability and accuracy.
Key Points:
src/modules/sensors/vehicle_angular_velocity/VehicleAngularVelocity.cpp
This file deals with the sensor selection logic for estimating vehicle angular velocity, a fundamental component for flight dynamics and control systems.
Key Points:
src/systemcmds/sd_bench/sd_bench.cpp
This file contains utilities for benchmarking the SD card's performance on the PX4 platform, which is crucial for diagnosing storage performance issues that could affect logging quality or even overall system performance.
Key Points:
sd_bench
, ensuring accuracy in performance metrics is key. Consider adding more detailed logging around performance tests to aid in deeper diagnostics when needed.Overall, while each file serves a different purpose within the PX4 ecosystem, they all require high standards of reliability and clarity given their impact on either flight performance or system diagnostics.