Skip to content

Commit eb1c7c9

Browse files
committed
Fix gps rescue throttle pid gains
Add heading, velocity and tracking
1 parent ad79fbc commit eb1c7c9

File tree

3 files changed

+189
-1
lines changed

3 files changed

+189
-1
lines changed

js/flightlog_fielddefs.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,10 @@ var
339339
"TIMING_ACCURACY",
340340
"RX_EXPRESSLRS_SPI",
341341
"RX_EXPRESSLRS_PHASELOCK",
342+
"DEBUG_RX_STATE_TIME",
343+
"GPS_RESCUE_VELOCITY",
344+
"GPS_RESCUE_HEADING",
345+
"GPS_RESCUE_TRACKING"
342346
]),
343347

344348
SUPER_EXPO_YAW = makeReadOnly([

js/flightlog_fields_presenter.js

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,27 @@ function FlightLogFieldPresenter() {
626626
'debug[2]':'Frequency Offset',
627627
'debug[3]':'Phase Shift',
628628
},
629+
'GPS_RESCUE_VELOCITY' : {
630+
'debug[all]':'GPS Rescue Velocity PIDs',
631+
'debug[0]':'Velocity P',
632+
'debug[1]':'Velocity I',
633+
'debug[2]':'Velocity D',
634+
'debug[3]':'GroundSpeed',
635+
},
636+
'GPS_RESCUE_HEADING' : {
637+
'debug[all]':'GPS Rescue Heading',
638+
'debug[0]':'Error angle',
639+
'debug[1]':'Rescue Yaw',
640+
'debug[2]':'Attitude',
641+
'debug[3]':'Angle to home',
642+
},
643+
'GPS_RESCUE_TRACKING' : {
644+
'debug[all]':'GPS Rescue Tracking',
645+
'debug[0]':'Velocity to home',
646+
'debug[1]':'Target velocity',
647+
'debug[2]':'Altitude',
648+
'debug[3]':'Target altitude',
649+
},
629650
};
630651

631652
let DEBUG_FRIENDLY_FIELD_NAMES = null;
@@ -678,6 +699,13 @@ function FlightLogFieldPresenter() {
678699
'debug[2]':'Notch 3 Center Freq [dbg-axis]',
679700
'debug[3]':'Gyro Pre Dyn Notch [dbg-axis]',
680701
};
702+
DEBUG_FRIENDLY_FIELD_NAMES.GPS_RESCUE_THROTTLE_PID = {
703+
'debug[all]':'GPS Rescue Throttle PID',
704+
'debug[0]':'Throttle P',
705+
'debug[1]':'Throttle I',
706+
'debug[2]':'Throttle D',
707+
'debug[3]':'Altitude',
708+
};
681709
} else if (semver.gte(firmwareVersion, '4.2.0')) {
682710
DEBUG_FRIENDLY_FIELD_NAMES.FF_INTERPOLATED = {
683711
'debug[all]':'Feedforward [roll]',
@@ -999,8 +1027,12 @@ function FlightLogFieldPresenter() {
9991027
}
10001028
case 'RTH':
10011029
switch(fieldName) {
1030+
case 'debug[0]':
1031+
return value.toFixed(0) + 'us';
10021032
case 'debug[1]':
10031033
return (value / 100).toFixed(1) + 'deg';
1034+
case 'debug[2]':
1035+
return value.toFixed(0) + 'us';
10041036
default:
10051037
return value.toFixed(0);
10061038
}
@@ -1056,7 +1088,15 @@ function FlightLogFieldPresenter() {
10561088
return value.toFixed(0) + "Hz";
10571089
}
10581090
case 'GPS_RESCUE_THROTTLE_PID':
1059-
return value.toFixed(0);
1091+
switch (fieldName) {
1092+
// debug 0 = Throttle P
1093+
// debug 1 = Throttle I
1094+
// debug 2 = Throttle D
1095+
case 'debug[3]': // current altitude in m
1096+
return (value / 100).toFixed(2) + 'm';
1097+
default:
1098+
return value.toFixed(0);
1099+
}
10601100
case 'DYN_IDLE':
10611101
switch (fieldName) {
10621102
case 'debug[3]': // minRPS
@@ -1125,6 +1165,39 @@ function FlightLogFieldPresenter() {
11251165
default:
11261166
return value.toFixed(0) + 'us';
11271167
}
1168+
case 'GPS_RESCUE_VELOCITY':
1169+
switch (fieldName) {
1170+
// debug 0 = Velocity P
1171+
// debug 1 = Velocity I
1172+
// debug 2 = Velocity D
1173+
case 'debug[3]': // Velocity cm/s
1174+
return (value / 100).toFixed(2) + 'm/s';
1175+
default:
1176+
return value.toFixed(0);
1177+
}
1178+
case 'GPS_RESCUE_HEADING':
1179+
switch (fieldName) {
1180+
case 'debug[0]': // error angle tenths of a degree
1181+
case 'debug[1]': // angle to home in tenths of a degree
1182+
return (value / 10).toFixed(1) + 'deg';
1183+
case 'debug[2]': // commanded yaw rate in tenths of a degree
1184+
return (value / 10).toFixed(1) + 'deg/s';
1185+
case 'debug[3]': // roll angle in hundredths of a degree
1186+
return (value / 100).toFixed(2) + 'deg';
1187+
default:
1188+
return value.toFixed(0);
1189+
}
1190+
case 'GPS_RESCUE_TRACKING':
1191+
switch (fieldName) {
1192+
case 'debug[0]': // velocity to home cm/s
1193+
case 'debug[1]': // velocity target cm/s
1194+
return (value / 100).toFixed(2) + 'm/s';
1195+
case 'debug[2]': // altitude cm
1196+
case 'debug[3]': // altitude target cm
1197+
return (value / 100).toFixed(2) + 'm';
1198+
default:
1199+
return value.toFixed(0);
1200+
}
11281201
}
11291202
return value.toFixed(0);
11301203
}

js/graph_config.js

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,117 @@ GraphConfig.load = function(config) {
736736
default:
737737
return getCurveForMinMaxFields(fieldName);
738738
}
739+
case 'GPS_RESCUE_THROTTLE_PID':
740+
switch (fieldName) {
741+
case 'debug[0]': // Throttle P
742+
case 'debug[1]': // Throttle I
743+
case 'debug[2]': // Throttle D
744+
return {
745+
offset: 0,
746+
power: 1.0,
747+
inputRange: 300,
748+
outputRange: 1.0,
749+
};
750+
case 'debug[3]': // Altitude
751+
return {
752+
offset: 0,
753+
power: 1.0,
754+
inputRange: 5000,
755+
outputRange: 1.0,
756+
};
757+
default:
758+
return getCurveForMinMaxFields(fieldName);
759+
}
760+
case 'GPS_RESCUE_VELOCITY':
761+
switch (fieldName) {
762+
case 'debug[0]': // Throttle P
763+
case 'debug[1]': // Throttle I
764+
case 'debug[2]': // Throttle D
765+
case 'debug[3]': // Velocity cm/s
766+
return {
767+
offset: 0,
768+
power: 1.0,
769+
inputRange: 500,
770+
outputRange: 1.0,
771+
};
772+
default:
773+
return getCurveForMinMaxFields(fieldName);
774+
}
775+
case 'GPS_RESCUE_HEADING':
776+
switch (fieldName) {
777+
case 'debug[0]': // Error angle tenths of a degree
778+
case 'debug[1]': // Angle to home tenths of a degree
779+
case 'debug[2]': // Rescue yaw rate deg/s * 10
780+
return {
781+
offset: 0,
782+
power: 1.0,
783+
inputRange: 100,
784+
outputRange: 1.0,
785+
};
786+
case 'debug[3]': // Rescue roll angle degrees * 100
787+
return {
788+
offset: 0,
789+
power: 1.0,
790+
inputRange: 1000,
791+
outputRange: 1.0,
792+
};
793+
default:
794+
return getCurveForMinMaxFields(fieldName);
795+
}
796+
case 'RTH':
797+
switch (fieldName) {
798+
case 'debug[0]': // FailureState
799+
return {
800+
offset: -5,
801+
power: 1.0,
802+
inputRange: 5,
803+
outputRange: 1.0,
804+
};
805+
case 'debug[1]': // Rescue throttle us
806+
return {
807+
offset: -1500,
808+
power: 1.0,
809+
inputRange: 500,
810+
outputRange: 1.0,
811+
};
812+
case 'debug[2]': // Rescue angle decidegrees
813+
return {
814+
offset: 0,
815+
power: 1.0,
816+
inputRange: 450,
817+
outputRange: 1.0,
818+
};
819+
case 'debug[3]': // Throttle adjustment us
820+
return {
821+
offset: 0,
822+
power: 1.0,
823+
inputRange: 500,
824+
outputRange: 1.0,
825+
};
826+
default:
827+
return getCurveForMinMaxFields(fieldName);
828+
}
829+
case 'GPS_RESCUE_TRACKING':
830+
switch (fieldName) {
831+
case 'debug[0]': // velocity to home cm/s
832+
case 'debug[1]': // target velocity cm/s
833+
return {
834+
offset: 0,
835+
power: 1.0,
836+
inputRange: 500,
837+
outputRange: 1.0,
838+
};
839+
case 'debug[2]': // altitude m
840+
case 'debug[3]': // Target altitude m
841+
return {
842+
offset: 0,
843+
power: 1.0,
844+
inputRange: 5000,
845+
outputRange: 1.0,
846+
};
847+
default:
848+
return getCurveForMinMaxFields(fieldName);
849+
}
739850
}
740851
}
741852
// if not found above then

0 commit comments

Comments
 (0)