Paul Riseborough
66e4d9d6e8
AP_NavEKF2: Reset co-variance values when doing a pos,vel,hgt reset
...
Ensures consistent behaviour after resets and reduces attitude disturbances
9 years ago
Paul Riseborough
cf8175a073
AP_NavEKF2: Allow immediate use of GPS in-flight for plane without compass
...
Planes operating without a compass must align the yaw to the GPS heading immediately after launch or takeoff and cannot wait for GPS accuracy checks.
9 years ago
Paul Riseborough
08de4e6d95
AP_NavEKF: Do not perform start-up yaw alignment if no compass
...
Yaw cannot be aligned until in-flight when there is sufficient GPS velocity.
9 years ago
Paul Riseborough
d2694fe5dc
AP_NavEKF2: Remove duplicate transition into GPS aiding
...
This decision is made in one place in setAidingMode()
9 years ago
Paul Riseborough
7201f7d2fd
AP_NavEKF2: fix comment
9 years ago
Paul Riseborough
64a8153b68
AP_NavEKF2: update function name
...
The primary purpose of this function is re-alignment
9 years ago
Paul Riseborough
addd213af0
AP_NavEKF2: reduce effect of acceleration on non-GPS mode attitude
9 years ago
Paul Riseborough
a3b78e6231
AP_NavEKF2: update tuning defaults
9 years ago
Paul Riseborough
65f63341d7
AP_NavEKF2: Improve numerical error protection in optical flow fusion
...
Abort fusion of data if variances will become negative and publish the fault
9 years ago
Paul Riseborough
42da33593d
AP_NavEKF2: fix yaw fusion numerical health reporting
9 years ago
Paul Riseborough
6eb9d43507
AP_NavEKF2: add numerical error checking and isolation to mag decl fusion
9 years ago
Paul Riseborough
b325c5faeb
AP_NavEKF2: add error checking and isolation to mag heading fusion
9 years ago
Paul Riseborough
a0b1dc5325
AP_NavEKF2: add error checking and isolation to 3D amg fusion
9 years ago
Paul Riseborough
51a3df0319
AP_NavEKF2: Add error checking and isolation to pos vel fusion
9 years ago
Paul Riseborough
71b589c89c
AP_NavEKF2: extend fusion fault reporting coverage
9 years ago
Paul Riseborough
0982bd0b2b
AP_NavEKF2: update parameter documentation
9 years ago
Paul Riseborough
46a2993a0d
AP_NavEKF: use intuitive units for imu bias process noise parameters
9 years ago
Paul Riseborough
8c374fd679
AP_NavEKF2: correct comments
9 years ago
Paul Riseborough
6be9eaa524
AP_NavEKF2: use receiver estimated accuracy
...
Adjust the GPS observation noise based on receiver accuracy output if available.
9 years ago
Paul Riseborough
dddc213836
AP_NavEKF2: Open up tuning limits
...
Done to assist tuning assessments
9 years ago
Paul Riseborough
cf05e110fc
AP_NavEKF2: fix scaling error in use of IMU noise parameters
...
Also remove process noise from state transition matrix where it was mistakenly left in after the derivation
9 years ago
Andrew Tridgell
4080c6091d
AP_NavEKF2: fixed an assumption that _ahrs->get_compass() always works
...
if MAG_ENABLE=0 in plane there is no compass
9 years ago
Tom Pittenger
d67b1edf10
AP_NavEKF2: (potential) compiler warning of float to double promotion
9 years ago
Ricardo de Almeida Gonzaga
64d14356b9
AP_NavEKF2: Fix typos
9 years ago
dgrat
41661f815f
AP_Math: Replace the pythagorous* functions with a variadic template
...
The new function can deal with a variable number of function parameters.
Additionally, I renamed the functions to norm(), because this is the
standard name used in several other projects.
9 years ago
Andrew Tridgell
ea508f1b80
AP_NavEKF2: use LOG_REPLAY and EK2_LOG_MASK parameters
9 years ago
Andrew Tridgell
32af886ba9
AP_NavEKF2: use consistent logging timestamps for sensors
9 years ago
Andrew Tridgell
4e4c575f16
AP_NavEKF2: added have_ekf_logging()
9 years ago
Andrew Tridgell
b7ba0fa458
AP_NavEKF2: added ad-hoc logging example to EKF2
9 years ago
Andrew Tridgell
223c512188
AP_NavEKF2: added logging of sensor data in EKF2
9 years ago
Andrew Tridgell
f92279f436
AP_NavEKF2: allow logging of IMT data from inside EKF2
9 years ago
Andrew Tridgell
9c4dd024bf
AP_NavEKF2: auto change EK2_GPS_TYPE for NMEA
...
this fixes a problem where users of NMEA GPS receivers could not arm
with default EK2 parameters.
9 years ago
Andrew Tridgell
ac60901b0c
AP_NavEKF2: use vector comparison for new mag vector
9 years ago
Jonathan Challinger
97112ccd44
AP_NavEKF2: check mag instance id when returning mag offsets
9 years ago
Jonathan Challinger
1185cd1be7
AP_NavEKF2: move getMagOffsets into outputs
9 years ago
Jonathan Challinger
acfaafe276
AP_NavEKF2: detect changes to magnetometer offset parameters and reset states
9 years ago
Paul Riseborough
1ecc206eee
AP_NavEKF2: Allow use in planes without a magnetometer
...
Implements the following techniques to enable planes to operate without magnetometers.
1) When on ground with mag use inhibited, a synthetic heading equal to current heading is fused to prevent uncontrolled covariance growth.
2) When transitioning to in-flight, the delta between inertial and GPS velocity vector is used to align the yaw.
3) The yaw gyro bias state variance is reset following an in-flight heading reset to enable the yaw gyro bias to be learned faster.
9 years ago
Paul Riseborough
6d9ba8c527
AP_NavEKF2: Improve protection against ground based mag interference
...
Reset the mag field states and yaw earlier than the normal 5m height threshold if toilet bowling is detected.
9 years ago
Lucas De Marchi
e40b87cd0e
AP_NavEKF2: replace header guard with pragma once
9 years ago
Paul Riseborough
38b3625ed8
AP_NavEKF2: Fix bug in initial alignment calculation
...
The bug caused the initial roll angle to be incorrect if the vehicle was powered up when inverted, causing long alignment times.
9 years ago
Paul Riseborough
2888bdd6d5
AP_NavEKF: Protect against possible div by 0
9 years ago
Paul Riseborough
7d6b926749
AP_NavEKF2: Improved magnetic heading fusion
...
Use an Euler yaw heading that switches between a 321 and 312 rotation
sequence to avoid areas of singularity. Using Euler yaw decouples the
observation from the roll and pitch states and prevents magnetic
disturbances from affecting roll and pitch via the magnetometer fusion
process.
9 years ago
Paul Riseborough
bb74371c58
AP_NavEKF2: Do not use GPS height if GPS accuracy is poor
...
If we are using GPS height, revert back to using Baro height if the GPS accuracy is poor.
9 years ago
dgrat
5148e41c1a
AP_Math: Cleaned macro definitions
...
Moved Definitions into a separate header. Replaced PI with M_PI and
removed the M_PI_*_F macros.
9 years ago
Paul Riseborough
7459bfb96b
AP_NavEKF2: Eliminate simple compass fusion singularities near +-90 deg pitch
...
The use of yaw angle fusion during startup and ground operation causes problems with tail-sitter vehicle types.
Instead of observing an Euler yaw angle, we now observe the yaw angle obtained by projecting the measured magnetic field onto the the horizontal plain.
This avoids the singularities associated with the observation of Euler yaw angle.
9 years ago
Paul Riseborough
4aefe1caee
AP_NavEKF2: Fix sign error in magnetic heading innovation calculation
9 years ago
Peter Barker
475a2040a1
AP_NavEKF2: avoid use of undefined #defines
...
Ensure EKF_DISABLE_INTERRUPTS is defined
Do not define MATH_CHECK_INDEXES, assume it is defined
9 years ago
Paul Riseborough
047e9fabaf
AP_NavEKF2: Fix bug in simple heading fusion
...
The innovation calculation should have been updated when the heading fusion maths was updated.
We now use a direct heading or yaw angle measurement in the derivation, not the difference between observed and published declination.
9 years ago
Paul Riseborough
d3c9a0aef1
AP_NavEKF: Limit heading innovations after the consistency check
9 years ago
Paul Riseborough
6a34e4c384
AP_NavEKF2: Fix bug in magnetic heading and declination fusion equations.
...
The derivation incorrectly used a tan instead of an atan function. This applies the corrected auto-code.
9 years ago