Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE airframe SYSTEM "../airframe.dtd">
- <!--Zephyr II with Umarim Lite-->
- <airframe name="ZII_photo_ahrs">
- <!-- ************************* FIRMWARE ************************* -->
- <firmware name="fixedwing">
- <define name="USE_I2C0"/>
- <define name="USE_I2C1"/>
- <define name="AGR_CLIMB"/>
- <define name="USE_AIRSPEED"/>
- <define name="STRONG_WIND"/>
- <!--define name="USE_KFF_UPDATE"/-->
- <target name="sim" board="pc"/>
- <target name="nps" board="pc">
- <subsystem name="fdm" type="jsbsim"/>
- <define name="IMU_MAG_X_SENS" value="1"/>
- <define name="IMU_MAG_Y_SENS" value="1"/>
- <define name="IMU_MAG_Z_SENS" value="1"/>
- </target>
- <target name="ap" board="umarim_lite_2.0"/>
- <subsystem name="radio_control" type="ppm"/>
- <!--subsystem name="radio_control" type="sbus">
- <configure name="SBUS_PORT" value="UART0"/>
- </subsystem-->
- <!-- Communication -->
- <subsystem name="telemetry" type="transparent"/>
- <!-- Actuators are automatically chosen according to board-->
- <subsystem name="imu" type="umarim"/>
- <subsystem name="ahrs" type="float_dcm"/>
- <subsystem name="control" type="energyadaptive"/>
- <subsystem name="navigation"/>
- <!-- Sensors -->
- <subsystem name="gps" type="ublox"/>
- <subsystem name="ins" type="alt_float"/>
- </firmware>
- <!-- ************************* MODULES ************************* -->
- <modules>
- <load name="digital_cam.xml">
- <!--define name="DC_SHOOT_ON_BUTTON_RELEASE"/-->
- <define name="DC_SHUTTER_GPIO" value="GPIOA,GPIO10"/>
- <define name="DC_PUSH" value="gpio_clear"/>
- <define name="DC_RELEASE" value="gpio_set"/>
- <define name="DC_AUTOSHOOT_QUARTERSEC_PERIOD" value="4"/>
- <define name="DC_AUTOSHOOT_DISTANCE_INTERVAL" value="40"/>
- <define name="DC_AUTOSHOOT_SURVEY_INTERVAL" value="40"/>
- <define name="DC_SHUTTER_DELAY" value="0.1"/>
- <define name="DC_SHOT_SYNC_SEND" value="FALSE"/>
- </load>
- <load name="photogrammetry_calculator.xml">
- </load>
- <load name="openlog.xml"/>
- <load name="nav_survey_zamboni.xml"/>
- <load name="airspeed_amsys.xml">
- <define name="AIRSPEED_AMSYS_I2C_DEV" value="i2c0"/>
- <define name="AIRSPEED_AMSYS_MAXPRESURE" value="1034"/>
- <define name="AIRSPEED_AMSYS_SCALE" value="1.0"/>
- <define name="AIRSPEED_AMSYS_FILTER" value="0.6"/>
- <define name="USE_AIRSPEED_AMSYS" value="TRUE"/>
- </load>
- <load name="level_trigger.xml"/>
- <!--load name="nav_line.xml"/-->
- </modules>
- <!-- ************************* SENSORS ************************* -->
- <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 = 14.375 LSB/(deg/sec) * 57.6 deg/rad = 828 LSB/rad/sec / 12bit FRAC: 4096 / 828 -->
- <define name="GYRO_P_SENS" value="4.947" integer="16"/>
- <define name="GYRO_Q_SENS" value="4.947" integer="16"/>
- <define name="GYRO_R_SENS" value="4.947" integer="16"/>
- <!-- SENS = 256 LSB/g @ 2.5V [X&Y: 265 LSB/g @ 3.3V] / 9.81 ms2/g = 26.095 LSB/ms2 / 10bit FRAC: 1024 / 26.095 for z and 1024 / 27.01 for X&Y -->
- <define name="ACCEL_X_NEUTRAL" value="0"/>
- <define name="ACCEL_Y_NEUTRAL" value="2"/>
- <define name="ACCEL_Z_NEUTRAL" value="-15"/>
- <!-- SENS ADXL345 16G 31.2 mg/LSB, accel frac 10bit => 31.2 * 2^10 / 1000 -->
- <define name="ACCEL_X_SENS" value="38.1442395325" integer="16"/>
- <define name="ACCEL_Y_SENS" value="38.1047091338" integer="16"/>
- <define name="ACCEL_Z_SENS" value="39.461186443" integer="16"/>
- <!-- Just to compile -->
- <define name="MAG_X_NEUTRAL" value="0"/>
- <define name="MAG_Y_NEUTRAL" value="0"/>
- <define name="MAG_Z_NEUTRAL" value="0"/>
- <define name="BODY_TO_IMU_PHI" value="0"/>
- <define name="BODY_TO_IMU_THETA" value="0"/>
- <define name="BODY_TO_IMU_PSI" value="0"/>
- </section>
- <section name="INS" prefix="INS_">
- <define name="ROLL_NEUTRAL_DEFAULT" value="0." unit="rad"/>
- <define name="PITCH_NEUTRAL_DEFAULT" value="0." unit="rad"/>
- </section>
- <!-- ************************* ACTUATORS ************************* -->
- <servos> <!-- Trimmed for 49% throttle -->
- <servo name="MOTOR" no="2" min="1100" neutral="1100" max="1900"/>
- <servo name="AILEVON_LEFT" no="1" min="1900" neutral="1500" max="1100"/>
- <servo name="AILEVON_RIGHT" no="0" min="1100" neutral="1500" max="1900"/>
- </servos>
- <commands>
- <axis name="THROTTLE" failsafe_value="0"/>
- <axis name="ROLL" failsafe_value="0"/>
- <axis name="PITCH" failsafe_value="10"/>
- </commands>
- <rc_commands>
- <set command="THROTTLE" value="@THROTTLE"/>
- <set command="ROLL" value="@ROLL"/>
- <set command="PITCH" value="@PITCH"/>
- </rc_commands>
- <section name="MIXER">
- <define name="AILEVON_AILERON_RATE" value="0.60"/>
- <define name="AILEVON_ELEVATOR_RATE" value="0.40"/>
- </section>
- <command_laws>
- <let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/>
- <let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/>
- <set servo="MOTOR" value="@THROTTLE"/>
- <set servo="AILEVON_LEFT" value="$elevator - $aileron"/>
- <set servo="AILEVON_RIGHT" value="$elevator + $aileron"/>
- </command_laws>
- <section name="AUTO1" prefix="AUTO1_">
- <define name="MAX_ROLL" value="RadOfDeg(55)"/>
- <define name="MAX_PITCH" value="RadOfDeg(45)"/>
- </section>
- <section name="FAILSAFE" prefix="FAILSAFE_">
- <define name="DELAY_WITHOUT_GPS" value="2" unit="s"/>
- <define name="DEFAULT_THROTTLE" value="0.0" unit="%"/>
- <define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
- <define name="DEFAULT_PITCH" value="0.05" unit="rad"/>
- <define name="HOME_RADIUS" value="100" unit="m"/>
- </section>
- <!-- ************************* GAINS ************************* -->
- <section name="VERTICAL CONTROL" prefix="V_CTL_">
- <define name="GLIDE_RATIO" value="8"/>
- <define name="POWER_CTL_BAT_NOMINAL" value="14.8" unit="volt"/>
- <define name="MAX_ACCELERATION" value="1"/>
- <define name="THROTTLE_SLEW_LIMITER" value="0.4" unit="m/s/s"/>
- <define name="ALTITUDE_PGAIN" value="0.15"/>
- <define name="ALTITUDE_MAX_CLIMB" value="10"/> <!--default 2, values higher than 3 only for energy loop with airspeed-->
- <define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.45"/>
- <define name="AUTO_THROTTLE_NOMINAL_CRUISE_PITCH" value="0."/> <!-- default 0 -->
- <define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0." unit="%/(m/s)"/>
- <define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0."/>
- <define name="AIRSPEED_PGAIN" value="0.61"/>
- <define name="AUTO_THROTTLE_OF_AIRSPEED_PGAIN" value="0"/>
- <define name="AUTO_THROTTLE_OF_AIRSPEED_IGAIN" value="0"/>
- <define name="AUTO_PITCH_OF_AIRSPEED_PGAIN" value="0"/>
- <define name="AUTO_PITCH_OF_AIRSPEED_IGAIN" value="0"/>
- <define name="AUTO_PITCH_OF_AIRSPEED_DGAIN" value="0"/>
- <define name="ENERGY_TOT_PGAIN" value="0.18"/>
- <define name="ENERGY_TOT_IGAIN" value="0.3"/>
- <define name="ENERGY_DIFF_PGAIN" value="0.18"/>
- <define name="ENERGY_DIFF_IGAIN" value="0.25"/>
- <define name="AUTO_GROUNDSPEED_SETPOINT" value="13.0" unit="m/s"/>
- <define name="AUTO_GROUNDSPEED_PGAIN" value="0.75"/>
- <define name="AUTO_GROUNDSPEED_IGAIN" value="0.25"/>
- </section>
- <section name="HORIZONTAL CONTROL" prefix="H_CTL_">
- <define name="COURSE_PGAIN" value="0.7"/>
- <define name="COURSE_DGAIN" value="0.3"/>
- <define name="COURSE_PRE_BANK_CORRECTION" value="1."/>
- <define name="ROLL_MAX_SETPOINT" value="50" unit="deg"/>
- <define name="ROLL_ATTITUDE_GAIN" value="7500"/>
- <define name="ROLL_RATE_GAIN" value="1500"/>
- <define name="ROLL_IGAIN" value="0"/>
- <define name="ROLL_KFFA" value="0"/>
- <define name="ROLL_KFFD" value="0"/>
- <define name="PITCH_MAX_SETPOINT" value="35" unit="deg"/>
- <define name="PITCH_MIN_SETPOINT" value="-35" unit="deg"/>
- <define name="PITCH_PGAIN" value="7000"/>
- <define name="PITCH_DGAIN" value="2"/>
- <define name="PITCH_IGAIN" value="50"/>
- <define name="PITCH_KFFA" value="0"/>
- <define name="PITCH_KFFD" value="0"/>
- <define name="PITCH_OF_ROLL" value="0.06"/>
- <define name="AILERON_OF_THROTTLE" value="0.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.90"/><!-- Gaz for Aggressive Climb -->
- <define name="CLIMB_PITCH" value="0.35"/><!-- 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">
- <define name="MILLIAMP_AT_FULL_THROTTLE" value="57000."/>
- <define name="CATASTROPHIC_BAT_LEVEL" value="12.8" unit="V"/> <!-- 3S lipo 3.1*3=9.3 -->
- <define name="CRITIC_BAT_LEVEL" value="13" unit="V"/>
- <define name="LOW_BAT_LEVEL" value="14" unit="V"/>
- <define name="MAX_BAT_LEVEL" value="16.8" unit="V"/>
- </section>
- <section name="MISC">
- <define name="CLIMB_AIRSPEED" value="16" unit="m/s"/>
- <define name="NOMINAL_AIRSPEED" value="17" unit="m/s"/>
- <define name="GLIDE_AIRSPEED" value="14." unit="m/s"/>
- <define name="RACE_AIRSPEED" value="23." unit="m/s"/>
- <define name="STALL_AIRSPEED" value="11.5" unit="m/s"/>
- <define name="AIRSPEED_SETPOINT_SLEW" value="0.4" unit="m/s/s"/> <!--default is 1-->
- <define name="CARROT" value="3." unit="s"/>
- <define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
- <define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
- </section>
- <section name="Photogrammetry" prefix="PHOTOGRAMMETRY_">
- <!-- Camera Parameters -->
- <define name="FOCAL_LENGTH" value="16" unit="mm"/>
- <define name="SENSOR_WIDTH" value="15.6" unit="mm"/>
- <!-- In direction of the plane's wings -->
- <define name="SENSOR_HEIGHT" value="23.4" unit="mm"/>
- <!-- In direction of the plane's nose -->
- <define name="PIXELS_WIDTH" value="3264" unit=""/>
- <!-- Flight Safety Parameters -->
- <define name="HEIGHT_MIN" value="50" unit="m"/>
- <define name="HEIGHT_MAX" value="300" unit="m"/>
- <define name="RADIUS_MIN" value="50" unit="m"/>
- </section>
- <section name="SIMULATOR" prefix="NPS_">
- <define name="JSBSIM_MODEL" value=""Malolo1""/>
- <define name="JSBSIM_LAUNCHSPEED" value="20"/>
- <define name="COMMANDS_NB" value="3"/>
- <define name="ACTUATOR_NAMES" value="{"throttle-cmd-norm", "aileron-cmd-norm", "elevator-cmd-norm"}"/>
- <define name="SENSORS_PARAMS" value=""nps_sensors_params_invariant.h""/>
- <define name="JS_AXIS_MODE" value="4"/>
- <define name="BYPASS_AHRS" value="TRUE"/>
- </section>
- </airframe>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement