mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-10 06:59:54 +08:00
Remove stm32 boards (#3585)
- 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:
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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,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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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
Reference in New Issue
Block a user