contrast calibration removed

This commit is contained in:
Pascal Brisset
2007-10-13 08:52:51 +00:00
parent cab5ef37d6
commit e885c47b7d
3 changed files with 20 additions and 17 deletions
+1 -5
View File
@@ -54,11 +54,7 @@
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<!-- A supprimer -->
<define name="DEFAULT_CONTRAST" value="200"/>
<define name="RAD_OF_IR_CONTRAST" value="0.75"/>
<define name="RAD_OF_IR_MAX_VALUE" value="0.0045"/>
<define name="RAD_OF_IR_MIN_VALUE" value="0.00075"/>
<define name="RAD_OF_IR_CONTRAST" value="0.75"/>
<linear name="RollOfIrs" arity="2" coeff1="1" coeff2="-1"/>
<linear name="PitchOfIrs" arity="2" coeff1="-0.7" coeff2="-0.7"/>
+11 -6
View File
@@ -139,16 +139,17 @@ float ir_360_vertical_correction;
* Initialize \a adc_buf_channel
*/
void ir_init(void) {
RadOfIrFromContrast(IR_DEFAULT_CONTRAST);
#ifndef SITL
adc_buf_channel(ADC_CHANNEL_IR1, &buf_ir1, ADC_CHANNEL_IR_NB_SAMPLES);
adc_buf_channel(ADC_CHANNEL_IR2, &buf_ir2, ADC_CHANNEL_IR_NB_SAMPLES);
#endif
#ifdef ADC_CHANNEL_IR_TOP
adc_buf_channel(ADC_CHANNEL_IR_TOP, &buf_ir_top, ADC_CHANNEL_IR_NB_SAMPLES);
z_contrast_mode = Z_CONTRAST_DEFAULT;
#else
z_contrast_mode = 0;
RadOfIrFromContrast(IR_DEFAULT_CONTRAST);
#endif
ir_roll_neutral = RadOfDeg(IR_ROLL_NEUTRAL_DEFAULT);
@@ -172,13 +173,14 @@ void ir_init(void) {
ir_estimated_theta_pi_4 = IR_ESTIMATED_THETA_PI_4;
ir_estimated_theta_minus_pi_4 = IR_ESTIMATED_THETA_MINUS_PI_4;
ir_contrast = IR_DEFAULT_CONTRAST;
ir_rad_of_ir = IR_RAD_OF_IR_CONTRAST / IR_DEFAULT_CONTRAST;
ir_360_lateral_correction = IR_360_LATERAL_CORRECTION;
ir_360_longitudinal_correction = IR_360_LONGITUDINAL_CORRECTION;
ir_360_vertical_correction = IR_360_VERTICAL_CORRECTION;
#ifndef ADC_CHANNEL_IR_TOP
ir_contrast = IR_DEFAULT_CONTRAST;
ir_rad_of_ir = IR_RAD_OF_IR_CONTRAST / IR_DEFAULT_CONTRAST;
#endif
}
/** \brief Update \a ir_roll and ir_pitch from ADCs or from simulator
@@ -201,6 +203,10 @@ void ir_update(void) {
/** #else ir_roll set by simulator in sim_ir.c */
}
uint8_t calib_status = NO_CALIB;
#ifndef ADC_CHANNEL_IR_TOP
/** \brief Contrast measurement
* \note <b>Plane must be nose down !</b>
*/
@@ -214,8 +220,6 @@ static void ir_gain_calib(void) {
After, no more calibration is possible */
#define MAX_DELAY_FOR_CALIBRATION 10
uint8_t calib_status = NO_CALIB;
/** \brief Calibrate contrast if paparazzi mode is
* set to auto1 before MAX_DELAY_FOR_CALIBRATION secondes */
/**User must put verticaly the uav (nose bottom) and push
@@ -242,6 +246,7 @@ void ground_calibrate( bool_t triggered ) {
break;
}
}
#endif /* !ADC_CHANNEL_IR_TOP */
#define INIT_WEIGHT 100. /* The number of times the initial value has to be taken */
#define RHO 0.995 /* The higher, the slower the estimation is changing */
+8 -6
View File
@@ -295,17 +295,19 @@ inline void telecommand_task( void ) {
if ( mode_changed )
PERIODIC_SEND_PPRZ_MODE();
/** If Auto1 mode, compute \a desired_roll and \a desired_pitch from
/** In AUTO1 mode, compute roll setpoint and pitch setpoint from
* \a RADIO_ROLL and \a RADIO_PITCH \n
* Else asynchronously set by \a course_pid_run
*/
if (pprz_mode == PPRZ_MODE_AUTO1) {
/** In Auto1 mode, roll is bounded between [-AUTO1_MAX_ROLL;AUTO1_MAX_ROLL] */
/** Roll is bounded between [-AUTO1_MAX_ROLL;AUTO1_MAX_ROLL] */
h_ctl_roll_setpoint = FLOAT_OF_PPRZ(fbw_state->channels[RADIO_ROLL], 0., -AUTO1_MAX_ROLL);
/** In Auto1 mode, pitch is bounded between [-AUTO1_MAX_PITCH;AUTO1_MAX_PITCH] */
/** Pitch is bounded between [-AUTO1_MAX_PITCH;AUTO1_MAX_PITCH] */
h_ctl_pitch_setpoint = FLOAT_OF_PPRZ(fbw_state->channels[RADIO_PITCH], 0., AUTO1_MAX_PITCH);
}
} /** Else asynchronously set by \a h_ctl_course_loop() */
/** In AUTO1, throttle comes from RADIO_THROTTLE
In MANUAL, the value is copied to get it in the telemetry */
if (pprz_mode == PPRZ_MODE_MANUAL || pprz_mode == PPRZ_MODE_AUTO1) {
v_ctl_throttle_setpoint = fbw_state->channels[RADIO_THROTTLE];
}
@@ -317,7 +319,7 @@ inline void telecommand_task( void ) {
events_update();
if (!estimator_flight_time) {
#ifdef INFRARED
#if defined INFRARED && !ADC_CHANNEL_IR_TOP
ground_calibrate(STICK_PUSHED(fbw_state->channels[RADIO_ROLL]));
#endif
if (pprz_mode == PPRZ_MODE_AUTO2 && fbw_state->channels[RADIO_THROTTLE] > THROTTLE_THRESHOLD_TAKEOFF) {