Commit Graph

33651 Commits

Author SHA1 Message Date
Andrew Tridgell
f44e5b4afb AP_NavEKF3: set terrainState to zero on height datum reset 2019-07-06 15:50:34 +10:00
Andrew Tridgell
befefc152a AP_NavEKF2: set terrainState to zero on height datum reset 2019-07-06 15:50:34 +10:00
Andrew Tridgell
6efccab94c AP_NavEKF3: continuously update gpsGoodToAlign
use it to determine how to handle a height datum reset
2019-07-06 15:50:34 +10:00
Andrew Tridgell
358aaab472 AP_NavEKF2: continuously update gpsGoodToAlign
use it to determine how to handle a height datum reset
2019-07-06 15:50:34 +10:00
Andrew Tridgell
64ba098c57 AP_NavEKF3: ensure that both AMSL and relative alt are correct after a reset
this forces the EKF origin to the GPS alt on a height datum reset if
we have GPS lock. If we don't do this then the reported AMSL alt will
drift over time away from the GPS alt when we reset while on the
ground
2019-07-06 15:50:34 +10:00
Andrew Tridgell
2fc28e2eae AP_NavEKF2: ensure that both AMSL and relative alt are correct after a reset
this forces the EKF origin to the GPS alt on a height datum reset if
we have GPS lock. If we don't do this then the reported AMSL alt will
drift over time away from the GPS alt when we reset while on the
ground
2019-07-06 15:50:34 +10:00
Andrew Tridgell
f52ccd9982 Plane: fixed home reset alt bias
this fixes a bug in the set of home alt while disarmed. The set had a
circular dependency which could cause a large bias to build up between
home alt and gps alt due to small fluctuations in barometer data

Thanks to Nick Allen for spotting this
2019-07-06 15:50:34 +10:00
Andrew Tridgell
f6004ddfe3 AP_RCProtocol: fixed a overflow in SRXL decoder
thanks to coverity 343308 and Peter for noticing
2019-07-06 15:50:34 +10:00
Andrew Tridgell
c452486f0a AP_NavEKF3: force first EKF lane when disarmed
this ensures we consistently fly with EKF lane1 if it is healthy at
the point we arm. Otherwise the choice of lane will be a lottery.

This is important as many systems have quite different filtering and
vibration characteristics on their different IMUs. We by default
enable fast sampling only on the first IMU for example, which means
the 2nd and 3rd IMUs are more vulnerable to high freq causing
aliasing.
2019-07-06 15:50:34 +10:00
Andrew Tridgell
760bbf9921 AP_NavEKF2: force first EKF lane when disarmed
this ensures we consistently fly with EKF lane1 if it is healthy at
the point we arm. Otherwise the choice of lane will be a lottery.

This is important as many systems have quite different filtering and
vibration characteristics on their different IMUs. We by default
enable fast sampling only on the first IMU for example, which means
the 2nd and 3rd IMUs are more vulnerable to high freq causing
aliasing.
2019-07-06 15:50:34 +10:00
Andrew Tridgell
1de946b29e AP_NavEKF2: default EK2_MAG_EF_LIM to 50
this was supposed to be part of the original PR (agreed with Paul to
enable by default)
2019-07-06 15:50:34 +10:00
Andrew Tridgell
994a4b2082 AP_NavEKF2: constrain field by table after fusion
this should make for faster convergence
2019-07-06 15:50:34 +10:00
Andrew Tridgell
6f5d0fa3f0 AP_NavEKF2: added EK2_MAG_EF_LIM parameter
this sets a limit on the difference between the earth field from the
WMM tables and the learned earth field inside the EKF. Setting it to
zero disables the feature. A positive value sets the limit in mGauss.
2019-07-06 15:50:34 +10:00
Andrew Tridgell
74805870b8 AP_Compass: use new get_earth_field_ga() API 2019-07-06 15:50:34 +10:00
Andrew Tridgell
7814a3f2e3 AP_Declination: added get_earth_field_ga() interface
this gives a more convenient API for getting the earth field as a
vector
2019-07-06 15:50:34 +10:00
Andrew Tridgell
659458f208 AP_NavEKF3: don't use disabled gyros in opticalflow takeoff detection 2019-07-06 15:50:34 +10:00
Andrew Tridgell
14265d9580 AP_NavEKF2: don't use disabled gyros in opticalflow takeoff detection 2019-07-06 15:50:34 +10:00
Andrew Tridgell
91889d22cd AP_Mount: don't use disabled IMUs in solo gimbal code 2019-07-06 15:50:34 +10:00
Andrew Tridgell
1f309e8401 AP_AHRS: only use enabled IMUs in DCM
honor the INS_USE parameters for DCM
2019-07-06 15:50:34 +10:00
Andrew Tridgell
7a9203ef29 AP_InertialSensor: zero accumulators on time step
this zeros the delta angle and delta velocity accumulators when a
sensor is unavailable for a period of 0.1s. This prevents garbage
values being passed into the EKF when a sensor dies and then becomes
available again some time later
2019-07-06 15:50:34 +10:00
Andrew Tridgell
a5e3cd664b AP_InertialSensor: added RC switch for killing IMUs 2019-07-06 15:50:34 +10:00
Andrew Tridgell
d0792f29da HAL_ChibiOS: cope with calling delay_microseconds_boost() multiple times
needed for updated IMU wait code
2019-07-06 10:03:18 +10:00
Andrew Tridgell
0bbe9bfb71 AP_InertialSensor: try much harder to get all IMU samples
this we ensures we get new data for all active IMUs on each loop,
rather than sometimes returning with some IMUs not having data.

This matters as not having a sample on an IMU for a single loop can
cause an EKF IMU failover, which will degrade the learned bias
variances

The issue is usually only seen under high load, such as requesting a
loop rate beyond what the hardware is capable of
2019-07-06 10:03:18 +10:00
Andrew Tridgell
47f9cce612 AP_NavEKF3: added inactive bias learning
this allows for biases on inactive IMUs to be learned so that an IMU
switch within an EKF lane does not cause a jump in the IMU data
2019-07-06 08:34:31 +10:00
Andrew Tridgell
9f4085b0bc AP_NavEKF2: learn gyro biases for inactive gyros
this allows us to learn the gyro biases each lane would need if it had
to switch to another gyro due to a sensor failure. This prevents a
sudden change in gyro bias on IMU failure
2019-07-06 08:33:59 +10:00
Andrew Tridgell
a91af12364 AP_GPS: fixed u-blox F9 auto configuration
# Conflicts:
#	libraries/AP_GPS/AP_GPS_UBLOX.cpp
2019-07-06 08:33:15 +10:00
Andrew Tridgell
1cd90e5ae7 AP_GPS_UBLOX: add support for TIMEGPS message. used to get gps week 2019-06-29 10:05:03 +10:00
Andrew Tridgell
04438e8460 Tools: updated bootloader binaries 2019-05-06 09:04:11 +10:00
Andrew Tridgell
a03b3051fc HAL_ChibiOS: fixed LEDs on new CUAVv5 revision
# Conflicts:
#	libraries/AP_HAL_ChibiOS/hwdef/CUAVv5/hwdef.dat
2019-05-03 17:32:32 +10:00
Andrew Tridgell
c51b433c28 HAL_ChibiOS: fixed LEDs on CUAVv5Nano
need to be opendrain
2019-05-03 17:31:45 +10:00
Andrew Tridgell
376031c5f4 AP_Notify: don't use pinMode for pixracer LEDs
this is needed for LEDs that are driven by 5V, which means they need
to use OPENDRAIN.
2019-05-03 17:31:41 +10:00
Jaaaky
715f117d4b AP_InertialSensor: fix accelcalsimple watchdog 2019-05-03 10:37:34 +10:00
Andrew Tridgell
6ea22c9cf8 Plane: prepare for 3.9.8 2019-04-26 07:15:39 +10:00
Andrew Tridgell
0c5c7d55fc Plane: update release notes for 3.9.8 2019-04-26 07:15:07 +10:00
Andrew Tridgell
2094ffbf28 HAL_ChibiOS: fixed brick2 valid status in POWR flags for fmuv5
and fixed sense of VBUS
2019-04-26 07:13:11 +10:00
Andrew Tridgell
7acbcd88f8 AP_BoardConfig: add targetted check for cube black internal sensors
# Conflicts:
#	libraries/AP_BoardConfig/board_drivers.cpp
2019-04-24 12:31:33 +10:00
Jonathan Challinger
e29d03a994 AP_Baro: make crc4 a static member of AP_Baro_MS56xx 2019-04-24 12:31:02 +10:00
Jonathan Challinger
2b6ca186a8 AP_HAL_ChibiOS: add define HAL_CHIBIOS_ARCH_CUBEBLACK to cubeblack hwdef 2019-04-24 12:30:59 +10:00
Michael du Breuil
b236e80e41 AP_GPS: Log reciever status to GPS SD card
This improves log analysis of bad GPS health messages when you have a
report of bad GPS health but lost the MAVLink message, or didn't have
access to the autopilot log with the information for some reason.
2019-04-23 11:07:04 +10:00
Andrew Tridgell
1bfa79b744 AP_GPS: Remove external event from GPS data stream
If the event pin floats, this can lead to UART congestion, causing the
EKF to reject the GPS data, and the vehicle will drift around the sky in
a most disturbing manner

# Conflicts:
#	libraries/AP_GPS/AP_GPS_SBF.cpp
2019-04-23 11:06:59 +10:00
Andrew Tridgell
893c84754b Plane: prepare for 3.9.8-beta1 2019-04-22 16:51:57 +10:00
Andrew Tridgell
a9d5581378 Plane: updated release notes for 3.9.8-beta1 2019-04-22 16:51:04 +10:00
Andrew Tridgell
3680d8f1fa HAL_PX4: added empty flash driver 2019-04-22 15:58:01 +10:00
Andrew Tridgell
ca37b06af2 AP_InertialSensor: don't set INS_ENABLE_MASK to found IMU mask 2019-04-22 14:47:43 +10:00
Andrew Tridgell
a53480f904 AP_AHRS: ensure AHRS never uses an unhealthy gyro 2019-04-22 14:35:11 +10:00
Andrew Tridgell
087d20b22c HAL_ChibiOS: mark SDIO and SDMMC IO as pullup
this is needed for boards such as PixhackV3 which don't have hardware
pullups. Thanks to Hongle for reporting this.
2019-04-22 11:35:36 +10:00
Andrew Tridgell
645f758a15 Plane: don't overwrite home on a armed watchdog reset 2019-04-22 11:26:13 +10:00
Andrew Tridgell
bd6cd094c9 Plane: bypass arming checks for armed watchdog reboot 2019-04-22 11:20:42 +10:00
Andrew Tridgell
5d0e785e73 AP_Arming: make arm_checks() virtual 2019-04-22 11:11:45 +10:00
Andrew Tridgell
6d3160b473 HAL_ChibiOS: fixed merge errors with hal.flash usage 2019-04-22 09:43:25 +10:00