Files
paparazzi/conf/airframes/gorazoptere_brushless_ANALOG.xml
T
2006-06-01 06:47:42 +00:00

132 lines
5.5 KiB
XML

<airframe name="Gorazoptere_brushless_ANALOG">
<section name="IMU_ANALOG" prefix="IMU_">
<define name="INIT_EULER_DOT_VARIANCE_MAX" value="3"/>
<define name="INIT_EULER_DOT_NB_SAMPLES_MIN" value ="10"/>
<define name="ADC_ROLL_DOT" value="1"/>
<define name="ADC_PITCH_DOT" value="2"/>
<define name="ADC_YAW_DOT" value="3"/>
<define name="ADC_ROLL_DOT_SIGN" value="-"/>
<define name="ADC_PITCH_DOT_SIGN" value="+"/>
<define name="ADC_YAW_DOT_SIGN" value="-"/>
<define name="ADC_ROLL_DOT_ZERO" value="512"/>
<define name="ADC_PITCH_DOT_ZERO" value="512"/>
<define name="ADC_YAW_DOT_ZERO" value="512"/>
<define name="ADC_ROLL_DOT_SCALE" value="(real_t) (0.9444 * 3.14159 / 180.0)"/>
<define name="ADC_PITCH_DOT_SCALE" value="(real_t) (0.9444 * 3.14159 / 180.0)"/>
<define name="ADC_YAW_DOT_SCALE" value="(real_t) (0.9444 * 3.14159 / 180.0)"/>
<define name="ADC_ACCELX" value="4"/>
<define name="ADC_ACCELY" value="3"/>
<define name="ADC_ACCELZ" value="2"/>
<define name="ADC_ACCELX_SIGN" value="-"/>
<define name="ADC_ACCELY_SIGN" value="-"/>
<define name="ADC_ACCELZ_SIGN" value="-"/>
<define name="ADC_ACCELX_ZERO" value="0x24A"/>
<define name="ADC_ACCELY_ZERO" value="0x280"/>
<define name="ADC_ACCELZ_ZERO" value="0x210"/>
<define name="ADC_ACCELX_SCALE" value="0x24A"/>
<define name="ADC_ACCELY_SCALE" value="0x280"/>
<define name="ADC_ACCELZ_SCALE" value="0x210"/>
</section>
<section name="RATE_LOOP">
<define name="ROLL_DOT_PGAIN" value="-100."/>
<define name="ROLL_DOT_IGAIN" value="0."/>
<define name="ROLL_DOT_DGAIN" value="0."/>
<define name="PITCH_DOT_PGAIN" value="-100."/>
<define name="PITCH_DOT_IGAIN" value="0."/>
<define name="PITCH_DOT_DGAIN" value="0."/>
<define name="YAW_DOT_PGAIN" value="-100."/>
<define name="YAW_DOT_IGAIN" value="0."/>
<define name="YAW_DOT_DGAIN" value="0."/>
</section>
<section name="DESIRED_OF_RADIO" prefix="DESIRED_OF_RADIO_">
<define name="ROLL_DOT" value="0.015"/>
<define name="PITCH_DOT" value="0.015"/>
<define name="YAW_DOT" value="0.015"/>
</section>
<section name="adc" prefix="ADC_CHANNEL_">
<define name="IR1" value="0"/>
<define name="IR2" value="1"/>
<define name="VSUPPLY" value="6"/>
</section>
<section name="servo">
<define name="SERVOS_FALLING_EDGE" value="1"/>
</section>
<servos min="1000" neutral="1500" max="2000">
<servo name="MOTOR_FRONT" no="1" min="1250" neutral="1250" max="1850"/>
<servo name="MOTOR_BACK" no="2" min="1250" neutral="1250" max="1850"/>
<servo name="MOTOR_LEFT" no="3" min="1250" neutral="1250" max="1850"/>
<servo name="MOTOR_RIGHT" no="4" min="1250" neutral="1250" max="1850"/>
</servos>
<command>
<let var="roll" value="0.3 * @ROLL"/>
<let var="pitch" value="0.3 * @PITCH"/>
<let var="yaw" value="-0.4 * @YAW"/>
<let var="throttle" value="2.0 * @THROTTLE"/>
<set servo="MOTOR_FRONT" value="$throttle + $pitch - $yaw"/>
<set servo="MOTOR_BACK" value="$throttle - $pitch - $yaw"/>
<set servo="MOTOR_RIGHT" value="$throttle + $roll + $yaw"/>
<set servo="MOTOR_LEFT" value="$throttle - $roll + $yaw"/>
</command>
<section name="INFRARED" prefix="IR_">
<define name="ADC_ROLL_NEUTRAL" value="0"/>
<define name="ADC_PITCH_NEUTRAL" value="1024"/>
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="DEFAULT_CONTRAST" value="200"/>
<define name="RAD_OF_IR_CONTRAST" value="0.75"/>
<linear name="RollOfIrs" arity="2" coeff1="-1" coeff2="1"/>
<linear name="PitchOfIrs" arity="2" coeff1="1" coeff2="1"/>
</section>
<section name="PID">
<define name="ROLL_PGAIN" value="23000."/>
<define name="PITCH_OF_ROLL" value="0.0"/>
<define name="PITCH_PGAIN" value="23000."/>
<define name="MAX_ROLL" value="0.35"/>
<define name="MAX_PITCH" value="0.35"/>
<define name="MIN_PITCH" value="-0.35"/>
<define name="AILERON_OF_GAZ" value="-0.13"/>
</section>
<section name="ALT" prefix="CLIMB_">
<define name="PITCH_PGAIN" value="-0.1"/>
<define name="PITCH_IGAIN" value="0.025"/>
<define name="PGAIN" value="-0.03"/>
<define name="IGAIN" value="0.1"/>
<define name="MAX" value="1."/>
<define name="LEVEL_GAZ" value="0.31"/>
<define name="PITCH_OF_VZ_PGAIN" value="0.05"/>
<define name="GAZ_OF_CLIMB" value="0.2" unit="%/(m/s)"/>
</section>
<section name="NAV">
<define name="COURSE_PGAIN" value="-0.2"/>
<define name="ALTITUDE_PGAIN" value="-0.025"/>
<define name="NAV_PITCH" value="0."/>
</section>
<section name="BAT">
<define name="MILLIAMP_PER_PERCENT" value="2.16"/>
<define name="VOLTAGE_ADC_A" value="0.0175"/>
<define name="VOLTAGE_ADC_B" value="0.088"/>
<define name="VoltageOfAdc(adc)" value="(VOLTAGE_ADC_A * adc + VOLTAGE_ADC_B)"/>
<define name="LOW_BATTERY" value="93" unit="1e-1V"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="10." unit="m/s"/>
<define name="CARROT" value="5." unit="s"/>
</section>
<makefile>
include $(PAPARAZZI_SRC)/conf/autopilot/v1_2_1.makefile
LOCAL_CFLAGS += -DIMU_ANALOG
fbw.CFLAGS += -DRATE_LOOP
fbw.EXTRA_SRCS += control.c imu.c
fbw.CFLAGS += -DIMU_RESET_ON_BOOT
ap.CFLAGS += -DUBX
ap.CFLAGS += -DTELEMETER
ap.EXTRA_SRCS += $(SRC_ARCH)/i2c_ap.c srf08.c
ap.CFLAGS += -DAHRS
ap.EXTRA_SRCS += $(SRC_ARCH)/ahrs_asm.S ahrs.c
</makefile>
</airframe>