Commit Graph

1396 Commits

Author SHA1 Message Date
Andrew Tridgell adcc20e4d3 Quaternion: credit Justin with the initial idea of using Madgwick
thanks Justin!
2012-03-13 13:27:45 +11:00
Andrew Tridgell 9a6adb9990 DCM: adjust yaw kp constant down to 0.4
this makes the time constant for compass errors closely match the
timing of the older releases - about 10 seconds for a 1 radian change
in heading
2012-03-12 17:49:26 +11:00
Andrew Tridgell aa408655f8 Compass: fixed the order of rotations in the compass driver
this should fix the massive heading issues that people have been
reporting. Please test!
2012-03-12 17:33:15 +11:00
Andrew Tridgell 0e6037322a AP_Declination: fixed build of test sketch 2012-03-12 17:33:15 +11:00
Amilcar Lucas a203282779 correct small typos in comments 2012-03-11 21:30:09 +01:00
Andrew Tridgell 42a29169f0 SITL: added pgm_read_byte_far() 2012-03-11 20:59:47 +11:00
Andrew Tridgell b4d69ef473 AP_Declination: fixed usage of headers 2012-03-11 20:59:47 +11:00
Adam M Rivera ad3a20b6a3 AP_Declination: Updated comment.
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00
Adam M Rivera c390db5d92 AP_Declination: Added method set_initial_location
This will set the declination based on lat/lon if the user has
not yet saved one to the EEPROM, OR if they have specified via the
config parameter that they want it to overwrite the declination every
3D fix.

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00
Adam M Rivera 94d1c48544 AP_Declination: Increased range of supported latitude coordinates.
Fixed incorrect type usage to save stack space.

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00
Adam M Rivera 1709403b87 Added AP_Declination test sketch. I will be improving the test sketch soon.
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00
Adam M Rivera 3f28184cb0 Added AP_Declination library. It contains the lookup table (lat/lng -> declination) as well as a method that performs the lookup.
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00
Andrew Tridgell d4aa0a4879 Compass: removed an incorrect comment 2012-03-11 20:07:38 +11:00
Andrew Tridgell a20f57c59e 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 cc1961b1e8 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 36e92bf4ba Quaternion: update for new Quaternion interface 2012-03-11 15:37:07 +11:00
Andrew Tridgell eea63ecd6e DCM: update for new Matrix3f interface 2012-03-11 15:37:07 +11:00
Andrew Tridgell 01535a7a21 AP_Math: update the test suite 2012-03-11 15:37:07 +11:00
Andrew Tridgell 6d08e38d5d AP_Math: made rotation matrices more C++
thanks to Adam for the suggestion
2012-03-11 15:37:07 +11:00
Andrew Tridgell 92ada85f49 AP_Math: allow null pointers in Quaternion::to_euler()
this matches the Matrix3f method
2012-03-11 15:37:07 +11:00
Andrew Tridgell 18fcb14335 Quaternion: use the new quaternion API 2012-03-11 15:37:07 +11:00
Andrew Tridgell a9b8c4dd82 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 ea0fb311af I2C: fixed cr/lf mess 2012-03-11 15:37:07 +11:00
Andrew Tridgell 5203df2cf8 OpticalFlow: adapt optical flow library to new rotation system 2012-03-11 15:37:07 +11:00
Andrew Tridgell 7aa6ba2c86 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 3c145ab61c Compass: update the compass driver to use the new vector.rotate() method 2012-03-11 15:37:07 +11:00
Andrew Tridgell 24a9fe8827 Math: added a test suite for the new rotation methods 2012-03-11 15:37:07 +11:00
Andrew Tridgell 85c3c1d2ea 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 a30b03cd0a SITL: lower the noise and drift levels for general autotest usage 2012-03-10 10:34:34 +11:00
Andrew Tridgell 07e8360970 InertialSensor: fixed HIL build 2012-03-10 10:34:34 +11:00
Andrew Tridgell 6d06d9d070 MAVLink: bring the v1.0 MAVLink in sync with 0.9 2012-03-10 10:34:34 +11:00
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 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 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 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