diff --git a/conf/airframes/tudelft/rot_wing_25kg.xml b/conf/airframes/tudelft/rotwing5.xml similarity index 99% rename from conf/airframes/tudelft/rot_wing_25kg.xml rename to conf/airframes/tudelft/rotwing5.xml index ccca94ba55..6bd52e73fb 100644 --- a/conf/airframes/tudelft/rot_wing_25kg.xml +++ b/conf/airframes/tudelft/rotwing5.xml @@ -124,7 +124,7 @@ - + @@ -134,7 +134,7 @@ - + @@ -255,7 +255,7 @@ -
+
diff --git a/conf/airframes/tudelft/rotwing6.xml b/conf/airframes/tudelft/rotwing6.xml new file mode 100644 index 0000000000..6bd52e73fb --- /dev/null +++ b/conf/airframes/tudelft/rotwing6.xml @@ -0,0 +1,586 @@ + + + + RotatingWing25Kg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+ + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+ + + + + +
+ +
+ + + + +
+ +
+ + + + + + +
+ +
+ + + + + + +
+ + + Enter the PIC + Enter the PAC + Enter the GCS op + Goal of the flight + Location, airspace and weather + Check the RC battery + Check wings secured (and taped) + Initialize and check wing rotation + Check attitude and heading + Calibrate airspeed sensor + Put UAV on take-off location + Check flight plan + Switch to correct flight block + Switch on camera + Arm parachute + Announce flight to other airspace users + +
diff --git a/conf/airframes/tudelft/rot_wing_v3b.xml b/conf/airframes/tudelft/rotwing_v3b.xml similarity index 99% rename from conf/airframes/tudelft/rot_wing_v3b.xml rename to conf/airframes/tudelft/rotwing_v3b.xml index 2b9021b760..388a3b5f50 100644 --- a/conf/airframes/tudelft/rot_wing_v3b.xml +++ b/conf/airframes/tudelft/rotwing_v3b.xml @@ -125,7 +125,7 @@ - + @@ -135,7 +135,7 @@ - + @@ -146,7 +146,7 @@ - + @@ -296,7 +296,7 @@
-
+
diff --git a/conf/airframes/tudelft/rot_wing_v3c_oneloop.xml b/conf/airframes/tudelft/rotwing_v3c_oneloop.xml similarity index 99% rename from conf/airframes/tudelft/rot_wing_v3c_oneloop.xml rename to conf/airframes/tudelft/rotwing_v3c_oneloop.xml index a0c9dcfd27..ace6216d23 100644 --- a/conf/airframes/tudelft/rot_wing_v3c_oneloop.xml +++ b/conf/airframes/tudelft/rotwing_v3c_oneloop.xml @@ -128,7 +128,7 @@ - + @@ -138,7 +138,7 @@ - + @@ -296,7 +296,7 @@
-
+
- + @@ -133,7 +133,7 @@ - + @@ -284,7 +284,7 @@
-
+
diff --git a/conf/airframes/tudelft/rot_wing_v3e.xml b/conf/airframes/tudelft/rotwing_v3e.xml similarity index 99% rename from conf/airframes/tudelft/rot_wing_v3e.xml rename to conf/airframes/tudelft/rotwing_v3e.xml index abdfa1c3c6..4cebb13e79 100644 --- a/conf/airframes/tudelft/rot_wing_v3e.xml +++ b/conf/airframes/tudelft/rotwing_v3e.xml @@ -112,7 +112,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -133,7 +133,7 @@ - + @@ -284,7 +284,7 @@
-
+
diff --git a/conf/airframes/tudelft/rot_wing_v3f.xml b/conf/airframes/tudelft/rotwing_v3f.xml similarity index 99% rename from conf/airframes/tudelft/rot_wing_v3f.xml rename to conf/airframes/tudelft/rotwing_v3f.xml index 8da7966bf5..b3f3c7b0b7 100644 --- a/conf/airframes/tudelft/rot_wing_v3f.xml +++ b/conf/airframes/tudelft/rotwing_v3f.xml @@ -112,7 +112,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -133,7 +133,7 @@ - + @@ -284,7 +284,7 @@
-
+
diff --git a/conf/airframes/tudelft/rot_wing_v3g.xml b/conf/airframes/tudelft/rotwing_v3g.xml similarity index 99% rename from conf/airframes/tudelft/rot_wing_v3g.xml rename to conf/airframes/tudelft/rotwing_v3g.xml index 545cbd087f..3e96c98f55 100644 --- a/conf/airframes/tudelft/rot_wing_v3g.xml +++ b/conf/airframes/tudelft/rotwing_v3g.xml @@ -117,7 +117,7 @@ - + @@ -127,7 +127,7 @@ - + @@ -138,7 +138,7 @@ - + @@ -289,7 +289,7 @@
-
+
diff --git a/conf/airframes/tudelft/rot_wing_v3h.xml b/conf/airframes/tudelft/rotwing_v3h.xml similarity index 99% rename from conf/airframes/tudelft/rot_wing_v3h.xml rename to conf/airframes/tudelft/rotwing_v3h.xml index deb663a59d..54e5be82ff 100644 --- a/conf/airframes/tudelft/rot_wing_v3h.xml +++ b/conf/airframes/tudelft/rotwing_v3h.xml @@ -117,7 +117,7 @@ - + @@ -127,7 +127,7 @@ - + @@ -138,7 +138,7 @@ - + @@ -289,7 +289,7 @@
-
+
diff --git a/conf/autopilot/rotorcraft_oneloop_switch.xml b/conf/autopilot/rotorcraft_oneloop_switch.xml index 999d162fc2..c0d2baf611 100644 --- a/conf/autopilot/rotorcraft_oneloop_switch.xml +++ b/conf/autopilot/rotorcraft_oneloop_switch.xml @@ -15,7 +15,7 @@ - + diff --git a/conf/flight_plans/tudelft/oneloop_valkenburg.xml b/conf/flight_plans/tudelft/oneloop_valkenburg.xml index 194c95e9eb..9bd8f69481 100644 --- a/conf/flight_plans/tudelft/oneloop_valkenburg.xml +++ b/conf/flight_plans/tudelft/oneloop_valkenburg.xml @@ -135,21 +135,21 @@ - + - + - + - + @@ -161,19 +161,19 @@ - + - + - + - + diff --git a/conf/flight_plans/tudelft/rotating_wing_EHVB.xml b/conf/flight_plans/tudelft/rotating_wing_EHVB.xml index 7c3d4dcb3e..144c879677 100644 --- a/conf/flight_plans/tudelft/rotating_wing_EHVB.xml +++ b/conf/flight_plans/tudelft/rotating_wing_EHVB.xml @@ -104,15 +104,15 @@ - + - + - + @@ -132,7 +132,7 @@ - + - + - + diff --git a/conf/flight_plans/tudelft/rotating_wing_terschelling.xml b/conf/flight_plans/tudelft/rotating_wing_terschelling.xml index 9d5002a803..0be20c2007 100644 --- a/conf/flight_plans/tudelft/rotating_wing_terschelling.xml +++ b/conf/flight_plans/tudelft/rotating_wing_terschelling.xml @@ -88,7 +88,7 @@ - + @@ -100,7 +100,7 @@ --> - + @@ -140,19 +140,19 @@ - + - + - + - + diff --git a/conf/flight_plans/tudelft/rotating_wing_tharde.xml b/conf/flight_plans/tudelft/rotating_wing_tharde.xml index 05ea7581f2..884b53e4fb 100644 --- a/conf/flight_plans/tudelft/rotating_wing_tharde.xml +++ b/conf/flight_plans/tudelft/rotating_wing_tharde.xml @@ -80,7 +80,7 @@ - + @@ -92,7 +92,7 @@ --> - + @@ -132,19 +132,19 @@ - + - + - + - + diff --git a/conf/modules/eff_scheduling_rot_wing.xml b/conf/modules/eff_scheduling_rotwing.xml similarity index 51% rename from conf/modules/eff_scheduling_rot_wing.xml rename to conf/modules/eff_scheduling_rotwing.xml index 0a055a22b5..fc002d8105 100644 --- a/conf/modules/eff_scheduling_rot_wing.xml +++ b/conf/modules/eff_scheduling_rotwing.xml @@ -1,11 +1,11 @@ - + T he control effectiveness scheduler for the rotating wing quadplane drone type - it requires a servo called ROTATION_MECH -
+
@@ -27,12 +27,12 @@
- +
- - + + - + @@ -44,27 +44,27 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/conf/modules/eff_scheduling_rot_wing_V2.xml b/conf/modules/eff_scheduling_rotwing_V2.xml similarity index 83% rename from conf/modules/eff_scheduling_rot_wing_V2.xml rename to conf/modules/eff_scheduling_rotwing_V2.xml index 03f1accc04..a543b39e32 100644 --- a/conf/modules/eff_scheduling_rot_wing_V2.xml +++ b/conf/modules/eff_scheduling_rotwing_V2.xml @@ -1,11 +1,11 @@ - + T The control effectiveness scheduler for the rotating wing quadplane drone type - it requires a servo called ROTATION_MECH -
+
@@ -29,19 +29,19 @@
- +
- - + + - + - - - - - - + + + + + + diff --git a/conf/modules/rot_wing_automation.xml b/conf/modules/rot_wing_automation.xml deleted file mode 100644 index ad49e8da8d..0000000000 --- a/conf/modules/rot_wing_automation.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - Functions to automate the navigation and guidance of the rotating wing drone -
- - - - - -
-
- - - - - - - - - - -
- -
- - - - - -
diff --git a/conf/modules/rotwing_automation.xml b/conf/modules/rotwing_automation.xml new file mode 100644 index 0000000000..2d87d275e6 --- /dev/null +++ b/conf/modules/rotwing_automation.xml @@ -0,0 +1,31 @@ + + + + Functions to automate the navigation and guidance of the rotating wing drone +
+ + + + + +
+
+ + + + + + + + + + +
+ +
+ + + + + +
diff --git a/conf/modules/rotwing_state.xml b/conf/modules/rotwing_state.xml index 72dad119fd..2eb1fcc33c 100644 --- a/conf/modules/rotwing_state.xml +++ b/conf/modules/rotwing_state.xml @@ -1,5 +1,5 @@ - + This module keeps track of the current state of a rotating wing drone and desired state set by the RC or flightplan. Paramters are being scheduled in each change of a current state and desired state. Functions are defined in this module to call the actual state and desired state and set a desired state.
diff --git a/conf/modules/rotwing_state_V2.xml b/conf/modules/rotwing_state_V2.xml index 8da136c51d..8d986da9b7 100644 --- a/conf/modules/rotwing_state_V2.xml +++ b/conf/modules/rotwing_state_V2.xml @@ -1,5 +1,5 @@ - + This module keeps track of the current state of a rotating wing drone and desired state set by the RC or flightplan. Paramters are being scheduled in each change of a current state and desired state. Functions are defined in this module to call the actual state and desired state and set a desired state.
diff --git a/conf/modules/wing_rotation_adc_sensor.xml b/conf/modules/wing_rotation_adc_sensor.xml index 71f7438c8d..ad0f32558e 100644 --- a/conf/modules/wing_rotation_adc_sensor.xml +++ b/conf/modules/wing_rotation_adc_sensor.xml @@ -1,5 +1,5 @@ - + Module to read wing skew angle from ADC diff --git a/conf/modules/wing_rotation_controller_servo.xml b/conf/modules/wing_rotation_controller_servo.xml index a2ff6daa79..28ecff6b7b 100644 --- a/conf/modules/wing_rotation_controller_servo.xml +++ b/conf/modules/wing_rotation_controller_servo.xml @@ -1,5 +1,5 @@ - + Module to control wing rotation servo command based on prefered angle setpoint diff --git a/conf/tools/rot_wing_3d.xml b/conf/tools/rot_wing_3d.xml deleted file mode 100644 index 3d48e1e09e..0000000000 --- a/conf/tools/rot_wing_3d.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/conf/tools/rot_wing_status.xml b/conf/tools/rot_wing_status.xml deleted file mode 100644 index 0e34e32e64..0000000000 --- a/conf/tools/rot_wing_status.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/conf/tools/rotwing_3d.xml b/conf/tools/rotwing_3d.xml new file mode 100644 index 0000000000..bbed13e0f6 --- /dev/null +++ b/conf/tools/rotwing_3d.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/conf/tools/rotwing_status.xml b/conf/tools/rotwing_status.xml new file mode 100644 index 0000000000..ce4e112588 --- /dev/null +++ b/conf/tools/rotwing_status.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/conf/userconf/tudelft/conf.xml b/conf/userconf/tudelft/conf.xml index 2577541010..09567eb895 100644 --- a/conf/userconf/tudelft/conf.xml +++ b/conf/userconf/tudelft/conf.xml @@ -538,48 +538,37 @@ settings_modules="modules/air_data.xml modules/electrical.xml modules/geo_mag.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/logger_sd_chibios.xml modules/nav_hybrid.xml modules/nav_rotorcraft.xml modules/stabilization_indi_simple.xml" gui_color="red" /> - + + diff --git a/sw/airborne/firmwares/rotorcraft/oneloop/oneloop_andi.c b/sw/airborne/firmwares/rotorcraft/oneloop/oneloop_andi.c index 2267f1daea..1f86af993c 100644 --- a/sw/airborne/firmwares/rotorcraft/oneloop/oneloop_andi.c +++ b/sw/airborne/firmwares/rotorcraft/oneloop/oneloop_andi.c @@ -87,9 +87,9 @@ #include "math/wls/wls_alloc.h" #include "modules/nav/nav_rotorcraft_hybrid.h" #include "firmwares/rotorcraft/navigation.h" -#include "modules/rot_wing_drone/rotwing_state_V2.h" +#include "modules/rotwing_drone/rotwing_state_V2.h" #include "modules/core/commands.h" -#include "modules/ctrl/eff_scheduling_rot_wing_V2.h" +#include "modules/ctrl/eff_scheduling_rotwing_V2.h" #include #if INS_EXT_POSE #include "modules/ins/ins_ext_pose.h" diff --git a/sw/airborne/modules/ctrl/eff_scheduling_rot_wing.c b/sw/airborne/modules/ctrl/eff_scheduling_rotwing.c similarity index 66% rename from sw/airborne/modules/ctrl/eff_scheduling_rot_wing.c rename to sw/airborne/modules/ctrl/eff_scheduling_rotwing.c index 0a737b20b0..7717dd3142 100644 --- a/sw/airborne/modules/ctrl/eff_scheduling_rot_wing.c +++ b/sw/airborne/modules/ctrl/eff_scheduling_rotwing.c @@ -18,12 +18,12 @@ * . */ -/** @file "modules/ctrl/eff_scheduling_rot_wing.c" +/** @file "modules/ctrl/eff_scheduling_rotwing.c" * @author Dennis van Wijngaarden * The control effectiveness scheduler for the rotating wing drone type */ -#include "modules/ctrl/eff_scheduling_rot_wing.h" +#include "modules/ctrl/eff_scheduling_rotwing.h" #include "generated/airframe.h" #include "state.h" @@ -36,133 +36,133 @@ #include "modules/core/abi.h" #ifndef SERVO_ROTATION_MECH_IDX -#error ctrl_eff_sched_rot_wing requires a servo named ROTATION_MECH_IDX +#error ctrl_eff_sched_rotwing requires a servo named ROTATION_MECH_IDX #endif -#ifndef ROT_WING_EFF_SCHED_IXX_BODY -#error "NO ROT_WING_EFF_SCHED_IXX_BODY defined" +#ifndef ROTWING_EFF_SCHED_IXX_BODY +#error "NO ROTWING_EFF_SCHED_IXX_BODY defined" #endif -#ifndef ROT_WING_EFF_SCHED_IYY_BODY -#error "NO ROT_WING_EFF_SCHED_IYY_BODY defined" +#ifndef ROTWING_EFF_SCHED_IYY_BODY +#error "NO ROTWING_EFF_SCHED_IYY_BODY defined" #endif -#ifndef ROT_WING_EFF_SCHED_IZZ -#error "NO ROT_WING_EFF_SCHED_IZZ defined" +#ifndef ROTWING_EFF_SCHED_IZZ +#error "NO ROTWING_EFF_SCHED_IZZ defined" #endif -#ifndef ROT_WING_EFF_SCHED_IXX_WING -#error "NO ROT_WING_EFF_SCHED_IXX_WING defined" +#ifndef ROTWING_EFF_SCHED_IXX_WING +#error "NO ROTWING_EFF_SCHED_IXX_WING defined" #endif -#ifndef ROT_WING_EFF_SCHED_IYY_WING -#error "NO ROT_WING_EFF_SCHED_IYY_WING defined" +#ifndef ROTWING_EFF_SCHED_IYY_WING +#error "NO ROTWING_EFF_SCHED_IYY_WING defined" #endif -#ifndef ROT_WING_EFF_SCHED_M -#error "NO ROT_WING_EFF_SCHED_M defined" +#ifndef ROTWING_EFF_SCHED_M +#error "NO ROTWING_EFF_SCHED_M defined" #endif -#ifndef ROT_WING_EFF_SCHED_DM_DPPRZ_HOVER_PITCH -#error "NO ROT_WING_EFF_SCHED_DM_DPPRZ_HOVER_PITCH defined" +#ifndef ROTWING_EFF_SCHED_DM_DPPRZ_HOVER_PITCH +#error "NO ROTWING_EFF_SCHED_DM_DPPRZ_HOVER_PITCH defined" #endif -#ifndef ROT_WING_EFF_SCHED_DM_DPPRZ_HOVER_ROLL -#error "NO ROT_WING_EFF_SCHED_DM_DPPRZ_HOVER_ROLL defined" +#ifndef ROTWING_EFF_SCHED_DM_DPPRZ_HOVER_ROLL +#error "NO ROTWING_EFF_SCHED_DM_DPPRZ_HOVER_ROLL defined" #endif -#ifndef ROT_WING_EFF_SCHED_HOVER_ROLL_PITCH_COEF -#error "NO ROT_WING_EFF_SCHED_HOVER_ROLL_PITCH_COEF defined" +#ifndef ROTWING_EFF_SCHED_HOVER_ROLL_PITCH_COEF +#error "NO ROTWING_EFF_SCHED_HOVER_ROLL_PITCH_COEF defined" #endif -#ifndef ROT_WING_EFF_SCHED_HOVER_ROLL_ROLL_COEF -#error "NO ROT_WING_EFF_SCHED_HOVER_ROLL_ROLL_COEF defined" +#ifndef ROTWING_EFF_SCHED_HOVER_ROLL_ROLL_COEF +#error "NO ROTWING_EFF_SCHED_HOVER_ROLL_ROLL_COEF defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_ELEVATOR -#error "NO ROT_WING_EFF_SCHED_K_ELEVATOR defined" +#ifndef ROTWING_EFF_SCHED_K_ELEVATOR +#error "NO ROTWING_EFF_SCHED_K_ELEVATOR defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_RUDDER -#error "NO ROT_WING_EFF_SCHED_K_RUDDER defined" +#ifndef ROTWING_EFF_SCHED_K_RUDDER +#error "NO ROTWING_EFF_SCHED_K_RUDDER defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_AILERON -#error "NO ROT_WING_EFF_SCHED_K_AILERON defined" +#ifndef ROTWING_EFF_SCHED_K_AILERON +#error "NO ROTWING_EFF_SCHED_K_AILERON defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_FLAPERON -#error "NO ROT_WING_EFF_SCHED_K_FLAPERON defined" +#ifndef ROTWING_EFF_SCHED_K_FLAPERON +#error "NO ROTWING_EFF_SCHED_K_FLAPERON defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_PUSHER -#error "NO ROT_WING_EFF_SCHED_K_PUSHER defined" +#ifndef ROTWING_EFF_SCHED_K_PUSHER +#error "NO ROTWING_EFF_SCHED_K_PUSHER defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_ELEVATOR_DEFLECTION -#error "NO ROT_WING_EFF_SCHED_K_ELEVATOR_DEFLECTION defined" +#ifndef ROTWING_EFF_SCHED_K_ELEVATOR_DEFLECTION +#error "NO ROTWING_EFF_SCHED_K_ELEVATOR_DEFLECTION defined" #endif -#ifndef ROT_WING_EFF_SCHED_D_RUDDER_D_PPRZ -#error "NO ROT_WING_EFF_SCHED_D_RUDDER_D_PPRZ defined" +#ifndef ROTWING_EFF_SCHED_D_RUDDER_D_PPRZ +#error "NO ROTWING_EFF_SCHED_D_RUDDER_D_PPRZ defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_RPM_PPRZ_PUSHER -#error "NO ROT_WING_EFF_SCHED_K_RPM_PPRZ_PUSHER defined" +#ifndef ROTWING_EFF_SCHED_K_RPM_PPRZ_PUSHER +#error "NO ROTWING_EFF_SCHED_K_RPM_PPRZ_PUSHER defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_LIFT_WING -#error "NO ROT_WING_EFF_SCHED_K_LIFT_WING defined" +#ifndef ROTWING_EFF_SCHED_K_LIFT_WING +#error "NO ROTWING_EFF_SCHED_K_LIFT_WING defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_LIFT_FUSELAGE -#error "NO ROT_WING_EFF_SCHED_K_LIFT_FUSELAGE defined" +#ifndef ROTWING_EFF_SCHED_K_LIFT_FUSELAGE +#error "NO ROTWING_EFF_SCHED_K_LIFT_FUSELAGE defined" #endif -#ifndef ROT_WING_EFF_SCHED_K_LIFT_TAIL -#error "NO ROT_WING_EFF_SCHED_K_LIFT_TAIL defined" +#ifndef ROTWING_EFF_SCHED_K_LIFT_TAIL +#error "NO ROTWING_EFF_SCHED_K_LIFT_TAIL defined" #endif -struct rot_wing_eff_sched_param_t eff_sched_p = { - .Ixx_body = ROT_WING_EFF_SCHED_IXX_BODY, - .Iyy_body = ROT_WING_EFF_SCHED_IYY_BODY, - .Izz = ROT_WING_EFF_SCHED_IZZ, - .Ixx_wing = ROT_WING_EFF_SCHED_IXX_WING, - .Iyy_wing = ROT_WING_EFF_SCHED_IYY_WING, - .m = ROT_WING_EFF_SCHED_M, - .DMdpprz_hover_roll = ROT_WING_EFF_SCHED_DM_DPPRZ_HOVER_ROLL, - .hover_roll_pitch_coef = ROT_WING_EFF_SCHED_HOVER_ROLL_PITCH_COEF, - .hover_roll_roll_coef = ROT_WING_EFF_SCHED_HOVER_ROLL_ROLL_COEF, - .k_elevator = ROT_WING_EFF_SCHED_K_ELEVATOR, - .k_rudder = ROT_WING_EFF_SCHED_K_RUDDER, - .k_aileron = ROT_WING_EFF_SCHED_K_AILERON, - .k_flaperon = ROT_WING_EFF_SCHED_K_FLAPERON, - .k_pusher = ROT_WING_EFF_SCHED_K_PUSHER, - .k_elevator_deflection = ROT_WING_EFF_SCHED_K_ELEVATOR_DEFLECTION, - .d_rudder_d_pprz = ROT_WING_EFF_SCHED_D_RUDDER_D_PPRZ, - .k_rpm_pprz_pusher = ROT_WING_EFF_SCHED_K_RPM_PPRZ_PUSHER, - .k_lift_wing = ROT_WING_EFF_SCHED_K_LIFT_WING, - .k_lift_fuselage = ROT_WING_EFF_SCHED_K_LIFT_FUSELAGE, - .k_lift_tail = ROT_WING_EFF_SCHED_K_LIFT_TAIL +struct rotwing_eff_sched_param_t eff_sched_p = { + .Ixx_body = ROTWING_EFF_SCHED_IXX_BODY, + .Iyy_body = ROTWING_EFF_SCHED_IYY_BODY, + .Izz = ROTWING_EFF_SCHED_IZZ, + .Ixx_wing = ROTWING_EFF_SCHED_IXX_WING, + .Iyy_wing = ROTWING_EFF_SCHED_IYY_WING, + .m = ROTWING_EFF_SCHED_M, + .DMdpprz_hover_roll = ROTWING_EFF_SCHED_DM_DPPRZ_HOVER_ROLL, + .hover_roll_pitch_coef = ROTWING_EFF_SCHED_HOVER_ROLL_PITCH_COEF, + .hover_roll_roll_coef = ROTWING_EFF_SCHED_HOVER_ROLL_ROLL_COEF, + .k_elevator = ROTWING_EFF_SCHED_K_ELEVATOR, + .k_rudder = ROTWING_EFF_SCHED_K_RUDDER, + .k_aileron = ROTWING_EFF_SCHED_K_AILERON, + .k_flaperon = ROTWING_EFF_SCHED_K_FLAPERON, + .k_pusher = ROTWING_EFF_SCHED_K_PUSHER, + .k_elevator_deflection = ROTWING_EFF_SCHED_K_ELEVATOR_DEFLECTION, + .d_rudder_d_pprz = ROTWING_EFF_SCHED_D_RUDDER_D_PPRZ, + .k_rpm_pprz_pusher = ROTWING_EFF_SCHED_K_RPM_PPRZ_PUSHER, + .k_lift_wing = ROTWING_EFF_SCHED_K_LIFT_WING, + .k_lift_fuselage = ROTWING_EFF_SCHED_K_LIFT_FUSELAGE, + .k_lift_tail = ROTWING_EFF_SCHED_K_LIFT_TAIL }; float eff_sched_pusher_time = 0.002; float roll_eff_scaling = 1.f; -struct rot_wing_eff_sched_var_t eff_sched_var; +struct rotwing_eff_sched_var_t eff_sched_var; -inline void eff_scheduling_rot_wing_update_wing_angle(void); -inline void eff_scheduling_rot_wing_update_MMOI(void); -inline void eff_scheduling_rot_wing_update_cmd(void); -inline void eff_scheduling_rot_wing_update_airspeed(void); -inline void eff_scheduling_rot_wing_update_hover_motor_effectiveness(void); -inline void eff_scheduling_rot_wing_update_elevator_effectiveness(void); -inline void eff_scheduling_rot_wing_update_rudder_effectiveness(void); -inline void eff_scheduling_rot_wing_update_aileron_effectiveness(void); -inline void eff_scheduling_rot_wing_update_flaperon_effectiveness(void); -inline void eff_scheduling_rot_wing_update_pusher_effectiveness(void); -inline void eff_scheduling_rot_wing_schedule_liftd(void); +inline void eff_scheduling_rotwing_update_wing_angle(void); +inline void eff_scheduling_rotwing_update_MMOI(void); +inline void eff_scheduling_rotwing_update_cmd(void); +inline void eff_scheduling_rotwing_update_airspeed(void); +inline void eff_scheduling_rotwing_update_hover_motor_effectiveness(void); +inline void eff_scheduling_rotwing_update_elevator_effectiveness(void); +inline void eff_scheduling_rotwing_update_rudder_effectiveness(void); +inline void eff_scheduling_rotwing_update_aileron_effectiveness(void); +inline void eff_scheduling_rotwing_update_flaperon_effectiveness(void); +inline void eff_scheduling_rotwing_update_pusher_effectiveness(void); +inline void eff_scheduling_rotwing_schedule_liftd(void); inline float guidance_indi_get_liftd(float pitch UNUSED, float theta UNUSED); void stabilization_indi_set_wls_settings(void); @@ -170,10 +170,10 @@ void stabilization_indi_set_wls_settings(void); /** ABI binding wing position data. */ -#ifndef WING_ROTATION_CAN_ROT_WING_ID -#define WING_ROTATION_CAN_ROT_WING_ID ABI_BROADCAST +#ifndef WING_ROTATION_CAN_ROTWING_ID +#define WING_ROTATION_CAN_ROTWING_ID ABI_BROADCAST #endif -PRINT_CONFIG_VAR(WING_ROTATION_CAN_ROT_WING_ID) +PRINT_CONFIG_VAR(WING_ROTATION_CAN_ROTWING_ID) static abi_event wing_position_ev; static void wing_position_cb(uint8_t sender_id UNUSED, struct act_feedback_t *pos_msg, uint8_t num_act) @@ -190,7 +190,7 @@ static void wing_position_cb(uint8_t sender_id UNUSED, struct act_feedback_t *po } } -void eff_scheduling_rot_wing_init(void) +void eff_scheduling_rotwing_init(void) { // Initialize variables to quad values eff_sched_var.Ixx = eff_sched_p.Ixx_body + eff_sched_p.Ixx_wing; @@ -204,7 +204,7 @@ void eff_scheduling_rot_wing_init(void) eff_sched_var.sinr3 = 0; // Set moment derivative variables - eff_sched_var.pitch_motor_dMdpprz = ROT_WING_EFF_SCHED_DM_DPPRZ_HOVER_PITCH; + eff_sched_var.pitch_motor_dMdpprz = ROTWING_EFF_SCHED_DM_DPPRZ_HOVER_PITCH; eff_sched_var.roll_motor_dMdpprz = (eff_sched_p.DMdpprz_hover_roll[0] + (MAX_PPRZ/2.) * eff_sched_p.DMdpprz_hover_roll[1]) / 10000.; // Dmdpprz hover roll for hover thrust eff_sched_var.cmd_elevator = 0; @@ -216,29 +216,29 @@ void eff_scheduling_rot_wing_init(void) eff_sched_var.airspeed2 = 0; // Get wing angle - AbiBindMsgACT_FEEDBACK(WING_ROTATION_CAN_ROT_WING_ID, &wing_position_ev, wing_position_cb); + AbiBindMsgACT_FEEDBACK(WING_ROTATION_CAN_ROTWING_ID, &wing_position_ev, wing_position_cb); } -void eff_scheduling_rot_wing_periodic(void) +void eff_scheduling_rotwing_periodic(void) { // your periodic code here. // freq = 10.0 Hz - eff_scheduling_rot_wing_update_wing_angle(); - eff_scheduling_rot_wing_update_MMOI(); - eff_scheduling_rot_wing_update_cmd(); - eff_scheduling_rot_wing_update_airspeed(); + eff_scheduling_rotwing_update_wing_angle(); + eff_scheduling_rotwing_update_MMOI(); + eff_scheduling_rotwing_update_cmd(); + eff_scheduling_rotwing_update_airspeed(); // Update the effectiveness values - eff_scheduling_rot_wing_update_hover_motor_effectiveness(); - eff_scheduling_rot_wing_update_elevator_effectiveness(); - eff_scheduling_rot_wing_update_rudder_effectiveness(); - eff_scheduling_rot_wing_update_aileron_effectiveness(); - eff_scheduling_rot_wing_update_flaperon_effectiveness(); - eff_scheduling_rot_wing_update_pusher_effectiveness(); - eff_scheduling_rot_wing_schedule_liftd(); + eff_scheduling_rotwing_update_hover_motor_effectiveness(); + eff_scheduling_rotwing_update_elevator_effectiveness(); + eff_scheduling_rotwing_update_rudder_effectiveness(); + eff_scheduling_rotwing_update_aileron_effectiveness(); + eff_scheduling_rotwing_update_flaperon_effectiveness(); + eff_scheduling_rotwing_update_pusher_effectiveness(); + eff_scheduling_rotwing_schedule_liftd(); } -void eff_scheduling_rot_wing_update_wing_angle(void) +void eff_scheduling_rotwing_update_wing_angle(void) { // Calculate sin and cosines of rotation eff_sched_var.wing_rotation_deg = eff_sched_var.wing_rotation_rad / M_PI * 180.; @@ -253,7 +253,7 @@ void eff_scheduling_rot_wing_update_wing_angle(void) } -void eff_scheduling_rot_wing_update_MMOI(void) +void eff_scheduling_rotwing_update_MMOI(void) { eff_sched_var.Ixx = eff_sched_p.Ixx_body + eff_sched_var.cosr2 * eff_sched_p.Ixx_wing + eff_sched_var.sinr2 * eff_sched_p.Iyy_wing; eff_sched_var.Iyy = eff_sched_p.Iyy_body + eff_sched_var.sinr2 * eff_sched_p.Ixx_wing + eff_sched_var.cosr2 * eff_sched_p.Iyy_wing; @@ -263,7 +263,7 @@ void eff_scheduling_rot_wing_update_MMOI(void) Bound(eff_sched_var.Iyy, 0.01, 100.); } -void eff_scheduling_rot_wing_update_cmd(void) +void eff_scheduling_rotwing_update_cmd(void) { // These indexes depend on the INDI sequence, not the actuator IDX eff_sched_var.cmd_elevator = actuator_state_filt_vect[5]; @@ -272,7 +272,7 @@ void eff_scheduling_rot_wing_update_cmd(void) eff_sched_var.cmd_T_mean_scaled = (actuator_state_filt_vect[0] + actuator_state_filt_vect[1] + actuator_state_filt_vect[2] + actuator_state_filt_vect[3]) / 4. * 0.000853229; // Scaled with 8181 / 9600 / 1000 } -void eff_scheduling_rot_wing_update_airspeed(void) +void eff_scheduling_rotwing_update_airspeed(void) { eff_sched_var.airspeed = stateGetAirspeed_f(); Bound(eff_sched_var.airspeed, 0. , 30.); @@ -280,7 +280,7 @@ void eff_scheduling_rot_wing_update_airspeed(void) Bound(eff_sched_var.airspeed2, 0. , 900.); } -void eff_scheduling_rot_wing_update_hover_motor_effectiveness(void) +void eff_scheduling_rotwing_update_hover_motor_effectiveness(void) { // Pitch motor effectiveness @@ -330,7 +330,7 @@ void eff_scheduling_rot_wing_update_hover_motor_effectiveness(void) g1g2[1][3] = -roll_motor_q_eff; // pitch effectiveness left motor } -void eff_scheduling_rot_wing_update_elevator_effectiveness(void) +void eff_scheduling_rotwing_update_elevator_effectiveness(void) { float de = eff_sched_p.k_elevator_deflection[0] + eff_sched_p.k_elevator_deflection[1] * eff_sched_var.cmd_elevator; @@ -352,7 +352,7 @@ void eff_scheduling_rot_wing_update_elevator_effectiveness(void) g1g2[1][5] = eff_y_elev; } -void eff_scheduling_rot_wing_update_rudder_effectiveness(void) +void eff_scheduling_rotwing_update_rudder_effectiveness(void) { float dMzdr = (eff_sched_p.k_rudder[0] * eff_sched_var.cmd_pusher_scaled * eff_sched_var.cmd_T_mean_scaled + eff_sched_p.k_rudder[1] * eff_sched_var.cmd_T_mean_scaled * eff_sched_var.airspeed2 * eff_sched_var.cosr + @@ -370,7 +370,7 @@ void eff_scheduling_rot_wing_update_rudder_effectiveness(void) g1g2[2][4] = eff_z_rudder; } -void eff_scheduling_rot_wing_update_aileron_effectiveness(void) +void eff_scheduling_rotwing_update_aileron_effectiveness(void) { float dMxdpprz = (eff_sched_p.k_aileron * eff_sched_var.airspeed2 * eff_sched_var.sinr3) / 1000000.; float eff_x_aileron = dMxdpprz / eff_sched_var.Ixx; @@ -378,7 +378,7 @@ void eff_scheduling_rot_wing_update_aileron_effectiveness(void) g1g2[0][6] = eff_x_aileron; } -void eff_scheduling_rot_wing_update_flaperon_effectiveness(void) +void eff_scheduling_rotwing_update_flaperon_effectiveness(void) { float dMxdpprz = (eff_sched_p.k_flaperon * eff_sched_var.airspeed2 * eff_sched_var.sinr3) / 1000000.; float eff_x_flap_aileron = dMxdpprz / eff_sched_var.Ixx; @@ -386,7 +386,7 @@ void eff_scheduling_rot_wing_update_flaperon_effectiveness(void) g1g2[0][7] = eff_x_flap_aileron; } -void eff_scheduling_rot_wing_update_pusher_effectiveness(void) +void eff_scheduling_rotwing_update_pusher_effectiveness(void) { float rpmP = eff_sched_p.k_rpm_pprz_pusher[0] + eff_sched_p.k_rpm_pprz_pusher[1] * eff_sched_var.cmd_pusher + eff_sched_p.k_rpm_pprz_pusher[2] * eff_sched_var.cmd_pusher * eff_sched_var.cmd_pusher; @@ -399,9 +399,9 @@ void eff_scheduling_rot_wing_update_pusher_effectiveness(void) g1g2[4][8] = eff_pusher; } -float eff_scheduling_rot_wing_lift_d = 0.0f; +float eff_scheduling_rotwing_lift_d = 0.0f; -void eff_scheduling_rot_wing_schedule_liftd(void) +void eff_scheduling_rotwing_schedule_liftd(void) { float lift_d_wing = (eff_sched_p.k_lift_wing[0] + eff_sched_p.k_lift_wing[1] * eff_sched_var.sinr2) * eff_sched_var.airspeed2 / eff_sched_p.m; float lift_d_fuselage = eff_sched_p.k_lift_fuselage * eff_sched_var.airspeed2 / eff_sched_p.m; @@ -412,12 +412,12 @@ void eff_scheduling_rot_wing_schedule_liftd(void) lift_d = 0.0; } Bound(lift_d, -130., 0.); - eff_scheduling_rot_wing_lift_d = lift_d; + eff_scheduling_rotwing_lift_d = lift_d; } // Override standard LIFT_D function float guidance_indi_get_liftd(float pitch UNUSED, float theta UNUSED) { - return eff_scheduling_rot_wing_lift_d; + return eff_scheduling_rotwing_lift_d; } void stabilization_indi_set_wls_settings(void) diff --git a/sw/airborne/modules/ctrl/eff_scheduling_rot_wing.h b/sw/airborne/modules/ctrl/eff_scheduling_rotwing.h similarity index 90% rename from sw/airborne/modules/ctrl/eff_scheduling_rot_wing.h rename to sw/airborne/modules/ctrl/eff_scheduling_rotwing.h index 464fa97de9..5b08e15002 100644 --- a/sw/airborne/modules/ctrl/eff_scheduling_rot_wing.h +++ b/sw/airborne/modules/ctrl/eff_scheduling_rotwing.h @@ -18,17 +18,17 @@ * . */ -/** @file "modules/ctrl/eff_scheduling_rot_wing.h" +/** @file "modules/ctrl/eff_scheduling_rotwing.h" * @author Dennis van Wijngaarden * The control effectiveness scheduler for the rotating wing drone type */ -#ifndef CTRL_EFF_SCHED_ROT_WING_H -#define CTRL_EFF_SCHED_ROT_WING_H +#ifndef CTRL_EFF_SCHED_ROTWING_H +#define CTRL_EFF_SCHED_ROTWING_H #include "std.h" -struct rot_wing_eff_sched_param_t { +struct rotwing_eff_sched_param_t { float Ixx_body; // body MMOI around roll axis [kgm²] float Iyy_body; // body MMOI around pitch axis [kgm²] float Izz; // total MMOI around yaw axis [kgm²] @@ -51,7 +51,7 @@ struct rot_wing_eff_sched_param_t { float k_lift_tail; }; -struct rot_wing_eff_sched_var_t { +struct rotwing_eff_sched_var_t { float Ixx; // Total MMOI around roll axis [kgm²] float Iyy; // Total MMOI around pitch axis [kgm²] float wing_rotation_rad; // Wing rotation angle in radians: from ABI message @@ -84,8 +84,8 @@ extern int16_t rotation_cmd; extern float eff_sched_pusher_time; -extern void eff_scheduling_rot_wing_init(void); -extern void eff_scheduling_rot_wing_periodic(void); +extern void eff_scheduling_rotwing_init(void); +extern void eff_scheduling_rotwing_periodic(void); -#endif // CTRL_EFF_SCHED_ROT_WING_H +#endif // CTRL_EFF_SCHED_ROTWING_H diff --git a/sw/airborne/modules/ctrl/eff_scheduling_rot_wing_V2.c b/sw/airborne/modules/ctrl/eff_scheduling_rotwing_V2.c similarity index 90% rename from sw/airborne/modules/ctrl/eff_scheduling_rot_wing_V2.c rename to sw/airborne/modules/ctrl/eff_scheduling_rotwing_V2.c index 687e42fd3f..e65bfabfa7 100644 --- a/sw/airborne/modules/ctrl/eff_scheduling_rot_wing_V2.c +++ b/sw/airborne/modules/ctrl/eff_scheduling_rotwing_V2.c @@ -18,12 +18,12 @@ * . */ -/** @file "modules/ctrl/eff_scheduling_rot_wing_V2.c" +/** @file "modules/ctrl/eff_scheduling_rotwing_V2.c" * @author Tomaso De Ponti * The control effectiveness scheduler for the rotating wing drone type */ -#include "modules/ctrl/eff_scheduling_rot_wing_V2.h" +#include "modules/ctrl/eff_scheduling_rotwing_V2.h" #include "generated/airframe.h" #include "state.h" #include "modules/actuators/actuators.h" @@ -38,33 +38,33 @@ float actuator_state_filt_vect[EFF_MAT_COLS_NB] = {0}; #include "firmwares/rotorcraft/stabilization/stabilization_indi.h" #endif -#ifndef ROT_WING_EFF_SCHED_IXX_BODY -#error "NO ROT_WING_EFF_SCHED_IXX_BODY defined" +#ifndef ROTWING_EFF_SCHED_IXX_BODY +#error "NO ROTWING_EFF_SCHED_IXX_BODY defined" #endif -#ifndef ROT_WING_EFF_SCHED_IYY_BODY -#error "NO ROT_WING_EFF_SCHED_IYY_BODY defined" +#ifndef ROTWING_EFF_SCHED_IYY_BODY +#error "NO ROTWING_EFF_SCHED_IYY_BODY defined" #endif -#ifndef ROT_WING_EFF_SCHED_IZZ -#error "NO ROT_WING_EFF_SCHED_IZZ defined" +#ifndef ROTWING_EFF_SCHED_IZZ +#error "NO ROTWING_EFF_SCHED_IZZ defined" #endif -#ifndef ROT_WING_EFF_SCHED_IXX_WING -#error "NO ROT_WING_EFF_SCHED_IXX_WING defined" +#ifndef ROTWING_EFF_SCHED_IXX_WING +#error "NO ROTWING_EFF_SCHED_IXX_WING defined" #endif -#ifndef ROT_WING_EFF_SCHED_IYY_WING -#error "NO ROT_WING_EFF_SCHED_IYY_WING defined" +#ifndef ROTWING_EFF_SCHED_IYY_WING +#error "NO ROTWING_EFF_SCHED_IYY_WING defined" #endif -#ifndef ROT_WING_EFF_SCHED_M -#error "NO ROT_WING_EFF_SCHED_M defined" +#ifndef ROTWING_EFF_SCHED_M +#error "NO ROTWING_EFF_SCHED_M defined" #endif /* Effectiveness Matrix definition */ -float G2_RW[EFF_MAT_COLS_NB] = {0};//ROT_WING_EFF_SCHED_G2; //scaled by RW_G_SCALE -float G1_RW[EFF_MAT_ROWS_NB][EFF_MAT_COLS_NB] = {0};//{ROT_WING_EFF_SCHED_G1_ZERO, ROT_WING_EFF_SCHED_G1_ZERO, ROT_WING_EFF_SCHED_G1_THRUST, ROT_WING_EFF_SCHED_G1_ROLL, ROT_WING_EFF_SCHED_G1_PITCH, ROT_WING_EFF_SCHED_G1_YAW}; //scaled by RW_G_SCALE +float G2_RW[EFF_MAT_COLS_NB] = {0};//ROTWING_EFF_SCHED_G2; //scaled by RW_G_SCALE +float G1_RW[EFF_MAT_ROWS_NB][EFF_MAT_COLS_NB] = {0};//{ROTWING_EFF_SCHED_G1_ZERO, ROTWING_EFF_SCHED_G1_ZERO, ROTWING_EFF_SCHED_G1_THRUST, ROTWING_EFF_SCHED_G1_ROLL, ROTWING_EFF_SCHED_G1_PITCH, ROTWING_EFF_SCHED_G1_YAW}; //scaled by RW_G_SCALE float EFF_MAT_RW[EFF_MAT_ROWS_NB][EFF_MAT_COLS_NB] = {0}; static float flt_cut = 1.0e-4; @@ -78,8 +78,8 @@ float ele_min = 0.0; /* Define Forces and Moments tructs for each actuator*/ struct RW_Model RW; -inline void eff_scheduling_rot_wing_update_wing_angle(void); -inline void eff_scheduling_rot_wing_update_airspeed(void); +inline void eff_scheduling_rotwing_update_wing_angle(void); +inline void eff_scheduling_rotwing_update_airspeed(void); void ele_pref_sched(void); void update_attitude(void); void sum_EFF_MAT_RW(void); @@ -88,10 +88,10 @@ void calc_G1_G2_RW(void); /** ABI binding wing position data. */ -#ifndef WING_ROTATION_CAN_ROT_WING_ID -#define WING_ROTATION_CAN_ROT_WING_ID ABI_BROADCAST +#ifndef WING_ROTATION_CAN_ROTWING_ID +#define WING_ROTATION_CAN_ROTWING_ID ABI_BROADCAST #endif -PRINT_CONFIG_VAR(WING_ROTATION_CAN_ROT_WING_ID) +PRINT_CONFIG_VAR(WING_ROTATION_CAN_ROTWING_ID) static abi_event wing_position_ev; float skew_meas = 0.0; @@ -106,11 +106,11 @@ static void wing_position_cb(uint8_t sender_id UNUSED, struct act_feedback_t *po } } -void eff_scheduling_rot_wing_init(void) +void eff_scheduling_rotwing_init(void) { init_RW_Model(); update_attitude(); - AbiBindMsgACT_FEEDBACK(WING_ROTATION_CAN_ROT_WING_ID, &wing_position_ev, wing_position_cb); + AbiBindMsgACT_FEEDBACK(WING_ROTATION_CAN_ROTWING_ID, &wing_position_ev, wing_position_cb); float tau_skew = 1.0 / (2.0 * M_PI * 5.0); float sample_time = 1.0 / PERIODIC_FREQUENCY; init_butterworth_2_low_pass(&skew_filt, tau_skew, sample_time, 0.0); @@ -268,11 +268,11 @@ void calc_G1_G2_RW(void) RW.P = actuator_state_1l[COMMAND_MOTOR_PUSHER] * RW.mP.dFdu; } -void eff_scheduling_rot_wing_periodic(void) +void eff_scheduling_rotwing_periodic(void) { update_attitude(); - eff_scheduling_rot_wing_update_wing_angle(); - eff_scheduling_rot_wing_update_airspeed(); + eff_scheduling_rotwing_update_wing_angle(); + eff_scheduling_rotwing_update_airspeed(); ele_pref_sched(); calc_G1_G2_RW(); sum_EFF_MAT_RW(); @@ -359,7 +359,7 @@ void sum_EFF_MAT_RW(void) { } } -void eff_scheduling_rot_wing_update_wing_angle(void) +void eff_scheduling_rotwing_update_wing_angle(void) { // Calculate sin and cosines of rotation update_butterworth_2_low_pass(&skew_filt, skew_meas); @@ -379,7 +379,7 @@ void eff_scheduling_rot_wing_update_wing_angle(void) } float time = 0.0; -void eff_scheduling_rot_wing_update_airspeed(void) +void eff_scheduling_rotwing_update_airspeed(void) { RW.as = stateGetAirspeed_f(); Bound(RW.as, 0. , 30.); diff --git a/sw/airborne/modules/ctrl/eff_scheduling_rot_wing_V2.h b/sw/airborne/modules/ctrl/eff_scheduling_rotwing_V2.h similarity index 95% rename from sw/airborne/modules/ctrl/eff_scheduling_rot_wing_V2.h rename to sw/airborne/modules/ctrl/eff_scheduling_rotwing_V2.h index c47c48817a..2490895e79 100644 --- a/sw/airborne/modules/ctrl/eff_scheduling_rot_wing_V2.h +++ b/sw/airborne/modules/ctrl/eff_scheduling_rotwing_V2.h @@ -18,13 +18,13 @@ * . */ -/** @file "modules/ctrl/eff_scheduling_rot_wing_V2.h" +/** @file "modules/ctrl/eff_scheduling_rotwing_V2.h" * @author Tomaso De Ponti * The control effectiveness scheduler for the rotating wing drone type */ -#ifndef CTRL_EFF_SCHED_ROT_WING_H -#define CTRL_EFF_SCHED_ROT_WING_H +#ifndef CTRL_EFF_SCHED_ROTWING_H +#define CTRL_EFF_SCHED_ROTWING_H #include "std.h" #include "generated/airframe.h" @@ -65,7 +65,7 @@ extern float EFF_MAT_RW[EFF_MAT_ROWS_NB][EFF_MAT_COLS_NB]; extern float G2_RW[EFF_MAT_COLS_NB] ; extern float G1_RW[EFF_MAT_ROWS_NB][EFF_MAT_COLS_NB] ; -struct rot_wing_eff_sched_param_t { +struct rotwing_eff_sched_param_t { float Ixx_body; // body MMOI around roll axis [kgm²] float Iyy_body; // body MMOI around pitch axis [kgm²] float Izz; // total MMOI around yaw axis [kgm²] @@ -88,7 +88,7 @@ struct rot_wing_eff_sched_param_t { float k_lift_tail; }; -struct rot_wing_eff_sched_var_t { +struct rotwing_eff_sched_var_t { float Ixx; // Total MMOI around roll axis [kgm²] float Iyy; // Total MMOI around pitch axis [kgm²] float wing_rotation_rad; // Wing rotation angle in radians: from ABI message @@ -194,9 +194,9 @@ extern int16_t rotation_cmd; extern float eff_sched_pusher_time; -extern void eff_scheduling_rot_wing_init(void); -extern void eff_scheduling_rot_wing_periodic(void); +extern void eff_scheduling_rotwing_init(void); +extern void eff_scheduling_rotwing_periodic(void); extern struct RW_Model RW; -#endif // CTRL_EFF_SCHED_ROT_WING_H +#endif // CTRL_EFF_SCHED_ROTWING_H diff --git a/sw/airborne/modules/meteo/ekf_aw_wrapper.c b/sw/airborne/modules/meteo/ekf_aw_wrapper.c index 9e7a4a68f9..becd3ca494 100644 --- a/sw/airborne/modules/meteo/ekf_aw_wrapper.c +++ b/sw/airborne/modules/meteo/ekf_aw_wrapper.c @@ -15,8 +15,8 @@ -#ifndef EKF_AW_WRAPPER_ROT_WING -#define EKF_AW_WRAPPER_ROT_WING false +#ifndef EKF_AW_WRAPPER_ROTWING +#define EKF_AW_WRAPPER_ROTWING false #endif #ifndef EKF_AW_WRAPPER_RANDOM_INPUTS #define EKF_AW_WRAPPER_RANDOM_INPUTS false @@ -31,8 +31,8 @@ #define EKF_AW_DEBUG false #endif -#if EKF_AW_WRAPPER_ROT_WING -#include "modules/rot_wing_drone/wing_rotation_controller_servo.h" +#if EKF_AW_WRAPPER_ROTWING +#include "modules/rotwing_drone/wing_rotation_controller_servo.h" #endif #if PERIODIC_TELEMETRY @@ -348,7 +348,7 @@ void ekf_aw_wrapper_fetch(void) // Getting body accel struct FloatVect3 body_accel_f = {0.0f, 0.0f, 0.0f}; -#if EKF_AW_WRAPPER_ROT_WING +#if EKF_AW_WRAPPER_ROTWING // If body accel available, can use this struct Int32Vect3 *body_accel_i; body_accel_i = stateGetAccelBody_i(); @@ -387,7 +387,7 @@ void ekf_aw_wrapper_fetch(void) } update_butterworth_2_low_pass(&filt_pusher_prop_rpm, ekf_aw.last_RPM_pusher * 1.0f); -#if EKF_AW_WRAPPER_ROT_WING +#if EKF_AW_WRAPPER_ROTWING update_butterworth_2_low_pass(&filt_skew, RadOfDeg(wing_rotation.wing_angle_deg)); // Get elevator pprz signal diff --git a/sw/airborne/modules/rot_wing_drone/rot_wing_automation.c b/sw/airborne/modules/rotwing_drone/rotwing_automation.c similarity index 61% rename from sw/airborne/modules/rot_wing_drone/rot_wing_automation.c rename to sw/airborne/modules/rotwing_drone/rotwing_automation.c index 1d3e7a2db1..6101b40aee 100644 --- a/sw/airborne/modules/rot_wing_drone/rot_wing_automation.c +++ b/sw/airborne/modules/rotwing_drone/rotwing_automation.c @@ -18,12 +18,12 @@ * . */ -/** @file "modules/rot_wing_drone/rot_wing_automation.c" +/** @file "modules/rotwing_drone/rotwing_automation.c" * @author Dennis van Wijngaarden * Fucntions to automate the navigation and guidance of the rotating wing drone */ -#include "modules/rot_wing_drone/rot_wing_automation.h" +#include "modules/rotwing_drone/rotwing_automation.h" #include "state.h" #include "modules/datalink/telemetry.h" #include "filters/low_pass_filter.h" @@ -34,73 +34,73 @@ #include "generated/modules.h" /*** Longitudinal maximum acceleration during a transition */ -#ifndef ROT_WING_AUTOMATION_TRANS_ACCEL -#define ROT_WING_AUTOMATION_TRANS_ACCEL 1.0 +#ifndef ROTWING_AUTOMATION_TRANS_ACCEL +#define ROTWING_AUTOMATION_TRANS_ACCEL 1.0 #endif /*** Longitudinal maximum deceleration during a transition */ -#ifndef ROT_WING_AUTOMATION_TRANS_DECEL -#define ROT_WING_AUTOMATION_TRANS_DECEL 0.5 +#ifndef ROTWING_AUTOMATION_TRANS_DECEL +#define ROTWING_AUTOMATION_TRANS_DECEL 0.5 #endif /*** Maximum transition distance (at which to draw waypoints) */ -#ifndef ROT_WING_AUTOMATION_TRANS_LENGTH -#define ROT_WING_AUTOMATION_TRANS_LENGTH 200.0 +#ifndef ROTWING_AUTOMATION_TRANS_LENGTH +#define ROTWING_AUTOMATION_TRANS_LENGTH 200.0 #endif /*** Airspeed threshold above which the transiton is considered complete */ -#ifndef ROT_WING_AUTOMATION_TRANS_AIRSPEED -#define ROT_WING_AUTOMATION_TRANS_AIRSPEED 15.0 +#ifndef ROTWING_AUTOMATION_TRANS_AIRSPEED +#define ROTWING_AUTOMATION_TRANS_AIRSPEED 15.0 #endif /*** Wind low-pass filtering cutoff frequency */ -#ifndef ROT_WING_AUTOMATION_WIND_FILT_CUTOFF -#define ROT_WING_AUTOMATION_WIND_FILT_CUTOFF 0.001 +#ifndef ROTWING_AUTOMATION_WIND_FILT_CUTOFF +#define ROTWING_AUTOMATION_WIND_FILT_CUTOFF 0.001 #endif -struct rot_wing_automation rot_wing_a; +struct rotwing_automation rotwing_a; // Declare filters (for windspeed estimation) -Butterworth2LowPass rot_wing_automation_wind_filter[2]; // Wind filter +Butterworth2LowPass rotwing_automation_wind_filter[2]; // Wind filter // declare function -inline void update_waypoint_rot_wing_automation(uint8_t wp_id, struct FloatVect3 *target_ned); +inline void update_waypoint_rotwing_automation(uint8_t wp_id, struct FloatVect3 *target_ned); inline void update_wind_vector(void); -void init_rot_wing_automation(void) +void init_rotwing_automation(void) { - rot_wing_a.trans_accel = ROT_WING_AUTOMATION_TRANS_ACCEL; - rot_wing_a.trans_decel = ROT_WING_AUTOMATION_TRANS_DECEL; - rot_wing_a.trans_length = ROT_WING_AUTOMATION_TRANS_LENGTH; - rot_wing_a.trans_airspeed = ROT_WING_AUTOMATION_TRANS_AIRSPEED; + rotwing_a.trans_accel = ROTWING_AUTOMATION_TRANS_ACCEL; + rotwing_a.trans_decel = ROTWING_AUTOMATION_TRANS_DECEL; + rotwing_a.trans_length = ROTWING_AUTOMATION_TRANS_LENGTH; + rotwing_a.trans_airspeed = ROTWING_AUTOMATION_TRANS_AIRSPEED; - rot_wing_a.transitioned = false; - rot_wing_a.windvect.x = 0.0; - rot_wing_a.windvect.y = 0.0; - rot_wing_a.windvect_f.x = 0.0; - rot_wing_a.windvect_f.y = 0.0; + rotwing_a.transitioned = false; + rotwing_a.windvect.x = 0.0; + rotwing_a.windvect.y = 0.0; + rotwing_a.windvect_f.x = 0.0; + rotwing_a.windvect_f.y = 0.0; // Init windvector low pass filter - float tau = 1.0 / (2.0 * M_PI * ROT_WING_AUTOMATION_WIND_FILT_CUTOFF); - float sample_time = 1.0 / PERIODIC_ROT_WING_AUTOMATION_FREQ; - init_butterworth_2_low_pass(&rot_wing_automation_wind_filter[0], tau, sample_time, 0.0); - init_butterworth_2_low_pass(&rot_wing_automation_wind_filter[1], tau, sample_time, 0.0); + float tau = 1.0 / (2.0 * M_PI * ROTWING_AUTOMATION_WIND_FILT_CUTOFF); + float sample_time = 1.0 / PERIODIC_ROTWING_AUTOMATION_FREQ; + init_butterworth_2_low_pass(&rotwing_automation_wind_filter[0], tau, sample_time, 0.0); + init_butterworth_2_low_pass(&rotwing_automation_wind_filter[1], tau, sample_time, 0.0); } // periodic function -void periodic_rot_wing_automation(void) +void periodic_rotwing_automation(void) { update_wind_vector(); float airspeed = stateGetAirspeed_f(); - if (airspeed > rot_wing_a.trans_airspeed) { - rot_wing_a.transitioned = true; + if (airspeed > rotwing_a.trans_airspeed) { + rotwing_a.transitioned = true; } else { - rot_wing_a.transitioned = false; + rotwing_a.transitioned = false; } } // Update a waypoint such that you can see on the GCS where the drone wants to go -void update_waypoint_rot_wing_automation(uint8_t wp_id, struct FloatVect3 *target_ned) +void update_waypoint_rotwing_automation(uint8_t wp_id, struct FloatVect3 *target_ned) { // Update the waypoint @@ -128,15 +128,15 @@ void update_wind_vector(void) float airspeed = stateGetAirspeed_f(); struct NedCoor_f *groundspeed = stateGetSpeedNed_f(); struct FloatVect2 airspeed_v = { cpsi * airspeed, spsi * airspeed }; - VECT2_DIFF(rot_wing_a.windvect, *groundspeed, airspeed_v); + VECT2_DIFF(rotwing_a.windvect, *groundspeed, airspeed_v); // Filter the wind - rot_wing_a.windvect_f.x = update_butterworth_2_low_pass(&rot_wing_automation_wind_filter[0], rot_wing_a.windvect.x); - rot_wing_a.windvect_f.x = update_butterworth_2_low_pass(&rot_wing_automation_wind_filter[1], rot_wing_a.windvect.y); + rotwing_a.windvect_f.x = update_butterworth_2_low_pass(&rotwing_automation_wind_filter[0], rotwing_a.windvect.x); + rotwing_a.windvect_f.x = update_butterworth_2_low_pass(&rotwing_automation_wind_filter[1], rotwing_a.windvect.y); } // Function to visualize from flightplan, call repeadely -void rot_wing_vis_transition(uint8_t wp_transition_id, uint8_t wp_decel_id, uint8_t wp_end_id) +void rotwing_vis_transition(uint8_t wp_transition_id, uint8_t wp_decel_id, uint8_t wp_end_id) { //state eulers in zxy order struct FloatEulers eulers_zxy; @@ -159,16 +159,16 @@ void rot_wing_vis_transition(uint8_t wp_transition_id, uint8_t wp_decel_id, uint // Move end transition waypoint at the correct length struct FloatVect3 end_transition_rel_pos; VECT3_COPY(end_transition_rel_pos, *drone_pos); - end_transition_rel_pos.x = cpsi * rot_wing_a.trans_length; - end_transition_rel_pos.y = spsi * rot_wing_a.trans_length; + end_transition_rel_pos.x = cpsi * rotwing_a.trans_length; + end_transition_rel_pos.y = spsi * rotwing_a.trans_length; struct FloatVect3 end_transition_pos; VECT3_SUM(end_transition_pos, end_transition_rel_pos, *drone_pos); end_transition_pos.z = drone_pos->z; - update_waypoint_rot_wing_automation(wp_end_id, &end_transition_pos); + update_waypoint_rotwing_automation(wp_end_id, &end_transition_pos); // Move transition waypoint - float airspeed_error = rot_wing_a.trans_airspeed - airspeed; - float transition_time = airspeed_error / rot_wing_a.trans_accel; + float airspeed_error = rotwing_a.trans_airspeed - airspeed; + float transition_time = airspeed_error / rotwing_a.trans_accel; float average_ground_speed = ground_speed + airspeed_error / 2.; float transition_distance = average_ground_speed * transition_time; @@ -179,13 +179,13 @@ void rot_wing_vis_transition(uint8_t wp_transition_id, uint8_t wp_decel_id, uint struct FloatVect3 transition_pos; VECT3_SUM(transition_pos, transition_rel_pos, *drone_pos); transition_pos.z = drone_pos->z; - update_waypoint_rot_wing_automation(wp_transition_id, &transition_pos); + update_waypoint_rotwing_automation(wp_transition_id, &transition_pos); // Move decel point float final_groundspeed = ground_speed + airspeed_error; - float decel_time = final_groundspeed / rot_wing_a.trans_decel; + float decel_time = final_groundspeed / rotwing_a.trans_decel; float decel_distance = (final_groundspeed / 2.) * decel_time; - float decel_distance_from_drone = rot_wing_a.trans_length - decel_distance; + float decel_distance_from_drone = rotwing_a.trans_length - decel_distance; struct FloatVect3 decel_rel_pos; VECT3_COPY(decel_rel_pos, *drone_pos); @@ -194,5 +194,5 @@ void rot_wing_vis_transition(uint8_t wp_transition_id, uint8_t wp_decel_id, uint struct FloatVect3 decel_pos; VECT3_SUM(decel_pos, decel_rel_pos, *drone_pos); decel_pos.z = drone_pos->z; - update_waypoint_rot_wing_automation(wp_decel_id, &decel_pos); + update_waypoint_rotwing_automation(wp_decel_id, &decel_pos); } diff --git a/sw/airborne/modules/rot_wing_drone/rot_wing_automation.h b/sw/airborne/modules/rotwing_drone/rotwing_automation.h similarity index 70% rename from sw/airborne/modules/rot_wing_drone/rot_wing_automation.h rename to sw/airborne/modules/rotwing_drone/rotwing_automation.h index d9d2e303b7..4d2adf10fb 100644 --- a/sw/airborne/modules/rot_wing_drone/rot_wing_automation.h +++ b/sw/airborne/modules/rotwing_drone/rotwing_automation.h @@ -18,28 +18,28 @@ * . */ -/** @file "modules/rot_wing_drone/rot_wing_automation.h" +/** @file "modules/rotwing_drone/rotwing_automation.h" * @author Dennis van Wijngaarden * Fucntions to automate the navigation and guidance of the rotating wing drone */ -#ifndef ROT_WING_AUTOMATION_H -#define ROT_WING_AUTOMATION_H +#ifndef ROTWING_AUTOMATION_H +#define ROTWING_AUTOMATION_H #include "std.h" #include "math/pprz_algebra_float.h" #ifdef RW_USE_MODULES_V2 -#include "modules/rot_wing_drone/rotwing_state_V2.h" +#include "modules/rotwing_drone/rotwing_state_V2.h" #else -#include "modules/rot_wing_drone/rotwing_state.h" +#include "modules/rotwing_drone/rotwing_state.h" #endif -extern void init_rot_wing_automation(void); -extern void periodic_rot_wing_automation(void); -extern void rot_wing_vis_transition(uint8_t wp_transition_id, uint8_t wp_decel_id, uint8_t wp_end_id); +extern void init_rotwing_automation(void); +extern void periodic_rotwing_automation(void); +extern void rotwing_vis_transition(uint8_t wp_transition_id, uint8_t wp_decel_id, uint8_t wp_end_id); -struct rot_wing_automation { +struct rotwing_automation { // Constants float trans_accel; // Acceleration during transition float trans_decel; // Deceleration during transition @@ -52,9 +52,9 @@ struct rot_wing_automation { struct FloatVect2 windvect_f; // Filtered wind vector }; -extern struct rot_wing_automation rot_wing_a; +extern struct rotwing_automation rotwing_a; -#define RotWingAutomationReadyForForward() (rot_wing_a.transitioned && (rotwing_state_skewing.wing_angle_deg > 75.0)) +#define RotWingAutomationReadyForForward() (rotwing_a.transitioned && (rotwing_state_skewing.wing_angle_deg > 75.0)) -#endif // ROT_WING_AUTOMATION_H +#endif // ROTWING_AUTOMATION_H diff --git a/sw/airborne/modules/rot_wing_drone/rotwing_state.c b/sw/airborne/modules/rotwing_drone/rotwing_state.c similarity index 99% rename from sw/airborne/modules/rot_wing_drone/rotwing_state.c rename to sw/airborne/modules/rotwing_drone/rotwing_state.c index 8cff08ed9e..22ecef0bdd 100644 --- a/sw/airborne/modules/rot_wing_drone/rotwing_state.c +++ b/sw/airborne/modules/rotwing_drone/rotwing_state.c @@ -23,7 +23,7 @@ * This module keeps track of the current state of a rotating wing drone and desired state set by the RC or flightplan. Paramters are being scheduled in each change of a current state and desired state. Functions are defined in this module to call the actual state and desired state and set a desired state. */ -#include "modules/rot_wing_drone/rotwing_state.h" +#include "modules/rotwing_drone/rotwing_state.h" #include "firmwares/rotorcraft/stabilization/stabilization_indi.h" #include "firmwares/rotorcraft/guidance/guidance_indi_hybrid.h" #include "modules/nav/nav_rotorcraft_hybrid.h" diff --git a/sw/airborne/modules/rot_wing_drone/rotwing_state.h b/sw/airborne/modules/rotwing_drone/rotwing_state.h similarity index 100% rename from sw/airborne/modules/rot_wing_drone/rotwing_state.h rename to sw/airborne/modules/rotwing_drone/rotwing_state.h diff --git a/sw/airborne/modules/rot_wing_drone/rotwing_state_V2.c b/sw/airborne/modules/rotwing_drone/rotwing_state_V2.c similarity index 99% rename from sw/airborne/modules/rot_wing_drone/rotwing_state_V2.c rename to sw/airborne/modules/rotwing_drone/rotwing_state_V2.c index 46b18c4040..953bc65dfa 100644 --- a/sw/airborne/modules/rot_wing_drone/rotwing_state_V2.c +++ b/sw/airborne/modules/rotwing_drone/rotwing_state_V2.c @@ -23,7 +23,7 @@ * This module keeps track of the current state of a rotating wing drone and desired state set by the RC or flightplan. Paramters are being scheduled in each change of a current state and desired state. Functions are defined in this module to call the actual state and desired state and set a desired state. */ -#include "modules/rot_wing_drone/rotwing_state_V2.h" +#include "modules/rotwing_drone/rotwing_state_V2.h" #include "firmwares/rotorcraft/autopilot_firmware.h" #include "modules/core/commands.h" #include "modules/actuators/actuators.h" diff --git a/sw/airborne/modules/rot_wing_drone/rotwing_state_V2.h b/sw/airborne/modules/rotwing_drone/rotwing_state_V2.h similarity index 100% rename from sw/airborne/modules/rot_wing_drone/rotwing_state_V2.h rename to sw/airborne/modules/rotwing_drone/rotwing_state_V2.h diff --git a/sw/airborne/modules/rot_wing_drone/wing_rotation_adc_sensor.c b/sw/airborne/modules/rotwing_drone/wing_rotation_adc_sensor.c similarity index 95% rename from sw/airborne/modules/rot_wing_drone/wing_rotation_adc_sensor.c rename to sw/airborne/modules/rotwing_drone/wing_rotation_adc_sensor.c index b79e3d09dc..d0feaeb3ed 100644 --- a/sw/airborne/modules/rot_wing_drone/wing_rotation_adc_sensor.c +++ b/sw/airborne/modules/rotwing_drone/wing_rotation_adc_sensor.c @@ -18,12 +18,12 @@ * . */ -/** @file "modules/rot_wing_drone/wing_rotation_adc_sensor.c" +/** @file "modules/rotwing_drone/wing_rotation_adc_sensor.c" * @author Dennis van Wijngaarden * Module to read skew angle from adc sensor */ -#include "modules/rot_wing_drone/wing_rotation_adc_sensor.h" +#include "modules/rotwing_drone/wing_rotation_adc_sensor.h" #include "generated/airframe.h" #include "modules/core/abi.h" diff --git a/sw/airborne/modules/rot_wing_drone/wing_rotation_adc_sensor.h b/sw/airborne/modules/rotwing_drone/wing_rotation_adc_sensor.h similarity index 93% rename from sw/airborne/modules/rot_wing_drone/wing_rotation_adc_sensor.h rename to sw/airborne/modules/rotwing_drone/wing_rotation_adc_sensor.h index 32dac4452b..ac5d6d0657 100644 --- a/sw/airborne/modules/rot_wing_drone/wing_rotation_adc_sensor.h +++ b/sw/airborne/modules/rotwing_drone/wing_rotation_adc_sensor.h @@ -18,7 +18,7 @@ * . */ -/** @file "modules/rot_wing_drone/wing_rotation_controller_adc_sensor.h" +/** @file "modules/rotwing_drone/wing_rotation_controller_adc_sensor.h" * @author Dennis van Wijngaarden * Module to read skew angle from adc sensor */ diff --git a/sw/ground_segment/python/rot_wing_mon/rot_wing_mon.py b/sw/ground_segment/python/rotwing_mon/rotwing_mon.py similarity index 92% rename from sw/ground_segment/python/rot_wing_mon/rot_wing_mon.py rename to sw/ground_segment/python/rotwing_mon/rotwing_mon.py index 1fd32e42bd..64fcc1c84d 100755 --- a/sw/ground_segment/python/rot_wing_mon/rot_wing_mon.py +++ b/sw/ground_segment/python/rotwing_mon/rotwing_mon.py @@ -19,11 +19,11 @@ # import wx -import rot_wing_viewer +import rotwing_viewer class RotWingApp(wx.App): def OnInit(self): - self.main = rot_wing_viewer.RotWingFrame() + self.main = rotwing_viewer.RotWingFrame() self.main.Show() self.SetTopWindow(self.main) return True diff --git a/sw/ground_segment/python/rot_wing_mon/rot_wing_viewer.py b/sw/ground_segment/python/rotwing_mon/rotwing_viewer.py similarity index 99% rename from sw/ground_segment/python/rot_wing_mon/rot_wing_viewer.py rename to sw/ground_segment/python/rotwing_mon/rotwing_viewer.py index 5589a5aa88..2a87c2d346 100644 --- a/sw/ground_segment/python/rot_wing_mon/rot_wing_viewer.py +++ b/sw/ground_segment/python/rotwing_mon/rotwing_viewer.py @@ -296,7 +296,7 @@ class RotWingFrame(wx.Frame): self.w = WIDTH self.h = WIDTH + BARH - self.cfg = wx.Config('rot_wing_conf') + self.cfg = wx.Config('rotwing_conf') if self.cfg.Exists('width'): self.w = int(self.cfg.Read('width')) self.h = int(self.cfg.Read('height')) diff --git a/sw/ground_segment/python/rot_wing_visualizer/rot_wing_vis_o3d_app.py b/sw/ground_segment/python/rotwing_visualizer/rotwing_vis_o3d_app.py similarity index 100% rename from sw/ground_segment/python/rot_wing_visualizer/rot_wing_vis_o3d_app.py rename to sw/ground_segment/python/rotwing_visualizer/rotwing_vis_o3d_app.py