diff --git a/ground/openpilotgcs/src/plugins/config/outputchannelform.ui b/ground/openpilotgcs/src/plugins/config/outputchannelform.ui
index 622b76c5d..9c2c62f47 100644
--- a/ground/openpilotgcs/src/plugins/config/outputchannelform.ui
+++ b/ground/openpilotgcs/src/plugins/config/outputchannelform.ui
@@ -7,7 +7,7 @@
0
0
813
- 56
+ 58
@@ -20,315 +20,19 @@
1
- -
-
+
-
+
0
0
-
-
- 20
- 0
-
-
- Channel Number
-
-
- Qt::LeftToRight
+ Current value of slider.
- TextLabel
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 110
- 0
-
-
-
- TextLabel
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- Minimum PWM value, beware of not overdriving your servo.
-
-
- 9999
-
-
-
- -
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Minimum
-
-
-
- 0
- 20
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
- 9999
-
-
- Qt::Horizontal
-
-
-
- -
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Minimum
-
-
-
- 5
- 20
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 40
- 0
-
-
-
- Check to invert the channel.
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 40
- 0
-
-
-
- Output mode
-
-
-
- -
-
-
- Maximum PWM value, beware of not overdriving your servo.
-
-
- 9999
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 75
- false
- true
-
-
-
- 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;
-font:bold;
-margin:1px;
-
-
- Assignment
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 75
- false
- true
-
-
-
- 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;
-font:bold;
-margin:1px;
-
-
- Min
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 75
- false
- true
-
-
-
- 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;
-font:bold;
-margin:1px;
-
-
- Neutral (slowest for motor)
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 75
- false
- true
-
-
-
- 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;
-font:bold;
-margin:1px;
-
-
- Max
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 75
- false
- true
-
-
-
- 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;
-font:bold;
-margin:1px;
-
-
- Rev.
-
-
- Qt::AlignCenter
+ 0000
@@ -362,19 +66,25 @@ margin:1px;
- -
-
+
-
+
0
0
-
- Current value of slider.
+
+
+ 110
+ 0
+
- 0000
+ TextLabel
+
+
+ Qt::AlignCenter
@@ -414,8 +124,320 @@ margin:1px;
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 20
+ 0
+
+
+
+ Channel Number
+
+
+ Qt::LeftToRight
+
+
+ TextLabel
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Minimum PWM value, beware of not overdriving your servo.
+
+
+ 9999
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 40
+ 0
+
+
+
+ Qt::StrongFocus
+
+
+ Check to invert the channel.
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 75
+ false
+ true
+
+
+
+ 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;
+font:bold;
+margin:1px;
+
+
+ Neutral (slowest for motor)
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 75
+ false
+ true
+
+
+
+ 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;
+font:bold;
+margin:1px;
+
+
+ Assignment
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 0
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 75
+ false
+ true
+
+
+
+ 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;
+font:bold;
+margin:1px;
+
+
+ Min
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 75
+ false
+ true
+
+
+
+ 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;
+font:bold;
+margin:1px;
+
+
+ Max
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 40
+ 0
+
+
+
+ Qt::StrongFocus
+
+
+ Output mode
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 5
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 75
+ false
+ true
+
+
+
+ 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;
+font:bold;
+margin:1px;
+
+
+ Rev.
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ Qt::StrongFocus
+
+
+ 9999
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+ Maximum PWM value, beware of not overdriving your servo.
+
+
+ 9999
+
+
+
+
+ actuatorMin
+ actuatorNeutral
+ actuatorMax
+ actuatorRev
+ actuatorLink
+
diff --git a/ground/openpilotgcs/src/plugins/config/stabilization.ui b/ground/openpilotgcs/src/plugins/config/stabilization.ui
index a8d99f817..eaf4d9c9d 100755
--- a/ground/openpilotgcs/src/plugins/config/stabilization.ui
+++ b/ground/openpilotgcs/src/plugins/config/stabilization.ui
@@ -470,7 +470,7 @@
QTabWidget::North
- 0
+ 1
true
@@ -495,7 +495,7 @@
0
- 0
+ -267
667
880
@@ -3424,6 +3424,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -3516,6 +3519,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -3608,6 +3614,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -3703,6 +3712,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -3779,6 +3791,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -3855,6 +3870,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -6741,6 +6759,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -6833,6 +6854,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -6925,6 +6949,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -7036,6 +7063,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -7112,6 +7142,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -7188,6 +7221,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
200
@@ -10184,6 +10220,9 @@ Angle
22
+
+ Qt::StrongFocus
+
200
@@ -10274,6 +10313,9 @@ Angle
22
+
+ Qt::StrongFocus
+
200
@@ -10364,6 +10406,9 @@ Angle
22
+
+ Qt::StrongFocus
+
200
@@ -10459,6 +10504,9 @@ Rate
22
+
+ Qt::StrongFocus
+
200
@@ -10535,6 +10583,9 @@ Rate
22
+
+ Qt::StrongFocus
+
200
@@ -10611,6 +10662,9 @@ Rate
22
+
+ Qt::StrongFocus
+
200
@@ -10707,6 +10761,9 @@ Attitude
22
+
+ Qt::StrongFocus
+
200
@@ -10783,6 +10840,9 @@ Attitude
22
+
+ Qt::StrongFocus
+
200
@@ -10859,6 +10919,9 @@ Attitude
22
+
+ Qt::StrongFocus
+
200
@@ -14600,6 +14663,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
Slowly raise Kp until you start seeing clear oscillations when you fly.
Then lower the value by 20% or so.
@@ -14608,7 +14674,7 @@ Then lower the value by 20% or so.
- 6
+ 5
0.000100000000000
@@ -14645,6 +14711,9 @@ Then lower the value by 20% or so.
22
+
+ Qt::StrongFocus
+
Slowly raise Kp until you start seeing clear oscillations when you fly.
Then lower the value by 20% or so.
@@ -14653,7 +14722,7 @@ Then lower the value by 20% or so.
- 6
+ 5
0.000100000000000
@@ -14690,6 +14759,9 @@ Then lower the value by 20% or so.
22
+
+ Qt::StrongFocus
+
Slowly raise Kp until you start seeing clear oscillations when you fly.
Then lower the value by 20% or so.
@@ -14700,7 +14772,7 @@ You can usually go for higher values for Yaw factors.
- 6
+ 5
0.000100000000000
@@ -14772,6 +14844,9 @@ You can usually go for higher values for Yaw factors.
22
+
+ Qt::StrongFocus
+
As a rule of thumb, you can set the Ki at roughly the same
value as the Kp.
@@ -14780,7 +14855,7 @@ value as the Kp.
- 6
+ 5
0.000100000000000
@@ -14833,6 +14908,9 @@ value as the Kp.
22
+
+ Qt::StrongFocus
+
As a rule of thumb, you can set the Ki at roughly the same
value as the Kp.
@@ -14841,7 +14919,7 @@ value as the Kp.
- 6
+ 5
0.000100000000000
@@ -14894,6 +14972,9 @@ value as the Kp.
22
+
+ Qt::StrongFocus
+
As a rule of thumb, you can set the Ki at roughly the same
value as the Kp.
@@ -14902,7 +14983,7 @@ value as the Kp.
- 6
+ 5
0.000100000000000
@@ -14970,6 +15051,9 @@ value as the Kp.
22
+
+ Qt::StrongFocus
+
@@ -14980,7 +15064,7 @@ value as the Kp.
6
- 1.000000000000000
+ 0.000001000000000
@@ -15014,6 +15098,9 @@ value as the Kp.
22
+
+ Qt::StrongFocus
+
@@ -15021,7 +15108,7 @@ value as the Kp.
6
- 1.000000000000000
+ 0.000001000000000
@@ -15055,6 +15142,9 @@ value as the Kp.
22
+
+ Qt::StrongFocus
+
@@ -15065,7 +15155,7 @@ value as the Kp.
6
- 1.000000000000000
+ 0.000001000000000
@@ -15103,7 +15193,7 @@ value as the Kp.
- ILimit
+ K_i*ILimit
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -15130,6 +15220,9 @@ value as the Kp.
22
+
+ Qt::StrongFocus
+
@@ -15139,9 +15232,12 @@ value as the Kp.
6
-
+
1.000000000000000
+
+ 0.000010000000000
+
objname:StabilizationSettings
@@ -15174,15 +15270,21 @@ value as the Kp.
22
+
+ Qt::StrongFocus
+
6
-
+
1.000000000000000
+
+ 0.000010000000000
+
objname:StabilizationSettings
@@ -15215,6 +15317,9 @@ value as the Kp.
22
+
+ Qt::StrongFocus
+
@@ -15224,9 +15329,12 @@ value as the Kp.
6
-
+
1.000000000000000
+
+ 0.000010000000000
+
objname:StabilizationSettings
@@ -18122,7 +18230,10 @@ border-radius: 5;
- 6
+ 2
+
+
+ 1000.000000000000000
0.100000000000000
@@ -18163,7 +18274,10 @@ border-radius: 5;
- 6
+ 2
+
+
+ 1000.000000000000000
0.100000000000000
@@ -18207,7 +18321,10 @@ border-radius: 5;
- 6
+ 2
+
+
+ 1000.000000000000000
0.100000000000000
@@ -18259,50 +18376,6 @@ border-radius: 5;
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 22
-
-
-
-
- 16777215
- 22
-
-
-
-
-
-
-
-
-
- 6
-
-
- 0.100000000000000
-
-
-
- objname:StabilizationSettings
- fieldname:RollPI
- element:Ki
- haslimits:no
- scale:1
- buttongroup:5,20
-
-
-
-
-
@@ -18343,7 +18416,10 @@ border-radius: 5;
- 6
+ 2
+
+
+ 1000.000000000000000
0.100000000000000
@@ -18403,7 +18479,10 @@ border-radius: 5;
- 6
+ 2
+
+
+ 1000.000000000000000
0.100000000000000
@@ -18444,7 +18523,7 @@ border-radius: 5;
- ILimit
+ K_i*ILimit
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -18478,7 +18557,10 @@ border-radius: 5;
- 6
+ 2
+
+
+ 1000.000000000000000
0.100000000000000
@@ -18519,7 +18601,10 @@ border-radius: 5;
- 6
+ 2
+
+
+ 1000.000000000000000
0.100000000000000
@@ -18563,7 +18648,10 @@ border-radius: 5;
- 6
+ 2
+
+
+ 1000.000000000000000
0.100000000000000
@@ -18580,6 +18668,53 @@ border-radius: 5;
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 22
+
+
+
+
+ 16777215
+ 22
+
+
+
+
+
+
+
+
+
+ 2
+
+
+ 1000.000000000000000
+
+
+ 0.100000000000000
+
+
+
+ objname:StabilizationSettings
+ fieldname:RollPI
+ element:Ki
+ haslimits:no
+ scale:1
+ buttongroup:5,20
+
+
+
+
@@ -21412,6 +21547,9 @@ angle(deg)
22
+
+ Qt::StrongFocus
+
@@ -21422,7 +21560,7 @@ angle(deg)
0
- 1000000.000000000000000
+ 360.000000000000000
1.000000000000000
@@ -21458,6 +21596,9 @@ angle(deg)
22
+
+ Qt::StrongFocus
+
@@ -21465,7 +21606,7 @@ angle(deg)
0
- 1000000.000000000000000
+ 360.000000000000000
1.000000000000000
@@ -21537,6 +21678,9 @@ rate(deg/s)
22
+
+ Qt::StrongFocus
+
@@ -21547,7 +21691,7 @@ rate(deg/s)
0
- 1000000.000000000000000
+ 10000.000000000000000
1.000000000000000
@@ -21600,6 +21744,9 @@ rate(deg/s)
22
+
+ Qt::StrongFocus
+
@@ -21607,7 +21754,7 @@ rate(deg/s)
0
- 1000000.000000000000000
+ 10000.000000000000000
1.000000000000000
@@ -21660,6 +21807,9 @@ rate(deg/s)
22
+
+ Qt::StrongFocus
+
@@ -21670,7 +21820,7 @@ rate(deg/s)
0
- 1000000.000000000000000
+ 10000.000000000000000
1.000000000000000
@@ -21739,6 +21889,9 @@ rate(deg/s)
22
+
+ Qt::StrongFocus
+
@@ -21749,7 +21902,7 @@ rate(deg/s)
0
- 1000000.000000000000000
+ 10000.000000000000000
1.000000000000000
@@ -21786,6 +21939,9 @@ rate(deg/s)
22
+
+ Qt::StrongFocus
+
@@ -21793,7 +21949,7 @@ rate(deg/s)
0
- 1000000.000000000000000
+ 10000.000000000000000
1.000000000000000
@@ -21830,6 +21986,9 @@ rate(deg/s)
22
+
+ Qt::StrongFocus
+
@@ -21840,7 +21999,7 @@ rate(deg/s)
0
- 1000000.000000000000000
+ 10000.000000000000000
1.000000000000000
@@ -21877,6 +22036,9 @@ rate(deg/s)
22
+
+ Qt::StrongFocus
+
@@ -21887,7 +22049,7 @@ rate(deg/s)
0
- 1000000.000000000000000
+ 360.000000000000000
1.000000000000000
@@ -24702,6 +24864,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
GyroTau is a gyro filter, the higher the factor the more filtering is applied to the gyros
@@ -24715,7 +24880,7 @@ border-radius: 5;
1000000.000000000000000
- 1.000000000000000
+ 0.010000000000000
@@ -24748,6 +24913,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
The proportional term for the accelerometer, the higher this term the more weight the accel is given
@@ -24761,7 +24929,7 @@ border-radius: 5;
1000000.000000000000000
- 1.000000000000000
+ 0.010000000000000
@@ -24794,6 +24962,9 @@ border-radius: 5;
22
+
+ Qt::StrongFocus
+
The intergral term for the accelerometer within the filter
@@ -24807,7 +24978,7 @@ border-radius: 5;
1000000.000000000000000
- 1.000000000000000
+ 0.000100000000000
diff --git a/ground/openpilotgcs/src/plugins/uavobjects/uavobjecttemplate.m b/ground/openpilotgcs/src/plugins/uavobjects/uavobjecttemplate.m
index c494c529b..a01b2ad27 100644
--- a/ground/openpilotgcs/src/plugins/uavobjects/uavobjecttemplate.m
+++ b/ground/openpilotgcs/src/plugins/uavobjects/uavobjecttemplate.m
@@ -89,8 +89,8 @@ fclose(fid);
$(CLEANUPCODE)
if strcmpi(outputType,'mat')
- matfile = strrep(logfile,'opl','mat');
- save(matfile $(SAVEOBJECTSCODE));
+ [pathstr, name, ext] = fileparts(logfile);
+ save([fullfile(pathstr, name) '.mat'] $(SAVEOBJECTSCODE));
else
$(EXPORTCSVCODE);
end