Commit Graph

3792 Commits

Author SHA1 Message Date
Andrew Tridgell fed5426274 DCM: after some experimentation, raise the ki values a bit
this tracks the max gyro drift more accurately
2012-03-10 10:34:34 +11:00
Andrew Tridgell 89b4a9f4ed Quaternion: use gyro drift value from sensor driver 2012-03-10 10:34:34 +11:00
Andrew Tridgell fd74414884 Quaternion: go back to the full update_MARG()
the separate drift controller is too erratic on yaw hold to be usable
at the moment
2012-03-10 10:34:34 +11:00
Andrew Tridgell 1002bbcbfe SITL: cleanup the gyro drift calculations
use units that are more easily understood
2012-03-10 10:34:34 +11:00
Andrew Tridgell ad21913605 Quaternion: make the quaternion test more generic
works with DCM too
2012-03-10 10:34:33 +11:00
Andrew Tridgell a889135e78 Quaternion: update to get_gyro_drift() interface 2012-03-10 10:34:33 +11:00
Andrew Tridgell e0cc9c93a1 Quaternion: removed some unused variables 2012-03-10 10:34:33 +11:00
Andrew Tridgell f39d8dbde8 GCS: get_integrator() is now get_gyro_drift() in DCM 2012-03-10 10:34:33 +11:00
Andrew Tridgell b67b0afd10 DCM: separate out the omega_yaw_P from omega_P
this cleans up the separation of drift rates and proportional
correction from yaw source and accelerometers, allow the yaw
to run at a different rate to the accel correction
2012-03-10 10:34:33 +11:00
Andrew Tridgell f4b1dae7cf IMU: added get_gyro_drift_rate() interface
this just calls down to the InertialSensor layer
2012-03-10 10:34:33 +11:00
Andrew Tridgell f46fba54dc AP_InertialSensor: added a get_gyro_drift_rate() interface
this returns the expected max drift rate for the particular type of
gyro being used
2012-03-10 10:34:33 +11:00
Andrew Tridgell 9e07fa3af6 DCM: removed the limit on linear acceleration
we get linear accelerations of more than 1g when turning corners
2012-03-10 10:34:33 +11:00
Andrew Tridgell 4f739ea28f make 'ENABLE' and 'ENABLED' mean the same things
users get this wrong far too often!
2012-03-10 10:34:33 +11:00
Andrew Tridgell ab1aec0f77 Quaternion: minor tuning 2012-03-10 10:34:33 +11:00
Andrew Tridgell e470bf2354 DCM: minor tuning based on testing my quad 2012-03-10 10:34:33 +11:00
Andrew Tridgell 97faa47ba6 SITL: make the yaw match the APM conventions 2012-03-10 10:34:33 +11:00
Andrew Tridgell d1713bd2fb SITL: fixed the pwm output on startup 2012-03-10 10:34:33 +11:00
Andrew Tridgell 8b37790bd1 Quaternion: code cleanups and added comments 2012-03-10 10:34:32 +11:00
Andrew Tridgell f5e5ccff6a DCM: code cleanup and added more comments 2012-03-10 10:34:32 +11:00
Andrew Tridgell e2b2c9181e Quaternion: bumb up gyro drift limit to match DCM 2012-03-10 10:34:32 +11:00
Andrew Tridgell a874f920d5 ACM: removed the ADC filtering code 2012-03-10 10:34:32 +11:00
Andrew Tridgell 2b6fae6e16 ADC: removed the ADC level accel smoothing
the quaternion code does a better job of handling this noise than this
filter does
2012-03-10 10:34:32 +11:00
Andrew Tridgell 8ad6b5f4d1 Quaternion: separate out drift correction from main updates 2012-03-10 10:34:32 +11:00
Andrew Tridgell ff4f7ccc65 InertionSensor: update for new Ch6() interface 2012-03-10 10:34:32 +11:00
Andrew Tridgell d1976449fd IMU: fixed a warning 2012-03-10 10:34:32 +11:00
Andrew Tridgell e9f35bfa7f GPS: expose last_fix_time 2012-03-10 10:34:32 +11:00
Andrew Tridgell 17daa2f31c Compass: change last_update to be in microseconds 2012-03-10 10:34:32 +11:00
Andrew Tridgell 404a4e4896 ADC: use floats for ADC averaging
this costs almost nothing and improved accel/gyro calibration
2012-03-10 10:34:32 +11:00
Andrew Tridgell d17a7e81e3 APM: removed quaternion special cases 2012-03-10 10:34:32 +11:00
Andrew Tridgell 3239a00b23 APM: avoid fetching the DCM matrix twice
also no special case for quaternions
2012-03-10 10:34:32 +11:00
Andrew Tridgell e2c525434a ACM: removed quaternion special cases in CLI code 2012-03-10 10:34:31 +11:00
Andrew Tridgell e870e7bd82 ACM: removed the DCM tuning overrides
not needed now that DCM scales with deltat
2012-03-10 10:34:31 +11:00
Andrew Tridgell 13bddf05b0 ACM: removed the special case for quaternions in GCS code 2012-03-10 10:34:31 +11:00
Andrew Tridgell 1547977e1b ACM: no need to fetch offsets at startup
AP_Param handles this
2012-03-10 10:34:31 +11:00
Andrew Tridgell 34d25ab298 ACM: removed a lot of the special case code for quaternions 2012-03-10 10:34:31 +11:00
Andrew Tridgell e780dd2b44 ACM: change DCM loop to 100Hz
On my APM2 quad this seems to give better results
2012-03-10 10:34:31 +11:00
Andrew Tridgell 4c6afa36cb DCM: removed update_DCM_fast
this combines the functionality of the 'fast' DCM with the normal one,
and also speeds up both the yaw drift correction and the matrix update
code
2012-03-10 10:34:31 +11:00
Andrew Tridgell 2c279639a3 AP_IMU: fixed led flashing in gyro cal
thanks Pat!
2012-03-10 10:34:31 +11:00
Andrew Tridgell b39323bf1b AP_Math: expanded the math test suite 2012-03-10 10:34:31 +11:00
Andrew Tridgell a8fd31a5e1 AP_Math: added quaternion->matrix and earth frame routines
this will be used for 3d acceleration
2012-03-10 10:34:31 +11:00
Andrew Tridgell d3dc5bd751 AP_Math: better way of handling safe_sqrt()
better to test the result, than predict it
2012-03-10 10:34:31 +11:00
Andrew Tridgell b273df0725 SITL: avoid parent pid code on cygwin
this causes problems on windows
2012-03-10 10:34:31 +11:00
Andrew Tridgell e1ff9a641b SITL: prevent nested timer interrupts 2012-03-10 10:34:31 +11:00
Andrew Tridgell d11aab610d Quat: test patch for michael 2012-03-10 10:34:31 +11:00
Andrew Tridgell a954f68f27 Quaternion: added NaN paranoid checking
this is for Michael to run
2012-03-10 10:34:30 +11:00
Andrew Tridgell 756a91a3ee ACM: removed incorrect mode definition 2012-03-10 10:34:30 +11:00
Andrew Tridgell d24b055b66 Math: added comment on quaternion constructor 2012-03-10 10:34:30 +11:00
Andrew Tridgell 1f5095e722 Math: added is_inf() on vector3f 2012-03-10 10:34:30 +11:00
Andrew Tridgell 89a10c584d Quaternion: added more numerical safety in the quaternion code
prevent infinities from creeping in and prevent large drift changes
2012-03-10 10:34:30 +11:00
Andrew Tridgell f2e6714598 AP_Math: added quaternion helper functions and a test suite 2012-03-10 10:34:30 +11:00