Created
December 27, 2011 01:02
-
-
Save agressiva/1522382 to your computer and use it in GitHub Desktop.
Agressiva rotorcraft airframe file (quad-pwm)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- this is a agressiva vehicle equiped with Lisa/M and PWM motor controllers --> | |
<airframe name="AGR-Quad"> | |
<servos min="0" neutral="0" max="0xff"> | |
<servo name="FRONTRIGHT" no="0" min="1000" neutral="1000" max="2000"/> | |
<servo name="FRONTLEFT" no="1" min="1000" neutral="1000" max="2000"/> | |
<servo name="REARRIGHT" no="2" min="1000" neutral="1000" max="2000"/> | |
<servo name="REARLEFT" no="3" min="1000" neutral="1000" max="2000"/> | |
</servos> | |
<commands> | |
<axis name="ROLL" failsafe_value="0"/> | |
<axis name="PITCH" failsafe_value="0"/> | |
<axis name="YAW" failsafe_value="0"/> | |
<axis name="THRUST" failsafe_value="0"/> | |
</commands> | |
<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"/> | |
--> | |
<set servo="FRONTRIGHT" value="0"/> | |
<set servo="FRONTLEFT" value="1"/> | |
<set servo="REARRIGHT" value="2"/> | |
<set servo="REARLEFT" value="3"/> | |
</command_laws> | |
<!-- for the sim --> | |
<section name="ACTUATORS_MKK" prefix="ACTUATORS_MKK_"> | |
<define name="NB" value="4"/> | |
<define name="ADDR" value="{ 0x52, 0x54, 0x56, 0x58 }"/> | |
</section> | |
<section name="ROTORCRAFT" prefix="ROTORCRAFT_"> | |
<define name="COMMANDS_YAW_ALWAYS_ENABLED" value="TRUE"/> | |
</section> | |
<section name="SUPERVISION" prefix="SUPERVISION_"> | |
<define name="MIN_MOTOR" value="1200"/> | |
<define name="MAX_MOTOR" value="2000"/> | |
<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="{ -256, 256, -256, 256 }"/> | |
<define name="PITCH_COEF" value="{ 256, 256, -256, -256 }"/> | |
<define name="YAW_COEF" value="{ 256, -256, -256, 256 }"/> | |
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/> | |
</section> | |
<!-- <include href="conf/airframes/AGRESSIVA/calib/imu_lisam_093.xml"/> --> | |
<section name="IMU" prefix="IMU_"> | |
<define name="GYRO_P_NEUTRAL" value="-114"/> | |
<define name="GYRO_Q_NEUTRAL" value="-44"/> | |
<define name="GYRO_R_NEUTRAL" value="-40"/> | |
<define name="GYRO_P_SENS" value="4.412" integer="16"/> | |
<define name="GYRO_Q_SENS" value="4.412" integer="16"/> | |
<define name="GYRO_R_SENS" value="4.412" integer="16"/> | |
<define name="GYRO_PQ_SENS" value="0.0" integer="16"/> | |
<define name="GYRO_PR_SENS" value="0.0" integer="16"/> | |
<define name="GYRO_QR_SENS" value="0.0" integer="16"/> | |
<define name="ACCEL_X_NEUTRAL" value="5"/> | |
<define name="ACCEL_Y_NEUTRAL" value="-3"/> | |
<define name="ACCEL_Z_NEUTRAL" value="-24"/> | |
<define name="ACCEL_X_SENS" value="37.5166" integer="16"/> | |
<define name="ACCEL_Y_SENS" value="38.9051" integer="16"/> | |
<define name="ACCEL_Z_SENS" value="39.6103" integer="16"/> | |
<define name="ACCEL_XY_SENS" value="0.0" integer="16"/> | |
<define name="ACCEL_XZ_SENS" value="0.0" integer="16"/> | |
<define name="ACCEL_YZ_SENS" value="0.0" integer="16"/> | |
<define name="MAG_X_NEUTRAL" value="-49"/> | |
<define name="MAG_Y_NEUTRAL" value="-75"/> | |
<define name="MAG_Z_NEUTRAL" value="-36"/> | |
<define name="MAG_X_SENS" value="11.7127875762" integer="16"/> | |
<define name="MAG_Y_SENS" value="12.3878992959" integer="16"/> | |
<define name="MAG_Z_SENS" value="11.4068399996" integer="16"/> | |
<define name="MAG_XY_SENS" value="0.0" integer="16"/> | |
<define name="MAG_XZ_SENS" value="0.0" integer="16"/> | |
<define name="MAG_YZ_SENS" value="0.0" integer="16"/> | |
<define name="BODY_TO_IMU_PHI" value="RadOfDeg( 0. )"/> | |
<define name="BODY_TO_IMU_THETA" value="RadOfDeg( 0. )"/> | |
<define name="BODY_TO_IMU_PSI" value="RadOfDeg( 90. )"/> | |
</section> | |
<section name="AUTOPILOT"> | |
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/> | |
<define name="MODE_AUTO1" value="AP_MODE_HOVER_DIRECT"/> | |
<define name="MODE_AUTO2" value="AP_MODE_ATTITUDE_Z_HOLD"/> | |
</section> | |
<section name="BAT"> | |
<define name="CATASTROPHIC_BAT_LEVEL" value="9.8" unit="V"/> | |
</section> | |
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_"> | |
<define name="SP_MAX_P" value="10000"/> | |
<define name="SP_MAX_Q" value="10000"/> | |
<define name="SP_MAX_R" value="10000"/> | |
<define name="GAIN_P" value="-300"/> | |
<define name="GAIN_Q" value="-300"/> | |
<define name="GAIN_R" value="-350"/> | |
</section> | |
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_"> | |
<!-- setpoints --> | |
<define name="SP_MAX_PHI" value="RadOfDeg(45.)"/> | |
<define name="SP_MAX_THETA" value="RadOfDeg(45.)"/> | |
<define name="SP_MAX_PSI" value="RadOfDeg(45.)"/> | |
<define name="SP_MAX_R" value="RadOfDeg(90.)"/> | |
<define name="SP_MAX_Q" value="RadOfDeg(90.)"/> | |
<define name="SP_MAX_P" value="RadOfDeg(90.)"/> | |
<define name="DEADBAND_R" value="150"/> | |
<define name="DEADBAND_A" value="150"/> | |
<!-- reference --> | |
<!--YAW--> | |
<define name="REF_OMEGA_R" value="RadOfDeg(600)"/> | |
<define name="REF_ZETA_R" value="0.90"/> | |
<define name="REF_MAX_R" value="RadOfDeg(400.)"/> | |
<define name="REF_MAX_RDOT" value="RadOfDeg(8000.)"/> | |
<!--PITCH--> | |
<define name="REF_OMEGA_Q" value="RadOfDeg(800)"/> | |
<define name="REF_ZETA_Q" value="0.90"/> | |
<define name="REF_MAX_Q" value="RadOfDeg(500.)"/> | |
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/> | |
<!--ROLL--> | |
<define name="REF_OMEGA_P" value="RadOfDeg(800)"/> | |
<define name="REF_ZETA_P" value="0.90"/> | |
<define name="REF_MAX_P" value="RadOfDeg(500.)"/> | |
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/> | |
<!-- feedback --> | |
<!--PITCH--> | |
<define name="THETA_PGAIN" value="-600"/> | |
<define name="THETA_DGAIN" value="-500"/> | |
<define name="THETA_IGAIN" value="-20"/> | |
<!--ROLL--> | |
<define name="PHI_PGAIN" value="-600"/> | |
<define name="PHI_DGAIN" value="-500"/> | |
<define name="PHI_IGAIN" value="-20"/> | |
<!--YAW--> | |
<define name="PSI_PGAIN" value="-2000"/> | |
<define name="PSI_DGAIN" value="-470"/> | |
<define name="PSI_IGAIN" value="-100"/> | |
<!-- feedforward --> | |
<define name="THETA_DDGAIN" value=" 200"/> | |
<define name="PHI_DDGAIN" value=" 200"/> | |
<define name="PSI_DDGAIN" value=" 200"/> | |
</section> | |
<section name="INS" prefix="INS_"> | |
<define name="BARO_SENS" value="24.0" 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="HOVER_KP" value="-150"/> | |
<define name="HOVER_KD" value="-100"/> | |
<define name="HOVER_KI" value="-40"/> | |
<!-- 1.5m/s for full stick : BOOZ_SPEED_I_OF_F(1.5) / (MAX_PPRZ/2) --> | |
<define name="RC_CLIMB_COEF" value="163"/> | |
<!-- BOOZ_SPEED_I_OF_F(1.5) * 20% --> | |
<define name="RC_CLIMB_DEAD_BAND" value="160000"/> | |
<define name="INV_M" value="0.21"/> | |
</section> | |
<!-- AHRS flags de interesse? | |
AHRS_PROPAGATE_LOW_PASS_RATES : apply a low pass filter on rotational velocity | |
AHRS_MAG_UPDATE_YAW_ONLY : use mag to update yaw only | |
--> | |
<section name="AHRS" prefix="AHRS_"> | |
<define name="PROPAGATE_FREQUENCY" value="512"/> | |
<define name="AHRS_MAG_UPDATE_YAW_ONLY"/> | |
<!-- valores para porto alegre/RS/Brasil --> | |
<define name="H_X" value=" 0.75127"/> | |
<define name="H_Y" value=" 0.21477"/> | |
<define name="H_Z" value=" 0.62406"/> | |
</section> | |
<section name="GUIDANCE_H" prefix="GUIDANCE_H_"> | |
<define name="PGAIN" value="-5"/> | |
<define name="DGAIN" value="-10"/> | |
<define name="IGAIN" value="-1"/> | |
</section> | |
<section name="SIMULATOR" prefix="NPS_"> | |
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/> | |
<define name="INITIAL_CONDITITONS" value=""reset00""/> | |
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/> | |
</section> | |
<firmware name="rotorcraft"> | |
<target name="ap" board="lisa_m_1.0"> | |
<subsystem name="radio_control" type="spektrum"/> | |
<subsystem name="actuators" type="pwm_supervision"/> | |
<subsystem name="telemetry" type="transparent"/> | |
<!-- <subsystem name="ins" type="hff"> | |
<define name="GPS_LAG=0.2"/> | |
</subsystem> --> | |
<!-- | |
<define name="USE_ADAPT_HOVER"/> | |
<define name="GUIDANCE_H_USE_REF"/> | |
--> | |
<define name="SERVO_HZ" value="400"/> | |
<define name="SERVO_HZ_SECONDARY" value="40"/> | |
<define name="RADIO_MODE" value="RADIO_AUX1"/> | |
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/> | |
<define name="RADIO_CONTROL_SPEKTRUM_SIGNS" value="\{1,1,-1,1,-1,-1,-1,1,1,1,1,1\}"/> | |
<define name="RADIO_CONTROL_SPEKTRUM_SECONDARY_PORT" value="UART5"/> | |
<define name="OVERRIDE_UART5_IRQ_HANDLER"/> | |
</target> | |
<target name="sim" board="pc"> | |
<subsystem name="fdm" type="nps"/> | |
<subsystem name="radio_control" type="ppm"/> | |
<subsystem name="actuators" type="mkk"> | |
</subsystem> | |
</target> | |
<subsystem name="imu" type="aspirin_v1.5"/> | |
<subsystem name="gps" type="ublox"> | |
<configure name="GPS_BAUD" value="B57600"/> | |
<!-- <configure name="GPS_PORT" value="UART0"/> | |
<configure name="GPS_LED" value="2"/>--> | |
</subsystem> | |
<!-- | |
<subsystem name="stabilization" type="quaternion"/> | |
<subsystem name="ahrs" type="int_cmpl_quat"/> work as quadshot | |
--> | |
<subsystem name="stabilization" type="euler"/> | |
<subsystem name="ahrs" type="int_cmpl_euler"/> | |
</firmware> | |
<firmware name="lisa_m_test_progs"> | |
<target name="test_led" board="lisa_m_1.0"/> | |
<target name="test_uart_lisam" board="lisa_m_1.0"/> | |
<target name="test_servos" board="lisa_m_1.0"/> | |
<target name="test_telemetry" board="lisa_m_1.0"/> | |
<target name="test_imu_aspirin" board="lisa_m_1.0"/> | |
<target name="test_rc_spektrum" board="lisa_m_1.0"/> | |
<target name="test_baro" board="lisa_m_1.0"/> | |
<!-- <target name="test_imu" board="lisa_m_1.0"/> | |
<target name="test_rc_ppm" board="lisa_m_1.0"/> | |
<target name="test_adc" board="lisa_m_1.0"/> | |
<target name="test_hmc5843" board="lisa_m_1.0"/> | |
<target name="test_itg3200" board="lisa_m_1.0"/> | |
<target name="test_adxl345" board="lisa_m_1.0"/> | |
<target name="test_esc_mkk_simple" board="lisa_m_1.0"/> | |
<target name="test_esc_asctecv1_simple" board="lisa_m_1.0"/> | |
<target name="test_actuators_mkk" board="lisa_m_1.0"/> | |
<target name="test_actuators_asctecv1" board="lisa_m_1.0"/>--> | |
</firmware> | |
</airframe> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment