From cb97031d470047e429b10756776c5c9dbf0ee446 Mon Sep 17 00:00:00 2001 From: Christophe De Wagter Date: Mon, 9 Oct 2023 08:08:32 +0200 Subject: [PATCH] [airframes] RW25kg (#3133) * [airframe] RW25kg --- conf/airframes/tudelft/rot_wing_25kg.xml | 431 ++++++++++++++++++ .../tudelft/rotating_wing25kg_EHVB.xml | 164 +++++++ conf/modules/ctrl_eff_sched_rot_wing.xml | 5 +- conf/simulator/jsbsim/aircraft/rotwing25.xml | 2 +- conf/userconf/tudelft/conf.xml | 11 + sw/airborne/filters/notch_filter_float.h | 2 +- .../modules/ctrl/ctrl_eff_sched_rot_wing.c | 6 +- .../modules/radio_control/rc_datalink.h | 4 + 8 files changed, 621 insertions(+), 4 deletions(-) create mode 100644 conf/airframes/tudelft/rot_wing_25kg.xml create mode 100644 conf/flight_plans/tudelft/rotating_wing25kg_EHVB.xml diff --git a/conf/airframes/tudelft/rot_wing_25kg.xml b/conf/airframes/tudelft/rot_wing_25kg.xml new file mode 100644 index 0000000000..da7a2dbeb9 --- /dev/null +++ b/conf/airframes/tudelft/rot_wing_25kg.xml @@ -0,0 +1,431 @@ + + + + RotatingWing25Kg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + + +
+ + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+ + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+ + + + +
+ +
+ + + + + +
+ +
+ + + + + + +
+
diff --git a/conf/flight_plans/tudelft/rotating_wing25kg_EHVB.xml b/conf/flight_plans/tudelft/rotating_wing25kg_EHVB.xml new file mode 100644 index 0000000000..e322aa1234 --- /dev/null +++ b/conf/flight_plans/tudelft/rotating_wing25kg_EHVB.xml @@ -0,0 +1,164 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/conf/modules/ctrl_eff_sched_rot_wing.xml b/conf/modules/ctrl_eff_sched_rot_wing.xml index 24e1294953..34de557b09 100644 --- a/conf/modules/ctrl_eff_sched_rot_wing.xml +++ b/conf/modules/ctrl_eff_sched_rot_wing.xml @@ -1,7 +1,9 @@ - The control effectiveness scheduler for the rotating wing drone type + The control effectiveness scheduler for the rotating wing quadplane drone type + - it requires a servo called ROTATION_MECH +
@@ -30,6 +32,7 @@ + diff --git a/conf/simulator/jsbsim/aircraft/rotwing25.xml b/conf/simulator/jsbsim/aircraft/rotwing25.xml index b5a411e7c1..ce50a2345c 100644 --- a/conf/simulator/jsbsim/aircraft/rotwing25.xml +++ b/conf/simulator/jsbsim/aircraft/rotwing25.xml @@ -41,7 +41,7 @@ 0. 0. 0. - 28.67 + 56 0 0 diff --git a/conf/userconf/tudelft/conf.xml b/conf/userconf/tudelft/conf.xml index f093188afd..5eb5ed24ed 100644 --- a/conf/userconf/tudelft/conf.xml +++ b/conf/userconf/tudelft/conf.xml @@ -571,4 +571,15 @@ settings_modules="modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_rotorcraft.xml modules/stabilization_indi.xml" gui_color="red" /> + diff --git a/sw/airborne/filters/notch_filter_float.h b/sw/airborne/filters/notch_filter_float.h index 557f529718..a24575baf3 100644 --- a/sw/airborne/filters/notch_filter_float.h +++ b/sw/airborne/filters/notch_filter_float.h @@ -101,7 +101,7 @@ static inline void notch_filter_update(struct SecondOrderNotchFilter *filter, fl */ -static inline float notch_filter_get_output(struct notch_filter_float *filter) +static inline float notch_filter_get_output(struct SecondOrderNotchFilter *filter) { return filter->yn1; } diff --git a/sw/airborne/modules/ctrl/ctrl_eff_sched_rot_wing.c b/sw/airborne/modules/ctrl/ctrl_eff_sched_rot_wing.c index 013e1d5a60..9c9c4ff687 100644 --- a/sw/airborne/modules/ctrl/ctrl_eff_sched_rot_wing.c +++ b/sw/airborne/modules/ctrl/ctrl_eff_sched_rot_wing.c @@ -28,6 +28,10 @@ #include "firmwares/rotorcraft/stabilization/stabilization_indi.h" #include "modules/core/abi.h" +#ifndef SERVO_ROTATION_MECH +#error ctrl_eff_sched_rot_wing requires a servo named ROTATION_MECH +#endif + #ifndef ROT_WING_EFF_SCHED_IXX_BODY #error "NO ROT_WING_EFF_SCHED_IXX_BODY defined" @@ -117,7 +121,7 @@ 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) { for (int i=0; i