Commit Graph

45817 Commits

Author SHA1 Message Date
Andrew Tridgell
2359a5a1ea Tools: fixed stopping of capture on enable change in tempcal 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
2cf7e7945c autotest: make tempcal debug output clearer 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
6254787c26 Tools: fixed tempcal for when we have gyro cal but no accel cal 2021-01-21 13:09:21 +11:00
Andrew Tridgell
e87dbacee7 Tools: switch to fixed reference temperature of 35C 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
Andrew Tridgell
a96b6336b8 Tools: changes from review feedback 2021-01-21 13:09:21 +11:00
Andrew Tridgell
dc58b0b950 AP_InertialSensor: changes from review feedback
thanks Sid!
2021-01-21 13:09:21 +11:00
Andrew Tridgell
9561f24c0e AP_Filesystem: added @SYS/persistent.parm 2021-01-21 13:09:21 +11:00
Andrew Tridgell
5ed19c764e HAL_ChibiOS: expose load_persistent_params for @SYS 2021-01-21 13:09:21 +11:00
Andrew Tridgell
1680e6e7d6 AP_HAL: expose load_persistent_params() in hal.util 2021-01-21 13:09:21 +11:00
Andrew Tridgell
c9a83c8127 AP_InertialSensor: added INS_TCAL_OPTIONS
make persistent params optional, and allow save of accelcal
2021-01-21 13:09:21 +11:00
Andrew Tridgell
5c823debc0 HAL_ChibiOS: support saving persistent parameters to bootloader sector
when we flash the bootloader we can save key peristent parameters to
the end of the bootloader sector, allowing them to persistent across
changes of firmware type

This allows for factory temperature calibration
2021-01-21 13:09:21 +11:00
Andrew Tridgell
504f500fae AP_Common: added get_writeable_string to ExpandingString 2021-01-21 13:09:21 +11:00
Andrew Tridgell
1ddc21c9bb AP_InertialSensor: support saving tempcal params persistently 2021-01-21 13:09:21 +11:00
Andrew Tridgell
84dda13b42 autotest: use new learn param setup 2021-01-21 13:09:21 +11:00
Andrew Tridgell
8caea96ab1 AP_InertialSensor: start auto-learning at boot
This makes it easier to setup the params. The ENABLE=2 value only
takes effect at boot
2021-01-21 13:09:21 +11:00
Andrew Tridgell
e8ab8ed29e Tools: improve tempcal script
- allow display of log corrections
 - added online estimator
 - allow learning using TCLR records
2021-01-21 13:09:21 +11:00
Andrew Tridgell
30385fb8cb autotest: use set_parameters() in IMU temp cal test 2021-01-21 13:09:21 +11:00
Andrew Tridgell
0c3655b01f autotest: fixed epsilon handling in set_parameters 2021-01-21 13:09:21 +11:00
Andrew Tridgell
7cb7ad3636 AP_InertialSensor: fixed build error 2021-01-21 13:09:21 +11:00
Andrew Tridgell
2e9f61fe49 AP_InertialSensor: fixed IMU index display in msgs
start at 1 for users
2021-01-21 13:09:21 +11:00
Andrew Tridgell
d5b511f4a0 AP_InertialSensor: fixed start timer for temperature in SITL
when we are doing an autotest we want the temperature to start
climbing when we first set SIM_IMUT_FIXED=0
2021-01-21 13:09:21 +11:00
Andrew Tridgell
30e55d8dfc AP_InertialSensor: cope with user changing TMAX while calibrating 2021-01-21 13:09:21 +11:00
Andrew Tridgell
68526262b7 AP_Arming: don't allow arming during IMU temp cal 2021-01-21 13:09:21 +11:00
Andrew Tridgell
e2e97c67ce AP_InertialSensor: catch user attempt to change TMAX during cal 2021-01-21 13:09:21 +11:00
Andrew Tridgell
73e53369e8 AP_Notify: added notify events for temperature calibration 2021-01-21 13:09:21 +11:00
Andrew Tridgell
3fb720354d AP_InertialSensor: added notify events for temperature calibration 2021-01-21 13:09:21 +11:00
Andrew Tridgell
cc3579ea5d AP_InertialSensor: change TCAL sampling to be even in temperature 2021-01-21 13:09:21 +11:00
Andrew Tridgell
cf47c19c0d Filter: fixed low pass 2p filter to auto-init
this prevents the init to zero for temperature filters
2021-01-21 13:09:21 +11:00
Andrew Tridgell
4495414d05 Filter: added reset with value to LowPassFilter2p 2021-01-21 13:09:21 +11:00
Andrew Tridgell
327db46c15 autotest: added automatic testing of IMU Temperature calibration 2021-01-21 13:09:21 +11:00
Andrew Tridgell
fc0f8b990a AP_InertialSensor: added online learning of temp cal
use INS_TCAL1_ENABLE=2 to start learning
2021-01-21 13:09:21 +11:00
Andrew Tridgell
64d9f43d94 AP_Math: added polygon fitting code 2021-01-21 13:09:21 +11:00
Andrew Tridgell
720f9a1de0 AP_Math: cleanup maths functions
use class template instantiation, and cleanup const in matrix code
2021-01-21 13:09:21 +11:00
Andrew Tridgell
6f6f89e5aa AP_InertialSensor: enable temperature sensor on LSM9DS0
this allows for temperature calibration of the LSM303D in CubeBlack
and Pixhawk1
2021-01-21 13:09:21 +11:00
Andrew Tridgell
0c156e324b AP_Compass: enable temperature on lsm303d 2021-01-21 13:09:21 +11:00
Andrew Tridgell
c0ba7c29ca SITL: use TCal class for temp adjustment in SITL 2021-01-21 13:09:21 +11:00
Andrew Tridgell
4bdf506d10 AP_InertialSensor: apply 1e-5 scale factor
this keeps the params in a reasonable range for parameter editors
2021-01-21 13:09:21 +11:00
Andrew Tridgell
0f6f6bac6b AP_InertialSensor: expose TCal class for use in SITL 2021-01-21 13:09:21 +11:00
Andrew Tridgell
7921e042f1 AP_InertialSensor: added IMU temperature calibration support
this adds parameters that can be setup by an external script for
compensating for temperature variation in gyros and accels using a 3rd
order polynomial
2021-01-21 13:09:21 +11:00
Andrew Tridgell
c4664d8e32 Tools: added script to calculate IMU temp compensation parameters
this is run over an onboard log to calculate the INS_TCAL parameters
to enable temperature compensation for gyro and accel
2021-01-21 13:09:21 +11:00
Andrew Tridgell
580cd143b8 AP_AccelCal: added active() method 2021-01-21 13:09:21 +11:00