Commit Graph

42436 Commits

Author SHA1 Message Date
Tatsuya Yamaguchi c4fe6fce1c AP_Arming: make RC check message clearer 2020-04-24 10:52:33 +09:00
Andrew Tridgell 43ef8a192b AP_NavEKF3: added missing log documentation for field C 2020-04-24 09:43:23 +10:00
Andrew Tridgell d8c533e7ab AP_NavEKF2: added missing log documentation for field C 2020-04-24 09:43:23 +10:00
Paul Riseborough 8f1b732d79 AP_NavEKF2: Add documentation for GSF logging 2020-04-24 09:43:23 +10:00
Paul Riseborough 1720c8de0f AP_NavEKF3: Add documentation for GSF logging 2020-04-24 09:43:23 +10:00
Paul Riseborough 9bdb89474a AP_NavEKF3: Use unique names for EKF2 logging 2020-04-24 09:43:23 +10:00
Paul Riseborough 49e4c799d3 AP_NavEKF2: Use unique names for EKF2 logging 2020-04-24 09:43:23 +10:00
Andrew Tridgell 080f555b16 AP_NavEKF3: remove unused isDeltaYaw param from resetQuatStateYawOnly 2020-04-24 09:43:23 +10:00
Andrew Tridgell 197d31e9cc AP_NavEKF3: fixed in-flight yaw reset 2020-04-24 09:43:23 +10:00
Randy Mackay 86d221708c AP_NavEKF3: more white space fixes 2020-04-24 09:43:23 +10:00
Randy Mackay 4d7e7a960a AP_NavEKF2: more white space fixes 2020-04-24 09:43:23 +10:00
Randy Mackay a43beaaa23 AP_NavEKF: GSF white space fixes 2020-04-24 09:43:23 +10:00
Randy Mackay ddaa5dee86 Copter: use static assert to simplify use of EKF_CHECK_ITERATIONS_MAX 2020-04-24 09:43:23 +10:00
Randy Mackay 0fb233ed4b AP_NavEKF2: minor comment fixes 2020-04-24 09:43:23 +10:00
Randy Mackay c1ef894a30 AP_NavEKF3: getDataEKFGSF and getYawData pass by reference 2020-04-24 09:43:23 +10:00
Randy Mackay a9cbd5aa29 AP_NavEKF2: getDataEKFGSF and getYawData pass by reference 2020-04-24 09:43:23 +10:00
Randy Mackay 1ee9f3a6de AP_NavEKF: GSF getLogData and getYawData pass by reference 2020-04-24 09:43:23 +10:00
Randy Mackay 8a8271c2c7 AP_NavEKF3: minor format fixes 2020-04-24 09:43:23 +10:00
Randy Mackay d61c517e76 AP_NavEKF2: minor format fix 2020-04-24 09:43:23 +10:00
Randy Mackay ed3d072318 AP_NavEKF3: rename GSF_RUN_MASK, GSF_USE_MASK, GSF_RST_MAX 2020-04-24 09:43:23 +10:00
Randy Mackay 91ef87064a AP_NavEKF2: rename GSF_RUN_MASK, GSF_USE_MASK, GSF_RST_MAX 2020-04-24 09:43:23 +10:00
Paul Riseborough 7ba39c844c AP_NavEKF3: Split GSF yaw estimator processing
Separate prediction and correction steps are required to provide an up to
2020-04-24 09:43:23 +10:00
Paul Riseborough abc821ad36 AP_NavEKF2: Split GSF yaw estimator processing
Separate prediction and correction steps are required to provide an up to date yaw estimate using IMU prediction before it may be required by SelectMagFusion() whilst still doing the velocity update after GPS data haw been pulled from the buffer by SelectVelPosFusion()
2020-04-24 09:43:23 +10:00
Andrew Tridgell 216935c1f2 AP_NavEKF3: fixed loss of GPS fusion
we must not do a storedGPS.recall unless we will be using the data,
otherwise we will lose GPS samples and risk stopping GPS fusion
2020-04-24 09:43:23 +10:00
Andrew Tridgell c83e2d7c0e AP_NavEKF2: fixed loss of GPS fusion
we must not do a storedGPS.recall unless we will be using the data,
otherwise we will lose GPS samples and risk stopping GPS fusion
2020-04-24 09:43:23 +10:00
Andrew Tridgell 6c3889b04f AP_NavEKF2: fixed typos 2020-04-24 09:43:23 +10:00
Andrew Tridgell 3edbe81b1e AP_NavEKF2: removed 2nd set of imuSampleTime_ms 2020-04-24 09:43:23 +10:00
Paul Riseborough 9f5e037015 AP_NavEKF3: Restore bug fix lost during rebase 2020-04-24 09:43:23 +10:00
Paul Riseborough 6952d83f00 AP_NavEKF2: Fix casting build error 2020-04-24 09:43:23 +10:00
Paul Riseborough 53df8a0238 AP_NavEKF3: Fix timer wrapping bug 2020-04-24 09:43:23 +10:00
Paul Riseborough 0d965d2a1c AP_NavEKF2: Fix timer wrapping bugs
Also replaces tab characters
2020-04-24 09:43:23 +10:00
Paul Riseborough 12d639fc17 AP_NavEKF3: Misc changes arising from review
AP_NavEKF3: Fix typo in comment

AP_NavEKF3: Use uint32_t data type for msec timers

AP_NavEKF3: Misc msec timer fixes

Fix wrapping bug.
Use common timestamp.

AP_NavEKF3: Format fixes - remove tabs

AP_NavEKF3: Fix typing and wrap issue on time comparison
2020-04-24 09:43:23 +10:00
Paul Riseborough 8ce97af40e ArduCopter: Preserve original check criteria 2020-04-24 09:43:23 +10:00
Paul Riseborough 51b62a34b9 AP_NavEKF: Use better type for array index 2020-04-24 09:43:23 +10:00
Paul Riseborough 4b3952bd15 AP_NavEKF3: Eliminate unnecessary function call 2020-04-24 09:43:23 +10:00
Paul Riseborough 6ec69e6ed1 AP_NavEKF3: Update EK3_MAG_CAL parameter advice 2020-04-24 09:43:23 +10:00
Paul Riseborough a66479104d AP_AHRS: fix failure to arm when not using compass for yaw 2020-04-24 09:43:23 +10:00
Andrew Tridgell 6b6f083bf2 RC_Channel: added lane switch RCn_OPTION=103
RC_Channel: added yaw reset switch RCn_OPTION=104
2020-04-24 09:43:23 +10:00
Paul Riseborough 36031c01a9 ArduCopter: rework ekf check to use separate yaw reset request
ArduCopter: Request lane or yaw reset switch sooner

ArduCopter: rework ekf check to use separate yaw reset request

ArduCopter: Rework EKF failsafe

During flight operations it is the deviation in position of the vehicle that matters during most scenarios.
t patch ensures that an EKF fail-safe will be triggered when the position inconsistency exceeds check limits in addition to either a bad mag or velocity innovation.
This will stop velocity noise triggering an early fail-safe when electromagnetic interference is present.
2020-04-24 09:43:23 +10:00
Paul Riseborough 0efdb2b66b ArduPlane: Send default airspeed to estimators 2020-04-24 09:43:23 +10:00
Paul Riseborough 22c2ea7cbf AP_AHRS: Add accessor function for EKF yaw reset request
AP_AHRS: Send yaw reset request to EKF2
2020-04-24 09:43:23 +10:00
Paul Riseborough 9cf75bf22e AP_AHRS: Enable EKF3 default airspeed to be set
AP_AHRS: Send default airspeed to EKF2
2020-04-24 09:43:23 +10:00
Paul Riseborough de0040ad69 AP_NavEKF2: Enable use of EKF-GSF yaw estimate
Enables the yaw to be reset in flight to a value estimated from a specialised yaw estimator. This allows faster recovery if taking off with a bad magnetometer and also allows yaw alignment and GPS use to commence in-air when operating without any yaw sensing.

AP_NavEKF2: Add missing accesor functions for default airspeed
2020-04-24 09:43:23 +10:00
Paul Riseborough 863f989130 AP_NavEKF3: Fix integration of GPS yaw options
AP_NavEKF3: fix failure to arm with EK3_MAG_CAL = 7

AP_NavEKF3: Fix failure to arm when not using magnetometer

AP_NavEKF3: Reduce yaw drift when EK3_MAG_CAL = 7
2020-04-24 09:43:22 +10:00
Paul Riseborough 410b5825fb AP_NavEKF3: Enable use of EKF-GSF yaw estimate
AP_NavEKF3: Add emergency yaw reset using a Gussian Sum Filter estimate

AP_NavEKF3: Reduce default minimum GPS velocity noise for Copters

Enables fail-safe to be set with more sensitivity and improves tracking accuracy.
Origin values were set using typical GPS performance for receivers on sale 6 years ago. Receiver performance has improved since then.

AP_NavEKF3: Prevent constant mag anomaly yaw resets

Prevents constant magnetic anomaly induced resets that can be triggered when flying with vehicle generated magnetic interference.
Allows for two resets per takeoff. Allowance for two resets is required, becasue a large ground based magnetic yaw anomaly can cause a sufficiently large yaw innovation that two resets in close succession are required.

AP_NavEKF3: Add option to fly without magnetometer

AP_NavEKF3: Rework emergency yaw reset logic

Use a separate external accessor function to request the yaw reset.
Allow reset requests to remain active for a defined period of time.
Tidy up reset function to split out accuracy check.

AP_NavEKF3: Fix vulnerability to lane switch race condition

Prevents the situation where a lane switch results in a lane being selected that does not have the correct yaw. This can occur if the primary lane becomes unhealthy before the external failsafe monitor has time to react.

AP_NavEKF3: Fix EKF_MAG_CAL = 6 behaviours

Fix bug causing the yaw alignment to be performed at startup before the GSF had a valid estimate.
Fix bug causing emergency yaw message to be output for a normal reset.
Fix vulnerability to reported negative yaw variance.
Remove duplicate timer checks.

AP_NavEKF3: Update EK3_MAG_CAL documentation

AP_NavEKF3: Relax yaw gyro bias convergence check when not using mag

AP_NavEKF3: Reduce yaw drift in hover with no yaw sensor

Uses the GSF yaw estimate if available which is better than the EKF's own yaw when no yaw sensor is available.
2020-04-24 09:43:22 +10:00
Paul Riseborough 6bb7c55bba AP_NavEKF: Add yaw estimator class using Gaussian Sum Filter
AP_NavEKF: Simplify centripetal accel correction
2020-04-24 09:43:22 +10:00
Rishabh c1d5f0441c Sub: LogMessage Documentation 2020-04-24 08:24:59 +09:00
Randy Mackay dcbbd047b4 Copter: simplify guided mode takeoff using rangefinder 2020-04-23 15:01:46 +09:00
Tatsuya Yamaguchi 29dcbd1398 Copter: use rangefinder to takeoff altitude in guided mode 2020-04-23 15:01:46 +09:00
Randy Mackay c4b5d47e1f Copter: white space fixes 2020-04-23 13:17:11 +09:00