Files
paparazzi/conf/airframes/ENAC/fixed-wing/slayer2.xml
T
2010-11-23 21:47:13 +01:00

287 lines
11 KiB
XML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<airframe name="Miraterre Slayer 2">
<!-- Slayer (http://www.recherche.enac.fr/wiki/index.php/Image:DragonSlayer_0948sm.jpg)
Two ailevons
Baro
Tilted infrared sensor, gyro
Still camera
Tiny 0.99
-->
<!-- commands section -->
<servos>
<servo name="AILEVON_RIGHT" no="1" min="1000" neutral="1500" max="2000"/>
<servo name="AILEVON_LEFT" no="0" min="2000" neutral="1480" max="900"/>
<servo name="THROTTLE" no="4" min="1250" neutral="1250" max="1850"/>
<servo name="HATCH" no="3" min="2000" neutral="2000" max="1000"/>
</servos>
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="HATCH" 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.8"/>
<define name="AILEVON_ELEVATOR_RATE" value="0.8"/>
</section>
<command_laws>
<let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/>
<set servo="THROTTLE" value="@THROTTLE"/>
<set servo="AILEVON_LEFT" value="$elevator + $aileron"/>
<set servo="AILEVON_RIGHT" value="$elevator - $aileron"/>
<set servo="HATCH" value="@HATCH"/>
</command_laws>
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.96"/>
<define name="MAX_PITCH" value="0.8"/>
</section>
<section name="adc" prefix="ADC_CHANNEL_">
<define name="IR1" value="ADC_1"/>
<define name="IR2" value="ADC_0"/>
<define name="IR_TOP" value="ADC_4"/>
<define name="IR_NB_SAMPLES" value="16"/>
<define name="GYRO_ROLL" value="ADC_5"/>
<!-- <define name="GYRO_TEMP" value="ADC_6"/> -->
<define name="GYRO_NB_SAMPLES" value="16"/>
</section>
<section name="INFRARED" prefix="IR_">
<define name="ADC_IR1_NEUTRAL" value="512"/>
<define name="ADC_IR2_NEUTRAL" value="512"/>
<define name="ADC_TOP_NEUTRAL" value="510"/>
<define name="HORIZ_SENSOR_TILTED" value="1"/>
<define name="IR2_SIGN" value="1"/>
<define name="TOP_SIGN" value="-1"/>
<define name="LATERAL_CORRECTION" value="0.356000006199"/>
<define name="LONGITUDINAL_CORRECTION" value="0.381000012159"/>
<define name="VERTICAL_CORRECTION" value="1.5"/>
<define name="ROLL_NEUTRAL_DEFAULT" value="-9" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="3" unit="deg"/>
<define name="CORRECTION_UP" value="1.5"/>
<define name="CORRECTION_DOWN" value="1.5"/>
<define name="CORRECTION_LEFT" value="1."/>
<define name="CORRECTION_RIGHT" value="1."/>
</section>
<section name="GYRO" prefix="GYRO_">
<define name="ADC_ROLL_NEUTRAL" value="484"/>
<!-- <define name="ADC_TEMP_NEUTRAL" value="476"/>
<define name="ADC_TEMP_SLOPE" value="0"/>
-->
<define name="ROLL_SCALE" value="1.3846"/>
<define name="ROLL_DIRECTION" value="-1."/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="5000"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
<define name="VoltageOfAdc(adc)" value="(0.0183*adc)"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="20." unit="m/s"/>
<define name="MAXIMUM_AIRSPEED" value="25." unit="m/s"/>
<define name="MINIMUM_AIRSPEED" value="15." unit="m/s"/>
<define name="CARROT" value="3." unit="s"/>
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="CONTROL_RATE" value="60" unit="Hz"/>
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="90"/>
<define name="UNLOCKED_HOME_MODE" value="TRUE"/>
<define name="RC_LOST_MODE" value="PPRZ_MODE_AUTO2"/>
<define name="GLIDE_AIRSPEED" value="12.5"/>
<define name="GLIDE_VSPEED" value="2."/>
<define name="GLIDE_PITCH" value="45" unit="deg"/>
<define name="TELEMETRY_MODE_AP" value="1"/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="-0.065"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.5"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value=".47"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="1"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1250"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-2000"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.15" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="-0.01"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.15"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.15"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_DGAIN" value="-1"/>
<!-- 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.5"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.5"/>
<define name="THROTTLE_SLEW" value="0.05"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="-2.6"/>
<define name="COURSE_DGAIN" value="1"/>
<define name="COURSE_PRE_BANK_CORRECTION" value="1."/>
<define name="ROLL_MAX_SETPOINT" value="0.73" unit="radians"/>
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
<define name="PITCH_PGAIN" value="-9000."/>
<define name="PITCH_DGAIN" value="0."/>
<define name="ELEVATOR_OF_ROLL" value="1000"/>
<!-- roll rate loop -->
<define name="ROLL_ATTITUDE_GAIN" value="-7500"/>
<define name="ROLL_RATE_GAIN" value="-1500"/>
<define name="COURSE_SLEW_INCREMENT" value="RadOfDeg(3)"/>
</section>
<section name="NAV">
<define name="NAV_PITCH" value="0."/>
<define name="NAV_GLIDE_PITCH_TRIM" value="0"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="50"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="15"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="1."/><!-- Throttle for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.42"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Throttle for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.5"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.4"/><!-- 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="1" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0." unit="%"/>
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.2" unit="rad"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
<!--
<section name="DATALINK" prefix="DATALINK_">
<define name="DEVICE_TYPE" value="AEROCOMM"/>
<define name="DEVICE_ADDRESS" value="...."/>
</section>
-->
<makefile>
include $(PAPARAZZI_SRC)/conf/autopilot/tiny.makefile
FLASH_MODE=IAP
ap.CFLAGS += -DFBW -DAP -DBOARD_CONFIG=\"tiny_0_99.h\" -DLED -DTIME_LED=1
ap.srcs = sys_time.c $(SRC_ARCH)/sys_time_hw.c $(SRC_ARCH)/armVIC.c main_fbw.c main_ap.c main.c
ap.srcs += commands.c
ap.CFLAGS += -DACTUATORS=\"servos_4015_MAT_hw.h\" -DSERVOS_4015_MAT
ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c
ap.CFLAGS += -DRADIO_CONTROL
ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c
#ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=XBeeTransport -DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0 -DXBEE_UART=Uart0 -DDATALINK=XBEE -DUART0_BAUD=B9600
#ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c xbee.c
# AEROCOMM
# ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0 -DPPRZ_UART=Uart0 -DDATALINK=PPRZ -DUART0_BAUD=B57600
# RADIOTRONIX
ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0 -DPPRZ_UART=Uart0 -DDATALINK=PPRZ -DUART0_BAUD=B9600
ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c pprz_transport.c
ap.CFLAGS += -DINTER_MCU
ap.srcs += inter_mcu.c
ap.CFLAGS += -DADC -DUSE_ADC_0 -DUSE_ADC_1 -DUSE_ADC_4 -DUSE_ADC_5 -DUSE_ADC_6
ap.srcs += $(SRC_ARCH)/adc_hw.c
ap.CFLAGS += -DUSE_GPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B38400
ap.srcs += gps_ubx.c gps.c latlong.c
ap.CFLAGS += -DUSE_INFRARED -DALT_KALMAN
ap.srcs += infrared.c estimator.c
ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM
ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c nav_survey_rectangle.c traffic_info.c nav_line.c
# Camera power switch on ADC_7 pin
ap.CFLAGS += -DLED_3_BANK=0 -DLED_3_PIN=10 -DPOWER_SWITCH_LED=3
ap.CFLAGS += -DUSE_GYRO -DADXRS150
# -DIDG300
ap.srcs += gyro.c
# ap.srcs += bomb.c
# Hack to use the same tuning file than slayer1
ap.CFLAGS += -DUSE_GPIO
ap.srcs += $(SRC_ARCH)/gpio.c
# Harware In The Loop
#ap.CFLAGS += -DHITL
# ap.CFLAGS += -DTELEMETRY_MODE_FBW=1
ap.CFLAGS += -DUSE_SPI -DSPI_MASTER -DUSE_SPI_SLAVE0 -DUSE_BARO_MS5534A
ap.srcs += spi.c $(SRC_ARCH)/spi_hw.c $(SRC_ARCH)/baro_MS5534A.c
ap.CFLAGS += -D BARO_MS5534A_W1=0xAC20 -D BARO_MS5534A_W2=0x87D9 -D BARO_MS5534A_W3=0X8D9C -D BARO_MS5534A_W4=0xB080
# C1 = 22032 UT1=24568
# Config for SITL simulation
# Config for SITL simulation
#include $(PAPARAZZI_SRC)/conf/autopilot/sitl.makefile
sim.ARCHDIR = $(ARCHI)
sim.CFLAGS += -DSITL -DAP -DFBW -DRADIO_CONTROL -DINTER_MCU -DDOWNLINK -DDOWNLINK_TRANSPORT=IvyTransport -DUSE_INFRARED -DNAV -DLED -DWIND_INFO
sim.srcs = latlong.c radio_control.c downlink.c commands.c gps.c inter_mcu.c infrared.c fw_v_ctl.c nav.c estimator.c sys_time.c main_fbw.c main_ap.c datalink.c $(SRC_ARCH)/ppm_hw.c $(SRC_ARCH)/sim_gps.c $(SRC_ARCH)/sim_ir.c $(SRC_ARCH)/sim_ap.c $(SRC_ARCH)/ivy_transport.c $(SRC_ARCH)/sim_adc_generic.c $(SRC_ARCH)/led_hw.c
sim.CFLAGS += -DBOARD_CONFIG=\"tiny.h\" -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN -DUSE_BARO_MS5534A
sim.srcs += nav_survey_rectangle.c nav_line.c $(SRC_ARCH)/sim_baro.c
sim.srcs += fw_h_ctl.c
# sim.srcs += fw_h_ctl_a.c
# sim.CFLAGS += -DH_CTL_ROLL_IGAIN=-500 -DH_CTL_ROLL_KFF=-500
</makefile>
</airframe>