Commit Graph

17516 Commits

Author SHA1 Message Date
Andrew Tridgell 8d5d699998 AP_InertialSensor: special check for CubeBlack to force INS_USE3=1
this will cope with users loading old parameter files
2019-08-06 10:42:36 +09:00
Andrew Tridgell 10ed84f17c AP_Baro: check for all 1 ADC read on MS5611 2019-08-06 10:42:36 +09:00
Andrew Tridgell 49f7e22c72 AP_Baro: consider a baro unhealthy when outside of -200 to 200 C
this helps detects unhealthy baros on SPI where we can't detect comms
failure
2019-08-06 10:42:36 +09:00
Andrew Tridgell ecd9c88003 AP_InertialSensor: default INS_USE3 to 1 2019-08-06 10:42:36 +09:00
Andrew Tridgell 413f60ebb8 HAL_ChibiOS: fixed revo-mini build 2019-07-22 16:59:56 +09:00
Andrew Tridgell 1189123068 HAL_ChibiOS: fixed typos in hwdef.dat files 2019-07-22 16:59:52 +09:00
Andrew Tridgell 06d92ec8f2 AP_IneertialSensor: fixed startup race in SITL 2019-07-10 17:00:40 +10:00
Andrew Tridgell 2dc0c0b860 AP_Compass: backport master AK09916 driver
this allows mRoControlZeroF7 to work in copter stable
2019-07-10 17:00:40 +10:00
Phillip Kocmoud a361c9a80a AP_Baro.cpp: support DPS280 on SPI 2019-07-10 17:00:40 +10:00
Andrew Tridgell 3f0e85210c AP_InertialSensor: fixes for backport of BMI088 driver 2019-07-10 17:00:40 +10:00
Andrew Tridgell d640bb15e5 AP_HAL: added Invensensev2 defines 2019-07-10 17:00:40 +10:00
Andrew Tridgell 18956afb3c AP_InertialSensor: add drivers for register bank based Invensense Sensors 2019-07-10 17:00:40 +10:00
Andrew Tridgell fb20d032eb AP_InertialSensor: added driver for BMI088
setup for 1600 Hz accel sample, 2kHz gyro sample, 24g accel range
2019-07-10 17:00:40 +10:00
Phillip Kocmoud a90089652c AP_InertialSensor: probe IMUs for mRoControlZeroF7 2019-07-10 17:00:40 +10:00
Phillip Kocmoud da8ecbe389 AP_Baro: support DPS280 on SPI 2019-07-10 17:00:40 +10:00
Andrew Tridgell 14ea46eaba AP_HAL: added DPS280 on SPI / added board type for mRoControlZeroF7 2019-07-10 17:00:40 +10:00
Phillip Kocmoud 46fca0d94c HAL_ChibiOS: added hwdef for mRoControlZeroF7 2019-07-10 17:00:40 +10:00
Andrew Tridgell 0cdd41cb35 HAL_ChibiOS: added missing pins for F777 2019-07-10 17:00:40 +10:00
Andrew Tridgell 2123117fe7 HAL_ChibiOS: switch to new IO firmware for fmuv5 2019-07-08 10:18:09 +09:00
Andrew Tridgell 45e994c1fb RC_Channel: added get_type() method 2019-07-08 10:18:09 +09:00
Andrew Tridgell eaeebeba53 AP_IOMCU: fixup 2019-07-08 10:18:09 +09:00
Andrew Tridgell 7382fc6316 HAL_ChibiOS: support DSM bind on IOMCU 2019-07-08 10:18:09 +09:00
Andrew Tridgell 604da2d63e AP_IOMCU: sync with master IOMCU firmware
this has been well tested on master, and gives us support for DSM bind
among other things
2019-07-08 10:18:09 +09:00
Andrew Tridgell c75862d0e6 AP_NavEKF3: don't use disabled gyros in opticalflow takeoff detection 2019-07-08 09:16:22 +09:00
Andrew Tridgell 0e4aad27c5 AP_NavEKF2: don't use disabled gyros in opticalflow takeoff detection 2019-07-08 09:16:22 +09:00
Andrew Tridgell b74ae60058 AP_Mount: don't use disabled IMUs in solo gimbal code 2019-07-08 09:16:22 +09:00
Andrew Tridgell 33d0c5c08f AP_AHRS: only use enabled IMUs in DCM
honor the INS_USE parameters for DCM
2019-07-08 09:16:22 +09:00
Andrew Tridgell 00fa6b3666 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-08 09:16:22 +09:00
Andrew Tridgell e77471e2b3 AP_InertialSensor: added RC switch for killing IMUs 2019-07-08 09:16:22 +09:00
Andrew Tridgell 04e7baa4cd HAL_ChibiOS: cope with calling delay_microseconds_boost() multiple times
needed for updated IMU wait code
2019-07-08 09:16:22 +09:00
Andrew Tridgell cfa0ccf672 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-08 09:16:22 +09:00
Andrew Tridgell dbe09d68c2 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-08 09:16:22 +09:00
Andrew Tridgell c53aaab0ca 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-08 09:16:22 +09:00
Andrew Tridgell 7d4adf21eb AP_GPS: fixed u-blox F9 auto configuration
# Conflicts:
#	libraries/AP_GPS/AP_GPS_UBLOX.cpp
2019-07-06 08:42:37 +10:00
Andrew Tridgell a53877ac43 AP_GPS_UBLOX: add support for TIMEGPS message. used to get gps week 2019-07-06 08:42:34 +10:00
Andrew Tridgell eaa391d5bc 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-04 09:51:13 +10:00
Andrew Tridgell 04602180ef 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-04 09:51:13 +10:00
Andrew Tridgell 9dd60035a2 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-06-11 13:25:08 +09:00
Andrew Tridgell 1930103002 AP_NavEKF2: constrain field by table after fusion
this should make for faster convergence
2019-06-11 13:25:08 +09:00
Andrew Tridgell 5ac757ad3a 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-06-11 13:25:08 +09:00
Andrew Tridgell b752b62fbf AP_Compass: use new get_earth_field_ga() API 2019-06-11 13:25:08 +09:00
Andrew Tridgell 2284af577b AP_Declination: added get_earth_field_ga() interface
this gives a more convenient API for getting the earth field as a
vector
2019-06-11 13:25:08 +09:00
Andrew Tridgell 59669209fe HAL_ChibiOS: end scheduler boost on expected delay
we want timer thread to be higher priority than main thread while in a
long operation
2019-05-28 17:47:19 +09:00
Andrew Tridgell 9f26ae5e8c HAL_ChibiOS: fixed LEDs on new CUAVv5 revision
# Conflicts:
#	libraries/AP_HAL_ChibiOS/hwdef/CUAVv5/hwdef.dat
2019-05-28 17:47:19 +09:00
Andrew Tridgell f167b65b1f HAL_ChibiOS: fixed LEDs on CUAVv5Nano
need to be opendrain
2019-05-28 17:47:19 +09:00
Andrew Tridgell 004ce407f4 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-28 17:47:19 +09:00
Jaaaky ea4d34b75f AP_InertialSensor: fix accelcalsimple watchdog 2019-05-28 17:47:19 +09:00
Andrew Tridgell 06d796a2c8 HAL_PX4: added empty flash driver 2019-05-28 17:47:19 +09:00
Andrew Tridgell c1000cfe2a HAL_ChibiOS: fixed merge errors with hal.flash usage 2019-05-28 17:47:19 +09:00
Andrew Tridgell 0e3183b3cf HAL_ChibiOS: use hal.flash API
# Conflicts:
#	libraries/AP_HAL_ChibiOS/Storage.cpp
#	libraries/AP_HAL_ChibiOS/Util.cpp
2019-05-28 17:47:19 +09:00