Commit Graph

1383 Commits

Author SHA1 Message Date
Andrew Tridgell
0da64e98f8 Compass: don't save the orientation to EEPROM
there is no point in saving this, the value is only configurable at
compile time for now, and is always set
2012-03-11 15:37:07 +11:00
Andrew Tridgell
0ec9857689 Math: any euler angle with pitch > 90 is invalid
both DCM and quaternion always return pitch in the range -90 to 90
2012-03-11 15:37:07 +11:00
Andrew Tridgell
4bf28d499a Quaternion: update for new Quaternion interface 2012-03-11 15:37:07 +11:00
Andrew Tridgell
e8f1c5742b DCM: update for new Matrix3f interface 2012-03-11 15:37:07 +11:00
Andrew Tridgell
4d3789d11c AP_Math: update the test suite 2012-03-11 15:37:07 +11:00
Andrew Tridgell
4422486d44 AP_Math: made rotation matrices more C++
thanks to Adam for the suggestion
2012-03-11 15:37:07 +11:00
Andrew Tridgell
5c6368bad3 AP_Math: allow null pointers in Quaternion::to_euler()
this matches the Matrix3f method
2012-03-11 15:37:07 +11:00
Andrew Tridgell
16c95236c0 Quaternion: use the new quaternion API 2012-03-11 15:37:07 +11:00
Andrew Tridgell
9f0cb78f08 AP_Math: re-work quaternion functions to be more C++ like
thanks to Adam for the suggestion!
2012-03-11 15:37:07 +11:00
Andrew Tridgell
9e30b5e4a5 I2C: fixed cr/lf mess 2012-03-11 15:37:07 +11:00
Andrew Tridgell
6021daf423 OpticalFlow: adapt optical flow library to new rotation system 2012-03-11 15:37:07 +11:00
Andrew Tridgell
2ab3d2c080 OpticalFlow: fixed line endings
this library was a mixture of dos and unix line endings, which makes
for very messy editing
2012-03-11 15:37:07 +11:00
Andrew Tridgell
cb96dd975f Compass: update the compass driver to use the new vector.rotate() method 2012-03-11 15:37:07 +11:00
Andrew Tridgell
55aa43a70d Math: added a test suite for the new rotation methods 2012-03-11 15:37:07 +11:00
Andrew Tridgell
289c64c0b9 Math: added vector3.rotate() and matrix3.rotation() methods
these operate on a "enum Rotation" which defines a set of standard
rotations. These are much faster than our previous method, plus use
less memory
2012-03-11 15:37:07 +11:00
Andrew Tridgell
ba8e764349 SITL: lower the noise and drift levels for general autotest usage 2012-03-10 10:34:34 +11:00
Andrew Tridgell
b02ca58901 InertialSensor: fixed HIL build 2012-03-10 10:34:34 +11:00
Andrew Tridgell
44ebb20329 MAVLink: bring the v1.0 MAVLink in sync with 0.9 2012-03-10 10:34:34 +11:00
Andrew Tridgell
87c463bcc7 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
eff6778515 Quaternion: use gyro drift value from sensor driver 2012-03-10 10:34:34 +11:00
Andrew Tridgell
3989fe2c2c 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
c8189c80d4 SITL: cleanup the gyro drift calculations
use units that are more easily understood
2012-03-10 10:34:34 +11:00
Andrew Tridgell
b833190abb Quaternion: make the quaternion test more generic
works with DCM too
2012-03-10 10:34:33 +11:00
Andrew Tridgell
2f9af05cfa Quaternion: update to get_gyro_drift() interface 2012-03-10 10:34:33 +11:00
Andrew Tridgell
bf16b2926c Quaternion: removed some unused variables 2012-03-10 10:34:33 +11:00
Andrew Tridgell
3b2609c441 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
bcb7196680 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
9296ac494d 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
882fa1818b 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
801a442ffb Quaternion: minor tuning 2012-03-10 10:34:33 +11:00
Andrew Tridgell
3344869285 DCM: minor tuning based on testing my quad 2012-03-10 10:34:33 +11:00
Andrew Tridgell
dffb435aac SITL: make the yaw match the APM conventions 2012-03-10 10:34:33 +11:00
Andrew Tridgell
2673614f6d SITL: fixed the pwm output on startup 2012-03-10 10:34:33 +11:00
Andrew Tridgell
982712d58f Quaternion: code cleanups and added comments 2012-03-10 10:34:32 +11:00
Andrew Tridgell
f405477875 DCM: code cleanup and added more comments 2012-03-10 10:34:32 +11:00
Andrew Tridgell
9dc08b30cd Quaternion: bumb up gyro drift limit to match DCM 2012-03-10 10:34:32 +11:00
Andrew Tridgell
f9394f8068 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
8b40c44522 Quaternion: separate out drift correction from main updates 2012-03-10 10:34:32 +11:00
Andrew Tridgell
3e960f8ef9 InertionSensor: update for new Ch6() interface 2012-03-10 10:34:32 +11:00
Andrew Tridgell
919874f2a0 IMU: fixed a warning 2012-03-10 10:34:32 +11:00
Andrew Tridgell
4dff78b9c0 GPS: expose last_fix_time 2012-03-10 10:34:32 +11:00
Andrew Tridgell
6eff9107ea Compass: change last_update to be in microseconds 2012-03-10 10:34:32 +11:00
Andrew Tridgell
a0a360f955 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
045b49c4c4 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
321200ebbc AP_IMU: fixed led flashing in gyro cal
thanks Pat!
2012-03-10 10:34:31 +11:00
Andrew Tridgell
a92fb67b70 AP_Math: expanded the math test suite 2012-03-10 10:34:31 +11:00
Andrew Tridgell
4d65cda0ea 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
8abbbe5713 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
ccada2e9c2 SITL: avoid parent pid code on cygwin
this causes problems on windows
2012-03-10 10:34:31 +11:00
Andrew Tridgell
3666476bcb SITL: prevent nested timer interrupts 2012-03-10 10:34:31 +11:00