paparazzi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Paparazzi-devel] Configuration for apogee quadrotor.


From: liangchao
Subject: [Paparazzi-devel] Configuration for apogee quadrotor.
Date: Sat, 29 Nov 2014 07:54:36 -0700 (MST)

apogee_lc.xml <http://lists.paparazziuav.org/file/n16439/apogee_lc.xml>  

Hi,

I am working on a apogee board, which in a quadrotor airframe. The current
config file does not work well. Cause, the there are only two motor working
while the throttle open. But the motors have reflection while the joystick
operates. 

I really appreciate anyone would let me know which part of the config relate
to the problem.

Sorry for the copy and paste.

<!DOCTYPE airframe SYSTEM &quot;../../airframe.dtd&quot;>

<airframe name="apogee">
  <firmware name="rotorcraft">
    <define name="USE_I2C1"/>
    <define name="USE_I2C2"/>
    <define name="USE_BARO_BOARD"/>
    <target name="ap" board="apogee_1.0">
      
    </target>
    <target name="nps" board="pc">
      <subsystem name="fdm" type="jsbsim"/>
    </target>

    <subsystem name="motor_mixing"/>
    <subsystem name="actuators" type="pwm">
      <define name="SERVO_HZ" value="400"/>
    </subsystem>

    <subsystem name="radio_control" type="datalink"/>
    <subsystem name="telemetry"     type="transparent"/>
    <subsystem name="sdlog"/>

    <subsystem name="imu"           type="apogee"/>
    
    <subsystem name="stabilization" type="int_quat"/>
    <subsystem name="ahrs"          type="int_cmpl_quat">
      <define name="USE_MAGNETOMETER"/>
      <define name="MODULE_mag_ak8975_UPDATE_AHRS"/>
    </subsystem>
    
    <subsystem name="ins"/>
  </firmware>

  <servos driver="Pwm">
    <servo name="TOP_LEFT"     no="0" min="800" neutral="1000" max="1900"/>
    <servo name="TOP_RIGHT"    no="1" min="800" neutral="1000" max="1900"/>
    <servo name="BOTTOM_LEFT"  no="2" min="800" neutral="1000" max="1900"/>
    <servo name="BOTTOM_RIGHT" no="3" min="800" neutral="1000" max="1900"/>
  </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>

  <section name="MIXING" prefix="MOTOR_MIXING_">
    <define name="TRIM_ROLL"  value="0"/>
    <define name="TRIM_PITCH" value="0"/>
    <define name="TRIM_YAW"   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>

  <command_laws>
    <call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
    <set servo="TOP_LEFT"      value="motor_mixing.commands[0]"/>
    <set servo="TOP_RIGHT"     value="motor_mixing.commands[1]"/>
    <set servo="BOTTOM_LEFT"   value="motor_mixing.commands[2]"/>
    <set servo="BOTTOM_RIGHT"  value="motor_mixing.commands[3]"/>
  </command_laws>

  <section name="IMU" prefix="IMU_">
    <define name="BODY_TO_IMU_PHI"   value="0.0" unit="deg"/>
    <define name="BODY_TO_IMU_THETA" value="0.0" unit="deg"/>
    <define name="BODY_TO_IMU_PSI"   value="0.0" unit="deg"/>

    <define name="ACCEL_X_NEUTRAL" value="0"/>
    <define name="ACCEL_Y_NEUTRAL" value="0"/>
    <define name="ACCEL_Z_NEUTRAL" value="0"/>
    <define name="ACCEL_X_SENS" value="2.46053275899" integer="16"/>
    <define name="ACCEL_Y_SENS" value="2.45567151099" integer="16"/>
    <define name="ACCEL_Z_SENS" value="2.44223710019" integer="16"/>

    <define name="GYRO_P_NEUTRAL" value="0"/>
    <define name="GYRO_Q_NEUTRAL" value="0"/>
    <define name="GYRO_R_NEUTRAL" value="0"/>
    <define name="GYRO_P_SENS" value="2.17953" integer="16"/>
    <define name="GYRO_Q_SENS" value="2.17953" integer="16"/>
    <define name="GYRO_R_SENS" value="2.17953" integer="16"/>

    <define name="MAG_X_SIGN" value="1"/>
    <define name="MAG_Y_SIGN" value="1"/>
    <define name="MAG_Z_SIGN" value="1"/>

    <define name="MAG_X_NEUTRAL" value="1264"/>
    <define name="MAG_Y_NEUTRAL" value="-1258"/>
    <define name="MAG_Z_NEUTRAL" value="1413"/>
    <define name="MAG_X_SENS" value="1.03006422406" integer="16"/>
    <define name="MAG_Y_SENS" value="0.938977337564" integer="16"/>
    <define name="MAG_Z_SENS" value="1.14818205257" integer="16"/>
  </section>

  
  
  <section name="AHRS" prefix="AHRS_">
    <define name="H_X" value="0.516264"/>
    <define name="H_Y" value="-0.0602113"/>
    <define name="H_Z" value="0.854311"/>
  </section>

  <section name="INS" prefix="INS_">
  </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="DEADBAND_P" value="20"/>
    <define name="DEADBAND_Q" value="20"/>
    <define name="DEADBAND_R" value="200"/>
    <define name="REF_TAU" value="4"/>

    
    <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"/>

    
    <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_">
    <define name="SP_MAX_PHI"          value="45" unit="deg"/>
    <define name="SP_MAX_THETA"        value="45" unit="deg"/>
    <define name="SP_MAX_R"            value="90" unit="deg/s"/>
    <define name="SP_PSI_DELTA_LIMIT"  value="45" unit="deg"/>

    <define name="DEADBAND_A"          value="0"/>
    <define name="DEADBAND_E"          value="0"/>
    <define name="DEADBAND_R"          value="250"/>

    
    <define name="REF_OMEGA_P"  value="800" unit="deg/s"/>
    <define name="REF_ZETA_P"   value="0.85"/>
    <define name="REF_MAX_P"    value="400." unit="deg/s"/>
    <define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>

    <define name="REF_OMEGA_Q"  value="800" unit="deg/s"/>
    <define name="REF_ZETA_Q"   value="0.85"/>
    <define name="REF_MAX_Q"    value="400." unit="deg/s"/>
    <define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>

    <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.)"/>

    
    <define name="PHI_PGAIN"  value="507"/>
    <define name="PHI_DGAIN"  value="274"/>
    <define name="PHI_IGAIN"  value="79"/>

    <define name="THETA_PGAIN"  value="507"/>
    <define name="THETA_DGAIN"  value="274"/>
    <define name="THETA_IGAIN"  value="79"/>

    <define name="PSI_PGAIN"  value="300"/>
    <define name="PSI_DGAIN"  value="160"/>
    <define name="PSI_IGAIN"  value="50"/>

    
    <define name="PHI_DDGAIN"   value="106"/>
    <define name="THETA_DDGAIN" value="106"/>
    <define name="PSI_DDGAIN"   value="106"/>
  </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="80"/>
    <define name="HOVER_KI"    value="20"/>
    
  </section>

  <section name="GUIDANCE_H" prefix="GUIDANCE_H_">
    <define name="MAX_BANK" value="20" unit="deg"/>
    <define name="PGAIN" value="100"/>
    <define name="DGAIN" value="100"/>
    <define name="IGAIN" value="0"/>
  </section>

  <section name="SIMULATOR" prefix="NPS_">
    <define name="ACTUATOR_NAMES"  value="{&quot;ne_motor&quot;,
&quot;se_motor&quot;, &quot;sw_motor&quot;, &quot;nw_motor&quot;}"/>
    <define name="JSBSIM_INIT" value="&quot;reset00&quot;"/>
    <define name="JSBSIM_MODEL" value="&quot;simple_x_quad&quot;"/>
    <define name="SENSORS_PARAMS"
value="&quot;nps_sensors_params_default.h&quot;"/>
    
    <define name="JS_AXIS_MODE" value="4"/>
  </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_NAV"/>
  </section>

  <section name="BAT">
    <define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
    <define name="CRITIC_BAT_LEVEL" value="9.6" unit="V"/>
    <define name="LOW_BAT_LEVEL" value="11.1" unit="V"/>
    <define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
  </section>
</airframe>




--
View this message in context: 
http://lists.paparazziuav.org/Configuration-for-apogee-quadrotor-tp16439.html
Sent from the paparazzi-devel mailing list archive at Nabble.com.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]