paparazzi-devel
[Top][All Lists]
Advanced

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

Re: [Paparazzi-devel] Rotorcraft - starting motors


From: Felix Ruess
Subject: Re: [Paparazzi-devel] Rotorcraft - starting motors
Date: Thu, 11 Oct 2012 12:02:30 +0200

Hi Cedric,

pwm_supervision _does_ set all specified servos. This is e.g. used on the quadshot for the elevons.
Note however that the rc_commands section is only used in the fixedwing firmware.
And since your CAM_x commands are set nowhere else, they just stay at neutral...
You could define a mixer/scaling to map the normal roll command to your servo deflection, something like:
<command_laws>
  <let var="cam_roll"            value="@ROLL  * 0.8"/>
  <set servo="CAM_TILT"  value="$cam_roll"/>
</command_laws>

Also note that the servos 0 to SUPERVISION_NB_MOTOR are always set from the supervision commands.
So you don't need to specify them in the command_laws (and if you do set some servos with one of these numbers, it will get overwritten...)

Finally the SERVO_HZ_SECONDARY sets the frequency for the pwm channels 5-8.
So in case of your hexa this is not what you want as two of your motor controllers will only be update at that frequency.
Either make sure that your servos can deal with 400Hz updates, or change the code in actuators_pwm_arch.c to be able to configure the frequency for servos 7 and 8 separately.

Btw, we are currently reworking the actuators subsystems in master in order to provide more flexible combinations an have the same subsystems for fixedwings and rotorcrafts.

Cheers, Felix

On Thu, Oct 11, 2012 at 9:40 AM, Cédric Marzer (MRSA) <address@hidden> wrote:
Apparently the pwm_supervision subsystem doesn't take care of updating the
additional servos, it only updates the motors.
In Esden's branch (
https://github.com/psinha/paparazzi/commit/8b00c2d498d62c43e706705d745bf6482
5efc134
), there is an additional subsystem to update the servo
(camera_mount). I will try to do something similar but for 2 servos instead
of one and I will keep you informed.
Cédric

-----Message d'origine-----
De : paparazzi-devel-bounces+cedric.marzer=address@hidden
[mailto:paparazzi-devel-bounces+cedric.marzer=address@hidden] De la part
de Cedric Marzer
Envoyé : mardi 9 octobre 2012 22:50
À : address@hidden
Objet : Re: [Paparazzi-devel] Rotorcraft - starting motors

I still have some problems to make the two servos of my gimbal work.
Basically I get a servo signal out of the lisa autopilot (1500 ms verified
on the scope), but it is the neutral value and I can't make it change with
my transmitter pots as it should.
I join my airframe file, my radio file and the generated airframe.h in case
someone would have an idea… The next step will be to stabilize the gimbal.
Is there a way to define the servo position based on the pitch or the roll
directly in the airframe file or should a write a new module ? (the cam
module doesn't do exactly what I want).
Thanks for your help
Cédric

<airframe name="mzrhexa">
   <firmware name="rotorcraft">
       <target name="sim" board="pc">
           <subsystem name="fdm"   type="nps"/>
       </target>
       <target name="ap" board="lisa_m_2.0"/>
           <!--define name="GUIDANCE_H_USE_REF"/-->
           <!--define name="USE_THROTTLE_FOR_MOTOR_ARMING"/-->
           <!--define name="USE_KILL_SWITCH_FOR_MOTOR_ARMING"/-->
           <define name="USE_SERVOS_7AND8"/>
           <define name="SERVO_HZ" value="400"/>
           <define name="SERVO_HZ_SECONDARY" value="40"/>
           <subsystem name="radio_control" type="ppm"/>
           <subsystem name="telemetry"     type="transparent">
               <configure name="MODEM_BAUD"  value="B57600"/>
               <configure name="MODEM_PORT"  value="UART2"/>
           </subsystem>
           <subsystem name="actuators"
type="pwm_supervision">
           </subsystem>
           <subsystem name="imu"           type="aspirin_v2.1"/>
           <subsystem name="gps"           type="ublox"/>
           <subsystem name="ahrs"          type="int_cmpl_quat"/>
           <subsystem name="stabilization" type="int_quat"/>
           <configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
   </firmware>
    <servos min="0" neutral="0" max="0xff">
   <servo name="FRONT_RIGHT"   no="0" min="1000" neutral="1000"
max="2000"/>
   <servo name="FRONT_LEFT"  no="1" min="1000" neutral="1000"
max="2000"/>
   <servo name="LEFT"        no="2" min="1000" neutral="1000"
max="2000"/>
   <servo name="BACK_LEFT"   no="3" min="1000" neutral="1000"
max="2000"/>
   <servo name="BACK_RIGHT"    no="4" min="1000" neutral="1000"
max="2000"/>
   <servo name="RIGHT"         no="5" min="1000" neutral="1000"
max="2000"/>
   <servo name="CAM_TILT"         no="6" min="1000" neutral="1500"
max="2000"/>
   <servo name="CAM_ROLL"         no="7" min="1000" neutral="1500"
max="2000"/>
 </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"/>
       <axis name="CAM_TILT"    failsafe_value="0"/>
       <axis name="CAM_ROLL" failsafe_value="0"/>
   </commands>
 <rc_commands>
   <set command="CAM_TILT" value="@VRC"/>
   <set command="CAM_ROLL" value="@VRA"/>
 </rc_commands>
   <command_laws>
       <!-- command_laws is needed for pwm_supervision -->
       <!-- but can be empty if no additional servos are used -->
       <!--set servo="FRONT_RIGHT"   value="0"/>
       <set servo="FRONT_LEFT"  value="1"/>
       <set servo="LEFT"        value="2"/>
       <set servo="BACK_LEFT"   value="3"/>
       <set servo="BACK_RIGHT"    value="4"/>
       <set servo="RIGHT"         value="5"/-->
       <set servo="CAM_TILT"  value="@CAM_TILT"/>
       <set servo="CAM_ROLL" value="@CAM_ROLL"/>
   </command_laws>
   <section name="SUPERVISION" prefix="SUPERVISION_">
       <define name="STOP_MOTOR" value="900"/>
       <define name="MIN_MOTOR" value="1200" />
       <define name="MAX_MOTOR" value="2100" />
       <define name="TRIM_A" value="0" />
       <define name="TRIM_E" value="0" />
       <define name="TRIM_R" value="0" />
       <define name="NB_MOTOR" value="6" />
       <define name="SCALE" value="256"/>
       <define name="ROLL_COEF"   value="{  -128, 128, 256, 128,  -128,
-256}" />
       <define name="PITCH_COEF"  value="{ 256, 256,  0, -256, -256, 0}" />
       <define name="YAW_COEF"    value="{ 256, -256, 256, -256,  256,
-256}" />
       <define name="THRUST_COEF" value="{ 256,  256,  256,  256,  256,
256}"/>
   </section>
   <section name="IMU" prefix="IMU_">
       <define name="ACCEL_X_NEUTRAL" value="11"/>
       <define name="ACCEL_Y_NEUTRAL" value="11"/>
       <define name="ACCEL_Z_NEUTRAL" value="-25"/>
       <!-- replace this with your own calibration -->
       <define name="MAG_X_NEUTRAL" value="-152"/>
       <define name="MAG_Y_NEUTRAL" value="-51"/>
       <define name="MAG_Z_NEUTRAL" value="10"/>
       <define name="MAG_X_SENS" value="4.04042714046" integer="16"/>
       <define name="MAG_Y_SENS" value="3.95350991963" integer="16"/>
       <define name="MAG_Z_SENS" value="3.83055079257" integer="16"/>
       <define name="BODY_TO_IMU_PHI"   value="0." unit="deg"/>
       <define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
       <define name="BODY_TO_IMU_PSI"   value="0." unit="deg"/>
   </section>
   <section name="AHRS" prefix="AHRS_">
       <define name="H_X" value="0.3770441"/>
       <define name="H_Y" value="0.0193986"/>
       <define name="H_Z" value="0.9259921"/>
   </section>
   <section name="INS" prefix="INS_">
       <define name="BARO_SENS" value="3.3" integer="16"/>
   </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="20"/>
       <define name="DEADBAND_Q" value="20"/>
       <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="90." unit="deg/s"/>
       <define name="DEADBAND_A"     value="0"/>
       <define name="DEADBAND_E"     value="0"/>
       <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="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.)"/>
       <!-- feedback -->
       <define name="PHI_PGAIN"  value="1000"/>
       <define name="PHI_DGAIN"  value="400"/>
       <define name="PHI_IGAIN"  value="200"/>
       <define name="THETA_PGAIN"  value="1000"/>
       <define name="THETA_DGAIN"  value="400"/>
       <define name="THETA_IGAIN"  value="200"/>
       <define name="PSI_PGAIN"  value="500"/>
       <define name="PSI_DGAIN"  value="300"/>
       <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="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"/>
       <!-- 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"/>
       <!-- NOMINAL_HOVER_THROTTLE sets a fixed value instead of the
adaptive estimation -->
       <!--define name="NOMINAL_HOVER_THROTTLE" value="0.5"/-->
   </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;front_motor&quot;,
&quot;back_motor&quot;, &quot;right_motor&quot;, &quot;left_motor&quot;}"/>
       <define name="INITIAL_CONDITITONS" value="&quot;reset00&quot;"/>
       <define name="SENSORS_PARAMS"
value="&quot;nps_sensors_params_default.h&quot;"/>
   </section>
   <section name="AUTOPILOT">
       <define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
       <define name="MODE_AUTO1"  value="AP_MODE_ATTITUDE_Z_HOLD"/>
       <define name="MODE_AUTO2"  value="AP_MODE_HOVER_Z_HOLD"/>
   </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="9.7" unit="V"/>
       <define name="MAX_BAT_LEVEL" value="12.6" unit="V"/>
   </section>
   <modules main_freq="512">
       <load name="gps_ubx_ucenter.xml"/>
   </modules>
</airframe>

<!DOCTYPE radio SYSTEM "radio.dtd">
 <radio name="T9cap_mzr" data_min="900" data_max="2100" sync_min="5000"
sync_max="15000" pulse_type="POSITIVE">
 <channel ctl="aileron_stick" function="ROLL" min="1000" neutral="1500"
max="2000" average="0"/>
 <channel ctl="elevator_stick" function="PITCH" min="1000"
neutral="1500" max="2000" average="0"/>
 <channel ctl="throttle_stick" function="THROTTLE" min="1800"
neutral="1800" max="1200" average="0"/>  <channel ctl="rudder_stick"
function="YAW" min="1100" neutral="1500"
max="1900" average="0"/>
 <channel ctl="switch_G" function="KILL_SWITCH" min="2000"
neutral="1500" max="1000" average="0"/>
 <channel ctl="VRA" function="VRA" min="1000" neutral="1500" max="2000"
average="0"/>
 <channel ctl="VRC" function="VRC" min="1000" neutral="1500" max="2000"
average="0"/>
 <channel ctl="switch_E" function="MODE" min="2000" neutral="1500"
max="1000" average="0"/>
</radio>

/* This file has been generated
from /home/marzer/paparazzi/conf/airframes/mzrhexa.xml */
/* Please DO NOT EDIT */

#ifndef AIRFRAME_H
#define AIRFRAME_H

#define AIRFRAME_NAME "MZRHEXA"
#define AC_ID 3
#define MD5SUM ((uint8_t*)"\277\014\364\146\010\335\357\002\144\070\360
\272\262\125\321\232")

#define SERVOS_NB 8

#define SERVO_FRONT_RIGHT 0
#define SERVO_FRONT_RIGHT_NEUTRAL 1000
#define SERVO_FRONT_RIGHT_TRAVEL_UP 0.104166666667 #define
SERVO_FRONT_RIGHT_TRAVEL_DOWN 0 #define SERVO_FRONT_RIGHT_MAX 2000 #define
SERVO_FRONT_RIGHT_MIN 1000

#define SERVO_FRONT_LEFT 1
#define SERVO_FRONT_LEFT_NEUTRAL 1000
#define SERVO_FRONT_LEFT_TRAVEL_UP 0.104166666667 #define
SERVO_FRONT_LEFT_TRAVEL_DOWN 0 #define SERVO_FRONT_LEFT_MAX 2000 #define
SERVO_FRONT_LEFT_MIN 1000

#define SERVO_LEFT 2
#define SERVO_LEFT_NEUTRAL 1000
#define SERVO_LEFT_TRAVEL_UP 0.104166666667 #define SERVO_LEFT_TRAVEL_DOWN 0
#define SERVO_LEFT_MAX 2000 #define SERVO_LEFT_MIN 1000

#define SERVO_BACK_LEFT 3
#define SERVO_BACK_LEFT_NEUTRAL 1000
#define SERVO_BACK_LEFT_TRAVEL_UP 0.104166666667 #define
SERVO_BACK_LEFT_TRAVEL_DOWN 0 #define SERVO_BACK_LEFT_MAX 2000 #define
SERVO_BACK_LEFT_MIN 1000

#define SERVO_BACK_RIGHT 4
#define SERVO_BACK_RIGHT_NEUTRAL 1000
#define SERVO_BACK_RIGHT_TRAVEL_UP 0.104166666667 #define
SERVO_BACK_RIGHT_TRAVEL_DOWN 0 #define SERVO_BACK_RIGHT_MAX 2000 #define
SERVO_BACK_RIGHT_MIN 1000

#define SERVO_RIGHT 5
#define SERVO_RIGHT_NEUTRAL 1000
#define SERVO_RIGHT_TRAVEL_UP 0.104166666667 #define SERVO_RIGHT_TRAVEL_DOWN
0 #define SERVO_RIGHT_MAX 2000 #define SERVO_RIGHT_MIN 1000

#define SERVO_CAM_TILT 6
#define SERVO_CAM_TILT_NEUTRAL 1500
#define SERVO_CAM_TILT_TRAVEL_UP 0.0520833333333 #define
SERVO_CAM_TILT_TRAVEL_DOWN 0.0520833333333 #define SERVO_CAM_TILT_MAX 2000
#define SERVO_CAM_TILT_MIN 1000

#define SERVO_CAM_ROLL 7
#define SERVO_CAM_ROLL_NEUTRAL 1500
#define SERVO_CAM_ROLL_TRAVEL_UP 0.0520833333333 #define
SERVO_CAM_ROLL_TRAVEL_DOWN 0.0520833333333 #define SERVO_CAM_ROLL_MAX 2000
#define SERVO_CAM_ROLL_MIN 1000


#define COMMAND_PITCH 0
#define COMMAND_ROLL 1
#define COMMAND_YAW 2
#define COMMAND_THRUST 3
#define COMMAND_CAM_TILT 4
#define COMMAND_CAM_ROLL 5
#define COMMANDS_NB 6
#define COMMANDS_FAILSAFE {0,0,0,0,0,0}


#define SetCommandsFromRC(_commands_array, _rc_array) { \
_commands_array[COMMAND_CAM_TILT] = _rc_array[RADIO_VRC];\
_commands_array[COMMAND_CAM_ROLL] = _rc_array[RADIO_VRA];\ }

#define SetActuatorsFromCommands(values) { \  uint32_t servo_value;\  float
command_value;\  command_value = values[COMMAND_CAM_TILT];\  command_value
*= command_value>0 ? SERVO_CAM_TILT_TRAVEL_UP :
SERVO_CAM_TILT_TRAVEL_DOWN;\
 servo_value = SERVO_CAM_TILT_NEUTRAL + (int32_t)(command_value);\
actuators[SERVO_CAM_TILT] = ChopServo(servo_value, SERVO_CAM_TILT_MIN,
SERVO_CAM_TILT_MAX);\ \
 Actuator(SERVO_CAM_TILT) =
SERVOS_TICS_OF_USEC(actuators[SERVO_CAM_TILT]);\
\
 command_value = values[COMMAND_CAM_ROLL];\  command_value *=
command_value>0 ? SERVO_CAM_ROLL_TRAVEL_UP :
SERVO_CAM_ROLL_TRAVEL_DOWN;\
 servo_value = SERVO_CAM_ROLL_NEUTRAL + (int32_t)(command_value);\
actuators[SERVO_CAM_ROLL] = ChopServo(servo_value, SERVO_CAM_ROLL_MIN,
SERVO_CAM_ROLL_MAX);\ \
 Actuator(SERVO_CAM_ROLL) =
SERVOS_TICS_OF_USEC(actuators[SERVO_CAM_ROLL]);\
\
 ActuatorsCommit();\
}

#define AllActuatorsInit() { \
 ActuatorsInit();\
}

#define SECTION_SUPERVISION 1
#define SUPERVISION_STOP_MOTOR 900
#define SUPERVISION_MIN_MOTOR 1200
#define SUPERVISION_MAX_MOTOR 2100
#define SUPERVISION_TRIM_A 0
#define SUPERVISION_TRIM_E 0
#define SUPERVISION_TRIM_R 0
#define SUPERVISION_NB_MOTOR 6
#define SUPERVISION_SCALE 256
#define SUPERVISION_ROLL_COEF {  -128, 128, 256, 128,  -128,  -256} #define
SUPERVISION_PITCH_COEF { 256, 256,  0, -256, -256, 0} #define
SUPERVISION_YAW_COEF { 256, -256, 256, -256,  256, -256} #define
SUPERVISION_THRUST_COEF { 256,  256,  256,  256,  256,  256}

#define SECTION_IMU 1
#define IMU_ACCEL_X_NEUTRAL 11
#define IMU_ACCEL_Y_NEUTRAL 11
#define IMU_ACCEL_Z_NEUTRAL -25
#define IMU_MAG_X_NEUTRAL -152
#define IMU_MAG_Y_NEUTRAL -51
#define IMU_MAG_Z_NEUTRAL 10
#define IMU_MAG_X_SENS 4.04042714046
#define IMU_MAG_X_SENS_NUM 5297
#define IMU_MAG_X_SENS_DEN 1311
#define IMU_MAG_Y_SENS 3.95350991963
#define IMU_MAG_Y_SENS_NUM 51194
#define IMU_MAG_Y_SENS_DEN 12949
#define IMU_MAG_Z_SENS 3.83055079257
#define IMU_MAG_Z_SENS_NUM 24550
#define IMU_MAG_Z_SENS_DEN 6409
#define IMU_BODY_TO_IMU_PHI 0.
#define IMU_BODY_TO_IMU_THETA 0.
#define IMU_BODY_TO_IMU_PSI 0.

#define SECTION_AHRS 1
#define AHRS_H_X 0.3770441
#define AHRS_H_Y 0.0193986
#define AHRS_H_Z 0.9259921

#define SECTION_INS 1
#define INS_BARO_SENS 3.3
#define INS_BARO_SENS_NUM 33
#define INS_BARO_SENS_DEN 10

#define SECTION_STABILIZATION_RATE 1
#define STABILIZATION_RATE_SP_MAX_P 10000 #define
STABILIZATION_RATE_SP_MAX_Q 10000 #define STABILIZATION_RATE_SP_MAX_R 10000
#define STABILIZATION_RATE_DEADBAND_P 20 #define
STABILIZATION_RATE_DEADBAND_Q 20 #define STABILIZATION_RATE_DEADBAND_R 200
#define STABILIZATION_RATE_REF_TAU 4 #define STABILIZATION_RATE_GAIN_P 400
#define STABILIZATION_RATE_GAIN_Q 400 #define STABILIZATION_RATE_GAIN_R 350
#define STABILIZATION_RATE_IGAIN_P 75 #define STABILIZATION_RATE_IGAIN_Q 75
#define STABILIZATION_RATE_IGAIN_R 50 #define STABILIZATION_RATE_DDGAIN_P
300 #define STABILIZATION_RATE_DDGAIN_Q 300 #define
STABILIZATION_RATE_DDGAIN_R 300

#define SECTION_STABILIZATION_ATTITUDE 1 #define
STABILIZATION_ATTITUDE_SP_MAX_PHI 0.7853981625 #define
STABILIZATION_ATTITUDE_SP_MAX_THETA 0.7853981625 #define
STABILIZATION_ATTITUDE_SP_MAX_R 1.570796325 #define
STABILIZATION_ATTITUDE_DEADBAND_A 0 #define
STABILIZATION_ATTITUDE_DEADBAND_E 0 #define
STABILIZATION_ATTITUDE_DEADBAND_R 250 #define
STABILIZATION_ATTITUDE_REF_OMEGA_P 13.962634 #define
STABILIZATION_ATTITUDE_REF_ZETA_P 0.85 #define
STABILIZATION_ATTITUDE_REF_MAX_P 6.981317 #define
STABILIZATION_ATTITUDE_REF_MAX_PDOT RadOfDeg(8000.) #define
STABILIZATION_ATTITUDE_REF_OMEGA_Q 13.962634 #define
STABILIZATION_ATTITUDE_REF_ZETA_Q 0.85 #define
STABILIZATION_ATTITUDE_REF_MAX_Q 6.981317 #define
STABILIZATION_ATTITUDE_REF_MAX_QDOT RadOfDeg(8000.) #define
STABILIZATION_ATTITUDE_REF_OMEGA_R 8.72664625 #define
STABILIZATION_ATTITUDE_REF_ZETA_R 0.85 #define
STABILIZATION_ATTITUDE_REF_MAX_R 3.14159265 #define
STABILIZATION_ATTITUDE_REF_MAX_RDOT RadOfDeg(1800.) #define
STABILIZATION_ATTITUDE_PHI_PGAIN 1000 #define
STABILIZATION_ATTITUDE_PHI_DGAIN 400 #define
STABILIZATION_ATTITUDE_PHI_IGAIN 200 #define
STABILIZATION_ATTITUDE_THETA_PGAIN 1000 #define
STABILIZATION_ATTITUDE_THETA_DGAIN 400 #define
STABILIZATION_ATTITUDE_THETA_IGAIN 200 #define
STABILIZATION_ATTITUDE_PSI_PGAIN 500 #define
STABILIZATION_ATTITUDE_PSI_DGAIN 300 #define
STABILIZATION_ATTITUDE_PSI_IGAIN 10 #define
STABILIZATION_ATTITUDE_PHI_DDGAIN 300 #define
STABILIZATION_ATTITUDE_THETA_DDGAIN 300 #define
STABILIZATION_ATTITUDE_PSI_DDGAIN 300

#define SECTION_GUIDANCE_V 1
#define GUIDANCE_V_MIN_ERR_Z POS_BFP_OF_REAL(-10.) #define
GUIDANCE_V_MAX_ERR_Z POS_BFP_OF_REAL( 10.) #define GUIDANCE_V_MIN_ERR_ZD
SPEED_BFP_OF_REAL(-10.) #define GUIDANCE_V_MAX_ERR_ZD SPEED_BFP_OF_REAL(
10.) #define GUIDANCE_V_MAX_SUM_ERR 2000000 #define GUIDANCE_V_HOVER_KP 150
#define GUIDANCE_V_HOVER_KD 80 #define GUIDANCE_V_HOVER_KI 20 #define
GUIDANCE_V_RC_CLIMB_COEF 163 #define GUIDANCE_V_RC_CLIMB_DEAD_BAND 160000

#define SECTION_GUIDANCE_H 1
#define GUIDANCE_H_MAX_BANK 0.34906585
#define GUIDANCE_H_PGAIN 100
#define GUIDANCE_H_DGAIN 100
#define GUIDANCE_H_IGAIN 0

#define SECTION_SIMULATOR 1
#define NPS_ACTUATOR_NAMES {"front_motor", "back_motor", "right_motor",
"left_motor"} #define NPS_INITIAL_CONDITITONS "reset00"
#define NPS_SENSORS_PARAMS "nps_sensors_params_default.h"

#define SECTION_AUTOPILOT 1
#define MODE_MANUAL AP_MODE_ATTITUDE_DIRECT #define MODE_AUTO1
AP_MODE_ATTITUDE_Z_HOLD #define MODE_AUTO2 AP_MODE_HOVER_Z_HOLD

#define SECTION_BAT 1
#define CATASTROPHIC_BAT_LEVEL 9.3
#define CRITIC_BAT_LEVEL 9.6
#define LOW_BAT_LEVEL 9.7
#define MAX_BAT_LEVEL 12.6


#endif // AIRFRAME_H



Le 8 oct. 2012 à 22:42, Cedric Marzer a écrit :

> OK, the problem was the yaw stick not reaching the extrema. It is working
now.
> My next step is to make my camera stabilization work. I guess I should
look into the cam point module. Has anyone already achieve that ?
>
>


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



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


reply via email to

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