Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE airframe SYSTEM "../airframe.dtd">
- <!-- This is the UA_Mothra airframe file. The plane is equipped with a lisa MX, two spectrum satteilte receivers, ubox neo gps, xbee pro telemetry link, a current sensor(.6V at 0 A and 40mV/A scale, a vbat in with an external resistor of 2kohm. Firmware is flashed via black magic probe.-->
- <airframe name="Mothra">
- <firmware name="fixedwing">
- <target name="ap" board="lisa_mx_2.1">
- <subsystem name="ins" type="alt_float">
- <define name="USE_BAROMETER" value="TRUE"/>
- </subsystem>
- <define name="UAARG_MOTHRA"/>
- <define name="USE_ADC"/>
- <define name="USE_I2C1"/>
- </target>
- <target name="sim" board="pc">
- <subsystem name="ins" type="alt_float"/>
- </target>
- <subsystem name="radio_control" type="spektrum">
- <define name="RADIO_MODE" value="RADIO_AUX2"/>
- <configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
- </subsystem>
- <subsystem name="actuators" type="pwm">
- <!-- define name="USE_SERVOS_7AND8"/-->
- </subsystem>
- <define name="RC_LOST_MODE" value="PPRZ_MODE_AUTO2"/>
- <define name="AGR_CLIMB"/>
- <define name="LOITER_TRIM"/>
- <define name="MEASURE_AIRSPEED"/>
- <subsystem name="gps" type="ublox">
- <configure name="GPS_BAUD" value="B57600"/>
- </subsystem>
- <subsystem name="telemetry" type="transparent">
- <configure name="MODEM_BAUD" value="B57600"/>
- </subsystem>
- <subsystem name="imu" type="lisa_mx_v2.1"/>
- <subsystem name="navigation" />
- <subsystem name="control" />
- <subsystem name="ahrs" type="float_cmpl_quat">
- <define name="ASPIRIN_2_DISABLE_MAG" value="TRUE" />
- <define name="USE_MAGNETOMETER" value="TRUE"/>
- <define name="AHRS_FC_MAG_ID" value="MAG_HMC58XX_SENDER_ID"/>
- <!--define name="AHRS_ACCEL_OMEGA" value=".9"/>
- <define name="AHRS_MAG_OMEGA" value=".9"/--> <!---Adjust this for mag/gyro heading mixing--->
- </subsystem>
- <configure name="NO_LUFTBOOT" value="1"/>
- <configure name="FLASH_MODE" value="SWD"/>
- <!---<configure name="BMP_PORT" value="/dev/ttyACM0"/> -->
- </firmware>
- <!--The following is the commands sections. This deals with how the control surface relate to movement and rc inpu-->
- <commands> <!--The commands the autopilot board outputs-->
- <axis name="THROTTLE" failsafe_value="0"/>
- <axis name="ROLL" failsafe_value="9600"/>
- <axis name="PITCH" failsafe_value="-9600"/>
- <axis name="BRAKE" failsafe_value="0"/>
- <axis name="YAW" failsafe_value="0"/>
- <axis name="GEAR" failsafe_value="0"/>
- </commands>
- <!-- Actuators Neutral: 1010,1003,1384,1775,1212,1467--->
- <servos><!--the servos the outpilot autoputs commands output to-->
- <servo name="THROTTLE" max="2000" neutral="1000" min="1000" no="5"/>
- <servo name="DROP" max="2000" neutral="1500" min="1000" no="0"/>
- <servo name="ELEVATOR" max="1000" neutral="1577" min="2000" no="3"/>
- <servo name="AILERON_RIGHT" max="1800" neutral="1500" min="1000" no="2"/>
- <servo name="AILERON_LEFT" max="2000" neutral="1500" min="1200" no="1"/>
- <servo name="RUDDER" max="2000" neutral="1395" min="1000" no="4"/>
- </servos>
- <command_laws> <!--How the commands relate to servo movement-->
- <set value="@ROLL+1.3*(@BRAKE)" servo="AILERON_LEFT"/>
- <set value="@ROLL-1.3*(@BRAKE)" servo="AILERON_RIGHT"/>
- <set value="@THROTTLE" servo="THROTTLE"/>
- <set value="@PITCH" servo="ELEVATOR"/>
- <set value="@YAW" servo="RUDDER"/>
- <set value="@GEAR" servo="DROP"/>
- </command_laws>
- <rc_commands> <!--controls available to pilot in full RC-->
- <set value="@THROTTLE" command="THROTTLE"/>
- <set value="@ROLL-224" command="ROLL"/>
- <set value="@PITCH" command="PITCH"/>
- <set value="@YAW" command="YAW"/>
- <set value="@GEAR" command="GEAR"/>
- <set value="@AUX1+476" command="BRAKE"/>
- </rc_commands>
- <auto_rc_commands> <!--controls available to pilot in AUTO2-->
- <set value="@YAW" command="YAW"/>
- <set command="GEAR" value="@GEAR"/>
- <set value="@AUX1-476" command="BRAKE"/>
- </auto_rc_commands>
- <!--The following are sensor calibrations that need to be performed-->
- <!--Note some calibrations are location specific. These need to be modified when flying at different fields-->
- <include href="conf/airframes/UAARG/PF_Smile.xml"/>
- <section name="IMU" prefix="IMU_">
- <!--These values can be calibrated by perfectly leveling the plane.-->
- <!--Then open the messages windows and look at the attitude data-->
- <!--Attitude should be completely 0. -->
- <!--If not take the value given, convert to degrees and subtract from current values-->
- <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"/>
- <!-- Calibrate via sw/tools/calibration/calibrate.py-->
- <define name="MAG_X_NEUTRAL" value="-46"/>
- <define name="MAG_Y_NEUTRAL" value="-4"/>
- <define name="MAG_Z_NEUTRAL" value="289"/>
- <define name="MAG_X_SENS" value="3.00962506336" integer="16"/>
- <define name="MAG_Y_SENS" value="2.96508188226" integer="16"/>
- <define name="MAG_Z_SENS" value="3.61746210549" integer="16"/>
- <define name="MAG_X_SIGN" value="1"/>
- <define name="MAG_Y_SIGN" value="1"/>
- <define name="MAG_Z_SIGN" value="-1"/>
- <!-- Current draw magnetic field calibration-->
- <!--Please note that if you dont have any experience in Paparazzi and are not looking online you can enable current calibration raw data from a module. look below at modules and uncomment the module.-->
- <!--
- <define name= "MAG_X_CURRENT_COEF" value="0.0001933874537"/>
- <define name= "MAG_Y_CURRENT_COEF" value="-0.000400915804419"/>
- <define name= "MAG_Z_CURRENT_COEF" value="2.10856499033e-05"/>
- -->
- </section>
- <section name="AHRS" prefix="AHRS_"> <!--This is local magnetic field data. Needs to be changed for different fields-->
- <!--CHANGE THIS FOR DIFFERENT LOCATIONS!!-->
- <!--See http://wiki.paparazziuav.org/wiki/Subsystem/ahrs#Local_Magnetic_Field For more details-->
- <!--Note a module that automatically updates this value has been added, see below. (geo_mag.xml)-->
- <!-- Local magnetic field vector Bremner Field-->
- <!--
- <define name="H_X" value="0.259"/>
- <define name="H_Y" value="0.045"/>
- <define name="H_Z" value="0.927124"/>
- -->
- <!-- club room
- <define name="H_X" value=".523"/>
- <define name="H_Y" value=".256"/>
- <define name="H_Z" value="0.953"/>
- -->
- <!-- Southport-->
- <define name="H_X" value=".262"/>
- <define name="H_Y" value=".018686"/>
- <define name="H_Z" value="0.964887"/>
- </section>
- <section name="BAT">
- <define name="MILLIAMP_AT_FULL_THROTTLE" value="20000"/>
- <define name="CATASTROPHIC_BAT_LEVEL" value="12.7" unit="V"/>
- <define name="CRITIC_BAT_LEVEL" value="14.7" unit="V"/>
- <define name="LOW_BAT_LEVEL" value="15.1" unit="V"/>
- <define name="MAX_BAT_LEVEL" value="16.8" unit="V"/>
- <define name="VOLTAGE_ADC_SCALE" value="0.0052047"/>
- <define name="VOLTAGE_ADC_OFFSET" value="-0.011815"/>
- <define name="VoltageOfAdc(adc)" value="(VOLTAGE_ADC_SCALE * adc + VOLTAGE_ADC_OFFSET)"/>
- </section>
- <section name="MISC">
- <!--define name="CLIMB_AIRSPEED" value="12." unit="m/s"/ notin us comp-->
- <define name="NOMINAL_AIRSPEED" value="15." unit="m/s"/>
- <define name="CARROT" value="4." unit="s"/> <!-- hen carrot time away from waypoint in go and path, Paparazzi determines it has reached the waypoint-->
- <define name="KILL_MODE_DISTANCE" value="(2.0*MAX_DIST_FROM_HOME)"/>
- <define name="DEFAULT_CIRCLE_RADIUS" value="60."/>
- </section>
- <!--AUTOPILOT TUNING SECTION-->
- <include href="conf/airframes/UAARG/EPP_FPV_TUNING.xml"/>
- <section name="INS" prefix="INS_">
- <define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
- <define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
- </section>
- <!-- End Autopilot Tuning Sections -->
- <modules>
- <!--load name="geo_mag.xml"/-->
- <load name="airspeed_ets.xml">
- <define name="AIRSPEED_ETS_SYNC_SEND"/>
- <define name="AIRSPEED_ETS_I2C_DEV" value="i2c2"/>
- </load>
- <load name="mag_hmc58xx.xml">
- <define name="MODULE_HMC58XX_UPDATE_AHRS"/>
- <configure name="MAG_HMC58XX_I2C_DEV" value="i2c2"/>
- <define name="HMC58XX_CHAN_X" value="1"/>
- <define name="HMC58XX_CHAN_Y" value="0"/>
- <define name="HMC58XX_CHAN_Z" value="2"/>
- </load>
- <!--load name="send_imu_mag_current.xml"/--> <!-- uncomment this line to measure IMU current Calibration-->
- </modules>
- </airframe>
- <procedure>
- <section name="IMU" prefix="IMU_">
- <!--
- <define name="ACCEL_X_NEUTRAL" value="-54"/>
- <define name="ACCEL_Y_NEUTRAL" value="-33"/>
- -->
- <define name="ACCEL_X_NEUTRAL" value="-18"/>
- <define name="ACCEL_Y_NEUTRAL" value="-82"/>
- <define name="ACCEL_Z_NEUTRAL" value="15"/>
- <define name="ACCEL_X_SENS" value="4.88998029654" integer="16"/>
- <define name="ACCEL_Y_SENS" value="4.83817030461" integer="16"/>
- <define name="ACCEL_Z_SENS" value="4.88394458398" integer="16"/>
- <!--See http://wiki.paparazziuav.org/wiki/ImuCalibration -->
- <!-- Calibrate via sw/tools/calibration/calibrate.py-->
- </section>
- </procedure>
- <procedure>
- <section name="FAILSAFE" prefix="FAILSAFE_">
- <define name="DELAY_WITHOUT_GPS" value="2" unit="s"/>
- <define name="DEFAULT_THROTTLE" value="0" unit="%"/>
- <define name="DEFAULT_ROLL" value="17.2" unit="deg"/>
- <define name="DEFAULT_PITCH" value="28.6" unit="deg"/>
- </section>
- <section name="AUTO1" prefix="AUTO1_"><!-- roll and pitch in auto1-->
- <define name="MAX_ROLL" value="40." unit="deg"/>
- <define name="MAX_PITCH" value="35." unit="deg"/>
- </section>
- <section name="HORIZONTAL CONTROL" prefix="H_CTL_">
- <define name="ROLL_MAX_SETPOINT" value="40." unit="deg"/>
- <define name="PITCH_MAX_SETPOINT" value="40." unit="deg"/>
- <define name="PITCH_MIN_SETPOINT" value="-10." unit="deg"/>
- <define name="PITCH_PGAIN" value="18513."/>
- <define name="PITCH_DGAIN" value="1.5"/>
- <define name="ELEVATOR_OF_ROLL" value="3409"/>
- <define name="AILERON_OF_THROTTLE" value="0.0"/>
- <define name="ROLL_ATTITUDE_GAIN" value="21698"/> <!--roll_pgain-->
- <define name="ROLL_RATE_GAIN" value="1500"/><!-- roll_dgain-->
- <define name="COURSE_PGAIN" value="1.37"/>
- <define name="COURSE_DGAIN" value="0.3"/> <!-- .3 -->
- <!--define name="COURSE_PRE_BANK_CORRECTION" value="1.47"/--> <!-- usually 1 -->
- <define name="ROLL_SLEW" value="0.1"/> <!-- not too sure trying playing around with it. -->
- </section>
- <section name="VERTICAL CONTROL" prefix="V_CTL_">
- <define name="POWER_CTL_BAT_NOMINAL" value="14.7" unit="V"/>
- <define name="THROTTLE_SLEW_LIMITER" value="1.5" unit="s"/>
- <define name="ALTITUDE_MAX_CLIMB" value="5."/>
- <define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.56"/>
- <define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.11"/>
- <define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.95"/>
- <define name="AUTO_THROTTLE_LOITER_TRIM" value="3248"/>
- <define name="AUTO_THROTTLE_DASH_TRIM" value="2492"/>
- <define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.075" unit="%/(m/s)"/> <!--throttle_incr-->
- <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.09"/><!--pitch_of_vz-->
- <define name="ALTITUDE_PGAIN" value="0.06"/>
- <!-- comment the following lines do disable AUTO_PITCH -->
- <!--
- <define name="AUTO_PITCH_PGAIN" value="0.04"/>
- <define name="AUTO_PITCH_IGAIN" value="0.0"/>
- <define name="AUTO_PITCH_MAX_PITCH" value="RadOfDeg(25)"/>
- <define name="AUTO_PITCH_MIN_PITCH" value="RadOfDeg(-25)"/>
- -->
- </section>
- <section name="NAV" />
- <section name="AGGRESSIVE" prefix="AGR_">
- <define name="BLEND_START" value="75"/><!-- Altitude Error to Initiate Aggressive Climb-->
- <define name="BLEND_END" value="15"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes-->
- <define name="CLIMB_THROTTLE" value="1.00"/><!-- Gaz for Aggressive Climb -->
- <define name="CLIMB_PITCH" value="0.6"/><!-- 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>
- </procedure>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement