mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-05 15:30:08 +08:00
4b41dcd513
It is way too dangerous and not needed anymore with the latest imu sensor. Keeping it for arduimu just in case
238 lines
8.7 KiB
XML
238 lines
8.7 KiB
XML
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
|
|
|
|
<!-- Weasel by Murat
|
|
Umarim
|
|
XBee modem
|
|
LEA 5H GPS
|
|
-->
|
|
|
|
<airframe name="Weasel">
|
|
|
|
<autopilot name="fixedwing_autopilot.xml"/>
|
|
|
|
<modules>
|
|
<!--load name="airspeed_ads1114.xml"/-->
|
|
<!--load name="mcp355x.xml"/-->
|
|
</modules>
|
|
|
|
<firmware name="fixedwing">
|
|
<define name="USE_I2C0"/>
|
|
<define name="USE_I2C1"/>
|
|
<!--define name="AGR_CLIMB"/-->
|
|
<define name="ALT_KALMAN"/>
|
|
<!--define name="USE_AIRSPEED"/-->
|
|
<!--define name="USE_BAROMETER"/-->
|
|
<!--define name="LOITER_TRIM"/-->
|
|
<!--define name="PITCH_TRIM"/-->
|
|
|
|
<target name="sim" board="pc"/>
|
|
<target name="ap" board="umarim_1.0"/>
|
|
|
|
<subsystem name="radio_control" type="ppm">
|
|
<define name="USE_PPM_RSSI_GPIO"/>
|
|
<define name="PPM_RSSI_IOPIN" value="IO0PIN"/>
|
|
<define name="PPM_RSSI_PIN" value="17"/>
|
|
<define name="PPM_RSSI_VALID_LEVEL" value="0"/>
|
|
</subsystem>
|
|
|
|
<!-- Communication -->
|
|
<subsystem name="telemetry" type="xbee_api"/>
|
|
|
|
<!-- Actuators are automatically chosen according to board-->
|
|
<subsystem name="imu" type="umarim"/>
|
|
<subsystem name="ahrs" type="float_dcm"/>
|
|
<subsystem name="ins" type="alt_float"/>
|
|
<subsystem name="control" type="new"/>
|
|
<subsystem name="navigation"/>
|
|
<!-- Sensors -->
|
|
<subsystem name="gps" type="ublox"/>
|
|
|
|
<!--subsystem name="spi"/-->
|
|
</firmware>
|
|
|
|
<!-- commands section -->
|
|
<servos>
|
|
<servo name="MOTOR" no="7" min="1040" neutral="1040" max="2000"/>
|
|
<servo name="AILEVON_LEFT" no="6" min="1750" neutral="1543" max="1250"/>
|
|
<servo name="AILEVON_RIGHT" no="3" min="1250" neutral="1561" max="1750"/>
|
|
</servos>
|
|
|
|
<commands>
|
|
<axis name="THROTTLE" failsafe_value="0"/>
|
|
<axis name="ROLL" failsafe_value="0"/>
|
|
<axis name="PITCH" failsafe_value="0"/>
|
|
</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.75"/>
|
|
<define name="AILEVON_ELEVATOR_RATE" value="0.75"/>
|
|
</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="45" unit="deg"/>
|
|
<define name="MAX_PITCH" value="30" unit="deg"/>
|
|
</section>
|
|
|
|
<section name="IMU" prefix="IMU_">
|
|
<!-- Calibration Neutral -->
|
|
<define name="GYRO_P_NEUTRAL" value="-15"/>
|
|
<define name="GYRO_Q_NEUTRAL" value="94"/>
|
|
<define name="GYRO_R_NEUTRAL" value="-7"/>
|
|
|
|
<!-- SENS ITG3200 1/14.375 (deg/s)/LSB, rate frac 12bit => 1/14.375 * pi / 180 * 2^12 -->
|
|
<define name="GYRO_P_SENS" value="4.97312" integer="16"/>
|
|
<define name="GYRO_Q_SENS" value="4.97312" integer="16"/>
|
|
<define name="GYRO_R_SENS" value="4.97312" integer="16"/>
|
|
|
|
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
|
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
|
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
|
|
|
<!-- SENS ADXL345 16G 31.2 mg/LSB, accel frac 10bit => 31.2 * 2^10 / 1000 -->
|
|
<define name="ACCEL_X_SENS" value="31.9488" integer="10"/>
|
|
<define name="ACCEL_Y_SENS" value="31.9488" integer="10"/>
|
|
<define name="ACCEL_Z_SENS" value="31.9488" integer="10"/>
|
|
|
|
<!-- 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="3." unit="deg"/>
|
|
<define name="PITCH_NEUTRAL_DEFAULT" value="0." unit="deg"/>
|
|
<define name="BARO_SENS" value="1.0"/> <!-- TODO calibration -->
|
|
</section>
|
|
|
|
<section name="BAT">
|
|
<define name="MILLIAMP_AT_FULL_THROTTLE" value="10000."/>
|
|
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
|
|
</section>
|
|
|
|
<section name="MISC">
|
|
<define name="NOMINAL_AIRSPEED" value="15." unit="m/s"/>
|
|
<define name="CARROT" value="5." unit="s"/>
|
|
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
|
|
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
|
|
|
|
<define name="TRIGGER_DELAY" value="1."/>
|
|
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
|
|
|
|
<define name="UNLOCKED_HOME_MODE" value="TRUE"/>
|
|
</section>
|
|
|
|
<section name="VERTICAL CONTROL" prefix="V_CTL_">
|
|
<!--define name="POWER_CTL_BAT_NOMINAL" value="11.1" unit="volt"/-->
|
|
<!-- outer loop proportional gain -->
|
|
<define name="ALTITUDE_PGAIN" value="0.159999996424"/> <!-- -0.024 -->
|
|
<!-- outer loop saturation -->
|
|
<define name="ALTITUDE_MAX_CLIMB" value="5." unit="m/s"/>
|
|
|
|
<!-- Cruise throttle + limits -->
|
|
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.5"/>
|
|
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25"/>
|
|
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.85"/>
|
|
<define name="AUTO_PITCH_MAX_PITCH" value="20." unit="deg"/>
|
|
<define name="AUTO_PITCH_MIN_PITCH" value="-20." unit="deg"/>
|
|
|
|
<!-- Climb loop (throttle) -->
|
|
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
|
|
<define name="AUTO_THROTTLE_PGAIN" value="0.003"/> <!-- -0.005 -->
|
|
<define name="AUTO_THROTTLE_DGAIN" value="0.007"/> <!-- 0.005 -->
|
|
<define name="AUTO_THROTTLE_IGAIN" value="0.002"/> <!-- 0.005 -->
|
|
|
|
<!-- Climb loop (pitch) -->
|
|
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.02"/>
|
|
<define name="AUTO_PITCH_PGAIN" value="0.006"/> <!-- -0.03 -->
|
|
<define name="AUTO_PITCH_DGAIN" value="0.0"/> <!-- -0.03 -->
|
|
<define name="AUTO_PITCH_IGAIN" value="0.002"/>
|
|
|
|
<!-- airspeed control -->
|
|
<define name="AUTO_AIRSPEED_SETPOINT" value="16."/>
|
|
<define name="AUTO_AIRSPEED_THROTTLE_PGAIN" value="0.1"/>
|
|
<define name="AUTO_AIRSPEED_THROTTLE_DGAIN" value="0.12"/>
|
|
<define name="AUTO_AIRSPEED_THROTTLE_IGAIN" value="0.0"/>
|
|
<define name="AUTO_AIRSPEED_PITCH_PGAIN" value="0.06"/>
|
|
<define name="AUTO_AIRSPEED_PITCH_DGAIN" value="0.0"/>
|
|
<define name="AUTO_AIRSPEED_PITCH_IGAIN" value="0.042"/>
|
|
<define name="AIRSPEED_MAX" value="30" unit="m/s"/>
|
|
<define name="AIRSPEED_MIN" value="10" unit="m/s"/>
|
|
|
|
<!-- groundspeed control -->
|
|
<define name="AUTO_GROUNDSPEED_SETPOINT" value="15" unit="m/s"/>
|
|
<define name="AUTO_GROUNDSPEED_PGAIN" value="1."/>
|
|
<define name="AUTO_GROUNDSPEED_IGAIN" value="0."/>
|
|
|
|
<!-- pitch trim --> <!-- 5 deg -->
|
|
<define name="PITCH_LOITER_TRIM" value="RadOfDeg(0.)"/>
|
|
<define name="PITCH_DASH_TRIM" value="RadOfDeg(-0.)"/>
|
|
|
|
<define name="THROTTLE_SLEW" value="0.1"/>
|
|
</section>
|
|
|
|
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
|
<define name="COURSE_PGAIN" value="0.7"/>
|
|
<define name="ROLL_MAX_SETPOINT" value="0.8" 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_ATTITUDE_GAIN" value="3800."/>
|
|
<define name="ROLL_RATE_GAIN" value="500."/>
|
|
<define name="ROLL_IGAIN" value="150."/>
|
|
<define name="ROLL_KFFA" value="0"/>
|
|
<define name="ROLL_KFFD" value="0"/>
|
|
|
|
<define name="PITCH_PGAIN" value="8000"/>
|
|
<define name="PITCH_DGAIN" value="500"/>
|
|
<define name="PITCH_IGAIN" value="250."/>
|
|
<define name="PITCH_KFFA" value="0."/>
|
|
<define name="PITCH_KFFD" value="0."/>
|
|
|
|
<define name="PITCH_OF_ROLL" value="RadOfDeg(0.0)"/>
|
|
<define name="AILERON_OF_THROTTLE" value="0.0"/>
|
|
<!--define name="ELEVATOR_OF_ROLL" value="1400"/-->
|
|
</section>
|
|
|
|
<section name="NAV">
|
|
<define name="NAV_GLIDE_PITCH_TRIM" value="0"/>
|
|
</section>
|
|
|
|
<section name="FAILSAFE" prefix="FAILSAFE_">
|
|
<define name="DELAY_WITHOUT_GPS" value="2" unit="s"/>
|
|
<define name="DEFAULT_THROTTLE" value="0.3" 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>
|
|
|
|
<section name="SIMU">
|
|
<!--define name="ROLL_RESPONSE_FACTOR" value="10"/>
|
|
<define name="MAX_ROLL_DOT" value="20" unit="rad/s"/-->
|
|
<define name="JSBSIM_MODEL" value=""Malolo1""/>
|
|
<!--define name="JSBSIM_INIT" value=""Malolo1-IC""/-->
|
|
<define name="JSBSIM_LAUNCHSPEED" value="15.0"/>
|
|
<define name="JSBSIM_IR_ROLL_NEUTRAL" value="0." unit="deg"/>
|
|
<define name="JSBSIM_IR_PITCH_NEUTRAL" value="0." unit="deg"/>
|
|
</section>
|
|
|
|
</airframe>
|