Commit Graph

33 Commits

Author SHA1 Message Date
Paul Riseborough
aabb9b4e02 AP_NavEKF2: handle uncertain build type 2015-10-21 17:27:00 +11:00
Paul Riseborough
e6312d91ce AP_NavEKF2: Correct variable name 2015-10-21 17:27:00 +11:00
Paul Riseborough
cd8b9c7d26 AP_NavEKF: prevent high rate mag data locking out other data fusion 2015-10-20 20:16:04 +11:00
Paul Riseborough
ab8c28a7cc AP_NavEKF: Fix bug allowing takeoff in GPS modes without aiding
The legacy EKF switches GPs aiding on on arming, whereas the new EKF switches it on based on GPS data quality.
This means the decision to arm and therefore the predicted solution flags must now reflect the actual status of the navigation solution as it will no longer change when motor arming occurs.
2015-10-20 20:16:00 +11:00
Andrew Tridgell
cb0f7cb370 NavEKF2: use new perf counter API 2015-10-20 18:16:15 +11:00
Andrew Tridgell
d1dfd5fd01 AP_NavEKF2: use common header for optimisation level and irq disable 2015-10-20 15:21:40 +11:00
Andrew Tridgell
b6c1352e4c AP_NavEKF2: added 10 test perf counters
used for fine grained performance tuning
2015-10-20 15:21:40 +11:00
Paul Riseborough
2fbd050418 AP_NavEKF2: Use blended accelerometer data
If high vibration levels cause offsets between the two, it switches to the accelerometer with lower vibration levels. The default behaviour is to use the average of both accelerometers.
2015-10-20 15:21:40 +11:00
Paul Riseborough
225b81baf4 AP_NavEKF2: Prevent users breaking filter by setting excessive time delays
If time deelays greater than the IMU buffer length are used, then it is possible for measurements to be dropped.
2015-10-20 15:21:39 +11:00
Paul Riseborough
e0ed2dab63 AP_NavEKF2: Adjust IMU FIFO buffer for different IMU data rates
The values chosen ensure that up to consistent 250 msec of sensor delay compensation is available for different platform types
The revised values also ensure that fusion occurs at different time to when the 10Hz magnetometer measurements are read
2015-10-20 15:21:39 +11:00
Paul Riseborough
baa8692960 AP_NavEKF2: Allow use of magnetometer learning during optical flow nav
Adds fusion of the declination when there are no earth relative measurements so that the declination angle and therefore the copters yaw angle have an absolute reference.
This enables the length (but not the declination) of the earth field North/East states to change along with the magnetometer offsets.
2015-10-20 15:21:38 +11:00
Paul Riseborough
35b08849f7 AP_NavEKF2: Reduce effect of rounding errors on covariance prediction 2015-10-20 15:21:37 +11:00
Paul Riseborough
47ae0f35f6 AP_NavEKF2: Make EKF2 PosDownDerivative interface follow coding conventions
Updates arising from peer review.
2015-10-20 15:21:37 +11:00
Paul Riseborough
52fd369b2f AP_NavEKF2: Add methods to output and calculate vertical position derivative
This patch calculates a derivative of the vertical position (positive down).
The derivative is exposed via a public function.
2015-10-20 15:21:35 +11:00
Paul Riseborough
e3013b493b AP_NavEKF2: Critical bug fix - perf counter not initialised 2015-10-15 09:48:13 +11:00
Paul Riseborough
20a3f9782e AP_NavEKF2: Add full set of selectable pre-flight GPS checks 2015-10-10 21:22:53 +09:00
Paul Riseborough
db4dfce7b1 AP_NavEKF2: Add fix status to GPS check report message 2015-10-10 14:49:07 +09:00
Paul Riseborough
22920aafad AP_NavEKF2: Improve GPS status reporting 2015-10-10 14:48:59 +09:00
Paul Riseborough
f467a89fa3 AP_NavEKF2: Update comments for filter status output function 2015-10-10 14:48:52 +09:00
Paul Riseborough
cde140354a AP_NavEKF2: Clean up control logic 2015-10-05 13:35:32 +09:00
Paul Riseborough
f4db78fc11 AP_NavEKF2: Allow for larger gyro bias errors
MPU6000 data sheet indicates that variation on gyro ZRO across temperature range from -40 to +85 is +-20 deg/sec.
The limits on the gyro bias states have been increased to allow for this.
To enable the EKF to accommodate such large gyro bias values in yaw without the yaw error wrapping, leading to continual heading drift, an unwrap function has been applied to the compass heading error.
2015-10-05 13:35:29 +09:00
Paul Riseborough
325f4139fe AP_NavEKF2: Clean up mode change logic 2015-10-05 13:35:26 +09:00
Paul Riseborough
2fb72b6e6a AP_NavEKF2: Clean up loss of GPS logic 2015-09-25 19:20:52 +10:00
Paul Riseborough
1986af021f AP_NavEKF2: Remove un-used flight mode and duplicate variable 2015-09-25 19:20:52 +10:00
Paul Riseborough
8bcedb228b AP_NavEKF2: Bring pre-flight GPS checks up to date with EKF1 2015-09-25 19:20:52 +10:00
Randy Mackay
015f700bc0 AP_NavEKF2: getLastYawResetAngle returns last reset time 2015-09-24 16:57:38 +09:00
Paul Riseborough
80e182f827 AP_NavEKF2: Update EKF2 data logging 2015-09-24 12:58:44 +10:00
Paul Riseborough
9c5e48e7e9 AP_NavEKF2: Remove unused variables and improve variable names 2015-09-24 12:58:43 +10:00
Paul Riseborough
8afb26087d AP_NavEKF2: Remove unused function 2015-09-24 12:58:43 +10:00
Paul Riseborough
f270573acc AP_NavEKF2: Use library functions for quaternion corrections 2015-09-23 17:48:48 +10:00
Andrew Tridgell
cbc62238a9 AP_NavEKF2: run astyle for reformatting 2015-09-23 17:29:28 +10:00
Andrew Tridgell
b4555f30a5 AP_NavEKF2: added frontend calls to core code 2015-09-23 11:56:42 +10:00
Paul Riseborough
f500474a86 AP_NavEKF2: initial import of new maths EKF 2015-09-23 09:51:14 +10:00