Multi-EKF support (ekf2)

- ekf2 can now run in multi-instance mode (currently up to 9 instances)
    - in multi mode all estimates are published to alternate topics (eg estimator_attitude instead of vehicle_attitude)
 - new ekf2 selector runs in multi-instance mode to monitor and compare all instances, selecting a primary (eg N x estimator_attitude => vehicle_attitude)
 - sensors module accel & gyro inconsistency checks are now relative to the mean of all instances, rather than the current primary (when active ekf2 selector is responsible for choosing primary accel & gyro)
 - existing consumers of estimator_status must check estimator_selector_status to select current primary instance status
 - ekf2 single instance mode is still fully supported and the default

Co-authored-by: Paul Riseborough <gncsolns@gmail.com>
This commit is contained in:
Daniel Agar
2020-10-27 10:56:11 -04:00
committed by GitHub
co-authored by Paul Riseborough
parent d5245a22d3
commit 0f411d6820
56 changed files with 1747 additions and 295 deletions
+6
View File
@@ -141,6 +141,12 @@ then
# Speedup SITL startup
param set EKF2_REQ_GPS_H 0.5
# Multi-EKF
#param set EKF2_MULTI_IMU 3
#param set SENS_IMU_MODE 0
#param set EKF2_MULTI_MAG 2
#param set SENS_MAG_MODE 0
# By default log from boot until first disarm.
param set SDLOG_MODE 1
# enable default, estimator replay and vision/avoidance logging profiles
+1 -1
View File
@@ -40,7 +40,7 @@ else
# EKF2
#
param set SYS_MC_EST_GROUP 2
ekf2 start
ekf2 start &
fi
fi
+1 -1
View File
@@ -8,7 +8,7 @@
#
# Start the attitude and position estimator.
#
ekf2 start
ekf2 start &
#
# Start attitude controller.
+1 -1
View File
@@ -40,7 +40,7 @@ else
# EKF2
#
param set SYS_MC_EST_GROUP 2
ekf2 start
ekf2 start &
fi
fi
+1 -1
View File
@@ -8,7 +8,7 @@
#
# Start the attitude and position estimator.
#
ekf2 start
ekf2 start &
#attitude_estimator_q start
#local_position_estimator start
+1 -1
View File
@@ -9,7 +9,7 @@
# Begin Estimator Group Selection #
###############################################################################
ekf2 start
ekf2 start &
###############################################################################
# End Estimator Group Selection #
+1 -1
View File
@@ -199,5 +199,5 @@ fi
if [ $VEHICLE_TYPE = none ]
then
echo "No autostart ID found"
ekf2 start
ekf2 start &
fi
+1 -1
View File
@@ -9,7 +9,7 @@
# Begin Estimator group selection #
###############################################################################
ekf2 start
ekf2 start &
###############################################################################
# End Estimator group selection #