mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-31 02:16:53 +08:00
delete SYS_MC_EST_GROUP
- introduce per module parameters (EKF2_EN, LPE_EN, ATT_EN) - add basic checks to prevent EKF2 + LPE running simultaneously
This commit is contained in:
@@ -182,10 +182,6 @@ param set-default SYS_FAILURE_EN 1
|
||||
# does not go below 50% by default, but failure injection can trigger failsafes.
|
||||
param set-default COM_LOW_BAT_ACT 2
|
||||
|
||||
# Allow to override SYS_MC_EST_GROUP via env
|
||||
if [ -n "$SYS_MC_EST_GROUP" ]; then
|
||||
param set SYS_MC_EST_GROUP $SYS_MC_EST_GROUP
|
||||
fi
|
||||
|
||||
# Adapt timeout parameters if simulation runs faster or slower than realtime.
|
||||
if [ -n "$PX4_SIM_SPEED_FACTOR" ]; then
|
||||
@@ -256,6 +252,23 @@ manual_control start
|
||||
sensors start
|
||||
commander start
|
||||
|
||||
#
|
||||
# state estimator selection
|
||||
if param compare -s EKF2_EN 1
|
||||
then
|
||||
ekf2 start &
|
||||
fi
|
||||
|
||||
if param compare -s LPE_EN 1
|
||||
then
|
||||
local_position_estimator start
|
||||
fi
|
||||
|
||||
if param compare -s ATT_EN 1
|
||||
then
|
||||
attitude_estimator_q start
|
||||
fi
|
||||
|
||||
if ! pwm_out_sim start -m sim
|
||||
then
|
||||
tune_control play error
|
||||
@@ -330,7 +343,7 @@ fi
|
||||
[ -e "$autostart_file".post ] && . "$autostart_file".post
|
||||
|
||||
# Run script to start logging
|
||||
if param compare SYS_MC_EST_GROUP 2
|
||||
if param compare -s EKF2_EN 1
|
||||
then
|
||||
set LOGGER_ARGS "-p ekf2_timestamps"
|
||||
else
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#
|
||||
. ${R}etc/init.d/rc.mc_defaults
|
||||
|
||||
param set-default SYS_MC_EST_GROUP 2
|
||||
|
||||
param set-default SYS_HAS_MAG 0
|
||||
param set-default EKF2_OF_CTRL 1
|
||||
param set-default EKF2_GPS_CTRL 0
|
||||
|
||||
@@ -5,49 +5,6 @@
|
||||
# NOTE: Script variables are declared/initialized/unset in the rcS script.
|
||||
#
|
||||
|
||||
###############################################################################
|
||||
# Begin Estimator Group Selection #
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# LPE
|
||||
#
|
||||
if param compare SYS_MC_EST_GROUP 1
|
||||
then
|
||||
#
|
||||
# Try to start LPE. If it fails, start EKF2 as a default.
|
||||
# Unfortunately we do not build it on px4_fmu-v2 due to a limited flash.
|
||||
#
|
||||
if attitude_estimator_q start
|
||||
then
|
||||
echo "WARN [init] Estimator LPE unsupported, EKF2 recommended."
|
||||
local_position_estimator start
|
||||
else
|
||||
echo "ERROR [init] Estimator LPE not available. Using EKF2"
|
||||
param set SYS_MC_EST_GROUP 2
|
||||
param save
|
||||
reboot
|
||||
fi
|
||||
else
|
||||
#
|
||||
# Q estimator (attitude estimation only)
|
||||
#
|
||||
if param compare SYS_MC_EST_GROUP 3
|
||||
then
|
||||
attitude_estimator_q start
|
||||
else
|
||||
#
|
||||
# EKF2
|
||||
#
|
||||
param set SYS_MC_EST_GROUP 2
|
||||
ekf2 start &
|
||||
fi
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
# End Estimator Group Selection #
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Start Control Allocator
|
||||
#
|
||||
|
||||
@@ -4,39 +4,3 @@
|
||||
#
|
||||
# NOTE: Script variables are declared/initialized/unset in the rcS script.
|
||||
#
|
||||
|
||||
#
|
||||
# Start the attitude and position estimator.
|
||||
#
|
||||
|
||||
if param compare SYS_MC_EST_GROUP 1
|
||||
then
|
||||
#
|
||||
# Try to start LPE. If it fails, start EKF2 as a default.
|
||||
# Unfortunately we do not build it on px4_fmu-v2 due to a limited flash.
|
||||
#
|
||||
if attitude_estimator_q start
|
||||
then
|
||||
echo "WARN [init] Estimator LPE unsupported, EKF2 recommended."
|
||||
local_position_estimator start
|
||||
else
|
||||
echo "ERROR [init] Estimator LPE not available. Using EKF2"
|
||||
param set SYS_MC_EST_GROUP 2
|
||||
param save
|
||||
reboot
|
||||
fi
|
||||
else
|
||||
#
|
||||
# Q estimator (attitude estimation only)
|
||||
#
|
||||
if param compare SYS_MC_EST_GROUP 3
|
||||
then
|
||||
attitude_estimator_q start
|
||||
else
|
||||
#
|
||||
# EKF2
|
||||
#
|
||||
param set SYS_MC_EST_GROUP 2
|
||||
ekf2 start &
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -13,4 +13,6 @@ param set-default MAV_TYPE 8
|
||||
#
|
||||
# Default parameters for balloon UAVs.
|
||||
#
|
||||
param set-default SYS_MC_EST_GROUP 1
|
||||
param set-default LPE_EN 1
|
||||
param set-default ATT_EN 1
|
||||
param set-default EKF2_EN 0
|
||||
|
||||
@@ -5,11 +5,6 @@
|
||||
# NOTE: Script variables are declared/initialized/unset in the rcS script.
|
||||
#
|
||||
|
||||
#
|
||||
# Start the attitude and position estimator.
|
||||
#
|
||||
ekf2 start &
|
||||
|
||||
#
|
||||
# Start Control Allocator
|
||||
#
|
||||
|
||||
@@ -5,49 +5,6 @@
|
||||
# NOTE: Script variables are declared/initialized/unset in the rcS script.
|
||||
#
|
||||
|
||||
###############################################################################
|
||||
# Begin Estimator Group Selection #
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# LPE
|
||||
#
|
||||
if param compare SYS_MC_EST_GROUP 1
|
||||
then
|
||||
#
|
||||
# Try to start LPE. If it fails, start EKF2 as a default.
|
||||
# Unfortunately we do not build it on px4_fmu-v2 due to a limited flash.
|
||||
#
|
||||
if attitude_estimator_q start
|
||||
then
|
||||
echo "WARN [init] Estimator LPE unsupported, EKF2 recommended."
|
||||
local_position_estimator start
|
||||
else
|
||||
echo "ERROR [init] Estimator LPE not available. Using EKF2"
|
||||
param set SYS_MC_EST_GROUP 2
|
||||
param save
|
||||
reboot
|
||||
fi
|
||||
else
|
||||
#
|
||||
# Q estimator (attitude estimation only)
|
||||
#
|
||||
if param compare SYS_MC_EST_GROUP 3
|
||||
then
|
||||
attitude_estimator_q start
|
||||
else
|
||||
#
|
||||
# EKF2
|
||||
#
|
||||
param set SYS_MC_EST_GROUP 2
|
||||
ekf2 start &
|
||||
fi
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
# End Estimator Group Selection #
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Start Control Allocator
|
||||
#
|
||||
|
||||
@@ -5,11 +5,6 @@
|
||||
# NOTE: Script variables are declared/initialized/unset in the rcS script.
|
||||
#
|
||||
|
||||
#
|
||||
# Start the attitude and position estimator.
|
||||
#
|
||||
ekf2 start &
|
||||
|
||||
#
|
||||
# Start Control Allocator
|
||||
#
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
#!/bin/sh
|
||||
# Standard apps for a differential drive rover.
|
||||
|
||||
# Start the attitude and position estimator.
|
||||
ekf2 start &
|
||||
|
||||
# Start rover differential drive controller.
|
||||
differential_drive start
|
||||
|
||||
|
||||
@@ -5,16 +5,6 @@
|
||||
# NOTE: Script variables are declared/initialized/unset in the rcS script.
|
||||
#
|
||||
|
||||
###############################################################################
|
||||
# Begin Estimator Group Selection #
|
||||
###############################################################################
|
||||
|
||||
ekf2 start &
|
||||
|
||||
###############################################################################
|
||||
# End Estimator Group Selection #
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Start Control Allocator
|
||||
#
|
||||
|
||||
@@ -76,5 +76,4 @@ fi
|
||||
if [ $VEHICLE_TYPE = none ]
|
||||
then
|
||||
echo "No autostart ID found"
|
||||
ekf2 start &
|
||||
fi
|
||||
|
||||
@@ -5,16 +5,6 @@
|
||||
# NOTE: Script variables are declared/initialized/unset in the rcS script.
|
||||
#
|
||||
|
||||
###############################################################################
|
||||
# Begin Estimator group selection #
|
||||
###############################################################################
|
||||
|
||||
ekf2 start &
|
||||
|
||||
###############################################################################
|
||||
# End Estimator group selection #
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Start Control Allocator
|
||||
#
|
||||
|
||||
@@ -391,6 +391,23 @@ else
|
||||
pwm_out start
|
||||
fi
|
||||
|
||||
#
|
||||
# state estimator selection
|
||||
if param compare -s EKF2_EN 1
|
||||
then
|
||||
ekf2 start &
|
||||
fi
|
||||
|
||||
if param compare -s LPE_EN 1
|
||||
then
|
||||
local_position_estimator start
|
||||
fi
|
||||
|
||||
if param compare -s ATT_EN 1
|
||||
then
|
||||
attitude_estimator_q start
|
||||
fi
|
||||
|
||||
#
|
||||
# Configure vehicle type specific parameters.
|
||||
# Note: rc.vehicle_setup is the entry point for all vehicle type specific setup.
|
||||
|
||||
Reference in New Issue
Block a user