* WLS Debug

WLS Debug

* track new develop branch

* WLS to use pointer of struct to allow multiple calls of WLS in the same control loop

* additional changes and bug fixes to wls struct pointer rework

* Track new pprzling branch with wls msg additions

* code clean up

* Implement new WLS in guidance and stabilization

* code clean up

* add wls mesg to telemetry. Fix stabilization wanring.

* track pprzlink

* Better casing

* Use WLS_N_U_MAX and WLS_N_V_MAX

* Register periodic telemetry of WLS only if WLS is used

* Track master pprzlink

* Shortened explanation of parameters

* track pprzlink master

---------

Co-authored-by: Tomaso Maria Luigi De Ponti <48210579+tmldeponti@users.noreply.github.com>
Co-authored-by: tomaso_de_ponti <tomasodp@gmail.com>
This commit is contained in:
Christophe De Wagter
2024-07-17 21:04:34 +02:00
committed by GitHub
parent 455d883677
commit 4e00e22993
42 changed files with 408 additions and 301 deletions
+2 -2
View File
@@ -75,8 +75,8 @@
<configure name="GPS_BAUD" value="B115200"/>
</module>
<module name="stabilization" type="indi">
<define name="WLS_N_U" value="4"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="4"/>
<define name="WLS_N_V_MAX" value="4"/>
</module>
<module name="guidance" type="indi"/>
@@ -43,8 +43,8 @@
</module>
<module name="stabilization" type="indi">
<define name="WLS_N_U" value="4" />
<define name="WLS_N_V" value="4" />
<define name="WLS_N_U_MAX" value="4" />
<define name="WLS_N_V_MAX" value="4" />
</module>
<module name="guidance" type="indi"/>
+2 -2
View File
@@ -47,8 +47,8 @@
</module>
<module name="stabilization" type="indi">
<define name="WLS_N_U" value="4" />
<define name="WLS_N_V" value="4" />
<define name="WLS_N_U_MAX" value="4" />
<define name="WLS_N_V_MAX" value="4" />
</module>
<module name="guidance" type="indi"/>
@@ -34,8 +34,8 @@
<define name="GUIDANCE_INDI_SPECIFIC_FORCE_GAIN" value="-500.0"/>
<define name="GUIDANCE_INDI_THRUST_DYNAMICS_FREQ" value="53.9"/>
<define name="GUIDANCE_INDI_RC_DEBUG" value="FALSE"/>
<define name="WLS_N_U" value="4"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="4"/>
<define name="WLS_N_V_MAX" value="4"/>
</module>
<module name="geo_mag"/>
@@ -49,8 +49,8 @@
<module name="air_data"/>
<module name="wls">
<define name="WLS_N_U" value = "6"/>
<define name="WLS_N_V" value = "6"/>
<define name="WLS_N_U_MAX" value = "6"/>
<define name="WLS_N_V_MAX" value = "6"/>
</module>
<module name="logger_file">
@@ -43,8 +43,8 @@
<module name="air_data"/>
<module name="wls">
<define name="WLS_N_U" value = "6"/>
<define name="WLS_N_V" value = "6"/>
<define name="WLS_N_U_MAX" value = "6"/>
<define name="WLS_N_V_MAX" value = "6"/>
</module>
<module name="logger_file">
@@ -44,8 +44,8 @@
<module name="air_data"/>
<module name="wls">
<define name="WLS_N_U" value = "6"/>
<define name="WLS_N_V" value = "6"/>
<define name="WLS_N_U_MAX" value = "6"/>
<define name="WLS_N_V_MAX" value = "6"/>
</module>
<module name="logger_file">
@@ -27,8 +27,8 @@ pyramid level 2: 21 fps average, min=11fps
<module name="imu" type="bebop"/>
<module name="stabilization" type="indi">
<define name="STABILIZATION_INDI_RPM_FEEDBACK" value="TRUE"/>
<define name="WLS_N_U" value="4"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="4"/>
<define name="WLS_N_V_MAX" value="4"/>
</module>
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="FALSE"/>
+2 -2
View File
@@ -18,8 +18,8 @@
<module name="imu" type="bebop"/>
<module name="gps" type="datalink"/>
<module name="stabilization" type="indi">
<define name="WLS_N_U" value="4"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="4"/>
<define name="WLS_N_V_MAX" value="4"/>
<define name="STABILIZATION_INDI_RPM_FEEDBACK" value="TRUE"/>
</module>
<module name="ahrs" type="int_cmpl_quat">
+2 -2
View File
@@ -289,8 +289,8 @@
</module>
<module name="stabilization" type="indi">
<define name="INDI_THRUST_ON_PITCH_EFF" value="23.0"/>
<define name="WLS_N_U" value="4" />
<define name="WLS_N_V" value="4" />
<define name="WLS_N_U_MAX" value="4" />
<define name="WLS_N_V_MAX" value="4" />
</module>
<module name="guidance" type="indi_hybrid_tailsitter">
<define name="GUIDANCE_INDI_RC_DEBUG" value="FALSE"/>
@@ -56,8 +56,8 @@
<module name="actuators" type="disco"/>
<!--<module name="control" type="new"/>-->
<module name="stabilization" type="indi">
<define name="WLS_N_U" value="4"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="4"/>
<define name="WLS_N_V_MAX" value="4"/>
<configure name="INDI_NUM_ACT" value="3"/>
</module>
<module name="guidance" type="indi_hybrid_tailsitter"/>
+2 -2
View File
@@ -20,8 +20,8 @@
<module name="gps" type="datalink"/>
<module name="stabilization" type="indi">
<define name="STABILIZATION_INDI_RPM_FEEDBACK" value="TRUE"/>
<define name="WLS_N_U" value="4"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="4"/>
<define name="WLS_N_V_MAX" value="4"/>
</module>
<module name="stabilization" type="rate_indi"/>
<module name="ahrs" type="int_cmpl_quat">
+2 -2
View File
@@ -111,8 +111,8 @@
</module>
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="8"/>
<define name="WLS_N_U" value="8"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="8"/>
<define name="WLS_N_V_MAX" value="4"/>
<define name="TILT_TWIST_CTRL" value="TRUE"/>
</module>
<module name="stabilization" type="rate_indi"/>
+2 -2
View File
@@ -106,8 +106,8 @@
</module>
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="8"/>
<define name="WLS_N_U" value="8"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="8"/>
<define name="WLS_N_V_MAX" value="4"/>
<define name="TILT_TWIST_CTRL" value="TRUE"/>
</module>
<module name="stabilization" type="rate_indi"/>
+2 -2
View File
@@ -106,8 +106,8 @@
</module>
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="8"/>
<define name="WLS_N_U" value="8"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="8"/>
<define name="WLS_N_V_MAX" value="4"/>
<define name="TILT_TWIST_CTRL" value="TRUE"/>
</module>
<module name="stabilization" type="rate_indi"/>
+2 -2
View File
@@ -106,8 +106,8 @@
</module>
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="8"/>
<define name="WLS_N_U" value="8"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="8"/>
<define name="WLS_N_V_MAX" value="4"/>
<define name="TILT_TWIST_CTRL" value="TRUE"/>
</module>
<module name="stabilization" type="rate_indi"/>
+2 -2
View File
@@ -118,8 +118,8 @@
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="9"/>
<configure name="INDI_OUTPUTS" value="5"/>
<define name="WLS_N_U" value="9"/>
<define name="WLS_N_V" value="5"/>
<define name="WLS_N_U_MAX" value="9"/>
<define name="WLS_N_V_MAX" value="5"/>
</module>
<module name="stabilization" type="rate_indi"/>
+2 -2
View File
@@ -121,8 +121,8 @@
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="9"/>
<configure name="INDI_OUTPUTS" value="5"/>
<define name="WLS_N_U" value="9"/>
<define name="WLS_N_V" value="5"/>
<define name="WLS_N_U_MAX" value="9"/>
<define name="WLS_N_V_MAX" value="5"/>
</module>
<module name="eff_scheduling_rot_wing"/>
@@ -131,8 +131,8 @@
<module name="eff_scheduling_rot_wing_V2"/>
<module name="wls">
<define name="WLS_N_U" value = "11"/>
<define name="WLS_N_V" value = "6"/>
<define name="WLS_N_U_MAX" value = "11"/>
<define name="WLS_N_V_MAX" value = "6"/>
</module>
<module name="ground_detect_sensor"/>
@@ -132,8 +132,8 @@
<module name="eff_scheduling_rot_wing_V2"/>
<module name="wls">
<define name="WLS_N_U" value = "11"/>
<define name="WLS_N_V" value = "6"/>
<define name="WLS_N_U_MAX" value = "11"/>
<define name="WLS_N_V_MAX" value = "6"/>
</module>
<module name="ground_detect_sensor"/>
@@ -124,8 +124,8 @@
<module name="eff_scheduling_rot_wing_V2"/>
<module name="wls">
<define name="WLS_N_U" value = "11"/>
<define name="WLS_N_V" value = "6"/>
<define name="WLS_N_U_MAX" value = "11"/>
<define name="WLS_N_V_MAX" value = "6"/>
</module>
<module name="ground_detect_sensor"/>
@@ -92,8 +92,8 @@
<module name="eff_scheduling_rot_wing_V2"/>
<module name="wls">
<define name="WLS_N_U" value = "11"/>
<define name="WLS_N_V" value = "6"/>
<define name="WLS_N_U_MAX" value = "11"/>
<define name="WLS_N_V_MAX" value = "6"/>
</module>
<module name="ground_detect_sensor"/>
+2 -2
View File
@@ -108,8 +108,8 @@
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="9"/>
<configure name="INDI_OUTPUTS" value="5"/>
<define name="WLS_N_U" value="9"/>
<define name="WLS_N_V" value="5"/>
<define name="WLS_N_U_MAX" value="9"/>
<define name="WLS_N_V_MAX" value="5"/>
</module>
<module name="eff_scheduling_rot_wing"/>
+2 -2
View File
@@ -108,8 +108,8 @@
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="9"/>
<configure name="INDI_OUTPUTS" value="5"/>
<define name="WLS_N_U" value="9"/>
<define name="WLS_N_V" value="5"/>
<define name="WLS_N_U_MAX" value="9"/>
<define name="WLS_N_V_MAX" value="5"/>
</module>
<module name="eff_scheduling_rot_wing"/>
+2 -2
View File
@@ -108,8 +108,8 @@
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="9"/>
<configure name="INDI_OUTPUTS" value="5"/>
<define name="WLS_N_U" value="9"/>
<define name="WLS_N_V" value="5"/>
<define name="WLS_N_U_MAX" value="9"/>
<define name="WLS_N_V_MAX" value="5"/>
</module>
<module name="eff_scheduling_rot_wing"/>
+2 -2
View File
@@ -113,8 +113,8 @@
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="9"/>
<configure name="INDI_OUTPUTS" value="5"/>
<define name="WLS_N_U" value="9"/>
<define name="WLS_N_V" value="5"/>
<define name="WLS_N_U_MAX" value="9"/>
<define name="WLS_N_V_MAX" value="5"/>
</module>
<module name="eff_scheduling_rot_wing"/>
+2 -2
View File
@@ -113,8 +113,8 @@
<module name="stabilization" type="indi">
<configure name="INDI_NUM_ACT" value="9"/>
<configure name="INDI_OUTPUTS" value="5"/>
<define name="WLS_N_U" value="9"/>
<define name="WLS_N_V" value="5"/>
<define name="WLS_N_U_MAX" value="9"/>
<define name="WLS_N_V_MAX" value="5"/>
</module>
<module name="eff_scheduling_rot_wing"/>
+2 -2
View File
@@ -87,8 +87,8 @@
<define name="USE_GPS_UBX_RTCM" value="TRUE"/>
</module> -->
<module name="stabilization" type="indi">
<define name="WLS_N_U" value="4"/>
<define name="WLS_N_V" value="4"/>
<define name="WLS_N_U_MAX" value="4"/>
<define name="WLS_N_V_MAX" value="4"/>
<!--define name="TILT_TWIST_CTRL" value="TRUE"/-->
</module>
<module name="stabilization" type="rate_indi"/>
+2 -2
View File
@@ -11,8 +11,8 @@
The size of the matrix (output vs. objectives) must be defined large
enough for all the controllers
</description>
<define name="WLS_N_U" value="4" description="size of the control output vector (default: 6)"/>
<define name="WLS_N_V" value="4" description="size of the control objectives vector (default: 4)"/>
<define name="WLS_N_U_MAX" value="4" description="size of the control output vector (default: 6)"/>
<define name="WLS_N_V_MAX" value="4" description="size of the control objectives vector (default: 4)"/>
</doc>
<header>
<file name="wls_alloc.h" dir="math/wls"/>
+4
View File
@@ -60,6 +60,8 @@
<message name="ROTORCRAFT_CMD" period="0.2"/>
<message name="DEBUG_VECT" period="0.2"/>
<message name="EXTERNAL_POSE_DOWN" period="0.2"/>
<message name="WLS_V" period="0.2"/>
<message name="WLS_U" period="0.2"/>
</mode>
@@ -260,6 +262,8 @@
<message name="ROTATING_WING_STATE" period="0.1"/>
<message name="DOUBLET" period="0.002"/>
<message name="DEBUG" period="0.02"/> <!-- For the parachute module -->
<message name="WLS_V" period="0.002"/>
<message name="WLS_U" period="0.002"/>
</mode>
</process>