diff --git a/flight/modules/TxPID/txpid.c b/flight/modules/TxPID/txpid.c
index b7c3baaae..1f2e862af 100644
--- a/flight/modules/TxPID/txpid.c
+++ b/flight/modules/TxPID/txpid.c
@@ -253,6 +253,16 @@ static void updatePIDs(UAVObjEvent *ev)
case TXPIDSETTINGS_PIDS_ROLLRATEKP:
needsUpdateBank |= update(&bank.RollRatePID.Kp, value);
break;
+ case TXPIDSETTINGS_PIDS_ROLLRATEPID:
+ needsUpdateBank |= update(&bank.RollRatePID.Kp, value);
+ needsUpdateBank |= update(&bank.RollRatePID.Ki, value * inst.PitchRollRateFactors.I);
+ needsUpdateBank |= update(&bank.RollRatePID.Kd, value * inst.PitchRollRateFactors.D);
+ break;
+ case TXPIDSETTINGS_PIDS_PITCHRATEPID:
+ needsUpdateBank |= update(&bank.PitchRatePID.Kp, value);
+ needsUpdateBank |= update(&bank.PitchRatePID.Ki, value * inst.PitchRollRateFactors.I);
+ needsUpdateBank |= update(&bank.PitchRatePID.Kd, value * inst.PitchRollRateFactors.D);
+ break;
case TXPIDSETTINGS_PIDS_ROLLRATEKI:
needsUpdateBank |= update(&bank.RollRatePID.Ki, value);
break;
@@ -394,13 +404,13 @@ static void updatePIDs(UAVObjEvent *ev)
needsUpdateBank |= update(&bank.AcroInsanityFactor.Pitch, value);
break;
case TXPIDSETTINGS_PIDS_ACCELTAU:
- needsUpdateAtt |= update(&att.AccelTau, value);
+ needsUpdateAtt |= update(&att.AccelTau, value);
break;
case TXPIDSETTINGS_PIDS_ACCELKP:
- needsUpdateAtt |= update(&att.AccelKp, value);
+ needsUpdateAtt |= update(&att.AccelKp, value);
break;
case TXPIDSETTINGS_PIDS_ACCELKI:
- needsUpdateAtt |= update(&att.AccelKi, value);
+ needsUpdateAtt |= update(&att.AccelKi, value);
break;
#ifdef REVOLUTION
@@ -436,6 +446,12 @@ static void updatePIDs(UAVObjEvent *ev)
AltitudeHoldSettingsSet(&altitude);
}
#endif
+ if (inst.RatePIDRecalculateYaw != TXPIDSETTINGS_RATEPIDRECALCULATEYAW_FALSE) {
+ float newKp = (bank.RollRatePID.Kp + bank.PitchRatePID.Kp) * .5f * inst.YawRateFactors.P;
+ needsUpdateBank |= update(&bank.YawRatePID.Kp, newKp);
+ needsUpdateBank |= update(&bank.YawRatePID.Ki, newKp * inst.YawRateFactors.I);
+ needsUpdateBank |= update(&bank.YawRatePID.Kd, newKp * inst.YawRateFactors.D);
+ }
if (needsUpdateBank) {
switch (inst.BankNumber) {
case 0:
diff --git a/ground/gcs/src/plugins/config/configtxpidwidget.cpp b/ground/gcs/src/plugins/config/configtxpidwidget.cpp
index d66deb77d..ea1ce68b0 100644
--- a/ground/gcs/src/plugins/config/configtxpidwidget.cpp
+++ b/ground/gcs/src/plugins/config/configtxpidwidget.cpp
@@ -89,8 +89,10 @@ ConfigTxPIDWidget::ConfigTxPIDWidget(QWidget *parent) : ConfigTaskWidget(parent)
addWidgetBinding("TxPIDSettings", "UpdateMode", m_txpid->UpdateMode);
- addWidget(m_txpid->TxPIDEnable);
+ connect(this, SIGNAL(widgetContentsChanged(QWidget *)), this, SLOT(processLinkedWidgets(QWidget *)));
+ addWidget(m_txpid->TxPIDEnable);
+ addWidget(m_txpid->enableAutoCalcYaw);
enableControls(false);
populateWidgets();
refreshWidgetsValues();
@@ -161,6 +163,18 @@ static bool isExpoOption(int pidOption)
}
}
+static bool isFullPIDOption(int pidOption)
+{
+ switch (pidOption) {
+ case TxPIDSettings::PIDS_ROLLRATEPID:
+ case TxPIDSettings::PIDS_PITCHRATEPID:
+ return true;
+
+ default:
+ return false;
+ }
+}
+
static bool isAcroPlusFactorOption(int pidOption)
{
switch (pidOption) {
@@ -182,9 +196,11 @@ static float defaultValueForPidOption(const StabilizationSettingsBankX *bank, in
return 0.0f;
case TxPIDSettings::PIDS_ROLLRATEKP:
+ case TxPIDSettings::PIDS_ROLLRATEPID:
return bank->getRollRatePID_Kp();
case TxPIDSettings::PIDS_PITCHRATEKP:
+ case TxPIDSettings::PIDS_PITCHRATEPID:
return bank->getPitchRatePID_Kp();
case TxPIDSettings::PIDS_ROLLPITCHRATEKP:
@@ -300,11 +316,14 @@ static float defaultValueForPidOption(const StabilizationSettingsBankX *bank, in
case TxPIDSettings::PIDS_YAWEXPO:
return bank->getStickExpo_Yaw();
+
case TxPIDSettings::PIDS_ACROROLLFACTOR:
case TxPIDSettings::PIDS_ACROROLLPITCHFACTOR:
return bank->getAcroInsanityFactor_Roll();
+
case TxPIDSettings::PIDS_ACROPITCHFACTOR:
return bank->getAcroInsanityFactor_Pitch();
+
case -1: // The PID Option field was uninitialized.
return 0.0f;
@@ -445,3 +464,23 @@ void ConfigTxPIDWidget::saveSettings()
UAVObject *obj = HwSettings::GetInstance(getObjectManager());
saveObjectToSD(obj);
}
+
+void ConfigTxPIDWidget::processLinkedWidgets(QWidget *widget)
+{
+ Q_UNUSED(widget);
+ bool fullPidEnabled =
+ isFullPIDOption(m_txpid->PID1->currentIndex()) ||
+ isFullPIDOption(m_txpid->PID2->currentIndex()) ||
+ isFullPIDOption(m_txpid->PID3->currentIndex());
+ bool calcYawEnabled = fullPidEnabled && m_txpid->enableAutoCalcYaw->isChecked();
+
+ m_txpid->fullPID_Y_P_FactorSlider->setEnabled(calcYawEnabled);
+ m_txpid->fullPID_Y_P_FactorSpinBox->setEnabled(calcYawEnabled);
+ m_txpid->fullPID_Y_I_FactorSpinBox->setEnabled(calcYawEnabled);
+ m_txpid->fullPID_Y_D_FactorSpinBox->setEnabled(calcYawEnabled);
+ m_txpid->enableAutoCalcYaw->setEnabled(fullPidEnabled);
+ m_txpid->fullPID_RP_I_FactorSlider->setEnabled(fullPidEnabled);
+ m_txpid->fullPID_RP_I_FactorSpinBox->setEnabled(fullPidEnabled);
+ m_txpid->fullPID_RP_D_FactorSpinBox->setEnabled(fullPidEnabled);
+ m_txpid->groupBox_FullPids->setEnabled(fullPidEnabled);
+}
diff --git a/ground/gcs/src/plugins/config/configtxpidwidget.h b/ground/gcs/src/plugins/config/configtxpidwidget.h
index afb148119..2073fd438 100644
--- a/ground/gcs/src/plugins/config/configtxpidwidget.h
+++ b/ground/gcs/src/plugins/config/configtxpidwidget.h
@@ -38,8 +38,8 @@ public:
~ConfigTxPIDWidget();
private:
Ui_TxPIDWidget *m_txpid;
-
private slots:
+ void processLinkedWidgets(QWidget *widget);
void updateSpinBoxProperties(int selectedPidOption);
float getDefaultValueForPidOption(int pidOption);
void refreshValues();
diff --git a/ground/gcs/src/plugins/config/txpid.ui b/ground/gcs/src/plugins/config/txpid.ui
index b7a0887a6..b4d247788 100644
--- a/ground/gcs/src/plugins/config/txpid.ui
+++ b/ground/gcs/src/plugins/config/txpid.ui
@@ -118,9 +118,9 @@
0
- 0
- 753
- 475
+ -391
+ 754
+ 783
@@ -196,6 +196,175 @@ Up to 3 separate PID options (or option pairs) can be selected and updated.Module Settings
+ -
+
+
+ Qt::StrongFocus
+
+
+ Minimum PID value mapped to Accessory channel = 0 or
+Throttle channel lesser or equal to Throttle Min value.
+
+
+ 6
+
+
+ 0.000100000000000
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Select PID option or option pair to update.
+Set to Disabled if not used.
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Throttle channel lower bound mapped to PID Min value
+
+
+ 1.000000000000000
+
+
+ 0.010000000000000
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Select PID option or option pair to update.
+Set to Disabled if not used.
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+ QSizePolicy::Preferred
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Select input used as a control source for this instance.
+It can be one of Accessory channels or Throttle channel.
+
+If Accessory channel is chosen then its range [0..1] will be mapped
+to PID range [Min..Max] defined for this instance.
+
+If Throttle channel is chosen then Throttle range [Min..Max] will
+be mapped to PID range [Min..Max] defined for this instance. If
+Throttle is out of bounds then PID Min and Max values will be used
+accordingly.
+
+Note that it is possible to set PID Min > Max. In that case increasing
+control input value will decrease the PID option value. This can be
+used, for instance, to decrease PID value when increasing Throttle.
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 16
+
+
+
+ background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
+color: rgb(255, 255, 255);
+border-radius: 5;
+margin:1px;
+font:bold;
+
+
+ Control Source
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Minimum PID value mapped to Accessory channel = 0 or
+Throttle channel lesser or equal to Throttle Min value.
+
+
+ 6
+
+
+ 0.000100000000000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 16
+
+
+
+ background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
+color: rgb(255, 255, 255);
+border-radius: 5;
+margin:1px;
+font:bold;
+
+
+ Min
+
+
+ Qt::AlignCenter
+
+
+
-
@@ -225,8 +394,65 @@ font:bold;
- -
-
+
-
+
+
+ Update Mode
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Maximum PID value mapped to Accessory channel = 1 or
+Throttle channel greater or equal to Throttle Max value.
+
+
+ 6
+
+
+ 0.000100000000000
+
+
+
+ -
+
+
+ PID Bank
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Throttle channel upper bound mapped to PID Max value
+
+
+ 1.000000000000000
+
+
+ 0.010000000000000
+
+
+
+ -
+
+
+ -
+
+
+ Instance 3
+
+
+
+ -
+
0
@@ -247,7 +473,167 @@ margin:1px;
font:bold;
- Control Source
+ Max
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ Instance 2
+
+
+
+ -
+
+
+ Throttle Range
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Minimum PID value mapped to Accessory channel = 0 or
+Throttle channel lesser or equal to Throttle Min value.
+
+
+ 6
+
+
+ 0.000100000000000
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Select input used as a control source for this instance.
+It can be one of Accessory channels or Throttle channel.
+
+If Accessory channel is chosen then its range [0..1] will be mapped
+to PID range [Min..Max] defined for this instance.
+
+If Throttle channel is chosen then Throttle range [Min..Max] will
+be mapped to PID range [Min..Max] defined for this instance. If
+Throttle is out of bounds then PID Min and Max values will be used
+accordingly.
+
+Note that it is possible to set PID Min > Max. In that case increasing
+control input value will decrease the PID option value. This can be
+used, for instance, to decrease PID value when increasing Throttle.
+
+
+
+ -
+
+
+ Instance 1
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Select PID option or option pair to update.
+Set to Disabled if not used.
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Select input used as a control source for this instance.
+It can be one of Accessory channels or Throttle channel.
+
+If Accessory channel is chosen then its range [0..1] will be mapped
+to PID range [Min..Max] defined for this instance.
+
+If Throttle channel is chosen then Throttle range [Min..Max] will
+be mapped to PID range [Min..Max] defined for this instance. If
+Throttle is out of bounds then PID Min and Max values will be used
+accordingly.
+
+Note that it is possible to set PID Min > Max. In that case increasing
+control input value will decrease the PID option value. This can be
+used, for instance, to decrease PID value when increasing Throttle.
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Maximum PID value mapped to Accessory channel = 1 or
+Throttle channel greater or equal to Throttle Max value.
+
+
+ 6
+
+
+ 0.000100000000000
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ PID values update mode, which can be set to:
+- Never: this disables PID updates (but module still will be run if enabled),
+- When Armed: PID updated only when system is armed,
+- Always: PID updated always, regardless of arm state.
+
+Since the GCS updates GUI PID values in real time on change, it could be
+tricky to change other PID values from the GUI if the module is enabled
+and constantly updates stabilization settings object. As a workaround,
+this option can be used to temporarily disable updates or enable them
+only when system is armed without disabling the module.
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 16
+
+
+
+ background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
+color: rgb(255, 255, 255);
+border-radius: 5;
+margin:1px;
+font:bold;
+
+
+ Max
Qt::AlignCenter
@@ -283,93 +669,6 @@ font:bold;
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 16
-
-
-
- background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
-color: rgb(255, 255, 255);
-border-radius: 5;
-margin:1px;
-font:bold;
-
-
- Max
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- Instance 1
-
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Select PID option or option pair to update.
-Set to Disabled if not used.
-
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Select input used as a control source for this instance.
-It can be one of Accessory channels or Throttle channel.
-
-If Accessory channel is chosen then its range [0..1] will be mapped
-to PID range [Min..Max] defined for this instance.
-
-If Throttle channel is chosen then Throttle range [Min..Max] will
-be mapped to PID range [Min..Max] defined for this instance. If
-Throttle is out of bounds then PID Min and Max values will be used
-accordingly.
-
-Note that it is possible to set PID Min > Max. In that case increasing
-control input value will decrease the PID option value. This can be
-used, for instance, to decrease PID value when increasing Throttle.
-
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Minimum PID value mapped to Accessory channel = 0 or
-Throttle channel lesser or equal to Throttle Min value.
-
-
- 6
-
-
- 0.000100000000000
-
-
-
-
@@ -387,223 +686,496 @@ Throttle channel greater or equal to Throttle Max value.
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ FullPID Settings
+
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 120
+ 16
+
+
+
+
+ 120
+ 16777215
+
+
+
+ background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
+color: rgb(255, 255, 255);
+border-radius: 5;
+margin:1px;
+font:bold;
+
+
+ Photographer
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 120
+ 16
+
+
+
+
+ 120
+ 16777215
+
+
+
+ background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
+color: rgb(255, 255, 255);
+border-radius: 5;
+margin:1px;
+font:bold;
+
+
+ FPV Racer
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 16777215
+ 16777215
+
+
+
+ Reset Roll/Pitch factors to default values
+
+
+ false
+
+
+
+
+
+ Default
+
+
+
+ button:default
+ buttongroup:10
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 0
+
+
+
+ Roll/Pitch I Factor
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+ Roll/Pitch I factor for full PID mode
+
+
+ 25
+
+
+ 40
+
+
+ 1
+
+
+ 5
+
+
+ 30
+
+
+ 30
+
+
+ Qt::Horizontal
+
+
+ QSlider::TicksBelow
+
+
+ 5
+
+
+
+ objname:TxPIDSettings
+ fieldname:PitchRollRateFactors
+ scale:0.1
+ element:I
+ buttongroup:10
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 0
+
+
+
+ Roll/Pitch D Factor
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 100
+ 22
+
+
+
+
+ 60
+ 22
+
+
+
+ Roll/Pitch D factor for full PID mode
+
+
+ 4
+
+
+ 0.000000000000000
+
+
+ 0.090000000000000
+
+
+ 0.000500000000000
+
+
+ 0.013500000000000
+
+
+
+ objname:TxPIDSettings
+ fieldname:PitchRollRateFactors
+ scale:1
+ element:D
+ buttongroup:10
+
+
+
+
-
-
+
+
+
+ 0
+ 27
+
+
+
+ Calculate Yaw PIDs based on Roll/Pitch PIDs
+
- Instance 2
+ AutoCalc Yaw
+
+
+
+ objname:TxPIDSettings
+ fieldname:RatePIDRecalculateYaw
+ buttongroup:11
+
- -
-
-
- Qt::StrongFocus
+
-
+
+
+
+ 0
+ 0
+
-
- Select PID option or option pair to update.
-Set to Disabled if not used.
+
+
+ 80
+ 0
+
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Select input used as a control source for this instance.
-It can be one of Accessory channels or Throttle channel.
-
-If Accessory channel is chosen then its range [0..1] will be mapped
-to PID range [Min..Max] defined for this instance.
-
-If Throttle channel is chosen then Throttle range [Min..Max] will
-be mapped to PID range [Min..Max] defined for this instance. If
-Throttle is out of bounds then PID Min and Max values will be used
-accordingly.
-
-Note that it is possible to set PID Min > Max. In that case increasing
-control input value will decrease the PID option value. This can be
-used, for instance, to decrease PID value when increasing Throttle.
-
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Minimum PID value mapped to Accessory channel = 0 or
-Throttle channel lesser or equal to Throttle Min value.
-
-
- 6
-
-
- 0.000100000000000
-
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Maximum PID value mapped to Accessory channel = 1 or
-Throttle channel greater or equal to Throttle Max value.
-
-
- 6
-
-
- 0.000100000000000
-
-
-
- -
-
- Instance 3
+ Yaw P Factor
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
- -
-
-
- Qt::StrongFocus
+
-
+
+
+
+ 0
+ 25
+
- Select PID option or option pair to update.
-Set to Disabled if not used.
+ Yaw P factor for full PID mode
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Select input used as a control source for this instance.
-It can be one of Accessory channels or Throttle channel.
-
-If Accessory channel is chosen then its range [0..1] will be mapped
-to PID range [Min..Max] defined for this instance.
-
-If Throttle channel is chosen then Throttle range [Min..Max] will
-be mapped to PID range [Min..Max] defined for this instance. If
-Throttle is out of bounds then PID Min and Max values will be used
-accordingly.
-
-Note that it is possible to set PID Min > Max. In that case increasing
-control input value will decrease the PID option value. This can be
-used, for instance, to decrease PID value when increasing Throttle.
-
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Minimum PID value mapped to Accessory channel = 0 or
-Throttle channel lesser or equal to Throttle Min value.
-
-
- 6
-
-
- 0.000100000000000
-
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Maximum PID value mapped to Accessory channel = 1 or
-Throttle channel greater or equal to Throttle Max value.
-
-
- 6
-
-
- 0.000100000000000
-
-
-
- -
-
-
- Update Mode
-
-
-
- -
-
-
- Qt::StrongFocus
-
-
- PID values update mode which can be set to:
-- Never: this disables PID updates (but module still will be run if enabled),
-- When Armed: PID updated only when system is armed,
-- Always: PID updated always regardless of arm state.
-
-Since the GCS updates GUI PID values in real time on change, could be
-tricky to change other PID values from the GUI if the module is enabled
-and constantly updates stabilization settings object. As a workaround,
-this option can be used to temporarily disable updates or enable them
-only when system is armed without disabling the module.
-
-
-
- -
-
-
- Throttle Range
-
-
-
- -
-
-
- Qt::StrongFocus
-
-
- Throttle channel lower bound mapped to PID Min value
+
+ 10
- 1.000000000000000
+ 25
- 0.010000000000000
+ 1
+
+
+ 5
+
+
+ 25
+
+
+ Qt::Horizontal
+
+
+ QSlider::TicksBelow
+
+
+ 5
+
+
+
+ objname:TxPIDSettings
+ fieldname:YawRateFactors
+ scale:0.1
+ element:P
+ buttongroup:11
+
- -
-
-
- Qt::StrongFocus
+
-
+
+
+
+ 0
+ 0
+
-
- Throttle channel upper bound mapped to PID Max value
+
+
+ 80
+ 0
+
-
- 1.000000000000000
+
+ Yaw I Factor
-
- 0.010000000000000
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
+
+
+
+ 100
+ 22
+
+
+
+
+ 60
+ 22
+
+
+
+ Yaw I factor for full PID mode
+
+
+ 0.000000000000000
+
+
+ 10.000000000000000
+
+
+ 0.100000000000000
+
+
+ 1.900000000000000
+
+
+
+ objname:TxPIDSettings
+ fieldname:YawRateFactors
+ scale:1
+ element:I
+ buttongroup:11
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 0
+
+
+
+ Yaw D Factor
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 100
+ 22
+
+
+
+
+ 60
+ 22
+
+
+
+ Yaw D factor for full PID mode
+
+
+ 4
+
+
+ 0.000000000000000
+
+
+ 0.100000000000000
+
+
+ 0.000500000000000
+
+
+ 0.008500000000000
+
+
+
+ objname:TxPIDSettings
+ fieldname:YawRateFactors
+ scale:1
+ element:D
+ buttongroup:11
+
+
+
+
+ -
+
0
@@ -612,10 +1184,16 @@ only when system is armed without disabling the module.
- 0
+ 120
16
+
+
+ 120
+ 16777215
+
+
background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
color: rgb(255, 255, 255);
@@ -624,15 +1202,138 @@ margin:1px;
font:bold;
- Min
+ Soft
Qt::AlignCenter
- -
-
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 16777215
+ 16777215
+
+
+
+ Reset Yaw factors to default values
+
+
+ false
+
+
+
+
+
+ Default
+
+
+
+ button:default
+ buttongroup:11
+
+
+
+
+ -
+
+
+
+ 60
+ 22
+
+
+
+
+ 60
+ 22
+
+
+
+ Yaw P factor for full PID mode
+
+
+ 1
+
+
+ 0.000000000000000
+
+
+ 10.000000000000000
+
+
+ 0.100000000000000
+
+
+ 2.500000000000000
+
+
+
+ objname:TxPIDSettings
+ fieldname:YawRateFactors
+ scale:1
+ element:P
+ buttongroup:11
+
+
+
+
+ -
+
+
+
+ 60
+ 22
+
+
+
+
+ 60
+ 22
+
+
+
+ Roll/Pitch I factor for full PID mode
+
+
+ 1
+
+
+ 0.000000000000000
+
+
+ 10.000000000000000
+
+
+ 4.000000000000000
+
+
+
+ objname:TxPIDSettings
+ fieldname:PitchRollRateFactors
+ scale:1
+ element:I
+ buttongroup:10
+
+
+
+
+ -
+
0
@@ -641,10 +1342,16 @@ font:bold;
- 0
+ 120
16
+
+
+ 120
+ 16777215
+
+
background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
color: rgb(255, 255, 255);
@@ -653,39 +1360,13 @@ margin:1px;
font:bold;
- Max
+ Aggressive
Qt::AlignCenter
- -
-
-
- Qt::Vertical
-
-
- QSizePolicy::Preferred
-
-
-
- 20
- 20
-
-
-
-
- -
-
-
- PID Bank
-
-
-
- -
-
-
diff --git a/shared/uavobjectdefinition/txpidsettings.xml b/shared/uavobjectdefinition/txpidsettings.xml
index 554598f6b..43adc6574 100644
--- a/shared/uavobjectdefinition/txpidsettings.xml
+++ b/shared/uavobjectdefinition/txpidsettings.xml
@@ -7,10 +7,11 @@
elementnames="Instance1,Instance2,Instance3"
options="Throttle,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5"
defaultvalue="Throttle,Accessory0,Accessory1"/>
-
-
+
+
+
+
+
+