Paul Riseborough
f8ae8ba502
ekf2: Use ecl library with recent bug fixes and enhancements.
...
Bug Fixes:
https://github.com/PX4/ecl/pull/586 - EKF: fix covariance and output filter buffer initialization
https://github.com/PX4/ecl/pull/590 - EKF: Fix innovation in fuseDeclination()
Enhancements:
https://github.com/PX4/ecl/pull/543 - ekf_helper: add more useful methods to interface with the covariances
https://github.com/PX4/ecl/pull/588 - Add unit tests for DataValidator
Note:
https://github.com/PX4/ecl/pull/543 has required a change to how the state variances are accessed .
2019-03-14 19:25:36 +11:00
Paul Riseborough
6e0ca90852
ekf2: Minor parameter description edits
2019-03-05 07:17:09 +01:00
Paul Riseborough
643d8e968b
ekf2: style fixes
2019-03-05 07:17:09 +01:00
Paul Riseborough
09da8e7dfc
ekf2: Split static pressure correction into separate RH ad LH ellipsoids
2019-03-05 07:17:09 +01:00
Paul Riseborough
9692ef1ae9
commander: remove duplicate check
2019-02-04 10:32:19 +01:00
Paul Riseborough
6fb7cda9f2
commander: Reduce false positives in pre-flight accel bias check
2019-02-04 10:32:19 +01:00
Paul Riseborough
3ee596284d
ecl: Magnetic declination use improvements
...
Fixes bugs causing learned or GEO lookup declination to not be used in some circumstances.
https://github.com/PX4/ecl/pull/518
https://github.com/PX4/ecl/pull/520
2018-11-16 10:25:59 -05:00
Paul Riseborough
18f0812b33
ecl: Use master with pr-ekfGpsYaw changes merged
2018-10-17 09:48:38 -04:00
Paul Riseborough
c8e17719d5
msg: Add heading data to GPS blending output log data
2018-10-17 09:48:38 -04:00
Paul Riseborough
10354f022e
ekf2: Allow use of RTK GPS heading
2018-10-17 09:48:38 -04:00
Paul Riseborough
e39afb148d
drivers: publish GPS antenna heading offset
2018-10-17 09:48:38 -04:00
Paul Riseborough
92d2317b99
uavcan: publish GPS antenna heading offset as NAN
2018-10-17 09:48:38 -04:00
Paul Riseborough
cf962afafe
simulator: publish GPS antenna heading offset as NAN
2018-10-17 09:48:38 -04:00
Paul Riseborough
6a3692cf6b
mavlink: publish GPS antenna heading offset as NAN
2018-10-17 09:48:38 -04:00
Paul Riseborough
9aee71bf54
msg: Add antenna array heading offset to GPS message
2018-10-17 09:48:38 -04:00
Paul Riseborough
94d953eef2
Tools: Fix EKF data analysis false positives
...
The high frequency acceleration noise levels in the gazebo models and also seen on some hardware is causing the IMU vibration check warning to fail.
The thresholds have been lifted and the reporting improved to make it clearer which sensor noise is causing the failure.
2018-08-30 09:57:18 +02:00
Paul Riseborough
ad1c2b31d1
drivers: Always set GPS heading to NAN if not updated
2018-08-28 14:10:36 +02:00
Paul Riseborough
b2c7b44935
drivers: Prevent duplicate reporting of GPS heading
2018-08-28 14:10:36 +02:00
Paul Riseborough
57052edfb2
logger: Log GPS drift data
...
This data is published at the GPS publication rate and only when on ground.
2018-08-17 10:44:07 +10:00
Paul Riseborough
c2fcef8fc1
ekf2: Tighten preflight GPS quality checks
...
Enable drift checks and reduce thresholds to reduce likelihood of commencing use of a unstable GPS position.
Publish drift data to assist with tuning.
2018-08-17 10:44:07 +10:00
Paul Riseborough
d0f733d375
ecl: use master with required publication of gps drift data
2018-08-17 10:44:07 +10:00
Paul Riseborough
f100cd73ef
msg: Create message for GPS drift rates
...
This data is only updated at 5Hz and only required pre-flight.
2018-08-17 10:44:07 +10:00
Paul Riseborough
77f0883cb9
ekf2: Reinstate saving of mag declination for use next start
...
This capability was removed unintentionally by previous changes.
Requires ecl version with updated declination accessor function
2018-07-26 08:32:09 +02:00
Paul Riseborough
a37580ceac
mc_pos_control: remove un-used parameter
2018-07-22 17:42:31 +10:00
Paul Riseborough
73a7aa75a8
FlightTasks: update terrain hold transition logic.
...
Use pre-existing MPC_HOLD_MAX_XY parameter for speed threshold.
Use _stick_expo variable for stick movement check.
Update documentation.
2018-07-22 17:42:31 +10:00
Paul Riseborough
dd3fb84db8
mc_pos_control: Fix parameter description error
2018-07-22 17:42:31 +10:00
Paul Riseborough
c9ca27e7c2
ekf2: Update documentation for EKF2_RNG_AID parameter
2018-07-22 17:42:31 +10:00
Paul Riseborough
7ff23f7859
posix-configs: Update optical flow SITL test parameter defaults
...
Use baro for height in EKF.
Use terrain hold mode in height controller.
2018-07-22 17:42:31 +10:00
Paul Riseborough
2baa6caacb
FlightTasks: Fix transition between use of local and ground height (+2 squashed commits)
...
Squashed commits:
[ed2a243] FlightTasks: Preserve control loop tuning when applying max altitude limit
[b33b947] FlightTasks: Add terrain hold function
This new mode of altitude control uses terrain following when holding position and normal altitude control when moving.
2018-07-22 17:42:31 +10:00
Paul Riseborough
82780e33b9
mc_pos_control: Add parameter support for terrain hold function
...
This new mode of altitude control uses terrain following when holding position and normal altitude control when moving.
2018-07-22 17:42:31 +10:00
Paul Riseborough
4e3f7bdcc6
ekf2: Move range min/max checks to inside the ecl library
2018-07-16 21:59:04 +10:00
Paul Riseborough
a04468ba9f
ekf2: Fix EKF preflight check fail false positives
...
Uses a relaxed yaw innovation check threshold for fixed wing vehicle that can recover from larger yaw errors after takeoff.
Replaces the peak hold with decay filtering applied to the magnetic yaw innovations with a conventional lowpass filter. This prevents mag heading innovation transients caused by preflight handling from failing the check, but catches persistent errors. Sign swapping of innovations due to angle wrapping is not a problem due to the way that innovations are calculated inside the EKF, so a simple LPF sufficient.
2018-06-29 16:36:38 +00:00
Paul Riseborough
98465171aa
ecl: include fix for bug affecting use of high frequency optical flow data
2018-06-09 13:38:04 +02:00
Paul Riseborough
c84d35e3d7
mc_pos_control: rework height limiter to stay in velocity mode
2018-06-09 13:38:04 +02:00
Paul Riseborough
d26da5fa3b
mc_pos_control: Improve maximum height limiter
...
Implements a better method of determining when to switch from velocity to altitude control to keep height limit from being exceeded.
This method removes the overshoot and transients in height caused by the switching of the previous algorithm.
2018-06-09 13:38:04 +02:00
Paul Riseborough
f0a1cd197e
mc_pos_control: formatting fixes
2018-06-09 13:38:04 +02:00
Paul Riseborough
b77845a3c0
mc_pos_control: Fix bug in calculation of altitude limit
...
The correction for stopping distance applied to the maximum altitude limiter uses the vertical velocity estimate and gives the same offset for both positive (down) and negative (up) velocity.
This calculation has been corrected and simplified and variable names changes to make the functionality clearer.
2018-06-09 13:38:04 +02:00
Paul Riseborough
967b27f131
ecl: rework optical flow selection logic
...
Fixes a race condition introduced by use of _is_dead-reckoning.
Only runs flow use logic when there is flow data available
2018-06-09 13:38:04 +02:00
Paul Riseborough
e3a6528a80
ecl: include fixes to flow selection logic
2018-06-09 13:38:04 +02:00
Paul Riseborough
366e36a07b
ekf2: Update parameter description
2018-06-09 13:38:04 +02:00
Paul Riseborough
d46ee571ce
ecl: test changes to pr-ekfOptFlowFixes
2018-06-09 13:38:04 +02:00
Paul Riseborough
0113212b34
mc_pos_control: Update parameter descriptions
2018-06-09 13:38:04 +02:00
Paul Riseborough
9e567cadd6
ekf2: Update parameter description
2018-06-09 13:38:04 +02:00
Paul Riseborough
0dc2377c2f
mc_pos_control: format fixes
2018-06-09 13:38:04 +02:00
Paul Riseborough
9fb674929c
commander: do not check global position when using flow in POSCTL
2018-06-09 13:38:04 +02:00
Paul Riseborough
2c325414f9
mc_pos_control: limit maximum height when reliant on optical flow data
2018-06-09 13:38:04 +02:00
Paul Riseborough
9028592c5f
mc_pos_control: control height above ground when reliant on optical flow
2018-06-09 13:38:04 +02:00
Paul Riseborough
98597dcffc
commander: allow position uncertainty to grow when operator can correct for drift
2018-06-09 13:38:04 +02:00
Paul Riseborough
e5d428bd65
msg: add definitions for estimator status control mode bit positions
2018-06-09 13:38:04 +02:00
Paul Riseborough
cbb4559c15
ecl : update to version that fixes wind relative dead reckoning bug
2018-04-24 00:02:48 -04:00
Paul Riseborough
477a42e6f6
ekf2: Enable adjustment of nav validity timeout
2018-04-24 00:02:48 -04:00
Paul Riseborough
3e6ba1d541
simulator: Use baro pressure direct from simulator
2018-04-11 23:26:58 -04:00
Paul Riseborough
2b87e5a790
tests: Test all data points for declination model
2018-03-26 23:16:55 -04:00
Paul Riseborough
8a1b6d548f
ecl: Update to version that fixes height reset bug
2018-01-31 10:46:52 +01:00
Paul Riseborough
eed8b00857
mc_pos_control: Release estimator speed limit only when speed demand is significant
...
This prevents unexpected increases in stick sensitivity when stick is moved after periods of inactivity.
2018-01-29 22:30:34 +01:00
Paul Riseborough
6ef43e5b75
ecl: Use latest master
2018-01-29 22:30:34 +01:00
Paul Riseborough
f8693b49c2
mc_pos_control: Fix compile error after rebase
2018-01-29 22:30:34 +01:00
Paul Riseborough
388eb6ee4c
ros: update local_position publication
...
Ensure all data is set.
2018-01-29 22:30:34 +01:00
Paul Riseborough
64551607bc
simulator: update local_position publication
...
Ensure all data is set.
2018-01-29 22:30:34 +01:00
Paul Riseborough
4b2dcddec2
position_estimator_inav: update local_position publication
...
Ensure all data is set.
2018-01-29 22:30:34 +01:00
Paul Riseborough
33b75d8e87
mavlink: update local_position publication
...
Ensure all data is set.
2018-01-29 22:30:34 +01:00
Paul Riseborough
c294393377
local_position_estimator: update local_position publication
...
Ensure all data is set.
2018-01-29 22:30:34 +01:00
Paul Riseborough
642a4a5fc7
mc_pos_control: respect estimator max speed and min height limits
2018-01-29 22:30:34 +01:00
Paul Riseborough
1e9361572f
sensors: Add parameter for flow sensor minimum range
2018-01-29 22:30:34 +01:00
Paul Riseborough
fc78de4c26
ekf2: Update parameter descriptions for air data fusion
2018-01-29 22:30:34 +01:00
Paul Riseborough
f866698fb2
ekf2: Update parameter description for max optical flow rate
2018-01-29 22:30:34 +01:00
Paul Riseborough
b117fddb21
ekf2: publish estimator position control limits
2018-01-29 22:30:34 +01:00
Paul Riseborough
0ed78f259e
msg: Add estimator required control limits to vehicle_local_positiion
2018-01-29 22:30:34 +01:00
Paul Riseborough
b2046ffd6b
Tools: fix errors in thermal calibration script
2018-01-15 08:38:54 +01:00
Paul Riseborough
96d04af6e8
ecl: adds sideslip to innovation test status reporting
2018-01-02 22:36:42 +01:00
Paul Riseborough
3c667bb4f5
mc_pos_control: format fixes
2017-12-12 12:14:24 +00:00
Paul Riseborough
deaa83bba0
mc_pos_control: Use vertical position derivative when in velocity control mode
...
Stops vertical velocity bias errors preventing the vehicle from landing.
Use of the vertical derivative is blended in so that for zero vertical velocity set point, the local_position.vz is used and when the magnitude of the vertical velocity setpoint exceeds the landing speed, the local_position.z_deriv is used.
2017-12-12 12:14:24 +00:00
Paul Riseborough
324c5151e7
ekf2: use local scope for control mask variable
2017-12-08 07:43:13 +00:00
Paul Riseborough
b812f95a77
ekf2: Adjust pre-flight check level
...
Reduce max yaw error when not using global frame aiding data to prevent large yaw yaw changes after takeoff.
2017-12-08 07:43:13 +00:00
Paul Riseborough
ded9ca13e4
ekf2: Reduce sensitivity of preflight yaw check when not doing absolute aiding
...
When the EKF is not fusing in observations from the NE global reference frame, the tolerance to yaw errors is much higher. This changes will prevent false triggering of the preflight fail check when operating indoors without GPS where mag field errors can be high.
2017-12-08 07:43:13 +00:00
Paul Riseborough
b5be990109
lpe: fix incorrect setting of local_position.z_global
2017-12-07 08:20:16 +00:00
Paul Riseborough
8d89e5e40b
commander: rework centralise home position publication
...
This fixes a bug preventing use of auto and RTL when taking off with GPS.
2017-12-07 08:20:16 +00:00
Paul Riseborough
41f3e1f9b4
commander: centralise home position publication
2017-12-07 08:20:16 +00:00
Paul Riseborough
934a7af579
commander: Set home alt to EKF origin if global navigation commences in-flight
...
The EKF origin height is calculated to be where the vehicle was at takeoff and is suitable as a surrogate home altitude.
2017-12-07 08:20:16 +00:00
Paul Riseborough
49d82164c6
navigator: check home position horizontal and vertical validity
2017-12-07 08:20:16 +00:00
Paul Riseborough
024589d63d
msg: Add separate vertical and horizontal validity flags to home_position
...
If we have taken off without GPS and gained it in flight, the home vertical position can be set, but not the horizontal.
2017-12-07 08:20:16 +00:00
Paul Riseborough
a81c49014f
mc_pos_control: reset height reference when global position available
...
This enables the reference height to be reset when global vertical position becomes available in-flight.
2017-12-07 08:20:16 +00:00
Paul Riseborough
fa5010109e
commander: Reset nav test when vehicle is disarmed
...
Previously, the only way to clear a failed nav test was to reboot. This hindered testing.
2017-12-04 09:09:54 +00:00
Paul Riseborough
d783bc8ae1
commander: Check for nav divergence due to bad yaw at takeoff
...
This check is performed for up to 30 seconds after takeoff or until a horizontal speed of 5 m/s has been achieved.
If the vehicle is not landed and the check is active, then the yaw will be declared as failed if the velocity innovations fail for a continuous period of 1 second.
This will cause the local and global position and velocity validity to be latched false to prevent unsafe use of position control modes.
2017-12-04 09:09:54 +00:00
Paul Riseborough
afe857dfe6
commander: rework preflight GPS checks
...
Fix the bug allowing arming without GPS checks passed in the first 20 seconds after gaining GPS lock when COM_ARM_WO_GPS is set to 0
Allow 10 seconds after boot for EKF quality checks to pass before reporting failure to allow EKF to stabilise.
Move GPS quality checking and reporting to after all innovation and bias checks.
Make messages more informative.
Add missing GPS speed accuracy check.
2017-12-04 09:09:54 +00:00
Paul Riseborough
c09eecbab1
commander: prevent ekf checking being bypassed if GPS checking is disabled
2017-12-04 09:09:54 +00:00
Paul Riseborough
ddfe077f7c
commander: strengthen pre-flight fail checking
...
The commander checks use instantaneous values which are vulnerable to false negatives or positives with noisy data or transient faults.
This patch checks the estimators published pre flight check status which is based on persistent checks using filtered data.
2017-12-04 09:09:54 +00:00
Paul Riseborough
fc80be0917
ekf2: improve preflight checks and publish status
...
Separate the vertical and horizontal checks for use by local position validity reporting
Add checking of yaw using a decaying envelope filter to the horizontal checks.
Publish the check result to estimator_status topic.
2017-12-04 09:09:54 +00:00
Paul Riseborough
92bcc63418
msg: add pre flight check status message
2017-12-04 09:09:54 +00:00
Paul Riseborough
a410893080
ecl: Update ekf2 to version that addresses known vulnerabilities
...
See:
https://github.com/PX4/ecl/pull/350
https://github.com/PX4/ecl/pull/354
Note the amount of stack allocation has had to be increased to accomodate pr350
2017-11-13 22:50:12 +01:00
Paul Riseborough
b3d045d4d0
Revert "add boolean parameters to enable/disable each sensor"
...
This reverts commit 9fde19259e .
2017-10-30 20:49:36 +11:00
Paul Riseborough
3a57712d2b
ecl: Use commit on master
...
This is a non-functional change that point to a commit on master instead of the merged branch.
2017-10-30 08:21:09 +01:00
Paul Riseborough
589d58ce87
ekf2: Fix bug preventing first IMU failover bias reset
2017-10-30 08:21:09 +01:00
Paul Riseborough
0c9e07c95a
ekf2: repeat IMU bias reset until successful
2017-10-30 08:21:09 +01:00
Paul Riseborough
3fc7aba178
TECS: Use version in ECL library
...
This change updates a number of interfaces to use the new TECS implementation from the ECL library.
2017-10-22 21:56:06 +02:00
Paul Riseborough
85c076d54e
update ecl/ekf submodule
2017-10-18 11:08:58 +02:00
Paul Riseborough
ed950d70ce
ekf2: Add missing documentation
2017-10-09 08:58:01 +02:00
Paul Riseborough
dbc3a13236
ekf2: remove unused parameter
...
The logging of replay data is now controlled by the logging module
2017-10-09 08:58:01 +02:00
Paul Riseborough
6cfee65060
ekf2: Add parameters to tune accelerometer bias learning
...
These parameters enable the accel bias limiting and learning inhibit logic in the ecl EKF to be easily tuned during testing and replay.
2017-10-09 08:58:01 +02:00
Paul Riseborough
66277d0c02
ekf2: Added @reboot_required to parameters
2017-10-09 08:58:01 +02:00