diff --git a/conf/airframes/Poine/beth.xml b/conf/airframes/Poine/beth.xml
index 847168a6e2..994eea0faf 100644
--- a/conf/airframes/Poine/beth.xml
+++ b/conf/airframes/Poine/beth.xml
@@ -148,7 +148,7 @@ main_stm32.srcs += $(SRC_BOOZ)/booz2_commands.c
main_stm32.srcs += $(SRC_BOOZ)/actuators/booz_actuators_asctec.c
#\
# $(SRC_BOOZ_ARCH)/actuators/booz_actuators_asctec_arch.c
-main_stm32.CFLAGS += -DACTUATORS_ASCTEC_DEVICE=i2c1
+main_stm32.CFLAGS += -DACTUATORS_ASCTEC_DEVICE=i2c1
# -DBOOZ_START_DELAY=3 -DUSE_TIM2_IRQ
main_stm32.CFLAGS += -DUSE_I2C1
main_stm32.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
@@ -208,7 +208,8 @@ USER =
#HOST = beth
#HOST = overo
#HOST = auto7
-HOST= regis
+#HOST= regis
+HOST = auto3
TARGET_DIR = ~
SRC_FMS=fms
diff --git a/conf/settings/settings_beth.xml b/conf/settings/settings_beth.xml
index 31bda17594..5cae3407f3 100644
--- a/conf/settings/settings_beth.xml
+++ b/conf/settings/settings_beth.xml
@@ -6,10 +6,10 @@
-
+
-
+
diff --git a/sw/airborne/beth/overo_controller.c b/sw/airborne/beth/overo_controller.c
index fda95175f2..1a09881fe1 100644
--- a/sw/airborne/beth/overo_controller.c
+++ b/sw/airborne/beth/overo_controller.c
@@ -12,9 +12,11 @@ void control_init(void) {
controller.tilt_sp = 0.;
controller.elevation_sp = RadOfDeg(10);
+ controller.azimuth_sp = 0.;
controller.omega_tilt_ref = RadOfDeg(200);
controller.omega_elevation_ref = RadOfDeg(120);
+ controller.omega_azimuth_ref = RadOfDeg(60);
controller.xi_ref = 1.;
controller.tilt_ref = estimator.tilt;
@@ -69,6 +71,11 @@ void control_run(void) {
controller.elevation_ddot_ref = -2*controller.omega_elevation_ref*controller.xi_ref*controller.elevation_dot_ref
- controller.omega_elevation_ref*controller.omega_elevation_ref*(controller.elevation_ref - controller.elevation_sp);
+ controller.azimuth_ref = controller.azimuth_ref + controller.azimuth_dot_ref * dt_ctl;
+ controller.azimuth_dot_ref = controller.azimuth_dot_ref + controller.azimuth_ddot_ref * dt_ctl;
+ controller.azimuth_ddot_ref = -2*controller.omega_azimuth_ref*controller.xi_ref*controller.azimuth_dot_ref
+ - controller.omega_azimuth_ref*controller.omega_azimuth_ref*(controller.azimuth_ref - controller.azimuth_sp);
+
static int foo=0;
/*
@@ -96,10 +103,12 @@ void control_run(void) {
controller.cmd_thrust_fb = -controller.mass * (2 * controller.xi_cl * controller.omega_cl * err_elevation_dot) -
controller.mass * (controller.omega_cl * controller.omega_cl * err_elevation);
+ controller.cmd_azimuth_ff = controller.one_over_J * controller.azimuth_ddot_ref;
controller.cmd_azimuth_fb = controller.one_over_J * (2 * controller.xi_cl * controller.omega_cl * err_azimuth_dot) +
controller.one_over_J * (controller.omega_cl * controller.omega_cl * err_azimuth);
- controller.cmd_pitch = controller.cmd_pitch_ff + controller.cmd_pitch_fb + controller.azim_gain * controller.cmd_azimuth_fb;
+ controller.cmd_pitch = controller.cmd_pitch_ff + controller.cmd_pitch_fb +
+ controller.azim_gain * (controller.cmd_azimuth_fb + controller.cmd_azimuth_ff);
controller.cmd_thrust = controller.cmd_thrust_ff + controller.cmd_thrust_fb + thrust_constant;
controller.cmd_thrust = controller.cmd_thrust*(1/cos(estimator.elevation));
diff --git a/sw/airborne/beth/overo_controller.h b/sw/airborne/beth/overo_controller.h
index d1e72307d2..e16ad37eac 100644
--- a/sw/airborne/beth/overo_controller.h
+++ b/sw/airborne/beth/overo_controller.h
@@ -7,6 +7,7 @@ struct OveroController {
float tilt_sp;
float elevation_sp;
+ float azimuth_sp;
/* modele de reference */
float tilt_ref;
@@ -23,6 +24,7 @@ struct OveroController {
float omega_tilt_ref;
float omega_elevation_ref;
+ float omega_azimuth_ref;
float xi_ref;
/* invert control law parameter */
@@ -40,6 +42,7 @@ struct OveroController {
float cmd_thrust_ff;
float cmd_thrust_fb;
+ float cmd_azimuth_ff;
float cmd_azimuth_fb;
float cmd_pitch;