mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-31 20:38:27 +08:00
Added possibility to switch sticks
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
<airframe>
|
||||
<section name="IMU" prefix="IMU_">
|
||||
<define name="ACCEL_X_NEUTRAL" value="40"/>
|
||||
<define name="ACCEL_Y_NEUTRAL" value="-11"/>
|
||||
<define name="ACCEL_Z_NEUTRAL" value="250"/>
|
||||
<define name="ACCEL_X_SENS" value="4.86864977158" integer="16"/>
|
||||
<define name="ACCEL_Y_SENS" value="4.90451364272" integer="16"/>
|
||||
<define name="ACCEL_Z_SENS" value="4.85134642596" integer="16"/>
|
||||
|
||||
<define name="MAG_X_NEUTRAL" value="-178"/>
|
||||
<define name="MAG_Y_NEUTRAL" value="73"/>
|
||||
<define name="MAG_Z_NEUTRAL" value="-11"/>
|
||||
<define name="MAG_X_SENS" value="4.19385009207" integer="16"/>
|
||||
<define name="MAG_Y_SENS" value="4.32306399648" integer="16"/>
|
||||
<define name="MAG_Z_SENS" value="4.63243801309" integer="16"/>
|
||||
</section>
|
||||
</airframe>
|
||||
@@ -175,7 +175,7 @@
|
||||
<define name="HOVER_KI" value="72"/>
|
||||
<define name="RC_CLIMB_COEF" value ="163"/>
|
||||
<define name="RC_CLIMB_DEAD_BAND" value ="160000"/>
|
||||
<define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.5"/>
|
||||
<!-- <define name="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.3"/> -->
|
||||
</section>
|
||||
|
||||
<section name="AHRS" prefix="AHRS_">
|
||||
@@ -195,7 +195,7 @@
|
||||
<define name="REF_QUAT_INFINITESIMAL_STEP" value="TRUE"/>
|
||||
<define name="USE_EARTH_BOUND_RC_SETPOINT" value="TRUE"/>
|
||||
<!-- <define name="USE_REFERENCE_SYSTEM" value="FALSE"/> -->
|
||||
<!-- <define name="SWITCH_STICKS_FOR_RATE_CONTROL" value="TRUE"/> -->
|
||||
<define name="SWITCH_STICKS_FOR_RATE_CONTROL" value="TRUE"/>
|
||||
<define name="TRANSITION_MAX_OFFSET" value="-82.0" unit="deg"/>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -164,7 +164,11 @@ void guidance_h_read_rc(bool_t in_flight) {
|
||||
break;
|
||||
|
||||
case GUIDANCE_H_MODE_RATE:
|
||||
#if SWITCH_STICKS_FOR_RATE_CONTROL
|
||||
stabilization_rate_read_rc_switched_sticks();
|
||||
#else
|
||||
stabilization_rate_read_rc();
|
||||
#endif
|
||||
break;
|
||||
|
||||
case GUIDANCE_H_MODE_FORWARD:
|
||||
|
||||
@@ -164,6 +164,28 @@ void stabilization_rate_read_rc( void ) {
|
||||
INT_RATES_LSHIFT(stabilization_rate_sp, stabilization_rate_sp, REF_FRAC - INT32_RATE_FRAC);
|
||||
}
|
||||
|
||||
//Read rc with roll and yaw sitcks switched if the default orientation is vertical but airplane sticks are desired
|
||||
void stabilization_rate_read_rc_switched_sticks( void ) {
|
||||
|
||||
if(ROLL_RATE_DEADBAND_EXCEEDED())
|
||||
stabilization_rate_sp.r = (int32_t) -radio_control.values[RADIO_ROLL] * STABILIZATION_RATE_SP_MAX_P / MAX_PPRZ;
|
||||
else
|
||||
stabilization_rate_sp.r = 0;
|
||||
|
||||
if(PITCH_RATE_DEADBAND_EXCEEDED())
|
||||
stabilization_rate_sp.q = (int32_t)radio_control.values[RADIO_PITCH] * STABILIZATION_RATE_SP_MAX_Q / MAX_PPRZ;
|
||||
else
|
||||
stabilization_rate_sp.q = 0;
|
||||
|
||||
if(YAW_RATE_DEADBAND_EXCEEDED())
|
||||
stabilization_rate_sp.p = (int32_t)radio_control.values[RADIO_YAW] * STABILIZATION_RATE_SP_MAX_R / MAX_PPRZ;
|
||||
else
|
||||
stabilization_rate_sp.p = 0;
|
||||
|
||||
// Setpoint at ref resolution
|
||||
INT_RATES_LSHIFT(stabilization_rate_sp, stabilization_rate_sp, REF_FRAC - INT32_RATE_FRAC);
|
||||
}
|
||||
|
||||
void stabilization_rate_enter(void) {
|
||||
RATES_COPY(stabilization_rate_ref, stabilization_rate_sp);
|
||||
INT_RATES_ZERO(stabilization_rate_sum_err);
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
extern void stabilization_rate_init(void);
|
||||
extern void stabilization_rate_read_rc(void);
|
||||
extern void stabilization_rate_read_rc_switched_sticks(void);
|
||||
extern void stabilization_rate_run(bool_t in_flight);
|
||||
extern void stabilization_rate_enter(void);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user