priseborough
c96bc54254
AP_NavEKF3: correctly use wheel odometry speed for pitched rovers
2017-10-31 08:11:05 +09:00
priseborough
ee6b43aabf
AP_NavEKF3: Fix bugs in use of wheel encoder data
...
Found by pavloblindnology
2017-10-28 10:58:01 +09:00
Lucas De Marchi
bd6145af6d
AP_NavEKF3: add static create method
2017-09-26 03:01:21 +01:00
Peter Barker
63440800fc
AP_NavEKF3: use rangefinder backend accessors
2017-08-15 18:30:45 +01:00
priseborough
2310cb6d19
AP_NavEKF3: Enable external control over use of GPS vertical velocity
2017-08-10 19:49:45 +10:00
Michael du Breuil
efe70c8d3a
AP_NavEKF3: Fix possible compass nullptr dereference
2017-08-01 15:25:05 +01:00
priseborough
db7c8439c6
AP_NavEKF3: Fix bug in wheel odometry timestamp correction
2017-07-28 12:48:38 +09:00
priseborough
c7f6d52065
AP_NavEKF3: Add wheel encoder odometry
...
Uses the existing body frame odometry observation model.
Handles each sensored wheel as a separate sensor.
2017-07-27 16:52:27 +09:00
priseborough
cbe8f97489
AP_NavEKF3: rename struct used for velocity odometry observations
...
Do this so we can add other odometry observation types.
2017-07-27 16:52:26 +09:00
priseborough
08a3f55c90
AP_NavEKF3: Fix error in scaling of observation error
2017-07-27 16:52:25 +09:00
priseborough
593437ca95
AP_NavEKF3: Add tuning of visual odometry observation error
...
Also adjust default values based on replay analysis.
2017-07-27 16:52:25 +09:00
priseborough
58d58b4eac
AP_NavEKF3: Initialise EKF origin height to field elevation
...
Enables copters to set bit position 2 in the EK3_OGN_HGT_MASK parameter without having a large jump in reported local position height.
2017-07-17 02:22:02 +01:00
priseborough
0827b13feb
AP_NavEKF3: Fix default behaviour for height origin corrections
...
Previous default was to apply in-flight height origin changes to local position instead of to reported origin height. This caused problems with copters that took off before getting GPS lock.
2017-07-17 02:22:02 +01:00
Peter Barker
93e09c51d3
AP_NavEKF3: eliminate GCS_MAVLINK::send_statustext_all
2017-07-11 23:53:53 +01:00
Randy Mackay
d64b2fcbf0
AP_NavEKF3: final mag reset at 2.5m
2017-07-08 08:39:43 +09:00
priseborough
9d0fa09d39
AP_NavEKF3: Fix calculation of predicted LOS rate in terrain estimator
2017-06-26 14:58:06 +01:00
priseborough
a4d18696a7
AP_NavEKF3: Improve variable names and documentation
...
Also remove unnecessary calculation of innov * gain
2017-06-23 00:43:58 +01:00
priseborough
368983ed5a
AP_NavEKF3: Clean up aiding mode logic using switch statements
2017-06-23 00:43:58 +01:00
priseborough
2a9eceaf10
AP_NavEKF3: Fix bugs causing height drift when using range beacons
2017-06-23 00:43:58 +01:00
priseborough
7659e9c31f
AP_NavEKF3: Improve checking of time delay validity when setting buffers
...
This change means that provided the GPS_DELAY_MS parameters are set for each GPS receiver attached, the EKF will not have to wait for the configuration of each receiver to be determined before it can start.
This significantly reduces start-up times when the delay parameters are set.
2017-06-21 11:44:45 +01:00
priseborough
7d63286088
AP_NavEKF3: update to match AP_GPS interface change
2017-06-21 11:44:45 +01:00
priseborough
06d40a7901
AP_NavEKF3: Fix terrain estimator innovation consistency check
2017-06-20 02:08:56 +01:00
priseborough
284fc0f3c5
AP_NavEKF3: Fix bug in flow fusion for terrain estimation
...
Also remove unused class variables
2017-06-20 02:08:56 +01:00
Andrew Tridgell
a1508b58c1
AP_NavEKF3: use AHRS likely flying state
...
this sets inFlight when AHRS has indicated flying for 5s
2017-06-20 09:44:44 +10:00
priseborough
edee8396ba
AP_NavEKF3: Improve in-flight check for non fly forward vehicles
...
This will enable the EK3_MAG_TYPE 0 option to be used for multirotors
2017-06-19 06:09:07 +10:00
Dr.-Ing. Amilcar Do Carmo Lucas
6a01c65197
AP_NavEKF3: Fix long description of EK3_OGN_HGT_MASK parameter (NFC)
2017-06-16 12:05:20 +01:00
priseborough
49ec2b4032
AP_NavEKF3: Change default value of EK3_OGN_HGT_MASK
...
Turn off by default.
Update parameter description.
2017-06-14 12:44:41 +01:00
priseborough
6d14cf0ab8
AP_NavEKF3: Ensure reported local height = global height - origin height
2017-06-14 12:44:41 +01:00
priseborough
3ae7998f51
AP_NavEKF3: Allow reporting of origin height for specified instance
2017-06-14 12:44:41 +01:00
priseborough
e58ba8044d
AP_NavEKF3: Improve protection for badly conditioned dVel bias covariances
...
If variance falls below desired minimum, set state noise to a larger value.
If variance drops below safe value, set to desired minimum and reset off-diagonals to zero.
2017-06-14 12:44:41 +01:00
priseborough
bf963f8b65
AP_NavEKF3: Raise lower limit on del vel bias state variances
...
This is required to prevent co-variance matrix errors due to long periods without movement causing height divergence.
2017-06-14 12:44:41 +01:00
priseborough
628d140319
AP_NavEKF3: Make target covariance time step larger
...
The target covariance time step has been increased from 10 to 12 msec to improve conditioning of the covariance prediction calculation.
2017-06-14 12:44:41 +01:00
priseborough
2b97d0f5c9
AP_NavEKF3: Add public accessor for state variances
2017-06-14 12:44:41 +01:00
priseborough
9f97cbfc3b
AP_NavEKF3: Revert auto-code to original form and remove micro optimisations
...
To eliminate the possibility of editing errors, revert the covariance prediction auto-code to the original auto-code without the replacement fo the /2 and /4 operations. The compiler optimisations are able to correctly handle the /2 and /4 operations.
Also use local variables for intermediate covariance calculations. The use of class variables for these small arrays was unnecessary.
2017-06-14 12:44:41 +01:00
priseborough
f38fccd57c
AP_NavEKF3: Prevent possible race condition re-zeroing state variances
2017-06-14 12:44:41 +01:00
priseborough
7adaea6019
AP_NavEKF3: Improve partitioning and efficiency of the covariance prediction
...
This patch ensures that covariance matrix entries for inactive states are always set to zero.
It also halves the number of copy operations from the updated to stored matrix.
2017-06-14 12:44:41 +01:00
priseborough
a1c117360c
AP_NavEKF3: Ensure Kalman gain calculatons respect deactivated states
...
All Kalman gain calculations now explicity set gains for deactivated states to zero.
Previous use of loops to set gains to zero have been replaced with more efficient memset operations.
2017-06-14 12:44:41 +01:00
priseborough
5058405f8c
AP_NavEKF3: add gyro bias state inhibit and rework index limit calculation
...
Inhibiting gyro bias estimation during the initial tilt alignment speeds alignment.
The calculation of the maxmum state index required has been modified so that it can handle all combinations of inhibited states.
Limiting the maximum state index accessed by all EKF operations result in significant processing reductions when higher index states are not being used.
2017-06-14 12:44:41 +01:00
priseborough
0cba133a1e
AP_NavEKF3: Fix initialisation of state inhibit flags
2017-06-14 12:44:41 +01:00
priseborough
9da3caca47
AP_NavEKF3: Improve GPS reference height estimator
...
Fix rounding error bug preventing state from updating after initial convergence.
Decouple GPS reference height from published EKf origin height.
Add bitmask parameter to control update and publishing of GPS reference height.
2017-06-14 12:44:41 +01:00
Dr.-Ing. Amilcar Do Carmo Lucas
c1eb9fb9c3
AP_NavEKF3: Spell in comments
2017-05-18 09:29:55 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas
d3a57b5965
AP_NavEKF3: Use SI units conventions in parameter units
...
Follow the rules from:
http://physics.nist.gov/cuu/Units/units.html
http://physics.nist.gov/cuu/Units/outside.html
and
http://physics.nist.gov/cuu/Units/checklist.html
one further constrain is that only printable (7bit) ASCII characters are allowed
2017-05-17 18:07:25 +10:00
Dr.-Ing. Amilcar Do Carmo Lucas
9cb068d3f4
AP_NavEKF3: Spell in coments
2017-05-16 20:29:16 +09:00
murata
46cba2c970
libraries: Delete the setting value for specific editor.
2017-05-11 13:18:41 -07:00
Dr.-Ing. Amilcar Do Carmo Lucas
23b7f1e645
AP_NavEKF3: Improve comments, typos
2017-05-03 08:45:01 +09:00
priseborough
4a898037e9
AP_NavEKF3: documentation update
2017-05-01 14:24:55 +10:00
Andrew Tridgell
a04aff7a7d
AP_NavEKF3: added inter-EKF scheduling cooperation
...
this changes the stragegy for load levelling between EKF cores so it
works between EK2 and EK3, and with future estimators as well.
It allows us to run EK3 and EK2 at the same time with good scheduling
performance
2017-05-01 14:24:55 +10:00
priseborough
0bf50fd56f
AP_NavEKF3: Add monitoring of average EKF time step
2017-04-29 11:03:44 +10:00
priseborough
3ce81967ae
AP_NavEKF3: Improve calculation and use of average EKF time step
2017-04-29 11:03:44 +10:00
priseborough
7abf9997e6
AP_NavEKF3: Correctly initialise dtIMUavg time step and apply LPF
2017-04-29 11:03:44 +10:00
priseborough
1301b9797a
AP_NavEKF3: Fix solution validity reporting bug
...
Fixes bug that causes relative position status to report as false when using optical flow and using range finder as the primary height sensor.
2017-04-28 17:19:23 +01:00
Andrew Tridgell
adb281cd4e
AP_NavEKF3: added timing statistics logging
2017-04-28 17:19:39 +10:00
priseborough
f208986d43
AP_NavEKF3: Reset covariance if bad mag fusion update
2017-04-27 20:14:21 +10:00
Andrew Tridgell
18b66f9eed
AP_NavEKF3: fixed reset of coviariance matrix
2017-04-27 18:33:25 +10:00
Randy Mackay
b255c7b370
AP_NavEKF: add setOrigin
2017-04-22 10:37:31 +09:00
priseborough
fb7104f4e3
AP_NavEKF3: add fusion method for body frame odometry data
2017-04-19 11:04:40 +09:00
Andrew Tridgell
248773a7c8
AP_NavEKF3: allow access to quaternion for each instance
2017-04-16 14:01:36 +10:00
priseborough
8250fe4943
AP_NavEKF3: fix documentation derivation references
2017-04-10 15:47:35 +09:00
priseborough
06c073e448
AP_NavEKF3: Update tilt alignment check
2017-04-05 20:16:16 +10:00
Jonathan Challinger
c7a73e84d6
AP_NavEKF3: apply height innovation floor only when barometer is in use
2017-03-24 14:42:36 -07:00
priseborough
56a9e2c462
AP_NavEKF3: Reference correct derivation
2017-03-13 11:31:51 +11:00
priseborough
18927395d7
AP_NavEKF3: log correct GPS for replay
2017-03-13 11:31:51 +11:00
priseborough
01551a4423
AP_NavEKF3: handle position jump caused by change in GPS receiver
...
If the GPS receiver selection changes and we are using GPS for height, the vertical position will be reset to the new GPS height measurement.
correct output observer history when doing a GPS height reset
2017-03-13 11:31:51 +11:00
Randy Mackay
3e039a6ba4
AP_NavEKF3: minor formatting fixes
...
No functional change
2017-03-06 18:40:18 +11:00
Randy Mackay
a80c0a231d
AP_NavEKF3: attempt to set-up every core
...
previously we would only call setup_core for the 2nd core if the first had been setup successfully
2017-03-06 18:40:18 +11:00
priseborough
7a8783f35e
AP_NavEKF3: Fix bug preventing reset to GPS
...
This fixes a bug that prevented the reset to the GPS position occurring if GPS velocity observations were still passing innovation consistency checks.
2017-03-06 17:11:39 +11:00
Randy Mackay
3f6a734a71
AP_NavEKF3: only use downward facing rangefinder
2017-02-27 15:18:11 +09:00
Michael du Breuil
1de198883d
AP_NavEKF3: Check gps vertical accuracy for aligning the GPS
2017-02-22 11:53:42 -08:00
Jacob Walser
ac1e1b9460
AP_NavEKF3: Add set_baro_alt_noise method
2017-02-21 11:26:14 +11:00
Francisco Ferreira
23f959b92f
AP_NavEKF3: fix copied parameter descriptions
2017-02-15 19:20:04 +00:00
priseborough
de7a679534
AP_NavEKF3: Enable simple heading fusion to be set for specific cores
2017-02-15 19:09:45 +00:00
priseborough
ccb952ba31
AP_NavEKF3: Use the same mag fusion method for all cores
...
The original reason for using a different method for the second core is no longer valid.
2017-02-15 19:01:10 +00:00
priseborough
e399f57ffa
AP_NavEKF3: prevent NaN if RNGFND_GNDCLEAR is zero
2017-02-15 07:04:38 +09:00
priseborough
784fa6fed8
AP_NavEKF3: fix compiler error
2017-01-27 16:57:42 +09:00
priseborough
2c36da2b21
AP_NavEKF3: relocate perf monitor to count all three mag components
2017-01-27 16:57:42 +09:00
priseborough
4d958952f6
AP_NavEKF3: use standard unit descriptor for milliseconds
2017-01-27 16:57:42 +09:00
priseborough
b5ba1d0346
AP_NavEKF3: protect against large delay values returned by the GPS library
2017-01-27 16:57:42 +09:00
priseborough
4540faf6af
AP_NavEKF3: Improve waiting for GPS configuration
...
Do not time out and provide an escalating series of messages. We may need to adjust the time thresholds used for escalation.
Do not wait if the EKF is not using the GPS.
2017-01-27 16:57:42 +09:00
priseborough
52e8f687d9
AP_NavEKF3: fix logic bug introduced by magnetometer use changes
2017-01-27 16:57:42 +09:00
priseborough
a133d55b6d
AP_NavEKF3: Allow copters to fly with magnetometers disabled
...
Copter operation without a magnetometer is limited to constant position and relative position modes only (no GPS or range beacon fusion permitted)
Copter optical flow operation without a magnetometer is permitted.
The ability of planes to takeoff/launch without a magnetometer and align the yaw using the GPS velocity is retained.
2017-01-27 16:57:42 +09:00
priseborough
2e5ac40ef6
AP_NavEKF3: remove unnecessary stdio includes
2017-01-27 16:57:42 +09:00
priseborough
8688d1ddac
AP_NavEKF3: Improve range finder selection logic
...
Fixes bug that could leave it locked out of range finder use.
2017-01-27 16:57:42 +09:00
priseborough
7e8f3fca53
AP_NavEKF3: Address review comments
...
Removes a leftover debug printf statement.
Fixes documentation errors.
Replace remaining fmaxf function calls with Ardupilot MAX function
2017-01-27 16:57:42 +09:00
priseborough
b723966b8d
AP_NavEKF2: Add protection against bad GPS time delay values
...
Prevent bad values for GPS time delay pushing the GPS time stamp outside the range of IMU data contained in the buffer. If this occurs it can prevent the GPS measurements from being fused and cause loss of navigation.
2017-01-27 16:57:42 +09:00
priseborough
59ee074560
AP_NavEKF3: Remove EKF2 names
2017-01-27 16:57:42 +09:00
priseborough
b862f0d7ad
AP_NavEKF3: Enable use of GPS delay value from returned by the driver
...
Use the time delay returned by the GPS driver.
Wait long enough for the GPS configuration to be determined, but time out after 30 seconds and warn the user that a default value for time delay will be used.
2017-01-27 16:57:42 +09:00
priseborough
69a47d7522
AP_NavEKF3: Improve reporting of buffer allocation
2017-01-27 16:57:42 +09:00
priseborough
ceb42225fd
AP_NavEKF3: Ensure enough time to fill buffers when starting filter
2017-01-27 16:57:42 +09:00
priseborough
a8fd1d8bcd
AP_NavEKF3: fix potential time-stamping bug
...
Use a consistent time reference
2017-01-27 16:57:42 +09:00
priseborough
8d1733cee6
AP_NavEKF3: Use FIR filtered airspeed
...
Switch to use of an airspeed reading averaged across the raw sensor readings. since the last update.
This avoids use of the IIR which requires a larger time delay compensation and violates the assumption of uncorrelated noise.
The time delay parameter has been reduced to compensate for the removal of the airspeed IIR filtering.
2017-01-27 16:57:42 +09:00
priseborough
9261c34097
AP_NavEKF3: Update default GPS delay
...
This value is a compromise between what works best for a Ublox 6 which is around 200msec delay and the more recent 7 and 8 series receivers that are around 120msec delay.
2017-01-27 16:57:42 +09:00
priseborough
ed5039823f
AP_NavEKF3: Adapt sensor buffer lengths
...
Adapt the lengths of the IMU and observations buffers on startup to the specified time delays and update rates.
This does require the EKF to be re-started if time delays are changed.
2017-01-27 16:57:42 +09:00
priseborough
2cc48f78a7
AP_NavEKF3: Update range beacon fusion
...
Add innovation consistency check to alignment filter and publish alignment filter status data
2017-01-27 16:57:42 +09:00
priseborough
92b8c33b19
AP_NavEKF3: publish 3-state range beacon estimator states
2017-01-27 16:57:42 +09:00
priseborough
7c53573a0c
AP_NavEKF3: Allow range beacon use with intermittent GPS
2017-01-27 16:57:42 +09:00
priseborough
e5e4883c72
AP_NavEKF3: Fix GPS use inhibit interface documentation
2017-01-27 16:57:42 +09:00
priseborough
c7e1828238
AP_NavEKF3: improve variable name
2017-01-27 16:57:42 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas
cae557fb4c
AP_NavEKF3: Correct display names, bitmask and units
2017-01-16 19:07:26 +00:00
Dr.-Ing. Amilcar Do Carmo Lucas
195e32c2fc
AP_NavEKF3: fix some parameter descriptions
2017-01-09 13:30:24 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas
d408d25f92
More spelling stuff
2017-01-06 10:57:39 -08:00