ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.75k stars 17.2k forks source link

Flap_Auto and Flaperons broken in Full House wing #8009

Closed Ryanf55 closed 5 years ago

Ryanf55 commented 6 years ago

Issue details

The airframe has four wing servos, each on their own servo output port on the pixhawk. Channel list: Ch1 : Right Ail Ch2 : Left Ail Ch7: Right Flap Ch8: Left Flap

Goal: 1) Achieve full span ailerons, with 30% throw on the inner flap surfaces 2) Achieve flaps on the inner flap surface.

Issue: On the flap outputs, only one flap works. The other stays at trim value. I have notices this as well setting the output to flaperon, but will only focus on the flap output here.

How to produce the problem: Enable Aileron outputs on two channels. Enable "Flap-Auto" to channels 7 and 8 Enable Flap_in_channel to channel #5. Ensure mode is manual. Toggle 3 position flap input switch, and observe only 1 flap output.

Version

v3.80

Platform

Plane

Airframe type

What type of airframe (flying wing, glider, hex, Y6, octa etc) Conventional plane. 4 servo wing, dual elevators, single rudder, single motor

Hardware type

Pixhawk

Logs

servo_outs

note: I could not attach the .param file. Please advise. For now, see below. The important parameters are in bold.

NOTE: 3/25/2018 12:02:31 AM Plane: Recon

ACRO_LOCKING,0 ACRO_PITCH_RATE,180 ACRO_ROLL_RATE,180 ADSB_ENABLE,0 AFS_ENABLE,0 AHRS_COMP_BETA,0.1 AHRS_EKF_TYPE,2 AHRS_GPS_GAIN,1 AHRS_GPS_MINSATS,6 AHRS_GPS_USE,1 AHRS_ORIENTATION,20 AHRS_RP_P,0.2 AHRS_TRIM_X,-0.06196698 AHRS_TRIM_Y,-0.0217311 AHRS_TRIM_Z,0 AHRS_WIND_MAX,0 AHRS_YAW_P,0.2 ALT_CTRL_ALG,0 ALT_HOLD_FBWCM,0 ALT_HOLD_RTL,10000 ALT_OFFSET,0 ARMING_ACCTHRESH,0.75 ARMING_CHECK,0 ARMING_REQUIRE,1 ARMING_RUDDER,1 ARMING_VOLT_MIN,0 ARMING_VOLT2_MIN,0 ARSPD_AUTOCAL,0 ARSPD_BUS,1 ARSPD_FBW_MAX,29 ARSPD_FBW_MIN,10 ARSPD_OFFSET,0 ARSPD_PIN,15 ARSPD_PSI_RANGE,1 ARSPD_RATIO,1.9936 ARSPD_SKIP_CAL,0 ARSPD_TUBE_ORDER,2 ARSPD_TYPE,1 ARSPD_USE,0 AUTO_FBW_STEER,0 AUTOTUNE_LEVEL,6 AVD_ENABLE,0 BATT_AMP_OFFSET,0 BATT_AMP_PERVOLT,18.0018 BATT_CAPACITY,3300 BATT_CURR_PIN,-1 BATT_LOW_TIMER,10 BATT_LOW_TYPE,0 BATT_MONITOR,4 BATT_SERIAL_NUM,-1 BATT_VOLT_MULT,10.10101 BATT_VOLT_PIN,-1 BATT_WATT_MAX,0 BATT2_AMP_OFFSET,0 BATT2_AMP_PERVOL,17 BATT2_CAPACITY,3300 BATT2_CURR_PIN,3 BATT2_MONITOR,0 BATT2_SERIAL_NUM,-1 BATT2_VOLT_MULT,10.1 BATT2_VOLT_PIN,2 BATT2_WATT_MAX,0 BRD_IMU_TARGTEMP,-1 BRD_IO_ENABLE,1 BRD_PWM_COUNT,4 BRD_SAFETY_MASK,0 BRD_SAFETYENABLE,1 BRD_SBUS_OUT,0 BRD_SER1_RTSCTS,2 BRD_SER2_RTSCTS,2 BRD_SERIAL_NUM,0 BRD_TYPE,2 BTN_ENABLE,0 CAM_DURATION,10 CAM_FEEDBACK_PIN,-1 CAM_FEEDBACK_POL,1 CAM_MAX_ROLL,0 CAM_MIN_INTERVAL,0 CAM_RELAY_ON,1 CAM_SERVO_OFF,1100 CAM_SERVO_ON,1300 CAM_TRIGG_DIST,0 CAM_TRIGG_TYPE,0 CAN_D1_PROTOCOL,1 CAN_D2_PROTOCOL,1 CAN_P1_DRIVER,0 CAN_P2_DRIVER,0 CHUTE_CHAN,0 CHUTE_ENABLED,0 CLI_ENABLED,0 COMPASS_AUTODEC,1 COMPASS_CAL_FIT,16 COMPASS_DEC,0 COMPASS_DEV_ID,131594 COMPASS_DEV_ID2,0 COMPASS_DEV_ID3,0 COMPASS_DIA_X,0.9734734 COMPASS_DIA_Y,1.00736 COMPASS_DIA_Z,1.028632 COMPASS_DIA2_X,0 COMPASS_DIA2_Y,0 COMPASS_DIA2_Z,0 COMPASS_DIA3_X,0 COMPASS_DIA3_Y,0 COMPASS_DIA3_Z,0 COMPASS_EXTERN2,0 COMPASS_EXTERN3,0 COMPASS_EXTERNAL,1 COMPASS_LEARN,0 COMPASS_MOT_X,0 COMPASS_MOT_Y,0 COMPASS_MOT_Z,0 COMPASS_MOT2_X,0 COMPASS_MOT2_Y,0 COMPASS_MOT2_Z,0 COMPASS_MOT3_X,0 COMPASS_MOT3_Y,0 COMPASS_MOT3_Z,0 COMPASS_MOTCT,0 COMPASS_ODI_X,0.09698174 COMPASS_ODI_Y,0.013214 COMPASS_ODI_Z,0.01945965 COMPASS_ODI2_X,0 COMPASS_ODI2_Y,0 COMPASS_ODI2_Z,0 COMPASS_ODI3_X,0 COMPASS_ODI3_Y,0 COMPASS_ODI3_Z,0 COMPASS_OFFS_MAX,850 COMPASS_OFS_X,6.319794 COMPASS_OFS_Y,-238.0609 COMPASS_OFS_Z,-40.0101 COMPASS_OFS2_X,0 COMPASS_OFS2_Y,0 COMPASS_OFS2_Z,0 COMPASS_OFS3_X,0 COMPASS_OFS3_Y,0 COMPASS_OFS3_Z,0 COMPASS_ORIENT,6 COMPASS_ORIENT2,0 COMPASS_ORIENT3,0 COMPASS_PRIMARY,0 COMPASS_TYPEMASK,4096 COMPASS_USE,1 COMPASS_USE2,1 COMPASS_USE3,0 CRASH_ACC_THRESH,0 CRASH_DETECT,0 DSPOILR_RUD_RATE,100 EK2_ABIAS_P_NSE,0.005 EK2_ACC_P_NSE,0.6 EK2_ALT_M_NSE,3 EK2_ALT_SOURCE,0 EK2_BCN_DELAY,50 EK2_BCN_I_GTE,500 EK2_BCN_M_NSE,1 EK2_CHECK_SCALE,150 EK2_EAS_I_GATE,400 EK2_EAS_M_NSE,1.4 EK2_ENABLE,1 EK2_FLOW_DELAY,10 EK2_FLOW_I_GATE,300 EK2_FLOW_M_NSE,0.25 EK2_GBIAS_P_NSE,0.0001 EK2_GLITCH_RAD,25 EK2_GPS_CHECK,31 EK2_GPS_DELAY,220 EK2_GPS_TYPE,0 EK2_GSCL_P_NSE,0.0005 EK2_GYRO_P_NSE,0.03 EK2_HGT_DELAY,60 EK2_HGT_I_GATE,500 EK2_IMU_MASK,3 EK2_LOG_MASK,1 EK2_MAG_CAL,0 EK2_MAG_I_GATE,300 EK2_MAG_M_NSE,0.05 EK2_MAG_MASK,0 EK2_MAGB_P_NSE,0.0001 EK2_MAGE_P_NSE,0.001 EK2_MAX_FLOW,2.5 EK2_NOAID_M_NSE,10 EK2_OGN_HGT_MASK,0 EK2_POS_I_GATE,500 EK2_POSNE_M_NSE,1 EK2_RNG_I_GATE,500 EK2_RNG_M_NSE,0.5 EK2_RNG_USE_HGT,-1 EK2_RNG_USE_SPD,2 EK2_TAU_OUTPUT,25 EK2_TERR_GRAD,0.1 EK2_VEL_I_GATE,500 EK2_VELD_M_NSE,0.7 EK2_VELNE_M_NSE,0.5 EK2_WIND_P_NSE,0.1 EK2_WIND_PSCALE,0.5 EK2_YAW_I_GATE,300 EK2_YAW_M_NSE,0.5 EK3_ENABLE,0 FBWA_TDRAG_CHAN,0 FBWB_CLIMB_RATE,2 FBWB_ELEV_REV,0 FENCE_ACTION,0 FENCE_AUTOENABLE,0 FENCE_CHANNEL,0 FENCE_MAXALT,0 FENCE_MINALT,0 FENCE_RET_RALLY,0 FENCE_RETALT,0 FENCE_TOTAL,0 FLAP_1_PERCNT,50 FLAP_1_SPEED,0 FLAP_2_PERCNT,75 FLAP_2_SPEED,0 FLAP_IN_CHANNEL,5 FLAP_SLEWRATE,50 FLOW_BUS_ID,0 FLOW_ENABLE,0 FLOW_FXSCALER,0 FLOW_FYSCALER,0 FLOW_ORIENT_YAW,0 FLOW_POS_X,0 FLOW_POS_Y,0 FLOW_POS_Z,0 FLTMODE_CH,8 FLTMODE1,10 FLTMODE2,11 FLTMODE3,5 FLTMODE4,5 FLTMODE5,0 FLTMODE6,0 FORMAT_VERSION,13 FS_BATT_MAH,0 FS_BATT_VOLTAGE,0 FS_GCS_ENABL,0 FS_LONG_ACTN,0 FS_LONG_TIMEOUT,5 FS_SHORT_ACTN,0 FS_SHORT_TIMEOUT,1.5 GCS_PID_MASK,0 GLIDE_SLOPE_MIN,15 GLIDE_SLOPE_THR,5 GND_ABS_PRESS,81368.12 GND_ABS_PRESS2,0 GND_ABS_PRESS3,0 GND_ALT_OFFSET,0 GND_EXT_BUS,-1 GND_PRIMARY,0 GND_TEMP,0 GPS_AUTO_CONFIG,1 GPS_AUTO_SWITCH,1 GPS_BLEND_MASK,5 GPS_BLEND_TC,10 GPS_DELAY_MS,0 GPS_DELAY_MS2,0 GPS_GNSS_MODE,0 GPS_GNSS_MODE2,0 GPS_INJECT_TO,127 GPS_MIN_DGPS,100 GPS_MIN_ELEV,-100 GPS_NAVFILTER,8 GPS_POS1_X,0 GPS_POS1_Y,0 GPS_POS1_Z,0 GPS_POS2_X,0 GPS_POS2_Y,0 GPS_POS2_Z,0 GPS_RATE_MS,200 GPS_RATE_MS2,200 GPS_RAW_DATA,0 GPS_SAVE_CFG,0 GPS_SBAS_MODE,2 GPS_SBP_LOGMASK,-256 GPS_TYPE,1 GPS_TYPE2,0 GROUND_STEER_ALT,0 GROUND_STEER_DPS,90 HIL_ERR_LIMIT,5 HIL_MODE,0 HIL_SERVOS,0 ICE_ENABLE,0 INITIAL_MODE,0 INS_ACC_BODYFIX,2 INS_ACC_ID,1246218 INS_ACC2_ID,1114634 INS_ACC2OFFS_X,0.52974 INS_ACC2OFFS_Y,0.283601 INS_ACC2OFFS_Z,0.9582105 INS_ACC2SCAL_X,0.9974843 INS_ACC2SCAL_Y,1.021152 INS_ACC2SCAL_Z,1.022285 INS_ACC3_ID,0 INS_ACC3OFFS_X,0 INS_ACC3OFFS_Y,0 INS_ACC3OFFS_Z,0 INS_ACC3SCAL_X,0 INS_ACC3SCAL_Y,0 INS_ACC3SCAL_Z,0 INS_ACCEL_FILTER,20 INS_ACCOFFS_X,-0.03383425 INS_ACCOFFS_Y,-0.04860296 INS_ACCOFFS_Z,0.04090341 INS_ACCSCAL_X,0.9959745 INS_ACCSCAL_Y,0.9991042 INS_ACCSCAL_Z,0.9941459 INS_FAST_SAMPLE,0 INS_GYR_CAL,1 INS_GYR_ID,2163722 INS_GYR2_ID,2228490 INS_GYR2OFFS_X,-0.08649307 INS_GYR2OFFS_Y,0.07406574 INS_GYR2OFFS_Z,-0.07341248 INS_GYR3_ID,0 INS_GYR3OFFS_X,0 INS_GYR3OFFS_Y,0 INS_GYR3OFFS_Z,0 INS_GYRO_FILTER,20 INS_GYROFFS_X,0.0008620299 INS_GYROFFS_Y,0.008950936 INS_GYROFFS_Z,-0.003815784 INS_POS1_X,0 INS_POS1_Y,0 INS_POS1_Z,0 INS_POS2_X,0 INS_POS2_Y,0 INS_POS2_Z,0 INS_POS3_X,0 INS_POS3_Y,0 INS_POS3_Z,0 INS_PRODUCT_ID,0 INS_STILL_THRESH,0.1 INS_TRIM_OPTION,1 INS_USE,1 INS_USE2,1 INS_USE3,0 INVERTEDFLT_CH,0 KFF_RDDRMIX,0.3 KFF_THR2PTCH,0 LAND_ABORT_DEG,0 LAND_ABORT_THR,0 LAND_DISARMDELAY,20 LAND_DS_ABORTALT,0 LAND_DS_APP_EXT,50 LAND_DS_ARSP_MAX,15 LAND_DS_ARSP_MIN,10 LAND_DS_D,0 LAND_DS_ELEV_PWM,1500 LAND_DS_I,0 LAND_DS_IMAX,0 LAND_DS_L1,30 LAND_DS_L1_I,0 LAND_DS_L1_TCON,0.4 LAND_DS_P,0 LAND_DS_SLEW_SPD,0.5 LAND_DS_SLOPE_A,1 LAND_DS_SLOPE_B,1 LAND_DS_V_DWN,2 LAND_DS_V_FWD,1 LAND_DS_YAW_LIM,10 LAND_FLAP_PERCNT,30 LAND_FLARE_ALT,3 LAND_FLARE_SEC,2 LAND_PF_ALT,10 LAND_PF_ARSPD,0 LAND_PF_SEC,6 LAND_PITCH_CD,0 LAND_SLOPE_RCALC,2 LAND_THEN_NEUTRL,0 LAND_THR_SLEW,0 LAND_TYPE,0 LEVEL_ROLL_LIMIT,5 LIM_PITCH_MAX,2000 LIM_PITCH_MIN,-2500 LIM_ROLL_CD,4500 LOG_BACKEND_TYPE,1 LOG_BITMASK,65535 LOG_DISARMED,0 LOG_FILE_BUFSIZE,16 LOG_FILE_DSRMROT,0 LOG_REPLAY,0 MAG_ENABLE,1 MANUAL_RCMASK,0 MIN_GNDSPD_CM,0 MIS_RESTART,0 MIS_TOTAL,6 MIXING_GAIN,0.5 MIXING_OFFSET,0 MNT_ANGMAX_PAN,4500 MNT_ANGMAX_ROL,4500 MNT_ANGMAX_TIL,4500 MNT_ANGMIN_PAN,-4500 MNT_ANGMIN_ROL,-4500 MNT_ANGMIN_TIL,-4500 MNT_DEFLT_MODE,3 MNT_JSTICK_SPD,0 MNT_LEAD_PTCH,0 MNT_LEAD_RLL,0 MNT_NEUTRAL_X,0 MNT_NEUTRAL_Y,0 MNT_NEUTRAL_Z,0 MNT_RC_IN_PAN,0 MNT_RC_IN_ROLL,0 MNT_RC_IN_TILT,0 MNT_RETRACT_X,0 MNT_RETRACT_Y,0 MNT_RETRACT_Z,0 MNT_STAB_PAN,0 MNT_STAB_ROLL,0 MNT_STAB_TILT,0 MNT_TYPE,0 NAV_CONTROLLER,1 NAVL1_DAMPING,0.75 NAVL1_LIM_BANK,0 NAVL1_PERIOD,20 NAVL1_XTRACK_I,0.02 NTF_BUZZ_ENABLE,1 NTF_DISPLAY_TYPE,0 NTF_LED_BRIGHT,3 NTF_LED_OVERRIDE,0 NTF_OREO_THEME,0 OVERRIDE_CHAN,0 OVERRIDE_SAFETY,1 PTCH2SRV_D,0.02 PTCH2SRV_FF,0 PTCH2SRV_I,0.15 PTCH2SRV_IMAX,3000 PTCH2SRV_P,0.6 PTCH2SRV_RLL,1 PTCH2SRV_RMAX_DN,0 PTCH2SRV_RMAX_UP,0 PTCH2SRV_TCONST,0.5 Q_ENABLE,0 RALLY_INCL_HOME,0 RALLY_LIMIT_KM,5 RALLY_TOTAL,0 RC1_DZ,30 RC1_MAX,2006 RC1_MIN,982 RC1_REVERSED,0 RC1_TRIM,1498 RC10_DZ,0 RC10_MAX,1900 RC10_MIN,1100 RC10_REVERSED,0 RC10_TRIM,1494 RC11_DZ,0 RC11_MAX,1900 RC11_MIN,1100 RC11_REVERSED,0 RC11_TRIM,1494 RC12_DZ,0 RC12_MAX,1900 RC12_MIN,1100 RC12_REVERSED,0 RC12_TRIM,1494 RC13_DZ,0 RC13_MAX,1900 RC13_MIN,1100 RC13_REVERSED,0 RC13_TRIM,874 RC14_DZ,0 RC14_MAX,1900 RC14_MIN,1100 RC14_REVERSED,0 RC14_TRIM,874 RC15_DZ,0 RC15_MAX,1900 RC15_MIN,1100 RC15_REVERSED,0 RC15_TRIM,874 RC16_DZ,0 RC16_MAX,1900 RC16_MIN,1100 RC16_REVERSED,0 RC16_TRIM,874 RC2_DZ,30 RC2_MAX,2006 RC2_MIN,982 RC2_REVERSED,0 RC2_TRIM,1494 RC3_DZ,30 RC3_MAX,2006 RC3_MIN,982 RC3_REVERSED,0 RC3_TRIM,982 RC4_DZ,30 RC4_MAX,2006 RC4_MIN,982 RC4_REVERSED,0 RC4_TRIM,1495 RC5_DZ,0 RC5_MAX,2006 RC5_MIN,982 RC5_REVERSED,0 RC5_TRIM,1494 RC6_DZ,0 RC6_MAX,2000 RC6_MIN,1000 RC6_REVERSED,0 RC6_TRIM,1494 RC7_DZ,0 RC7_MAX,2000 RC7_MIN,1000 RC7_REVERSED,0 RC7_TRIM,1494 RC8_DZ,0 RC8_MAX,1900 RC8_MIN,1100 RC8_REVERSED,0 RC8_TRIM,1494 RC9_DZ,0 RC9_MAX,1900 RC9_MIN,1100 RC9_REVERSED,0 RC9_TRIM,1494 RCMAP_PITCH,2 RCMAP_ROLL,1 RCMAP_THROTTLE,3 RCMAP_YAW,4 RELAY_DEFAULT,0 RELAY_PIN,54 RELAY_PIN2,55 RELAY_PIN3,-1 RELAY_PIN4,-1 RLL2SRV_D,0.02 RLL2SRV_FF,0 RLL2SRV_I,0.1 RLL2SRV_IMAX,3000 RLL2SRV_P,0.6 RLL2SRV_RMAX,0 RLL2SRV_TCONST,0.5 RNGFND_ADDR,0 RNGFND_FUNCTION,0 RNGFND_GNDCLEAR,10 RNGFND_LANDING,0 RNGFND_MAX_CM,700 RNGFND_MIN_CM,20 RNGFND_OFFSET,0 RNGFND_ORIENT,25 RNGFND_PIN,-1 RNGFND_POS_X,0 RNGFND_POS_Y,0 RNGFND_POS_Z,0 RNGFND_PWRRNG,0 RNGFND_RMETRIC,1 RNGFND_SCALING,3 RNGFND_SETTLE,0 RNGFND_STOP_PIN,-1 RNGFND_TYPE,0 RNGFND2_ADDR,0 RNGFND2_FUNCTION,0 RNGFND2_GNDCLEAR,10 RNGFND2_MAX_CM,700 RNGFND2_MIN_CM,20 RNGFND2_OFFSET,0 RNGFND2_ORIENT,25 RNGFND2_PIN,-1 RNGFND2_POS_X,0 RNGFND2_POS_Y,0 RNGFND2_POS_Z,0 RNGFND2_RMETRIC,1 RNGFND2_SCALING,3 RNGFND2_SETTLE,0 RNGFND2_STOP_PIN,-1 RNGFND2_TYPE,0 RPM_MAX,100000 RPM_MIN,10 RPM_MIN_QUAL,0.5 RPM_PIN,54 RPM_SCALING,1 RPM_TYPE,0 RPM2_PIN,-1 RPM2_SCALING,1 RPM2_TYPE,0 RSSI_ANA_PIN,0 RSSI_CHAN_HIGH,2000 RSSI_CHAN_LOW,1000 RSSI_CHANNEL,0 RSSI_PIN_HIGH,5 RSSI_PIN_LOW,0 RSSI_TYPE,0 RST_MISSION_CH,0 RST_SWITCH_CH,0 RTL_AUTOLAND,0 RTL_RADIUS,0 RUDD_DT_GAIN,10 RUDDER_ONLY,0 SCALING_SPEED,15 SCHED_DEBUG,0 SCHED_LOOP_RATE,50 SERIAL0_BAUD,115 SERIAL0_PROTOCOL,1 SERIAL1_BAUD,57 SERIAL1_PROTOCOL,1 SERIAL2_BAUD,57 SERIAL2_PROTOCOL,1 SERIAL3_BAUD,38 SERIAL3_PROTOCOL,5 SERIAL4_BAUD,38 SERIAL4_PROTOCOL,5 SERIAL5_BAUD,57 SERIAL5_PROTOCOL,-1 SERVO_AUTO_TRIM,0 SERVO_RATE,50 SERVO1_FUNCTION,4 SERVO1_MAX,1900 SERVO1_MIN,800 SERVO1_REVERSED,1 SERVO1_TRIM,1500 SERVO10_FUNCTION,0 SERVO10_MAX,1900 SERVO10_MIN,1100 SERVO10_REVERSED,0 SERVO10_TRIM,1500 SERVO11_FUNCTION,0 SERVO11_MAX,1900 SERVO11_MIN,1100 SERVO11_REVERSED,0 SERVO11_TRIM,1500 SERVO12_FUNCTION,0 SERVO12_MAX,1900 SERVO12_MIN,1100 SERVO12_REVERSED,0 SERVO12_TRIM,1500 SERVO13_FUNCTION,0 SERVO13_MAX,1900 SERVO13_MIN,1100 SERVO13_REVERSED,0 SERVO13_TRIM,1500 SERVO14_FUNCTION,0 SERVO14_MAX,1900 SERVO14_MIN,1100 SERVO14_REVERSED,0 SERVO14_TRIM,1500 SERVO15_FUNCTION,0 SERVO15_MAX,1900 SERVO15_MIN,1100 SERVO15_REVERSED,0 SERVO15_TRIM,1500 SERVO16_FUNCTION,0 SERVO16_MAX,1900 SERVO16_MIN,1100 SERVO16_REVERSED,0 SERVO16_TRIM,1500 SERVO2_FUNCTION,19 SERVO2_MAX,1900 SERVO2_MIN,1100 SERVO2_REVERSED,0 SERVO2_TRIM,1450 SERVO3_FUNCTION,70 SERVO3_MAX,1900 SERVO3_MIN,1100 SERVO3_REVERSED,0 SERVO3_TRIM,1100 SERVO4_FUNCTION,4 SERVO4_MAX,1900 SERVO4_MIN,1100 SERVO4_REVERSED,1 SERVO4_TRIM,1440 SERVO5_FUNCTION,19 SERVO5_MAX,1900 SERVO5_MIN,1100 SERVO5_REVERSED,1 SERVO5_TRIM,1600 SERVO6_FUNCTION,21 SERVO6_MAX,1900 SERVO6_MIN,1100 SERVO6_REVERSED,1 SERVO6_TRIM,1500 SERVO7_FUNCTION,3 SERVO7_MAX,1600 SERVO7_MIN,1400 SERVO7_REVERSED,0 SERVO7_TRIM,1500 SERVO8_FUNCTION,3 SERVO8_MAX,1600 SERVO8_MIN,1400 SERVO8_REVERSED,0 SERVO8_TRIM,1500 SERVO9_FUNCTION,0 SERVO9_MAX,1900 SERVO9_MIN,1100 SERVO9_REVERSED,0 SERVO9_TRIM,1500 SOAR_ENABLE,0 SR0_ADSB,5 SR0_EXT_STAT,2 SR0_EXTRA1,4 SR0_EXTRA2,4 SR0_EXTRA3,2 SR0_PARAMS,10 SR0_POSITION,2 SR0_RAW_CTRL,1 SR0_RAW_SENS,2 SR0_RC_CHAN,2 SR1_ADSB,5 SR1_EXT_STAT,1 SR1_EXTRA1,1 SR1_EXTRA2,1 SR1_EXTRA3,1 SR1_PARAMS,10 SR1_POSITION,1 SR1_RAW_CTRL,1 SR1_RAW_SENS,1 SR1_RC_CHAN,1 SR2_ADSB,5 SR2_EXT_STAT,1 SR2_EXTRA1,1 SR2_EXTRA2,1 SR2_EXTRA3,1 SR2_PARAMS,10 SR2_POSITION,1 SR2_RAW_CTRL,1 SR2_RAW_SENS,1 SR2_RC_CHAN,1 SR3_ADSB,5 SR3_EXT_STAT,1 SR3_EXTRA1,1 SR3_EXTRA2,1 SR3_EXTRA3,1 SR3_PARAMS,10 SR3_POSITION,1 SR3_RAW_CTRL,1 SR3_RAW_SENS,1 SR3_RC_CHAN,1 STAB_PITCH_DOWN,2 STALL_PREVENTION,1 STAT_BOOTCNT,57 STAT_FLTTIME,1333 STAT_RESET,51756240 STAT_RUNTIME,162877 STEER2SRV_D,0.005 STEER2SRV_DRTFCT,10 STEER2SRV_DRTMIN,4500 STEER2SRV_DRTSPD,0 STEER2SRV_FF,0 STEER2SRV_I,0.2 STEER2SRV_IMAX,1500 STEER2SRV_MINSPD,1 STEER2SRV_P,1.8 STEER2SRV_TCONST,0.75 STICK_MIXING,1 SYS_NUM_RESETS,57 SYSID_ENFORCE,0 SYSID_MYGCS,255 SYSID_SW_TYPE,0 SYSID_THISMAV,1 TECS_APPR_SMAX,0 TECS_CLMB_MAX,5 TECS_HGT_OMEGA,3 TECS_INTEG_GAIN,0.1 TECS_LAND_ARSPD,-1 TECS_LAND_DAMP,0.5 TECS_LAND_IGAIN,0 TECS_LAND_PDAMP,0 TECS_LAND_PMAX,10 TECS_LAND_SINK,0.25 TECS_LAND_SPDWGT,-1 TECS_LAND_SRC,0 TECS_LAND_TCONST,2 TECS_LAND_TDAMP,0 TECS_LAND_THR,-1 TECS_PITCH_MAX,0 TECS_PITCH_MIN,0 TECS_PTCH_DAMP,0 TECS_RLL2THR,10 TECS_SINK_MAX,5 TECS_SINK_MIN,2 TECS_SPD_OMEGA,2 TECS_SPDWEIGHT,1 TECS_SYNAIRSPEED,0 TECS_THR_DAMP,0.5 TECS_TIME_CONST,5 TECS_TKOFF_IGAIN,0 TECS_VERT_ACC,7 TELEM_DELAY,0 TERRAIN_ENABLE,1 TERRAIN_FOLLOW,0 TERRAIN_LOOKAHD,2000 TERRAIN_SPACING,100 THR_FAILSAFE,0 THR_FS_VALUE,950 THR_MAX,100 THR_MIN,0 THR_PASS_STAB,0 THR_SLEWRATE,100 THR_SUPP_MAN,0 THROTTLE_NUDGE,1 TKOFF_FLAP_PCNT,0 TKOFF_PLIM_SEC,2 TKOFF_ROTATE_SPD,0 TKOFF_TDRAG_ELEV,0 TKOFF_TDRAG_SPD1,0 TKOFF_THR_DELAY,2 TKOFF_THR_MAX,0 TKOFF_THR_MINACC,0 TKOFF_THR_MINSPD,0 TKOFF_THR_SLEW,0 TRIM_ARSPD_CM,1100 TRIM_AUTO,0 TRIM_PITCH_CD,0 TRIM_RC_AT_START,0 TRIM_THROTTLE,45 TUNE_CHAN,0 TUNE_CHAN_MAX,2000 TUNE_CHAN_MIN,1000 TUNE_ERR_THRESH,0.15 TUNE_MODE_REVERT,1 TUNE_PARAM,0 TUNE_RANGE,2 TUNE_SELECTOR,0 USE_REV_THRUST,2 WP_LOITER_RAD,60 WP_MAX_RADIUS,0 WP_RADIUS,90 YAW2SRV_DAMP,0 YAW2SRV_IMAX,1500 YAW2SRV_INT,0 YAW2SRV_RLL,1 YAW2SRV_SLIP,0

Ryanf55 commented 6 years ago

Hello,

It's been a week. I was curious if anyone could help me out, maybe showing where the flaperon mixer code is so I can get a better understanding how it works.

Thanks!

magicrub commented 6 years ago

Hi @Ryanf55 sorry we haven't responded here yet. If you want to get a jump start on here, the flaperon code is in a couple places. The flaperon code is not very organized, it's sprinkled into the mixer. Basically, just search the code for "flaperon": trims: https://github.com/ArduPilot/ardupilot/blob/master/ArduPlane/radio.cpp#L331

The big set_servos() function does a bunch of last-minute tweaks that are different depending on flight modes. It calls set_servo_flaps() which computes the flaps stuff but then calls flaperon_update() which adjusts it further to add the flaperon on top of it. They all cascade.

Ryanf55 commented 6 years ago

Thanks!

I noticed that the non-working flap had a very binary approach. It would be pinned to one side depending on whether I had the flaps up or down, even though the input was on a slider. Would you like me to take a video of it?

The geometry of the plane dictates that neutral position is around 2000us, up aileron is 2200us, and full down flap is 1000us.

Could the manual flap percent and auto flap percent be causing an issue for this geometry? line if (abs(manual_flap_percent) > auto_flap_percent) { auto_flap_percent = manual_flap_percent; }

Also regarding the output, I noticed that the mixer takes the aileron and adds 45*flaps. Does that fix the ratio of flap to aileron travels? On this plane, the flaps need 30% aileron mixed with full down flap throw.

line 181: float flaperon_left = constrain_float(aileron + flap_percent * 45, -4500, 4500);

magicrub commented 6 years ago

@Ryanf55 yes, sounds like a video will help.

Ryanf55 commented 6 years ago

Uploading videos now. I deduced a large part of the problems to this: When changing servoN_Function's value, a restart of the pixhawk is required for full changes to take effect.

I was able to successfully get servoN working for the flaps in both flaps (servoN_function = 3) and flaperons (servoN_function = 24/25), however the rates are a bit odd. I'd like to request some additional logic be implemented. If you think I should make this next part a separate feature request, I will.

1)When servoN_function is set to 3, make the servoN_trim be 50% flap value. Dividing the max and min up into 1 range works, but could be better by using the trim value as a 50% marker. This would not require much change, however it would make the flaps travel down in a more synced path. Ideally, the flaps are on a custom curve, but that implementation would be too complicated for most users.

2) On the flaperon code, add a range that specifies the amount of aileron to mix. Basically, change from using servoN_max and min to another set of values. This is useful on a full house wing when full span ailerons are desired on the inner flaps, however a truncated range of throw is used for ailerons compared to full flaps.

Video 1: Overview of plane in passthrough and demo of how the flaps should function https://youtu.be/HUT4G3MPD8k

Video 2: Flaps in mode 2 with zero output. This is prior to a restart. https://youtu.be/8xb5su8XfZ4

Video 3: https://youtu.be/8xb5su8XfZ4

Video 4: processing

Naterater commented 5 years ago

@Ryanf55, Considering the original post title and most of the general issues here have been solved, are you alright if I close this? Crow flap features have also been recently merged, so you may want to check them out.

If you would like to continue the discussion of code issues and limitations, I think these topics might be a good discussion place: https://github.com/ArduPilot/ardupilot/issues/10036

Ryanf55 commented 5 years ago

Sure you can close it. I think one of the important takeaways is the documentation could be updated to tell people to restart the autopilot after writing SERVON_FUNCTION values.