From 8b2892c0052ac9b4da597e400e490fa117c44577 Mon Sep 17 00:00:00 2001 From: Christophe De Wagter Date: Wed, 2 Nov 2011 15:59:30 +0100 Subject: [PATCH] Trim Fixedwing Inflight: Stop abusing ins_neutral/ir_neutral --- conf/settings/tuning.xml | 5 +++++ conf/settings/tuning_ins.xml | 5 +++++ sw/airborne/commands.c | 11 +++++++++++ sw/airborne/commands.h | 2 ++ sw/airborne/firmwares/fixedwing/main_fbw.c | 13 ++++++++++++- 5 files changed, 35 insertions(+), 1 deletion(-) diff --git a/conf/settings/tuning.xml b/conf/settings/tuning.xml index 8e9538720e..c430c97e34 100644 --- a/conf/settings/tuning.xml +++ b/conf/settings/tuning.xml @@ -31,6 +31,11 @@ + + + + + diff --git a/conf/settings/tuning_ins.xml b/conf/settings/tuning_ins.xml index 1f092a4a56..0a5aea0529 100644 --- a/conf/settings/tuning_ins.xml +++ b/conf/settings/tuning_ins.xml @@ -31,6 +31,11 @@ + + + + + diff --git a/sw/airborne/commands.c b/sw/airborne/commands.c index c73b50081f..3dd61cfdd3 100644 --- a/sw/airborne/commands.c +++ b/sw/airborne/commands.c @@ -28,5 +28,16 @@ #include "commands.h" +#ifndef COMMAND_ROLL_TRIM +#define COMMAND_ROLL_TRIM 0 +#endif + +#ifndef COMMAND_PITCH_TRIM +#define COMMAND_PITCH_TRIM 0 +#endif + +pprz_t command_roll_trim = COMMAND_ROLL_TRIM; +pprz_t command_pitch_trim = COMMAND_PITCH_TRIM; + pprz_t commands[COMMANDS_NB]; const pprz_t commands_failsafe[COMMANDS_NB] = COMMANDS_FAILSAFE; diff --git a/sw/airborne/commands.h b/sw/airborne/commands.h index a824de01c9..4716959233 100644 --- a/sw/airborne/commands.h +++ b/sw/airborne/commands.h @@ -32,6 +32,8 @@ #include "paparazzi.h" #include "generated/airframe.h" +extern pprz_t command_roll_trim; +extern pprz_t command_pitch_trim; extern pprz_t commands[COMMANDS_NB]; extern const pprz_t commands_failsafe[COMMANDS_NB]; diff --git a/sw/airborne/firmwares/fixedwing/main_fbw.c b/sw/airborne/firmwares/fixedwing/main_fbw.c index 40dcf65a58..7b70a8f900 100644 --- a/sw/airborne/firmwares/fixedwing/main_fbw.c +++ b/sw/airborne/firmwares/fixedwing/main_fbw.c @@ -150,7 +150,18 @@ void event_task_fbw( void) { #ifdef ACTUATORS if (fbw_new_actuators > 0) { - SetActuatorsFromCommands(commands); + pprz_t trimmed_commands[COMMANDS_NB]; + int i; + for(i = 0; i < COMMANDS_NB; i++) trimmed_commands[i] = commands[i]; + + #ifdef COMMAND_ROLL + trimmed_commands[COMMAND_ROLL] += command_roll_trim; + #endif + #ifdef COMMAND_PITCH + trimmed_commands[COMMAND_PITCH] += command_pitch_trim; + #endif + + SetActuatorsFromCommands(trimmed_commands); fbw_new_actuators = 0; } #endif