APX4 3.2.10

Please use Auterion Mission Control 1.34 or newer with this version of APX4.

Changes compared to APX4 3.2.1

General Improvements

  • Boards: Disarm the PWM ESCs after reboot/hardfault/assertion, by pulling the PWM PINs low for 100ms. Fixes: depending on how fast the system reboots, a valid PWM pulse can be created which can cause the motors to spin.

  • v6s: add MODULES_SIMULATION_SIMULATOR_SIH to default build. Fixes: SIH (simulation in hardware) not enabled on Skynode S.

  • Commander: Only set the force_failsafe (not lockdown) flag when in flight termination. Fixes: parachute trigger not working because no actuator output allowed in lockdown.

  • Commander: Handle mode change rejection the same for mode change coming in through RC and MAVLink. Fixes: mode switch to infeasible Position mode not rejected when triggered by RC button, and instead vehicle fail-safes to Altitude mode.

  • Commander: Do not allow flight mode to switch to an infeasible mode after a fail-safe event. Fixes: system switching to infeasible mode and instantly fail-safes when mode change requested after another fail-safe event.

  • Dataman: Disabled the persistent dataman storage on Skynode S as it does not have enough storage (has no SD card). Fixes: Skynode not booting anymore when SYS_DM_BACKEND is set to default (SD card) on Skynode S.

  • Commander: Separate state tracking for battery_unhealthy fail-safe. Fixes: error duplicate check for caller_id 74.

  • Mission: Replay change speed mission items on resume immediately if not going to previous waypoint. Fixes: wrong survey flight speed if operator stopped and resumed mission before reaching the survey.

  • UXRCE_DDS: Add options to specify additional robustness measurements (UXRCE_DDS_TX_TO, UXRCE_DDS_RX_TO), disabled by default. Fixes: In certain situations the DDS Agent stops sending payload to the DDS client. As the DDS client though still can ping the agent the existing robustness measurements did not trigger a reconnect.

  • MAVLink streaming: Make scaling of throttle field of MANUAL_CONTROL consistent with uORB message. Fixes: Input is processed [0, 1000] -> [-1, 1]. Output is processed [-1, 1] -> [-1000, 1000], which is against MAVLink definition.

  • Nuttx: Fix potential null pointer access in procfs_opendir, e.g. possible to trigger via MAVLink FTP.

  • ARK Jetson: Increase TELEM2 RX buffer size for DDS over serial use. Fixes: Not receiving some DDS messages sent by the Jetson on the FMU.

Sensors / State Estimation

  • Sensors: Automatically disable internal magnetometer if external ones are available. Fixes: Internal magnetometers are almost always highly affected by varying magnetic fields generated by the drone due to their location inside the drone, and should thus not be used for navigation. A fallback to the internal magnetometer can lead to worse performance than not using a magnetometer at all.

  • GNSS driver: update GPS submodule to include F9P outpute rate fix to improve RTK accuracy.

  • GNSS driver: Fix GPS RTCM instance selection. Fixes: RTCM injection of data received via MAVLINK.

  • GNSS Dump timeout increase + GNSS overflow fix. Fixes: GNSS data timeouts with RTK setups.

  • Integrator: Prevent overflow of dt in integrator class. Fixes: Overflow of dt variable in Integrator class for sensors with low sampling rates.

  • EKF2: Fix flow derivation for negative HAGL. Fixes: Drone climbs again shortly before touching down when landing with optical flow.

  • ADS1115 driver: Rework to address stability problems. Fixes: Spamming of console, probing/sensor detection and internal I2C error handling.

  • Magnetometer calibration: Fix large vehicle magnetometer calibration. Fixes: The heading after a quick magnetometer calibration ("large vehicle mag calibration") is sometimes off by up to 10-15 degrees, but correct after a reboot.

  • EKF2: improve optical flow stability near the ground. Fixes: Some EKF stability issues were occurring near the ground, where the optical flow measurement is near its singularity point (0 distance).

  • GPS: Parse RTCM3 and NAV in parallel. Fixes: The NAV + RTCM3 parser can block each other and can cause significant delay until the parser gets in sync again.

Copter / VTOL (Hover)

  • Flight Task Manual: Reset dist_to_ground_lock if dist_to_bottom is not valid. Fixes: Vehicle can climb unexpectedly back to previous altitude setpoint in manual Position mode when flying close to maximum range of distance sensor.

  • Multicopter attitude control: Fix yaw jump when switching from stabilized to another mode.

  • Multicopter position control: Improve behavior of "nudging" during landing. Fixes: Vehicle turns instead of translates in some conditions while nudging the vehicle during the landing.

  • VTOL: Fix attitude setpoint being overwritten in Stabilized mode transitions. Fixes: Pilot not being able to set roll/pitch setpoints manually during transition.

  • Multicopter: Avoid double compensation of yaw reset in Stabilized mode. Fixes: Unexpected yaw bahvior when the validity of the heading estimate changes.

Fixed-wing / VTOL Plane (Cruise)

  • EKF2: Allow sideslip fusion to always start together with airspeed fusion. Fixes: Race conditions causing the wind initialization to fail during the transition to cruise flight as the EKF needs to receive the message before activating the sideslip fusion.

  • EKF2: Allow airspeed fusion only during front transition and cruise flight. Fixes: Airspeed fusion happening in hover mode (VTOL) when airspeed is high, resulting in toggling between Descend and RTL.

  • EKF2: Constrain max variance by zero innovation update. Fixes: Estimator instability caused by manual position reset after flying for a prolonged period with wind dead-reckoning.

  • EKF-AGP: Do not reset to AGP (Auxiliary Global Position) measurement if GNSS fusion is active. Fixes: AGP resetting the position after rejection period, even if GNSS was fused all the time.

  • VTOL: Reduce schedule frequency by only registering relevant callbacks. Fixes: Specific ESCs lose communication and go to failsafe state when switching from MC -> FW in case of using DSHOT150.

New Parameters

Parameter Name
Affecting
About

UXRCE_DDS_TX_TO

All

Defines after how many seconds of not receiving RX payload the connection is reset

UXRCE_DDS_RX_TO

All

Defines after how many seconds of not sending TX payload the connection is reset

Last updated