Files
paparazzi/conf/modules/guidance_full_pid_fw.xml
T
Gautier Hattenberger 0a65e14903 [autopilot] compiling generated AP for fixedwing (#2055)
* [autopilot] compiling generated AP for fixedwing

* update some old variable names for autopilot mode

* prevent oscillation on the ground with real aircraft

* add guidance loop to 'new' control

all this guidance code should really be better factorized

* fix rotorcraft autopilot for new API

* read guidance RC if needed

* use generated autopilot as soon as an autopilot file is defined

* autopilot node at airframe, firmware or target level

The autopilot can be specific to one of the firmware, or one of the
target.
At the moment, it will fail at runtime if more than one autopilot in the
same airframe since server don't know which target is in use.
2017-05-06 13:24:40 -07:00

87 lines
6.5 KiB
XML

<!DOCTYPE module SYSTEM "module.dtd">
<module name="guidance_full_pid" dir="guidance">
<doc>
<description>
Vertical control for fixedwing aircraft based on PID
By default, throttle and pitch are used to track vertical speed and altitude.
Airspeed or ground speed control can be activated.
</description>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<define name="ALTITUDE_PGAIN" value="0.12" description="altitude loop P gain"/>
<define name="ALTITUDE_MAX_CLIMB" value="4." description="max climb rate" unit="m/s"/>
<define name="AUTO_CLIMB_LIMIT" value="1." description="climb rate limiter" unit="ms/s/s"/>
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.5" description="nominal throttle for cruise flight"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25" description="min cruise throttle"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.85" description="max cruise throttle"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.088" description="feedforward throttle gain" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.004" description="feedback throttle P gain"/>
<define name="AUTO_THROTTLE_DGAIN" value="0.0" description="feedback throttle D gain"/>
<define name="AUTO_THROTTLE_IGAIN" value="0." description="feedback throttle I gain"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.077" description="feedforward pitch gain"/>
<define name="AUTO_PITCH_PGAIN" value="0.027" description="feedback pitch P gain"/>
<define name="AUTO_PITCH_DGAIN" value="0.01" description="feedback pitch D gain"/>
<define name="AUTO_PITCH_IGAIN" value="0.0" description="feedback pitch I gain"/>
<define name="AUTO_PITCH_MAX_PITCH" value="20." description="max pitch up setpoint" unit="deg"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-20." description="max pitch down setpoint" unit="deg"/>
<define name="AUTO_AIRSPEED_SETPOINT" value="16." description="default airspeed setpoint"/>
<define name="AUTO_AIRSPEED_THROTTLE_PGAIN" value="0.1" description="throttle P gain for airspeed control"/>
<define name="AUTO_AIRSPEED_THROTTLE_DGAIN" value="0.12" description="throttle D gain for airspeed control"/>
<define name="AUTO_AIRSPEED_THROTTLE_IGAIN" value="0.0" description="throttle I gain for airspeed control"/>
<define name="AUTO_AIRSPEED_PITCH_PGAIN" value="0.06" description="pitch P gain for airspeed control"/>
<define name="AUTO_AIRSPEED_PITCH_DGAIN" value="0.0" description="pitch D gain for airspeed control"/>
<define name="AUTO_AIRSPEED_PITCH_IGAIN" value="0.042" description="pitch I gain for airspeed control"/>
<define name="AIRSPEED_MAX" value="30" description="max airspeed setpoint"/>
<define name="AIRSPEED_MIN" value="10" description="min airspeed setpoint"/>
<define name="AUTO_GROUNDSPEED_SETPOINT" value="15" description="default ground speed setpoint"/>
<define name="AUTO_GROUNDSPEED_PGAIN" value="1." description="ground speed P gain"/>
<define name="AUTO_GROUNDSPEED_IGAIN" value="0." description="ground speed I gain"/>
<define name="PITCH_LOITER_TRIM" value="0." description="loiter pitch setpoint trim" unit="deg"/>
<define name="PITCH_DASH_TRIM" value="0." description="dash pitch setpoint trim" unit="deg"/>
<define name="THROTTLE_SLEW" value="0.1" description="throttle slew rate limiter"/>
</section>
</doc>
<settings>
<dl_settings>
<dl_settings NAME="control vert">
<dl_settings name="alt">
<dl_setting MAX="0.2" MIN="0" STEP="0.01" VAR="v_ctl_altitude_pgain" shortname="alt_pgain" param="V_CTL_ALTITUDE_PGAIN"/>
</dl_settings>
<dl_settings name="climb">
<dl_setting MAX="2" MIN="0" STEP="1" var="v_ctl_speed_mode" shortname="speed mode" values="THROTTLE|AIRSPEED|GROUNDSPEED">
<strip_button name="TH" value="0" group="speed_mode"/>
<strip_button name="AS" value="1" group="speed_mode"/>
<strip_button name="GS" value="2" group="speed_mode"/>
</dl_setting>
<dl_setting MAX="1" MIN="0.0" STEP="0.05" VAR="v_ctl_auto_throttle_min_cruise_throttle" shortname="min cruise thr" module="guidance/guidance_v" param="V_CTL_AUTO_THROTTLE_MIN_CRUISE_THROTTLE"/>
<dl_setting MAX="1" MIN="0.0" STEP="0.05" VAR="v_ctl_auto_throttle_max_cruise_throttle" shortname="max cruise thr" module="guidance/guidance_v" param="V_CTL_AUTO_THROTTLE_MAX_CRUISE_THROTTLE"/>
<dl_setting MAX="1" MIN="0.0" STEP="0.05" VAR="v_ctl_auto_throttle_cruise_throttle" shortname="cruise throttle" module="guidance/guidance_v" handler="SetCruiseThrottle" param="V_CTL_AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE"/>
<dl_setting MAX="15" MIN="-15" STEP="0.1" VAR="v_ctl_pitch_trim" shortname="pitch trim" param="V_CTL_PITCH_TRIM" unit="rad" alt_unit="deg"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_pitch_pgain" shortname="pitch_p" param="V_CTL_AUTO_PITCH_PGAIN"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_pitch_igain" shortname="pitch_i" param="V_CTL_AUTO_PITCH_IGAIN"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_pitch_dgain" shortname="pitch_d" param="V_CTL_AUTO_PITCH_DGAIN" module="guidance/guidance_v_n"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_throttle_pgain" shortname="throttle_p" param="V_CTL_AUTO_THROTTLE_PGAIN"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_throttle_igain" shortname="throttle_i" param="V_CTL_AUTO_THROTTLE_IGAIN"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_throttle_dgain" shortname="throttle_d" param="V_CTL_AUTO_THROTTLE_DGAIN"/>
<dl_setting MAX="1" MIN="0" STEP="0.01" VAR="v_ctl_auto_throttle_climb_throttle_increment" shortname="throttle_incr" param="V_CTL_AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT"/>
<dl_setting MAX="1" MIN="0" STEP="0.01" VAR="v_ctl_auto_throttle_pitch_of_vz_pgain" shortname="pitch_of_vz" param="V_CTL_AUTO_THROTTLE_PITCH_OF_VZ_PGAIN"/>
</dl_settings>
</dl_settings>
</dl_settings>
</settings>
<header>
<file name="guidance_v_n.h"/>
<file name="guidance_h.h"/>
</header>
<init fun="v_ctl_init()"/>
<makefile target="ap|sim|nps" firmware="fixedwing">
<file name="guidance_v_n.c" dir="$(SRC_FIRMWARE)/guidance"/>
<file name="guidance_h.c" dir="$(SRC_FIRMWARE)/guidance"/>
<define name="CTRL_TYPE_H" value="firmwares/fixedwing/guidance/guidance_v_n.h" type="string"/>
</makefile>
</module>