we could arrive back at our home location and stop before enough time passed to satisfy the test. i.e. doing exactly the same steps out and back again without allowing for differences in timing leads to random failure
this allows a lot more drivers to use the GPS_DRV_OPTION but to use
ellisoid height. Particularly useful for DroneCAN GPS modules
using ellisoid height instead of AMSL is useful in some specialised
application
... or at least closer to it.
We were hard-resetting the yaw to zero when the vehicle was upright. That makes for huge simulated gyro rates, and that means the differences between the gyros can be huge sample-to-sample, so we can get gyros-inconsistent errors.
Fix things so we don't reset yaw at the same time as pitch, and also twist the vehicle to point North again when disarmed.
Debug builds utilise internal error in the Util class.
The include was being passed up from Logger->LoggerMessageWriter->LoggerBackend->Bitmask.
Periph Builds tend not to have HAL_LOGGING_ENABLED, and so the include was not present.
correct battery setup for MambaF405v2
provide suitable serial defaults for MambaF405v2
reallocate DMA channels to allow full DMA on USART3 and NeoPixel on MambaF405v2
add camera control pin to MambaF405v2
given that DCM doesn't specify to use the primary accel or gyro when fetching the data from the Ins library, it shouldn't be special-cased here when asked what the primary IMU and accel are. Note that this was asking for the *configured* backend type, rather than the active EKF type, making these clauses even stranger.
This also changes the definition of the "primary IMU index" to be whichever gyro is active rather than the accel. Since we don't currently split primary gyro/primary accel, this is a reasonable change.
the comment here was incorrect; we do not need EKF3 to have a good wind estimate to fall back to DCM here.
Also restructure the code to make it more obvious that this is what's going on.
with the change to cache results inside AP::ahrs().state we no longer need to worry about the backend's attempts to project the last-known-location forwards according to amount of time elapsed since that last-known-location was calculated.