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
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
e470bf2354
DCM: minor tuning based on testing my quad
2012-03-10 10:34:33 +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
61ebcfe9fe
DCM: fixed the averaging of accel values for update_DCM_fast()
...
this should improve drift correction for ArduCopter
2012-03-10 10:34:28 +11:00
Andrew Tridgell
a78b00513b
DCM: added a small amount of gyro and accel smoothing
...
possibly not needed, but convenient to be able to test with different
values
2012-03-10 10:34:27 +11:00
Andrew Tridgell
82032b17a9
DCM: added reporting interfaces for DCM state
2012-03-10 10:34:27 +11:00
Andrew Tridgell
4e354a9731
DCM: got rid of _error_roll_pitch from object state
...
this can be a local error variable in common with the yaw code. This
saves 12 bytes in the object.
2012-03-10 10:34:27 +11:00
rmackay9
7c1d1b45a7
AP_DCM - fixed small compiler warning to do with order of parameters in constructor
2012-02-29 22:45:26 +09:00
Andrew Tridgell
c63ca9c697
DCM: tidy up use of error_course and in_motion
...
in_motion is not a good name now it is also used for the compass
The error_course and heading component values don't need to be part of
the DCM object, they can be on the stack to reduce the memory usage a bit
2012-02-25 11:37:20 +11:00
Andrew Tridgell
b4c8d6491a
DCM: added matrix recovery on reset
...
when we get a bad DCM error we can recover a matrix corresponding to
the current attitude, making it more likely that the aircraft will be
able to recover
2012-02-24 11:52:55 +11:00
Andrew Tridgell
9caa4aeb44
DCM: range check the matrix before calculating pitch
...
The asin() in the pitch calculation can only take values between -1
and 1. This change ensures that the value is in range, and if it isn't
then we force a normalization. If that fails we reset the matrix
2012-02-23 08:16:08 +11:00
Andrew Tridgell
5cfe1ad5dc
DCM: remove the taylor expansion optimisation for renormalisation
...
The sqrt() costs about 44usec on a 2560, which is small enough for us
not to worry about the speed.
This also changes the range of values where we declare a blowup to
much less likely, which means we can cope with larger delta_t glitches
2012-02-23 08:16:08 +11:00
Randy Mackay
98f3386ea0
Arduino 1.0 - changed all #includes of "WProgram.h", "wiring.h" and "WConstants.h to "Arduino.h".
...
Modified FastSerial's write function to return size_t (number of bytes written).
2012-01-28 12:25:47 +09:00
Andrew Tridgell
621f21e4f5
DCM: added matrix_reset() method
2011-12-13 21:32:50 +11:00
Jason Short
17fbbb4e7b
Access to _clamp val. May want to make a private member and write accessor.
2011-12-03 17:57:12 -08:00
Doug Weibel
d4fff166cf
Add an accessor for the DCM drift correction integrator to monitor performance
...
Also made the get_health accessor an inline function.
2011-11-05 09:02:23 -06:00
Andrew Tridgell
d96fbf8acf
DCM: re-work the DCM to use the new IMU/ADC features
...
this gives us higher resolution DCM calculations, with much more
accurate timing of the update delta time.
2011-09-17 14:58:02 +10:00
Olivier ADLER
7e3983210c
Merge branch 'APM_Camera' of https://code.google.com/p/ardupilot-mega/
...
Conflicts:
ArduPlane/ArduPlane.pde
libraries/AP_Camera/AP_Camera.h
libraries/AP_Mount/AP_Mount.cpp
libraries/AP_Mount/AP_Mount.h
2011-09-12 00:31:18 +02:00
Amilcar Lucas
b8832fe9ab
Use G_RC_AUX macro to simplify accessing the auxiliary servos
2011-09-12 00:02:47 +02:00
Jason Short
e8fcf72966
Added a state machine intended to run at 250hz to the DCM. Spread load of DCM out to lower CPU.
2011-09-11 11:03:55 -07:00
jasonshort
ce7dc48026
added ki_Yaw private variable and accessors.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2778 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-07-08 03:57:12 +00:00
jasonshort
db0e5760a4
removed redundant FP calcs for speed up.
...
added ability to alternate normalization and drift correction. Not fully implemented, needs further testing.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2691 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-06-26 22:54:08 +00:00
jasonshort
b07c32acd0
Added dynamic setting of kp_rollpitch, ki_rollpitch, kp_yaw.
...
Added three constants for kp_rollpitch, (high, med -default, low)
Functionally equivalent to prior version.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2550 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-06-12 23:49:01 +00:00
DrZiplok
d257e12dc0
Re-order initialisers to suppress warnings
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2072 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-05-02 05:55:59 +00:00
james.goppert
a840314b97
APO merge.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1935 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-05-01 02:05:17 +00:00
deweibel@gmail.com
967130ed7e
Add method definition for set_centripetal()
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1756 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-03-08 01:47:43 +00:00
deweibel@gmail.com
0642e1144d
Fix imu_health metric
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1728 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-02-25 20:09:00 +00:00
DrZiplok@gmail.com
ad13b691de
DCM needs a reference to a pointer so that we can change the GPS under it during init.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1662 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-02-16 07:54:48 +00:00
DrZiplok@gmail.com
d5ffec8119
Update for changes to AP_IMU
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1343 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-28 23:41:26 +00:00
deweibel
1da23bc3c0
Fix bug in transposed DCM matrix accessor
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1134 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-14 18:39:02 +00:00
jasonshort
7945937874
added ability to get the transpose of the DCM
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1116 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-13 04:01:26 +00:00
james.goppert
21634dad19
Added AP_DCM_HIL class.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1103 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-10 10:17:27 +00:00
jasonshort
2f2aaa88fd
Added dynamic setting of compass
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1010 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-04 06:24:21 +00:00
james.goppert
110685f880
Updated DCM library.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@996 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-02 05:13:35 +00:00
jasonshort
93206020cb
Moved Health to DCM, Centripetal correct
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@988 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-01 22:52:11 +00:00
jasonshort
275624358d
boolean to disable centrifugal correction.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@987 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-01 19:53:40 +00:00
jasonshort
d209f3d59e
update - See ArducopterMega in Branch for implementation details
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@986 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-01 07:58:04 +00:00