mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-02-06 02:52:42 +08:00
Introducing several changes to the control stask for the stabilization: - new structures: stabilization, stab (att and/or rates) and thrust (vector) - more functional approach: stabilization receives the stab and thrust setpoints from guidance and fill command vector at the end - modes and sub-modes are redefined (split stab and guidance modes), some AP modes are removed (FLIP and MODULE) - RC read functions are removed and replaced by ABI bindings, one for each part (AP, stab, guidance_h, guidance_v) with dedicated functions - transition ratio (float in [0-1]) replace transition_percentage (int) - the AP_MODULE mode is replaced by generated autopilot - the ABI hack for guidance indi is not needed anymore - AP generator supports a new 'store' attribute to use return values of functions - cleaning of the stabilization API (for setter functions)
79 lines
7.3 KiB
XML
79 lines
7.3 KiB
XML
<!DOCTYPE module SYSTEM "module.dtd">
|
|
|
|
<module name="stabilization_float_quat" dir="stabilization" task="control">
|
|
<doc>
|
|
<description>
|
|
Stabilization controller for rotorcraft using float quaternion implementation
|
|
</description>
|
|
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
|
|
<define name="SP_MAX_PHI" value="45." description="max setpoint for roll angle" unit="deg"/>
|
|
<define name="SP_MAX_THETA" value="45." description="max setpoint for pitch angle" unit="deg"/>
|
|
<define name="SP_MAX_R" value="90." description="max setpoint for yaw rate" unit="deg/s"/>
|
|
<define name="DEADBAND_R" value="250" description="deadband on yaw rate input"/>
|
|
<define name="REF_OMEGA_P" value="{400}" description="reference generator omega param on roll rate" unit="deg/s"/>
|
|
<define name="REF_ZETA_P" value="{0.9}" description="reference generator zeta param on roll rate"/>
|
|
<define name="REF_MAX_P" value="300." description="reference generator max roll rate" unit="deg/s"/>
|
|
<define name="REF_MAX_PDOT" value="RadOfDeg(7000.)" description="reference generator max roll acceleration"/>
|
|
<define name="REF_OMEGA_Q" value="{400}" description="reference generator omega param on pitch rate" unit="deg/s"/>
|
|
<define name="REF_ZETA_Q" value="{0.9}" description="reference generator zeta param on pitch rate"/>
|
|
<define name="REF_MAX_Q" value="300." description="reference generator max pitch rate" unit="deg/s"/>
|
|
<define name="REF_MAX_QDOT" value="RadOfDeg(7000.)" description="reference generator max pitch acceleration"/>
|
|
<define name="REF_OMEGA_R" value="{250}" description="reference generator omega param on yaw rate" unit="deg/s"/>
|
|
<define name="REF_ZETA_R" value="{0.9}" description="reference generator zeta param on yaw rate"/>
|
|
<define name="REF_MAX_R" value="180." description="reference generator max yaw rate" unit="deg/s"/>
|
|
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)" description="reference generator max yaw acceleration"/>
|
|
<define name="PHI_PGAIN" value="{400}" description="feedback roll P gain"/>
|
|
<define name="PHI_DGAIN" value="{300}" description="feedback roll D gain"/>
|
|
<define name="PHI_IGAIN" value="{100}" description="feedback roll I gain"/>
|
|
<define name="THETA_PGAIN" value="{400}" description="feedback pitch P gain"/>
|
|
<define name="THETA_DGAIN" value="{300}" description="feedback pitch D gain"/>
|
|
<define name="THETA_IGAIN" value="{100}" description="feedback pitch I gain"/>
|
|
<define name="PSI_PGAIN" value="{380}" description="feedback yaw P gain"/>
|
|
<define name="PSI_DGAIN" value="{320}" description="feedback yaw D gain"/>
|
|
<define name="PSI_IGAIN" value="{100}" description="feedback yaw I gain"/>
|
|
<define name="PHI_DDGAIN" value="{300}" description="feedforward roll acceleration gain"/>
|
|
<define name="THETA_DDGAIN" value="{300}" description="feedforward pitch acceleration gain"/>
|
|
<define name="PSI_DDGAIN" value="{300}" description="feedforward yaw acceleration gain"/>
|
|
</section>
|
|
</doc>
|
|
<settings target="ap|nps">
|
|
<dl_settings>
|
|
<dl_settings NAME="Att Loop">
|
|
<dl_setting var="stabilization_gains[0].p.x" min="1" step="1" max="8000" shortname="pgain phi" param="STABILIZATION_ATTITUDE_PHI_PGAIN" persistent="true" module="stabilization/stabilization_attitude" />
|
|
<dl_setting var="stabilization_gains[0].i.x" min="0" step="1" max="800" shortname="igain phi" param="STABILIZATION_ATTITUDE_PHI_IGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].d.x" min="1" step="1" max="4000" shortname="dgain p" param="STABILIZATION_ATTITUDE_PHI_DGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].rates_d.x" min="0" step="1" max="500" shortname="dgaind p" param="STABILIZATION_ATTITUDE_PHI_DGAIN_D" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].dd.x" min="0" step="1" max="1000" shortname="ddgain p" param="STABILIZATION_ATTITUDE_PHI_DDGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].p.y" min="1" step="1" max="8000" shortname="pgain theta" param="STABILIZATION_ATTITUDE_THETA_PGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].i.y" min="0" step="1" max="800" shortname="igain theta" param="STABILIZATION_ATTITUDE_THETA_IGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].d.y" min="1" step="1" max="4000" shortname="dgain q" param="STABILIZATION_ATTITUDE_THETA_DGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].rates_d.y" min="0" step="1" max="500" shortname="dgaind q" param="STABILIZATION_ATTITUDE_THETA_DGAIN_D" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].dd.y" min="0" step="1" max="1000" shortname="ddgain q" param="STABILIZATION_ATTITUDE_THETA_DDGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].p.z" min="1" step="1" max="4000" shortname="pgain psi" param="STABILIZATION_ATTITUDE_PSI_PGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].i.z" min="0" step="1" max="400" shortname="igain psi" param="STABILIZATION_ATTITUDE_PSI_IGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].d.z" min="1" step="1" max="4000" shortname="dgain r" param="STABILIZATION_ATTITUDE_PSI_DGAIN" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].rates_d.z" min="0" step="1" max="500" shortname="dgaind r" param="STABILIZATION_ATTITUDE_PHI_DGAIN_D" persistent="true"/>
|
|
<dl_setting var="stabilization_gains[0].dd.z" min="0" step="1" max="1000" shortname="ddgain r" param="STABILIZATION_ATTITUDE_PSI_DDGAIN" persistent="true"/>
|
|
<dl_setting var="att_ref_quat_f.model[0].omega.p" min="1" step="1" max="1000" unit="rad/s" alt_unit="deg/s" shortname="omega p" param="STABILIZATION_ATTITUDE_REF_OMEGA_P" handler="SetOmegaP" module="stabilization/stabilization_attitude_quat_float"/>
|
|
<dl_setting var="att_ref_quat_f.model[0].zeta.p" min="0.5" step="0.05" max="1.2" shortname="zeta p" param="STABILIZATION_ATTITUDE_REF_ZETA_P"/>
|
|
<dl_setting var="att_ref_quat_f.model[0].omega.q" min="1" step="1" max="1000" unit="rad/s" alt_unit="deg/s" shortname="omega q" param="STABILIZATION_ATTITUDE_REF_OMEGA_Q" handler="SetOmegaQ"/>
|
|
<dl_setting var="att_ref_quat_f.model[0].zeta.q" min="0.5" step="0.05" max="1.2" shortname="zeta q" param="STABILIZATION_ATTITUDE_REF_ZETA_Q"/>
|
|
<dl_setting var="att_ref_quat_f.model[0].omega.r" min="1" step="1" max="1000" unit="rad/s" alt_unit="deg/s" shortname="omega r" param="STABILIZATION_ATTITUDE_REF_OMEGA_R" handler="SetOmegaR"/>
|
|
<dl_setting var="att_ref_quat_f.model[0].zeta.r" min="0.5" step="0.05" max="1.2" shortname="zeta r" param="STABILIZATION_ATTITUDE_REF_ZETA_R"/>
|
|
</dl_settings>
|
|
</dl_settings>
|
|
</settings>
|
|
<dep>
|
|
<depends>stabilization_rotorcraft,@attitude_command</depends>
|
|
<provides>commands</provides>
|
|
</dep>
|
|
<header>
|
|
<file name="stabilization_attitude_quat_float.h"/>
|
|
</header>
|
|
<init fun="stabilization_attitude_quat_float_init()"/>
|
|
<makefile target="ap|nps" firmware="rotorcraft">
|
|
<file name="stabilization_attitude_quat_float.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
|
<file name="stabilization_attitude_ref_quat_float.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
|
</makefile>
|
|
</module>
|