altos: Don't eliminate baro above mach speed, just trust it less
authorKeith Packard <keithp@keithp.com>
Sun, 27 Aug 2017 02:16:47 +0000 (19:16 -0700)
committerKeith Packard <keithp@keithp.com>
Mon, 28 Aug 2017 00:40:40 +0000 (17:40 -0700)
commitea6fe21d78744d7e6225a56c369d54f7cd956767
tree643d3d5cd7eac4f4dd8c1b178f3bf637a85ea319
parent12ef994a24eb996458092dc35c671d6b824b1576
altos: Don't eliminate baro above mach speed, just trust it less

Instead of completely eliminating the baro sensor above mach speed,
just derate it a bit so that the accel will dominate for speed
computation and keep the device from false-triggering across mach
transitions.

When we completely ignored the baro sensor above mach, and the flight
spent considerable time in that speed range, then the estimated height
could be far from the real value. When the estimated speed dropped
back down and the baro values were brought back into the computation,
then the resulting rapid shift in estimated speed could trigger
accidental apogee detection.

By mixing in a bit of baro data even above mach, we keep the estimated
height closer to the baro value and prevent this error, at least in
flights measured so far.

The flight known to have this problem is:

2015-09-26-serial-2093-flight-0012.eeprom

Signed-off-by: Keith Packard <keithp@keithp.com>
src/kernel/ao_flight.c
src/kernel/ao_kalman.c
src/kernel/ao_sample.h