Commit Graph

80 Commits

Author SHA1 Message Date
rmackay9 3c0153e9dc AP_AHRS: fix to allow example sketch to compile 2012-09-13 16:45:52 +09:00
Andrew Tridgell 715541b508 AHRS: added AHRS_BARO_USE parameter
allow disabling of the use of the barometer for vertical acceleration
compensation
2012-09-12 14:42:04 +10:00
Andrew Tridgell 8f70a24fd4 AHRS: added AHRS_WIND_MAX option
this allows APM to cope better with airspeed sensor failure, but
ensuring airspeed stays within AHRS_WIND_MAX of ground speed
2012-09-08 11:37:07 +10:00
Andrew Tridgell be6f3aed72 AHRS: added airspeed_estimate() function
this allows the APM code to use an airspeed estimate for navigation
2012-08-25 17:49:26 +10:00
Andrew Tridgell ba41612e7d AHRS: new functions to support APM_Control library 2012-08-22 12:42:37 +10:00
uncrustify f17b368e38 uncrustify libraries/AP_AHRS/AP_AHRS_HIL.h 2012-08-21 19:19:51 -07:00
uncrustify b6db467e3c uncrustify libraries/AP_AHRS/AP_AHRS.h 2012-08-21 19:19:51 -07:00
uncrustify b4571ca40b uncrustify libraries/AP_AHRS/AP_AHRS_MPU6000.h 2012-08-21 19:19:51 -07:00
uncrustify 2f0c7aeb92 uncrustify libraries/AP_AHRS/AP_AHRS_DCM.h 2012-08-21 19:19:51 -07:00
uncrustify 7dc3f26ce0 uncrustify libraries/AP_AHRS/AP_AHRS_DCM.cpp 2012-08-21 19:19:51 -07:00
uncrustify bc04ade2c1 uncrustify libraries/AP_AHRS/AP_AHRS_HIL.cpp 2012-08-21 18:59:34 -07:00
uncrustify d77b6e7f52 uncrustify libraries/AP_AHRS/AP_AHRS_MPU6000.cpp 2012-08-21 18:59:34 -07:00
uncrustify 4846ba119e uncrustify libraries/AP_AHRS/examples/AHRS_Test/AHRS_Test.pde 2012-08-21 18:59:13 -07:00
Andrew Tridgell 2b6af43c92 AHRS: removed AP_AHRS_Quaternion
this AHRS backend is causing compiler errors with the Arduino build
environment on windows. The quaternion AHRS backend is currently not
being developed/supported anyway. We can resurrect it if someone wants
to start developing it again.
2012-08-22 10:41:31 +10:00
Andrew Tridgell 6c0b7b7f53 AHRS: fixed duplicate gps_use variable in DCM 2012-08-21 20:17:03 +10:00
Andrew Tridgell cc0e8be85a AHRS: moved var_info[] into top level AP_AHRS class 2012-08-21 15:58:09 +10:00
Andrew Tridgell 89db3458c8 AHRS: added set_fast_gains() method
this will be used by arducopter on the ground
2012-08-21 15:38:06 +10:00
Andrew Tridgell 01ae8f8771 AHRS: check for bad values in the error before they can affect DCM
this should fix the DCM renorm errors in autotest, probably caused by
bad climb rates
2012-08-18 13:54:11 +10:00
Andrew Tridgell 7948b3aee7 AHRS: force an extra read of the compass on startup
the first read from the compass can be bad. This ensures we have a
good value when getting the initial AHRS yaw.

Thanks to Randy and Jason for the bug report!
2012-08-17 17:57:39 +10:00
Andrew Tridgell 41a974683e Quaternion: we no longer support acceleration in the GPS driver
remove the linear acceleration compensation code
2012-08-15 20:07:53 +10:00
Andrew Tridgell 44852276da AHRS: added ahrs.yaw_initialised()
this allows the high level code to know if the AHRS driver has a
reliable yaw estimate
2012-08-15 12:39:34 +10:00
Andrew Tridgell 562069cbd7 AHRS: avoid a compiler bug in quaternion code
Having _wind in the AP_AHRS class causes a register allocation error
when building the Quaternion code with some versions of avr-gcc. Quite
bizarre.
2012-08-13 11:08:10 +10:00
Andrew Tridgell fa1b72adc5 AHRS: use airspeed for wind in forward flight
when not turning we can use the airspeed sensor directly to calculate
the wind speed.
2012-08-12 10:54:25 +10:00
Andrew Tridgell 3a92509b18 AHRS: added AHRS_GPS_USE parameter
this allows for the GPS to be disables for position updates, which
allows for testing dead-reckoning
2012-08-11 22:06:03 +10:00
Andrew Tridgell 2c7ab7c659 AHRS: added wind estimation code
this allows us to estimate the wind while we have GPS lock, then use
that estimate in the long term dead reckoning
2012-08-11 22:06:03 +10:00
Andrew Tridgell 708280511c AHRS: added long-term dead-reckoning
this uses airspeed (if available) or last GPS ground speed to update
our position estimate in AHRS
2012-08-11 12:00:31 +10:00
Andrew Tridgell e48b0f8558 AHRS: make airspeed sensor available to AHRS
this will be used for long term dead-reckoning
2012-08-11 08:57:32 +10:00
Andrew Tridgell d3cc6e5fab ACM: fixed HIL build 2012-08-11 08:34:16 +10:00
Jason Short 4e001286a6 AHRS DCM: FOrmatting 2012-08-09 16:59:43 -07:00
Andrew Tridgell 7be604cffd AP_Param: update AHRS for new constructor syntax 2012-08-08 12:11:57 +10:00
rmackay9 9a558be53e AP_AHRS_MPU6000: cleaning up compiler warning due to unused yaw_deltat variable 2012-07-28 16:23:25 +09:00
rmackay9 a49454e905 AP_AHRS: updated test sketch to allow use of MPU6000's DMP 2012-07-28 14:27:26 +09:00
rmackay9 0820ebddb9 AP_AHRS_MPU6000: first draft implementation of class that uses MPU6000's DMP to calculate attitude 2012-07-28 14:17:38 +09:00
rmackay9 5a9211c278 AP_AHRS: removed var_info from AP_AHRS class (moved to AP_AHRS_DCM) 2012-07-28 14:16:56 +09:00
rmackay9 c2b47d2bf9 AP_AHRS_DCM: moved var_info to belong to AP_AHRS_DCM instead of AP_AHRS 2012-07-28 14:16:15 +09:00
Jonathan Challinger 21f0ed00b3 AHRS: normalise GA_b before computing error vector only if too large
When GA_b is small the direction of the vector is unreliable, so
normalising can exacerbate the error in the direction
2012-07-23 17:16:50 +10:00
Andrew Tridgell 5f5c884a6d AHRS: if we don't have gps correction enabled, zero the yaw correction 2012-07-20 17:21:04 +10:00
Andrew Tridgell 4f41b876b1 AHRS: allow the gps/accelerometers to control yaw when rolled
this solves a problem with yaw estimation when at high roll angles,
when the compass code becomes ineffective
2012-07-20 11:50:04 +10:00
Michael Oborne 804898c2a5 fix param config names 2012-07-14 15:34:15 +08:00
Andrew Tridgell 15133b1105 AHRS: fixed HIL build 2012-07-10 18:02:05 +10:00
Andrew Tridgell 9b6acf168e AHRS: added AHRS_GPS_GAIN parameter
this allows control of how much GPS velocity information is used in
doing centripetal correction in DCM
2012-07-10 16:22:48 +10:00
Andrew Tridgell 9845a55cb1 AHRS: make the yaw independent drift correction optional and disable
the new correction algorithm copes poorly with gyro drift, leading to
signification attitude errors in the face of drift
2012-07-06 15:11:30 +10:00
Andrew Tridgell e33554a1f9 AHRS: only enable barometer for AHRS if it is smooth enough
if we used less than 5 samples to compute the pressure then don't use
it for climb rate
2012-07-05 16:29:21 +10:00
Andrew Tridgell 9d7ed30023 AHRS: only use GPS for yaw when compass is not being used
this avoids having two competing controllers
2012-07-05 13:00:46 +10:00
Andrew Tridgell 6653c0b874 AHRS: enable barometer for vertical velocity
this re-enables the barometer for vertical velocity information
for drift correction, now that we have a better filter
on the climb rate
2012-07-05 13:00:46 +10:00
rmackay9 cac0757c2e AP_AHRS: removed DCM_test example sketch
No longer required because it doesn't compile and is redundant anyway because the AP_AHRS_DCM class is tested in the AHRS_Test example sketch.
2012-07-04 18:22:51 +09:00
Andrew Tridgell 03516b7dfa AHRS: make DCM drift correction not rely on accurate yaw
this uses a new formulation of the GPS based drift correction from
Bill Premerlani that rotates the error vector to avoid relying on
accurate yaw. This means we should get accurate roll/pitch correction
even with lots of magnetometer interference

It also makes it possible to fly a multicopter with no compass. It can
even navigate and correct yaw (slowly!)
2012-07-04 17:00:40 +10:00
Andrew Tridgell e0685f4408 AHRS: make P gain on PI roll/pitch controller tunable
this is to make it easier for Craig and Alan to tune
2012-07-04 12:42:46 +10:00
Andrew Tridgell b5aa821071 AHRS: include the P terms in get_gyro()
this makes it more useful for navigation controllers
2012-06-29 21:54:09 +10:00
Andrew Tridgell 37494dda2b AHRS: don't add the P terms in _omega
this can lead feedback via the _P_gain()
2012-06-29 15:10:51 +10:00