priseborough
f71aeea61d
AP_NavEKF : Reduce sensitivity on filter divergence check
...
Flying aerobatics with Trad Heli has shown that the divergence check can be false triggered when large magnetometer errors and GPS dropouts are present.
This can also happen with multi rotors if large yaw rates are present.
This was an unintended consequence of the ekfsmoothing patch which improved filter stability during high rate manoeuvres, but made the divergence test more sensitive.
2014-09-17 10:22:55 +09:00
priseborough
36bf304f29
AP_NavEKF : Reduce ripple in estimates that can cause copter motor 'pulsing'
...
This patch reduces the level of 5Hz and 10Hz 'pulsing' heard in motors due to GPS and altimeter fusion which cause a small 5Hz and 10Hz ripple on the output under some conditions. Attitude, velocity and position state corrections from GPS, altimeter and magnetometer measurements are applied incrementally in the interval from receiving the measurement to the predicted time of receipt of the next measurement. Averaging of attitude state corrections is not performed during periods of rapid rotation.
2014-09-17 10:22:49 +09:00
priseborough
5b72cb7610
AP_NavEKF : Clean up time stamps
...
Time stamps are now explicitly initialised to the current IMU time to avoid unwanted activation of timeout logic on filter start and various calls to the hal.scheduler->millis() object have been consolidated.
2014-09-17 10:22:45 +09:00
priseborough
0f62dbf6ed
AP_NavEKF : Clear compass fail on transition between armed and disarmed
...
This allows a compass that has been declared failed, possibly because of
external disturbances (eg movement of hatches, proximity of tools, etc)
to be given a second chance when the vehicle is armed.
2014-08-25 19:29:07 +10:00
Andrew Tridgell
5d40ec8014
AP_NavEKF: make use_compass() public
2014-08-24 21:00:24 +10:00
Andrew Tridgell
3ee3a71644
AP_NavEKF: prevent a possible numerical error on startup
...
fixes issue #1294
2014-08-08 15:55:20 +10:00
priseborough
d5442fe64e
AP_NavEKF : Modified compass fail logic
...
If the vehicle can fly without a compass (a fly forward vehicle)
then if the compass times out (large errors for more than 10 seconds,
then it will be declared permanently failed and will not be
used until the filter is reset
2014-07-31 21:12:11 +10:00
Andrew Tridgell
383070b9c0
AP_NavEKF: ensure get_position() fills in flags
2014-07-25 11:40:26 +10:00
Emile Castelnuovo
946a461873
VRBRAIN: added VRBRAIN to #if
2014-06-19 11:27:44 +02:00
priseborough
edc79ca2a4
AP_NavEKF: Increase divergence test margin based on analysis of more user flight logs
...
Analysis of copter logs has shown cases with a healthy EKF where spikes in EKF4.DS of up to 25% of the threshold have occurred.
A value of closer to 10% for normal operation is preferred.
2014-05-24 22:20:24 +10:00
priseborough
5fe0d2c1b2
AP_NavEKF: Add protection for accel bias estimation errors
...
Don't do bias estimation if tilted by more than 60 degrees to prevent scale
factor errors affecting result unnecessarily.
Prevent Kalman gain from having the wrong sign due to numerical errors
associated with small process noise values.
Allow smaller Z accel bias process noise values to be set
2014-05-18 08:09:00 +10:00
priseborough
3222e8f7cb
AP_NavEKF: Default parameter adjustments
...
Bring Plane glitch protection thresholds into alignment with copter and
rover
Slight increase in accelerometer bias process noise to prevent bias
estimate divergence into limits (Rover and Plane only as Copter does not
seem respond as well to this change)
effective increase in threshold on divergence test to allow increased
margin for bad GPS velocities
2014-05-18 08:08:49 +10:00
priseborough
e40e50e2e1
AP_NavEKF: Prevent start-up transients re-tripping divergence test
2014-05-16 22:05:22 +10:00
priseborough
a19015ed61
AP_NavEKF: Scale divergence check with covariance
...
This provides consistent behaviour for a range of gyro bias process
noise settings and automatically adjusts sensitivity as filter learns bias
2014-05-16 21:24:25 +10:00
priseborough
0337d44b2e
AP_NavEKF: Fix bug causing immediate clearing of diverged status on reset
2014-05-16 21:24:04 +10:00
priseborough
d150904dc6
AP_NavEKF: Increase gyro bias process noise
...
This is required to stop the bias estimate from becoming too static
towards the end of longer flights.
2014-05-16 21:24:04 +10:00
Andrew Tridgell
5edf4ba596
AP_NavEKF: fixed up handling of bitfields in faultStatus
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-05-15 21:42:39 +10:00
priseborough
ce8e1daa16
AP_NavEKF: Improved divergence detection and reset
...
Divergence is now detected by looking for very large changes in the gyro
bias. This will cause the filter to be reset and declared unhealthy for
10 seconds.
Don't reset filterDiverged status immediately during reset
Set filterDiverged true if covariance blows up
Add fault status reporting
2014-05-15 21:14:21 +10:00
Andrew Tridgell
85ebe81ed3
AP_NavEKF: fixed logic for divergence test
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-05-11 18:00:38 +10:00
priseborough
40dc0e56fe
AP_NavEKF: Add protection for badly conditioned innovation variances
2014-05-11 18:00:38 +10:00
priseborough
925c5751bd
AP_NavEKF: Add ability to inhibit in-flight mag cal and clean up moding
...
This will enable in-flight magnetometer calibration to be inhibited unconditionally,
This is required for long balloon carriage flights where ground speed can be high
enough to put it into in-air state, but with very poor observability of magnetic field
states causing bad state estimates and heading offsets to develop over time.
The covariance matrix no longer has rows and columns artificially zeroed when in static
mode. Instead booleans indicating whether wind or magentic field state estimation is
active are used to:
a) Set the process noise on these states to zero to stop their variances from increasing
unchecked when not being updated, and
b) Turn off updates for these states when measurement fusion is being performed.
This reduces the likelihood of a badly conditioned covariance matrix forming
during static mode operation.
A filter divergence check has also been added that will declare the filter unhealthy if
position, velocity and magnetic field observations are all failing their innovation
consistency checks. This unhealthy status will persist for 10 seconds after the
condition clears.
AP_NavEKF: Remove unnecessary zeroing of wind covariances
2014-05-11 18:00:38 +10:00
priseborough
3026ccee13
AP_NavEKF: Use baro data during launch transients whilst in static mode
...
Baro data can be used as it will still be valid during the launch and
is not a synthesised measurement.
2014-05-11 18:00:38 +10:00
priseborough
114bd56e2a
AP_NavEKF: Fix display names in parameter list
2014-04-30 06:35:41 +10:00
priseborough
5fefce5899
AP_NavEKF: Synthetic sideslip fusion numerical error protections
2014-04-29 17:26:45 +10:00
priseborough
ecc8e45eda
AP_NavEKF: Fix bug in position reset logic
2014-04-23 18:16:02 +10:00
Andrew Tridgell
25667a11a0
AP_NavEKF: use AHRS vehicle class for sideslip calculation
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-21 18:13:12 +10:00
Andrew Tridgell
5acd17b843
AP_NavEKF: cleanup some build warnings
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-21 18:13:12 +10:00
priseborough
bd28cdbdcf
AP_NavEKF: Improved magnetometer consistency checks
...
A magnetometer axis that fails the innovation consistency check will cause
all axes not to be used. If this condition continues for 10 seconds, a
magnetometer timeout condition will be declared. When the timeout has
occurred, if it is not a fly forward vehicle, then individual channels
will be used again, but with a reduced weighting.
2014-04-21 16:31:31 +10:00
Andrew Tridgell
610a930612
AP_NavEKF: catch covarience errors and reset filter
...
this catches covariance values beyond a reasonable limit and resets
the filter is they happen
2014-04-21 15:37:08 +10:00
Andrew Tridgell
4756dbee84
AP_NavEKF: fixed millisecond subtraction for rollover
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-21 13:16:20 +10:00
Andrew Tridgell
68f1ae3036
AP_NavEKF: fixed some matlab ! -> ~ typos
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-20 21:44:37 +10:00
Andrew Tridgell
4abc2999a6
AP_NavEKF: start with a wind estimate of 3m/s, when no direct measurement
...
this will cope better with users with low roll/pitch gains, to ensure
they get enough control on takeoff
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-13 19:42:23 +10:00
priseborough
d745dc2b6f
AP_NavEKF : Increased position gate default to reduce impact of accel errors
...
Flight testing with windup turns has shown that the position gate threshold
can be tripped with good GPS data causing position jerks. This increases the
initial GPS glitch rejection threshold to effectively 5m when using the
default POSNE_NOISE value of 0.5m.
2014-04-13 19:37:22 +10:00
priseborough
188bea6bab
AP_NavEKF : Enable calc of wind velocity when not using airspeed sensing
...
This patch also cleans up the logic associated with use of the synthetic
sideslip measurement so that it can never be used for a non fly-forward
vehicle type
This patch adds functionality that initialises the wind-speed vector to the
reciprocal of the ground speed vector, and scaled to 6 m/s. On average this gives
a better initial wind velocity estimate on launch by assuming:
a) launch will be into wind
b) wind speed is equal to global average
It also helps prevent a headwind causing initial underestimation of airspeed
causing high autopilot gains and limit cycles on climb-out, until first
turn when the EKF is able to estimate the wind.
2014-04-13 19:37:19 +10:00
Emile Castelnuovo
25f1c5774f
AP_NavEKF: added #defines for VRBRAIN board
2014-04-08 16:19:19 +10:00
priseborough
db043744a4
AP_NavEKF : Reduce Z accel bias process noise to provide a more stable estimate
2014-04-07 21:08:25 +10:00
priseborough
1f8b5a6d23
AP_NavEKF : Tighten GPS velocity glitch gate default setting for plane
2014-04-07 21:08:15 +10:00
priseborough
0c2489b07b
AP_NavEKF : Fix bug in logging of airspeed innovation consistency ratio
2014-04-07 21:01:00 +10:00
priseborough
95c83255d7
AP_NavEKF : adjust default values for accelerometer process noise
...
Slows down estimate and allows for smaller values to be set
2014-04-07 21:00:43 +10:00
Andrew Tridgell
07d621c4be
AP_NavEKF: used state structure in more places
...
makes the code a bit easier to read
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-04 21:30:16 +11:00
priseborough
aa5335b16e
AP_NavEKF : Improved GPS position glitch handling
...
When using GPS after previously rejecting it, the GPS position will
always be offset if outside the specified glitch radius. This was the
original intent of the design and makes handling of glitches smoother.
It has been tested on replay using glitchy flight data
2014-04-04 21:01:22 +11:00
priseborough
b1786cf1e5
AP_NavEKF : Do not reset on GPS velocity timeout if good position data
2014-04-04 21:01:20 +11:00
priseborough
d25883f712
AP_NavEKF : Limit rate of Z accel bias adaptation
...
Aliasing can causes the bias estimate to fluctuate very rapidly as it tries
to keep up, which degrades the benefit of switching between
accelerometers to avoid aliasing.
This patch give a much more stable bias estimate during aliasing, and
allows the bias to adapt at a maximum rate of 1.0 m/s2 in 50 seconds
2014-04-04 21:01:18 +11:00
priseborough
36b3cbc365
AP_NavEKF : Relax aliasing check limits
...
This reduces the chance of noisy data inhibiting GPS glitch protection
2014-04-04 21:01:15 +11:00
priseborough
0ae736c3a0
AP_NavEKF : clean up convoluted logic used in sensor health checks
...
This doesn't change the behavior, but does make the code easier to
understand
2014-04-04 21:01:13 +11:00
Andrew Tridgell
cd3038fabd
AP_NavEKF: fixed return of offset in getVariances()
2014-04-03 07:49:06 +11:00
Andrew Tridgell
a7f213a5c5
AP_NavEKF: use pythagorous2()
2014-04-01 22:13:03 +11:00
priseborough
04036d7777
AP_NavEKF : Updated GPS glitch protection logic
...
This adds new functionality to the detection and compensation of GPS
glitches:
1) A maximum allowable innovation is calculated using the GPS noise
parameter multiplied by the gate, with an additional component allowing
for growth in position uncertainty due to acceleration error since
the last valid measurement
2) Includes per vehicle type values for the acceleration error limit
3) If the innovation length exceeds the maximum allowable, no fusion occurs
4) If no fusion has occurred for long enough such that the position uncertainty
exceeds the maximum set by a per vehicle parameter or a maximum time, an offset
is applied to the GPS data to so that it matches the value predicted by the filter
5) The offset is never allowed to be bigger than 100m
6) The offset is decayed to zero at a rate of 1.0 m/s to allow GPS jumps to
be accommodated gradually
7) The default velocity innovation gate has been tightened up for copter and rover
8) The variance data logging output has been updated to make it more useful
2014-04-01 21:22:14 +11:00
Andrew Tridgell
5a2e84e792
AP_NavEKF: changes for new GPS API
2014-04-01 06:38:24 +11:00
priseborough
9c5f564dc5
AP_NavEKF : Fixes bug in initial earth magnetic field states
...
The calculation for these states was not being bias corrected
2014-03-30 07:43:52 +11:00
priseborough
e1819bb53a
AP_NavEKF : Add initial parameter defaults for Copter, Rover and Plane
2014-03-29 14:06:43 +11:00
priseborough
55c60b8f07
AP_NavEKF : Reduce Magnetometer innovation consistency check threshold
2014-03-26 21:29:47 +11:00
priseborough
45b1a2fa46
AP_NavEKF : Reduce GPS position innovation consistency fail threshold
...
This patch reduces the maximum acceptable GPS jump from approximately 16 to 8 metres
This will provide copters with more protection for close in loiter situations
2014-03-26 21:29:45 +11:00
Andrew Tridgell
bafc664750
AP_NavEKF: use APM_BUILD_TYPE() macro
2014-03-26 12:42:11 +11:00
Andrew Tridgell
e3792f9b26
AP_NavEKF: added a mechanism for per-vehicle-type defaults in EKF
2014-03-26 12:30:17 +11:00
priseborough
17cdac7bc8
AP_NavEKF : Clean up angle and mag field initialisation
...
This path reduces duplicated code, eliminates unused variables and
causes the earth magnetic field states to be reset when exiting static mode
which will occur every time copter is armed. This enables copters to be
powered on and initialised inside vehicles or houses, without bad earth
field values affecting flight.
2014-03-24 19:54:48 +11:00
priseborough
7ae86b3979
AP_NavEKF : Track baro height observations pre-arm
...
This prevents copter from failing the pre-arm height discrepancy test
2014-03-23 18:25:50 +11:00
priseborough
7780d55788
AP_NavEKF : Prevent large magnetic field adaptations early in flight
2014-03-22 19:55:26 +11:00
Paul Riseborough
f7007569d1
AP_NavEKF : Fix bug that limits copter sensor delay compensation to 125
...
msec
2014-03-21 21:52:20 +11:00
Paul Riseborough
b2c0979947
AP_NavEKF : Fixes bug that causes accel bias to diverge in static mode, preventing copter arming
2014-03-21 21:49:50 +11:00
Paul Riseborough
8a2d16d13d
AP_NavEKF : modifed Zaccel bias noise parameter to prevent unstable bias estimate
2014-03-20 08:50:00 +11:00
Paul Riseborough
dacba5d911
AP_NavEKF : Update default tuning parameters (for plane use)
2014-03-14 06:07:58 +11:00
Paul Riseborough
d0828d9c15
AP_NavEKF : Prevent bad user parameter causing incorrect GPS fusion
2014-03-14 06:07:58 +11:00
Paul Riseborough
a24bfc1b8a
AP_NavEKF : Use synthetic sideslip fusion during GPS denied operation with airspeed
2014-03-14 06:07:57 +11:00
Paul Riseborough
35811758d7
AP_NavEKF : Update comments and remove un-used function declarations
2014-03-14 06:07:57 +11:00
Paul Riseborough
784034170d
AP_NavEKF : increased useage of helper functions
2014-03-10 21:54:03 +11:00
Paul Riseborough
7b3130cfcc
AP_NaVEKF : Enable operation without airspeed and compass
2014-03-10 21:53:09 +11:00
Paul Riseborough
3a5acb9cea
AP_NavEKF : improved on-ground, in-air check and GPS yaw alignment
2014-03-10 14:07:34 +11:00
Paul Riseborough
b47a11edf6
AP_NavEKF : improved static and on-ground mode selection logic
2014-03-10 04:39:59 +11:00
Paul Riseborough
15a44571c2
AP_NavEKF : enable operation without a compass for planes
2014-03-09 20:01:45 +11:00
Paul Riseborough
2019708056
AP_NavEKF : Make all compass use autodetect
2014-03-09 19:59:19 +11:00
Paul Riseborough
e485b246e7
AP_NavEKF : update comments
2014-03-09 19:59:18 +11:00
Paul Riseborough
c8bd415b00
AP_NavEKF : Add sideslip constraint to allow plane flight without magnetometer
2014-03-09 19:59:17 +11:00
Paul Riseborough
52fabc822f
AP_NavEKF : Add low speed magnetometer calibration option
2014-03-09 19:59:16 +11:00
priseborough
6ace31b6c1
AP_NavEKF : Fix bug that leaves height unconstrained in static mode
2014-03-09 19:27:21 +11:00
Paul Riseborough
94ff7522fc
AP_NavEKF : Fix bug in initial East mag field state variance
2014-03-08 07:44:34 +11:00
Andrew Tridgell
449d09051e
AP_NavEKF: cope with compass going offline while in flight
2014-03-02 14:32:10 +11:00
Andrew Tridgell
77f91e6250
AP_NavEKF: don't assume the number of gyros == number of accels
2014-03-02 13:53:19 +11:00
Paul Riseborough
ebb3cc3348
AP_NavEKF : Use average of dual IMU gyro data when available
2014-03-02 13:28:44 +11:00
Paul Riseborough
a39d00fc13
AP_NavEKF : Fix bug that prevents Zacc bias state variance being updated
2014-03-02 13:27:22 +11:00
Paul Riseborough
573b3210dd
AP_NavEKF : Add div0 protection to the IMU1_weighting calc
2014-03-02 08:10:06 +11:00
Paul Riseborough
bd152d332c
AP_NavEKF : Add accel aliasing protection
2014-03-02 08:10:04 +11:00
Andrew Tridgell
853271dd37
Replay: moved replay tool into Tools/Replay
2014-03-01 14:30:55 +11:00
Andrew Tridgell
295cd9adba
AP_NavEKF: give a sensible error for no such file on replay
2014-03-01 14:24:51 +11:00
Paul Riseborough
854f013146
AP_NavEKF : Fixes zero compass offsets on initialisation
2014-02-28 19:43:12 +11:00
Andrew Tridgell
736201689b
AP_NavEKF: only use the active accel from DCM if fly_forward is set
2014-02-27 17:40:13 +11:00
Paul Riseborough
62eff63267
AP_NavEKF : Increase the tuning range for magnetometer measurement noise
2014-02-27 17:20:38 +11:00
Andrew Tridgell
a9e683dada
AP_NavEKF: use the accelerometer chosen by DCM for each step
2014-02-27 09:41:48 +11:00
Paul Riseborough
78a1cac560
AP_NavEKF : Improved heading and magnetic field state initialisation
2014-02-27 08:12:10 +11:00
Paul Riseborough
d83b382e59
AP_NavEKF : Fix variance constraint bug
...
Constraining variances to a minimum value of 1e-9 was causing problems
with gyro bias and angular accuracy in noisy GPS environments.
Because the constraint is applied after every covariance prediction
and correction, a lower value of 0 is more appropriate.
2014-02-27 08:12:03 +11:00
Andrew Tridgell
8b59e564ba
AP_NavEKF: improved replay timing
2014-02-27 08:11:04 +11:00
Andrew Tridgell
66f238c0da
AP_NavEKF: support 400Hz replay from 50Hz logs
2014-02-26 19:34:01 +11:00
Andrew Tridgell
63874dfffd
AP_NavEKF: set fix type in GPS replay
2014-02-25 21:10:49 +11:00
Andrew Tridgell
09cce5d24e
AP_NavEKF: fixed replay with current copter logs
2014-02-25 20:56:53 +11:00
Paul Riseborough
72a91ccbca
AP_NavEKF : Prevents aliasing triggering innovation consistency check failures
2014-02-25 15:55:44 +11:00
Paul Riseborough
5db9a87d31
AP_NavEKF : fixed bug in velocity rate of change filter
...
This bug meant the velocity rate of change used to scale the GPS measurement variances was noisy and too small
2014-02-23 19:50:37 +11:00
Paul Riseborough
01c84c3f47
AP_NavEKF : fixed bug in height limit range
2014-02-23 19:50:36 +11:00
Paul Riseborough
36d619ec3a
AP_NavEKF : Changed default IMU bias process noise to use smallest value
2014-02-23 19:50:36 +11:00
Paul Riseborough
89e0b48320
AP_NavEKF : Bug fix for height drift due to timer wrap-around
2014-02-23 19:50:35 +11:00
Paul Riseborough
939a32a7bb
AP_NavEKF : Improved stability of Z accel bias
2014-02-23 19:50:34 +11:00
Andrew Tridgell
ffbd655ba0
AP_NavEKF: support dual sensors in log replay, and fix flight altitude
2014-02-23 08:17:55 +11:00
Andrew Tridgell
707cc2b532
AP_NavEKF: allow log filename to be specified in replay
2014-02-23 08:17:01 +11:00
Andrew Tridgell
4e56196655
AP_NavEKF: allow states to be accessed using names as well as a Vector22
2014-02-21 20:24:47 +11:00
Andrew Tridgell
20b0444c15
AP_NavEKF: remove sleep on init of EKF
...
this prevents HIL from locking up, and also prevents a possible 1s
delay in flight on EKF init
2014-02-19 22:04:12 +11:00
Andrew Tridgell
c9d0c1face
AP_NavEKF: use ahrs->get_armed() for static mode demanded
2014-02-19 10:52:57 +11:00
Andrew Tridgell
536160a3fb
AP_NavEKF: use AHRS get_correct_centrifugal()
2014-02-19 10:28:45 +11:00
Andrew Tridgell
869e41fd03
AP_NavEKF: fixed detection of airspeed sensor
...
the get_airspeed() AHRS call can change as the user enables/disables
the airspeed sensor, plus it only gets enabled after the NavEKF
constructor runs.
2014-02-19 09:22:45 +11:00
Paul Riseborough
1ade39977a
AP_NavEKF : covariance prediction cleanup
2014-02-19 09:22:45 +11:00
Paul Riseborough
8daca145d0
AP_NavEKF : useAirspeed set automatically
2014-02-19 09:22:45 +11:00
Paul Riseborough
6fbada26d3
AP_NavEKF : Improvements to staticMode robustness
2014-02-19 09:22:45 +11:00
Andrew Tridgell
5bf170c440
AP_NavEKF: fixed log replay code
...
also added BARO and ARSP messages
2014-02-18 09:25:07 +11:00
Paul Riseborough
7a82746fcc
AP_NavEKF : fixed bug in pos and vel reset when in static mode
2014-02-16 22:35:19 +11:00
Paul Riseborough
275ef86f86
AP_NavEKF : Position and Velocity reset bugfix
2014-02-16 21:05:37 +11:00
Paul Riseborough
b22dc706b2
AP_NavEKF : staticMode bugfix and robustness improvements
2014-02-16 21:04:55 +11:00
Paul Riseborough
2926602718
AP_NavEKF : Cleaned up InitialiseFilterDynamic
2014-02-16 21:04:51 +11:00
Paul Riseborough
404fbafe26
AP_NavEKF : Changed timout behaviour to only reset PosVel states
2014-02-16 21:04:46 +11:00
Andrew Tridgell
24e1070eb2
AP_NavEKF: initialise quaternion from rotation matrix
2014-02-15 12:21:11 +11:00
Andrew Tridgell
c6b24c521b
AP_NavEKF: force healthy false when initialising
...
this prevents us feeding off our own values when booting
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-02-15 09:25:40 +11:00
Andrew Tridgell
8201f9c928
AP_NavEKF: don't build example
2014-02-15 06:40:06 +11:00
Andrew Tridgell
a7a44a9a5c
AP_NavEKF: fixed init order warning
2014-02-15 05:48:24 +11:00
Paul Riseborough
b56c8211c9
AP_NavEKF: Reduced number of Mavlink tuneable parameters
2014-02-15 05:48:23 +11:00
Paul Riseborough
c20fac1269
AP_NavEKF: Updated comments for private functions
2014-02-15 05:48:23 +11:00
Paul Riseborough
deb64c4cbd
AP_NavEKF: Pos Vel reset after long GPS timeout
2014-02-15 05:48:23 +11:00
Paul Riseborough
7ac0172db1
AP_NavEKF: removed repeated intialisation
2014-02-15 05:48:23 +11:00
Paul Riseborough
28fb5e364b
AP_NavEKF: Fixed bug in pos/vel/hgt reset on timout
2014-02-15 05:48:23 +11:00
Paul Riseborough
f74cce8b4e
AP_NavEKF : Removed double to float conversions
2014-02-15 05:48:23 +11:00
Paul Riseborough
80f6dba694
AP_NavEKF: Improved control of fusion update intervals
2014-02-15 05:48:23 +11:00
Paul Riseborough
13b9daeff5
AP_NavEKF: Added constraints to Mavlink tuneable parameters
2014-02-15 05:48:23 +11:00
Paul Riseborough
b123e1bb16
AP_NavEKF: Improved in-air reset behaviour
2014-02-15 05:48:22 +11:00
Paul Riseborough
1651980b9f
AP_NavEKF: Improved behaviour following loss and regaining of GPS
2014-02-15 05:48:22 +11:00
Paul Riseborough
14eb63e7c9
AP_NavEKF: Made most tuning parameters Mavlink adustable
2014-02-15 05:48:22 +11:00
Andrew Tridgell
f800f5592d
AP_NavEKF: fixup parameter handling
2014-02-15 05:48:22 +11:00
Paul Riseborough
f0f76920fa
AP_NavEKF : Mavlink tunable parameter - first attempt
2014-02-15 05:48:22 +11:00
Paul Riseborough
128f71157d
AP_NavEKF: Fixed bug in pre GPS fix updates
2014-02-15 05:48:22 +11:00
Paul Riseborough
357743ee2d
AP_NavEKF: Adjusted tuning parameters for plane use
2014-02-15 05:48:22 +11:00
Paul Riseborough
b4171853b1
AP_NavEKF: allow initialisation before GPS lock to aid indoor testing
2014-02-15 05:48:21 +11:00
Paul Riseborough
7fb60812c2
AP_NavEKF: Added pitch and roll inertial sensor to body trim adjustment
2014-02-15 05:48:21 +11:00
Paul Riseborough
9d375da550
AP_NavEKF: changed sqrt to sqrtf
2014-02-15 05:48:21 +11:00
Paul Riseborough
1f0b4b02d0
AP_NavEKF: fixed merge error that inverted static mode
2014-02-15 05:48:21 +11:00
Paul Riseborough
401e3aee43
AP_NavEKF : Changes to test harness to support accel bias states
2014-02-15 05:48:21 +11:00
Paul Riseborough
5219869389
AP_NavEKF : Added Z accel bias state and bootstrap initialisation method
2014-02-15 05:48:21 +11:00
Randy Mackay
301a04b74a
AP_NavEKF: update params for copter
2014-02-15 05:48:21 +11:00
Randy Mackay
7c73020015
AP_NavEKF: make params public so they can be tuned
2014-02-15 05:48:20 +11:00
Paul Riseborough
5c3dea28dc
AP_NavEKF : Enable staticMode to be set externally
2014-02-15 05:48:20 +11:00
Andrew Tridgell
77c4968342
AP_NavEKF: enable plotting in plot2.dat too
2014-02-15 05:48:20 +11:00
Andrew Tridgell
ab2a5a0672
AP_NavEKF: enable some debug
2014-02-15 05:48:20 +11:00
Paul Riseborough
0d4d287215
AP_NavEKF: comment and parameter tweaks for ground testing
2014-02-15 05:48:20 +11:00
Paul Riseborough
b6b0c2a489
AP_NavEKF: fixed bug in flag reset for hgt fusion
2014-02-15 05:48:19 +11:00
Paul Riseborough
2f3b2a7111
AP_NavEKF: second attempt at higher rate baro fusion
2014-02-15 05:48:19 +11:00
Paul Riseborough
cdbc5a3f35
AP_NavEKF: added position observations to static mode
2014-02-15 05:48:19 +11:00
Paul Riseborough
da2c341914
Revert "AP_NavEKF: Modifed Vel Pos fusion to fuse height data whenever baro reading has changed"
...
This reverts commit d1e1be192a0e7ab0771edc9f2c03547da25697cf.
2014-02-15 05:48:19 +11:00
Paul Riseborough
32cc427ff4
AP_NavEKF: Modifed Vel Pos fusion to fuse height data whenever baro reading has changed
2014-02-15 05:48:19 +11:00
Paul Riseborough
2998aa1a6a
AP_NavEKF: Amended tuning parameter list, and changed from variance to noise definitions
2014-02-15 05:48:19 +11:00
Paul Riseborough
f9aae1b90b
AP_NavEKF: fixed bug in variance constraint code
2014-02-15 05:48:19 +11:00
Paul Riseborough
735c9684da
AP_NavEKF: removed error in constructor comments
2014-02-15 05:48:19 +11:00
Paul Riseborough
8f999fe787
AP_NavEKF: Misc tuning adjustments for Plane testing
2014-02-15 05:48:19 +11:00
Paul Riseborough
c87a5aaf34
AP_NavEKF: added PositionReset public function to fix pre-arm loss of solution
2014-02-15 05:48:19 +11:00
Paul Riseborough
fec4fd463c
AP_NavEKF: reduced On Ground yaw gyro bias drift variance scaler
2014-02-15 05:48:19 +11:00
Paul Riseborough
619fffec3e
AP_NavEKF: added static mode for pre-arm and bench testing
2014-02-15 05:48:18 +11:00
Paul Riseborough
d0831c708d
AP_NavEKF : Added position and height reset public method
2014-02-15 05:48:18 +11:00
Andrew Tridgell
1b1f9e41ab
AP_NavEKF: improved playback initialisation
2014-02-15 05:48:18 +11:00
Andrew Tridgell
d9ef45234b
AP_NavEKF: useful plotting function
2014-02-15 05:48:18 +11:00
Andrew Tridgell
0816642436
AP_NavEKF: handle intertial nav
2014-02-15 05:48:18 +11:00
Andrew Tridgell
77c6e3206a
AP_NavEKF: some debug code
2014-02-15 05:48:18 +11:00
Andrew Tridgell
c33da7b3a2
AP_NavEKF: fixed log playback for copter
2014-02-15 05:48:18 +11:00
Andrew Tridgell
9b53db66cb
AP_NavEKF: tweak parameters based on randys copter log
2014-02-15 05:48:18 +11:00
Andrew Tridgell
4c42f53636
AP_NavEKF: use INS delta_time
2014-02-15 05:48:17 +11:00
Andrew Tridgell
5193ce90dc
AP_NavEKF: copter specific dtIMUAvg
2014-02-15 05:48:17 +11:00
Paul Riseborough
8b1d056e07
AP_NavEKF: updated timeout for GPS retry and reduced onGround gyro bias noise multiplier
2014-02-15 05:48:16 +11:00
Paul Riseborough
7e026d41df
AP_NavEKF: explicitly zeroed covariance matrix priro to setting initial values
2014-02-15 05:48:16 +11:00
Paul Riseborough
6e6e3d923e
AP_NavEKF: improved covariance matrix numerical stability protection
2014-02-15 05:48:16 +11:00
Andrew Tridgell
66dbaa6657
AP_NavEKF: make health() API const
2014-02-15 05:48:16 +11:00
Andrew Tridgell
c493d980d8
AP_NavEKF: fixed check for airspeed sensor available
2014-02-15 05:48:15 +11:00
Andrew Tridgell
2dbfed19b8
AP_NavEKF: fixed airspeed estimate check
2014-02-15 05:48:15 +11:00
Paul Riseborough
e69eea3086
AP_NavEKF: Bug fix in covariance error correction
2014-02-15 05:48:15 +11:00
Paul Riseborough
43dc9bc055
AP_NavEKF: Added improved covariance matrix error fix
2014-02-15 05:48:15 +11:00
Paul Riseborough
4a56ea84b5
AP_NavEKF: Removed accel bias states
2014-02-15 05:48:15 +11:00
Andrew Tridgell
093481786e
AP_NavEKF: added SIM state to playback tool
2014-02-15 05:48:15 +11:00
Andrew Tridgell
5578552574
AP_NavEKF: fixed example for new API
2014-02-15 05:29:48 +11:00
Andrew Tridgell
2acf1e7ce5
AP_NavEKF: allow filter to run as single or double precision
...
useful for checking if there are numerical precision issues
2014-02-15 05:29:48 +11:00
Paul Riseborough
efd444b02e
AP_NavEKF: covariance protection (not enabled) and tuning changes for stability
2014-02-15 05:29:48 +11:00
Paul Riseborough
be9f276f45
AP_NavEKF: fixed compass offset sign error
2014-02-15 05:29:48 +11:00
Andrew Tridgell
ee774f69d0
AP_NavEKF: fixed some time handling bugs
...
use get_delta_time() and removed broken time wrap code
2014-02-15 05:29:48 +11:00
Andrew Tridgell
95c5aeaa43
AP_NavEKF: removed more unused variables
2014-02-15 05:29:47 +11:00
Andrew Tridgell
a53fc0636a
AP_NavEKF: zero more variables on filter re-init
2014-02-15 05:29:47 +11:00
Andrew Tridgell
91cbad52a1
AP_NavEKF: handle conversion of AHRS to handle altitude
...
fixed accuracy of position for cm level lat/lng
2014-02-15 05:29:47 +11:00
Andrew Tridgell
9ef71a9dec
AP_NavEKF: added healthy() API
2014-02-15 05:29:46 +11:00
Andrew Tridgell
bfd48a95b7
AP_NavEKF: fixed example build
2014-02-15 05:29:45 +11:00
Andrew Tridgell
ea0f9392ef
AP_NavEKF: don't report altitude yet, and removed debug code
2014-02-15 05:29:45 +11:00
Andrew Tridgell
33673c954d
AP_NavEKF: implemented getRotationBodyToNED()
2014-02-15 05:28:10 +11:00
Andrew Tridgell
2c86a490ed
AP_NavEKF: make it possible for NavEKF to be a AHRS member
...
ready for AHRS integration
2014-02-15 05:28:09 +11:00
Paul Riseborough
6f31961fb5
AP_NavEKF: Added height rate adaptive wind speed process noise
2014-02-15 05:28:09 +11:00
Paul Riseborough
de884dabab
AP_NavEKF: brought some tuning parameters out to header
2014-02-15 05:28:09 +11:00
Paul Riseborough
3ee5ef852b
AP_NavEKF : improved On Ground check
2014-02-15 05:28:09 +11:00
Paul Riseborough
8bc14d09b2
AP_NavEKF : remove onGround airspeed detect bug
2014-02-15 05:28:09 +11:00
Paul Riseborough
a507fa7570
AP_NavEKF : remove debug code
2014-02-15 05:28:09 +11:00
Paul Riseborough
2f95685bfc
Plane : EKF data logging fixes
2014-02-15 05:28:09 +11:00
Paul Riseborough
6b9733c013
AP_NavEKF : Additional flash logging
2014-02-15 05:28:09 +11:00
Paul Riseborough
c28e89e4b7
AP_NavEKF: bug fixes for height fusion and covariance initialisation
2014-02-15 05:28:08 +11:00
Paul Riseborough
aed6c79135
AP_NavEKF: Added gyro bias variance scale for on-ground
2014-02-15 05:28:08 +11:00
Paul Riseborough
cb42e1e490
AP_NavEKF: Added public function to get NED position
2014-02-15 05:28:08 +11:00
Paul Riseborough
2c567cd721
AP_NavEKF: Added tuning parameter for onGround yaw gyro variance
2014-02-15 05:28:08 +11:00
Paul Riseborough
9515f6c745
AP_NavEKF: Cleaned up on-ground state and covariance update logic
2014-02-15 05:28:08 +11:00
Andrew Tridgell
9c5647eef3
AP_NavEKF: stop log for gdb friendly playback
2014-02-15 05:28:08 +11:00
Andrew Tridgell
4adf6000f3
AP_NavEKF: only build on fast CPUs
2014-02-15 05:28:08 +11:00
Paul Riseborough
1647ba9bd0
AP_NavEKF: Reduced heading drift on ground
2014-02-15 05:28:08 +11:00
Paul Riseborough
63d8b1bb0b
AP_NavEKF: Scheduler Improvements
2014-02-15 05:28:07 +11:00
Andrew Tridgell
df42dd691c
AP_NavEKF: added perf counters on PX4
2014-02-15 05:28:07 +11:00
Andrew Tridgell
3d6cb9eade
AP_NavEKF: use float arrays when not doing bounds checking
...
g++ is doing a lousy job of inlining VectorN, so avoid it when we
don't need bounds checking for production code
2014-02-15 05:28:07 +11:00
Andrew Tridgell
010250a966
AP_NavEKF: use quaternion normalize and cleanup sqrt calls
2014-02-15 05:28:07 +11:00
Paul Riseborough
406fb31a57
AP_NavEKF: Load levelling scheduler - first attempt
2014-02-15 05:28:07 +11:00
Andrew Tridgell
163cfd839d
AP_NavEKF: enable airspeed and fix getLLH()
2014-02-15 05:28:07 +11:00
Andrew Tridgell
4771a4fc77
AP_NavEKF: use radians values from AHRS directly
2014-02-15 05:27:53 +11:00
Paul Riseborough
6b798d2821
AP_NavEKF: first working GPS + Mag fusion
2014-02-15 05:27:53 +11:00
Paul Riseborough
bccadb6e25
AP_NavEKF: first working GPS fusion
2014-02-15 05:27:53 +11:00
Andrew Tridgell
90cd04def3
AP_NavEKF: fixed build for non-Linux
2014-02-15 05:27:53 +11:00
Andrew Tridgell
0b71618f4f
AP_NavEKF: use vectorN to make indexes safe
2014-02-15 05:27:53 +11:00
Andrew Tridgell
e972acbc9f
AP_NavEKF: removed delay callback
2014-02-15 05:27:53 +11:00
Andrew Tridgell
8f16647a0c
AP_NavEKF: added write_flot valgrind functions
2014-02-15 05:27:53 +11:00
Andrew Tridgell
a8ddd51355
AP_NavEKF: added pause to gnuplot scripts
2014-02-15 05:27:53 +11:00
Andrew Tridgell
4298625daf
AP_NavEKF: added convenient plotting scripts
2014-02-15 05:27:53 +11:00
Paul Riseborough
fca1090694
AP_NavEKF: debug updates
2014-02-15 05:27:53 +11:00
Andrew Tridgell
95f51123d7
AP_NavEKF: added plot.dat output
2014-02-15 05:27:53 +11:00
Andrew Tridgell
050b0fb9f1
AP_NavEKF: fixed compass declination, baro cal and time shift
...
now runs much faster
2014-02-15 05:27:53 +11:00
Andrew Tridgell
776cedf368
AP_NavEKF: try running EKF on log data
2014-02-15 05:27:52 +11:00
Andrew Tridgell
ffce1f64cc
AP_NavEKF: added euler angle functions
2014-02-15 05:27:52 +11:00
Andrew Tridgell
977ad4bbf6
AP_NavEKF: added dataflash log reader
...
this gives log playback into HIL
2014-02-15 05:27:52 +11:00
Andrew Tridgell
f3dfde2025
AP_NavEKF: initial test sketch for NavEKF
2014-02-15 05:27:52 +11:00
Paul Riseborough
361bb5b18f
AP_NavEKF: Updated comments in header file
2014-02-15 05:27:52 +11:00
Paul Riseborough
00df068967
AP_NavEKF: Explicitly defined numerical constants as single precision using f suffix
2014-02-15 05:27:52 +11:00
Andrew Tridgell
eb505eef91
AP_NavEKF: fixed build for APM environment
2014-02-15 05:27:52 +11:00
Paul Riseborough
0dd5463e77
AP_NavEKF : Changed file and variable names
2014-02-15 05:27:52 +11:00
Paul Riseborough
1e993d2ef5
AP_NavEKF: Added constructor for measurements
2014-02-15 05:27:52 +11:00
Paul Riseborough
4a7f81e50a
AP_NavEKF: Corrected height update timeout error
2014-02-15 05:27:51 +11:00
Paul Riseborough
0f3ebb8e31
AP_NavEKF: Updated measurement fusion control
2014-02-15 05:27:51 +11:00
Paul Riseborough
c557bd7df5
AP_NavEKF: Updated GPS input processing
2014-02-15 05:27:51 +11:00
Paul Riseborough
1d4b040c67
AP_NavEKF: Inertial Navigation Code - 24 State EKF
...
initial version converted from matlab
2014-02-15 05:27:51 +11:00