Remove stm32 boards (#3585)
Issues due date / Add labels to issues (push) Has been cancelled
Doxygen / build (push) Has been cancelled

- Remove boards using the stm32 arch, deprecated in favour of ChibiOS.
- Remove the airframe and aircrafts depending on these boards.
This commit is contained in:
Fabien-B
2026-02-04 23:21:41 +01:00
committed by GitHub
parent e2c11a4265
commit ffaef0e684
246 changed files with 3 additions and 44887 deletions
@@ -1,286 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
Aggie Air ARK
-->
<airframe name="ARK Hexarotor 1.8">
<firmware name="rotorcraft">
<target name="ap" board="lisa_mx_2.1">
<module name="radio_control" type="sbus">
<configure name="SBUS_PORT" value="UART5"/>
</module>
<configure name="HAS_LUFTBOOT" value="1"/>
<configure name="FLASH_MODE" value="DFU"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART3"/>
<configure name="MODEM_BAUD" value="B57600"/>
</module>
</target>
<!-- NOTE: if you want to use extra_dl module for HITL
you have to set TELEMETRY_FREQUENCY to PERIODIC_FREQUENCY -->
<configure name="PERIODIC_FREQUENCY" value="160"/>
<configure name="TELEMETRY_FREQUENCY" value="160"/>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<module name="telemetry" type="transparent"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="160"/>
</module>
<module name="stabilization" type="float_euler"/>
<module name="ins" type="vectornav">
<configure name="VN_PORT" value="UART2"/>
<configure name="VN_BAUD" value="B921600"/>
</module>
<module name="sys_mon"/>
<module name="copilot"/>
<module name="extra_dl">
<!-- in order to use uart1 without chibios we need to remap the peripheral-->
<define name="REMAP_UART1" value="TRUE"/>
<configure name="EXTRA_DL_PORT" value="UART1"/>
<configure name="EXTRA_DL_BAUD" value="B921600"/>
</module>
<module name="battery_monitor.xml">
<define name="BATMON_REV4" value="0"/>
<define name="BATMON_CURRENT_OFFSET" value="-120"/>
<define name="BATMON_CURRENT_SENSITIVITY" value="25.6"/>
<define name="BATMON_TEMP_OFFSET" value="250"/>
<define name="BATMON_TEMP_SENSITIVITY" value="10"/>
</module>
</firmware>
<!--These values are set for the Castle Creations HV Lite 60A ESCs-->
<servos driver="Pwm">
<servo name="FRONT" no="0" min="1010" neutral="1150" max="2000"/>
<servo name="FRONT_RIGHT" no="1" min="1010" neutral="1150" max="2000"/>
<servo name="BACK_RIGHT" no="2" min="1010" neutral="1150" max="2000"/>
<servo name="BACK" no="3" min="1010" neutral="1150" max="2000"/>
<servo name="BACK_LEFT" no="4" min="1010" neutral="1150" max="2000"/>
<servo name="FRONT_LEFT" no="5" min="1010" neutral="1150" max="2000"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="6"/>
<define name="SCALE" value="256"/>
<!-- hex plus A -->
<define name="ROLL_COEF" value="{ 0, -256, -256, 0, 256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 128, -128, -256, -128, 128 }"/>
<define name="YAW_COEF" value="{ 128, -128, 128, -128, 128, -128 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256, 256, 256 }"/>
</section>
<command_laws>
<!-- Use SERVO_FRONT_IDX to know the actuators array number, and user SERVO_FRONT_DRIVER_NO to use the xx-value defined in servo no="xx" -->
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[SERVO_FRONT_IDX]"/>
<set servo="FRONT_RIGHT" value="motor_mixing.commands[SERVO_FRONT_RIGHT_IDX]"/>
<set servo="BACK_RIGHT" value="motor_mixing.commands[SERVO_BACK_RIGHT_IDX]"/>
<set servo="BACK" value="motor_mixing.commands[SERVO_BACK_IDX]"/>
<set servo="BACK_LEFT" value="motor_mixing.commands[SERVO_BACK_LEFT_IDX]"/>
<set servo="FRONT_LEFT" value="motor_mixing.commands[SERVO_FRONT_LEFT_IDX]"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0.0" unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0.0" unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0.0" unit="deg"/>
<define name="BODY_TO_IMU2_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU2_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU2_PSI" value="270." unit="deg"/>
<define name="ACCEL_X_NEUTRAL" value="11"/>
<define name="ACCEL_Y_NEUTRAL" value="11"/>
<define name="ACCEL_Z_NEUTRAL" value="-25"/>
<!-- replace this with your own calibration -->
<define name="MAG_X_NEUTRAL" value="-179"/>
<define name="MAG_Y_NEUTRAL" value="-21"/>
<define name="MAG_Z_NEUTRAL" value="79"/>
<define name="MAG_X_SENS" value="4.17334785618" integer="16"/>
<define name="MAG_Y_SENS" value="3.98885954135" integer="16"/>
<define name="MAG_Z_SENS" value="4.40442339014" integer="16"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value="0.3770441"/>
<define name="H_Y" value="0.0193986"/>
<define name="H_Z" value="0.9259921"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
<!-- setpoints -->
<define name="SP_MAX_P" value="10000"/>
<define name="SP_MAX_Q" value="10000"/>
<define name="SP_MAX_R" value="10000"/>
<define name="DEADBAND_P" value="20"/>
<define name="DEADBAND_Q" value="20"/>
<define name="DEADBAND_R" value="200"/>
<define name="REF_TAU" value="4"/>
<!-- feedback -->
<define name="GAIN_P" value="000"/>
<define name="GAIN_Q" value="000"/>
<define name="GAIN_R" value="00"/>
<define name="IGAIN_P" value="0"/>
<define name="IGAIN_Q" value="0"/>
<define name="IGAIN_R" value="0"/>
<!-- feedforward -->
<define name="DDGAIN_P" value="300"/>
<define name="DDGAIN_Q" value="300"/>
<define name="DDGAIN_R" value="300"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="35." unit="deg"/>
<define name="SP_MAX_THETA" value="35." unit="deg"/>
<define name="SP_MAX_R" value="40." unit="deg/s"/>
<define name="DEADBAND_A" value="5"/>
<define name="DEADBAND_E" value="5"/>
<define name="DEADBAND_R" value="10"/>
<!-- inetgrator limits -->
<define name="MAX_SUM_ERR" value="50"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="180." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- Big fat ARK Gains -->
<define name="PHI_PGAIN" value="2700"/>
<define name="PHI_DGAIN" value="700"/>
<define name="PHI_IGAIN" value="5.0"/>
<define name="THETA_PGAIN" value="2700"/>
<define name="THETA_DGAIN" value="700"/>
<define name="THETA_IGAIN" value="5.0"/>
<define name="PSI_PGAIN" value="4000"/>
<define name="PSI_DGAIN" value="3500"/>
<define name="PSI_IGAIN" value="1.5"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="5"/>
<define name="THETA_DDGAIN" value="5"/>
<define name="PSI_DDGAIN" value="10"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="MIN_ERR_Z" value="POS_BFP_OF_REAL(-10.)"/>
<define name="MAX_ERR_Z" value="POS_BFP_OF_REAL( 10.)"/>
<define name="MIN_ERR_ZD" value="SPEED_BFP_OF_REAL(-10.)"/>
<define name="MAX_ERR_ZD" value="SPEED_BFP_OF_REAL( 10.)"/>
<define name="MAX_SUM_ERR" value="2000000"/>
<define name="HOVER_KP" value="265"/>
<define name="HOVER_KD" value="339"/>
<define name="HOVER_KI" value="52"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.50"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="20" unit="deg"/>
<define name="USE_SPEED_REF" value="TRUE"/>
<define name="REF_MAX_SPEED" value="8.0" unit="m/s"/>
<define name="REF_MAX_ACCEL" value="5.66" unit="m/s2"/>
<define name="PGAIN" value="27"/>
<define name="DGAIN" value="21"/>
<define name="AGAIN" value="17"/>
<define name="IGAIN" value="16"/>
</section>
<section name="NAVIGATION" prefix="NAV_">
<define name="CLIMB_VSPEED" value="1.5" />
<define name="DESCEND_VSPEED" value="-1.0" />
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="f_motor, fr_motor, br_motor, b_motor, bl_motor, fl_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="AGGIEAIR/aggieair_ark_hexa" type="string"/>
<define name="JS_AXIS_THROTTLE" value="0"/>
<define name="JS_AXIS_THROTTLE_REVERSED" value="1"/>
<define name="JS_AXIS_ROLL" value="1"/>
<define name="JS_AXIS_PITCH" value="2"/>
<define name="JS_AXIS_PITCH_REVERSED" value="1"/>
<define name="JS_AXIS_YAW" value="3"/>
<define name="JS_AXIS_YAW_REVERSED" value="1"/>
<define name="JS_AXIS_MODE" value="7"/>
</section>
<section name="GCS">
<define name="ICONS_THEME" value="flat_theme"/>
<define name="ALT_SHIFT_PLUS_PLUS" value="30"/>
<define name="ALT_SHIFT_PLUS" value="10"/>
<define name="ALT_SHIFT_MINUS" value="-10"/>
<define name="AC_ICON" value="hexarotor"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<!-- Flight values -->
<!--
<define name="CATASTROPHIC_BAT_LEVEL" value="19.2" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="20.0" unit="V"/>
<define name="LOW_BAT_LEVEL" value="21.0" unit="V"/>
<define name="MAX_BAT_LEVEL" value="25.3" unit="V"/>
-->
<!-- Simulator values -->
<define name="MAX_BAT_LEVEL" value="5.0" unit="V" />
<define name="LOW_BAT_LEVEL" value="4.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.5" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
</section>
</airframe>
@@ -1,300 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
AggieAir Atomic Tangerine
-->
<airframe name="AggieAir Atomic Tangerine">
<firmware name="fixedwing">
<target name="ap" board="lisa_mx_2.1">
<module name="radio_control" type="sbus">
<configure name="SBUS_PORT" value="UART5"/>
</module>
<configure name="HAS_LUFTBOOT" value="1"/>
<configure name="FLASH_MODE" value="DFU"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART3"/>
<configure name="MODEM_BAUD" value="B57600"/>
<define name="GEC_STATUS_LED" value="5"/>
</module>
</target>
<!-- NOTE: if you want to use extra_dl module for HITL
you have to set TELEMETRY_FREQUENCY to CONTROL_FREQUENCY -->
<configure name="PERIODIC_FREQUENCY" value="100"/>
<define name="CONTROL_FREQUENCY" value="100"/>
<configure name="TELEMETRY_FREQUENCY" value="100"/>
<define name="SERVO_HZ" value="100"/>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<module name="telemetry" type="transparent"/>
</target>
<module name="control"/>
<module name="navigation"/>
<module name="ins" type="vectornav">
<configure name="VN_PORT" value="UART2"/>
<configure name="VN_BAUD" value="B230400"/>
</module>
<define name="AGR_CLIMB" />
<define name="POLY_OSAM_HALF_SWEEP_ENABLED" value="FALSE"/>
<define name="GEOFENCE_DATALINK_LOST_TIME" value="45"/>
<module name="nav" type="line"/>
<module name="nav" type="flower"/>
<module name="nav" type="survey_poly_osam"/>
<module name="nav" type="launcher"/>
<module name="nav" type="skid_landing"/>
<module name="nav" type="line_osam"/>
<module name="sys_mon"/>
<module name="copilot">
<define name="FORWARD_PAYLOAD" value="TRUE"/>
</module>
<module name="extra_dl">
<!-- in order to use uart1 without chibios we need to remap the peripheral-->
<define name="REMAP_UART1" value="TRUE"/>
<configure name="EXTRA_DL_PORT" value="UART1"/>
<configure name="EXTRA_DL_BAUD" value="B921600"/>
</module>
<module name="lidar_sf11">
<configure name="LIDAR_SF11_I2C_DEV" value="i2c2"/>
</module>
<module name="battery_monitor.xml">
<define name="BATMON_REV4" value="1"/>
<define name="BATMON_CURRENT_OFFSET" value="-120"/>
<define name="BATMON_CURRENT_SENSITIVITY" value="25.6"/>
<define name="BATMON_TEMP_OFFSET" value="250"/>
<define name="BATMON_TEMP_SENSITIVITY" value="10"/>
</module>
<module name="air_data"/>
</firmware>
<!-- commands section -->
<!-- Servo Configuration -->
<servos>
<servo name="THROTTLE" no="5" min="1100" neutral="1100" max="1900"/>
<servo name="AILERON_RIGHT" no="1" min="900" neutral="1500" max="2100"/>
<servo name="AILERON_LEFT" no="2" min="2100" neutral="1500" max="900"/>
<servo name="ELEVATOR" no="3" min="1900" neutral="1500" max="1100"/>
<servo name="RUDDER" no="4" min="2100" neutral="1500" max="900"/>
<servo name="FLAP" no="0" min="990" neutral="1945" max="1945"/>
</servos>
<!-- Servo Command Structure -->
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="FLAP" failsafe_value="9600"/>
</commands>
<!-- RC Command Structure -->
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
<set command="FLAP" value="@FLAP"/>
</rc_commands>
<!-- Define RC commands to Servo in Auto Mode -->
<auto_rc_commands>
<set command="YAW" value="@YAW"/>
</auto_rc_commands>
<!-- Define Mixing Parameters -->
<section name="MIXER">
<define name="AILERON_AILERON_RATE" value="0.9"/>
<define name="ELEV_ELEV_RATE" value="0.8"/>
</section>
<!-- Define RC commands to Servos in Manual -->
<command_laws>
<let var="aileron" value="@ROLL * AILERON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * ELEV_ELEV_RATE"/>
<set servo="THROTTLE" value="@THROTTLE"/>
<set servo="AILERON_RIGHT" value="$aileron"/> <!--flip signs if necessary -->
<set servo="AILERON_LEFT" value=" - $aileron"/>
<set servo="ELEVATOR" value="$elevator"/>
<set servo="RUDDER" value="@YAW"/>
<set servo="FLAP" value="@FLAP"/>
</command_laws>
<!-- Define Max Roll and Pitch setpoints in Auto1 -->
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.7"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
<!-- Dummy Mag values for NPS -
replace with your own calibration -->
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
</section>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
</section>
<!-- Define current estimator and Battery Level Warnings -->
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="50000"/>
<define name="CURRENT_ESTIMATION_NONLINEARITY" value="1.3"/>
<!-- Flight values -->
<define name="MAX_BAT_LEVEL" value="16.8" unit="V" />
<define name="LOW_BAT_LEVEL" value="14.5" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="14.3" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="14.1" unit="V"/>
<!-- Simulator values -->
<!--
<define name="MAX_BAT_LEVEL" value="5.0" unit="V" />
<define name="LOW_BAT_LEVEL" value="4.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.5" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
-->
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="16." unit="m/s"/> <!-- GCS only -->
<define name="CARROT" value="5." unit="s"/> <!-- GCS only -->
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="120."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<!-- TODO: double check the power controls settings, this value seems to be outdated -->
<!--define name="POWER_CTL_BAT_NOMINAL" value="23.2" unit="volt"/-->
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.136"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.42"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.20"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.70"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.05" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.142"/>
<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/>
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.1"/>
<define name="AUTO_PITCH_IGAIN" value="0.025"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.31415" unit="rad"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.31415" unit="rad"/>
<!-- landing control loop -->
<define name="LANDING_THROTTLE_PGAIN" value="600.0"/>
<define name="LANDING_THROTTLE_IGAIN" value="10.0"/>
<define name="LANDING_THROTTLE_MAX" value="0.65"/>
<define name="LANDING_DESIRED_SPEED" value="18" unit="m/s"/>
<define name="LANDING_PITCH_PGAIN" value="0.1"/>
<define name="LANDING_PITCH_IGAIN" value="0.1"/>
<define name="LANDING_PITCH_LIMITS" value="0.2" unit="rad"/>
<define name="LANDING_PITCH_FLARE" value="0.06"/>
<define name="LANDING_ALT_THROTTLE_KILL" value="15" unit="m"/>
<define name="LANDING_ALT_FLARE" value="5" unit="m"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="1.135"/>
<define name="COURSE_DGAIN" value="0.35"/>
<define name="ROLL_MAX_SETPOINT" value="0.6" unit="rad"/>
<define name="PITCH_MAX_SETPOINT" value="0.35" unit="rad"/>
<define name="PITCH_MIN_SETPOINT" value="-0.2" unit="rad"/>
<define name="PITCH_PGAIN" value="12900."/>
<!-- ORIGINAL GAIN -->
<define name="PITCH_DGAIN" value="1.5"/>
<!-- SIMULATOR GAIN-->
<!--define name="PITCH_DGAIN" value="151.5"/-->
<define name="ELEVATOR_OF_ROLL" value="1250"/>
<define name="ROLL_ATTITUDE_GAIN" value="9000"/>
<define name="ROLL_RATE_GAIN" value="1600"/>
<define name="ROLL_SLEW" value="0.1"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="20"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="0.85"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.13"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.1"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/><!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="5" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0" unit="%"/>
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
<!-- Launcher Takeoff Configuration -->
<section name="LAUNCHER" prefix="LAUNCHER_TAKEOFF_">
<define name="PITCH" value="0.23" unit="rad"/>
<define name="HEIGHT" value="70" unit="m"/>
<define name="HEIGHT_THRESHOLD" value="10" unit="m"/>
<define name="MIN_SPEED_CIRCLE" value="8" unit="m/s"/>
<define name="DISTANCE" value="30" unit="m"/>
<define name="MIN_SPEED_LINE" value="5" unit="m/s"/>
<define name="CIRCLE_ALT" value="100" unit="m"/>
<define name="CIRCLE_RADIUS" value="200" unit="m"/>
<define name="MAX_CIRCLE_DISTANCE" value="800" unit="m"/>
</section>
<!-- Skid Landing Configuration -->
<section name="LANDING" prefix="SKID_LANDING_">
<define name="AF_HEIGHT" value="50" unit="m"/>
<define name="FINAL_HEIGHT" value="50" unit="m"/>
<define name="FINAL_STAGE_TIME" value="10" unit="s"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="JSBSIM_LAUNCHSPEED" value="25"/>
<define name="JSBSIM_MODEL" value="AGGIEAIR/minion" type="string"/>
<define name="JS_AXIS_THROTTLE" value="0"/>
<define name="JS_AXIS_THROTTLE_REVERSED" value="1"/>
<define name="JS_AXIS_ROLL" value="1"/>
<define name="JS_AXIS_PITCH" value="2"/>
<define name="JS_AXIS_PITCH_REVERSED" value="1"/>
<define name="JS_AXIS_YAW" value="3"/>
<define name="JS_AXIS_YAW_REVERSED" value="1"/>
<define name="JS_AXIS_FLAPS" value="5"/>
<define name="JS_AXIS_MODE" value="7"/>
<define name="JSBSIM_ROLL_TRIM" value="0.008"/>
<define name="JSBSIM_PITCH_TRIM" value="0.0375"/>
<define name="JSBSIM_YAW_TRIM" value="0.001"/>
</section>
</airframe>
-299
View File
@@ -1,299 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
AggieAir Blujayujay
-->
<airframe name="Blujay">
<firmware name="fixedwing">
<target name="ap" board="lisa_mx_2.1">
<module name="radio_control" type="sbus">
<configure name="SBUS_PORT" value="UART5"/>
</module>
<configure name="HAS_LUFTBOOT" value="0"/>
<configure name="FLASH_MODE" value="DFU"/>
</target>
<!-- NOTE: if you want to use extra_dl module for HITL
you have to set TELEMETRY_FREQUENCY to CONTROL_FREQUENCY -->
<configure name="PERIODIC_FREQUENCY" value="100"/>
<define name="CONTROL_FREQUENCY" value="100"/>
<configure name="TELEMETRY_FREQUENCY" value="100"/>
<define name="SERVO_HZ" value="100"/>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<configure name="USE_HITL" value="1"/>
<configure name="INS_DEV" value="/dev/ttyUSB1"/>
<configure name="INS_BAUD" value="B921600"/>
<configure name="AP_DEV" value="/dev/ttyUSB2"/>
<configure name="AP_BAUD" value="B921600"/>
</target>
<module name="control"/>
<module name="navigation"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART3"/>
<configure name="MODEM_BAUD" value="B57600"/>
</module>
<module name="ins" type="vectornav">
<configure name="VN_PORT" value="UART2"/>
<configure name="VN_BAUD" value="B921600"/>
</module>
<define name="AGR_CLIMB" />
<define name="POLY_OSAM_HALF_SWEEP_ENABLED" value="FALSE"/>
<define name="GEOFENCE_DATALINK_LOST_TIME" value="45"/>
<module name="nav" type="line"/>
<module name="nav" type="flower"/>
<module name="nav" type="survey_poly_osam"/>
<module name="nav" type="launcher"/>
<module name="nav" type="skid_landing"/>
<module name="sys_mon"/>
<module name="copilot"/>
<module name="extra_dl">
<!-- in order to use uart1 without chibios we need to remap the peripheral-->
<define name="REMAP_UART1" value="TRUE"/>
<configure name="EXTRA_DL_PORT" value="UART1"/>
<configure name="EXTRA_DL_BAUD" value="B921600"/>
</module>
<module name="lidar_sf11">
<configure name="LIDAR_SF11_I2C_DEV" value="i2c2"/>
</module>
<module name="battery_monitor.xml">
<define name="BATMON_REV4" value="1"/>
<define name="BATMON_CURRENT_OFFSET" value="-120"/>
<define name="BATMON_CURRENT_SENSITIVITY" value="25.6"/>
<define name="BATMON_TEMP_OFFSET" value="250"/>
<define name="BATMON_TEMP_SENSITIVITY" value="10"/>
</module>
</firmware>
<!-- commands section -->
<!-- Servo Configuration -->
<servos>
<servo name="FLAP" no="0" min="900" neutral="1500" max="2100"/>
<servo name="AILERON_RIGHT" no="1" min="900" neutral="1500" max="2100"/>
<servo name="AILERON_LEFT" no="2" min="2100" neutral="1500" max="900"/>
<servo name="ELEVATOR" no="3" min="900" neutral="1500" max="92100"/>
<servo name="RUDDER" no="4" min="900" neutral="1500" max="2100"/>
<servo name="THROTTLE" no="5" min="1100" neutral="1100" max="1900"/>
</servos>
<!-- Servo Command Structure -->
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="FLAP" failsafe_value="0"/>
</commands>
<!-- RC Command Structure -->
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
<set command="FLAP" value="@FLAP"/>
</rc_commands>
<!-- Define RC commands to Servo in Auto Mode -->
<auto_rc_commands>
<set command="YAW" value="@YAW"/>
<set command="FLAP" value="@FLAP"/>
</auto_rc_commands>
<!-- Define Mixing Parameters -->
<section name="MIXER">
<define name="AILERON_AILERON_RATE" value="0.9"/>
<define name="ELEV_ELEV_RATE" value="0.8"/>
</section>
<!-- Define RC commands to Servos in Manual -->
<command_laws>
<let var="aileron" value="@ROLL * AILERON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * ELEV_ELEV_RATE"/>
<set servo="THROTTLE" value="@THROTTLE"/>
<set servo="AILERON_RIGHT" value="$aileron"/> <!--flip signs if necessary -->
<set servo="AILERON_LEFT" value=" - $aileron"/>
<set servo="ELEVATOR" value="$elevator"/>
<set servo="RUDDER" value="@YAW"/>
<set servo="FLAP" value="@FLAP"/>
</command_laws>
<!-- Define Max Roll and Pitch setpoints in Auto1 -->
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.7"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
<!-- Dummy Mag values for NPS -
replace with your own calibration -->
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
</section>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="16." unit="m/s"/> <!-- GCS only -->
<define name="CARROT" value="5." unit="s"/> <!-- GCS only -->
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="120."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<define name="POWER_CTL_BAT_NOMINAL" value="23.2" unit="volt"/>
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.136"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.40"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.20"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.70"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.05" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.142"/>
<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/>
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.1"/>
<define name="AUTO_PITCH_IGAIN" value="0.025"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.31415" unit="rad"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.31415" unit="rad"/>
<!--New Landing V_CTL_loop -->
<define name="LANDING_THROTTLE_PGAIN" value="600"/>
<define name="LANDING_THROTTLE_IGAIN" value="30"/>
<define name="LANDING_THROTTLE_MAX" value="0.60" unit="%"/>
<define name="LANDING_DESIRED_SPEED" value="18.00" unit="(m/s)"/>
<define name="LANDING_PITCH_PGAIN" value="0.3"/>
<define name="LANDING_PITCH_IGAIN" value="0.0130"/>
<define name="LANDING_PITCH_LIMITS" value="0.2000" unit="rad"/>
<define name="LANDING_PITCH_FLARE" value="0.15000" unit="rad"/>
<define name="LANDING_ALT_THROTTLE_KILL" value="6" unit="m"/>
<define name="LANDING_ALT_FLARE" value="3" unit="m"/>
<define name="USE_LIDAR" value="TRUE"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="1.33"/>
<define name="COURSE_DGAIN" value="0."/>
<define name="ROLL_MAX_SETPOINT" value="0.575959" unit="rad"/>
<define name="PITCH_MAX_SETPOINT" value="0.35" unit="rad"/>
<define name="PITCH_MIN_SETPOINT" value="-0.2" unit="rad"/>
<define name="PITCH_PGAIN" value="12900."/>
<!-- ORIGINAL GAIN-->
<define name="PITCH_DGAIN" value="1.5"/>
<!-- SIMULATOR GAIN
<define name="PITCH_DGAIN" value="151.5"/>
-->
<define name="ELEVATOR_OF_ROLL" value="1250"/>
<define name="ROLL_ATTITUDE_GAIN" value="9000"/>
<define name="ROLL_RATE_GAIN" value="1600"/>
<define name="ROLL_SLEW" value="0.1"/>
<define name="ELE_IGAIN" value="0."/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="20"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="0.75"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.13"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.1"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/><!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="5" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0" unit="%"/>
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
<!-- Launcher Takeoff Configuration -->
<section name="LAUNCHER" prefix="LAUNCHER_TAKEOFF_">
<define name="PITCH" value="0.23" unit="rad"/>
<define name="HEIGHT" value="70" unit="m"/>
<define name="MIN_SPEED_CIRCLE" value="8" unit="m/s"/>
<define name="DISTANCE" value="30" unit="m"/>
<define name="MIN_SPEED_LINE" value="5" unit="m/s"/>
</section>
<!-- Skid Landing Configuration -->
<section name="LANDING" prefix="SKID_LANDING_">
<define name="AF_HEIGHT" value="50" unit="m"/>
<define name="FINAL_HEIGHT" value="50" unit="m"/>
<define name="FINAL_STAGE_TIME" value="10" unit="s"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="JSBSIM_LAUNCHSPEED" value="25"/>
<define name="JSBSIM_MODEL" value="AGGIEAIR/minion" type="string"/>
<define name="JS_AXIS_THROTTLE" value="0"/>
<define name="JS_AXIS_THROTTLE_REVERSED" value="1"/>
<define name="JS_AXIS_ROLL" value="1"/>
<define name="JS_AXIS_PITCH" value="2"/>
<define name="JS_AXIS_PITCH_REVERSED" value="1"/>
<define name="JS_AXIS_YAW" value="3"/>
<define name="JS_AXIS_YAW_REVERSED" value="1"/>
<define name="JS_AXIS_FLAPS" value="5"/>
<define name="JS_AXIS_MODE" value="7"/>
<define name="JSBSIM_ROLL_TRIM" value="0.008"/>
<define name="JSBSIM_PITCH_TRIM" value="0.0375"/>
<define name="JSBSIM_YAW_TRIM" value="0.001"/>
</section>
<!-- Define current estimator and Battery Level Warnings -->
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="50000"/>
<define name="CURRENT_ESTIMATION_NONLINEARITY" value="1.3"/>
<!-- Flight values -->
<!--
<define name="MAX_BAT_LEVEL" value="16.5" unit="V" />
<define name="LOW_BAT_LEVEL" value="14.1" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="13.8" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="13.5" unit="V"/>
-->
<!-- Simulator values -->
<define name="MAX_BAT_LEVEL" value="5.0" unit="V" />
<define name="LOW_BAT_LEVEL" value="4.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.5" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
</section>
</airframe>
@@ -1,294 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
AggieAir Blujayujay
-->
<airframe name="Bl">
<firmware name="fixedwing">
<target name="ap" board="lisa_mx_2.1">
<module name="radio_control" type="sbus">
<configure name="SBUS_PORT" value="UART5"/>
</module>
<configure name="HAS_LUFTBOOT" value="1"/>
<configure name="FLASH_MODE" value="DFU"/>
</target>
<!-- NOTE: if you want to use extra_dl module for HITL
you have to set TELEMETRY_FREQUENCY to CONTROL_FREQUENCY -->
<configure name="PERIODIC_FREQUENCY" value="100"/>
<define name="CONTROL_FREQUENCY" value="100"/>
<configure name="TELEMETRY_FREQUENCY" value="100"/>
<define name="SERVO_HZ" value="100"/>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
</target>
<module name="control"/>
<module name="navigation"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART3"/>
<configure name="MODEM_BAUD" value="B57600"/>
</module>
<module name="ins" type="vectornav">
<configure name="VN_PORT" value="UART2"/>
<configure name="VN_BAUD" value="B230400"/>
</module>
<define name="AGR_CLIMB" />
<define name="POLY_OSAM_HALF_SWEEP_ENABLED" value="FALSE"/>
<define name="GEOFENCE_DATALINK_LOST_TIME" value="45"/>
<module name="nav" type="line"/>
<module name="nav" type="flower"/>
<module name="nav" type="survey_poly_osam"/>
<module name="nav" type="launcher"/>
<module name="nav" type="skid_landing"/>
<module name="sys_mon"/>
<module name="copilot"/>
<module name="extra_dl">
<!-- in order to use uart1 without chibios we need to remap the peripheral-->
<define name="REMAP_UART1" value="TRUE"/>
<configure name="EXTRA_DL_PORT" value="UART1"/>
<configure name="EXTRA_DL_BAUD" value="B921600"/>
</module>
<!--module name="lidar_sf11">
<configure name="LIDAR_SF11_I2C_DEV" value="i2c2"/>
</module-->
<module name="battery_monitor.xml">
<define name="BATMON_REV4" value="1"/>
<define name="BATMON_CURRENT_OFFSET" value="-120"/>
<define name="BATMON_CURRENT_SENSITIVITY" value="25.6"/>
<define name="BATMON_TEMP_OFFSET" value="250"/>
<define name="BATMON_TEMP_SENSITIVITY" value="10"/>
</module>
</firmware>
<!-- commands section -->
<!-- Servo Configuration -->
<servos>
<servo name="FLAP" no="0" min="2000" neutral="900" max="900"/>
<servo name="AILERON_RIGHT" no="1" min="900" neutral="1500" max="2100"/>
<servo name="AILERON_LEFT" no="2" min="2100" neutral="1500" max="900"/>
<servo name="ELEVATOR" no="3" min="2100" neutral="1500" max="900"/>
<servo name="RUDDER" no="4" min="900" neutral="1500" max="2100"/>
<servo name="THROTTLE" no="5" min="1100" neutral="1100" max="1900"/>
</servos>
<!-- Servo Command Structure -->
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="FLAP" failsafe_value="0"/>
</commands>
<!-- RC Command Structure -->
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
<set command="FLAP" value="@FLAP"/>
</rc_commands>
<!-- Define RC commands to Servo in Auto Mode -->
<auto_rc_commands>
<set command="YAW" value="@YAW"/>
<set command="FLAP" value="@FLAP"/>
</auto_rc_commands>
<!-- Define Mixing Parameters -->
<section name="MIXER">
<define name="AILERON_AILERON_RATE" value="0.9"/>
<define name="ELEV_ELEV_RATE" value="0.8"/>
</section>
<!-- Define RC commands to Servos in Manual -->
<command_laws>
<let var="aileron" value="@ROLL * AILERON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * ELEV_ELEV_RATE"/>
<set servo="THROTTLE" value="@THROTTLE"/>
<set servo="AILERON_RIGHT" value="$aileron"/> <!--flip signs if necessary -->
<set servo="AILERON_LEFT" value=" - $aileron"/>
<set servo="ELEVATOR" value="$elevator"/>
<set servo="RUDDER" value="@YAW"/>
<set servo="FLAP" value="@FLAP"/>
</command_laws>
<!-- Define Max Roll and Pitch setpoints in Auto1 -->
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.7"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
<!-- Dummy Mag values for NPS -
replace with your own calibration -->
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
</section>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="16." unit="m/s"/> <!-- GCS only -->
<define name="CARROT" value="5." unit="s"/> <!-- GCS only -->
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="200."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<define name="POWER_CTL_BAT_NOMINAL" value="23.2" unit="volt"/>
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.136"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.40"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.20"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.70"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.05" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.142"/>
<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/>
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.1"/>
<define name="AUTO_PITCH_IGAIN" value="0.025"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.31415" unit="rad"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.31415" unit="rad"/>
<!--New Landing V_CTL_loop -->
<define name="LANDING_THROTTLE_PGAIN" value="600"/>
<define name="LANDING_THROTTLE_IGAIN" value="30"/>
<define name="LANDING_THROTTLE_MAX" value="0.60" unit="%"/>
<define name="LANDING_DESIRED_SPEED" value="18.00" unit="(m/s)"/>
<define name="LANDING_PITCH_PGAIN" value="0.3"/>
<define name="LANDING_PITCH_IGAIN" value="0.0130"/>
<define name="LANDING_PITCH_LIMITS" value="0.2000" unit="rad"/>
<define name="LANDING_PITCH_FLARE" value="0.15000" unit="rad"/>
<define name="LANDING_ALT_THROTTLE_KILL" value="6" unit="m"/>
<define name="LANDING_ALT_FLARE" value="3" unit="m"/>
<define name="USE_LIDAR" value="TRUE"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="1.33"/>
<define name="COURSE_DGAIN" value="0."/>
<define name="ROLL_MAX_SETPOINT" value="0.575959" unit="rad"/>
<define name="PITCH_MAX_SETPOINT" value="0.35" unit="rad"/>
<define name="PITCH_MIN_SETPOINT" value="-0.2" unit="rad"/>
<define name="PITCH_PGAIN" value="12900."/>
<!-- ORIGINAL GAIN-->
<define name="PITCH_DGAIN" value="1.5"/>
<!-- SIMULATOR GAIN
<define name="PITCH_DGAIN" value="151.5"/>
-->
<define name="ELEVATOR_OF_ROLL" value="1250"/>
<define name="ROLL_ATTITUDE_GAIN" value="9000"/>
<define name="ROLL_RATE_GAIN" value="1600"/>
<define name="ROLL_SLEW" value="0.1"/>
<define name="ELE_IGAIN" value="0."/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="20"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="0.75"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.13"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.1"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/><!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="5" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0" unit="%"/>
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
<define name="HOME_RADIUS" value="200" unit="m"/>
</section>
<!-- Launcher Takeoff Configuration -->
<section name="LAUNCHER" prefix="LAUNCHER_TAKEOFF_">
<define name="PITCH" value="0.23" unit="rad"/>
<define name="HEIGHT" value="70" unit="m"/>
<define name="MIN_SPEED_CIRCLE" value="8" unit="m/s"/>
<define name="DISTANCE" value="30" unit="m"/>
<define name="MIN_SPEED_LINE" value="5" unit="m/s"/>
</section>
<!-- Skid Landing Configuration -->
<section name="LANDING" prefix="SKID_LANDING_">
<define name="AF_HEIGHT" value="50" unit="m"/>
<define name="FINAL_HEIGHT" value="50" unit="m"/>
<define name="FINAL_STAGE_TIME" value="10" unit="s"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="JSBSIM_LAUNCHSPEED" value="25"/>
<define name="JSBSIM_MODEL" value="AGGIEAIR/minion" type="string"/>
<define name="JS_AXIS_THROTTLE" value="0"/>
<define name="JS_AXIS_THROTTLE_REVERSED" value="1"/>
<define name="JS_AXIS_ROLL" value="1"/>
<define name="JS_AXIS_PITCH" value="2"/>
<define name="JS_AXIS_PITCH_REVERSED" value="1"/>
<define name="JS_AXIS_YAW" value="3"/>
<define name="JS_AXIS_YAW_REVERSED" value="1"/>
<define name="JS_AXIS_FLAPS" value="5"/>
<define name="JS_AXIS_MODE" value="7"/>
<define name="JSBSIM_ROLL_TRIM" value="0.008"/>
<define name="JSBSIM_PITCH_TRIM" value="0.0375"/>
<define name="JSBSIM_YAW_TRIM" value="0.001"/>
</section>
<!-- Define current estimator and Battery Level Warnings -->
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="50000"/>
<define name="CURRENT_ESTIMATION_NONLINEARITY" value="1.3"/>
<!-- Flight values -->
<!--
<define name="MAX_BAT_LEVEL" value="16.5" unit="V" />
<define name="LOW_BAT_LEVEL" value="14.1" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="13.8" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="13.5" unit="V"/>
-->
<!-- Simulator values -->
<define name="MAX_BAT_LEVEL" value="5.0" unit="V" />
<define name="LOW_BAT_LEVEL" value="4.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.5" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
</section>
</airframe>
-88
View File
@@ -1,15 +1,4 @@
<conf>
<aircraft
name="Ark_Hexa_1.8"
ac_id="4"
airframe="airframes/AGGIEAIR/aggieair_ark_hexa_1-8.xml"
radio="radios/AGGIEAIR/aggieair_taranis.xml"
telemetry="telemetry/AGGIEAIR/aggieair_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic_geofence.xml"
settings="settings/rotorcraft_basic.xml settings/nps.xml"
settings_modules="modules/battery_monitor.xml modules/electrical.xml modules/gps.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/stabilization_float_euler.xml"
gui_color="#ffff954c0000"
/>
<aircraft
name="Ark_Quad"
ac_id="2"
@@ -21,81 +10,4 @@
settings_modules="modules/battery_monitor.xml modules/lidar_lite.xml modules/gps.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml"
gui_color="#ffff954c0000"
/>
<aircraft
name="Atomic"
ac_id="9"
airframe="airframes/AGGIEAIR/aggieair_atomic_lia.xml"
radio="radios/AGGIEAIR/aggieair_taranis.xml"
telemetry="telemetry/AGGIEAIR/aggieair_fixedwing.xml"
flight_plan="flight_plans/AGGIEAIR/BasicTuning_Launcher.xml"
settings="settings/fixedwing_basic.xml settings/nps.xml"
settings_modules="modules/air_data.xml modules/battery_monitor.xml modules/lidar_sf11.xml modules/nav_skid_landing.xml modules/nav_survey_poly_osam.xml modules/gps.xml modules/nav_basic_fw.xml modules/guidance_basic_fw.xml modules/stabilization_attitude_fw.xml"
gui_color="#ffff42870000"
/>
<aircraft
name="BluJay_Goose"
ac_id="7"
airframe="airframes/AGGIEAIR/aggieair_blujay_goose.xml"
radio="radios/AGGIEAIR/aggieair_taranis.xml"
telemetry="telemetry/AGGIEAIR/aggieair_fixedwing.xml"
flight_plan="flight_plans/AGGIEAIR/BasicTuning_Launcher.xml"
settings="settings/fixedwing_basic.xml settings/nps.xml"
settings_modules="modules/battery_monitor.xml modules/nav_skid_landing.xml modules/nav_survey_poly_osam.xml modules/gps.xml modules/nav_basic_fw.xml modules/guidance_basic_fw.xml modules/stabilization_attitude_fw.xml modules/imu_common.xml"
gui_color="#00009e93ffff"
/>
<aircraft
name="Blujay"
ac_id="6"
airframe="airframes/AGGIEAIR/aggieair_blujay.xml"
radio="radios/AGGIEAIR/aggieair_taranis.xml"
telemetry="telemetry/AGGIEAIR/aggieair_fixedwing.xml"
flight_plan="flight_plans/AGGIEAIR/BasicTuning_Launcher.xml"
settings="settings/fixedwing_basic.xml settings/nps.xml"
settings_modules="modules/battery_monitor.xml modules/lidar_sf11.xml modules/nav_skid_landing.xml modules/nav_survey_poly_osam.xml modules/gps.xml modules/nav_basic_fw.xml modules/guidance_basic_fw.xml modules/stabilization_attitude_fw.xml"
gui_color="#ffffffffffff"
/>
<aircraft
name="El_Captain"
ac_id="8"
airframe="airframes/AGGIEAIR/aggieair_el_captitan_lia.xml"
radio="radios/AGGIEAIR/aggieair_taranis.xml"
telemetry="telemetry/AGGIEAIR/aggieair_fixedwing.xml"
flight_plan="flight_plans/AGGIEAIR/BasicTuning_BlueRoom2.xml"
settings="settings/fixedwing_basic.xml settings/nps.xml"
settings_modules="modules/air_data.xml modules/battery_monitor.xml modules/lidar_sf11.xml modules/nav_skid_landing.xml modules/nav_survey_poly_osam.xml modules/gps.xml modules/nav_basic_fw.xml modules/guidance_basic_fw.xml modules/stabilization_attitude_fw.xml"
gui_color="#d37d000004fc"
/>
<aircraft
name="Iris"
ac_id="5"
airframe="airframes/AGGIEAIR/aggieair_iris_indi.xml"
radio="radios/AGGIEAIR/aggieair_FrSky3dr.xml"
telemetry="telemetry/AGGIEAIR/aggieair_iris.xml"
flight_plan="flight_plans/AGGIEAIR/rotorcraft_opticlow_test.xml"
settings="settings/rotorcraft_basic.xml [settings/test_actuators_pwm.xml]"
settings_modules="modules/ahrs_float_mlkf.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_extended.xml modules/lidar_lite.xml modules/lidar_sf11.xml modules/nav_rotorcraft.xml modules/px4flow_i2c.xml modules/stabilization_float_euler.xml"
gui_color="#337e387bffff"
/>
<aircraft
name="Minion_RP3"
ac_id="1"
airframe="airframes/AGGIEAIR/aggieair_minion_rp3_lia.xml"
radio="radios/AGGIEAIR/aggieair_taranis.xml"
telemetry="telemetry/AGGIEAIR/aggieair_fixedwing.xml"
flight_plan="flight_plans/AGGIEAIR/BasicTuning_Launcher.xml"
settings="settings/fixedwing_basic.xml settings/nps.xml"
settings_modules="modules/battery_monitor.xml modules/lidar_sf11.xml modules/nav_skid_landing.xml modules/nav_survey_poly_osam.xml modules/gps.xml modules/nav_basic_fw.xml modules/guidance_basic_fw.xml modules/stabilization_attitude_fw.xml"
gui_color="#00009e93ffff"
/>
<aircraft
name="Minty"
ac_id="10"
airframe="airframes/AGGIEAIR/aggieair_minty_lia.xml"
radio="radios/AGGIEAIR/aggieair_taranis.xml"
telemetry="telemetry/AGGIEAIR/aggieair_fixedwing.xml"
flight_plan="flight_plans/AGGIEAIR/CachJct_Gallo_temp_rect_survey.xml"
settings="settings/fixedwing_basic.xml settings/nps.xml"
settings_modules="modules/air_data.xml modules/battery_monitor.xml modules/lidar_sf11.xml modules/nav_skid_landing.xml modules/nav_survey_poly_osam.xml modules/gps.xml modules/nav_basic_fw.xml modules/guidance_basic_fw.xml modules/stabilization_attitude_fw.xml"
gui_color="#0113b8510000"
/>
</conf>
@@ -1,299 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
AggieAir El Capitan
-->
<airframe name="AggieAir El Capitan">
<firmware name="fixedwing">
<target name="ap" board="lisa_mx_2.1">
<module name="radio_control" type="sbus">
<configure name="SBUS_PORT" value="UART5"/>
</module>
<configure name="HAS_LUFTBOOT" value="1"/>
<configure name="FLASH_MODE" value="DFU"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART3"/>
<configure name="MODEM_BAUD" value="B57600"/>
<define name="GEC_STATUS_LED" value="5"/>
</module>
</target>
<!-- NOTE: if you want to use extra_dl module for HITL
you have to set TELEMETRY_FREQUENCY to CONTROL_FREQUENCY -->
<configure name="PERIODIC_FREQUENCY" value="100"/>
<define name="CONTROL_FREQUENCY" value="100"/>
<configure name="TELEMETRY_FREQUENCY" value="100"/>
<define name="SERVO_HZ" value="100"/>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<module name="telemetry" type="transparent"/>
</target>
<module name="control"/>
<module name="navigation"/>
<module name="ins" type="vectornav">
<configure name="VN_PORT" value="UART2"/>
<configure name="VN_BAUD" value="B230400"/>
</module>
<define name="AGR_CLIMB" />
<define name="POLY_OSAM_HALF_SWEEP_ENABLED" value="FALSE"/>
<define name="GEOFENCE_DATALINK_LOST_TIME" value="45"/>
<module name="nav" type="line"/>
<module name="nav" type="flower"/>
<module name="nav" type="survey_poly_osam"/>
<module name="nav" type="launcher"/>
<module name="nav" type="skid_landing"/>
<module name="nav" type="line_osam"/>
<module name="sys_mon"/>
<module name="copilot"/>
<module name="extra_dl">
<!-- in order to use uart1 without chibios we need to remap the peripheral-->
<define name="REMAP_UART1" value="TRUE"/>
<configure name="EXTRA_DL_PORT" value="UART1"/>
<configure name="EXTRA_DL_BAUD" value="B921600"/>
</module>
<module name="lidar_sf11">
<configure name="LIDAR_SF11_I2C_DEV" value="i2c2"/>
</module>
<module name="battery_monitor.xml">
<define name="BATMON_REV4" value="1"/>
<define name="BATMON_CURRENT_OFFSET" value="-120"/>
<define name="BATMON_CURRENT_SENSITIVITY" value="25.6"/>
<define name="BATMON_TEMP_OFFSET" value="250"/>
<define name="BATMON_TEMP_SENSITIVITY" value="10"/>
</module>
<module name="air_data"/>
</firmware>
<!-- commands section -->
<!-- Servo Configuration -->
<servos>
<servo name="THROTTLE" no="5" min="1100" neutral="1100" max="1900"/>
<servo name="AILERON_RIGHT" no="1" min="1900" neutral="1500" max="1100"/>
<servo name="AILERON_LEFT" no="2" min="1100" neutral="1500" max="1900"/>
<servo name="ELEVATOR" no="3" min="1100" neutral="1500" max="1900"/>
<servo name="RUDDER" no="4" min="1900" neutral="1500" max="1100"/>
<servo name="FLAP" no="0" min="1880" neutral="1100" max="1100"/>
</servos>
<!-- Servo Command Structure -->
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="FLAP" failsafe_value="9600"/>
</commands>
<!-- RC Command Structure -->
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
<set command="FLAP" value="@FLAP"/>
</rc_commands>
<!-- Define RC commands to Servo in Auto Mode -->
<auto_rc_commands>
<set command="YAW" value="@YAW"/>
</auto_rc_commands>
<!-- Define Mixing Parameters -->
<section name="MIXER">
<define name="AILERON_AILERON_RATE" value="0.9"/>
<define name="ELEV_ELEV_RATE" value="0.8"/>
</section>
<!-- Define RC commands to Servos in Manual -->
<command_laws>
<let var="aileron" value="@ROLL * AILERON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * ELEV_ELEV_RATE"/>
<set servo="THROTTLE" value="@THROTTLE"/>
<set servo="AILERON_RIGHT" value="$aileron"/> <!--flip signs if necessary -->
<set servo="AILERON_LEFT" value=" - $aileron"/>
<set servo="ELEVATOR" value="$elevator"/>
<set servo="RUDDER" value="@YAW"/>
<set servo="FLAP" value="@FLAP"/>
</command_laws>
<!-- Define Max Roll and Pitch setpoints in Auto1 -->
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.7"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
<!-- Dummy Mag values for NPS -
replace with your own calibration -->
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
</section>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
</section>
<!-- Define current estimator and Battery Level Warnings -->
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="50000"/>
<define name="CURRENT_ESTIMATION_NONLINEARITY" value="1.3"/>
<!-- Flight values -->
<define name="MAX_BAT_LEVEL" value="16.8" unit="V" />
<define name="LOW_BAT_LEVEL" value="14.5" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="14.3" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="14.1" unit="V"/>
<!-- Simulator values -->
<!--
<define name="MAX_BAT_LEVEL" value="5.0" unit="V" />
<define name="LOW_BAT_LEVEL" value="4.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.5" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
-->
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="16." unit="m/s"/> <!-- GCS only -->
<define name="CARROT" value="5." unit="s"/> <!-- GCS only -->
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="120."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<!-- TODO: double check the power controls settings, this value seems to be outdated -->
<!--define name="POWER_CTL_BAT_NOMINAL" value="23.2" unit="volt"/-->
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.136"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.42"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.20"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.80"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.05" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.142"/>
<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/>
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.1"/>
<define name="AUTO_PITCH_IGAIN" value="0.025"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.31415" unit="rad"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.31415" unit="rad"/>
<!-- landing control loop -->
<define name="LANDING_THROTTLE_PGAIN" value="600.0"/>
<define name="LANDING_THROTTLE_IGAIN" value="10.0"/>
<define name="LANDING_THROTTLE_MAX" value="0.65"/>
<define name="LANDING_DESIRED_SPEED" value="18" unit="m/s"/>
<define name="LANDING_PITCH_PGAIN" value="0.1"/>
<define name="LANDING_PITCH_IGAIN" value="0.1"/>
<define name="LANDING_PITCH_LIMITS" value="0.2" unit="rad"/>
<define name="LANDING_PITCH_FLARE" value="0.06"/>
<define name="LANDING_ALT_THROTTLE_KILL" value="15" unit="m"/>
<define name="LANDING_ALT_FLARE" value="5" unit="m"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="1.135"/>
<define name="COURSE_DGAIN" value="0.35"/>
<define name="ROLL_MAX_SETPOINT" value="0.6" unit="rad"/>
<define name="PITCH_MAX_SETPOINT" value="0.35" unit="rad"/>
<define name="PITCH_MIN_SETPOINT" value="-0.2" unit="rad"/>
<define name="PITCH_PGAIN" value="12900."/>
<!-- ORIGINAL GAIN -->
<define name="PITCH_DGAIN" value="1.5"/>
<!-- SIMULATOR GAIN-->
<!--define name="PITCH_DGAIN" value="151.5"/-->
<define name="ELEVATOR_OF_ROLL" value="1250"/>
<define name="ROLL_ATTITUDE_GAIN" value="9000"/>
<define name="ROLL_RATE_GAIN" value="1600"/>
<define name="ROLL_SLEW" value="0.1"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="20"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="0.85"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.13"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.1"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/><!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="5" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0" unit="%"/>
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
<!-- Launcher Takeoff Configuration -->
<section name="LAUNCHER" prefix="LAUNCHER_TAKEOFF_">
<define name="PITCH" value="0.23" unit="rad"/>
<define name="HEIGHT" value="70" unit="m"/>
<define name="HEIGHT_THRESHOLD" value="10" unit="m"/>
<define name="MIN_SPEED_CIRCLE" value="8" unit="m/s"/>
<define name="DISTANCE" value="30" unit="m"/>
<define name="MIN_SPEED_LINE" value="5" unit="m/s"/>
<define name="CIRCLE_ALT" value="100" unit="m"/>
<define name="CIRCLE_RADIUS" value="200" unit="m"/>
<define name="MAX_CIRCLE_DISTANCE" value="800" unit="m"/>
</section>
<!-- Skid Landing Configuration -->
<section name="LANDING" prefix="SKID_LANDING_">
<define name="AF_HEIGHT" value="50" unit="m"/>
<define name="FINAL_HEIGHT" value="50" unit="m"/>
<define name="FINAL_STAGE_TIME" value="10" unit="s"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="JSBSIM_LAUNCHSPEED" value="25"/>
<define name="JSBSIM_MODEL" value="AGGIEAIR/minion" type="string"/>
<define name="JS_AXIS_THROTTLE" value="0"/>
<define name="JS_AXIS_THROTTLE_REVERSED" value="1"/>
<define name="JS_AXIS_ROLL" value="1"/>
<define name="JS_AXIS_PITCH" value="2"/>
<define name="JS_AXIS_PITCH_REVERSED" value="1"/>
<define name="JS_AXIS_YAW" value="3"/>
<define name="JS_AXIS_YAW_REVERSED" value="1"/>
<define name="JS_AXIS_FLAPS" value="5"/>
<define name="JS_AXIS_MODE" value="7"/>
<define name="JSBSIM_ROLL_TRIM" value="0.008"/>
<define name="JSBSIM_PITCH_TRIM" value="0.0375"/>
<define name="JSBSIM_YAW_TRIM" value="0.001"/>
</section>
</airframe>
@@ -1,391 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!-- this is a quadrotor frame equiped with
* Autopilot: 3dr Pixhawk 2.4
* IMU: L3GD20 + LSM303D + MPU6000 + external HMC58XX
* Actuators: PWM motor controllers
* GPS: Ublox http://wiki.paparazziuav.org/wiki/Subsystem/gps
* RC: PPM
-->
<airframe name="iris_indi">
<firmware name="rotorcraft">
<!-- Main autopilot MCU -->
<target name="ap" board="px4fmu_2.4">
<configure name="PERIODIC_FREQUENCY" value="200"/>
<configure name="TELEMETRY_FREQUENCY" value="50"/>
<comment>
amount of time it take for the bat to check
to avoid bat low spike detection when strong pullup withch draws short sudden power
</comment>
<define name="BAT_CHECKER_DELAY" value="80" /><!-- in seconds-->
<define name="CATASTROPHIC_BATTERY_KILL_DELAY" value="80" /><!-- in seconds-->
<module name="telemetry" type="transparent_gec">
<configure name="MODEM_PORT" value="UART2"/>
<configure name="MODEM_BAUD" value="B57600"/>
</module>
<module name="telemetry" type="intermcu"/>
<module name="imu" type="px4fmu_v2.4"/>
<module name="gps" type="ublox"/>
<!--module name="stabilization" type="indi_simple"/-->
<module name="stabilization" type="float_euler"/>
<!--module name="guidance" type="indi">
<define name="GUIDANCE_INDI_SPECIFIC_FORCE_GAIN" value="-500.0"/>
</module-->
<!--module name="ahrs" type="int_cmpl_quat">
<define name="AHRS_ICQ_IMU_ID" value="IMU_PX4_ID" />
<define name="AHRS_ICQ_MAG_ID" value="MAG_HMC58XX_SENDER_ID" />
<configure name="USE_MAGNETOMETER" value="TRUE"/>
<define name="AHRS_USE_GPS_HEADING" value="FALSE"/>
</module-->
<module name="ahrs" type="float_mlkf">
<configure name="SECONDARY_AHRS" value="float_mlkf"/>
<define name="AHRS_MLKF_IMU_ID" value="IMU_PX4_ID"/>
<comment>
use external mag
</comment>
<define name="AHRS_MLKF_MAG_ID" value="MAG_HMC58XX_SENDER_ID" />
<configure name="USE_MAGNETOMETER" value="TRUE"/>
</module>
<module name="ahrs" type="vectornav">
<configure name="VN_PORT" value="UART3"/>
<configure name="VN_BAUD" value="B921600"/>
<!--configure name="SECONDARY_AHRS" value="vectornav"/-->
</module>
<!--module name="ins" type="float_invariant">
<define name="INS_FINV_IMU_ID" value="IMU_PX4_ID" />
<define name="INS_FINV_MAG_ID" value="MAG_HMC58XX_SENDER_ID" />
<define name="INS_FINV_GPS_ID" value="GPS_UBX_ID" />
<define name="SEND_INVARIANT_FILTER"/>
</module-->
<!-- extended INS uses sonar for vertical estimates -->
<module name="ins" type="extended"/>
<!-- Horizontal Filter Float (HFF) INS uses simple Kalman filters to horizontal estimate,
No sonar/lidar updates though -->
<!--module name="ins" type="hff"/-->
<module name="current_sensor">
<configure name="ADC_CURRENT_SENSOR" value="ADC_3" />
</module>
<module name="intermcu" type="uart">
<configure name="INTERMCU_PORT" value="UART6" />
<configure name="INTERMCU_BAUD" value="B1500000" /> <!-- This is only during first 10s start up, afterwards it is set to 230400-->
</module>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="200" />
</module>
<!-- allow flashing FBW target through AP -->
<module name="px4_flash"/>
<!-- CPU utilization monitor -->
<module name="sys_mon"/>
<!-- optical flow camera over i2c-->
<module name="px4flow_i2c">
<configure name="USE_PX4FLOW_AGL" value="0" description="don't send AGL measurements"/>
<comment>compensate AGL for body rotation</comment>
<configure name="PX4FLOW_COMPENSATE_ROTATION" value="1"/>
<configure name="PX4FLOW_NOISE_STDDEV" value="10.0"/> <!-- standard deviation of the optical flow measurements-->
</module>
<!-- laser range finder for precise AGL measurement -->
<module name="lidar_lite">
<configure name="USE_LIDAR_LITE_AGL" value="1"/> <!-- send AGL measurements -->
<configure name="LIDAR_LITE_COMPENSATE_ROTATION" value="1" /> <!-- compensate AGL for body rotation -->
</module>
<!-- laser range finder for precise AGL measurement -->
<module name="lidar_sf11">
<configure name="USE_LIDAR_SF11_AGL" value="0"/> <!-- dont send AGL measurements -->
<configure name="LIDAR_SF11_COMPENSATE_ROTATION" value="1" /> <!-- compensate AGL for body rotation -->
</module>
<!-- external mag for better heading estimate -->
<module name="mag" type="hmc58xx">
<configure name="MAG_HMC58XX_I2C_DEV" value="i2c1"/>
<define name="MODULE_HMC58XX_UPDATE_AHRS" value="TRUE"/>
<define name="HMC58XX_CHAN_X" value="1"/>
<define name="HMC58XX_CHAN_Y" value="0"/>
<define name="HMC58XX_CHAN_Z" value="2"/>
<define name="HMC58XX_CHAN_X_SIGN" value="-"/>
<define name="HMC58XX_CHAN_Y_SIGN" value="+"/>
<define name="HMC58XX_CHAN_Z_SIGN" value="+"/>
</module>
<module name="air_data"/>
<!--
<module name="tlsf"/>
<module name="pprzlog"/>
<module name="logger" type="sd_chibios"/>
<module name="flight_recorder"/>
-->
</target>
<!-- IO board / FBW MCU -->
<target name="fbw" board="px4io_2.4">
<configure name="PERIODIC_FREQUENCY" value="200"/>
<module name="motor_mixing" />
<module name="radio_control" type="ppm">
<define name="USE_KILL_SWITCH_FOR_MOTOR_ARMING" value="1" />
<define name="RADIO_KILL_SWITCH" value="RADIO_KILL" />
</module>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="200" />
</module>
<define name="RC_LOST_FBW_MODE" value="FBW_MODE_FAILSAFE" />
<!-- Switch to Failsafe or to Autopilot on RC loss? -->
<define name="RC_LOST_IN_AUTO_FBW_MODE" value="FBW_MODE_AUTO" />
<define name="AP_LOST_FBW_MODE" value="FBW_MODE_FAILSAFE" />
<!-- Switch to Failsafe or to Manual on AP loss? -->
<define name="INTERMCU_LOST_CNT" value="100" />
<module name="intermcu" type="uart">
<configure name="INTERMCU_PORT" value="UART2" />
<configure name="INTERMCU_BAUD" value="B1500000" />
</module>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="$(INTERMCU_PORT)"/>
<configure name="MODEM_BAUD" value="$(INTERMCU_BAUD)"/>
<define name="TELEMETRY_DISABLE_RX"/>
</module>
</target>
</firmware>
<section name="MISC">
<define name="MilliAmpereOfAdc(adc)" value="((float)adc) * (3.3f / 4096.0f) * (90.0f / 5.0f)" />
<!-- 100Amp = 2Volt -> 2482,42 tick/100Amp"(0.0402832*adc)" -->
</section>
<section name="IMU" prefix="IMU_">
<!-- #3 calibraton -->
<!--
<define name="ACCEL_X_NEUTRAL" value="-2"/>
<define name="ACCEL_Y_NEUTRAL" value="23"/>
<define name="ACCEL_Z_NEUTRAL" value="21"/>
<define name="ACCEL_X_SENS" value="7.68290727703" integer="16"/>
<define name="ACCEL_Y_SENS" value="7.41725548536" integer="16"/>
<define name="ACCEL_Z_SENS" value="7.25648506436" integer="16"/>
-->
<!--#1 calibration -->
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="12"/>
<define name="ACCEL_Z_NEUTRAL" value="23"/>
<define name="ACCEL_X_SENS" value="7.40346702354" integer="16"/>
<define name="ACCEL_Y_SENS" value="7.31092326815" integer="16"/>
<define name="ACCEL_Z_SENS" value="7.60884042632" integer="16"/>
<!-- #3 internal mag -->
<!--
<define name="MAG_X_NEUTRAL" value="-831"/>
<define name="MAG_Y_NEUTRAL" value="-2458"/>
<define name="MAG_Z_NEUTRAL" value="1623"/>
<define name="MAG_X_SENS" value="0.383688492241" integer="16"/>
<define name="MAG_Y_SENS" value="0.363160500566" integer="16"/>
<define name="MAG_Z_SENS" value="0.398814954916" integer="16"/>
-->
<!-- #3 external mag -->
<!--
<define name="MAG_X_NEUTRAL" value="100"/>
<define name="MAG_Y_NEUTRAL" value="-11"/>
<define name="MAG_Z_NEUTRAL" value="-84"/>
<define name="MAG_X_SENS" value="3.95372806212" integer="16"/>
<define name="MAG_Y_SENS" value="3.85554408345" integer="16"/>
<define name="MAG_Z_SENS" value="4.43807458722" integer="16"/>
-->
<!-- #1 external mag -->
<define name="MAG_X_NEUTRAL" value="90"/>
<define name="MAG_Y_NEUTRAL" value="-12"/>
<define name="MAG_Z_NEUTRAL" value="3"/>
<define name="MAG_X_SENS" value="3.9581923374" integer="16"/>
<define name="MAG_Y_SENS" value="4.06927263588" integer="16"/>
<define name="MAG_Z_SENS" value="4.43592657252" integer="16"/>
<!-- #1 internal mag -->
<!--
<define name="MAG_X_NEUTRAL" value="-770"/>
<define name="MAG_Y_NEUTRAL" value="2338"/>
<define name="MAG_Z_NEUTRAL" value="-4760"/>
<define name="MAG_X_SENS" value="0.37262897642" integer="16"/>
<define name="MAG_Y_SENS" value="0.367752873196" integer="16"/>
<define name="MAG_Z_SENS" value="0.388678431908" integer="16"/>
-->
<define name="BODY_TO_IMU_PHI" value="0." unit="deg" />
<define name="BODY_TO_IMU_THETA" value="0." unit="deg" />
<define name="BODY_TO_IMU_PSI" value="0." unit="deg" />
</section>
<commands>
<axis name="PITCH" failsafe_value="0" />
<axis name="ROLL" failsafe_value="0" />
<axis name="YAW" failsafe_value="0" />
<axis name="THRUST" failsafe_value="0" />
</commands>
<rc_commands>
<set command="THRUST" value="@THROTTLE" />
<set command="ROLL" value="@ROLL" />
<set command="PITCH" value="@PITCH" />
<set command="YAW" value="@YAW" />
</rc_commands>
<servos driver="Default">
<servo name="TOP_LEFT" no="2" min="1000" neutral="1100" max="2000" />
<servo name="TOP_RIGHT" no="0" min="1000" neutral="1100" max="2000" />
<servo name="BOTTOM_RIGHT" no="3" min="1000" neutral="1100" max="2000" />
<servo name="BOTTOM_LEFT" no="1" min="1000" neutral="1100" max="2000" />
</servos>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0" />
<define name="TRIM_PITCH" value="0" />
<define name="TRIM_YAW" value="0" />
<define name="REVERSE" value="FALSE" />
<define name="TYPE" value="QUAD_X" />
</section>
<command_laws>
<call fun="motor_mixing_run(fbw_motors_on,FALSE,values)" />
<set servo="TOP_LEFT" value="motor_mixing.commands[MOTOR_FRONT_LEFT]" />
<set servo="TOP_RIGHT" value="motor_mixing.commands[MOTOR_FRONT_RIGHT]" />
<set servo="BOTTOM_RIGHT" value="motor_mixing.commands[MOTOR_BACK_RIGHT]" />
<set servo="BOTTOM_LEFT" value="motor_mixing.commands[MOTOR_BACK_LEFT]" />
</command_laws>
<!-- local magnetic field -->
<!-- http://wiki.paparazziuav.org/wiki/Subsystem/ahrs#Local_Magnetic_Field -->
<section name="AHRS" prefix="AHRS_">
<!-- For vibrating airfames -->
<define name="GRAVITY_HEURISTIC_FACTOR" value="0"/>
</section>
<section name="INS" prefix="INS_">
<define name="SONAR_MAX_RANGE" value="5.0" />
<!-- Portland
Normalize[{19443.3, 5354.0,48519.5}] = (0.37004, 0.101896, 0.923411)-->
<define name="H_X" value="0.37004"/>
<define name="H_Y" value="0.101896"/>
<define name="H_Z" value="0.923411"/>
<!-- trust more the baro over the gps alt -->
<define name="INV_NXZ" value="0.3"/>
<define name="INV_NH" value="2.0"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="35." unit="deg"/>
<define name="SP_MAX_THETA" value="35." unit="deg"/>
<define name="SP_MAX_R" value="40." unit="deg/s"/>
<define name="DEADBAND_A" value="5"/>
<define name="DEADBAND_E" value="5"/>
<define name="DEADBAND_R" value="10"/>
<!-- inetgrator limits -->
<define name="MAX_SUM_ERR" value="50"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="180." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- Big fat ARK Gains -->
<define name="PHI_PGAIN" value="2700"/>
<define name="PHI_DGAIN" value="700"/>
<define name="PHI_IGAIN" value="5.0"/>
<define name="THETA_PGAIN" value="2700"/>
<define name="THETA_DGAIN" value="700"/>
<define name="THETA_IGAIN" value="5.0"/>
<define name="PSI_PGAIN" value="4000"/>
<define name="PSI_DGAIN" value="3500"/>
<define name="PSI_IGAIN" value="1.5"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="5"/>
<define name="THETA_DDGAIN" value="5"/>
<define name="PSI_DDGAIN" value="10"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="70" />
<define name="HOVER_KD" value="70" />
<define name="HOVER_KI" value="40" />
<define name="NOMINAL_HOVER_THROTTLE" value="0.55" />
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE" />
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<!-- Good weather -->
<define name="MAX_BANK" value="20" unit="deg" />
<define name="REF_MAX_SPEED" value="2" unit="m/s" />
<!-- Bad weather -->
<!-- define name="MAX_BANK" value="32" unit="deg"/ -->
<define name="PGAIN" value="120" />
<define name="DGAIN" value="100" />
<define name="IGAIN" value="30" />
</section>
<section name="NAVIGATION" prefix="NAV_">
<define name="CLIMB_VSPEED" value="4.5" />
<define name="DESCEND_VSPEED" value="-1.0" />
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="nw_motor, ne_motor, se_motor, sw_motor" type="string[]" />
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string" />
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_ATTITUDE_DIRECT" />
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO2" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<!--define name="MODE_AUTO2" value="AP_MODE_HOVER_DIRECT"/-->
<!--define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/-->
<define name="NO_RC_THRUST_LIMIT" value="FALSE" />
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="8700" />
<define name="CATASTROPHIC_BAT_LEVEL" value="9.9" unit="V" />
<define name="CRITIC_BAT_LEVEL" value="10.8" unit="V" />
<define name="LOW_BAT_LEVEL" value="11.1" unit="V" />
<define name="MAX_BAT_LEVEL" value="12.4" unit="V" />
</section>
</airframe>
@@ -1,292 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
AggieAir RP3 Minion
-->
<airframe name="Minion PR3">
<firmware name="fixedwing">
<target name="ap" board="lisa_mx_2.1">
<module name="radio_control" type="sbus">
<configure name="SBUS_PORT" value="UART5"/>
</module>
<configure name="HAS_LUFTBOOT" value="1"/>
<configure name="FLASH_MODE" value="DFU"/>
</target>
<!-- NOTE: if you want to use extra_dl module for HITL
you have to set TELEMETRY_FREQUENCY to CONTROL_FREQUENCY -->
<configure name="PERIODIC_FREQUENCY" value="100"/>
<define name="CONTROL_FREQUENCY" value="100"/>
<configure name="TELEMETRY_FREQUENCY" value="100"/>
<define name="SERVO_HZ" value="100"/>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
</target>
<module name="control"/>
<module name="navigation"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART3"/>
<configure name="MODEM_BAUD" value="B57600"/>
</module>
<module name="ins" type="vectornav">
<configure name="VN_PORT" value="UART2"/>
<configure name="VN_BAUD" value="B921600"/>
</module>
<define name="AGR_CLIMB" />
<define name="POLY_OSAM_HALF_SWEEP_ENABLED" value="FALSE"/>
<define name="GEOFENCE_DATALINK_LOST_TIME" value="45"/>
<module name="nav" type="line"/>
<module name="nav" type="flower"/>
<module name="nav" type="survey_poly_osam"/>
<module name="nav" type="launcher"/>
<module name="nav" type="skid_landing"/>
<module name="sys_mon"/>
<module name="copilot"/>
<module name="extra_dl">
<!-- in order to use uart1 without chibios we need to remap the peripheral-->
<define name="REMAP_UART1" value="TRUE"/>
<configure name="EXTRA_DL_PORT" value="UART1"/>
<configure name="EXTRA_DL_BAUD" value="B921600"/>
</module>
<module name="lidar_sf11">
<configure name="LIDAR_SF11_I2C_DEV" value="i2c2"/>
</module>
<module name="battery_monitor.xml">
<define name="BATMON_REV4" value="1"/>
<define name="BATMON_CURRENT_OFFSET" value="-120"/>
<define name="BATMON_CURRENT_SENSITIVITY" value="25.6"/>
<define name="BATMON_TEMP_OFFSET" value="250"/>
<define name="BATMON_TEMP_SENSITIVITY" value="10"/>
</module>
</firmware>
<!-- commands section -->
<!-- Servo Configuration -->
<servos>
<servo name="THROTTLE" no="0" min="1100" neutral="1100" max="1900"/>
<servo name="AILERON_RIGHT" no="1" min="900" neutral="1500" max="2100"/>
<servo name="AILERON_LEFT" no="2" min="2100" neutral="1500" max="900"/>
<servo name="ELEVATOR" no="3" min="2100" neutral="1500" max="900"/>
<servo name="RUDDER" no="4" min="2100" neutral="1500" max="900"/>
<servo name="FLAP" no="5" min="900" neutral="1500" max="2100"/>
</servos>
<!-- Servo Command Structure -->
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="FLAP" failsafe_value="0"/>
</commands>
<!-- RC Command Structure -->
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
<set command="FLAP" value="@FLAP"/>
</rc_commands>
<!-- Define RC commands to Servo in Auto Mode -->
<auto_rc_commands>
<set command="YAW" value="@YAW"/>
<set command="FLAP" value="@FLAP"/>
</auto_rc_commands>
<!-- Define Mixing Parameters -->
<section name="MIXER">
<define name="AILERON_AILERON_RATE" value="0.9"/>
<define name="ELEV_ELEV_RATE" value="0.8"/>
</section>
<!-- Define RC commands to Servos in Manual -->
<command_laws>
<let var="aileron" value="@ROLL * AILERON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * ELEV_ELEV_RATE"/>
<set servo="THROTTLE" value="@THROTTLE"/>
<set servo="AILERON_RIGHT" value="$aileron"/> <!--flip signs if necessary -->
<set servo="AILERON_LEFT" value=" - $aileron"/>
<set servo="ELEVATOR" value="$elevator"/>
<set servo="RUDDER" value="@YAW"/>
<set servo="FLAP" value="@FLAP"/>
</command_laws>
<!-- Define Max Roll and Pitch setpoints in Auto1 -->
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.7"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
<!-- Dummy Mag values for NPS -
replace with your own calibration -->
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
</section>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
</section>
<!-- Define current estimator and Battery Level Warnings -->
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="50000"/>
<define name="CURRENT_ESTIMATION_NONLINEARITY" value="1.3"/>
<!-- Flight values -->
<!--
<define name="MAX_BAT_LEVEL" value="16.5" unit="V" />
<define name="LOW_BAT_LEVEL" value="14.1" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="13.8" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="13.5" unit="V"/>
-->
<!-- Simulator values -->
<define name="MAX_BAT_LEVEL" value="5.0" unit="V" />
<define name="LOW_BAT_LEVEL" value="4.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.5" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="16." unit="m/s"/> <!-- GCS only -->
<define name="CARROT" value="5." unit="s"/> <!-- GCS only -->
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="120."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<!-- TODO: double check the power controls settings, this value seems to be outdated -->
<!--define name="POWER_CTL_BAT_NOMINAL" value="23.2" unit="volt"/-->
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.136"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.40"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.20"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.70"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.05" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.142"/>
<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/>
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.1"/>
<define name="AUTO_PITCH_IGAIN" value="0.025"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.31415" unit="rad"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.31415" unit="rad"/>
<!-- landing control loop -->
<define name="LANDING_THROTTLE_PGAIN" value="600.0"/>
<define name="LANDING_THROTTLE_IGAIN" value="10.0"/>
<define name="LANDING_THROTTLE_MAX" value="0.65"/>
<define name="LANDING_DESIRED_SPEED" value="18" unit="m/s"/>
<define name="LANDING_PITCH_PGAIN" value="0.1"/>
<define name="LANDING_PITCH_IGAIN" value="0.1"/>
<define name="LANDING_PITCH_LIMITS" value="0.2" unit="rad"/>
<define name="LANDING_PITCH_FLARE" value="0.06"/>
<define name="LANDING_ALT_THROTTLE_KILL" value="15" unit="m"/>
<define name="LANDING_ALT_FLARE" value="5" unit="m"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="1.135"/>
<define name="COURSE_DGAIN" value="0.35"/>
<define name="ROLL_MAX_SETPOINT" value="0.5" unit="rad"/>
<define name="PITCH_MAX_SETPOINT" value="0.35" unit="rad"/>
<define name="PITCH_MIN_SETPOINT" value="-0.2" unit="rad"/>
<define name="PITCH_PGAIN" value="12900."/>
<!-- ORIGINAL GAIN
<define name="PITCH_DGAIN" value="1.5"/>
-->
<!-- SIMULATOR GAIN -->
<define name="PITCH_DGAIN" value="151.5"/>
<define name="ELEVATOR_OF_ROLL" value="1250"/>
<define name="ROLL_ATTITUDE_GAIN" value="9000"/>
<define name="ROLL_RATE_GAIN" value="1600"/>
<define name="ROLL_SLEW" value="0.1"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="20"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="0.75"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.13"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.1"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/><!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="5" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0" unit="%"/>
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
<!-- Launcher Takeoff Configuration -->
<section name="LAUNCHER" prefix="LAUNCHER_TAKEOFF_">
<define name="PITCH" value="0.23" unit="rad"/>
<define name="HEIGHT" value="70" unit="m"/>
<define name="MIN_SPEED_CIRCLE" value="8" unit="m/s"/>
<define name="DISTANCE" value="30" unit="m"/>
<define name="MIN_SPEED_LINE" value="5" unit="m/s"/>
</section>
<!-- Skid Landing Configuration -->
<section name="LANDING" prefix="SKID_LANDING_">
<define name="AF_HEIGHT" value="50" unit="m"/>
<define name="FINAL_HEIGHT" value="50" unit="m"/>
<define name="FINAL_STAGE_TIME" value="10" unit="s"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="JSBSIM_LAUNCHSPEED" value="25"/>
<define name="JSBSIM_MODEL" value="AGGIEAIR/minion" type="string"/>
<define name="JS_AXIS_THROTTLE" value="0"/>
<define name="JS_AXIS_THROTTLE_REVERSED" value="1"/>
<define name="JS_AXIS_ROLL" value="1"/>
<define name="JS_AXIS_PITCH" value="2"/>
<define name="JS_AXIS_PITCH_REVERSED" value="1"/>
<define name="JS_AXIS_YAW" value="3"/>
<define name="JS_AXIS_YAW_REVERSED" value="1"/>
<define name="JS_AXIS_FLAPS" value="5"/>
<define name="JS_AXIS_MODE" value="7"/>
<define name="JSBSIM_ROLL_TRIM" value="0.008"/>
<define name="JSBSIM_PITCH_TRIM" value="0.0375"/>
<define name="JSBSIM_YAW_TRIM" value="0.001"/>
</section>
</airframe>
@@ -1,299 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
AggieAir Minty Fresh
-->
<airframe name="AggieAir Minty Fresh">
<firmware name="fixedwing">
<target name="ap" board="lisa_mx_2.1">
<module name="radio_control" type="sbus">
<configure name="SBUS_PORT" value="UART5"/>
</module>
<configure name="HAS_LUFTBOOT" value="1"/>
<configure name="FLASH_MODE" value="DFU"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART3"/>
<configure name="MODEM_BAUD" value="B57600"/>
<define name="GEC_STATUS_LED" value="5"/>
</module>
</target>
<!-- NOTE: if you want to use extra_dl module for HITL
you have to set TELEMETRY_FREQUENCY to CONTROL_FREQUENCY -->
<configure name="PERIODIC_FREQUENCY" value="100"/>
<define name="CONTROL_FREQUENCY" value="100"/>
<configure name="TELEMETRY_FREQUENCY" value="100"/>
<define name="SERVO_HZ" value="100"/>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<module name="telemetry" type="transparent"/>
</target>
<module name="control"/>
<module name="navigation"/>
<module name="ins" type="vectornav">
<configure name="VN_PORT" value="UART2"/>
<configure name="VN_BAUD" value="B230400"/>
</module>
<define name="AGR_CLIMB" />
<define name="POLY_OSAM_HALF_SWEEP_ENABLED" value="FALSE"/>
<define name="GEOFENCE_DATALINK_LOST_TIME" value="45"/>
<module name="nav" type="line"/>
<module name="nav" type="flower"/>
<module name="nav" type="survey_poly_osam"/>
<module name="nav" type="launcher"/>
<module name="nav" type="skid_landing"/>
<module name="nav" type="line_osam"/>
<module name="sys_mon"/>
<module name="copilot"/>
<module name="extra_dl">
<!-- in order to use uart1 without chibios we need to remap the peripheral-->
<define name="REMAP_UART1" value="TRUE"/>
<configure name="EXTRA_DL_PORT" value="UART1"/>
<configure name="EXTRA_DL_BAUD" value="B921600"/>
</module>
<module name="lidar_sf11">
<configure name="LIDAR_SF11_I2C_DEV" value="i2c2"/>
</module>
<module name="battery_monitor.xml">
<define name="BATMON_REV4" value="1"/>
<define name="BATMON_CURRENT_OFFSET" value="-120"/>
<define name="BATMON_CURRENT_SENSITIVITY" value="25.6"/>
<define name="BATMON_TEMP_OFFSET" value="250"/>
<define name="BATMON_TEMP_SENSITIVITY" value="10"/>
</module>
<module name="air_data"/>
</firmware>
<!-- commands section -->
<!-- Servo Configuration -->
<servos>
<servo name="THROTTLE" no="5" min="1100" neutral="1100" max="1900"/>
<servo name="AILERON_RIGHT" no="1" min="1900" neutral="1500" max="1100"/>
<servo name="AILERON_LEFT" no="2" min="1100" neutral="1500" max="1900"/>
<servo name="ELEVATOR" no="3" min="1100" neutral="1500" max="1900"/>
<servo name="RUDDER" no="4" min="1100" neutral="1500" max="1900"/>
<servo name="FLAP" no="0" min="1900" neutral="1100" max="1100"/>
</servos>
<!-- Servo Command Structure -->
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="FLAP" failsafe_value="9600"/>
</commands>
<!-- RC Command Structure -->
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
<set command="FLAP" value="@FLAP"/>
</rc_commands>
<!-- Define RC commands to Servo in Auto Mode -->
<auto_rc_commands>
<set command="YAW" value="@YAW"/>
</auto_rc_commands>
<!-- Define Mixing Parameters -->
<section name="MIXER">
<define name="AILERON_AILERON_RATE" value="0.9"/>
<define name="ELEV_ELEV_RATE" value="0.8"/>
</section>
<!-- Define RC commands to Servos in Manual -->
<command_laws>
<let var="aileron" value="@ROLL * AILERON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * ELEV_ELEV_RATE"/>
<set servo="THROTTLE" value="@THROTTLE"/>
<set servo="AILERON_RIGHT" value="$aileron"/> <!--flip signs if necessary -->
<set servo="AILERON_LEFT" value=" - $aileron"/>
<set servo="ELEVATOR" value="$elevator"/>
<set servo="RUDDER" value="@YAW"/>
<set servo="FLAP" value="@FLAP"/>
</command_laws>
<!-- Define Max Roll and Pitch setpoints in Auto1 -->
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.7"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
<!-- Dummy Mag values for NPS -
replace with your own calibration -->
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
</section>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
</section>
<!-- Define current estimator and Battery Level Warnings -->
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="50000"/>
<define name="CURRENT_ESTIMATION_NONLINEARITY" value="1.3"/>
<!-- Flight values -->
<define name="MAX_BAT_LEVEL" value="16.8" unit="V" />
<define name="LOW_BAT_LEVEL" value="14.5" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="14.3" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="14.1" unit="V"/>
<!-- Simulator values -->
<!--
<define name="MAX_BAT_LEVEL" value="5.0" unit="V" />
<define name="LOW_BAT_LEVEL" value="4.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.5" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
-->
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="16." unit="m/s"/> <!-- GCS only -->
<define name="CARROT" value="5." unit="s"/> <!-- GCS only -->
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="120."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<!-- TODO: double check the power controls settings, this value seems to be outdated -->
<!--define name="POWER_CTL_BAT_NOMINAL" value="23.2" unit="volt"/-->
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.136"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.42"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.20"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.70"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.05" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.142"/>
<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/>
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.1"/>
<define name="AUTO_PITCH_IGAIN" value="0.025"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.31415" unit="rad"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.31415" unit="rad"/>
<!-- landing control loop -->
<define name="LANDING_THROTTLE_PGAIN" value="600.0"/>
<define name="LANDING_THROTTLE_IGAIN" value="10.0"/>
<define name="LANDING_THROTTLE_MAX" value="0.65"/>
<define name="LANDING_DESIRED_SPEED" value="18" unit="m/s"/>
<define name="LANDING_PITCH_PGAIN" value="0.1"/>
<define name="LANDING_PITCH_IGAIN" value="0.1"/>
<define name="LANDING_PITCH_LIMITS" value="0.2" unit="rad"/>
<define name="LANDING_PITCH_FLARE" value="0.06"/>
<define name="LANDING_ALT_THROTTLE_KILL" value="15" unit="m"/>
<define name="LANDING_ALT_FLARE" value="5" unit="m"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="1.135"/>
<define name="COURSE_DGAIN" value="0.35"/>
<define name="ROLL_MAX_SETPOINT" value="0.6" unit="rad"/>
<define name="PITCH_MAX_SETPOINT" value="0.35" unit="rad"/>
<define name="PITCH_MIN_SETPOINT" value="-0.2" unit="rad"/>
<define name="PITCH_PGAIN" value="12900."/>
<!-- ORIGINAL GAIN -->
<define name="PITCH_DGAIN" value="1.5"/>
<!-- SIMULATOR GAIN-->
<!--define name="PITCH_DGAIN" value="151.5"/-->
<define name="ELEVATOR_OF_ROLL" value="1250"/>
<define name="ROLL_ATTITUDE_GAIN" value="9000"/>
<define name="ROLL_RATE_GAIN" value="1600"/>
<define name="ROLL_SLEW" value="0.1"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="20"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="0.85"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.13"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.1"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/><!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="5" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0" unit="%"/>
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
<!-- Launcher Takeoff Configuration -->
<section name="LAUNCHER" prefix="LAUNCHER_TAKEOFF_">
<define name="PITCH" value="0.23" unit="rad"/>
<define name="HEIGHT" value="70" unit="m"/>
<define name="HEIGHT_THRESHOLD" value="10" unit="m"/>
<define name="MIN_SPEED_CIRCLE" value="8" unit="m/s"/>
<define name="DISTANCE" value="30" unit="m"/>
<define name="MIN_SPEED_LINE" value="5" unit="m/s"/>
<define name="CIRCLE_ALT" value="100" unit="m"/>
<define name="CIRCLE_RADIUS" value="200" unit="m"/>
<define name="MAX_CIRCLE_DISTANCE" value="800" unit="m"/>
</section>
<!-- Skid Landing Configuration -->
<section name="LANDING" prefix="SKID_LANDING_">
<define name="AF_HEIGHT" value="50" unit="m"/>
<define name="FINAL_HEIGHT" value="50" unit="m"/>
<define name="FINAL_STAGE_TIME" value="10" unit="s"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="JSBSIM_LAUNCHSPEED" value="25"/>
<define name="JSBSIM_MODEL" value="AGGIEAIR/minion" type="string"/>
<define name="JS_AXIS_THROTTLE" value="0"/>
<define name="JS_AXIS_THROTTLE_REVERSED" value="1"/>
<define name="JS_AXIS_ROLL" value="1"/>
<define name="JS_AXIS_PITCH" value="2"/>
<define name="JS_AXIS_PITCH_REVERSED" value="1"/>
<define name="JS_AXIS_YAW" value="3"/>
<define name="JS_AXIS_YAW_REVERSED" value="1"/>
<define name="JS_AXIS_FLAPS" value="5"/>
<define name="JS_AXIS_MODE" value="7"/>
<define name="JSBSIM_ROLL_TRIM" value="0.008"/>
<define name="JSBSIM_PITCH_TRIM" value="0.0375"/>
<define name="JSBSIM_YAW_TRIM" value="0.001"/>
</section>
</airframe>
-200
View File
@@ -1,200 +0,0 @@
<!-- this is a 3D foam frame equiped with Lisa/S 1.0 -->
<!-- The frame comes with 1pwm ESC and 3pwm servos. -->
<!--
use DSM2 for supperbit RF
After flashing remove USB devises for 10 sevonds before plugging supperbitRF USB dongle.
use in session for
Datalink /home/microuav/paparazzi/sw/ground_segment/tmtc/link -d /dev/ttyACM0 -s 57600
server /home/microuav/paparazzi/sw/ground_segment/tmtc/server
GCS /home/microuav/paparazzi/sw/ground_segment/cockpit/gcs -speech
messages /home/microuav/paparazzi/sw/ground_segment/tmtc/messages
-->
<!--
Applicable configuration:
airframe="airframes/examples/ladybird_lisa_s.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
Pin 3 on lisa/s is number 0 in airframefile = AILERON
Pin 4 on lisa/s is number 1 in airframefile = MOTOR
Pin 5 on lisa/s is number 2 in airframefile = RUDDER
Pin 6 on lisa/s is number 3 in airframefile = ELEVATOR
-->
<airframe name="3Dplane_lisa_s">
<servos driver="Pwm">
<servo name="AILERON" no="0" min="1900" neutral="1500" max="1100"/>
<servo name="MOTOR" no="1" min="1000" neutral="1000" max="1900"/>
<servo name="RUDDER" no="2" min="1100" neutral="1500" max="1900"/>
<servo name="ELEVATOR" no="3" min="1900" neutral="1500" max="1100"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<set servo="MOTOR" value="@THRUST"/>
<set servo="AILERON" value="@ROLL"/>
<set servo="RUDDER" value="@YAW"/>
<set servo="ELEVATOR" value="@PITCH"/>
</command_laws>
<include href="conf/airframes/tudelft/calibrations/ladybird18.xml" />
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_RC_DIRECT"/>
<define name="USE_THROTTLE_FOR_MOTOR_ARMING" value="TRUE"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="14000"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="2.8" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.0" unit="V"/>
<define name="LOW_BAT_LEVEL" value="3.2" unit="V"/>
<define name="MAX_BAT_LEVEL" value="4.1" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="400"/>
<define name="PHI_DGAIN" value="200"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="400"/>
<define name="THETA_DGAIN" value="200"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="0"/>
<define name="THETA_DDGAIN" value="0"/>
<define name="PSI_DDGAIN" value=" 300"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="276"/>
<define name="HOVER_KD" value="455"/>
<define name="HOVER_KI" value="100"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value="0.5"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- Delft magnetic field -->
<define name="H_X" value="0.39049610"/>
<define name="H_Y" value="0.00278894"/>
<define name="H_Z" value="0.92060036"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="90"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="24"/>
</section>
<section name="NAVIGATION" prefix="NAV_">
<define name="CLIMB_VSPEED" value="1.0" />
<define name="DESCEND_VSPEED" value="-0.5" />
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_s_1.0">
<module name="radio_control" type="superbitrf_rc">
<define name="RADIO_MODE" value="RADIO_GEAR"/>
<!--<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>-->
<define name="USE_PERSISTENT_SETTINGS" value="TRUE"/>
</module>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
</target>
<!--target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target-->
<module name="actuators" type="pwm">
<!-- Setting the PWM interval to 400Hz -->
<define name="SERVO_HZ" value="400"/>
<!-- <define name="USE_SERVOS_1AND2"/> -->
</module>
<!--<module name="telemetry" type="superbitrf"/>-->
<!-- Comment the previous line and uncomment the following one if you need
to use the debug serial interface for telemetry. -->
<module name="telemetry" type="superbitrf"/>
<module name="imu" type="lisa_s_v1.0">
<!-- <define name="LISA_S_UPSIDE_DOWN"/> Upside down is a relative term. :) -->
</module>
<module name="gps" type="ublox"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="1"/>
<define name="AHRS_USE_GPS_HEADING" value="0"/>
</module>
<module name="ins"/>
<module name="gps" type="ubx_ucenter"/>
</firmware>
</airframe>
-226
View File
@@ -1,226 +0,0 @@
<!--
This is a DelFly II airframe equiped with Lisa/S 1.0
this version of DelFly is equipped with 4 servos and a motor controller
2 - dual-servos are used which need 2 pulses every 20 millisecond:
pulse1 (1-2ms) 4ms pulse2 (1-2ms) 16ms
-->
<!--
Applicable configuration:
airframe="airframes/BR/DelFlyDualPWMServo.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<airframe name="quadrotor_lisa_s">
<servos driver="Pwm">
<servo name="MOTOR" no="0" min="1100" neutral="1100" max="2000"/>
</servos>
<servos driver="Dualpwm">
<servo name="TOUW2" no="0" min="1100" neutral="1100" max="1900"/>
<servo name="TOUW3" no="1" min="1100" neutral="1100" max="1900"/>
<servo name="TOUW4" no="2" min="1100" neutral="1100" max="1900"/>
<servo name="TOUW1" no="3" min="1100" neutral="1100" max="1900"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="TOUW1" value="+@ROLL-@PITCH+@YAW"/>
<set servo="TOUW2" value="-@ROLL-@PITCH-@YAW"/>
<set servo="TOUW3" value="@PITCH-@ROLL+@YAW"/>
<set servo="TOUW4" value="@PITCH+@ROLL-@YAW"/>
<set servo="MOTOR" value="@THRUST" />
</command_laws>
<!--
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="TOUW1" value="motor_mixing.commands[0]"/>
<set servo="TOUW2" value="motor_mixing.commands[1]"/>
<set servo="TOUW3" value="motor_mixing.commands[2]"/>
<set servo="TOUW4" value="motor_mixing.commands[3]"/>
<set servo="MOTOR" value="@THRUST" />
</command_laws>
-->
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ -256, -256, 256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, -256, -256, 256 }"/>
<define name="YAW_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="90." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="-105." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="0"/>
<define name="ACCEL_Z_NEUTRAL" value="0"/>
<!-- MAGNETO CALIBRATION ANTWERPEN
<define name="MAG_X_NEUTRAL" value="-147"/>
<define name="MAG_Y_NEUTRAL" value="152"/>
<define name="MAG_Z_NEUTRAL" value="-5"/>
<define name="MAG_X_SENS" value="3.56142779007" integer="16"/>
<define name="MAG_Y_SENS" value="3.82223743533" integer="16"/>
<define name="MAG_Z_SENS" value="4.15618897164" integer="16"/> -->
<!-- MAGNETO CALIBRATION DELFT-->
<define name="MAG_X_NEUTRAL" value="10"/>
<define name="MAG_Y_NEUTRAL" value="238"/>
<define name="MAG_Z_NEUTRAL" value="-74"/>
<define name="MAG_X_SENS" value="3.67001348283" integer="16"/>
<define name="MAG_Y_SENS" value="3.98840260231" integer="16"/>
<define name="MAG_Z_SENS" value="4.32568461736" integer="16"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_RC_DIRECT"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
<define name="USE_THROTTLE_FOR_MOTOR_ARMING" value="TRUE"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="14000"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="2.8" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.0" unit="V"/>
<define name="LOW_BAT_LEVEL" value="3.2" unit="V"/>
<define name="MAX_BAT_LEVEL" value="4.1" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="400"/>
<define name="PHI_DGAIN" value="200"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="400"/>
<define name="THETA_DGAIN" value="200"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="0"/>
<define name="THETA_DDGAIN" value="0"/>
<define name="PSI_DDGAIN" value=" 300"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="276"/>
<define name="HOVER_KD" value="455"/>
<define name="HOVER_KI" value="100"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value="0.5"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- Delft magnetic field -->
<define name="H_X" value="0.39049610"/>
<define name="H_Y" value="0.00278894"/>
<define name="H_Z" value="0.92060036"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="90"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="24"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_s_1.0">
<module name="radio_control" type="superbitrf_rc">
<define name="RADIO_MODE" value="RADIO_GEAR"/>
<!--<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>-->
<define name="USE_PERSISTENT_SETTINGS" value="TRUE"/>
</module>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="50"/>
<define name="USE_SERVOS_1AND2"/>
</module>
<module name="actuators" type="dualpwm">
<define name="DUAL_PWM_ON"/>
</module>
<!--<module name="telemetry" type="superbitrf"/>-->
<!-- Comment the previous line and uncomment the following one if you need
to use the debug serial interface for telemetry. -->
<module name="telemetry" type="superbitrf"/>
<module name="imu" type="lisa_s_v1.0">
<define name="LISA_S_UPSIDE_DOWN"/> <!-- Upside down is a relative term. :) -->
</module>
<module name="gps" type="ublox"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="1"/>
<define name="AHRS_USE_GPS_HEADING" value="0"/>
</module>
<module name="ins"/>
<module name="gps" type="ubx_ucenter"/>
</firmware>
</airframe>
-221
View File
@@ -1,221 +0,0 @@
<!-- this is a LadyBird quadrotor frame equiped with Lisa/S 1.0 -->
<!-- The LadyBird frame comes with four brushed motors in an X configuration. -->
<!--
The motor and rotor configuration is the following:
Front
^
|
Motor3(NW) Motor0(NE)
CW CCW
\ /
,___,
| |
| |
|___|
/ \
CCW CW
Motor2(SW) Motor1(SE)
The Lisa/S is rotated by 13deg CCW against the frame.
-->
<!--
Applicable configuration:
airframe="airframes/examples/ladybird_lisa_s.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<airframe name="quadrotor_lisa_s">
<servos driver="Pwm">
<servo name="NE" no="0" min="0" neutral="50" max="1000"/>
<servo name="SE" no="1" min="0" neutral="50" max="1000"/>
<servo name="SW" no="2" min="0" neutral="50" max="1000"/>
<servo name="NW" no="3" min="0" neutral="50" max="1000"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="NE" value="motor_mixing.commands[0]"/>
<set servo="SE" value="motor_mixing.commands[1]"/>
<set servo="SW" value="motor_mixing.commands[2]"/>
<set servo="NW" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ -256, -256, 256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, -256, -256, 256 }"/>
<define name="YAW_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/tudelft/calibrations/ladybird1.xml" />
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
<define name="USE_THROTTLE_FOR_MOTOR_ARMING" value="TRUE"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="14000"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.3" unit="V"/>
<define name="LOW_BAT_LEVEL" value="3.4" unit="V"/>
<define name="MAX_BAT_LEVEL" value="4.1" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="400"/>
<define name="PHI_DGAIN" value="200"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="400"/>
<define name="THETA_DGAIN" value="200"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="0"/>
<define name="THETA_DDGAIN" value="0"/>
<define name="PSI_DDGAIN" value=" 300"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="276"/>
<define name="HOVER_KD" value="455"/>
<define name="HOVER_KI" value="100"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value="0.5"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- Delft magnetic field -->
<define name="H_X" value="0.39049610"/>
<define name="H_Y" value="0.00278894"/>
<define name="H_Z" value="0.92060036"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="90"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="24"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_s_1.0">
<module name="radio_control" type="superbitrf_rc">
<define name="RADIO_MODE" value="RADIO_GEAR"/>
<!--<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>-->
<define name="USE_PERSISTENT_SETTINGS" value="TRUE"/>
</module>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<!-- This airframe is using the servo PWM outputs directly to drive mosfets, which in turn directly drive brushed motors.
With the following settings we will be driving the motors with a 36KHz signal that should be well above anyone's hearing range.
If we went with the 500Hz that woul be the default we would be hearing a very annoying high pitched sound coming from the motors.
-->
<!-- Setting the PWM timer base frequency to 36MHz -->
<define name="PWM_BASE_FREQ" value="36000000"/>
<!-- Setting the PWM interval to 36KHz -->
<define name="SERVO_HZ" value="36000"/>
<define name="USE_SERVOS_1AND2"/>
</module>
<!--<module name="telemetry" type="superbitrf"/>-->
<!-- Comment the previous line and uncomment the following one if you need
to use the debug serial interface for telemetry. -->
<module name="telemetry" type="superbitrf"/>
<module name="imu" type="lisa_s_v1.0">
<define name="LISA_S_UPSIDE_DOWN"/> <!-- Upside down is a relative term. :) -->
</module>
<module name="gps" type="ublox"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="1"/>
<define name="AHRS_USE_GPS_HEADING" value="0"/>
</module>
<module name="ins"/>
<module name="gps" type="ubx_ucenter"/>
</firmware>
</airframe>
-66
View File
@@ -1,15 +1,4 @@
<conf>
<aircraft
name="3Dplane"
ac_id="1"
airframe="airframes/BR/3DplaneLisaS.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/superbitrf.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_basic_rotorcraft.xml modules/radio_control_superbitrf_rc.xml modules/stabilization_int_quat.xml"
gui_color="blue"
/>
<aircraft
name="Bebop_INDI"
ac_id="21"
@@ -43,17 +32,6 @@
settings_modules="modules/ahrs_float_mlkf.xml modules/air_data.xml modules/bebop_cam.xml modules/cv_colorfilter.xml modules/digital_cam_video.xml modules/geo_mag.xml modules/gps.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_extended.xml modules/nav_basic_rotorcraft.xml modules/nav_survey_rectangle_rotorcraft.xml modules/stabilization_int_quat.xml modules/video_capture.xml modules/video_rtp_stream.xml"
gui_color="green"
/>
<aircraft
name="DelFlyDualPWM"
ac_id="238"
airframe="airframes/BR/DelFlyDualPWMservo.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml settings/superbitrf.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_basic_rotorcraft.xml modules/radio_control_superbitrf_rc.xml modules/stabilization_int_quat.xml"
gui_color="white"
/>
<aircraft
name="Disco"
ac_id="16"
@@ -65,48 +43,4 @@
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="blue"
/>
<aircraft
name="DreamCatcher"
ac_id="230"
airframe="airframes/BR/DreamCacher_bart.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic_superbitrf_from_hand.xml"
settings="settings/rotorcraft_basic.xml settings/superbitrf.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_basic_rotorcraft.xml modules/radio_control_superbitrf_rc.xml modules/stabilization_int_quat.xml"
gui_color="white"
/>
<aircraft
name="LadyLisaBart"
ac_id="231"
airframe="airframes/BR/ladybird_kit_bart.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/superbitrf.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_basic_rotorcraft.xml modules/radio_control_superbitrf_rc.xml modules/stabilization_int_quat.xml"
gui_color="blue"
/>
<aircraft
name="LadyLisaBartBluegiga"
ac_id="233"
airframe="airframes/BR/ladybird_kit_bart_bluegiga_optitrack.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft_slow.xml"
flight_plan="flight_plans/rotorcraft_optitrack.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/gps.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_basic_rotorcraft.xml modules/stabilization_int_quat.xml"
gui_color="blue"
/>
<aircraft
name="LadyLisaBartINDI"
ac_id="232"
airframe="airframes/BR/ladybird_kit_indi_bart.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/superbitrf.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/geo_mag.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_extended.xml modules/nav_basic_rotorcraft.xml modules/radio_control_superbitrf_rc.xml modules/stabilization_indi_simple.xml"
gui_color="blue"
/>
</conf>
-226
View File
@@ -1,226 +0,0 @@
<!-- this is a LadyBird quadrotor frame equiped with Lisa/S 1.0 -->
<!-- The LadyBird frame comes with four brushed motors in an X configuration. -->
<!--
The motor and rotor configuration is the following:
Front
^
|
Motor3(NW) Motor0(NE)
CW CCW
\ /
,___,
| |
| |
|___|
/ \
CCW CW
Motor2(SW) Motor1(SE)
The Lisa/S is rotated by 13deg CCW against the frame.
-->
<!--
Applicable configuration:
airframe="airframes/examples/ladybird_lisa_s.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<airframe name="quadrotor_lisa_s">
<servos driver="Pwm">
<servo name="NE" no="0" min="0" neutral="50" max="1000"/>
<servo name="SE" no="1" min="0" neutral="50" max="1000"/>
<servo name="SW" no="2" min="0" neutral="50" max="1000"/>
<servo name="NW" no="3" min="0" neutral="50" max="1000"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="NE" value="motor_mixing.commands[0]"/>
<set servo="SE" value="motor_mixing.commands[1]"/>
<set servo="SW" value="motor_mixing.commands[2]"/>
<set servo="NW" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ -256, -256, 256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, -256, -256, 256 }"/>
<define name="YAW_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/tudelft/calibrations/ladybird18.xml" />
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="-13." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
<define name="USE_THROTTLE_FOR_MOTOR_ARMING" value="TRUE"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="14000"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="2.8" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.0" unit="V"/>
<define name="LOW_BAT_LEVEL" value="3.2" unit="V"/>
<define name="MAX_BAT_LEVEL" value="4.1" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="400"/>
<define name="PHI_DGAIN" value="200"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="400"/>
<define name="THETA_DGAIN" value="200"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="0"/>
<define name="THETA_DDGAIN" value="0"/>
<define name="PSI_DDGAIN" value=" 300"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="276"/>
<define name="HOVER_KD" value="455"/>
<define name="HOVER_KI" value="100"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value="0.5"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- Delft magnetic field -->
<define name="H_X" value="0.39049610"/>
<define name="H_Y" value="0.00278894"/>
<define name="H_Z" value="0.92060036"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="90"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="24"/>
</section>
<section name="NAVIGATION" prefix="NAV_">
<define name="CLIMB_VSPEED" value="1.0" />
<define name="DESCEND_VSPEED" value="-0.5" />
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_s_1.0">
<module name="radio_control" type="superbitrf_rc">
<define name="RADIO_MODE" value="RADIO_GEAR"/>
<!--<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>-->
<define name="USE_PERSISTENT_SETTINGS" value="TRUE"/>
</module>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<!-- This airframe is using the servo PWM outputs directly to drive mosfets, which in turn directly drive brushed motors.
With the following settings we will be driving the motors with a 36KHz signal that should be well above anyone's hearing range.
If we went with the 500Hz that woul be the default we would be hearing a very annoying high pitched sound coming from the motors.
-->
<!-- Setting the PWM timer base frequency to 36MHz -->
<define name="PWM_BASE_FREQ" value="36000000"/>
<!-- Setting the PWM interval to 36KHz -->
<define name="SERVO_HZ" value="36000"/>
<define name="USE_SERVOS_1AND2"/>
</module>
<!--<module name="telemetry" type="superbitrf"/>-->
<!-- Comment the previous line and uncomment the following one if you need
to use the debug serial interface for telemetry. -->
<module name="telemetry" type="superbitrf"/>
<module name="imu" type="lisa_s_v1.0">
<define name="LISA_S_UPSIDE_DOWN"/> <!-- Upside down is a relative term. :) -->
</module>
<module name="gps" type="ublox"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="1"/>
<define name="AHRS_USE_GPS_HEADING" value="0"/>
</module>
<module name="ins"/>
<module name="gps" type="ubx_ucenter"/>
</firmware>
</airframe>
@@ -1,228 +0,0 @@
<!-- this is a LadyBird quadrotor frame equiped with Lisa/S 1.0 -->
<!-- The LadyBird frame comes with four brushed motors in an X configuration. -->
<!--
The motor and rotor configuration is the following:
Front
^
|
Motor3(NW) Motor0(NE)
CW CCW
\ /
,___,
| |
| |
|___|
/ \
CCW CW
Motor2(SW) Motor1(SE)
The Lisa/S is rotated by 13deg CCW against the frame.
-->
<!--
Applicable configuration:
airframe="airframes/examples/ladybird_lisa_s.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<airframe name="quadrotor_lisa_s">
<servos driver="Pwm">
<servo name="NE" no="0" min="0" neutral="50" max="1000"/>
<servo name="SE" no="1" min="0" neutral="50" max="1000"/>
<servo name="SW" no="2" min="0" neutral="50" max="1000"/>
<servo name="NW" no="3" min="0" neutral="50" max="1000"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="NE" value="motor_mixing.commands[0]"/>
<set servo="SE" value="motor_mixing.commands[1]"/>
<set servo="SW" value="motor_mixing.commands[2]"/>
<set servo="NW" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ -256, -256, 256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, -256, -256, 256 }"/>
<define name="YAW_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/tudelft/calibrations/ladybird18.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="-13." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/>
<define name="USE_THROTTLE_FOR_MOTOR_ARMING" value="TRUE"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="14000"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="2.8" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.0" unit="V"/>
<define name="LOW_BAT_LEVEL" value="3.2" unit="V"/>
<define name="MAX_BAT_LEVEL" value="4.1" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="400"/>
<define name="PHI_DGAIN" value="200"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="400"/>
<define name="THETA_DGAIN" value="200"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="0"/>
<define name="THETA_DDGAIN" value="0"/>
<define name="PSI_DDGAIN" value=" 300"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="INS" prefix="INS_">
<define name="USE_GPS_ALT" value="1"/>
<define name="USE_GPS_ALT_SPEED" value="1"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="276"/>
<define name="HOVER_KD" value="455"/>
<define name="HOVER_KI" value="100"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.65"/>
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- Delft magnetic field -->
<define name="H_X" value="0.39049610"/>
<define name="H_Y" value="0.00278894"/>
<define name="H_Z" value="0.92060036"/>
<define name="USE_GPS_HEADING" value="1"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="290"/>
<define name="DGAIN" value="134"/>
<define name="IGAIN" value="0"/>
<define name="REF_MAX_SPEED" value="0.8"/>
</section>
<section name="NAVIGATION" prefix="NAV_">
<define name="CLIMB_VSPEED" value="1.0"/>
<define name="DESCEND_VSPEED" value="-0.5"/>
</section>
<section name="MISC">
<define name="ARRIVED_AT_WAYPOINT" value="0.2"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_s_1.0">
<module name="radio_control" type="datalink">
</module>
<configure name="USE_MAGNETOMETER" value="0"/>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
<define name="USE_PERSISTENT_SETTINGS" value="TRUE"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<!-- This airframe is using the servo PWM outputs directly to drive mosfets, which in turn directly drive brushed motors.
With the following settings we will be driving the motors with a 36KHz signal that should be well above anyone's hearing range.
If we went with the 500Hz that woul be the default we would be hearing a very annoying high pitched sound coming from the motors.
-->
<!-- Setting the PWM timer base frequency to 36MHz -->
<define name="PWM_BASE_FREQ" value="36000000"/>
<!-- Setting the PWM interval to 36KHz -->
<define name="SERVO_HZ" value="36000"/>
<define name="USE_SERVOS_1AND2"/>
</module>
<!--<module name="telemetry" type="superbitrf"/>-->
<!-- Comment the previous line and uncomment the following one if you need
to use the debug serial interface for telemetry. -->
<module name="telemetry" type="bluegiga"/>
<module name="imu" type="lisa_s_v1.0">
<define name="LISA_S_UPSIDE_DOWN"/> <!-- Upside down is a relative term. :) -->
</module>
<module name="gps" type="datalink"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<module name="stereocam">
<configure name="STEREO_UART" value="UART1"/>
<configure name="STEREO_BAUD" value="B115200"/>
</module>
</firmware>
</airframe>
@@ -1,233 +0,0 @@
<!-- this is a LadyBird quadrotor frame equiped with Lisa/S 1.0 -->
<!-- The LadyBird frame comes with four brushed motors in an X configuration. -->
<!--
The motor and rotor configuration is the following:
Front
^
|
Motor3(NW) Motor0(NE)
CW CCW
\ /
,___,
| |
| |
|___|
/ \
CCW CW
Motor2(SW) Motor1(SE)
The Lisa/S is rotated by 13deg CCW against the frame.
-->
<!--
Applicable configuration:
airframe="airframes/examples/ladybird_lisa_s.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<airframe name="quadrotor_lisa_s">
<servos driver="Pwm">
<servo name="NE" no="0" min="0" neutral="50" max="1000"/>
<servo name="SE" no="1" min="0" neutral="50" max="1000"/>
<servo name="SW" no="2" min="0" neutral="50" max="1000"/>
<servo name="NW" no="3" min="0" neutral="50" max="1000"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="NE" value="motor_mixing.commands[0]"/>
<set servo="SE" value="motor_mixing.commands[1]"/>
<set servo="SW" value="motor_mixing.commands[2]"/>
<set servo="NW" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ -256, -256, 256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, -256, -256, 256 }"/>
<define name="YAW_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/tudelft/calibrations/ladybird18.xml" />
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="-13." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
<define name="USE_THROTTLE_FOR_MOTOR_ARMING" value="TRUE"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="14000"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="2.8" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.0" unit="V"/>
<define name="LOW_BAT_LEVEL" value="3.2" unit="V"/>
<define name="MAX_BAT_LEVEL" value="4.1" unit="V"/>
</section>
<section name="RC_SETPOINT" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoint limits for attitude stabilization rc flight -->
<define name="SP_MAX_PHI" value="45" unit="deg"/>
<define name="SP_MAX_THETA" value="45" unit="deg"/>
<define name="SP_MAX_R" value="300" unit="deg/s"/>
<define name="DEADBAND_A" value="0"/>
<define name="DEADBAND_E" value="0"/>
<define name="DEADBAND_R" value="50"/>
</section>
<section name="ATTITUDE_REFERENCE" prefix="STABILIZATION_ATTITUDE_">
<!-- attitude reference generation model -->
<define name="REF_OMEGA_P" value="450" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.9"/>
<define name="REF_MAX_P" value="600." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="450" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.9"/>
<define name="REF_MAX_Q" value="600." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="450" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.9"/>
<define name="REF_MAX_R" value="600." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(8000.)"/>
</section>
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<!-- control effectiveness -->
<define name="G1_P" value="0.041319"/>
<define name="G1_Q" value="0.026604"/>
<define name="G1_R" value="0.00413346"/>
<define name="G2_R" value="0.09605374"/>
<!-- reference acceleration for attitude control -->
<define name="REF_ERR_P" value="170.0"/>
<define name="REF_ERR_Q" value="170.0"/>
<define name="REF_ERR_R" value="100.0"/>
<define name="REF_RATE_P" value="17.0"/>
<define name="REF_RATE_Q" value="17.0"/>
<define name="REF_RATE_R" value="17.0"/>
<!-- second order filter parameters -->
<define name="FILT_CUTOFF" value="8.0"/>
<!-- first order actuator dynamics -->
<define name="ACT_FREQ_P" value="15.6"/>
<define name="ACT_FREQ_Q" value="15.6"/>
<define name="ACT_FREQ_R" value="15.6"/>
<!-- Adaptive Learning Rate -->
<define name="USE_ADAPTIVE" value="FALSE"/>
<define name="ADAPTIVE_MU" value="0.0001"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="276"/>
<define name="HOVER_KD" value="455"/>
<define name="HOVER_KI" value="100"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value="0.5"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- Delft magnetic field -->
<define name="H_X" value="0.39049610"/>
<define name="H_Y" value="0.00278894"/>
<define name="H_Z" value="0.92060036"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<!-- Good weather -->
<define name="MAX_BANK" value="20" unit="deg"/>
<!-- Bad weather -->
<!-- define name="MAX_BANK" value="32" unit="deg"/ -->
<define name="PGAIN" value="90"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="24"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_s_1.0">
<module name="radio_control" type="superbitrf_rc">
<define name="RADIO_MODE" value="RADIO_GEAR"/>
<!--<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>-->
<define name="USE_PERSISTENT_SETTINGS" value="TRUE"/>
</module>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<!-- This airframe is using the servo PWM outputs directly to drive mosfets, which in turn directly drive brushed motors.
With the following settings we will be driving the motors with a 36KHz signal that should be well above anyone's hearing range.
If we went with the 500Hz that woul be the default we would be hearing a very annoying high pitched sound coming from the motors.
-->
<!-- Setting the PWM timer base frequency to 36MHz -->
<define name="PWM_BASE_FREQ" value="36000000"/>
<!-- Setting the PWM interval to 36KHz -->
<define name="SERVO_HZ" value="36000"/>
<define name="USE_SERVOS_1AND2"/>
</module>
<!--<module name="telemetry" type="superbitrf"/>-->
<!-- Comment the previous line and uncomment the following one if you need
to use the debug serial interface for telemetry. -->
<module name="telemetry" type="superbitrf"/>
<module name="imu" type="lisa_s_v1.0">
<define name="LISA_S_UPSIDE_DOWN"/> <!-- Upside down is a relative term. :) -->
</module>
<module name="gps" type="ublox"/>
<module name="stabilization" type="indi_simple"/>
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="0"/>
<define name="AHRS_USE_GPS_HEADING" value="0"/>
<define name="AHRS_FLOATING_HEADING" value="1"/>
</module>
<module name="ins" type="extended"/>
<module name="geo_mag"/>
<module name="air_data"/>
<module name="gps" type="ubx_ucenter"/>
</firmware>
</airframe>
@@ -1,388 +0,0 @@
<!-- this is a quadshot vehicle equiped with Lisa/m2.0 and an aspirin 2.1
More information on the Quadshot can be found at transition-robotics.com -->
<airframe name="quadshot aspirin 2.1 spektrum">
<servos driver="Pwm">
<servo name="A1" no="0" min="1000" neutral="1100" max="1600"/>
<servo name="A2" no="1" min="1000" neutral="1100" max="1600"/>
<servo name="B1" no="2" min="1000" neutral="1100" max="1600"/>
<servo name="B2" no="3" min="1000" neutral="1100" max="1600"/>
<!-- <servo name="A1" no="0" min="1000" neutral="1000" max="2000"/>
<servo name="A2" no="1" min="1000" neutral="1000" max="2000"/>
<servo name="B1" no="2" min="1000" neutral="1000" max="2000"/>
<servo name="B2" no="3" min="1000" neutral="1000" max="2000"/>-->
<!-- <servo name="ELEVON_LEFT" no="4" min="1150" neutral="1500" max="1850"/>
<servo name="ELEVON_RIGHT" no="5" min="1150" neutral="1500" max="1850"/>-->
<servo name="ELEVON_LEFT" no="4" min="1300" neutral="1500" max="1700"/>
<servo name="ELEVON_RIGHT" no="5" min="1300" neutral="1500" max="1700"/>
<servo name="CAMERA_MOUNT" no="6" min="2000" neutral="1500" max="1000"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
<axis name="CAMERA" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="A1" value="motor_mixing.commands[0]"/>
<set servo="A2" value="motor_mixing.commands[1]"/>
<set servo="B1" value="motor_mixing.commands[2]"/>
<set servo="B2" value="motor_mixing.commands[3]"/>
<!-- Mode dependent actuator laws for the elevons. The elevons act different in rc attitude flight mode-->
<!-- First the correct feedback is stored in variables -->
<let var="aileron_feedback_left" value="-@YAW"/>
<let var="aileron_feedback_right" value="-@YAW"/>
<let var="elevator_feedback_left" value="-@PITCH"/>
<let var="elevator_feedback_right" value="+@PITCH"/>
<!-- Here the gains are defined for the two feedback cases, hover and forward-->
<let var="hover_left" value="10*$aileron_feedback_left"/>
<let var="hover_right" value="10*$aileron_feedback_right"/>
<!-- if using INDI -->
<!-- <let var="forward_left" value="aileron_gain*$aileron_feedback_left+elevator_gain*$elevator_feedback_left"/>
<let var="forward_right" value="aileron_gain*$aileron_feedback_right+elevator_gain*$elevator_feedback_right"/>-->
<!-- if using PID with gain scheduling -->
<let var="forward_left" value="3*$aileron_feedback_left + 4*$elevator_feedback_left"/>
<let var="forward_right" value="3*$aileron_feedback_right + 4*$elevator_feedback_right"/>
<!-- This statement tells the autopilot to use the hover feedback if in mode attitude direct and to use the forward feedback in all other cases-->
<set servo="ELEVON_LEFT" value="AP_MODE == AP_MODE_ATTITUDE_DIRECT ? $hover_left : $forward_left" />
<set servo="ELEVON_RIGHT" value="AP_MODE == AP_MODE_ATTITUDE_DIRECT ? $hover_right : $forward_right" />
<!-- <set servo="ELEVON_RIGHT" value="AP_MODE == AP_MODE_ATTITUDE_DIRECT ? 9000 : -9000" /> -->
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="PITCH_COEF" value="{ -256, -256, 256, 256 }"/>
<define name="ROLL_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="YAW_COEF" value="{ -256, 256, 128, -128 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
<!-- <define name="PITCH_COEF" value="{ 0, 0, 0, 0 }"/>
<define name="ROLL_COEF" value="{ 0, 0, 0, 0 }"/>
<define name="YAW_COEF" value="{ 0, 0, 0, 0 }"/>
<define name="THRUST_COEF" value="{ 0, 0, 0, 0 }"/>-->
</section>
<!-- If you got a caliberation XML document from your IMU supplier, import this in the IMU section -->
<!-- Note that is better to have *no* caliberation file at all, than a one with incorrect caliberation values.
The default factory values are most of the time perfectly acceptable, so by default we will not use the caliberation file -->
<section name="IMU" prefix="IMU_">
<!-- Use default driver values for gyro -->
<!-- IMU calibration, make sure to calibrate the IMU properly before flight, see the wiki for more info-->
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="0"/>
<define name="ACCEL_Z_NEUTRAL" value="0"/>
<define name="ACCEL_X_SENS" value="4.86487566223" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.89957269597" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.82616398266" integer="16"/>
<!-- <define name="MAG_X_NEUTRAL" value="104"/> -->
<!-- <define name="MAG_Y_NEUTRAL" value="9"/> -->
<!-- <define name="MAG_Z_NEUTRAL" value="15"/> -->
<!-- <define name="MAG_X_SENS" value="3.57880347067" integer="16"/> -->
<!-- <define name="MAG_Y_SENS" value="3.54049742843" integer="16"/> -->
<!-- <define name="MAG_Z_SENS" value="4.0620533034" integer="16"/> -->
<define name="MAG_X_NEUTRAL" value="-86"/>
<define name="MAG_Y_NEUTRAL" value="-36"/>
<define name="MAG_Z_NEUTRAL" value="35"/>
<define name="MAG_X_SENS" value="3.98639595061" integer="16"/>
<define name="MAG_Y_SENS" value="4.00632407649" integer="16"/>
<define name="MAG_Z_SENS" value="4.17946082997" integer="16"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="90." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_FORWARD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
<!-- <define name="USE_YAW_FOR_MOTOR_ARMING" value="TRUE"/> -->
</section>
<section name="BAT">
<!-- <define name="MIN_BAT_LEVEL" value="10.8" units="V"/> -->
<define name="CRITIC_BAT_LEVEL" value="10.8" unit="V"/>
<define name="LOW_BAT_LEVEL" value="10.8" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="10.1" unit="V"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
<define name="SP_MAX_P" value="10000"/>
<define name="SP_MAX_Q" value="10000"/>
<define name="SP_MAX_R" value="10000"/>
<define name="GAIN_P" value="350"/>
<define name="GAIN_Q" value="250"/>
<define name="GAIN_R" value="350"/>
<define name="IGAIN_P" value="200"/>
<define name="IGAIN_Q" value="200"/>
<define name="IGAIN_R" value="200"/>
</section>
<!-- These gains are used when the gain scheduling module is enabled (by loading it in the modules section)-->
<section name ="GAIN_SETS">
<define name="NUMBER_OF_GAINSETS" value="2"/>
<define name="SCHEDULING_VARIABLE" value="guidance_hybrid_norm_ref_airspeed"/>
<define name="SCHEDULING_POINTS" value="{4, 10}"/>
<define name="SCHEDULING_VARIABLE_FRAC" value="8"/>
<define name="PHI_P" value="{150, 150}"/>
<define name="PHI_D" value="{150, 150}"/>
<define name="PHI_I" value="{30, 30}"/>
<define name="PHI_DD" value="{0, 0}"/>
<define name="THETA_P" value="{100, 80}"/>
<define name="THETA_D" value="{100, 110}"/>
<define name="THETA_I" value="{40, 40}"/>
<define name="THETA_DD" value="{0, 0}"/>
<define name="PSI_P" value="{300, 300}"/>
<define name="PSI_D" value="{150, 150}"/>
<define name="PSI_I" value="{0, 0}"/>
<define name="PSI_DD" value="{0, 0}"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="60." unit="deg"/>
<define name="SP_MAX_THETA" value="60." unit="deg"/>
<define name="SP_MAX_R" value="100." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<define name="SP_PSI_DELTA_LIMIT" value="90" unit="deg"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="1500" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="300." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_Q" value="1500" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="300." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_R" value="1500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="300." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(7000.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="150"/>
<define name="PHI_DGAIN" value="150"/>
<define name="PHI_IGAIN" value="30"/>
<define name="THETA_PGAIN" value="100"/>
<define name="THETA_DGAIN" value="100"/>
<define name="THETA_IGAIN" value="40"/>
<define name="PSI_PGAIN" value="300"/>
<define name="PSI_DGAIN" value="150"/>
<define name="PSI_IGAIN" value="0"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 0"/>
<define name="THETA_DDGAIN" value=" 0"/>
<define name="PSI_DDGAIN" value=" 0"/>
</section>
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="60." unit="deg"/>
<define name="SP_MAX_THETA" value="60." unit="deg"/>
<define name="SP_MAX_R" value="180." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<define name="SP_PSI_DELTA_LIMIT" value="90" unit="deg"/>
<!-- control effectiveness -->
<define name="G1_P" value="0.0179"/>
<define name="G1_Q" value="0.0708"/>
<define name="G1_R" value="0.0095"/>
<define name="G2_R" value="0.0"/>
<!-- reference acceleration for attitude control -->
<define name="REF_ERR_P" value="70.0"/>
<define name="REF_ERR_Q" value="45.0"/>
<define name="REF_ERR_R" value="70.0"/>
<define name="REF_RATE_P" value="9.0"/>
<define name="REF_RATE_Q" value="16.0"/>
<define name="REF_RATE_R" value="12.0"/>
<!-- second order filter parameters -->
<define name="FILT_CUTOFF" value="8.0"/>
<define name="FILT_CUTOFF_RDOT" value="3.2"/>
<!-- first order actuator dynamics -->
<define name="ACT_FREQ_P" value="15.6"/>
<define name="ACT_FREQ_Q" value="15.6"/>
<define name="ACT_FREQ_R" value="15.6"/>
<!-- Adaptive Learning Rate -->
<define name="USE_ADAPTIVE" value="TRUE"/>
<define name="ADAPTIVE_MU" value="0.0001"/>
</section>
<!-- Gains for vertical navigation -->
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="MIN_ERR_Z" value="POS_BFP_OF_REAL(-10.)"/>
<define name="MAX_ERR_Z" value="POS_BFP_OF_REAL( 10.)"/>
<define name="MIN_ERR_ZD" value="SPEED_BFP_OF_REAL(-10.)"/>
<define name="MAX_ERR_ZD" value="SPEED_BFP_OF_REAL( 10.)"/>
<define name="MAX_SUM_ERR" value="2000000"/>
<define name="HOVER_KP" value="200"/>
<define name="HOVER_KD" value="175"/>
<define name="HOVER_KI" value="100"/>
<define name="NOMINAL_HOVER_THROTTLE" value ="0.2"/>
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- Delft magnetic field -->
<define name="H_X" value="0.39049610"/>
<define name="H_Y" value="0.00278894"/>
<define name="H_Z" value="0.92060036"/>
<!-- For vibrating airfames -->
<define name="GRAVITY_HEURISTIC_FACTOR" value="0"/>
</section>
<!-- Gains for horizontal navigation-->
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="65"/>
<define name="MAX_BANK" value="RadOfDeg(55)"/>
<define name="FORWARD_MAX_BANK" value="RadOfDeg(35)"/>
<define name="USE_REF" value="FALSE"/>
</section>
<section name="NAV">
<define name="ARRIVED_AT_WAYPOINT" value="10" unit="m"/>
</section>
<section name="MISC">
<define name="RADIO_CONTROL_SPEKTRUM_SIGNS" value="{1,1,1,1,1,1,1,1,1,1,1,1}"/>
<!--The Quadshot uses a slightly different axis system for the setpoint, to make both hovering and flying forward intuitive-->
<define name="USE_EARTH_BOUND_RC_SETPOINT" value="TRUE"/>
<!-- This is the pitch angle that the Quadshot will have in forward flight, where 0 degrees is hover-->
<define name="TRANSITION_MAX_OFFSET" value="-75.0" unit="deg"/>
<define name="RC_LOST_MODE" value="MODE_AUTO2"/>
<define name="SWITCH_STICKS_FOR_RATE_CONTROL" value="TRUE"/>
<define name="AIRSPEED_ETS_I2C_DEV" value="i2c2"/>
<define name="AHRS_MAG_UPDATE_ALL_AXES" value="FALSE"/>
<define name="THRESHOLD_GROUND_DETECT" value="25.0"/>
<define name="KILL_ON_GROUND_DETECT" value="TRUE"/>
<define name="FAILSAFE_GROUND_DETECT" value="TRUE"/>
<define name="HYBRID_NAVIGATION" value="TRUE"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
<define name="ADAPTIVE_INDI" value="FALSE"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<module name="radio_control" type="ppm">
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
<!-- <define name="RADIO_KILL_SWITCH" value="5"/>-->
<!-- Put the mode on channel AUX1-->
<!--<define name="RADIO_MODE" value="5"/>-->
<define name="RADIO_CAMERA" value="RADIO_EXTRA1"/>
<!-- <configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/> -->
</module>
<!-- ONLY if flashing via JTAG cable -->
<configure name="FLASH_MODE" value="SWD"/>
<configure name="BMP_PORT" value="/dev/ttyACM0" />
<!-- To use an airspeed sensor on I2C, enable I2C2-->
<!-- <define name="USE_I2C2"/> -->
<!-- If using aspirin 2.2, make sure to uncomment the following barometer configuration: -->
<!-- <configure name="LISA_M_BARO" value="BARO_MS5611_SPI"/> -->
<configure name="LISA_M_BARO" value="BARO_BOARD_BMP085"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="xbee_api"/>
<!-- <module name="telemetry" type="transparent"/> -->
<module name="imu" type="aspirin_v2.1"/>
<module name="gps" type="ublox"/>
<!-- <module name="stabilization" type="int_quat"/> -->
<module name="stabilization" type="indi_simple"/>
<module name="guidance" type="hybrid"/>
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="1"/>
<define name="AHRS_USE_GPS_HEADING" value="0"/>
</module>
<module name="ins"/>
<module name="gps_ubx_ucenter"/>
<!-- The the led_safety_status module will make the Quadshot LEDs blink in certain patterns when there are safety violations-->
<module name="led_safety_status">
<define name="USE_LED_BODY" value="1"/>
<define name="SAFETY_WARNING_LED" value="BODY"/>
</module>
<module name="sonar_adc">
<configure name="SONAR_ADC_PORT" value="ADC_2"/>
<!-- <define name="USE_SONAR"/> -->
<define name="SENSOR_SYNC_SEND_SONAR"/>
<define name="SONAR_ADC_SCALE" value="0.0032"/>
</module>
<!--Use an airspeed sensor and get the measured airspeed in the messages-->
<!-- <module name="airspeed_ets">
</module>-->
<module name="logger_spi_link"/>
<!-- <module name="AOA_adc">
<configure name="ADC_AOA" value="ADC_2"/>
<define name="AOA_OFFSET" value="0"/>
<define name="AOA_FILTER" value="0"/>
<define name="USE_AOA"/>
<define name="AOA_SENS" value="2.0*M_PI/1024/4"/>
</module>-->
<!-- Load this module to use multiple gain sets, which have to be specified in the gain sets section. Does not work with INDI -->
<!-- <module name="gain_scheduling"/> -->
</firmware>
</airframe>
-175
View File
@@ -1,175 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!-- this is an Asctec frame equipped with Lisa/L v0.9 and Asctec V2 controllers -->
<airframe name="cdw_asctec">
<!-- ************************* FIRMWARE ************************* -->
<firmware name="rotorcraft">
<target name="ap" board="lisa_l_1.0">
<configure name="MODEM_PORT" value="UART3"/>
<configure name="GPS_PORT" value="UART2"/>
<!-- <define name="ACTUATORS_START_DELAY" value="1"/> -->
<module name="radio_control" type="ppm"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_FLAPS"/>
<define name="USE_KILL_SWITCH_FOR_MOTOR_ARMING" value="1"/>
<define name="USE_I2C_ACTUATORS_REBOOT_HACK"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="asctec_v2"/>
<module name="telemetry" type="xbee_api"/>
<module name="imu" type="aspirin_v2.1"/>
<module name="gps" type="ublox"/>
<module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins" type="hff"/>
<!-- <module name="logger_spi_link"/> -->
<module name="imu_quality_assessment"/>
<module name="gps" type="ubx_ucenter" />
</firmware>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/>
</section>
<!-- ************************* ACTUATORS ************************* -->
<servos driver="Asctec_v2">
<servo name="FRONT" no="0" min="0" neutral="3" max="200"/>
<servo name="BACK" no="1" min="0" neutral="3" max="200"/>
<servo name="LEFT" no="2" min="0" neutral="3" max="200"/>
<servo name="RIGHT" no="3" min="0" neutral="3" max="200"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<!-- Driver expects: Front - Back - Left - Right -->
<define name="ROLL_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="PITCH_COEF" value="{ 256, -256, -256, 256 }"/>
<define name="YAW_COEF" value="{ 256, 256, -256, -256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[0]"/>
<set servo="BACK" value="motor_mixing.commands[1]"/>
<set servo="LEFT" value="motor_mixing.commands[2]"/>
<set servo="RIGHT" value="motor_mixing.commands[3]"/>
</command_laws>
<!-- ************************* SENSORS ************************* -->
<section name="IMU" prefix="IMU_">
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="0"/>
<define name="ACCEL_Z_NEUTRAL" value="200"/>
<define name="ACCEL_X_SENS" value="9.810" integer="16"/>
<define name="ACCEL_Y_SENS" value="9.810" integer="16"/>
<define name="ACCEL_Z_SENS" value="9.810" integer="16"/>
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
<define name="MAG_X_SENS" value="1." integer="16"/>
<define name="MAG_Y_SENS" value="1." integer="16"/>
<define name="MAG_Z_SENS" value="1." integer="16"/>
<define name="BODY_TO_IMU_PHI" value="180." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="90." unit="deg"/>
</section>
<section name="INS" prefix="INS_">
</section>
<!-- ************************* GAINS ************************* -->
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="65." unit="deg"/>
<define name="SP_MAX_THETA" value="65." unit="deg"/>
<define name="SP_MAX_R" value="250." unit="deg/s"/>
<define name="DEADBAND_R" value="200"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="300." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="300." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="180." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="900"/>
<define name="PHI_DGAIN" value="200"/>
<define name="PHI_IGAIN" value="200"/>
<define name="THETA_PGAIN" value="900"/>
<define name="THETA_DGAIN" value="200"/>
<define name="THETA_IGAIN" value="200"/>
<define name="PSI_PGAIN" value="900"/>
<define name="PSI_DGAIN" value="200"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 200"/>
<define name="THETA_DDGAIN" value=" 200"/>
<define name="PSI_DDGAIN" value=" 200"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="500"/>
<define name="HOVER_KD" value="200"/>
<define name="HOVER_KI" value="100"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.4"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="100"/>
<define name="DGAIN" value="100"/>
<define name="IGAIN" value="0"/>
</section>
<!-- ************************* MISC ************************* -->
<section name="MAGNETICS" prefix="AHRS_H_">
<define name="X" value="0.4"/>
<define name="Y" value="0"/>
<define name="Z" value="0.9"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad" type="string"/>
</section>
</airframe>
-24
View File
@@ -1,24 +0,0 @@
<conf>
<aircraft
name="Asctec"
ac_id="150"
airframe="airframes/CDW/cdw_asctec.xml"
radio="radios/R6107SP_7ch.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/modules/config_asctec_v2.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/imu_quality_assessment.xml modules/nav_rotorcraft.xml modules/stabilization_int_euler.xml"
gui_color="white"
/>
<aircraft
name="MAVTec3"
ac_id="32"
airframe="airframes/CDW/cdw_mavtec.xml"
radio="radios/R6107SP_7ch.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/tudelft/delft_basic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_float_mlkf.xml modules/electrical.xml modules/geo_mag.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/nav_survey_poly_rotorcraft.xml modules/nav_survey_rectangle_rotorcraft.xml modules/stabilization_int_quat.xml modules/switch_servo.xml"
gui_color="#ffff00000000"
/>
</conf>
-192
View File
@@ -1,192 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!-- this is an MavTec frame -->
<airframe name="cdw_mavtec">
<!-- ************************* FIRMWARE ************************* -->
<firmware name="rotorcraft">
<target name="ap" board="lisa_mx_2.1">
<configure name="FLASH_MODE" value="SWD"/>
<module name="radio_control" type="ppm"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_FLAPS"/>
<define name="USE_KILL_SWITCH_FOR_MOTOR_ARMING" value="1"/>
<define name="USE_I2C_ACTUATORS_REBOOT_HACK"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="asctec_v2"/>
<module name="actuators" type="pwm"/>
<module name="telemetry" type="xbee_api"/>
<module name="imu" type="lisa_mx_v2.1"/>
<module name="gps" type="ublox"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="float_mlkf"/>
<module name="ins" type="hff"/>
<!-- <module name="logger_spi_link"/>
<module name="imu_quality_assessment"/> -->
<module name="switch" type="servo"/>
<module name="gps" type="ubx_ucenter" />
<module name="nav" type="survey_rectangle_rotorcraft"/>
<module name="nav" type="survey_poly_rotorcraft"/>
<module name="geo_mag"/>
</firmware>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<!-- ************************* ACTUATORS ************************* -->
<servos driver="Asctec_v2">
<!-- This is hardcoded in actec_driver: keep this naming
and numbering at all times -->
<servo name="FRONT" no="0" min="0" neutral="3" max="200"/><!-- FRONTLEFT -->
<servo name="BACK" no="1" min="0" neutral="3" max="200"/><!-- FRONTRIGHT -->
<servo name="LEFT" no="2" min="0" neutral="3" max="200"/><!-- BACKRIGHT -->
<servo name="RIGHT" no="3" min="0" neutral="3" max="200"/><!-- BACKLEFT -->
</servos>
<servos driver="Pwm">
<servo name="DROP" no="4" min="1100" neutral="1500" max="2100"/>
</servos>
<section name="SWITCH_SERVO">
<define name="SWITCH_SERVO_SERVO" value="DROP"/>
<define name="DropOpen()" value="SwitchServoOn()"/>
<define name="DropClose()" value="SwitchServoOff()"/>
</section>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<!-- FrontLeft - FrontRight - BackRight - BackLeft -->
<define name="ROLL_COEF" value="{ 256, -256, -256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 256, -256, -256 }"/>
<define name="YAW_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[0]"/>
<set servo="BACK" value="motor_mixing.commands[1]"/>
<set servo="LEFT" value="motor_mixing.commands[2]"/>
<set servo="RIGHT" value="motor_mixing.commands[3]"/>
</command_laws>
<!-- ************************* SENSORS ************************* -->
<section name="IMU" prefix="IMU_">
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="0"/>
<define name="ACCEL_Z_NEUTRAL" value="0"/>
<define name="MAG_X_NEUTRAL" value="140"/>
<define name="MAG_Y_NEUTRAL" value="146"/>
<define name="MAG_Z_NEUTRAL" value="80"/>
<define name="MAG_X_SENS" value="3.68116427889" integer="16"/>
<define name="MAG_Y_SENS" value="3.74966778358" integer="16"/>
<define name="MAG_Z_SENS" value="4.05311539389" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="270." unit="deg"/>
</section>
<section name="INS" prefix="INS_">
</section>
<!-- ************************* GAINS ************************* -->
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="65." unit="deg"/>
<define name="SP_MAX_THETA" value="65." unit="deg"/>
<define name="SP_MAX_R" value="250." unit="deg/s"/>
<define name="DEADBAND_R" value="200"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="600" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.87"/>
<define name="REF_MAX_P" value="300." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_Q" value="600" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.87"/>
<define name="REF_MAX_Q" value="300." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="180." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="400"/>
<define name="PHI_DGAIN" value="100"/>
<define name="PHI_IGAIN" value="10"/>
<define name="THETA_PGAIN" value="400"/>
<define name="THETA_DGAIN" value="100"/>
<define name="THETA_IGAIN" value="10"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="90"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="100"/>
<define name="THETA_DDGAIN" value="100"/>
<define name="PSI_DDGAIN" value="200"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="500"/>
<define name="HOVER_KD" value="200"/>
<define name="HOVER_KI" value="100"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.4"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="100"/>
<define name="DGAIN" value="100"/>
<define name="IGAIN" value="0"/>
</section>
<!-- ************************* MISC ************************* -->
<section name="MAGNETICS" prefix="AHRS_H_">
<define name="X" value="0.4"/>
<define name="Y" value="0"/>
<define name="Z" value="0.9"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="20000"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad" type="string"/>
</section>
</airframe>
-204
View File
@@ -1,204 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!-- this is a quadrotor frame equiped with
* Autopilot: Lisa/M 2.0 http://wiki.paparazziuav.org/wiki/Lisa/M_v20
* IMU: Aspirin 2.1 http://wiki.paparazziuav.org/wiki/AspirinIMU
* Actuators: PWM motor controllers http://wiki.paparazziuav.org/wiki/Subsystem/actuators#PWM_Supervision
* GPS: Ublox http://wiki.paparazziuav.org/wiki/Subsystem/gps
* RC: two Spektrum sats http://wiki.paparazziuav.org/wiki/Subsystem/radio_control#Spektrum
-->
<airframe name="Quad Suave">
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<!-- MPU6000 is configured to output data at 2kHz, but polled at 512Hz PERIODIC_FREQUENCY -->
</target>
<define name="USE_PERSISTENT_SETTINGS" value="TRUE"/>
<module name="radio_control" type="ppm">
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
</module>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
</target>
<module name="gps" type="ublox"/>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.1"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat">
<define name="AHRS_GRAVITY_HEURISTIC_FACTOR" value="30"/>
</module>
<configure name="GPS_LED" value="4"/>
<configure name="RADIO_CONTROL_LED" value="3"/>
<configure name="AHRS_ALIGNER_LED" value="2"/>
<module name="ins"/>
<!--define name="KILL_ON_GROUND_DETECT" value="TRUE"/-->
</firmware>
<servos driver="Pwm">
<servo name="FRONT" no="0" min="1000" neutral="1100" max="1900"/>
<servo name="BACK" no="1" min="1000" neutral="1100" max="1900"/>
<servo name="RIGHT" no="2" min="1000" neutral="1100" max="1900"/>
<servo name="LEFT" no="3" min="1000" neutral="1100" max="1900"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<!-- front/back turning CW, right/left CCW -->
<define name="ROLL_COEF" value="{ 0, 0, -256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, -256, 0, 0 }"/>
<define name="YAW_COEF" value="{ -256, -256, 256, 256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[0]"/>
<set servo="BACK" value="motor_mixing.commands[1]"/>
<set servo="RIGHT" value="motor_mixing.commands[2]"/>
<set servo="LEFT" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<define name="ACCEL_X_NEUTRAL" value="11"/>
<define name="ACCEL_Y_NEUTRAL" value="11"/>
<define name="ACCEL_Z_NEUTRAL" value="-25"/>
<!-- replace this with your own calibration -->
<define name="MAG_X_NEUTRAL" value="-179"/>
<define name="MAG_Y_NEUTRAL" value="-21"/>
<define name="MAG_Z_NEUTRAL" value="79"/>
<define name="MAG_X_SENS" value="4.17334785618" integer="16"/>
<define name="MAG_Y_SENS" value="3.98885954135" integer="16"/>
<define name="MAG_Z_SENS" value="4.40442339014" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value="0.3770441"/>
<define name="H_Y" value="0.0193986"/>
<define name="H_Z" value="0.9259921"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="DEADBAND_A" value="0"/>
<define name="DEADBAND_E" value="0"/>
<define name="DEADBAND_R" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="400" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="400" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="250" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="180." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="1000"/>
<define name="PHI_DGAIN" value="400"/>
<define name="PHI_IGAIN" value="200"/>
<define name="THETA_PGAIN" value="1000"/>
<define name="THETA_DGAIN" value="400"/>
<define name="THETA_IGAIN" value="200"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="300"/>
<define name="THETA_DDGAIN" value="300"/>
<define name="PSI_DDGAIN" value="300"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="150"/>
<define name="HOVER_KD" value="80"/>
<define name="HOVER_KI" value="20"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.5"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="20" unit="deg"/>
<define name="USE_SPEED_REF" value="TRUE"/>
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="100"/>
<define name="AGAIN" value="70"/>
<define name="IGAIN" value="20"/>
</section>
<section name="NAV">
<define name="ARRIVED_AT_WAYPOINT" value="2" unit="m"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_quad" type="string"/>
<!-- mode switch on joystick channel 5 (axis numbering starting at zero) -->
<define name="JS_AXIS_MODE" value="4"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="9.6" unit="V"/>
<define name="LOW_BAT_LEVEL" value="10.1" unit="V"/>
<define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
<define name="MILLIAMP_AT_FULL_THROTTLE" value="30000"/>
</section>
</airframe>
@@ -1,32 +0,0 @@
<airframe>
<section name="IMU" prefix="IMU_">
<!-- Calibration Neutral -->
<define name="GYRO_P_NEUTRAL" value="-10"/>
<define name="GYRO_Q_NEUTRAL" value="13"/>
<define name="GYRO_R_NEUTRAL" value="-51"/>
<!-- SENS = 16.4 LSB/(deg/sec) * 57.6 deg/rad = 939.650 LSB/rad/sec / 12bit FRAC: 4096 / 939.65 -->
<define name="GYRO_P_SENS" value="4.359" integer="16"/>
<define name="GYRO_Q_SENS" value="4.359" integer="16"/>
<define name="GYRO_R_SENS" value="4.359" integer="16"/>
<define name="ACCEL_X_NEUTRAL" value="33"/>
<define name="ACCEL_Y_NEUTRAL" value="6"/>
<define name="ACCEL_Z_NEUTRAL" value="-1"/>
<define name="ACCEL_X_SENS" value="9.77539145594" integer="16"/>
<define name="ACCEL_Y_SENS" value="9.85272479631" integer="16"/>
<define name="ACCEL_Z_SENS" value="9.66085757306" integer="16"/>
<define name="MAG_X_NEUTRAL" value="-116"/>
<define name="MAG_Y_NEUTRAL" value="-19"/>
<define name="MAG_Z_NEUTRAL" value="-96"/>
<define name="MAG_X_SENS" value="4.07504846594" integer="16"/>
<define name="MAG_Y_SENS" value="3.43965799165" integer="16"/>
<define name="MAG_Z_SENS" value="3.98584774393" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="RadOfDeg( 0. )"/>
<define name="BODY_TO_IMU_THETA" value="RadOfDeg( 0. )"/>
<define name="BODY_TO_IMU_PSI" value="RadOfDeg( 45. )"/>
</section>
</airframe>
@@ -1,34 +0,0 @@
<!-- Default Aspirin V2.1 values based on the datasheet -->
<!-- You can also just leave out those defines then the defaults will be provided by imu_aspirin2.h -->
<airframe>
<section name="IMU" prefix="IMU_">
<!-- Calibration Neutral -->
<define name="GYRO_P_NEUTRAL" value="0"/>
<define name="GYRO_Q_NEUTRAL" value="0"/>
<define name="GYRO_R_NEUTRAL" value="0"/>
<!-- SENS = 16.4 LSB/(deg/sec) * 57.6 deg/rad = 939.650 LSB/rad/sec / 12bit FRAC: 4096 / 939.65 -->
<define name="GYRO_P_SENS" value="4.359" integer="16"/>
<define name="GYRO_Q_SENS" value="4.359" integer="16"/>
<define name="GYRO_R_SENS" value="4.359" integer="16"/>
<define name="ACCEL_X_NEUTRAL" value="73"/>
<define name="ACCEL_Y_NEUTRAL" value="21"/>
<define name="ACCEL_Z_NEUTRAL" value="105"/>
<!-- SENS = 2048 LSB/g / 9.81 ms2/g = 208.766564729 LSB/ms2 / 10bit FRAC: 1024 / 208.7665 -->
<define name="ACCEL_X_SENS" value="4.92045228937" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.88903140733" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.83353418195" integer="16"/>
<define name="MAG_X_NEUTRAL" value="-154"/>
<define name="MAG_Y_NEUTRAL" value="150"/>
<define name="MAG_Z_NEUTRAL" value="-16"/>
<define name="MAG_X_SENS" value="4.03002681028" integer="16"/>
<define name="MAG_Y_SENS" value="4.07539365461" integer="16"/>
<define name="MAG_Z_SENS" value="4.09839770829" integer="16"/>
</section>
</airframe>
@@ -1,32 +0,0 @@
<!-- Default Aspirin V2.1 values based on the datasheet -->
<!-- You can also just leave out those defines then the defaults will be provided by imu_aspirin2.h -->
<airframe>
<section name="IMU" prefix="IMU_">
<!-- Use default driver values for gyro -->
<!-- Calibration Neutral -->
<!--define name="GYRO_P_NEUTRAL" value="0"/>
<define name="GYRO_Q_NEUTRAL" value="0"/>
<define name="GYRO_R_NEUTRAL" value="0"/-->
<!-- SENS = 16.4 LSB/(deg/sec) * 57.6 deg/rad = 939.650 LSB/rad/sec / 12bit FRAC: 4096 / 939.65 -->
<!--define name="GYRO_P_SENS" value="4.359" integer="16"/>
<define name="GYRO_Q_SENS" value="4.359" integer="16"/>
<define name="GYRO_R_SENS" value="4.359" integer="16"/-->
<define name="ACCEL_X_NEUTRAL" value="50"/>
<define name="ACCEL_Y_NEUTRAL" value="14"/>
<define name="ACCEL_Z_NEUTRAL" value="-94"/>
<define name="ACCEL_X_SENS" value="4.86487566223" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.89957269597" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.82616398266" integer="16"/>
<define name="MAG_X_NEUTRAL" value="-178"/>
<define name="MAG_Y_NEUTRAL" value="73"/>
<define name="MAG_Z_NEUTRAL" value="-11"/>
<define name="MAG_X_SENS" value="4.19385009207" integer="16"/>
<define name="MAG_Y_SENS" value="4.32306399648" integer="16"/>
<define name="MAG_Z_SENS" value="4.63243801309" integer="16"/>
</section>
</airframe>
@@ -1,32 +0,0 @@
<!-- Default Aspirin V2.1 values based on the datasheet -->
<!-- You can also just leave out those defines then the defaults will be provided by imu_aspirin2.h -->
<airframe>
<section name="IMU" prefix="IMU_">
<!-- Use default driver values for gyro -->
<!-- Calibration Neutral -->
<!--define name="GYRO_P_NEUTRAL" value="0"/>
<define name="GYRO_Q_NEUTRAL" value="0"/>
<define name="GYRO_R_NEUTRAL" value="0"/-->
<!-- SENS = 16.4 LSB/(deg/sec) * 57.6 deg/rad = 939.650 LSB/rad/sec / 12bit FRAC: 4096 / 939.65 -->
<!--define name="GYRO_P_SENS" value="4.359" integer="16"/>
<define name="GYRO_Q_SENS" value="4.359" integer="16"/>
<define name="GYRO_R_SENS" value="4.359" integer="16"/-->
<define name="ACCEL_X_NEUTRAL" value="20"/>
<define name="ACCEL_Y_NEUTRAL" value="-64"/>
<define name="ACCEL_Z_NEUTRAL" value="-56"/>
<define name="ACCEL_X_SENS" value="4.86426509754" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.90383669256" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.79740334168" integer="16"/>
<define name="MAG_X_NEUTRAL" value="-15"/>
<define name="MAG_Y_NEUTRAL" value="171"/>
<define name="MAG_Z_NEUTRAL" value="-137"/>
<define name="MAG_X_SENS" value="4.37201780121" integer="16"/>
<define name="MAG_Y_SENS" value="4.23841579524" integer="16"/>
<define name="MAG_Z_SENS" value="4.33314434312" integer="16"/>
</section>
</airframe>
@@ -1,37 +0,0 @@
<!-- Default Aspirin V2.1 values based on the datasheet -->
<!-- You can also just leave out those defines then the defaults will be provided by imu_aspirin2.h -->
<airframe>
<section name="IMU" prefix="IMU_">
<!-- Calibration Neutral -->
<define name="GYRO_P_NEUTRAL" value="0"/>
<define name="GYRO_Q_NEUTRAL" value="0"/>
<define name="GYRO_R_NEUTRAL" value="0"/>
<!-- SENS = 16.4 LSB/(deg/sec) * 57.6 deg/rad = 939.650 LSB/rad/sec / 12bit FRAC: 4096 / 939.65 -->
<define name="GYRO_P_SENS" value="4.359" integer="16"/>
<define name="GYRO_Q_SENS" value="4.359" integer="16"/>
<define name="GYRO_R_SENS" value="4.359" integer="16"/>
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="0"/>
<define name="ACCEL_Z_NEUTRAL" value="0"/>
<!-- SENS = 2048 LSB/g / 9.81 ms2/g = 208.766564729 LSB/ms2 / 10bit FRAC: 1024 / 208.7665 -->
<define name="ACCEL_X_SENS" value="4.905" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.905" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.905" integer="16"/>
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
<define name="MAG_X_SENS" value="1" integer="16"/>
<define name="MAG_Y_SENS" value="1" integer="16"/>
<define name="MAG_Z_SENS" value="1" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="RadOfDeg( 0. )"/>
<define name="BODY_TO_IMU_THETA" value="RadOfDeg( 0. )"/>
<define name="BODY_TO_IMU_PSI" value="RadOfDeg( 45. )"/>
</section>
</airframe>
@@ -1,17 +0,0 @@
<airframe>
<section name="IMU" prefix="IMU_">
<define name="ACCEL_X_NEUTRAL" value="40"/>
<define name="ACCEL_Y_NEUTRAL" value="-11"/>
<define name="ACCEL_Z_NEUTRAL" value="250"/>
<define name="ACCEL_X_SENS" value="4.86864977158" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.90451364272" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.85134642596" integer="16"/>
<define name="MAG_X_NEUTRAL" value="-178"/>
<define name="MAG_Y_NEUTRAL" value="73"/>
<define name="MAG_Z_NEUTRAL" value="-11"/>
<define name="MAG_X_SENS" value="4.19385009207" integer="16"/>
<define name="MAG_Y_SENS" value="4.32306399648" integer="16"/>
<define name="MAG_Z_SENS" value="4.63243801309" integer="16"/>
</section>
</airframe>
@@ -1,31 +0,0 @@
<airframe>
<section name="IMU" prefix="IMU_">
<define name="GYRO_P_NEUTRAL" value="93"/>
<define name="GYRO_Q_NEUTRAL" value="131"/>
<define name="GYRO_R_NEUTRAL" value="-25"/>
<define name="GYRO_P_SENS" value="5.0" integer="16"/>
<define name="GYRO_Q_SENS" value="5.0" integer="16"/>
<define name="GYRO_R_SENS" value="5.0" integer="16"/>
<define name="GYRO_PQ_SENS" value="0.0" integer="16"/>
<define name="GYRO_PR_SENS" value="0.0" integer="16"/>
<define name="GYRO_QR_SENS" value="0.0" integer="16"/>
<define name="ACCEL_X_NEUTRAL" value="4"/>
<define name="ACCEL_Y_NEUTRAL" value="-14"/>
<define name="ACCEL_Z_NEUTRAL" value="-5"/>
<define name="ACCEL_X_SENS" value="39" integer="16"/>
<define name="ACCEL_Y_SENS" value="39" integer="16"/>
<define name="ACCEL_Z_SENS" value="39" integer="16"/>
<define name="ACCEL_XY_SENS" value="0.0" integer="16"/>
<define name="ACCEL_XZ_SENS" value="0.0" integer="16"/>
<define name="ACCEL_YZ_SENS" value="0.0" integer="16"/>
<define name="MAG_X_NEUTRAL" value="-21"/>
<define name="MAG_Y_NEUTRAL" value="10"/>
<define name="MAG_Z_NEUTRAL" value="12"/>
<define name="MAG_X_SENS" value="3.17378921476" integer="16"/>
<define name="MAG_Y_SENS" value="3.14663275967" integer="16"/>
<define name="MAG_Z_SENS" value="3.26531022727" integer="16"/>
</section>
</airframe>
@@ -1,28 +0,0 @@
<airframe>
<section name="IMU" prefix="IMU_">
<define name="GYRO_P_NEUTRAL" value="-33"/>
<define name="GYRO_Q_NEUTRAL" value="-10"/>
<define name="GYRO_R_NEUTRAL" value="-25"/>
<define name="GYRO_P_SENS" value="4.412" integer="16"/>
<define name="GYRO_Q_SENS" value="4.412" integer="16"/>
<define name="GYRO_R_SENS" value="4.412" integer="16"/>
<define name="GYRO_PQ_SENS" value="0.0" integer="16"/>
<define name="GYRO_PR_SENS" value="0.0" integer="16"/>
<define name="GYRO_QR_SENS" value="0.0" integer="16"/>
<define name="ACCEL_X_NEUTRAL" value="2"/>
<define name="ACCEL_Y_NEUTRAL" value="-2"/>
<define name="ACCEL_Z_NEUTRAL" value="-36"/>
<define name="ACCEL_X_SENS" value="37.9432590968" integer="16"/>
<define name="ACCEL_Y_SENS" value="38.1066818314" integer="16"/>
<define name="ACCEL_Z_SENS" value="39.5573406045" integer="16"/>
<define name="MAG_X_NEUTRAL" value="-87"/>
<define name="MAG_Y_NEUTRAL" value="52"/>
<define name="MAG_Z_NEUTRAL" value="204"/>
<define name="MAG_X_SENS" value="3.34721858441" integer="16"/>
<define name="MAG_Y_SENS" value="3.63594259705" integer="16"/>
<define name="MAG_Z_SENS" value="3.77850742818" integer="16"/>
</section>
</airframe>
@@ -1,34 +0,0 @@
<!-- Default Aspirin V2.1 values based on the datasheet -->
<!-- You can also just leave out those defines then the defaults will be provided by imu_aspirin2.h -->
<airframe>
<section name="IMU" prefix="IMU_">
<!-- Calibration Neutral -->
<define name="GYRO_P_NEUTRAL" value="0"/>
<define name="GYRO_Q_NEUTRAL" value="0"/>
<define name="GYRO_R_NEUTRAL" value="0"/>
<!-- SENS = 16.4 LSB/(deg/sec) * 57.6 deg/rad = 939.650 LSB/rad/sec / 12bit FRAC: 4096 / 939.65 -->
<define name="GYRO_P_SENS" value="4.359" integer="16"/>
<define name="GYRO_Q_SENS" value="4.359" integer="16"/>
<define name="GYRO_R_SENS" value="4.359" integer="16"/>
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="0"/>
<define name="ACCEL_Z_NEUTRAL" value="0"/>
<!-- SENS = 2048 LSB/g / 9.81 ms2/g = 208.766564729 LSB/ms2 / 10bit FRAC: 1024 / 208.7665 -->
<define name="ACCEL_X_SENS" value="4.905" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.905" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.905" integer="16"/>
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
<define name="MAG_X_SENS" value="1" integer="16"/>
<define name="MAG_Y_SENS" value="1" integer="16"/>
<define name="MAG_Z_SENS" value="1" integer="16"/>
</section>
</airframe>
-223
View File
@@ -1,223 +0,0 @@
<!-- this is a coaxial x configuration octocopter frame equiped with Lisa/M 2.0, Aspirin 2.1 and generic china pwm motor controllers -->
<!--
Applicable configuration:
airframe="airframes/ESDEN/cocto_lm2a2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-Cocto">
<!--
Top rotors top view
Front
^
A1U___|___B1U
| |
| |
| |
A2U_______B2U
Bottom rotors top view
Front
^
A1L___|___B1L
| |
| |
| |
A2L_______B2L
Rotor rotation directions
A1U -> CW
A1L -> CCW
A2U -> CW
A2L -> CCW
B1U -> CCW
B1L -> CW
B2U -> CCW
B2L -> CW
-->
<servos driver="Pwm">
<servo name="A1U" no="0" min="1000" neutral="1100" max="1950"/>
<servo name="A1L" no="1" min="1000" neutral="1100" max="1950"/>
<servo name="A2U" no="2" min="1000" neutral="1100" max="1950"/>
<servo name="A2L" no="3" min="1000" neutral="1100" max="1950"/>
<servo name="B1U" no="4" min="1000" neutral="1100" max="1950"/>
<servo name="B1L" no="5" min="1000" neutral="1100" max="1950"/>
<servo name="B2U" no="6" min="1000" neutral="1100" max="1950"/>
<servo name="B2L" no="7" min="1000" neutral="1100" max="1950"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="A1U" value="motor_mixing.commands[0]"/>
<set servo="A1L" value="motor_mixing.commands[1]"/>
<set servo="A2U" value="motor_mixing.commands[2]"/>
<set servo="A2L" value="motor_mixing.commands[3]"/>
<set servo="B1U" value="motor_mixing.commands[4]"/>
<set servo="B1L" value="motor_mixing.commands[5]"/>
<set servo="B2U" value="motor_mixing.commands[6]"/>
<set servo="B2L" value="motor_mixing.commands[7]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="8"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ 256, 256, 256, 256, -256, -256, -256, -256}"/>
<define name="PITCH_COEF" value="{ 256, 256, -256, -256, 256, 256, -256, -256}"/>
<define name="YAW_COEF" value="{ -256, 256, -256, 256, 256, -256, 256, -256}"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256, 256, 256, 256, 256}"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp21-018.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="180." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="270." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="1000"/>
<define name="PHI_DGAIN" value="400"/>
<define name="PHI_IGAIN" value="200"/>
<define name="THETA_PGAIN" value="1000"/>
<define name="THETA_DGAIN" value="400"/>
<define name="THETA_IGAIN" value="200"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="0"/>
<define name="THETA_DDGAIN" value="0"/>
<define name="PSI_DDGAIN" value="0"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="400"/>
<define name="HOVER_KD" value="350"/>
<define name="HOVER_KI" value="144"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
</module>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.1"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
<module name="led_safety_status">
<define name="SAFETY_WARNING_LED" value="5"/>
</module>
</firmware>
</airframe>
-189
View File
@@ -1,189 +0,0 @@
<conf>
<aircraft
name="E-Cocto"
ac_id="120"
airframe="airframes/ESDEN/esden_cocto_lm2a2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="white"
/>
<aircraft
name="E-GST"
ac_id="121"
airframe="airframes/ESDEN/esden_gain_scheduling_example.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#def7def7def7"
/>
<aircraft
name="E-HexyAvocado"
ac_id="122"
airframe="airframes/ESDEN/esden_hexy_ll11a2pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft_slow.xml"
flight_plan="flight_plans/dummy.xml"
settings=""
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#c7e3fa4b8806"
/>
<aircraft
name="E-HexyFig"
ac_id="123"
airframe="airframes/ESDEN/esden_hexy_lm2a2pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#e83db09cffff"
/>
<aircraft
name="E-LisaM2"
ac_id="124"
airframe="airframes/ESDEN/esden_lisa2_hex.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#ce5cfffff686"
/>
<aircraft
name="E-QSLia"
ac_id="125"
airframe="airframes/ESDEN/esden_qs_asp22.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#a12addc1ffff"
/>
<aircraft
name="E-QuadyApricot"
ac_id="127"
airframe="airframes/ESDEN/esden_quady_lm1a1pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#ffffb9e04a1b"
/>
<aircraft
name="E-QuadyL"
ac_id="126"
airframe="airframes/ESDEN/esden_quady_ll11a2pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#ffffb139b139"
/>
<aircraft
name="E-QuadyLemon"
ac_id="129"
airframe="airframes/ESDEN/esden_quady_lm2a2pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#fffffd519223"
/>
<aircraft
name="E-QuadyOrange"
ac_id="130"
airframe="airframes/ESDEN/esden_quady_ls10pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#ffffaf0e575e"
/>
<aircraft
name="E-QuadyPeach"
ac_id="128"
airframe="airframes/ESDEN/esden_quady_lm2a2pwmppm.xml"
radio="radios/ESDEN/esden_QS1RX6.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="#ffffdca7a2aa"
/>
<aircraft
name="LadyLisa"
ac_id="164"
airframe="airframes/examples/ladybird_lisa_s.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/superbitrf.xml settings/nps.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="white"
/>
<aircraft
name="Quad_Elle0"
ac_id="165"
airframe="airframes/examples/quadrotor_elle0.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/nps.xml"
settings_modules="modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_float_mlkf.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="white"
/>
<aircraft
name="Quad_LisaMX"
ac_id="30"
airframe="airframes/examples/quadrotor_lisa_mx.xml"
radio="radios/dummy.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/nps.xml"
settings_modules="modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_float_mlkf.xml modules/stabilization_rate.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="blue"
/>
<aircraft
name="Quad_LisaM_2"
ac_id="162"
airframe="airframes/examples/quadrotor_lisa_m_2_pwm_spektrum.xml"
radio="radios/dummy.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/nps.xml"
settings_modules="modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="white"
/>
<aircraft
name="Quad_LisaS"
ac_id="163"
airframe="airframes/examples/quadrotor_lisa_s.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/superbitrf.xml settings/nps.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
gui_color="white"
/>
<aircraft
name="setup_elle0"
ac_id="17"
airframe="airframes/examples/setup_elle0.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/dummy.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/setup_actuators.xml"
settings_modules=""
gui_color="blue"
/>
</conf>
@@ -1,214 +0,0 @@
<!-- this is a quadshot vehicle equiped with Lia -->
<!-- Copyright (C) 2012, Pranay Sinha, Piotr Esden-Tempski, Transition Robotics, Inc. -->
<!-- NOTES: gain_scheduling_example -->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-GSE">
<servos driver="Pwm">
<servo name="A1" no="0" min="1000" neutral="1000" max="2000"/>
<servo name="A2" no="1" min="1000" neutral="1000" max="2000"/>
<servo name="B1" no="2" min="1000" neutral="1000" max="2000"/>
<servo name="B2" no="3" min="1000" neutral="1000" max="2000"/>
<servo name="ELEVON_LEFT" no="4" min="1000" neutral="1500" max="2000"/>
<servo name="ELEVON_RIGHT" no="5" min="1000" neutral="1500" max="2000"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="A1" value="motor_mixing.commands[0]"/>
<set servo="A2" value="motor_mixing.commands[1]"/>
<set servo="B1" value="motor_mixing.commands[2]"/>
<set servo="B2" value="motor_mixing.commands[3]"/>
<let var="aileron_feedback_left" value="-@YAW"/>
<let var="aileron_feedback_right" value="-@YAW"/>
<let var="elevator_feedback_left" value="-@PITCH * (9600 + @THRUST)/9600"/>
<let var="elevator_feedback_right" value="+@PITCH * (9600 + @THRUST)/9600"/>
<let var="hover_left" value="6*$aileron_feedback_left+$elevator_feedback_left"/>
<let var="hover_right" value="6*$aileron_feedback_right+$elevator_feedback_right"/>
<set servo="ELEVON_LEFT" value= "$hover_left" />
<set servo="ELEVON_RIGHT" value= "$hover_right"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="PITCH_COEF" value="{ -256, -256, 256, 256 }"/>
<define name="ROLL_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="YAW_COEF" value="{ -256, 256, 128, -128 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp22-019.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="90." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO2" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="AUTOPILOT_KILL_WITHOUT_AHRS" value="TRUE"/>
<define name="USE_THROTTLE_FOR_MOTOR_ARMING" value="TRUE"/>
</section>
<section name="BAT">
<define name="MIN_BAT_LEVEL" value="10.4" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<!--////////////////THIS SECTION CONTAINS THE GAINS FOR DIFFERENT SETPOINTS\\\\\\\\\\\\\\\\\\-->
<section name ="GAIN_SETS">
<define name="NUMBER_OF_GAINSETS" value="2"/>
<define name="SCHEDULING_VARIABLE" value="stab_att_sp_euler.theta"/>
<define name="SCHEDULING_POINTS" value="{0, 20*M_PI/180}"/>
<define name="SCHEDULING_VARIABLE_FRAC" value="12"/>
<define name="PHI_P" value="{0, 1000}"/>
<define name="PHI_D" value="{0, 1000}"/>
<define name="PHI_I" value="{0, 1000}"/>
<define name="PHI_DD" value="{0, 1000}"/>
<define name="PSI_P" value="{0, 1000}"/>
<define name="PSI_D" value="{0, 1000}"/>
<define name="PSI_I" value="{0, 1000}"/>
<define name="PSI_DD" value="{0, 1000}"/>
<define name="THETA_P" value="{0, 1000}"/>
<define name="THETA_D" value="{0, 1000}"/>
<define name="THETA_I" value="{0, 1000}"/>
<define name="THETA_DD" value="{0, 1000}"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<define name="SP_PSI_DELTA_LIMIT" value="90" unit="deg"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="300." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="300." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.9"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<define name="PHI_PGAIN" value="230"/>
<define name="PHI_DGAIN" value="170"/>
<define name="PHI_IGAIN" value="30"/>
<define name="THETA_PGAIN" value="300"/>
<define name="THETA_DGAIN" value="50"/>
<define name="THETA_IGAIN" value="40"/>
<define name="PSI_PGAIN" value="300"/>
<define name="PSI_DGAIN" value="150"/>
<define name="PSI_IGAIN" value="0"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 0"/>
<define name="THETA_DDGAIN" value=" 140"/>
<define name="PSI_DDGAIN" value=" 0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="200"/>
<define name="HOVER_KD" value="175"/>
<define name="HOVER_KI" value="72"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="100"/>
<define name="DGAIN" value="100"/>
<define name="IGAIN" value="0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<module name="radio_control" type="ppm">
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
</module>
<configure name="LISA_M_BARO" value="BARO_MS5611_SPI"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.1"/>
<!--module name="imu" type="aspirin_v1.0"/-->
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<!-- FIXME <module name="gain_scheduling"/>-->
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="0"/>
<define name="AHRS_USE_GPS_HEADING" value="1"/>
</module>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
<module name="led_safety_status">
<define name="USE_LED_BODY" value="1"/>
<define name="SAFETY_WARNING_LED" value="BODY"/>
</module>
</firmware>
</airframe>
@@ -1,220 +0,0 @@
<!-- this is a star hexacopter frame equiped with Lisa/L 1.1, Aspirin 2.1 and generic china pwm motor controllers -->
<!--
Applicable configuration:
airframe="airframes/ESDEN/hexy_ll11a2pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/telemetry_booz2.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/settings_booz2.xml"
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-HexyAvocado">
<servos driver="Pwm">
<servo name="FRONT_LEFT" no="0" min="1000" neutral="1100" max="1950"/>
<servo name="FRONT_RIGHT" no="1" min="1000" neutral="1100" max="1950"/>
<servo name="RIGHT" no="2" min="1000" neutral="1100" max="1950"/>
<servo name="BACK_RIGHT" no="3" min="1000" neutral="1100" max="1950"/>
<servo name="BACK_LEFT" no="4" min="1000" neutral="1100" max="1950"/>
<servo name="LEFT" no="5" min="1000" neutral="1100" max="1950"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT_LEFT" value="motor_mixing.commands[0]"/>
<set servo="FRONT_RIGHT" value="motor_mixing.commands[1]"/>
<set servo="RIGHT" value="motor_mixing.commands[2]"/>
<set servo="BACK_RIGHT" value="motor_mixing.commands[3]"/>
<set servo="BACK_LEFT" value="motor_mixing.commands[4]"/>
<set servo="LEFT" value="motor_mixing.commands[5]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="6"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ 256, -256, -256, -256, 256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 256, 0, -256, -256, 0 }"/>
<define name="YAW_COEF" value="{ 256, -256, 256, -256, 256, -256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp21-001.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="180." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="RadOfDeg(45.)"/>
<define name="SP_MAX_THETA" value="RadOfDeg(45.)"/>
<define name="SP_MAX_PSI" value="RadOfDeg(45.)"/>
<define name="SP_MAX_R" value="RadOfDeg(90.)"/>
<define name="SP_MAX_P" value="RadOfDeg(90.)"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="RadOfDeg(800)"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="RadOfDeg(400.)"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="RadOfDeg(800)"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="RadOfDeg(400.)"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="RadOfDeg(500)"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="RadOfDeg(180.)"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- simonk esc firmware gains light quad? -->
<!-- feedback -->
<define name="PHI_PGAIN" value="570"/>
<define name="PHI_DGAIN" value="400"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="570"/>
<define name="THETA_DGAIN" value="400"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="1300"/>
<define name="PSI_DGAIN" value="1000"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 530"/>
<define name="THETA_DDGAIN" value=" 530"/>
<define name="PSI_DDGAIN" value=" 300"/>
<!-- simonk esc firmware gains light quad? -->
<!-- feedback -->
<!--define name="PHI_PGAIN" value="1300"/>
<define name="PHI_DGAIN" value="1000"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="1300"/>
<define name="THETA_DGAIN" value="1000"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="1300"/>
<define name="PSI_DGAIN" value="1000"/>
<define name="PSI_IGAIN" value="10"/-->
<!-- feedforward -->
<!--define name="PHI_DDGAIN" value=" 300"/>
<define name="THETA_DDGAIN" value=" 300"/>
<define name="PSI_DDGAIN" value=" 300"/-->
<!-- stock china esc firmware gains -->
<!-- feedback -->
<!--define name="PHI_PGAIN" value="390"/>
<define name="PHI_DGAIN" value="260"/>
<define name="PHI_IGAIN" value="50"/>
<define name="THETA_PGAIN" value="390"/>
<define name="THETA_DGAIN" value="260"/>
<define name="THETA_IGAIN" value="50"/>
<define name="PSI_PGAIN" value="780"/>
<define name="PSI_DGAIN" value="520"/>
<define name="PSI_IGAIN" value="10"/-->
<!-- feedforward -->
<!--define name="PHI_DDGAIN" value=" 300"/>
<define name="THETA_DDGAIN" value=" 300"/>
<define name="PSI_DDGAIN" value=" 300"/-->
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="830"/>
<define name="HOVER_KD" value="650"/>
<define name="HOVER_KI" value="100"/>
<!--define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/-->
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_l_1.1">
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
</module>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.1"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
<module name="led_safety_status">
<define name="SAFETY_WARNING_LED" value="5"/>
</module>
</firmware>
</airframe>
@@ -1,179 +0,0 @@
<!-- This is a star hexacopter frame equiped with Lisa/M 2.0, Aspirin 2.1 and hobbyking blue series 12A ESCs with SimonK firmware and 10/4.5 props -->
<!--
Applicable configuration:
airframe="airframes/ESDEN/hexy_lm2a2pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_tri.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-HexyFig">
<servos driver="Pwm">
<servo name="FRONT_LEFT" no="0" min="1000" neutral="1100" max="1950"/>
<servo name="FRONT_RIGHT" no="1" min="1000" neutral="1100" max="1950"/>
<servo name="RIGHT" no="2" min="1000" neutral="1100" max="1950"/>
<servo name="BACK_RIGHT" no="3" min="1000" neutral="1100" max="1950"/>
<servo name="BACK_LEFT" no="4" min="1000" neutral="1100" max="1950"/>
<servo name="LEFT" no="5" min="1000" neutral="1100" max="1950"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT_LEFT" value="motor_mixing.commands[0]"/>
<set servo="FRONT_RIGHT" value="motor_mixing.commands[1]"/>
<set servo="RIGHT" value="motor_mixing.commands[2]"/>
<set servo="BACK_RIGHT" value="motor_mixing.commands[3]"/>
<set servo="BACK_LEFT" value="motor_mixing.commands[4]"/>
<set servo="LEFT" value="motor_mixing.commands[5]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="6"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ 256, -256, -256, -256, 256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 256, 0, -256, -256, 0 }"/>
<define name="YAW_COEF" value="{ 256, -256, 256, -256, 256, -256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp21-026.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="180." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="180." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="RadOfDeg(45.)"/>
<define name="SP_MAX_THETA" value="RadOfDeg(45.)"/>
<define name="SP_MAX_PSI" value="RadOfDeg(45.)"/>
<define name="SP_MAX_R" value="RadOfDeg(90.)"/>
<define name="SP_MAX_P" value="RadOfDeg(90.)"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="RadOfDeg(800)"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="RadOfDeg(400.)"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="RadOfDeg(800)"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="RadOfDeg(400.)"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="RadOfDeg(500)"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="RadOfDeg(180.)"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- simonk esc firmware gains light quad? -->
<!-- feedback -->
<define name="PHI_PGAIN" value="570"/>
<define name="PHI_DGAIN" value="400"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="570"/>
<define name="THETA_DGAIN" value="400"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="1300"/>
<define name="PSI_DGAIN" value="1000"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 530"/>
<define name="THETA_DDGAIN" value=" 530"/>
<define name="PSI_DDGAIN" value=" 300"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="830"/>
<define name="HOVER_KD" value="650"/>
<define name="HOVER_KI" value="100"/>
<!--define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/-->
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
</module>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.1"/>
<define name="LISA_M_LONGITUDINAL_X"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
</firmware>
</airframe>
-198
View File
@@ -1,198 +0,0 @@
<!-- This is a star hexacopter frame equiped with Lisa/M 2.0, Aspirin 2.1 and hobbyking blue series 12A ESCs with SimonK firmware and 10/4.5 props -->
<!--
Applicable configuration:
airframe="airframes/ESDEN/hexy_lm2a2pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_tri.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-LisaM2">
<servos driver="Pwm">
<servo name="FRONT_LEFT" no="0" min="1000" neutral="1100" max="1950"/>
<servo name="FRONT_RIGHT" no="1" min="1000" neutral="1100" max="1950"/>
<servo name="RIGHT" no="2" min="1000" neutral="1100" max="1950"/>
<servo name="BACK_RIGHT" no="3" min="1000" neutral="1100" max="1950"/>
<servo name="BACK_LEFT" no="4" min="1000" neutral="1100" max="1950"/>
<servo name="LEFT" no="5" min="1000" neutral="1100" max="1950"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT_LEFT" value="motor_mixing.commands[0]"/>
<set servo="FRONT_RIGHT" value="motor_mixing.commands[1]"/>
<set servo="RIGHT" value="motor_mixing.commands[2]"/>
<set servo="BACK_RIGHT" value="motor_mixing.commands[3]"/>
<set servo="BACK_LEFT" value="motor_mixing.commands[4]"/>
<set servo="LEFT" value="motor_mixing.commands[5]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="6"/>
<define name="SCALE" value="256"/>
<!-- <define name="ROLL_COEF" value="{ 256, -256, -256, -256, 256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 256, 0, -256, -256, 0 }"/>
<define name="YAW_COEF" value="{ 256, -256, 256, -256, 256, -256 }"/>-->
<define name="ROLL_COEF" value="{ 0,0,0,0,0,0}"/>
<define name="PITCH_COEF" value="{ 0,0,0,0,0,0 }"/>
<define name="YAW_COEF" value="{ 0,0,0,0,0,0 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp21-026.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="-30." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO2" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="USE_THROTTLE_FOR_MOTOR_ARMING" value="TRUE"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<define name="SP_PSI_DELTA_LIMIT" value="90" unit="deg"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="300." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="7000." unit="deg/s"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="300." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="7000." unit="deg/s"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.9"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="900." unit="deg/s"/>
<!-- feedback -->
<!--350/310-->
<define name="PHI_PGAIN" value="450"/>
<define name="PHI_DGAIN" value="220"/>
<define name="PHI_IGAIN" value="40"/>
<define name="THETA_PGAIN" value="450"/>
<define name="THETA_DGAIN" value="220"/>
<define name="THETA_IGAIN" value="40"/>
<define name="PSI_PGAIN" value="700"/>
<define name="PSI_DGAIN" value="400"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 0"/>
<define name="THETA_DDGAIN" value=" 0"/>
<define name="PSI_DDGAIN" value=" 0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="830"/>
<define name="HOVER_KD" value="650"/>
<define name="HOVER_KI" value="100"/>
<!--define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/-->
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="0"/>
</section>
<section name="MISC">
<define name="USE_EARTH_BOUND_RC_SETPOINT" value="FALSE"/>
<define name="USE_REFERENCE_SYSTEM" value="FALSE"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
<define name="MILLIAMP_AT_FULL_THROTTLE" value="66000"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<module name="radio_control" type="ppm">
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
</module>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.1"/>
<define name="LISA_M_LONGITUDINAL_X"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="0"/>
<define name="AHRS_FLOATING_HEADING" value="1"/>
</module>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
<module name="led_safety_status">
<define name="USE_LED_BODY" value="1"/>
<define name="SAFETY_WARNING_LED" value="5"/>
</module>
</firmware>
</airframe>
-225
View File
@@ -1,225 +0,0 @@
<!-- this is a quadshot vehicle equiped with Lia -->
<!-- Copyright (C) 2012, Transition Robotics, Inc. -->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-QSLia">
<servos driver="Pwm">
<servo name="A1" no="0" min="1000" neutral="1050" max="2000"/>
<servo name="A2" no="1" min="1000" neutral="1050" max="2000"/>
<servo name="B1" no="2" min="1000" neutral="1050" max="2000"/>
<servo name="B2" no="3" min="1000" neutral="1050" max="2000"/>
<servo name="ELEVON_LEFT" no="4" min="1000" neutral="1500" max="2000"/>
<servo name="ELEVON_RIGHT" no="5" min="1000" neutral="1500" max="2000"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="A1" value="motor_mixing.commands[0]"/>
<set servo="A2" value="motor_mixing.commands[1]"/>
<set servo="B1" value="motor_mixing.commands[2]"/>
<set servo="B2" value="motor_mixing.commands[3]"/>
<let var="aileron_feedback_left" value="-@YAW"/>
<let var="aileron_feedback_right" value="-@YAW"/>
<let var="elevator_feedback_left" value="-@PITCH"/>
<let var="elevator_feedback_right" value="+@PITCH"/>
<let var="hover_left" value="3*$aileron_feedback_left"/>
<let var="hover_right" value="3*$aileron_feedback_right"/>
<let var="forward_left" value="6*$aileron_feedback_left+4*$elevator_feedback_left"/>
<let var="forward_right" value="6*$aileron_feedback_right+4*$elevator_feedback_right"/>
<set servo="ELEVON_LEFT" value="AP_MODE == AP_MODE_ATTITUDE_DIRECT ? $hover_left : $forward_left" />
<set servo="ELEVON_RIGHT" value="AP_MODE == AP_MODE_ATTITUDE_DIRECT ? $hover_right : $forward_right" />
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="PITCH_COEF" value="{ -256, -256, 256, 256 }"/>
<define name="ROLL_COEF" value="{ 256, -256, 256, -256 }"/>
<define name="YAW_COEF" value="{ -256, 256, 128, -128 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp22-019.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="90." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_AUTO1" value="AP_MODE_FORWARD"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO2" value="AP_MODE_RATE_DIRECT"/>
<define name="USE_THROTTLE_FOR_MOTOR_ARMING" value="TRUE"/>
</section>
<section name="BAT">
<define name="MIN_BAT_LEVEL" value="10.4" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name ="GAIN_SETS">
<define name="NUMBER_OF_GAINSETS" value="2"/>
<define name="SCHEDULING_VARIABLE" value="(radio.values[COMMAND_THRUST]+ transition_status"/>
<define name="SCHEDULING_POINTS" value="{1000, 6000}"/>
<define name="SCHEDULING_VARIABLE_FRAC" value="0"/>
<define name="PHI_P" value="{230, 230}"/>
<define name="PHI_D" value="{170, 170}"/>
<define name="PHI_I" value="{30, 30}"/>
<define name="PHI_DD" value="{0, 0}"/>
<define name="THETA_P" value="{200, 300}"/>
<define name="THETA_D" value="{100, 50}"/>
<define name="THETA_I" value="{40, 40}"/>
<define name="THETA_DD" value="{0, 0}"/>
<define name="PSI_P" value="{300, 300}"/>
<define name="PSI_D" value="{150, 150}"/>
<define name="PSI_I" value="{0, 0}"/>
<define name="PSI_DD" value="{0, 0}"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="60." unit="deg"/>
<define name="SP_MAX_THETA" value="60." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<define name="SP_PSI_DELTA_LIMIT" value="90" unit="deg"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="3000" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="300." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_Q" value="3000" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="300." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_R" value="3000" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.9"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="230"/>
<define name="PHI_DGAIN" value="170"/>
<define name="PHI_IGAIN" value="30"/>
<define name="THETA_PGAIN" value="300"/>
<define name="THETA_DGAIN" value="50"/>
<define name="THETA_IGAIN" value="40"/>
<define name="PSI_PGAIN" value="300"/>
<define name="PSI_DGAIN" value="150"/>
<define name="PSI_IGAIN" value="0"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 0"/>
<!--define name="THETA_DDGAIN" value=" 140"/-->
<define name="THETA_DDGAIN" value=" 0"/>
<define name="PSI_DDGAIN" value=" 0"/>
<!-- <define name="TURN_COORDINATION" value="0"/>
<define name="TURN_ACCEL_COORDINATION" value="0"/>-->
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="200"/>
<define name="HOVER_KD" value="175"/>
<define name="HOVER_KI" value="72"/>
<!-- <define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.3"/> -->
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="100"/>
<define name="DGAIN" value="100"/>
<define name="IGAIN" value="0"/>
</section>
<section name="MISC">
<define name="USE_EARTH_BOUND_RC_SETPOINT" value="TRUE"/>
<!-- <define name="USE_REFERENCE_SYSTEM" value="FALSE"/> -->
<define name="SWITCH_STICKS_FOR_RATE_CONTROL" value="TRUE"/>
<define name="TRANSITION_MAX_OFFSET" value="-82.0" unit="deg"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<module name="radio_control" type="ppm">
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
</module>
<configure name="LISA_M_BARO" value="BARO_MS5611_SPI"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.2"/>
<!-- <module name="imu" type="aspirin_v1.5"/> -->
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<!--module name="gain_scheduling"/-->
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="0"/>
<define name="AHRS_USE_GPS_HEADING" value="0"/>
<define name="AHRS_FLOATING_HEADING" value="1"/>
</module>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
<module name="led_safety_status">
<define name="USE_LED_BODY" value="1"/>
<define name="SAFETY_WARNING_LED" value="BODY"/>
</module>
</firmware>
</airframe>
@@ -1,213 +0,0 @@
<!-- this is a quadrocopter frame equiped with Lisa/L 1.1, Aspirin 2.1 and generic china pwm motor controllers -->
<!--
Applicable configuration:
airframe="airframes/ESDEN/esden_quady_ll11a2pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-QuadyL">
<servos driver="Pwm">
<servo name="FRONT" no="0" min="1000" neutral="1100" max="1950"/>
<servo name="RIGHT" no="1" min="1000" neutral="1100" max="1950"/>
<servo name="BACK" no="2" min="1000" neutral="1100" max="1950"/>
<servo name="LEFT" no="3" min="1000" neutral="1100" max="1950"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[0]"/>
<set servo="BACK" value="motor_mixing.commands[1]"/>
<set servo="RIGHT" value="motor_mixing.commands[2]"/>
<set servo="LEFT" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ 0, -256, 0, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 0, -256, 0 }"/>
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp21-001.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="225." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="RadOfDeg(45.)"/>
<define name="SP_MAX_THETA" value="RadOfDeg(45.)"/>
<define name="SP_MAX_PSI" value="RadOfDeg(45.)"/>
<define name="SP_MAX_R" value="RadOfDeg(90.)"/>
<define name="SP_MAX_P" value="RadOfDeg(90.)"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="RadOfDeg(800)"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="RadOfDeg(400.)"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="RadOfDeg(800)"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="RadOfDeg(400.)"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="RadOfDeg(500)"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="RadOfDeg(180.)"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- simonk esc firmware gains light quad? -->
<!-- feedback -->
<define name="PHI_PGAIN" value="570"/>
<define name="PHI_DGAIN" value="400"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="570"/>
<define name="THETA_DGAIN" value="400"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="1300"/>
<define name="PSI_DGAIN" value="1000"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 530"/>
<define name="THETA_DDGAIN" value=" 530"/>
<define name="PSI_DDGAIN" value=" 300"/>
<!-- simonk esc firmware gains light quad? -->
<!-- feedback -->
<!--define name="PHI_PGAIN" value="1300"/>
<define name="PHI_DGAIN" value="1000"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="1300"/>
<define name="THETA_DGAIN" value="1000"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="1300"/>
<define name="PSI_DGAIN" value="1000"/>
<define name="PSI_IGAIN" value="10"/-->
<!-- feedforward -->
<!--define name="PHI_DDGAIN" value=" 300"/>
<define name="THETA_DDGAIN" value=" 300"/>
<define name="PSI_DDGAIN" value=" 300"/-->
<!-- stock china esc firmware gains -->
<!-- feedback -->
<!--define name="PHI_PGAIN" value="390"/>
<define name="PHI_DGAIN" value="260"/>
<define name="PHI_IGAIN" value="50"/>
<define name="THETA_PGAIN" value="390"/>
<define name="THETA_DGAIN" value="260"/>
<define name="THETA_IGAIN" value="50"/>
<define name="PSI_PGAIN" value="780"/>
<define name="PSI_DGAIN" value="520"/>
<define name="PSI_IGAIN" value="10"/-->
<!-- feedforward -->
<!--define name="PHI_DDGAIN" value=" 300"/>
<define name="THETA_DDGAIN" value=" 300"/>
<define name="PSI_DDGAIN" value=" 300"/-->
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="830"/>
<define name="HOVER_KD" value="650"/>
<define name="HOVER_KI" value="100"/>
<!--define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/-->
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_l_1.1">
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
</module>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.1"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
</firmware>
</airframe>
@@ -1,174 +0,0 @@
<!-- this is a quadrocopter frame equiped with Lisa/M 1.0, Aspirin 1.0 and generic china pwm motor controllers -->
<!--
Applicable configuration:
airframe="airframes/ESDEN/quady_lm1a1pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-QuadyApricot">
<servos driver="Pwm">
<servo name="FRONT" no="0" min="1000" neutral="1100" max="1950"/>
<servo name="RIGHT" no="1" min="1000" neutral="1100" max="1950"/>
<servo name="BACK" no="2" min="1000" neutral="1100" max="1950"/>
<servo name="LEFT" no="3" min="1000" neutral="1100" max="1950"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[0]"/>
<set servo="BACK" value="motor_mixing.commands[1]"/>
<set servo="RIGHT" value="motor_mixing.commands[2]"/>
<set servo="LEFT" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ 0, -256, 0, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 0, -256, 0 }"/>
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp21-018.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="45." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="180." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="1500"/>
<define name="PHI_DGAIN" value="1000"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="1500"/>
<define name="THETA_DGAIN" value="1000"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="1500"/>
<define name="PSI_DGAIN" value="1000"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 300"/>
<define name="THETA_DDGAIN" value=" 300"/>
<define name="PSI_DDGAIN" value=" 300"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="400"/>
<define name="HOVER_KD" value="350"/>
<define name="HOVER_KI" value="144"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_1.0">
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
</module>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v1.0"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
</firmware>
</airframe>
@@ -1,181 +0,0 @@
<!-- this is a quadrocopter frame equiped with Lisa/M 2.0, Aspirin 2.1 and generic china pwm motor controllers -->
<!--
Applicable configuration:
airframe="airframes/ESDEN/quady_lm2a2pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-QuadyLemon">
<servos driver="Pwm">
<servo name="FRONT" no="0" min="1000" neutral="1100" max="1950"/>
<servo name="RIGHT" no="1" min="1000" neutral="1100" max="1950"/>
<servo name="BACK" no="2" min="1000" neutral="1100" max="1950"/>
<servo name="LEFT" no="3" min="1000" neutral="1100" max="1950"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[0]"/>
<set servo="BACK" value="motor_mixing.commands[1]"/>
<set servo="RIGHT" value="motor_mixing.commands[2]"/>
<set servo="LEFT" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ 0, -256, 0, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 0, -256, 0 }"/>
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp21-018.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="45." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="1000"/>
<define name="PHI_DGAIN" value="400"/>
<define name="PHI_IGAIN" value="200"/>
<define name="THETA_PGAIN" value="1000"/>
<define name="THETA_DGAIN" value="400"/>
<define name="THETA_IGAIN" value="200"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 300"/>
<define name="THETA_DDGAIN" value=" 300"/>
<define name="PSI_DDGAIN" value=" 300"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="400"/>
<define name="HOVER_KD" value="350"/>
<define name="HOVER_KI" value="144"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
</module>
<configure name="LISA_M_BARO" value="BARO_MS5611_SPI"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.1"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
<module name="led_safety_status">
<define name="SAFETY_WARNING_LED" value="5"/>
</module>
</firmware>
</airframe>
@@ -1,175 +0,0 @@
<!-- this is a quadrocopter frame equiped with Lisa/M 2.0, Aspirin 2.1 and generic china pwm motor controllers and PPM input RX on UART1_RX pin -->
<!--
Applicable configuration:
airframe="airframes/ESDEN/quady_lm2a2pwmppm.xml"
radio="radios/ESDEN/QS1RX6.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-QuadyPeach">
<servos driver="Pwm">
<servo name="FRONT" no="0" min="1000" neutral="1100" max="1950"/>
<servo name="RIGHT" no="1" min="1000" neutral="1100" max="1950"/>
<servo name="BACK" no="2" min="1000" neutral="1100" max="1950"/>
<servo name="LEFT" no="3" min="1000" neutral="1100" max="1950"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[0]"/>
<set servo="BACK" value="motor_mixing.commands[1]"/>
<set servo="RIGHT" value="motor_mixing.commands[2]"/>
<set servo="LEFT" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ 0, -256, 0, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 0, -256, 0 }"/>
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_asp21-018.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="45." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="180." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="1500"/>
<define name="PHI_DGAIN" value="1000"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="1500"/>
<define name="THETA_DGAIN" value="1000"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="1500"/>
<define name="PSI_DGAIN" value="1000"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 300"/>
<define name="THETA_DDGAIN" value=" 300"/>
<define name="PSI_DDGAIN" value=" 300"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="400"/>
<define name="HOVER_KD" value="350"/>
<define name="HOVER_KI" value="144"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<module name="radio_control" type="ppm">
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
</module>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.1"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="int_euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
<module name="led_safety_status">
<define name="SAFETY_WARNING_LED" value="5"/>
</module>
</firmware>
</airframe>
@@ -1,179 +0,0 @@
<!-- this is a quadrocopter frame equiped with Lisa/S 1.0 and generic china pwm motor controllers -->
<!--
Applicable configuration:
airframe="airframes/ESDEN/quady_ls10pwm.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="E-QuadyOrange">
<servos driver="Pwm">
<servo name="FRONT" no="0" min="1000" neutral="1100" max="1950"/>
<servo name="RIGHT" no="1" min="1000" neutral="1100" max="1950"/>
<servo name="BACK" no="2" min="1000" neutral="1100" max="1950"/>
<servo name="LEFT" no="3" min="1000" neutral="1100" max="1950"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[0]"/>
<set servo="BACK" value="motor_mixing.commands[1]"/>
<set servo="RIGHT" value="motor_mixing.commands[2]"/>
<set servo="LEFT" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="0"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="256"/>
<define name="ROLL_COEF" value="{ 0, -256, 0, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 0, -256, 0 }"/>
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<include href="conf/airframes/ESDEN/calib/esden_ls10-default.xml"/>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="45." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="1000"/>
<define name="PHI_DGAIN" value="400"/>
<define name="PHI_IGAIN" value="200"/>
<define name="THETA_PGAIN" value="1000"/>
<define name="THETA_DGAIN" value="400"/>
<define name="THETA_IGAIN" value="200"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value=" 300"/>
<define name="THETA_DDGAIN" value=" 300"/>
<define name="PSI_DDGAIN" value=" 300"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="400"/>
<define name="HOVER_KD" value="350"/>
<define name="HOVER_KI" value="144"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, back_motor, right_motor, left_motor" type="string[]"/>
</section>
<firmware name="rotorcraft">
<target name="ap" board="lisa_s_1.0">
<module name="radio_control" type="superbitrf_rc">
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="0"/>
</module>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_1AND2"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="lisa_s_v1.0"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<!--define name="USE_INS_NAV_INIT"/-->
<!--module name="stabilization" type="euler"/>
<module name="ahrs" type="int_cmpl_euler"/-->
</firmware>
</airframe>
+1 -34
View File
@@ -1,16 +1,5 @@
<conf>
<aircraft
name="LadyFlixr"
ac_id="15"
airframe="airframes/FLIXR/flixr_ladybird_lisa_s.xml"
radio="radios/dummy.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/nps.xml settings/persistent_settings.xml settings/superbitrf.xml"
settings_modules="modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="blue"
/>
<aircraft
<aircraft
name="bebop"
ac_id="202"
airframe="airframes/examples/bebop.xml"
@@ -21,26 +10,4 @@
settings_modules="modules/video_rtp_stream.xml modules/air_data.xml modules/geo_mag.xml modules/ins_extended.xml modules/ahrs_float_mlkf.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="blue"
/>
<aircraft
name="flixr_lisamx"
ac_id="42"
airframe="airframes/FLIXR/flixr_lisa_mx.xml"
radio="radios/dummy.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/setup_actuators.xml"
settings_modules="modules/ahrs_float_mlkf.xml modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/electrical.xml modules/geo_mag.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/stabilization_int_quat.xml"
gui_color="blue"
/>
<aircraft
name="zmr250_elle0"
ac_id="40"
airframe="airframes/FLIXR/flixr_zmr250_elle0.xml"
radio="radios/dummy.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_float_mlkf.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="blue"
/>
</conf>
@@ -1,224 +0,0 @@
<!-- this is a LadyBird quadrotor frame equiped with Lisa/S 1.0 -->
<!-- The LadyBird frame comes with four brushed motors in an X configuration. -->
<!--
The motor and rotor configuration is the following:
Front
^
|
Motor3(NW) Motor0(NE)
CW CCW
\ /
,___,
| |
| |
|___|
/ \
CCW CW
Motor2(SW) Motor1(SE)
The Lisa/S is rotated by 13deg CCW against the frame.
-->
<!--
Applicable configuration:
airframe="airframes/examples/ladybird_lisa_s.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
-->
<airframe name="quadrotor_lisa_s">
<firmware name="rotorcraft">
<target name="ap" board="lisa_s_1.0">
<module name="radio_control" type="superbitrf_rc">
<!-- To store the binding parameters for the superbit radio in your
airframe file uncomment the following three lines and set the
correct values based on the output of the superbitrf telemetry
messages. -->
<!--define name="RADIO_TRANSMITTER_ID" value="1335259868"/--> <!-- Esden (1BitSquared) Dx6i: TX 1 -->
<!--define name="RADIO_TRANSMITTER_CHAN" value="6"/-->
<!--define name="RADIO_TRANSMITTER_PROTOCOL" value="0x01"/-->
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
</module>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
<define name="USE_PERSISTENT_SETTINGS" value="TRUE"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<!-- This airframe is using the servo PWM outputs directly to drive mosfets, which in turn directly drive brushed motors.
With the following settings we will be driving the motors with a 36KHz signal that should be well above anyone's hearing range.
If we went with the 500Hz that woul be the default we would be hearing a very annoying high pitched sound coming from the motors.
-->
<!-- Setting the PWM timer base frequency to 36MHz -->
<define name="PWM_BASE_FREQ" value="36000000"/>
<!-- Setting the PWM interval to 36KHz -->
<define name="SERVO_HZ" value="36000"/>
<define name="USE_SERVOS_1AND2"/>
</module>
<module name="telemetry" type="superbitrf"/>
<!-- Comment the previous line and uncomment the following one if you need
to use the debug serial interface for telemetry. -->
<!--module name="telemetry" type="transparent"/-->
<module name="imu" type="lisa_s_v1.0">
<define name="LISA_S_UPSIDE_DOWN"/> <!-- Upside down is a relative term. :) -->
</module>
<module name="gps" type="ublox"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins"/>
<module name="gps" type="ubx_ucenter"/>
<module name="geo_mag"/>
</firmware>
<servos driver="Pwm">
<servo name="FL" no="3" min="0" neutral="50" max="1000"/>
<servo name="FR" no="0" min="0" neutral="50" max="1000"/>
<servo name="BR" no="1" min="0" neutral="50" max="1000"/>
<servo name="BL" no="2" min="0" neutral="50" max="1000"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FL" value="motor_mixing.commands[MOTOR_FRONT_LEFT]"/>
<set servo="FR" value="motor_mixing.commands[MOTOR_FRONT_RIGHT]"/>
<set servo="BR" value="motor_mixing.commands[MOTOR_BACK_RIGHT]"/>
<set servo="BL" value="motor_mixing.commands[MOTOR_BACK_LEFT]"/>
</command_laws>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TYPE" value="QUAD_X"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="-13." unit="deg"/>
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="0"/>
<define name="ACCEL_Z_NEUTRAL" value="0"/>
<!-- MAGNETO CALIBRATION flixr -->
<define name="MAG_X_NEUTRAL" value="-179"/>
<define name="MAG_Y_NEUTRAL" value="-109"/>
<define name="MAG_Z_NEUTRAL" value="268"/>
<define name="MAG_X_SENS" value="3.46888397195" integer="16"/>
<define name="MAG_Y_SENS" value="3.90938534321" integer="16"/>
<define name="MAG_Z_SENS" value="4.18889816295" integer="16"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="14000"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.3" unit="V"/>
<define name="LOW_BAT_LEVEL" value="3.5" unit="V"/>
<define name="MAX_BAT_LEVEL" value="4.1" unit="V"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_PSI" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="SP_MAX_P" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="560"/>
<define name="PHI_DGAIN" value="280"/>
<define name="PHI_IGAIN" value="140"/>
<define name="THETA_PGAIN" value="560"/>
<define name="THETA_DGAIN" value="280"/>
<define name="THETA_IGAIN" value="140"/>
<define name="PSI_PGAIN" value="1000"/>
<define name="PSI_DGAIN" value="600"/>
<define name="PSI_IGAIN" value="20"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="0"/>
<define name="THETA_DDGAIN" value="0"/>
<define name="PSI_DDGAIN" value="600"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="INS" prefix="INS_">
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="276"/>
<define name="HOVER_KD" value="455"/>
<define name="HOVER_KI" value="100"/>
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value="0.5"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="H_X" value=" 0.47577"/>
<define name="H_Y" value=" 0.11811"/>
<define name="H_Z" value=" 0.87161"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="PGAIN" value="39"/>
<define name="DGAIN" value="50"/>
<define name="IGAIN" value="19"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
</section>
</airframe>
-243
View File
@@ -1,243 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!-- this is a quadrotor frame in X-configuration equiped with
* Autopilot: Lisa/MX 2.0 with STM32F4 http://wiki.paparazziuav.org/wiki/Lisa/M_v2.0
* IMU: Aspirin 2.2 http://wiki.paparazziuav.org/wiki/AspirinIMU
* Actuators: PWM motor controllers http://wiki.paparazziuav.org/wiki/Subsystem/actuators#PWM
* GPS: Ublox http://wiki.paparazziuav.org/wiki/Subsystem/gps
* RC: two Spektrum sats http://wiki.paparazziuav.org/wiki/Subsystem/radio_control#Spektrum
-->
<airframe name="Quadrotor LisaMX_2.0 pwm">
<firmware name="rotorcraft">
<target name="ap" board="lisa_mx_2.0">
<!-- MPU6000 is configured to output data at 2kHz, but polled at 512Hz PERIODIC_FREQUENCY -->
<!--define name="DEBUG"/-->
<configure name="BARO_LED" value="5"/>
<!--configure name="HAS_LUFTBOOT" value="1"/-->
<define name="USE_KILL_SWITCH_FOR_MOTOR_ARMING" value="TRUE"/>
<define name="USE_PERSISTENT_SETTINGS" value="TRUE"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
</target>
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_AUX1"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_AUX2"/>
</module>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="aspirin_v2.2"/>
<module name="gps" type="ublox"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="float_mlkf"/>
<module name="ahrs" type="int_cmpl_quat">
<configure name="SECONDARY_AHRS" value="int_cmpl_quat"/>
</module>
<module name="ins" type="hff"/>
<module name="adc_generic">
<configure name="ADC_CHANNEL_GENERIC1" value="ADC_1"/>
<configure name="ADC_CHANNEL_GENERIC2" value="ADC_2"/>
</module>
<module name="gps" type="ubx_ucenter"/>
<module name="geo_mag"/>
<module name="sys_mon"/>
<module name="air_data">
<define name="AIR_DATA_TEMPERATURE_ID" value="IMU_ASPIRIN2_ID"/>
</module>
<module name="mission_rotorcraft"/>
<!--define name="KILL_ON_GROUND_DETECT" value="TRUE"/-->
<!--define name="FAILSAFE_ON_BAT_CRITICAL" value="TRUE"/-->
</firmware>
<firmware name="setup">
<target name="tunnel" board="lisa_mx_2.0"/>
<target name="usb_tunnel" board="lisa_mx_2.0">
<configure name="TUNNEL_PORT" value="UART3"/>
<configure name="TUNNEL_BAUD" value="B38400"/>
</target>
<target name="setup_actuators" board="lisa_mx_2.0">
<module name="actuators" type="pwm"/>
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</target>
</firmware>
<firmware name="test_progs">
<target name="test_sys_time_timer" board="lisa_mx_2.0"/>
<target name="test_adc" board="lisa_mx_2.0"/>
<target name="test_telemetry" board="lisa_mx_2.0"/>
<target name="test_baro_board" board="lisa_mx_2.0">
<configure name="BARO_LED" value="5"/>
</target>
<target name="test_radio_control" board="lisa_mx_2.0">
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_AUX1"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="0"/>
</module>
</target>
<target name="test_imu" board="lisa_mx_2.0">
<!--module name="spi_master"/-->
<module name="imu" type="aspirin_v2.2"/>
</target>
<target name="test_ahrs" board="lisa_mx_2.0">
<module name="imu" type="aspirin_v2.2"/>
<module name="ahrs" type="int_cmpl_quat"/>
</target>
<target name="test_module" board="lisa_mx_2.0">
<module name="usb_serial_stm32_example1"/>
</target>
</firmware>
<servos driver="Pwm">
<servo name="FL" no="0" min="1000" neutral="1100" max="1900"/>
<servo name="FR" no="1" min="1000" neutral="1100" max="1900"/>
<servo name="BR" no="2" min="1000" neutral="1100" max="1900"/>
<servo name="BL" no="3" min="1000" neutral="1100" max="1900"/>
<servo name="E1" no="4" min="1000" neutral="1100" max="1900"/>
<servo name="E2" no="5" min="1000" neutral="1100" max="1900"/>
<servo name="E3" no="6" min="1000" neutral="1100" max="1900"/>
<servo name="E4" no="7" min="1000" neutral="1100" max="1900"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<!-- front left (CW), front right (CCW), back right (CW), back left (CCW) -->
<define name="TYPE" value="QUAD_X"/>
</section>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FL" value="motor_mixing.commands[MOTOR_FRONT_LEFT]"/>
<set servo="FR" value="motor_mixing.commands[MOTOR_FRONT_RIGHT]"/>
<set servo="BR" value="motor_mixing.commands[MOTOR_BACK_RIGHT]"/>
<set servo="BL" value="motor_mixing.commands[MOTOR_BACK_LEFT]"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<define name="ACCEL_X_NEUTRAL" value="11"/>
<define name="ACCEL_Y_NEUTRAL" value="11"/>
<define name="ACCEL_Z_NEUTRAL" value="-25"/>
<!-- replace this with your own calibration -->
<define name="MAG_X_NEUTRAL" value="-179"/>
<define name="MAG_Y_NEUTRAL" value="-21"/>
<define name="MAG_Z_NEUTRAL" value="79"/>
<define name="MAG_X_SENS" value="4.17334785618" integer="16"/>
<define name="MAG_Y_SENS" value="3.98885954135" integer="16"/>
<define name="MAG_Z_SENS" value="4.40442339014" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- values used if no GPS fix, on 3D fix is update by geo_mag module -->
<define name="H_X" value="0.3770441"/>
<define name="H_Y" value="0.0193986"/>
<define name="H_Z" value="0.9259921"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="DEADBAND_A" value="0"/>
<define name="DEADBAND_E" value="0"/>
<define name="DEADBAND_R" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="400" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="400" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="250" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="180." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="1000"/>
<define name="PHI_DGAIN" value="400"/>
<define name="PHI_IGAIN" value="200"/>
<define name="THETA_PGAIN" value="1000"/>
<define name="THETA_DGAIN" value="400"/>
<define name="THETA_IGAIN" value="200"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="300"/>
<define name="THETA_DDGAIN" value="300"/>
<define name="PSI_DDGAIN" value="300"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="150"/>
<define name="HOVER_KD" value="80"/>
<define name="HOVER_KI" value="20"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.5"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="20" unit="deg"/>
<define name="USE_SPEED_REF" value="TRUE"/>
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="100"/>
<define name="AGAIN" value="70"/>
<define name="IGAIN" value="20"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="nw_motor, ne_motor, se_motor, sw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
<define name="COMMANDS_NB" value="4"/>
<!-- mode switch on joystick channel 5 (axis numbering starting at zero) -->
<define name="JS_AXIS_MODE" value="4"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="9.6" unit="V"/>
<define name="LOW_BAT_LEVEL" value="10.1" unit="V"/>
<define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
</section>
</airframe>
-244
View File
@@ -1,244 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
Use settings/tuning_ins.xml
Use telemetry/default_fixedwing_imu.xml
-->
<airframe name="LisaMX Dual">
<!-- ************************* FIRMWARE ************************* -->
<firmware name="fixedwing">
<target name="ap" board="lisa_mx_2.0">
<configure name="SEPARATE_FBW" value="1"/>
<define name="LINK_MCU_LED" value="4"/>
<!-- FBW -->
<module name="actuators" type="dummy"/>
<module name="intermcu" type="uart">
<configure name="INTERMCU_PORT" value="UART2"/>
</module>
<!-- AP -->
<module name="control"/>
<module name="navigation"/>
<module name="telemetry" type="transparent"/>
<module name="ins" type="alt_float"/>
<module name="gps" type="ublox"/>
</target>
<target name="fbw" board="lisa_mx_2.0">
<configure name="SEPARATE_FBW" value="1"/>
<define name="OUTBACK_CHALLENGE_DANGEROUS_RULE_RC_LOST_NO_AP" value="1"/>
<define name="LINK_MCU_LED" value="1"/>
<!-- no usb -->
<!-- FBW <-> AP -->
<module name="intermcu" type="uart">
<configure name="INTERMCU_PORT" value="UART1"/>
</module>
<!-- SERVO'S -->
<module name="actuators" type="pwm">
<define name="USE_SERVOS_7AND8"/>
</module>
<!--module name="fbw_datalink"/-->
<module name="telemetry" type="transparent"/>
</target>
<target name="sim" board="pc">
<!-- AP -->
<module name="control"/>
<module name="navigation"/>
<!-- Communication -->
<module name="telemetry" type="transparent"/>
<module name="ins" type="alt_float"/>
</target>
<!-- common modules -->
<module name="radio_control" type="spektrum">
<define name="RADIO_CONTROL_NB_CHANNEL" value="8" />
</module>
<!-- extra modules -->
<module name="light">
<define name="LIGHT_LED_STROBE" value="6"/>
<!-- <define name="LIGHT_LED_NAV" value="2"/> -->
<define name="STROBE_LIGHT_MODE_DEFAULT" value="6"/>
<define name="NAV_LIGHT_MODE_DEFAULT" value="4"/>
</module>
<module name="nav" type="line"/>
<module name="air_data"/>
<define name="AGR_CLIMB"/>
<define name="LOITER_TRIM"/>
<define name="TUNE_AGRESSIVE_CLIMB"/>
<define name="STRONG_WIND"/>
<define name="WIND_INFO"/>
<define name="WIND_INFO_RET"/>
<define name="RADIO_CONTROL_AUTO1"/>
</firmware>
<!-- ************************* ACTUATORS ************************* -->
<servos>
<servo name="THROTTLE" no="0" min="1000" neutral="1000" max="2000"/>
<servo name="AILEVON_LEFT" no="1" min="1200" neutral="1500" max="1800"/>
<servo name="ELEVATOR" no="2" min="2000" neutral="1500" max="1000"/>
<servo name="RUDDER" no="3" min="1100" neutral="1500" max="1900"/>
<servo name="AILEVON_RIGHT" no="4" min="1800" neutral="1500" max="1200"/>
</servos>
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
</commands>
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
</rc_commands>
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="70" unit="deg"/>
<define name="MAX_PITCH" value="50" unit="deg"/>
</section>
<command_laws>
<set servo="AILEVON_LEFT" value="@ROLL"/>
<set servo="AILEVON_RIGHT" value="-@ROLL"/>
<set servo="THROTTLE" value="@THROTTLE"/>
<set servo="ELEVATOR" value="@PITCH"/>
<set servo="RUDDER" value="@YAW"/>
</command_laws>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="1" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0.0" unit="%"/>
<define name="DEFAULT_ROLL" value="0.0" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.0" unit="rad"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
<!-- ************************* SENSORS ************************* -->
<section name="IMU" prefix="IMU_">
<!-- replace this with your own calibration -->
<define name="MAG_X_NEUTRAL" value="-179"/>
<define name="MAG_Y_NEUTRAL" value="-21"/>
<define name="MAG_Z_NEUTRAL" value="79"/>
<define name="MAG_X_SENS" value="4.17334785618" integer="16"/>
<define name="MAG_Y_SENS" value="3.98885954135" integer="16"/>
<define name="MAG_Z_SENS" value="4.40442339014" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- Local magnetic field, on 3D fix is update by geo_mag module -->
<define name="H_X" value="0.51562740288882"/>
<define name="H_Y" value="-0.05707735220832"/>
<define name="H_Z" value="0.85490967783446"/>
</section>
<!-- ************************* GAINS ************************* -->
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="0.85"/>
<define name="ROLL_MAX_SETPOINT" value="0.6" unit="rad"/>
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="rad"/>
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="rad"/>
<!--
<define name="ROLL_PGAIN" value="0."/>
<define name="AILERON_OF_THROTTLE" value="0.0"/>
<define name="PITCH_PGAIN" value="0."/>
<define name="PITCH_DGAIN" value="0"/>
<define name="ELEVATOR_OF_ROLL" value="0"/>
-->
<define name="ROLL_PGAIN" value="12000."/>
<define name="AILERON_OF_THROTTLE" value="0.0"/>
<define name="PITCH_PGAIN" value="9000."/>
<define name="PITCH_DGAIN" value="1.5"/>
<define name="ELEVATOR_OF_ROLL" value="1250"/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<define name="POWER_CTL_BAT_NOMINAL" value="7.6" unit="volt"/>
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.07"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="2."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.55"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.30"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.80"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-500"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.15" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.025"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.05"/>
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.05"/>
<define name="AUTO_PITCH_IGAIN" value="0.075"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.35"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.35"/>
<define name="THROTTLE_SLEW" value="0.05"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="20"/>
<!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/>
<!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="0.8"/>
<!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.3"/>
<!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/>
<!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.25"/>
<!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/>
<!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<!-- ************************* MISC ************************* -->
<section name="BAT">
<!-- 2S LiPo with 1000mAh -->
<define name="LOW_BAT_LEVEL" value="7.5" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="7.3" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="7.0" unit="V"/>
<define name="MAX_BAT_LEVEL" value="8.4" unit="V"/>
</section>
<section name="SIMU">
<define name="YAW_RESPONSE_FACTOR" value="0.7"/>
</section>
<section name="MISC">
<define name="TELEMETRY_MODE_FBW" value="1"/>
<define name="NOMINAL_AIRSPEED" value="28.0" unit="m/s"/>
<define name="CARROT" value="5." unit="s"/>
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
<define name="XBEE_INIT" value="ATPL4\rATRN5\rATTT80\r" type="string"/>
<!-- <define name="NO_XBEE_API_INIT" value="TRUE"/> -->
<define name="COMMAND_ROLL_TRIM" value="180"/>
<define name="COMMAND_PITCH_TRIM" value="-194."/>
<define name="VoltageOfAdc(adc)" value="(0.0034912109375*adc)"/>
<!-- 12bit 3.3V over 10k/3k bridge -->
</section>
<section name="NAV">
<define name="NAV_GLIDE_PITCH_TRIM" value="0"/>
</section>
</airframe>
-181
View File
@@ -1,181 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!-- this is a quadrotor frame in X-configuration equiped with
* Autopilot: ELLE0 1.0 with STM32F4 http://wiki.paparazziuav.org/wiki/ELLE0
* IMU: MPU9250 & MS5611 http://wiki.paparazziuav.org/wiki/ELLE0#IMU
* Actuators: PWM motor controllers http://wiki.paparazziuav.org/wiki/Subsystem/actuators#PWM
* GPS: Ublox http://wiki.paparazziuav.org/wiki/Subsystem/gps
* RC: two Spektrum sats http://wiki.paparazziuav.org/wiki/Subsystem/radio_control#Spektrum
-->
<airframe name="ZMR250 quad ELLE0">
<firmware name="rotorcraft">
<target name="ap" board="elle0_1.0">
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
</target>
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
</module>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="elle0"/>
<module name="gps" type="ublox"/>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="float_mlkf">
<!-- Uncomment to enable all axis update from the Magnetometer. Do
it only if you have a very well calibrated and tested
magnetometer otherwise your attitude will drift. -->
<!--define name="AHRS_MAG_UPDATE_ALL_AXES" value="1"/-->
</module>
<module name="ins" type="hff"/>
<module name="gps" type="ubx_ucenter"/>
<module name="geo_mag"/>
<module name="air_data"/>
<!--define name="KILL_ON_GROUND_DETECT" value="TRUE"/-->
</firmware>
<servos driver="Pwm">
<servo name="FL" no="0" min="1000" neutral="1100" max="2000"/>
<servo name="FR" no="1" min="1000" neutral="1100" max="2000"/>
<servo name="BR" no="2" min="1000" neutral="1100" max="2000"/>
<servo name="BL" no="3" min="1000" neutral="1100" max="2000"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<!-- front left (CW), front right (CCW), back right (CW), back left (CCW) -->
<define name="TYPE" value="QUAD_X"/>
</section>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FL" value="motor_mixing.commands[MOTOR_FRONT_LEFT]"/>
<set servo="FR" value="motor_mixing.commands[MOTOR_FRONT_RIGHT]"/>
<set servo="BR" value="motor_mixing.commands[MOTOR_BACK_RIGHT]"/>
<set servo="BL" value="motor_mixing.commands[MOTOR_BACK_LEFT]"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<!-- replace this with your own calibration -->
<define name="MAG_X_NEUTRAL" value="-4"/>
<define name="MAG_Y_NEUTRAL" value="-184"/>
<define name="MAG_Z_NEUTRAL" value="-15"/>
<define name="MAG_X_SENS" value="7.62223014305" integer="16"/>
<define name="MAG_Y_SENS" value="7.53398306166" integer="16"/>
<define name="MAG_Z_SENS" value="7.32577266431" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- values used if no GPS fix, on 3D fix is update by geo_mag module -->
<define name="H_X" value="0.3770441"/>
<define name="H_Y" value="0.0193986"/>
<define name="H_Z" value="0.9259921"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="DEADBAND_A" value="0"/>
<define name="DEADBAND_E" value="0"/>
<define name="DEADBAND_R" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="400" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="400" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="250" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="180." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="1000"/>
<define name="PHI_DGAIN" value="400"/>
<define name="PHI_IGAIN" value="200"/>
<define name="THETA_PGAIN" value="1000"/>
<define name="THETA_DGAIN" value="400"/>
<define name="THETA_IGAIN" value="200"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="300"/>
<define name="THETA_DDGAIN" value="300"/>
<define name="PSI_DDGAIN" value="300"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="150"/>
<define name="HOVER_KD" value="80"/>
<define name="HOVER_KI" value="20"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.5"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="20" unit="deg"/>
<define name="USE_SPEED_REF" value="TRUE"/>
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="100"/>
<define name="AGAIN" value="70"/>
<define name="IGAIN" value="20"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="nw_motor, ne_motor, se_motor, sw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
<!-- mode switch on joystick channel 5 (axis numbering starting at zero) -->
<define name="JS_AXIS_MODE" value="4"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="9.6" unit="V"/>
<define name="LOW_BAT_LEVEL" value="10.1" unit="V"/>
<define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
</section>
</airframe>
-178
View File
@@ -1,178 +0,0 @@
<conf>
<aircraft
name="ENAC_Hexa_Elle0"
ac_id="112"
airframe="airframes/HOOPERFLY/hooperfly_enac_hexa_elle0_v1_2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="blue"
/>
<aircraft
name="Racer_PEX_Hexa"
ac_id="221"
airframe="airframes/HOOPERFLY/hooperfly_racerpex_hexa_lisa_mx_20.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="blue"
/>
<aircraft
name="Racer_PEX_Octo"
ac_id="222"
airframe="airframes/HOOPERFLY/hooperfly_racerpex_octo_lisa_mx_20.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/electrical.xml modules/geo_mag.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/nav_survey_rectangle_rotorcraft.xml modules/stabilization_int_quat.xml"
gui_color="purple"
/>
<aircraft
name="Racer_PEX_Quad"
ac_id="220"
airframe="airframes/HOOPERFLY/hooperfly_racerpex_quad_lisa_mx_20.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/electrical.xml modules/geo_mag.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/nav_survey_rectangle_rotorcraft.xml modules/stabilization_int_quat.xml"
gui_color="green"
/>
<aircraft
name="Racer_PEX_Quad_Elle0_v1_2_223"
ac_id="223"
airframe="airframes/HOOPERFLY/hooperfly_racerpex_quad_elle0_v1_2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="lightgreen"
/>
<aircraft
name="Teensy_Fly_Hexa"
ac_id="219"
airframe="airframes/HOOPERFLY/hooperfly_teensyfly_hexa_lisa_mx_20.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="red"
/>
<aircraft
name="Teensy_Fly_Quad"
ac_id="218"
airframe="airframes/HOOPERFLY/hooperfly_teensyfly_quad_lisa_mx_20.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="lime"
/>
<aircraft
name="Teensy_Fly_Quad_Elle0"
ac_id="217"
airframe="airframes/HOOPERFLY/hooperfly_teensyfly_quad_elle0.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="cyan"
/>
<aircraft
name="Teensy_Fly_Quad_Elle0_v1_2_212"
ac_id="212"
airframe="airframes/HOOPERFLY/hooperfly_teensyfly_quad_elle0_v1_2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="darkred"
/>
<aircraft
name="Teensy_Fly_Quad_Elle0_v1_2_213"
ac_id="213"
airframe="airframes/HOOPERFLY/hooperfly_teensyfly_quad_elle0_v1_2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="red"
/>
<aircraft
name="Teensy_Fly_Quad_Elle0_v1_2_214"
ac_id="214"
airframe="airframes/HOOPERFLY/hooperfly_teensyfly_quad_elle0_v1_2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="orangered"
/>
<aircraft
name="Teensy_Fly_Quad_Elle0_v1_2_215"
ac_id="215"
airframe="airframes/HOOPERFLY/hooperfly_teensyfly_quad_elle0_v1_2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="orange"
/>
<aircraft
name="Teensy_Fly_Quad_Elle0_v1_2_216"
ac_id="216"
airframe="airframes/HOOPERFLY/hooperfly_teensyfly_quad_elle0_v1_2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/HOOPERFLY/hooperfly_gsa_one.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/nav_survey_rectangle_rotorcraft.xml modules/air_data.xml modules/geo_mag.xml modules/gps_ubx_ucenter.xml modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml"
gui_color="yellow"
/>
<aircraft
name="setup_elle0"
ac_id="15"
airframe="airframes/examples/setup_elle0.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/dummy.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/setup_actuators.xml"
settings_modules=""
gui_color="blue"
/>
<aircraft
name="setup_elle0_v1_2"
ac_id="14"
airframe="airframes/examples/setup_elle0.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/dummy.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/setup_actuators.xml"
settings_modules=""
gui_color="blue"
/>
<aircraft
name="setup_lisam2"
ac_id="16"
airframe="airframes/examples/setup_lisam2.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/dummy.xml"
flight_plan="flight_plans/dummy.xml"
settings="settings/setup_actuators.xml"
settings_modules=""
gui_color="blue"
/>
</conf>
@@ -1,484 +0,0 @@
<control_panel name="paparazzi control panel">
<section name="variables">
<variable name="downlink_serial_port" value="/dev/ttyUSB0"/>
<variable name="fbw_serial_port" value="/dev/ttyS1"/>
<variable name="ap_serial_port" value="/dev/ttyS0"/>
<variable name="ivy_bus" value="127:2010"/>
<variable name="map" value="muret_UTM.xml"/>
<variable name="flight_plan" value="flight_plans/muret1.xml"/>
</section>
<section name="programs">
<program name="Server" command="sw/ground_segment/tmtc/server">
<arg flag="-b" variable="ivy_bus"/>
</program>
<program name="Data Link" command="sw/ground_segment/tmtc/link">
<arg flag="-b" variable="ivy_bus"/>
</program>
<program name="Link Combiner" command="sw/ground_segment/python/redundant_link/link_combiner.py"/>
<program name="GCS" command="sw/ground_segment/cockpit/gcs">
<arg flag="-b" variable="ivy_bus"/>
</program>
<program name="Flight Plan Editor" command="sw/ground_segment/cockpit/gcs -edit"/>
<program name="Messages" command="sw/ground_segment/tmtc/messages">
<arg flag="-b" variable="ivy_bus"/>
</program>
<program name="Messages (Python)" command="sw/ground_segment/python/messages_app/messagesapp.py"/>
<program name="Settings" command="sw/ground_segment/tmtc/settings">
<arg flag="-b" variable="ivy_bus"/>
</program>
<program name="Settings (Python)" command="sw/ground_segment/python/settings_app/settingsapp.py"/>
<program name="GPSd position display" command="sw/ground_segment/tmtc/gpsd2ivy"/>
<program name="Log Plotter" command="sw/logalizer/plot"/>
<program name="Real-time Plotter" command="sw/logalizer/plotter"/>
<program name="Real-time Plotter (Python)" command="sw/ground_segment/python/real_time_plot/messagepicker.py"/>
<program name="Log File Player" command="sw/logalizer/play">
<arg flag="-b" variable="ivy_bus"/>
</program>
<program name="Simulator" command="sw/simulator/pprzsim-launch">
<arg flag="-b" variable="ivy_bus"/>
</program>
<program name="Video Synchronizer" command="sw/ground_segment/misc/video_synchronizer"/>
<program name="Joystick" command="sw/ground_segment/joystick/input2ivy">
<arg flag="-b" variable="ivy_bus"/>
</program>
<program name="Hardware in the Loop" command="sw/simulator/simhitl">
<arg flag="-fbw" variable="fbw_serial_port"/>
<arg flag="-ap" variable="ap_serial_port"/>
</program>
<program name="Environment Simulator" command="sw/simulator/gaia">
<arg flag="-b" variable="ivy_bus"/>
</program>
<program name="Plot Meteo Profile" command="sw/logalizer/plotprofile"/>
<program name="Weather Station" command="sw/ground_segment/misc/davis2ivy">
<arg flag="-b" variable="ivy_bus"/>
<arg flag="-d" constant="/dev/ttyUSB1"/>
</program>
<program name="Attitude Visualizer" command="sw/tools/attitude_viz.py"/>
<program name="App Server" command="sw/ground_segment/tmtc/app_server"/>
<program name="Ivy2Nmea" command="sw/ground_segment/tmtc/ivy2nmea">
<arg flag="--ivy_bus" variable="ivy_bus"/>
<arg flag="--port" constant="/dev/ttyUSB1"/>
<arg flag="--id" constant="1"/>
</program>
</section>
<section name="sessions">
<session name="HITL">
<program name="Hardware in the Loop">
<arg flag="-a" constant="HITL"/>
<arg flag="-noground"/>
<arg flag="-boot"/>
</program>
<program name="GCS"/>
<program name="Data Link">
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
</session>
<session name="Replay Flight">
<program name="Server">
<arg flag="-n"/>
</program>
<program name="Log File Player">
<arg flag="./var/logs/15_02_28__17_02_29.log"/>
</program>
<program name="GCS"/>
</session>
<session name="Scaled Sensors">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
<program name="Messages"/>
<program name="Settings">
<arg flag="-ac" constant="@AIRCRAFT"/>
</program>
<program name="Real-time Plotter">
<arg flag="-g" constant="1000x250-0+0"/>
<arg flag="-t" constant="ACC"/>
<arg flag="-u" constant="0.05"/>
<arg flag="-c" constant="9.81"/>
<arg flag="-c" constant="0.00"/>
<arg flag="-c" constant="-9.81"/>
<arg flag="-c" constant="*:telemetry:IMU_ACCEL_SCALED:ax:0.0009766"/>
<arg flag="-c" constant="*:telemetry:IMU_ACCEL_SCALED:ay:0.0009766"/>
<arg flag="-c" constant="*:telemetry:IMU_ACCEL_SCALED:az:0.0009766"/>
<arg flag="-n"/>
<arg flag="-g" constant="1000x250-0+250"/>
<arg flag="-t" constant="GYRO"/>
<arg flag="-u" constant="0.05"/>
<arg flag="-c" constant="0.00"/>
<arg flag="-c" constant="*:telemetry:IMU_GYRO_SCALED:gp:0.0139882"/>
<arg flag="-c" constant="*:telemetry:IMU_GYRO_SCALED:gq:0.0139882"/>
<arg flag="-c" constant="*:telemetry:IMU_GYRO_SCALED:gr:0.0139882"/>
<arg flag="-n"/>
<arg flag="-g" constant="1000x250-0+500"/>
<arg flag="-t" constant="MAG"/>
<arg flag="-u" constant="0.05"/>
<arg flag="-c" constant="0.00"/>
<arg flag="-c" constant="*:telemetry:IMU_MAG_SCALED:mx:0.0004883"/>
<arg flag="-c" constant="*:telemetry:IMU_MAG_SCALED:my:0.0004883"/>
<arg flag="-c" constant="*:telemetry:IMU_MAG_SCALED:mz:0.0004883"/>
</program>
</session>
<session name="Multicraft 4">
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.SLAB_USBtoUART"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
<program name="GCS">
<arg flag="-speech"/>
<arg flag="-layout" constant="hf_4.xml"/>
</program>
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.usbserial-A4008qHf"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.SLAB_USBtoUART1"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.SLAB_USBtoUART2"/>
<arg flag="-s" constant="57600"/>
</program>
</session>
<session name="Simulation">
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Hexa"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="GCS">
<arg flag="-layout" constant="large_left_col.xml"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
</session>
<session name="ARDrone2 Flight">
<program name="Server"/>
<program name="GCS"/>
<program name="Data Link">
<arg flag="-udp"/>
</program>
</session>
<session name="Flight USB-serial Redundant">
<program name="Server"/>
<program name="GCS"/>
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-id" constant="1"/>
<arg flag="-redlink"/>
</program>
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB1"/>
<arg flag="-id" constant="2"/>
<arg flag="-redlink"/>
</program>
<program name="Link Combiner"/>
</session>
<session name="TFQuad USB-Xbee@57600">
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.usbserial-FTGSYEO6"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
<program name="GCS"/>
</session>
<session name="Messages and Settings">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
<program name="Messages"/>
<program name="Settings">
<arg flag="-ac" constant="@AIRCRAFT"/>
</program>
</session>
<session name="Flight USB-serial@9600">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
</program>
<program name="Server"/>
<program name="GCS"/>
</session>
<session name="TFQuad USB-serial">
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.usbmodemE2B9BDC3"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
<program name="GCS"/>
</session>
<session name="hf_2_sim">
<program name="Data Link">
<arg flag="-udp"/>
<arg flag="-udp_broadcast"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Quad"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="GCS">
<arg flag="-layout" constant="HOOPERFLY/hooperfly_hf_2.xml"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Quad_Elle0"/>
<arg flag="-t" constant="nps"/>
</program>
</session>
<session name="Raw Sensors">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
<program name="Messages"/>
<program name="Settings">
<arg flag="-ac" constant="@AIRCRAFT"/>
</program>
<program name="Real-time Plotter">
<arg flag="-g" constant="1000x250-0+0"/>
<arg flag="-t" constant="ACC"/>
<arg flag="-u" constant="0.05"/>
<arg flag="-c" constant="0.00"/>
<arg flag="-c" constant="*:telemetry:IMU_ACCEL_RAW:ax"/>
<arg flag="-c" constant="*:telemetry:IMU_ACCEL_RAW:ay"/>
<arg flag="-c" constant="*:telemetry:IMU_ACCEL_RAW:az"/>
<arg flag="-n"/>
<arg flag="-g" constant="1000x250-0+250"/>
<arg flag="-t" constant="GYRO"/>
<arg flag="-u" constant="0.05"/>
<arg flag="-c" constant="0.00"/>
<arg flag="-c" constant="*:telemetry:IMU_GYRO_RAW:gp"/>
<arg flag="-c" constant="*:telemetry:IMU_GYRO_RAW:gq"/>
<arg flag="-c" constant="*:telemetry:IMU_GYRO_RAW:gr"/>
<arg flag="-n"/>
<arg flag="-g" constant="1000x250-0+500"/>
<arg flag="-t" constant="MAG"/>
<arg flag="-u" constant="0.05"/>
<arg flag="-c" constant="0.00"/>
<arg flag="-c" constant="*:telemetry:IMU_MAG_RAW:mx"/>
<arg flag="-c" constant="*:telemetry:IMU_MAG_RAW:my"/>
<arg flag="-c" constant="*:telemetry:IMU_MAG_RAW:mz"/>
<arg flag="-n"/>
<arg flag="-g" constant="1000x250-0+750"/>
<arg flag="-t" constant="BARO"/>
<arg flag="-u" constant="0.05"/>
<arg flag="-c" constant="101325.0"/>
<arg flag="-c" constant="*:telemetry:BARO_RAW:abs"/>
</program>
</session>
<session name="hf_4_sim">
<program name="Data Link">
<arg flag="-udp"/>
<arg flag="-udp_broadcast"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Hexa"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="GCS">
<arg flag="-layout" constant="HOOPERFLY/hooperfly_hf_4.xml"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Quad"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Quad_Elle0"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Racer_PEX_Quad"/>
<arg flag="-t" constant="nps"/>
</program>
</session>
<session name="hf_3_sim">
<program name="Data Link">
<arg flag="-udp"/>
<arg flag="-udp_broadcast"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Hexa"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="GCS">
<arg flag="-layout" constant="HOOPERFLY/hooperfly_hf_3.xml"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Quad"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Racer_PEX_Quad"/>
<arg flag="-t" constant="nps"/>
</program>
</session>
<session name="Flight USB-XBee-API@57600">
<program name="Data Link">
<arg flag="-d" constant="/dev/paparazzi/xbee"/>
<arg flag="-transport" constant="xbee"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
<program name="GCS"/>
</session>
<session name="hf_5_sim">
<program name="Data Link">
<arg flag="-udp"/>
<arg flag="-udp_broadcast"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Hexa"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="GCS">
<arg flag="-layout" constant="HOOPERFLY/hooperfly_hf_5.xml"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Quad"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Racer_PEX_Octo"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Racer_PEX_Hexa"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Racer_PEX_Quad"/>
<arg flag="-t" constant="nps"/>
</program>
</session>
<session name="TFQuad SIKRadio@57600">
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.usbserial-A4008qHf"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
<program name="GCS">
<arg flag="-speech"/>
<arg flag="-layout" constant="large_left_col.xml"/>
</program>
</session>
<session name="TFQuad SLABUART@57600">
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.SLAB_USBtoUART"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
<program name="GCS">
<arg flag="-speech"/>
<arg flag="-layout" constant="large_left_col.xml"/>
</program>
</session>
<session name="Flight USB-serial@57600">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
<program name="GCS"/>
</session>
<session name="SupperBitRF">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyACM0"/>
</program>
<program name="Server"/>
<program name="GCS"/>
<program name="Messages"/>
</session>
<session name="SupperBitRF cable telemetry">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyACM1"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
<program name="GCS"/>
<program name="Messages"/>
<program name="Messages"/>
</session>
<session name="TFQH-RPQH">
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.usbserial-A4008qHf"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server"/>
<program name="GCS">
<arg flag="-speech"/>
<arg flag="-layout" constant="HOOPERFLY/hooperfly_hf_4.xml"/>
</program>
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.SLAB_USBtoUART"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.SLAB_USBtoUART19"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Data Link">
<arg flag="-d" constant="/dev/tty.SLAB_USBtoUART20"/>
<arg flag="-s" constant="57600"/>
</program>
</session>
<session name="hf_6_sim">
<program name="Data Link">
<arg flag="-udp"/>
<arg flag="-udp_broadcast"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Hexa"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="GCS">
<arg flag="-layout" constant="HOOPERFLY/hooperfly_hf_6.xml"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Quad"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Racer_PEX_Octo"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Racer_PEX_Hexa"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Racer_PEX_Quad"/>
<arg flag="-t" constant="nps"/>
</program>
<program name="Simulator">
<arg flag="-a" constant="Teensy_Fly_Quad_Elle0"/>
<arg flag="-t" constant="nps"/>
</program>
</session>
</section>
</control_panel>
@@ -1,178 +0,0 @@
# --------------------------------------------------
# HooperFly Paprarazzi Section
# --------------------------------------------------
# List of aircraft instances. These are the names defined in conf.xml
Aircraft=( 'Teensy_Fly_Quad_Elle0' 'Teensy_Fly_Quad_Elle0_v1_2_216' 'Teensy_Fly_Quad_Elle0_v1_2_215' 'Teensy_Fly_Quad_Elle0_v1_2_214' 'Teensy_Fly_Quad_Elle0_v1_2_213' 'Teensy_Fly_Quad_Elle0_v1_2_212' 'Teensy_Fly_Quad' 'Teensy_Fly_Hexa' 'Racer_PEX_Quad' 'Racer_PEX_Quad_Elle0_v1_2_223' 'Racer_PEX_Hexa' 'Racer_PEX_Octo' )
# check if running on Linux or OSX
UNAME=$(uname -s)
# OPAM configuration
if [ $UNAME == "Darwin" ]; then
. /Users/richardaburton/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true
fi
papenv () {
cd ~/paparazzi
if [ $UNAME == "Darwin" ]; then
eval `opam config env`
fi
}
paprun () {
papenv
./paparazzi &
}
papplot() {
papenv
./sw/logalizer/logplotter &
}
papload_tfqe () {
papenv
make AIRCRAFT=Teensy_Fly_Quad_Elle0 clean_ac FLASH_MODE=DFU-UTIL ap.upload
}
papload_tfqev12_216 () {
papenv
make AIRCRAFT=Teensy_Fly_Quad_Elle0_v1_2_216 clean_ac FLASH_MODE=DFU-UTIL ap.upload
}
papload_tfqev12_215 () {
papenv
make AIRCRAFT=Teensy_Fly_Quad_Elle0_v1_2_215 clean_ac FLASH_MODE=DFU-UTIL ap.upload
}
papload_tfqev12_214 () {
papenv
make AIRCRAFT=Teensy_Fly_Quad_Elle0_v1_2_214 clean_ac FLASH_MODE=DFU-UTIL ap.upload
}
papload_tfqev12_213 () {
papenv
make AIRCRAFT=Teensy_Fly_Quad_Elle0_v1_2_213 clean_ac FLASH_MODE=DFU-UTIL ap.upload
}
papload_tfqev12_212 () {
papenv
make AIRCRAFT=Teensy_Fly_Quad_Elle0_v1_2_212 clean_ac FLASH_MODE=DFU-UTIL ap.upload
}
papload_tfq () {
papenv
make AIRCRAFT=Teensy_Fly_Quad clean_ac ap.upload BMP_PORT=/dev/bmp-gdb
}
papload_tfh () {
papenv
make AIRCRAFT=Teensy_Fly_Hexa clean_ac ap.upload BMP_PORT=/dev/bmp-gdb
}
papload_rpq () {
papenv
make AIRCRAFT=Racer_PEX_Quad clean_ac ap.upload BMP_PORT=/dev/bmp-gdb
}
papload_rpqev12_223 () {
papenv
make AIRCRAFT=Racer_PEX_Quad_Elle0_v1_2_223 clean_ac FLASH_MODE=DFU-UTIL ap.upload
}
papload_rph () {
papenv
make AIRCRAFT=Racer_PEX_Hexa clean_ac ap.upload BMP_PORT=/dev/bmp-gdb
}
papcaba () {
papenv
python ./sw/tools/calibration/calibrate.py -s ACCEL -p ./var/logs/$1
}
papcabm () {
papenv
python ./sw/tools/calibration/calibrate.py -s MAG -p ./var/logs/$1
}
papcabc () {
papenv
python ./sw/tools/calibration/calibrate_mag_current.py ./var/logs/$1
}
papcomp_ap () {
papenv
for i in "${Aircraft[@]}"
do
#echo "${i}"
make AIRCRAFT=$i clean_ac ap.compile
done
}
papcomp_nps () {
papenv
for i in "${Aircraft[@]}"
do
#echo "${i}"
make AIRCRAFT=$i clean_ac nps.compile
done
}
papsim_start () {
papenv
./sw/ground_segment/cockpit/gcs -layout HOOPERFLY/hooperfly_hf_6.xml &
./sw/ground_segment/tmtc/server -n &
./sw/ground_segment/tmtc/link -udp -udp_broadcast &
for i in "${Aircraft[@]}"
do
#echo "${i}"
./sw/simulator/pprzsim-launch -a $i -t nps &
done
}
papsim_stop() {
kill $(jobs -p)
}
pappull () {
papenv
git pull paparazzi master
}
papfetch () {
papenv
git fetch paparazzi
}
papmerge () {
papenv
git merge paparazzi/master
}
pappush () {
papenv
git push origin master
}
paplinkenv () {
cd ~/pprzlink
if [ $UNAME == "Darwin" ]; then
eval `opam config env`
fi
}
paplinkfetch () {
paplinkenv
git fetch pprzlink
}
paplinkmerge () {
paplinkenv
git merge pprzlink/master
}
paplinkpush () {
paplinkenv
git push origin master
}

Some files were not shown because too many files have changed in this diff Show More