Paul Riseborough
74121fdaeb
AP_NavEKF2: fix bug preventing in-flight alignment
9 years ago
Paul Riseborough
16cb7078cd
AP_NavEKF2: Fix misleading pre-flight status reporting
9 years ago
Paul Riseborough
38d61f5281
AP_NavEKF2: Update status reporting to handle no-magnetometer startup
9 years ago
Paul Riseborough
9aa3cdfaae
AP_NavEKF2: Update GPS yaw re-alignment function
...
Updates to support initial alignment without magnetometer
9 years ago
Paul Riseborough
e3c966661b
AP_NavEKF2: Remove unnecessary variance reset
...
This reset is unnecessary give that a synthetic yaw angle is fused at a low rate to prevent variances from becoming badly conditioned.
9 years ago
Paul Riseborough
1179c08473
AP_NavEKF2: Handle case where we are in-flight and haven't yet aligned the yaw
...
This happens if planes are flown without a compass
9 years ago
Paul Riseborough
581c1aa0d4
AP_NavEKF2: Adjust attitude variance values used after a heading reset
...
Because these errors are in body frame, a spherical error should be used to accommodate different orientations
9 years ago
Paul Riseborough
5ec8d523f6
AP_NavEKF: remove unwanted co-variance reset
...
The co-variance resets required following a velocity and position state reset is now performed in the stte reset function
9 years ago
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