mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-05 06:54:49 +08:00
8cfbe748c7
these attributes are not parsed in servos, only in the single sevo node now these airframe files should also fit the DTD again
257 lines
8.9 KiB
XML
257 lines
8.9 KiB
XML
<airframe name="BOOZ2_NoVa">
|
|
|
|
<!-- PPZUAV_BOOZ2_NoVa
|
|
PPZUAV_BOOZ2_MAIN_001 main board
|
|
PPZUAV_BOOZ2_IMU_001 IMU
|
|
PPZUAV_BOOZ2_GPS_001 LEA-5H GPS
|
|
Datamodems configured for 57600 baud
|
|
Modified 6A speed controllers
|
|
-->
|
|
|
|
<servos>
|
|
<servo name="FRONT" no="0" min="0" neutral="0" max="255"/>
|
|
<servo name="BACK" no="1" min="0" neutral="0" max="255"/>
|
|
<servo name="RIGHT" no="2" min="0" neutral="0" max="255"/>
|
|
<servo name="LEFT" no="3" min="0" neutral="0" max="255"/>
|
|
</servos>
|
|
|
|
<commands>
|
|
<axis name="PITCH" failsafe_value="0"/>
|
|
<axis name="ROLL" failsafe_value="0"/>
|
|
<axis name="YAW" failsafe_value="0"/>
|
|
<axis name="THRUST" failsafe_value="0"/>
|
|
</commands>
|
|
|
|
<section name="IMU" prefix="IMU_">
|
|
|
|
<define name="GYRO_P_CHAN" value="1"/>
|
|
<define name="GYRO_Q_CHAN" value="0"/>
|
|
<define name="GYRO_R_CHAN" value="2"/>
|
|
|
|
<define name="GYRO_P_NEUTRAL" value="33008"/>
|
|
<define name="GYRO_Q_NEUTRAL" value="31899"/>
|
|
<define name="GYRO_R_NEUTRAL" value="32989"/>
|
|
|
|
<define name="GYRO_P_SENS" value=" 1.01" integer="16"/>
|
|
<define name="GYRO_Q_SENS" value="-1.01" integer="16"/>
|
|
<define name="GYRO_R_SENS" value="-1.01" integer="16"/>
|
|
|
|
|
|
<define name="ACCEL_X_CHAN" value="5"/>
|
|
<define name="ACCEL_Y_CHAN" value="3"/>
|
|
<define name="ACCEL_Z_CHAN" value="4"/>
|
|
|
|
<define name="ACCEL_X_SENS" value="-2.19476868" integer="16"/>
|
|
<define name="ACCEL_Y_SENS" value="-2.88368188" integer="16"/>
|
|
<define name="ACCEL_Z_SENS" value="-2.57172803" integer="16"/>
|
|
|
|
<define name="ACCEL_X_NEUTRAL" value="33160"/>
|
|
<define name="ACCEL_Y_NEUTRAL" value="32523"/>
|
|
<define name="ACCEL_Z_NEUTRAL" value="32418"/>
|
|
|
|
<define name="MAG_X_CHAN" value="0"/>
|
|
<define name="MAG_Y_CHAN" value="1"/>
|
|
<define name="MAG_Z_CHAN" value="2"/>
|
|
|
|
<define name="MAG_X_SENS" value="4.73914612" integer="16"/>
|
|
<define name="MAG_Y_SENS" value="-5.34705586" integer="16"/>
|
|
<define name="MAG_Z_SENS" value="-3.57580805" integer="16"/>
|
|
|
|
<define name="MAG_X_NEUTRAL" value="-89"/>
|
|
<define name="MAG_Y_NEUTRAL" value="20"/>
|
|
<define name="MAG_Z_NEUTRAL" value="-30"/>
|
|
|
|
<define name="BODY_TO_IMU_PHI" value="ANGLE_BFP_OF_REAL(RadOfDeg(0.))"/>
|
|
<define name="BODY_TO_IMU_THETA" value="ANGLE_BFP_OF_REAL(RadOfDeg(0.))"/>
|
|
<define name="BODY_TO_IMU_PSI" value="ANGLE_BFP_OF_REAL(RadOfDeg(-90.))"/>
|
|
|
|
</section>
|
|
|
|
|
|
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
|
|
<!-- setpoints -->
|
|
<define name="SP_MAX_P" value="10000" />
|
|
<define name="SP_MAX_Q" value="10000" />
|
|
<define name="SP_MAX_R" value="10000" />
|
|
<define name="DEADBAND_P" value="0" />
|
|
<define name="DEADBAND_Q" value="0" />
|
|
<define name="DEADBAND_R" value="200" />
|
|
<define name="REF_TAU" value="4" />
|
|
|
|
<!-- feedback -->
|
|
<define name="GAIN_P" value="400" />
|
|
<define name="GAIN_Q" value="400" />
|
|
<define name="GAIN_R" value="350" />
|
|
|
|
<define name="IGAIN_P" value="75" />
|
|
<define name="IGAIN_Q" value="75" />
|
|
<define name="IGAIN_R" value="50" />
|
|
|
|
<!-- feedforward -->
|
|
<define name="DDGAIN_P" value="300" />
|
|
<define name="DDGAIN_Q" value="300" />
|
|
<define name="DDGAIN_R" value="300" />
|
|
</section>
|
|
|
|
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
|
|
|
|
<!-- setpoints -->
|
|
<define name="SP_MAX_PHI" value="45." unit="deg"/>
|
|
<define name="SP_MAX_THETA" value="45." unit="deg"/>
|
|
<define name="SP_MAX_R" value="180." unit="deg/s"/><!-- Maximum speed in deg/s-->
|
|
<define name="DEADBAND_R" value="250"/>
|
|
|
|
<!-- reference -->
|
|
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
|
|
<define name="REF_ZETA_P" value="0.85"/>
|
|
<define name="REF_MAX_P" value="300." unit="deg/s"/>
|
|
<define name="REF_MAX_PDOT" value="RadOfDeg(7000.)"/>
|
|
|
|
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
|
|
<define name="REF_ZETA_Q" value="0.85"/>
|
|
<define name="REF_MAX_Q" value="300." unit="deg/s"/>
|
|
<define name="REF_MAX_QDOT" value="RadOfDeg(7000.)"/>
|
|
|
|
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
|
|
<define name="REF_ZETA_R" value="0.85"/>
|
|
<define name="REF_MAX_R" value="180." unit="deg/s"/>
|
|
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
|
|
|
|
<!-- feedback -->
|
|
<!--
|
|
<define name="PHI_PGAIN" value="400"/>
|
|
<define name="PHI_DGAIN" value="300"/>
|
|
<define name="PHI_IGAIN" value="100"/>
|
|
|
|
<define name="THETA_PGAIN" value="400"/>
|
|
<define name="THETA_DGAIN" value="300"/>
|
|
<define name="THETA_IGAIN" value="100"/>
|
|
|
|
<define name="PSI_PGAIN" value="380"/>
|
|
<define name="PSI_DGAIN" value="320"/>
|
|
<define name="PSI_IGAIN" value="75"/>
|
|
-->
|
|
|
|
<define name="PHI_PGAIN" value="2000"/>
|
|
<define name="PHI_DGAIN" value="400"/>
|
|
<define name="PHI_IGAIN" value="200"/>
|
|
|
|
<define name="THETA_PGAIN" value="2000"/>
|
|
<define name="THETA_DGAIN" value="400"/>
|
|
<define name="THETA_IGAIN" value="200"/>
|
|
|
|
<define name="PSI_PGAIN" value="1000"/>
|
|
<define name="PSI_DGAIN" value="350"/>
|
|
<define name="PSI_IGAIN" value="10"/>
|
|
|
|
<!-- feedforward -->
|
|
<define name="PHI_DDGAIN" value=" 300"/>
|
|
<define name="THETA_DDGAIN" value=" 300"/>
|
|
<define name="PSI_DDGAIN" value=" 300"/>
|
|
|
|
</section>
|
|
|
|
<section name="SUPERVISION" prefix="SUPERVISION_">
|
|
<define name="MIN_MOTOR" value="2" />
|
|
<define name="MAX_MOTOR" value="210" />
|
|
<define name="TRIM_A" value="0" />
|
|
<define name="TRIM_E" value="0" />
|
|
<define name="TRIM_R" value="0" />
|
|
<define name="NB_MOTOR" value="4" />
|
|
<define name="SCALE" value="256"/>
|
|
<define name="ROLL_COEF" value="{ 0, 0, -256, 256}" />
|
|
<define name="PITCH_COEF" value="{ 256, -256, 0, 0}" />
|
|
<define name="YAW_COEF" value="{ 256, 256, -256, -256}" />
|
|
<define name="THRUST_COEF" value="{ 256, 256, 256, 256}"/>
|
|
</section>
|
|
|
|
<section name="ACTUATORS_MKK" prefix="ACTUATORS_MKK_">
|
|
<define name="NB" value="4" />
|
|
<define name="ADDR" value="{ 0x52, 0x56, 0x54, 0x58 }" />
|
|
</section>
|
|
|
|
<section name="INS" prefix="INS_">
|
|
<define name="BARO_SENS" value="14.9" integer="16"/>
|
|
</section>
|
|
|
|
|
|
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
|
<define name="MIN_ERR_Z" value="POS_BFP_OF_REAL(-10.)"/>
|
|
<define name="MAX_ERR_Z" value="POS_BFP_OF_REAL( 10.)"/>
|
|
<define name="MIN_ERR_ZD" value="SPEED_BFP_OF_REAL(-10.)"/>
|
|
<define name="MAX_ERR_ZD" value="SPEED_BFP_OF_REAL( 10.)"/>
|
|
<define name="MAX_SUM_ERR" value="2000000"/>
|
|
<define name="REF_MIN_ZDD" value="-1.5*9.81"/>
|
|
<define name="REF_MAX_ZDD" value=" 0.5*9.81"/>
|
|
<define name="REF_MIN_ZD" value="-1.5"/>
|
|
<define name="REF_MAX_ZD" value=" 1.5"/>
|
|
<define name="HOVER_KP" value="150"/>
|
|
<define name="HOVER_KD" value="80"/>
|
|
<define name="HOVER_KI" value="0"/>
|
|
<!-- 1.5m/s for full stick : SPEED_BFP_OF_REAL(1.5) / (MAX_PPRZ/2) -->
|
|
<define name="RC_CLIMB_COEF" value ="163"/>
|
|
<!-- SPEED_BFP_OF_REAL(1.5) * 20% -->
|
|
<define name="RC_CLIMB_DEAD_BAND" value ="160000"/>
|
|
<!-- <define name="INV_M" value="0.118"/> -->
|
|
</section>
|
|
|
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
|
<define name="PGAIN" value="70"/>
|
|
<define name="DGAIN" value="150"/>
|
|
<define name="IGAIN" value="15"/>
|
|
<define name="NGAIN" value="0"/>
|
|
<define name="AGAIN" value="0"/>
|
|
</section>
|
|
|
|
<section name="BAT">
|
|
<define name="MILLIAMP_PER_PERCENT" value="0.86"/>
|
|
<define name="CATASTROPHIC_BAT_LEVEL" value="9.0" unit="V"/>
|
|
<define name="BATTERY_SENS" value="0.18" integer="16"/>
|
|
<!-- <define name="BATTERY_SENS" value="1" integer="16"/>-->
|
|
</section>
|
|
|
|
<section name="AUTOPILOT">
|
|
<define name="MODE_MANUAL" value="AP_MODE_RATE_DIRECT"/>
|
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_DIRECT"/>
|
|
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
|
|
</section>
|
|
|
|
|
|
<section name="MISC">
|
|
<define name="FACE_REINJ_1" value="1024"/>
|
|
</section>
|
|
|
|
<makefile>
|
|
ARCH=lpc21
|
|
BOARD_CFG = \"boards/booz2_v1_0.h\"
|
|
|
|
# prevents motors from ever starting
|
|
#ap.CFLAGS += -DKILL_MOTORS
|
|
|
|
include $(PAPARAZZI_SRC)/conf/firmwares/booz2_common.makefile
|
|
include $(CFG_BOOZ)/booz2_autopilot.makefile
|
|
include $(CFG_BOOZ)/booz2_test_progs.makefile
|
|
#ap.CFLAGS += -DFAILSAFE_GROUND_DETECT
|
|
|
|
#ap.CFLAGS += -DMODEM_BAUD=B38400
|
|
ap.CFLAGS += -DMODEM_BAUD=B57600
|
|
include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile
|
|
include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile
|
|
include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1_1.makefile
|
|
include $(CFG_BOOZ)/subsystems/booz2_gps.makefile
|
|
|
|
include $(CFG_BOOZ)/subsystems/booz2_ahrs_cmpl.makefile
|
|
|
|
|
|
include $(CFG_BOOZ)/subsystems/ins_hff.makefile
|
|
#set USE_GPS lag for horizontal filter
|
|
ap.CFLAGS += -DGPS_LAG=0.8 -DUSE_GPS_ACC4R
|
|
ap.CFLAGS += -DGPS_USE_LATLONG
|
|
|
|
ap.CFLAGS += -DUSE_ADAPT_HOVER -DUSE_INS_NAV_INIT -DACTUATORS_START_DELAY=3
|
|
|
|
|
|
</makefile>
|
|
|
|
</airframe>
|