From 4c43c2e293f846eb3cca619640b7efb28a7d1f29 Mon Sep 17 00:00:00 2001 From: Henry Wurzburg Date: Fri, 2 Dec 2022 15:09:40 -0600 Subject: [PATCH] Update and organize provided graphs --- MAVProxy/tools/graphs/ekf3Graphs.xml | 90 +++---- MAVProxy/tools/graphs/mavgraphs.xml | 111 ++++----- MAVProxy/tools/graphs/mavgraphs2.xml | 338 ++++++++++++++++++++++++--- 3 files changed, 406 insertions(+), 133 deletions(-) diff --git a/MAVProxy/tools/graphs/ekf3Graphs.xml b/MAVProxy/tools/graphs/ekf3Graphs.xml index 7f4d0492c0..235f0d9548 100644 --- a/MAVProxy/tools/graphs/ekf3Graphs.xml +++ b/MAVProxy/tools/graphs/ekf3Graphs.xml @@ -1,20 +1,20 @@ - + EKF3 Gyro Bias XKF1[0].GX XKF1[0].GY XKF1[0].GZ XKF1[1].GX XKF1[1].GY XKF1[1].GZ XKF1[2].GX XKF1[2].GY XKF1[2].GZ XKF1[0].GX XKF1[0].GY XKF1[0].GZ XKF1[1].GX XKF1[1].GY XKF1[1].GZ XKF1.GX XKF1.GY XKF1.GZ - + EKF3 Origin Height XKF1[0].OH XKF1[1].OH XKF1[2].OH XKF1[0].OH XKF1[1].OH XKF1.OH - + EKF3 Position Down XKF1[0].PD XKF1[1].PD XKF1[2].PD XKF1[0].PD XKF1[1].PD @@ -22,229 +22,229 @@ - + EKF3 Position North/East XKF1[0].PN XKF1[1].PN XKF1[2].PN XKF1[0].PE XKF1[1].PE XKF1[2].PE XKF1[0].PN XKF1[1].PN XKF1[0].PE XKF1[1].PE XKF1.PN XKF1.PE - + EKF3 Position Down XKF1[0].PD XKF1[1].PD XKF1[2].PD XKF1[0].PD XKF1[1].PD XKF1.PD - + EKF3 Position Innovation North/East XKF3[0].IPN XKF3[1].IPN XKF3[2].IPN XKF3[0].IPE XKF3[1].IPE XKF3[2].IPE XKF3[0].IPN XKF3[1].IPN XKF3[0].IPE XKF3[1].IPE XKF3.IPN XKF3.IPE - + EKF3 Position Down XKF3[0].IPD XKF3[1].IPD XKF3[2].IPD XKF3[0].IPD XKF3[1].IPD XKF3.IPD - + EKF3 Velocity Innovation North/East XKF3[0].IVN XKF3[1].IVN XKF3[2].IVN XKF3[0].IVE XKF3[1].IVE XKF3[2].IVE XKF3[0].IVN XKF3[1].IVN XKF3[0].IVE XKF3[1].IVE XKF3.IVN XKF3.IVE - + EKF3 Velocity Down XKF3[0].IVD XKF3[1].IVD XKF3[2].IVD XKF3[0].IVD XKF3[1].IVD XKF3.IVD - + EKF3 Mag Innovations Lane1 XKF3[0].IMX XKF3[0].IMY XKF3[0].IMZ XKF3[0].IYAW:2 - + EKF3 Mag Innovations Lane2 XKF3[1].IMX XKF3[1].IMY XKF3[1].IMZ XKF3[1].IYAW:2 - + EKF3 Mag Innovations Lane3 XKF3[2].IMX XKF3[2].IMY XKF3[2].IMZ XKF3[2].IYAW:2 - + EKF3 Euler Roll ATT.Roll XKF1[0].Roll XKF1[1].Roll XKF1[2].Roll ATT.Roll XKF1[0].Roll XKF1[1].Roll ATT.Roll XKF1.Roll - + EKF3 Euler Pitch ATT.Pitch XKF1[0].Pitch XKF1[1].Pitch XKF1[2].Pitch ATT.Pitch XKF1[0].Pitch XKF1[1].Pitch ATT.Pitch XKF1.Pitch - + EKF3 Euler Yaw ATT.Yaw XKF1[0].Yaw XKF1[1].Yaw XKF1[2].Yaw ATT.Yaw XKF1[0].Yaw XKF1[1].Yaw ATT.Yaw XKF1.Yaw - + EKF3 Velocity North XKF1[0].VN XKF1[1].VN XKF1[2].VN XKF1[0].VN XKF1[1].VN XKF1.VN - + EKF3 Velocity East XKF1[0].VE XKF1[1].VE XKF1[2].VE XKF1[0].VE XKF1[1].VE XKF1.VE - + EKF3 Velocity Down XKF1[0].VD XKF1[1].VD XKF1[2].VD XKF1[0].VD XKF1[1].VD XKF1.VD - + EKF3 Velocity Down (DP derivative) XKF1[0].dPD XKF1[1].dPD XKF1[2].dPD XKF1[0].dPD XKF1[1].dPD XKF1.dPD - + EKF3 Accel Bias Lane1 XKF2[0].AX XKF2[0].AY XKF2[0].AZ XKF2.AX XKF2.AY XKF2.AZ - + EKF3 Accel Bias Lane2 XKF2[1].AX XKF2[1].AY XKF2[1].AZ - + EKF3 Accel Bias Lane3 XKF2[2].AX XKF2[2].AY XKF2[2].AZ - + EKF3 Gyro Scale Factor XKF2[0].GSX XKF2[0].GSY XKF2[0].GSZ XKF2[1].GSX XKF2[1].GSY XKF2[1].GSZ XKF2[2].GSX XKF2[2].GSY XKF2[2].GSZ XKF2[0].GSX XKF2[0].GSY XKF2[0].GSZ XKF2[1].GSX XKF2[1].GSY XKF2[1].GSZ XKF2.GSX XKF2.GSY XKF2.GSZ - + EKF3 Mag Earth Field XKF2[0].MN XKF2[0].ME XKF2[0].MD XKF2[1].MN XKF2[1].ME XKF2[1].MD XKF2[2].MN XKF2[2].ME XKF2[2].MD XKF2[0].MN XKF2[0].ME XKF2[0].MD XKF2[1].MN XKF2[1].ME XKF2[1].MD XKF2.MN XKF2.ME XKF2.MD - + EKF3 Mag Body Field XKF2[0].MX XKF2[0].MY XKF2[0].MZ XKF2[1].MX XKF2[1].MY XKF2[1].MZ XKF2[2].MX XKF2[2].MY XKF2[2].MZ XKF2[0].MX XKF2[0].MY XKF2[0].MZ XKF2[1].MX XKF2[1].MY XKF2[1].MZ XKF2.MX XKF2.MY XKF2.MZ - + EKF3 Wind NE XKF2[0].VWN XKF2[0].VWE XKF2[1].VWN XKF2[1].VWE XKF2[2].VWN XKF2[2].VWE XKF2[0].VWN XKF2[0].VWE XKF2[1].VWN XKF2[1].VWE XKF2.VWN XKF2.VWE - + EKF3 Mag Innovations Lane1 XKF3[0].IMX XKF2[0].IMY XKF2[0].IMZ XKF3[0].IYAW:2 XKF3.IMX XKF2.IMY XKF2.IMZ XKF3.IYAW:2 - + EKF3 Mag Innovations Lane2 XKF3[1].IMX XKF2[1].IMY XKF2[1].IMZ XKF3[1].IYAW:2 - + EKF3 Mag Innovations Lane3 XKF3[2].IMX XKF2[2].IMY XKF2[2].IMZ XKF3[2].IYAW:2 - + EKF3 Pos Innovations Lane1 XKF3[0].IPN XKF2[0].IPE XKF2[0].IPD XKF3.IPN XKF2.IPE XKF2.IPD - + EKF3 Pos Innovations Lane2 XKF3[1].IPN XKF2[1].IPE XKF2[1].IPD - + EKF3 Pos Innovations Lane3 XKF3[2].IPN XKF2[2].IPE XKF2[2].IPD - + EKF3 Velocity Innovations Lane1 XKF3[0].IVN XKF2[0].IVE XKF2[0].IVD XKF3.IVN XKF2.IVE XKF2.IVD - + EKF3 Velocity Innovations Lane2 XKF3[1].IVN XKF2[1].IVE XKF2[1].IVD - + EKF3 Velocity Innovations Lane3 XKF3[2].IVN XKF2[2].IVE XKF2[2].IVD - + EKF3 Normalized Innovations Lane1 XKF4[0].SV XKF4[0].SP XKF4[0].SH XKF4[0].SM XKF4[0].SVT XKF4.SV XKF4.SP XKF4.SH XKF4.SM XKF4.SVT - + EKF3 Normalized Innovations Lane2 XKF4[1].SV XKF4[1].SP XKF4[1].SH XKF4[1].SM XKF4[1].SVT XKF9.SV XKF9.SP XKF9.SH XKF9.SM XKF9.SVT - + EKF3 Normalized Innovations Lane3 XKF4[2].SV XKF4[2].SP XKF4[2].SH XKF4[2].SM XKF4[2].SVT - + EKF3 Wind Velocity NE sqrt(XKF2[0].VWN**2+XKF2[0].VWE**2) wrap_360(degrees(atan2(-XKF2[0].VWE,-XKF2[0].VWN))):2 sqrt(XKF2[1].VWN**2+XKF2[1].VWE**2) wrap_360(degrees(atan2(-XKF2[1].VWE,-XKF2[1].VWN))):2 sqrt(XKF2.VWN**2+XKF2.VWE**2) wrap_360(degrees(atan2(-XKF2.VWE,-XKF2.VWN))):2 sqrt(XKF7.VWN**2+XKF7.VWE**2) wrap_360(degrees(atan2(-XKF7.VWE,-XKF7.VWN))):2 - + EKF3 Solution Status XKF4[0].SS XKF4[1].SS XKF4[2].SS XKF4[0].SS XKF4[1].SS @@ -252,7 +252,7 @@ XKF4.SS - + EKF3 GPS Check Status XKF4[0].GPS XKF4[1].GPS XKF4[2].GPS XKF4[0].GPS XKF4[1].GPS @@ -260,13 +260,13 @@ XKF4.GPS - + EKF3 Optical Flow Innovations XKF5[0].FIX XKF5[0].FIY XKF5[0].AFI XKF5.FIX XKF5.FIY XKF5.AFI - + EKF3 Rangefinder Innovations XKF5[0].RI XKF5[1].RI XKF5[2].RI XKF5[0].RI XKF5[1].RI @@ -286,14 +286,14 @@ XKF4.PI - + EKF3 Error Scores XKF3[0].ErSc XKF3[1].ErSc XKF3[2].ErSc XKF4.PI:2 XKF3[0].ErSc XKF3[1].ErSc XKF4.PI:2 XKF3.ErSc XKF4.PI:2 - + EKF3 Relative Errors XKF3[0].RErr XKF3[1].RErr XKF3[2].RErr XKF4.PI:2 XKF3[0].RErr XKF3[1].RErr XKF4.PI:2 diff --git a/MAVProxy/tools/graphs/mavgraphs.xml b/MAVProxy/tools/graphs/mavgraphs.xml index 578ffa3282..4927c419a5 100644 --- a/MAVProxy/tools/graphs/mavgraphs.xml +++ b/MAVProxy/tools/graphs/mavgraphs.xml @@ -87,28 +87,28 @@ IMU.AccX IMU.AccY IMU.AccZ IMU2.AccX IMU2.AccY IMU2.AccZ - + Gyroscope Output degrees(RAW_IMU.xgyro*0.001) degrees(RAW_IMU.ygyro*0.001) degrees(RAW_IMU.zgyro*0.001) IMU[0].GyrX IMU[0].GyrY IMU[0].GyrZ IMU.GyrX IMU.GyrY IMU.GyrZ - + Gyroscope Two Output degrees(SCALED_IMU2.xgyro*0.001) degrees(SCALED_IMU2.ygyro*0.001) degrees(SCALED_IMU2.zgyro*0.001) IMU[1].GyrX IMU[1].GyrY IMU[1].GyrZ IMU2.GyrX IMU2.GyrY IMU2.GyrZ - + Gyroscope Three Output degrees(SCALED_IMU3.xgyro*0.001) degrees(SCALED_IMU3.ygyro*0.001) degrees(SCALED_IMU3.zgyro*0.001) IMU[2].GyrX IMU[2].GyrY IMU[2].GyrZ IMU3.GyrX IMU3.GyrY IMU3.GyrZ - + Gyroscope Comparison degrees(RAW_IMU.xgyro*0.001) degrees(RAW_IMU.ygyro*0.001) degrees(RAW_IMU.zgyro*0.001) @@ -252,6 +252,16 @@ RCOU.C5 RCOU.C6 RCOU.C7 RCOU.C8 + + + + RCOU.C5 RCOU.C6 RCOU.C7 RCOU.C8 + + + + + RCOU.C9 RCOU.C10 RCOU.C11 RCOU.C12 + First 4 RC inputs @@ -266,6 +276,13 @@ + + RC inputs 5-12 + + RCIN.C5 RCIN.C6 RCIN.C7 RCIN.C8 RCIN.C9 RCIN.C10 RCIN.C11 RCIN.C12 + + + First 8 RC inputs @@ -288,20 +305,6 @@ BARO.Alt RFND.Dist[0] - - This shows how well the pitch controller is tracking the desired pitch rate. -For a well tuned aircraft PIDP.Des should match the smoothed IMU.GyrY value. -If PIDP.I has a constant positive value then it means the aircraft is a bit tail heavy, and the integrator is learning the elevator offset needed to keep the aircraft level. If PIDP.I has a constant negative value then the aircraft is a bit nose heavy. -You should also check PIDP.D and look for signs of oscillation, in which case PTCH2SRV_D is too high. - PIDP.Des PIDP.P PIDP.I PIDP.D lowpass(degrees(IMU.GyrY),"gy",0.9) - - - - This shows how well the roll controller is tracking the desired roll rate. -For a well tuned aircraft PIDR.Des should match the smoothed IMU.GyrX value. -If PIDR.I has a constant positive value then it means the aircraft is trimmed to roll to the left side, and the integrator is learning the aileron offset needed to keep the aircraft level. If PIDR.I has a constant negative value then the aircraft is trimmed a bit to the right. - PIDR.Des PIDR.P PIDR.I PIDR.D lowpass(degrees(IMU.GyrX),"gx",0.9) - @@ -324,55 +327,55 @@ If PIDR.I has a constant positive value then it means the aircraft is trimmed to SCALED_IMU3.xmag expected_mag(GPS_RAW_INT,ATTITUDE).x SCALED_IMU3.ymag expected_mag(GPS_RAW_INT,ATTITUDE).y SCALED_IMU3.zmag expected_mag(GPS_RAW_INT,ATTITUDE).z - + MAG[0].MagX expected_mag_yaw(GPS,ATT,MAG[0]).x MAG[0].MagY expected_mag_yaw(GPS,ATT,MAG[0]).y MAG[0].MagZ expected_mag_yaw(GPS,ATT,MAG[0]).z MAG.MagX expected_mag_yaw(GPS,ATT,MAG).x MAG.MagY expected_mag_yaw(GPS,ATT,MAG).y MAG.MagZ expected_mag_yaw(GPS,ATT,MAG).z - + MAG[1].MagX expected_mag_yaw(GPS,ATT,MAG[1]).x MAG[1].MagY expected_mag_yaw(GPS,ATT,MAG[1]).y MAG[1].MagZ expected_mag_yaw(GPS,ATT,MAG[1]).z MAG2.MagX expected_mag_yaw(GPS,ATT,MAG2).x MAG2.MagY expected_mag_yaw(GPS,ATT,MAG2).y MAG2.MagZ expected_mag_yaw(GPS,ATT,MAG2).z - + MAG[2].MagX expected_mag_yaw(GPS,ATT,MAG[2]).x MAG[2].MagY expected_mag_yaw(GPS,ATT,MAG[2]).y MAG[2].MagZ expected_mag_yaw(GPS,ATT,MAG[2]).z MAG3.MagX expected_mag_yaw(GPS,ATT,MAG3).x MAG3.MagY expected_mag_yaw(GPS,ATT,MAG3).y MAG3.MagZ expected_mag_yaw(GPS,ATT,MAG3).z - + MAG[0].MagX expected_mag_yaw(GPS,NKF1,MAG[0]).x MAG[0].MagY expected_mag_yaw(GPS,NKF1,MAG[0]).y MAG[0].MagZ expected_mag_yaw(GPS,NKF1,MAG[0]).z MAG.MagX expected_mag_yaw(GPS,NKF1,MAG).x MAG.MagY expected_mag_yaw(GPS,NKF1,MAG).y MAG.MagZ expected_mag_yaw(GPS,NKF1,MAG).z - + MAG[1].MagX expected_mag_yaw(GPS,NKF1,MAG[1]).x MAG[1].MagY expected_mag_yaw(GPS,NKF1,MAG[1]).y MAG[1].MagZ expected_mag_yaw(GPS,NKF1,MAG[1]).z MAG2.MagX expected_mag_yaw(GPS,NKF1,MAG2).x MAG2.MagY expected_mag_yaw(GPS,NKF1,MAG2).y MAG2.MagZ expected_mag_yaw(GPS,NKF1,MAG2).z - + MAG[2].MagX expected_mag_yaw(GPS,NKF1,MAG[2]).x MAG[2].MagY expected_mag_yaw(GPS,NKF1,MAG[2]).y MAG[2].MagZ expected_mag_yaw(GPS,NKF1,MAG[2]).z MAG3.MagX expected_mag_yaw(GPS,NKF1,MAG3).x MAG3.MagY expected_mag_yaw(GPS,NKF1,MAG3).y MAG3.MagZ expected_mag_yaw(GPS,NKF1,MAG3).z - + MAG[0].MagX expected_mag_yaw(GPS,XKF1,MAG[0]).x MAG[0].MagY expected_mag_yaw(GPS,XKF1,MAG[0]).y MAG[0].MagZ expected_mag_yaw(GPS,XKF1,MAG[0]).z MAG.MagX expected_mag_yaw(GPS,XKF1,MAG).x MAG.MagY expected_mag_yaw(GPS,XKF1,MAG).y MAG.MagZ expected_mag_yaw(GPS,XKF1,MAG).z - + MAG[1].MagX expected_mag_yaw(GPS,XKF1,MAG[1]).x MAG[1].MagY expected_mag_yaw(GPS,XKF1,MAG[1]).y MAG[1].MagZ expected_mag_yaw(GPS,XKF1,MAG[1]).z MAG2.MagX expected_mag_yaw(GPS,XKF1,MAG2).x MAG2.MagY expected_mag_yaw(GPS,XKF1,MAG2).y MAG2.MagZ expected_mag_yaw(GPS,XKF1,MAG2).z - + MAG[2].MagX expected_mag_yaw(GPS,XKF1,MAG[2]).x MAG[2].MagY expected_mag_yaw(GPS,XKF1,MAG[2]).y MAG[2].MagZ expected_mag_yaw(GPS,XKF1,MAG[2]).z MAG3.MagX expected_mag_yaw(GPS,XKF1,MAG3).x MAG3.MagY expected_mag_yaw(GPS,XKF1,MAG3).y MAG3.MagZ expected_mag_yaw(GPS,XKF1,MAG3).z @@ -402,22 +405,22 @@ If PIDR.I has a constant positive value then it means the aircraft is trimmed to earth_field_error(GPS,XKF7).x earth_field_error(GPS,XKF7).y earth_field_error(GPS,XKF7).z - + PIDP.P PIDP.I PIDP.D - + PIDR.P PIDR.I PIDR.D - + PIDY.P PIDY.I PIDY.D - + PIDA.P PIDA.I PIDA.D @@ -475,27 +478,27 @@ If PIDR.I has a constant positive value then it means the aircraft is trimmed to distance_two(GPS,GPS2){GPS2.GMS==GPS.GMS} GPS2.Alt-GPS.Alt{GPS2.GMS==GPS.GMS} - + degrees(XKY0[0].Y0) degrees(XKY0[0].Y1) degrees(XKY0[0].Y2) degrees(XKY0[0].Y3) degrees(XKY0[0].Y4) degrees(XKY0[0].YC) - + degrees(XKY0[1].Y0) degrees(XKY0[1].Y1) degrees(XKY0[1].Y2) degrees(XKY0[1].Y3) degrees(XKY0[1].Y4) degrees(XKY0[1].YC) - + sqrt(XKY1[0].IVN0**2+XKY1[0].IVE0**2) sqrt(XKY1[0].IVN1**2+XKY1[0].IVE1**2) sqrt(XKY1[0].IVN2**2+XKY1[0].IVE2**2) sqrt(XKY1[0].IVN3**2+XKY1[0].IVE3**2) sqrt(XKY1[0].IVN4**2+XKY1[0].IVE4**2) ATT.Yaw:2 - + XKY0[0].W0 XKY0[0].W1 XKY0[0].W2 XKY0[0].W3 XKY0[0].W4 - + XKY0[1].W0 XKY0[1].W1 XKY0[1].W2 XKY0[1].W3 XKY0[1].W4 @@ -600,60 +603,44 @@ If PIDR.I has a constant positive value then it means the aircraft is trimmed to - + XKF4[100].SV XKF4[100].SP XKF4[100].SH XKF4[100].SM XKF4[100].SVT - + XKF4[101].SV XKF4[101].SP XKF4[101].SH XKF4[101].SM XKF4[101].SVT - + PIDR.Dmod PIDR.SRate:2 - + PIDP.Dmod PIDP.SRate:2 - - - ATRP[0].FF ATRP[0].FF0 - - - + - ATRP[1].FF ATRP[1].FF0 + PIDY.Dmod PIDY.SRate:2 - - - ATRP[0].P ATRP[0].D:2 - - - - - ATRP[1].P ATRP[1].D:2 - - - RCOU.C1 RCOU.C2 RCOU.C3 RCOU.C4 RCOU.C5 RCOU.C6 - + PIDP.Tar PIDP.Act - + PIDR.Act PIDR.Tar @@ -700,13 +687,13 @@ If PIDR.I has a constant positive value then it means the aircraft is trimmed to lowpass(IMU[0].AccZ,0,0.9) IMU[0].T:2 - + 0.3*PIDR.Act*AETR.SSx AETR.Ail*0.01 0.3*PIDR.Act*AETR.SS AETR.Ail*0.01 - + 0.3*PIDP.Act*AETR.SSy AETR.Elev*0.01 0.3*PIDP.Act*AETR.SS AETR.Elev*0.01 diff --git a/MAVProxy/tools/graphs/mavgraphs2.xml b/MAVProxy/tools/graphs/mavgraphs2.xml index d2819992b7..4c274ea341 100644 --- a/MAVProxy/tools/graphs/mavgraphs2.xml +++ b/MAVProxy/tools/graphs/mavgraphs2.xml @@ -84,7 +84,7 @@ RCOU.C5 RCOU.C6 RCOU.C7 RCOU.C8 RCOU.C9 RCOU.C10 RCOU.C11 RCOU.C12 - + RCOU.Ch5 RCOU.Ch6 RCOU.Ch7 RCOU.Ch8 RCOU.Ch9 RCOU.Ch10 RCOU.Ch11 RCOU.Ch12 RCOU.C5 RCOU.C6 RCOU.C7 RCOU.C8 RCOU.C9 RCOU.C10 RCOU.C11 RCOU.C12 @@ -157,13 +157,13 @@ STER.Achieved STER.Demanded - + RCOU.Ch5 RCOU.Ch7 RCOU.Ch9 RCOU.Ch11 RCOU.C5 RCOU.C7 RCOU.C9 RCOU.C11 - + RCOU.Ch6 RCOU.Ch8 RCOU.Ch10 RCOU.Ch12 RCOU.C6 RCOU.C8 RCOU.C10 RCOU.C12 @@ -192,17 +192,17 @@ degrees(IMU3.GyrX) degrees(IMU3.GyrY) degrees(IMU3.GyrZ) - + RCOU.C5 RCOU.C6 RCOU.C9 RCOU.C10 - + RCOU.C7 RCOU.C8 RCOU.C11 RCOU.C12 - + RCOU.C5+RCOU.C6+RCOU.C9+RCOU.C10 RCOU.C7+RCOU.C8+RCOU.C11+RCOU.C12 @@ -222,27 +222,22 @@ lowpass(max((GPS.Spd/(OF.flowY-OF.bodyY)),0)*cos(radians(ATT.Roll))*cos(radians(ATT.Pitch)),"flowheight",0.95) TERR.CHeight - - - RCOU.C5 RCOU.C6 RCOU.C8 RCOU.C11 RCOU.C12 - - max(min(cos(radians(ATT.Roll))*cos(radians(ATT.Pitch))*GPS.Spd/lowpass(ROF.Fx-ROF.By,"r",0.95),100),0) BARO.Alt - + (RCOU.C5+RCOU.C7+RCOU.C9+RCOU.C11)/4 (RCOU.C6+RCOU.C8+RCOU.C10+RCOU.C12)/4 - + 0.25*(SERVO_OUTPUT_RAW.servo5_raw+SERVO_OUTPUT_RAW.servo7_raw+SERVO_OUTPUT_RAW.servo9_raw+SERVO_OUTPUT_RAW.servo11_raw) 0.25*(SERVO_OUTPUT_RAW.servo6_raw+SERVO_OUTPUT_RAW.servo8_raw+SERVO_OUTPUT_RAW.servo10_raw+SERVO_OUTPUT_RAW.servo12_raw) - + 0.25*(SERVO_OUTPUT_RAW.servo5_raw+SERVO_OUTPUT_RAW.servo6_raw+SERVO_OUTPUT_RAW.servo9_raw+SERVO_OUTPUT_RAW.servo10_raw) 0.25*(SERVO_OUTPUT_RAW.servo7_raw+SERVO_OUTPUT_RAW.servo8_raw+SERVO_OUTPUT_RAW.servo11_raw+SERVO_OUTPUT_RAW.servo12_raw) @@ -289,7 +284,7 @@ TECS.sp TECS.spdem - + diff(GPS.TimeUS,"t")*1.0e-6 diff(GPS.GMS,"gt")*1.0e-3 @@ -354,44 +349,335 @@ gps_vel_body(GPS,ATT).x (OF.flowY-OF.bodyY)*RFND[0].Dist gps_vel_body(GPS,ATT).y (OF.flowX-OF.bodyX)*RFND[0].Dist*-1 - + - XKF2.AX XKF2.AY XKF2.AZ + PIQP.FF PIQP.P PIQP.I PIQP.D - - + + - PIQP.FF PIQP.P PIQP.I PIQP.D + PIQR.Dmod PIQR.SRate:2 + + + + + PIQP.Dmod PIQP.SRate:2 - + PIQR.FF PIQR.P PIQR.I PIQR.D - + PIQY.FF PIQY.P PIQY.I PIQY.D + + + + PIQY.Dmod PIQY.SRate:2 + - + PIQA.P PIQA.I PIQA.D - + PIDR.FF PIDR.P PIDR.I PIDR.D + + + + PIQR.Tar PIQR.Act + + + + + PIQY.Tar PIQY.Act + - + PIDP.FF PIDP.P PIDP.I PIDP.D + + + + PIQP.Act PIQP.Tar PIQP.FF+PIQP.P+PIQP.D:2 PIQP.Act*0.2:2 + + + + + PIQP.Tar PIQP.Act + - + PIDS.P PIDS.I PIDS.D + + + BAT[0].Curr BAT[0].Volt BAT[0].VoltR BAT[0].CurrTot:2 + + + + + ATRP[0].P ATRP[0].FF PIDR.Dmod ATRP[0].D:2 + + + + + ATRP[1].P ATRP[1].FF PIDP.Dmod ATRP[1].D:2 + + + + + ATRP[2].P ATRP[2].FF PIDY.Dmod ATRP[2].D:2 + + + + + PIDY.FF PIDY.P PIDY.I PIDY.D + + + + + PIDY.Tar PIDY.Act + + + + + 0.3*PIDY.Act*AETR.SS AETR.Rudd*0.01 + + + + + AERT.Perr MSG.Message + + + + + PIDR.SRate PIDP.SRate PIDY.SRate + + + + + IMU[0].GHz IMU[1].GHz IMU[2].GHz + IMU[0].GHz IMU[1].GHz + IMU[0].GHz + + + + + IMU[0].GH IMU[1].GH IMU[2].GH + IMU[0].GH IMU[1].GH + IMU[0].GH + + + + + IMU[0].AH IMU[1].AH IMU[2].AH + IMU[0].AH IMU[1].AH + IMU[0].AH + + + + + IMU[0].AHz IMU[1].AHz IMU[2].AHz + IMU[0].AHz IMU[1].AHz + IMU[0].AHz + + + + + degrees(IMU[0].GyrX) degrees(IMU[1].GyrX) degrees(IMU[2].GyrX) + degrees(IMU[0].GyrX) degrees(IMU[1].GyrX) + + + + + degrees(IMU[0].GyrY) degrees(IMU[1].GyrY) degrees(IMU[2].GyrY) + degrees(IMU[0].GyrY) degrees(IMU[1].GyrY) + + + + + degrees(IMU[0].GyrZ) degrees(IMU[1].GyrZ) degrees(IMU[2].GyrZ) + degrees(IMU[0].GyrZ) degrees(IMU[1].GyrZ) + + + + + IMU[0].AccX IMU[1].AccX IMU[2].AccX + IMU[0].AccX IMU[1].AccX + + + + + IMU[0].AccY IMU[1].AccY IMU[2].AccY + IMU[0].AccY IMU[1].AccY + + + + + IMU[0].AccZ IMU[1].AccZ IMU[2].AccZ + IMU[0].AccZ IMU[1].AccZ + + + + + FTN2[0].PkX FTN2[1].PkX FTN2[2].PkX + + + + + FTN[1].NF1 FTN[1].NF2 FTN[1].NF3 FTN[1].NF4 + + + + + PIDR.SRate PIDP.SRate PIDY.SRate + + + + + GPA[0].Delta GPA[1].Delta + GPA.Delta + + + + + sqrt(XKF1[0].VN**2+XKF1[0].VE**2) GPS.Spd + + + + + ATSC.AngPScX ATSC.AngPScY ATSC.AngPScZ + + + + + PIQR.SRate PIQP.SRate PIQY.SRate + + + + + NTUN.DVelX NTUN.DVelY NTUN.VelX NTUN.VelY + + + + + + QTUN.DAlt QTUN.Alt + + + + + ESC1.Curr+ESC2.Curr+ESC3.Curr+ESC4.Curr+ESC5.Curr + + + + + sqrt((IMU[0].AccX-IMU[1].AccX)**2+(IMU[0].AccY-IMU[1].AccY)**2+(IMU[0].AccZ-IMU[1].AccZ)**2) + + + + + AETR.Ail AETR.Elev AETR.Rudd AETR.Thr:2 + + + + + ATDE.Rate ATUN.Targ ATUN.Min ATUN.Max + + + + + 2.24*(TECS.sp) 2.24*(TECS.spdem) + + + + + 2.24*(GPS.Spd) 2.24*(ARSP.Airspeed) + + + + + GPS_RAW_INT.alt*0.001 BARO.Alt + + + + + PSC.TAX PSC.AX PSC.TAY PSC.AY + + + + + PSC.PX PSC.TPX PSC.PY PSC.TPY + + + + + PSC.VX PSC.TVX PSC.VY PSC.TVY + + + + + MAG.MagX-expected_mag_yaw(GPS,ATT,MAG).x MAG.MagY-expected_mag_yaw(GPS,ATT,MAG).y MAG.MagZ-expected_mag_yaw(GPS,ATT,MAG).z + + + + + MAG2.MagX-expected_mag_yaw(GPS,ATT,MAG2).x MAG2.MagY-expected_mag_yaw(GPS,ATT,MAG2).y MAG2.MagZ-expected_mag_yaw(GPS,ATT,MAG2).z + + + + + PTUN.TunVal PTUN.Param:2 + + + + + XKV1.V01 XKV1.V02 XKV1.V03 XKV1.V04 XKV1.V05 XKV1.V06 XKV1.V07 XKV1.V08 XKV1.V09 XKV1.V10 XKV1.V11 + + + + + XKV2.V12 XKV2.V13 XKV2.V14 XKV2.V15 XKV2.V16 XKV2.V17 XKV2.V18 XKV2.V19 XKV2.V20 XKV2.V21 XKV2.V22 XKV2.V23 + + + + + 3.28*(TECS.h) 3.28*(TECS.hdem) 3.28*(BARO.Alt) 3.28*(GPS.Alt):2 + + + + + PIQY.Act PIQY.Tar PIQY.FF+PIQY.P+PIQY.D:2 PIQY.Act*0.15:2 + + + + + delta(GPS.Alt,0,GPS.TimeUS) GPS.VZ*-1 + + + + + XKF1[0].VN XKF1[0].VE + + + + + GPS.GCrs wrap_360(degrees(atan2(XKF1[0].VE,XKF1[0].VN))) + + + + + ATT.DesPitch:2 BAT.Curr CTUN.ThO CTUN.As BARO.Alt + +