Commit Graph

25074 Commits

Author SHA1 Message Date
Andrew Tridgell 6163659887 AP_HAL: prevent a single bad transfer causing an IMU to be marked unhealthy
This is a response to this issue:
https://discuss.ardupilot.org/t/gyro-problem-after-waypoint-log-analisys

The 2nd gyro went bad with a large offset. Then the first gyro was
marked unhealthy, forcing the EKF to switch to the 2nd gyro. That
resulted in a crash.

I think the SPI bus was getting bad transfers and the register check
code happened to get a bad transfer, thereby marking the first gyro
unhealthy

This change ensures we only fail the register check if two transfers
in a row are bad. This makes it much less likely that a noisy bus will
lead to an unhealthy gyro
2021-01-27 09:47:55 +11:00
Iampete1 ebfe593e38 AP_Scripting: add example script setting up a custom MotorMatrix 2021-01-26 11:07:36 +09:00
Iampete1 5c397d4674 AP_Scripting: add MotorMatrix bindings 2021-01-26 11:07:36 +09:00
Iampete1 fca6f7027b AP_Motors: allow Matrix config from scripting 2021-01-26 11:07:36 +09:00
Peter Hall d0e1e85b9e AP_Motors: add get_frame_mav_type 2021-01-26 11:07:36 +09:00
Randy Mackay f6cb0819ef AP_NavEKF3: pre_arm_check may skip position checks 2021-01-26 10:46:49 +11:00
Randy Mackay 8ecac27777 AP_NavEKF_Source; pre_arm_check may skip position checks 2021-01-26 10:46:49 +11:00
Randy Mackay 62932f884f AP_AHRS: pre_arm_check may skip position checks 2021-01-26 10:46:49 +11:00
Andrew Tridgell 1716fcf995 GCS_MAVLink: fixed valgrind errors with AP_Param::ParamToken 2021-01-26 10:43:09 +11:00
Andrew Tridgell ac35867c17 AP_Param: fixed valgrind errors with AP_Param::ParamToken 2021-01-26 10:43:09 +11:00
Andrew Tridgell 12b93e2922 AP_OSD: fixed valgrind errors with AP_Param::ParamToken 2021-01-26 10:43:09 +11:00
Andrew Tridgell 6c684538d3 AP_Param: greatly speed up param download with disabled parameters
allows fast skip over disabled subgroups. This removes a long delay
with param download on a MatekF405-STD where the final parameters
associated with the OSD took 80ms to fetch, causing a long loop delay
2021-01-26 10:43:09 +11:00
Peter Barker d426d8e1f8 AP_GPS: use ground_course in preference to ground_course_cd 2021-01-26 10:22:28 +11:00
Peter Barker 358069df24 AP_AHRS: use ground_course in preference to ground_course_cd 2021-01-26 10:22:28 +11:00
WillyZehnder 2e2ec79992 RC_Channel: reserve AUX_FUNC for MISSION_RELATIVE 2021-01-26 10:14:11 +11:00
Andrew Tridgell 2843cfa42d AP_InertialSensor: use mavlink statustext for cal info 2021-01-25 16:24:50 +11:00
Andrew Tridgell b542f947f7 AP_InertialSensor: don't mark accels as calibrating during trim
we need the accels with offsets applied when doing accel trim
2021-01-25 16:24:50 +11:00
Andrew Tridgell e908a996af AP_InertialSensor: support SIM_ACC_TRIM
and cleanup vector maths
2021-01-25 16:24:50 +11:00
Andrew Tridgell 7292b4f260 SITL: added SIM_ACC_TRIM_{X,Y,Z} for simulating IMU trim
this will enable an autotest for AHRS trim
2021-01-25 16:24:50 +11:00
Andrew Tridgell ddc4d08e8f AP_NavEKF3: make drag fusion optional 2021-01-24 11:56:52 +11:00
Andrew Tridgell 1ccda938cb AP_NavEKF3: make external navigation optional 2021-01-24 11:56:52 +11:00
Andrew Tridgell 8da511f039 AP_NavEKF3: make body odomotry build depend on vehicle type
saves about 11k of flash
2021-01-24 11:56:52 +11:00
E Thomas 2ee052b36e AP_GPS: Made GPS_DISABLE prevent last_fix_time_ms updates 2021-01-23 17:25:00 +11:00
Peter Barker ade1c487d8 AP_Logger: remove default reason argument for Write_Mode
All callers now supply this
2021-01-22 17:27:26 +11:00
Leonard Hall 25fff17e48 AC_AttitudeControl: constify some local variables 2021-01-22 14:22:18 +09:00
Peter Barker 3582b69e9c AP_NavEKF3: remove getFilterTimeouts access methods 2021-01-22 13:04:36 +11:00
Peter Barker 445a461f12 AP_NavEKF2: remove getFilterTimeouts access methods 2021-01-22 13:04:36 +11:00
Peter Barker 401cccca19 AP_NavEKF2: correct description on NKF3.SVT 2021-01-21 21:26:17 +11:00
Peter Barker b3bacdd33c AP_NavEKF3: remove internal-only getTiltError method 2021-01-21 21:26:17 +11:00
Peter Barker dddb285209 AP_NavEKF2: remove internal-only getTiltError method 2021-01-21 21:26:17 +11:00
Peter Barker 5ad0ac6727 AP_NavEKF3: remove unused getAccelNED method 2021-01-21 21:26:17 +11:00
Peter Barker 6b60bae068 AP_NavEKF2: remove unused getAccelNED method 2021-01-21 21:26:17 +11:00
Peter Barker e32ca819fc GCS_MAVLink: mark results as unused 2021-01-21 20:41:17 +11:00
Peter Barker 60d0b0f07c AP_AHRS: add WARN_IF_UNUSED to some getters 2021-01-21 20:41:17 +11:00
Andrew Tridgell 6c8a57c2d7 AP_InertialSensor: review fixes 2021-01-21 13:09:21 +11:00
Andrew Tridgell 3ff71c7814 AP_InertialSensor: changes from review feedback 2021-01-21 13:09:21 +11:00
Andrew Tridgell b12a663f7a AP_InertialSensor: apply accel scaling 2021-01-21 13:09:21 +11:00
Andrew Tridgell 9febcc0f98 SITL: added accel scaling parameters 2021-01-21 13:09:21 +11:00
Andrew Tridgell 73ddde3629 AP_InertialSensor: changes for new SITL IMU params 2021-01-21 13:09:21 +11:00
Andrew Tridgell b5089580a9 SITL: cleanup IMU parameters
allow for biases per IMU
2021-01-21 13:09:21 +11:00
Andrew Tridgell 5e60fac37e AP_InertialSensor: remove unused variable 2021-01-21 13:09:21 +11:00
Andrew Tridgell 285b53fe07 AP_InertialSensor: use vector polyfit
this reduces memory usage
2021-01-21 13:09:21 +11:00
Andrew Tridgell a1fb0592a9 AP_Math: specialise polyfit for vectors
this is needed to get the precision good enough for wide temperature
ranges when summing the resulting polygon coefficients
2021-01-21 13:09:21 +11:00
Andrew Tridgell c8aaceb6ac AP_LeakDetector: remove warning message on all non-sub builds
pointless pragma
2021-01-21 13:09:21 +11:00
Andrew Tridgell d0d480e858 AP_Compass: fixed matrix inverse for new name 2021-01-21 13:09:21 +11:00
Andrew Tridgell 8278a8a00b AP_AccelCal: rename from review feedback 2021-01-21 13:09:21 +11:00
Andrew Tridgell 2e2ccb40b2 AP_AccelCal: fixed inverse matrix call for new name 2021-01-21 13:09:21 +11:00
Andrew Tridgell 999268cbba AP_Math: fixup matrix algorithms to be in cpp file
this fixes an issue where optimize O2 was forced on any file that
included AP_Math.h. It also fixes the test suite for matrix_alg, and
fixes the type handling to be consistent
2021-01-21 13:09:21 +11:00
bugobliterator 3b3e2c01f8 AP_Math: templatize matrix_alg methods 2021-01-21 13:09:21 +11:00
Andrew Tridgell ffe20f7958 AP_InertialSensor: use a fixed reference temperature of 35C
this allows us to timeout the calibration when the temperature stops
rising as the polynomial no longer depends on the maximum temperature
2021-01-21 13:09:21 +11:00