The `_deadreckon_time_exceeded` flag is used in
`local_position_is_valid()`. This means that
`_params.valid_timeout_max` after startup, in my observed case 5
seconds, the local position switche from valid to invalid and then after
a while back to valid again.
With this fix, the local position is flagged invalid from boot and gets validated after the first aiding event.
Co-authored-by: Julian Oes <julian@oes.ch>
This is a workaround for a warning in GCC 10.1:
src/drivers/gps/devices/src/ubx.cpp:520:8: error: writing 4 bytes into a
region of size 0 [-Werror=stringop-overflow=]
Also see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91707
* ekf: disable xy accel bias learning before takeoff
As those biases are usually poorly observable before takeoff because
they are almost perpendicular to the gravity vector, learning is often
driven by noise and numerical issues. This results in incorrect bias
learning before takeoff when the drone is static on ground for a long
period of time.
* ekf: update unit test and change indicator
This reverts the addition of a check against mission items that have the
same position. This breaks existing MAVSDK implementations where a
LOITER_TIME item is set right after a WAYPOINT with the same
coordinates. It is an interim hack to allow the vehicle to hold still
during a photo is captured.
This leaves the check in place for gates where we need to be able to
calculate the direction between gate and waypoint.
This is a non-functional change required to select accel bias estimation
per axis selection. The intent is then to disable the learning before
takeoff of the components that are poorly observable.
Because of warnings on every flight on setups without
any need for concern. Some even high quality supply voltage regulators
that are rated for 5V can with tolerances and load get lower than 4.9V.
* Support vision velocity expressed in body frame
* Use switch statement for vision velocity frame
* Robustify vision velocity frame test
* Increase lower bound on vision velocity noise to 0.05 m/s
The timestamp actually used by ekf2 is the sensor_combined timestamp, so we should be setting it with the actual data sample timestamp, rather than the aggregated sensors topic publication metadata.
Later the sensor_combined message will be replaced with vehicle_imu that carries a separate publication timestamp and raw sample timestamp.
* New NotchFilter methods ahead of RPMFilter implementation.
* Added Direct Form I implementation that support dynamic change of frequencies.
* Added update method to update frequency on an existing filter.
* Added setCoefficients method to easily and efficiently create clones of a filter.
* LowSide, HighSide, Onnotch and array tests testing the applyDF1 method.
The EAS is the calibrated airspeed corrected with a scaling factor to account for sensor error/placement of pitot.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>