paparazzi-devel
[Top][All Lists]
Advanced

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

Re: [Paparazzi-devel] Configuration for apogee quadrotor.


From: Sergey Krukowski
Subject: Re: [Paparazzi-devel] Configuration for apogee quadrotor.
Date: Sat, 29 Nov 2014 17:47:36 +0100
User-agent: Opera Mail/11.61 (Win32)

Hi!

Are you sure your default PWM calibration is ok for you ESCs?
I would say, that:
min="800" neutral="1000" max="1900"
is a bit too low, the motors could really not start at all after arming.
For example, using SimonK ESCs the proper working default calibration is:
min="1000" neutral="1063" max="1863"

Best regards,
Sergey

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.

_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel


--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/



reply via email to

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