mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-09 22:49:53 +08:00
[modules] convert GNC susystems to modules for rotorcraft
This commit is contained in:
committed by
Felix Ruess
parent
23fe7efc64
commit
3048259ea8
@@ -98,17 +98,6 @@ $(TARGET).srcs += state.c
|
||||
include $(CFG_SHARED)/baro_board.makefile
|
||||
|
||||
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/stabilization.c
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/stabilization/stabilization_none.c
|
||||
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_h.c
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_h_ref.c
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_v.c
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_v_ref.c
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_v_adapt.c
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_flip.c
|
||||
|
||||
include $(CFG_ROTORCRAFT)/navigation.makefile
|
||||
else
|
||||
$(TARGET).CFLAGS += -DFBW=1
|
||||
endif
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
$(TARGET).CFLAGS += -DHYBRID_NAVIGATION=TRUE
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_hybrid.c
|
||||
@@ -1,2 +0,0 @@
|
||||
$(TARGET).CFLAGS += -DGUIDANCE_INDI=TRUE
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_indi.c
|
||||
@@ -1,7 +0,0 @@
|
||||
# Hey Emacs, this is a -*- makefile -*-
|
||||
|
||||
$(TARGET).CFLAGS += -DUSE_NAVIGATION
|
||||
$(TARGET).srcs += $(SRC_FIRMWARE)/navigation.c
|
||||
#$(TARGET).srcs += subsystems/navigation/common_nav.c
|
||||
$(TARGET).srcs += subsystems/navigation/waypoints.c
|
||||
$(TARGET).srcs += subsystems/navigation/common_flight_plan.c
|
||||
@@ -1,2 +0,0 @@
|
||||
$(error The stabilization euler subsystem has been renamed, please replace <subsystem name="stabilization" type="euler"/> with <subsystem name="stabilization" type="int_euler"/> in your airframe file.)
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_FLOAT
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_euler_float.h\"
|
||||
STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_ref_euler_float.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_euler_float.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
|
||||
|
||||
ap.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
ap.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
nps.srcs += $(STAB_ATT_SRCS)
|
||||
@@ -1,12 +0,0 @@
|
||||
STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_FLOAT
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_quat_float.h\"
|
||||
STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_ref_quat_float.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_float.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
|
||||
|
||||
ap.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
ap.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
nps.srcs += $(STAB_ATT_SRCS)
|
||||
@@ -1,11 +0,0 @@
|
||||
STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_heli_indi.h\"
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_heli_indi.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
|
||||
ap.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
ap.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
nps.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_quat_indi.h\"
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_INDI_FULL=true
|
||||
|
||||
STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_indi.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_indi.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
|
||||
|
||||
ap.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
ap.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
nps.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_quat_indi.h\"
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_INDI_SIMPLE=true
|
||||
|
||||
STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_indi_simple.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_indi.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
|
||||
|
||||
ap.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
ap.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
nps.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_euler_int.h\"
|
||||
STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_ref_euler_int.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_euler_int.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
|
||||
|
||||
ap.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
ap.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
nps.srcs += $(STAB_ATT_SRCS)
|
||||
@@ -1,12 +0,0 @@
|
||||
STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_quat_int.h\"
|
||||
STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_ref_quat_int.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_int.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
|
||||
|
||||
ap.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
ap.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
nps.srcs += $(STAB_ATT_SRCS)
|
||||
@@ -1,10 +0,0 @@
|
||||
STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_NO_REF
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_INT
|
||||
STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_passthrough.h\"
|
||||
STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_passthrough.c
|
||||
STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
|
||||
ap.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
ap.srcs += $(STAB_ATT_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_ATT_CFLAGS)
|
||||
nps.srcs += $(STAB_ATT_SRCS)
|
||||
@@ -1 +0,0 @@
|
||||
$(error The stabilization quaternion subsystem has been changed, for normal rotorcrafts please use <subsystem name="stabilization" type="int_quat"/>, for transitioning rotorcrafts (quadshot) use <subsystem name="stabilization" type="int_quat_transition"/>)
|
||||
@@ -1,8 +0,0 @@
|
||||
STAB_RATE_CFLAGS = -DUSE_STABILIZATION_RATE
|
||||
STAB_RATE_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_rate.c
|
||||
|
||||
ap.CFLAGS += $(STAB_RATE_CFLAGS)
|
||||
ap.srcs += $(STAB_RATE_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_RATE_CFLAGS)
|
||||
nps.srcs += $(STAB_RATE_SRCS)
|
||||
@@ -1,10 +0,0 @@
|
||||
STAB_RATE_CFLAGS = -DUSE_STABILIZATION_RATE
|
||||
STAB_RATE_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_indi.c
|
||||
STAB_RATE_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_rate_indi.c
|
||||
STAB_RATE_CFLAGS += -DSTABILIZATION_RATE_INDI=true
|
||||
|
||||
ap.CFLAGS += $(STAB_RATE_CFLAGS)
|
||||
ap.srcs += $(STAB_RATE_SRCS)
|
||||
|
||||
nps.CFLAGS += $(STAB_RATE_CFLAGS)
|
||||
nps.srcs += $(STAB_RATE_SRCS)
|
||||
@@ -0,0 +1,29 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="guidance_hybrid" dir="guidance">
|
||||
<doc>
|
||||
<description>
|
||||
Guidance controller for hybrid vehicles
|
||||
</description>
|
||||
</doc>
|
||||
<settings>
|
||||
<dl_settings>
|
||||
<dl_settings NAME="Hybrid Guidance">
|
||||
<dl_setting var="max_airspeed" MIN="4" STEP="1" MAX="15" module="guidance/guidance_hybrid"/>
|
||||
<dl_setting var="wind_gain" MIN="1" STEP="1" MAX="256"/>
|
||||
<dl_setting var="horizontal_speed_gain" MIN="1" STEP="1" MAX="15" shortname="hor_speed_div"/>
|
||||
<dl_setting var="alt_pitch_gain" MIN="0" STEP="0.01" MAX="5.0" shortname="alt_pitch_gain"/>
|
||||
<dl_setting var="max_turn_bank" MIN="10.0" STEP="1.0" MAX="60.0" shortname="max_turn_bank"/>
|
||||
<dl_setting var="turn_bank_gain" MIN="0.1" STEP="0.01" MAX="3.0" shortname="turn_bank_gain"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<header>
|
||||
<file name="guidance_hybrid.h"/>
|
||||
</header>
|
||||
<init fun="guidance_hybrid_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="guidance_hybrid.c" dir="$(SRC_FIRMWARE)/guidance"/>
|
||||
<define name="HYBRID_NAVIGATION" value="TRUE"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="guidance_indi" dir="guidance">
|
||||
<doc>
|
||||
<description>
|
||||
Guidance controller for rotorcraft using INDI
|
||||
</description>
|
||||
</doc>
|
||||
<header>
|
||||
<file name="guidance_indi.h"/>
|
||||
</header>
|
||||
<init fun="guidance_indi_enter()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="guidance_indi.c" dir="$(SRC_FIRMWARE)/guidance"/>
|
||||
<define name="GUIDANCE_INDI" value="TRUE"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,67 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="guidance_rotorcraft" dir="guidance">
|
||||
<doc>
|
||||
<description>
|
||||
Base guidance code for rotorcraft
|
||||
It provides:
|
||||
- horizontal guidance with reference
|
||||
- vertical guidance with reference and adaptive control
|
||||
- flip mode
|
||||
</description>
|
||||
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||
<define name="MAX_BANK" value="20" description="maximum commanded bank angle" unit="deg"/>
|
||||
<define name="PGAIN" value="79" description="feedback horizontal control P gain"/>
|
||||
<define name="DGAIN" value="100" description="feedback horizontal control D gain"/>
|
||||
<define name="IGAIN" value="30" description="feedback horizontal control I gain"/>
|
||||
</section>
|
||||
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
||||
<define name="HOVER_KP" value="283" description="feedback vertical control P gain"/>
|
||||
<define name="HOVER_KD" value="82" description="feedback vertical control D gain"/>
|
||||
<define name="HOVER_KI" value="13" description="feedback vertical control I gain"/>
|
||||
<define name="NOMINAL_HOVER_THROTTLE" value="0.655" description="nominal throttle at hover (between 0 and 1)"/>
|
||||
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE|TRUE" description="enable adaptive control by default"/>
|
||||
</section>
|
||||
</doc>
|
||||
<settings target="ap|nps">
|
||||
<dl_settings>
|
||||
<dl_settings NAME="Vert Loop">
|
||||
<dl_setting var="guidance_v_kp" min="0" step="1" max="600" shortname="kp" param="GUIDANCE_V_HOVER_KP" persistent="true" module="guidance/guidance_v"/>
|
||||
<dl_setting var="guidance_v_kd" min="0" step="1" max="600" shortname="kd" param="GUIDANCE_V_HOVER_KD" persistent="true"/>
|
||||
<dl_setting var="guidance_v_ki" min="0" step="1" max="300" shortname="ki" handler="SetKi" param="GUIDANCE_V_HOVER_KI" persistent="true" module="guidance/guidance_v"/>
|
||||
<dl_setting var="guidance_v_nominal_throttle" min="0.2" step="0.01" max="0.8" shortname="nominal_throttle" param="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" persistent="true"/>
|
||||
<dl_setting var="guidance_v_adapt_throttle_enabled" min="0" step="1" max="1" shortname="adapt_throttle" param="GUIDANCE_V_ADAPT_THROTTLE_ENABLED" values="FALSE|TRUE" persistent="true"/>
|
||||
<dl_setting var="guidance_v_z_sp" min="-5" step="0.5" max="3" shortname="sp" unit="2e-8m" alt_unit="m" alt_unit_coef="0.00390625"/>
|
||||
</dl_settings>
|
||||
<dl_settings NAME="Horiz Loop">
|
||||
<dl_setting var="guidance_h.use_ref" min="0" step="1" max="1" shortname="use_ref" values="FALSE|TRUE" handler="SetUseRef" param="GUIDANCE_H_USE_REF" persistent="true" module="guidance/guidance_h"/>
|
||||
<dl_setting var="gh_ref.max_speed" min="0.1" step="0.1" max="15.0" shortname="max_speed" handler="SetMaxSpeed" param="GUIDANCE_H_REF_MAX_SPEED" type="float" persistent="true" module="guidance/guidance_h"/>
|
||||
<dl_setting var="guidance_h.approx_force_by_thrust" min="0" step="1" max="1" shortname="approx_force" values="FALSE|TRUE" param="GUIDANCE_H_APPROX_FORCE_BY_THRUST" type="uint8" persistent="true"/>
|
||||
<dl_setting var="gh_ref.tau" min="0.1" step="0.1" max="1.0" shortname="tau" handler="SetTau" param="GUIDANCE_H_REF_TAU" type="float" persistent="true" module="guidance/guidance_h"/>
|
||||
<dl_setting var="gh_ref.omega" min="0.1" step="0.1" max="3.0" shortname="omega" handler="SetOmega" param="GUIDANCE_H_REF_OMEGA" type="float" persistent="true" module="guidance/guidance_h"/>
|
||||
<dl_setting var="gh_ref.zeta" min="0.7" step="0.05" max="1.0" shortname="zeta" handler="SetZeta" param="GUIDANCE_H_REF_ZETA" type="float" persistent="true" module="guidance/guidance_h"/>
|
||||
<dl_setting var="guidance_h.gains.p" min="0" step="1" max="400" shortname="kp" param="GUIDANCE_H_PGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="guidance_h.gains.d" min="0" step="1" max="400" shortname="kd" param="GUIDANCE_H_DGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="guidance_h.gains.i" min="0" step="1" max="400" shortname="ki" handler="set_igain" param="GUIDANCE_H_IGAIN" type="int32" persistent="true" module="guidance/guidance_h"/>
|
||||
<dl_setting var="guidance_h.gains.v" min="0" step="1" max="400" shortname="kv" param="GUIDANCE_H_VGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="guidance_h.gains.a" min="0" step="1" max="400" shortname="ka" param="GUIDANCE_H_AGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="guidance_h.sp.pos.x" MIN="-10" MAX="10" STEP="1" shortname="sp_x_ned" unit="1/2^8m" alt_unit="m" alt_unit_coef="0.00390625"/>
|
||||
<dl_setting var="guidance_h.sp.pos.y" MIN="-10" MAX="10" STEP="1" shortname="sp_y_ned" unit="1/2^8m" alt_unit="m" alt_unit_coef="0.00390625"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<header>
|
||||
<file name="guidance_h.h"/>
|
||||
<file name="guidance_v.h"/>
|
||||
</header>
|
||||
<init fun="guidance_h_init()"/>
|
||||
<init fun="guidance_v_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="guidance_h.c" dir="$(SRC_FIRMWARE)/guidance"/>
|
||||
<file name="guidance_h_ref.c" dir="$(SRC_FIRMWARE)/guidance"/>
|
||||
<file name="guidance_v.c" dir="$(SRC_FIRMWARE)/guidance"/>
|
||||
<file name="guidance_v_ref.c" dir="$(SRC_FIRMWARE)/guidance"/>
|
||||
<file name="guidance_v_adapt.c" dir="$(SRC_FIRMWARE)/guidance"/>
|
||||
<file name="guidance_flip.c" dir="$(SRC_FIRMWARE)/guidance"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="nav_basic_rotorcraft" dir="nav">
|
||||
<doc>
|
||||
<description>
|
||||
Standard navigation patterns and flight plan handling for rotorcraft
|
||||
</description>
|
||||
</doc>
|
||||
<settings>
|
||||
<dl_settings>
|
||||
<dl_settings NAME="NAV">
|
||||
<dl_setting var="flight_altitude" MIN="0" STEP="0.1" MAX="400" module="navigation" unit="m" handler="SetFlightAltitude"/>
|
||||
<dl_setting var="nav_heading" MIN="0" STEP="1" MAX="360" unit="1/2^12r" alt_unit="deg" alt_unit_coef="0.0139882"/>
|
||||
<dl_setting var="nav_radius" MIN="-50" STEP="0.1" MAX="50" unit="m"/>
|
||||
<dl_setting var="nav_climb_vspeed" MIN="0" STEP="0.1" MAX="10.0" unit="m/s" param="NAV_CLIMB_VSPEED"/>
|
||||
<dl_setting var="nav_descend_vspeed" MIN="-10.0" STEP="0.1" MAX="0.0" unit="m/s" param="NAV_DESCEND_VSPEED"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<autoload name="guidance" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="navigation.h" dir="firmwares/rotorcraft"/>
|
||||
</header>
|
||||
<init fun="nav_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="navigation.c" dir="$(SRC_FIRMWARE)"/>
|
||||
<file name="common_flight_plan.c" dir="subsystems/navigation"/>
|
||||
<file name="waypoints.c" dir="subsystems/navigation"/>
|
||||
<define name="USE_NAVIGATION"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -3,7 +3,7 @@
|
||||
<module name="navigation" dir="nav">
|
||||
<doc>
|
||||
<description>
|
||||
Meta module for loading proper navigation module
|
||||
Meta module for loading proper navigation
|
||||
</description>
|
||||
</doc>
|
||||
<autoload name="nav_basic_fw"/>
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_adaptive" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Adaptive attitude and lateral (heading) control for fixedwing aircraft.
|
||||
Mostly based on PID and optional reference generators and feedforward gains.
|
||||
Adaptive parameters should not be used for normal operation at the moment.
|
||||
</description>
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="1.0" description="feedback heading P gain"/>
|
||||
<define name="COURSE_DGAIN" value="0.3" description="feedback heading D gain"/>
|
||||
<define name="ROLL_MAX_SETPOINT" value="45." description="max roll setpoint" unit="deg"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="30." description="max pitch up setpoint" unit="deg"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-30." description="max pitch down setpoint" unit="deg"/>
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="7500" description="feedback roll P gain"/>
|
||||
<define name="ROLL_RATE_GAIN" value="1500" description="feedback roll rate P gain (roll D gain)"/>
|
||||
<define name="ROLL_IGAIN" value="100." description="feedback roll I gain"/>
|
||||
<define name="ROLL_KFFA" value="0" description="feedforward roll acceleration gain"/>
|
||||
<define name="ROLL_KFFD" value="0" description="feedforward roll rate gain"/>
|
||||
|
||||
<define name="PITCH_PGAIN" value="12000." description="feedback pitch P gain"/>
|
||||
<define name="PITCH_DGAIN" value="1.5" description="feedback pitch D gain"/>
|
||||
<define name="PITCH_IGAIN" value="400" description="feedback pitch I gain"/>
|
||||
<define name="PITCH_KFFA" value="0." description="feedforward pitch acceleration gain"/>
|
||||
<define name="PITCH_KFFD" value="0." description="feedforward pitch rate gain"/>
|
||||
|
||||
<define name="PITCH_OF_ROLL" value="1." description="feedforward pitch of roll coupling" unit="deg"/>
|
||||
<define name="AILERON_OF_THROTTLE" value="0.0" description="feedforward roll of throttle coupling"/>
|
||||
</section>
|
||||
</doc>
|
||||
<settings>
|
||||
<dl_settings>
|
||||
<dl_settings NAME="control horiz">
|
||||
<dl_settings NAME="trim">
|
||||
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="ap_state->command_roll_trim" shortname="roll_trim" module="inter_mcu" param="COMMAND_ROLL_TRIM"/>
|
||||
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="ap_state->command_pitch_trim" shortname="pitch_trim" param="COMMAND_PITCH_TRIM"/>
|
||||
<dl_setting MAX="9000" MIN="-9000" STEP="1" VAR="ap_state->command_yaw_trim" shortname="yaw_trim" param="COMMAND_YAW_TRIM"/>
|
||||
</dl_settings>
|
||||
<dl_settings NAME="attitude">
|
||||
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_attitude_gain" shortname="roll_pgain" param="H_CTL_ROLL_ATTITUDE_GAIN" module="stabilization/stabilization_attitude"/>
|
||||
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_rate_gain" shortname="roll_dgain" param="H_CTL_ROLL_RATE_GAIN" module="stabilization/stabilization_attitude"/>
|
||||
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_roll_igain" shortname="roll_igain" param="H_CTL_ROLL_IGAIN" handler="SetRollIGain" module="stabilization/stabilization_adaptive"/>
|
||||
<dl_setting MAX="25000" MIN="0" STEP="250" VAR="h_ctl_pitch_pgain" shortname="pitch_pgain" param="H_CTL_PITCH_PGAIN" module="stabilization/stabilization_attitude"/>
|
||||
<dl_setting MAX="50000" MIN="0" STEP="250" VAR="h_ctl_pitch_dgain" shortname="pitch_dgain" param="H_CTL_PITCH_DGAIN" module="stabilization/stabilization_attitude"/>
|
||||
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_pitch_igain" shortname="pitch_igain" param="H_CTL_PITCH_IGAIN" handler="SetPitchIGain" module="stabilization/stabilization_adaptive"/>
|
||||
<dl_setting MAX=".3" MIN="0." STEP="0.001" VAR="h_ctl_pitch_of_roll" shortname="pitch_of_roll" param="H_CTL_PITCH_OF_ROLL" module="stabilization/stabilization_attitude"/>
|
||||
<dl_setting MAX="5000" MIN="0" STEP="100" VAR="h_ctl_aileron_of_throttle" shortname="aileron_of_throttle" module="stabilization/stabilization_adaptive"/>
|
||||
|
||||
<dl_setting MAX="60" MIN="0" STEP="1." VAR="h_ctl_roll_max_setpoint" shortname="max_roll" param="H_CTL_ROLL_MAX_SETPOINT" unit="rad" alt_unit="deg"/>
|
||||
<dl_setting MAX="1" MIN="0" STEP="1" var="use_airspeed_ratio" values="FALSE|TRUE"/>
|
||||
</dl_settings>
|
||||
<dl_settings NAME="feedforward">
|
||||
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_roll_Kffa" shortname="roll_Kffa" param="H_CTL_ROLL_KFFA"/>
|
||||
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_roll_Kffd" shortname="roll_Kffd" param="H_CTL_ROLL_KFFD"/>
|
||||
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_pitch_Kffa" shortname="pitch_Kffa" param="H_CTL_PITCH_KFFA"/>
|
||||
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_pitch_Kffd" shortname="pitch_Kffd" param="H_CTL_PITCH_KFFD"/>
|
||||
</dl_settings>
|
||||
<dl_settings name="course">
|
||||
<dl_setting MAX="3" MIN="0.1" STEP="0.05" VAR="h_ctl_course_pgain" shortname="course pgain" param="H_CTL_COURSE_PGAIN"/>
|
||||
<dl_setting MAX="2" MIN="0" STEP="0.1" VAR="h_ctl_course_dgain" shortname="course dgain"/>
|
||||
<dl_setting MAX="2" MIN="0.1" STEP="0.05" VAR="h_ctl_course_pre_bank_correction" shortname="pre bank cor"/>
|
||||
<dl_setting MAX="1" MIN="0.02" STEP="0.01" VAR="h_ctl_roll_slew" shortname="roll slew"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<header>
|
||||
<file name="stabilization_adaptive.h"/>
|
||||
</header>
|
||||
<init fun="h_ctl_init()"/>
|
||||
<makefile target="ap|sim|nps" firmware="fixedwing">
|
||||
<file name="stabilization_adaptive.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,56 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_attitude" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Legacy attitude and lateral (heading) control for fixedwing aircraft
|
||||
</description>
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="1.0" description="feedback heading P gain"/>
|
||||
<define name="COURSE_DGAIN" value="0.3" description="feedback heading D gain"/>
|
||||
<define name="ROLL_MAX_SETPOINT" value="45." description="max roll setpoint" unit="deg"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="30." description="max pitch up setpoint" unit="deg"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-30." description="max pitch down setpoint" unit="deg"/>
|
||||
<define name="PITCH_PGAIN" value="12000." description="feedback pitch P gain"/>
|
||||
<define name="PITCH_DGAIN" value="1.5" description="feedback pitch D gain"/>
|
||||
<define name="ELEVATOR_OF_ROLL" value="1250" description="feedforward pitch to roll coupling"/>
|
||||
<define name="ROLL_SLEW" value="0.1" description="roll slew rate limiter"/>
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="7500" description="feedback roll P gain"/>
|
||||
<define name="ROLL_RATE_GAIN" value="1500" description="feedback roll rate P gain (roll D gain)"/>
|
||||
</section>
|
||||
</doc>
|
||||
<settings>
|
||||
<dl_settings>
|
||||
<dl_settings NAME="control horiz">
|
||||
<dl_settings NAME="trim">
|
||||
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="ap_state->command_roll_trim" shortname="roll_trim" module="inter_mcu" param="COMMAND_ROLL_TRIM"/>
|
||||
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="ap_state->command_pitch_trim" shortname="pitch_trim" param="COMMAND_PITCH_TRIM"/>
|
||||
<dl_setting MAX="9000" MIN="-9000" STEP="1" VAR="ap_state->command_yaw_trim" shortname="yaw_trim" param="COMMAND_YAW_TRIM"/>
|
||||
</dl_settings>
|
||||
<dl_settings NAME="attitude">
|
||||
<dl_setting MAX="25000" MIN="000" STEP="250" VAR="h_ctl_roll_pgain" shortname="roll_pgain" module="stabilization/stabilization_attitude"/>
|
||||
<dl_setting MAX="60" MIN="0" STEP="1." VAR="h_ctl_roll_max_setpoint" shortname="max_roll" param="H_CTL_ROLL_MAX_SETPOINT" unit="rad" alt_unit="deg"/>
|
||||
<dl_setting MAX="25000" MIN="0" STEP="250" VAR="h_ctl_pitch_pgain" shortname="pitch_pgain" param="H_CTL_PITCH_PGAIN"/>
|
||||
<dl_setting MAX="50000" MIN="0" STEP="10" VAR="h_ctl_pitch_dgain" shortname="pitch_dgain" param="H_CTL_PITCH_DGAIN"/>
|
||||
<dl_setting MAX="5000" MIN="0" STEP="100" VAR="h_ctl_elevator_of_roll" shortname="elevator_of_roll" param="H_CTL_ELEVATOR_OF_ROLL"/>
|
||||
<dl_setting MAX="5000" MIN="0" STEP="100" VAR="h_ctl_aileron_of_throttle" shortname="aileron_of_throttle"/>
|
||||
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_attitude_gain" shortname="roll attitude pgain" param="H_CTL_ROLL_ATTITUDE_GAIN"/>
|
||||
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_rate_gain" shortname="roll rate gain" param="H_CTL_ROLL_RATE_GAIN"/>
|
||||
</dl_settings>
|
||||
<dl_settings name="course">
|
||||
<dl_setting MAX="3" MIN="0.1" STEP="0.05" VAR="h_ctl_course_pgain" shortname="course pgain" param="H_CTL_COURSE_PGAIN"/>
|
||||
<dl_setting MAX="2" MIN="0" STEP="0.1" VAR="h_ctl_course_dgain" shortname="course dgain" param="H_CTL_COURSE_DGAIN"/>
|
||||
<dl_setting MAX="2" MIN="0.1" STEP="0.05" VAR="h_ctl_course_pre_bank_correction" shortname="pre bank cor" param="H_CTL_COURSE_PRE_BANK_CORRECTION"/>
|
||||
<dl_setting MAX="1" MIN="0.02" STEP="0.01" VAR="h_ctl_roll_slew" shortname="roll slew"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<header>
|
||||
<file name="stabilization_attitude.h"/>
|
||||
</header>
|
||||
<init fun="h_ctl_init()"/>
|
||||
<makefile target="ap|sim|nps" firmware="fixedwing">
|
||||
<file name="stabilization_attitude.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,73 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_float_euler" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Stabilization controller for rotorcraft using float euler 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.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.i.x" min="0" step="1" max="800" shortname="igain phi" param="STABILIZATION_ATTITUDE_PHI_IGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.d.x" min="1" step="1" max="4000" shortname="dgain p" param="STABILIZATION_ATTITUDE_PHI_DGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.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.dd.x" min="0" step="1" max="1000" shortname="ddgain p" param="STABILIZATION_ATTITUDE_PHI_DDGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.p.y" min="1" step="1" max="8000" shortname="pgain theta" param="STABILIZATION_ATTITUDE_THETA_PGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.i.y" min="0" step="1" max="800" shortname="igain theta" param="STABILIZATION_ATTITUDE_THETA_IGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.d.y" min="1" step="1" max="4000" shortname="dgain q" param="STABILIZATION_ATTITUDE_THETA_DGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.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.dd.y" min="0" step="1" max="1000" shortname="ddgain q" param="STABILIZATION_ATTITUDE_THETA_DDGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.p.z" min="1" step="1" max="4000" shortname="pgain psi" param="STABILIZATION_ATTITUDE_PSI_PGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.i.z" min="0" step="1" max="400" shortname="igain psi" param="STABILIZATION_ATTITUDE_PSI_IGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.d.z" min="1" step="1" max="4000" shortname="dgain r" param="STABILIZATION_ATTITUDE_PSI_DGAIN" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.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.dd.z" min="0" step="1" max="1000" shortname="ddgain r" param="STABILIZATION_ATTITUDE_PSI_DDGAIN" persistent="true"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_attitude.h"/>
|
||||
<file name="stabilization_attitude_euler_float.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_attitude_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_attitude_euler_float.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_ref_euler_float.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_rc_setpoint.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_FLOAT"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_H" value="stabilization_attitude_euler_float.h" type="string"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,80 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_float_quat" dir="stabilization">
|
||||
<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>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_attitude.h"/>
|
||||
<file name="stabilization_attitude_quat_float.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_attitude_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"/>
|
||||
<file name="stabilization_attitude_rc_setpoint.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_quat_transformations.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_FLOAT"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_H" value="stabilization_attitude_quat_float.h" type="string"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,61 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_heli_indi" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
INDI stabilization controller for helicopters
|
||||
</description>
|
||||
<section name="RC_SETPOINT" 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"/>
|
||||
</section>
|
||||
<section name="ATTITUDE_REFERENCE" prefix="STABILIZATION_ATTITUDE_">
|
||||
<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"/>
|
||||
</section>
|
||||
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||
<define name="G1_P" value="0.0639" description="control effectiveness G1 gain on roll rate"/>
|
||||
<define name="G1_Q" value="0.0361" description="control effectiveness G1 gain on pitch rate"/>
|
||||
<define name="G1_R" value="0.0022" description="control effectiveness G1 gain on yaw rate"/>
|
||||
<define name="G2_R" value="0.1450" description="control effectiveness G2 gain on yaw rate"/>
|
||||
<define name="REF_ERR_P" value="600.0" description="reference acceleration"/>
|
||||
<define name="REF_ERR_Q" value="600.0" description="reference acceleration"/>
|
||||
<define name="REF_ERR_R" value="600.0" description="reference acceleration"/>
|
||||
<define name="REF_RATE_P" value="28.0" description="reference acceleration"/>
|
||||
<define name="REF_RATE_Q" value="28.0" description="reference acceleration"/>
|
||||
<define name="REF_RATE_R" value="28.0" description="reference acceleration"/>
|
||||
<define name="MAX_R" value="120.0" description="max yaw rate" unit="deg/s"/>
|
||||
<define name="FILT_CUTOFF" value="8.0" description="second order cutoff parameter"/>
|
||||
<define name="ESTIMATION_FILT_CUTOFF" value="8.0" description="second order cutoff parameter"/>
|
||||
<define name="ACT_DYN_P" value="0.1" description="first order actuator dynamics on roll rate"/>
|
||||
<define name="ACT_DYN_Q" value="0.1" description="first order actuator dynamics on pitch rate"/>
|
||||
<define name="ACT_DYN_R" value="0.1" description="first order actuator dynamics on yaw rate"/>
|
||||
<define name="USE_ADAPTIVE" value="FALSE|TRUE" description="enable adaptive gains"/>
|
||||
<define name="ADAPTIVE_MU" value="0.0001" description="adaptation parameter"/>
|
||||
</section>
|
||||
</doc>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_heli_indi.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_attitude_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_attutude_heli_indi.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attutude_quat_transformations.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attutude_rc_setpoint.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_INT"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_H" value="stabilization/stabilization_attutude_heli_indi.h" type="string"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,63 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_indi" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Full INDI stabilization controller for rotorcraft
|
||||
</description>
|
||||
<section name="RC_SETPOINT" 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"/>
|
||||
</section>
|
||||
<section name="ATTITUDE_REFERENCE" prefix="STABILIZATION_ATTITUDE_">
|
||||
<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"/>
|
||||
</section>
|
||||
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||
<define name="G1_P" value="0.0639" description="control effectiveness G1 gain on roll rate"/>
|
||||
<define name="G1_Q" value="0.0361" description="control effectiveness G1 gain on pitch rate"/>
|
||||
<define name="G1_R" value="0.0022" description="control effectiveness G1 gain on yaw rate"/>
|
||||
<define name="G2_R" value="0.1450" description="control effectiveness G2 gain on yaw rate"/>
|
||||
<define name="REF_ERR_P" value="600.0" description="reference acceleration"/>
|
||||
<define name="REF_ERR_Q" value="600.0" description="reference acceleration"/>
|
||||
<define name="REF_ERR_R" value="600.0" description="reference acceleration"/>
|
||||
<define name="REF_RATE_P" value="28.0" description="reference acceleration"/>
|
||||
<define name="REF_RATE_Q" value="28.0" description="reference acceleration"/>
|
||||
<define name="REF_RATE_R" value="28.0" description="reference acceleration"/>
|
||||
<define name="MAX_R" value="120.0" description="max yaw rate" unit="deg/s"/>
|
||||
<define name="FILT_CUTOFF" value="8.0" description="second order cutoff parameter"/>
|
||||
<define name="ESTIMATION_FILT_CUTOFF" value="8.0" description="second order cutoff parameter"/>
|
||||
<define name="ACT_DYN_P" value="0.1" description="first order actuator dynamics on roll rate"/>
|
||||
<define name="ACT_DYN_Q" value="0.1" description="first order actuator dynamics on pitch rate"/>
|
||||
<define name="ACT_DYN_R" value="0.1" description="first order actuator dynamics on yaw rate"/>
|
||||
<define name="USE_ADAPTIVE" value="FALSE|TRUE" description="enable adaptive gains"/>
|
||||
<define name="ADAPTIVE_MU" value="0.0001" description="adaptation parameter"/>
|
||||
</section>
|
||||
</doc>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_indi.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_indi_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_indi.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attutude_quat_indi.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attutude_quat_transformations.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attutude_rc_setpoint.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_INT"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_H" value="stabilization/stabilization_attutude_quat_indi.h" type="string"/>
|
||||
<define name="STABILIZATION_ATTITUDE_INDI_FULL" value="true"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,82 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_indi_simple" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Simple INDI stabilization controller for rotorcraft
|
||||
</description>
|
||||
<section name="RC_SETPOINT" 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"/>
|
||||
</section>
|
||||
<section name="ATTITUDE_REFERENCE" prefix="STABILIZATION_ATTITUDE_">
|
||||
<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"/>
|
||||
</section>
|
||||
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||
<define name="G1_P" value="0.0639" description="control effectiveness G1 gain on roll rate"/>
|
||||
<define name="G1_Q" value="0.0361" description="control effectiveness G1 gain on pitch rate"/>
|
||||
<define name="G1_R" value="0.0022" description="control effectiveness G1 gain on yaw rate"/>
|
||||
<define name="G2_R" value="0.1450" description="control effectiveness G2 gain on yaw rate"/>
|
||||
<define name="REF_ERR_P" value="600.0" description="reference acceleration"/>
|
||||
<define name="REF_ERR_Q" value="600.0" description="reference acceleration"/>
|
||||
<define name="REF_ERR_R" value="600.0" description="reference acceleration"/>
|
||||
<define name="REF_RATE_P" value="28.0" description="reference acceleration"/>
|
||||
<define name="REF_RATE_Q" value="28.0" description="reference acceleration"/>
|
||||
<define name="REF_RATE_R" value="28.0" description="reference acceleration"/>
|
||||
<define name="MAX_R" value="120.0" description="max yaw rate" unit="deg/s"/>
|
||||
<define name="FILT_CUTOFF" value="8.0" description="second order cutoff parameter"/>
|
||||
<define name="ESTIMATION_FILT_CUTOFF" value="8.0" description="second order cutoff parameter"/>
|
||||
<define name="ACT_DYN_P" value="0.1" description="first order actuator dynamics on roll rate"/>
|
||||
<define name="ACT_DYN_Q" value="0.1" description="first order actuator dynamics on pitch rate"/>
|
||||
<define name="ACT_DYN_R" value="0.1" description="first order actuator dynamics on yaw rate"/>
|
||||
<define name="USE_ADAPTIVE" value="FALSE|TRUE" description="enable adaptive gains"/>
|
||||
<define name="ADAPTIVE_MU" value="0.0001" description="adaptation parameter"/>
|
||||
</section>
|
||||
</doc>
|
||||
<settings>
|
||||
<dl_settings>
|
||||
<dl_settings NAME="indi">
|
||||
<dl_setting var="indi.reference_acceleration.err_p" min="0" step="1" max="2500" shortname="kp_p" param="STABILIZATION_INDI_REF_ERR_P" persistent="true" module="stabilization/stabilization_indi_simple"/>
|
||||
<dl_setting var="indi.reference_acceleration.rate_p" min="0" step="0.1" max="100" shortname="kd_p" param="STABILIZATION_INDI_REF_RATE_P" persistent="true"/>
|
||||
<dl_setting var="indi.g1.p" min="0" step="0.001" max="10" shortname="ctl_eff_p" param="STABILIZATION_INDI_G1_P" persistent="true"/>
|
||||
<dl_setting var="indi.reference_acceleration.err_q" min="0" step="1" max="2500" shortname="kp_q" param="STABILIZATION_INDI_REF_ERR_Q" persistent="true"/>
|
||||
<dl_setting var="indi.reference_acceleration.rate_q" min="0" step="0.1" max="100" shortname="kd_q" param="STABILIZATION_INDI_REF_RATE_P" persistent="true"/>
|
||||
<dl_setting var="indi.g1.q" min="0" step="0.001" max="10" shortname="ctl_eff_q" param="STABILIZATION_INDI_G1_Q" persistent="true"/>
|
||||
<dl_setting var="indi.reference_acceleration.err_r" min="0" step="1" max="2500" shortname="kp_r" param="STABILIZATION_INDI_REF_ERR_R" persistent="true"/>
|
||||
<dl_setting var="indi.reference_acceleration.rate_r" min="0" step="0.1" max="100" shortname="kd_r" param="STABILIZATION_INDI_REF_RATE_P" persistent="true"/>
|
||||
<dl_setting var="indi.g1.r" min="0" step="0.001" max="10" shortname="ctl_eff_r" param="STABILIZATION_INDI_G1_R" persistent="true"/>
|
||||
<dl_setting var="indi.g2" min="0" step="0.01" max="10" shortname="g2" param="STABILIZATION_INDI_G2_R" persistent="true"/>
|
||||
<dl_setting var="indi.adaptive" min="0" step="1" max="1" shortname="use_adaptive" values="FALSE|TRUE" param="STABILIZATION_INDI_USE_ADAPTIVE" type="uint8" persistent="true"/>
|
||||
<dl_setting var="indi.max_rate" min="0" step="0.01" max="400.0" shortname="max_rate" param="STABILIZATION_INDI_MAX_RATE" unit="rad/s" alt_unit="deg/s"/>
|
||||
<dl_setting var="indi.attitude_max_yaw_rate" min="0" step="0.01" max="400.0" shortname="max_yaw_rate_attitude" param="STABILIZATION_INDI_MAX_R" unit="rad/s" alt_unit="deg/s"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_indi_simple.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_indi_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_indi_simple.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attutude_quat_indi.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attutude_quat_transformations.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attutude_rc_setpoint.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_INT"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_H" value="stabilization/stabilization_attutude_quat_indi.h" type="string"/>
|
||||
<define name="STABILIZATION_ATTITUDE_INDI_SIMPLE" value="true"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,70 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_int_euler" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Stabilization controller for rotorcraft using integer euler 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.p.x" min="1" step="1" max="8000" shortname="pgain phi" param="STABILIZATION_ATTITUDE_PHI_PGAIN" type="int32" persistent="true" module="stabilization/stabilization_attitude_common_int"/>
|
||||
<dl_setting var="stabilization_gains.d.x" min="1" step="1" max="4000" shortname="dgain p" param="STABILIZATION_ATTITUDE_PHI_DGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.i.x" min="0" step="1" max="800" shortname="igain phi" param="STABILIZATION_ATTITUDE_PHI_IGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.dd.x" min="0" step="1" max="1000" shortname="ddgain p" param="STABILIZATION_ATTITUDE_PHI_DDGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.p.y" min="1" step="1" max="8000" shortname="pgain theta" param="STABILIZATION_ATTITUDE_THETA_PGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.d.y" min="1" step="1" max="4000" shortname="dgain q" param="STABILIZATION_ATTITUDE_THETA_DGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.i.y" min="0" step="1" max="800" shortname="igain theta" param="STABILIZATION_ATTITUDE_THETA_IGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.dd.y" min="0" step="1" max="1000" shortname="ddgain q" param="STABILIZATION_ATTITUDE_THETA_DDGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.p.z" min="1" step="1" max="4000" shortname="pgain psi" param="STABILIZATION_ATTITUDE_PSI_PGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.d.z" min="1" step="1" max="4000" shortname="dgain r" param="STABILIZATION_ATTITUDE_PSI_DGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.i.z" min="0" step="1" max="400" shortname="igain psi" param="STABILIZATION_ATTITUDE_PSI_IGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.dd.z" min="0" step="1" max="1000" shortname="ddgain r" param="STABILIZATION_ATTITUDE_PSI_DDGAIN" type="int32" persistent="true"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_attitude.h"/>
|
||||
<file name="stabilization_attitude_euler_int.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_attitude_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_attitude_euler_int.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_ref_euler_int.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_rc_setpoint.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_INT"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_H" value="stabilization_attitude_euler_int.h" type="string"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_int_quat" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Stabilization controller for rotorcraft using integer 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.p.x" min="1" step="1" max="8000" shortname="pgain phi" param="STABILIZATION_ATTITUDE_PHI_PGAIN" type="int32" persistent="true" module="stabilization/stabilization_attitude_common_int"/>
|
||||
<dl_setting var="stabilization_gains.d.x" min="1" step="1" max="4000" shortname="dgain p" param="STABILIZATION_ATTITUDE_PHI_DGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.i.x" min="0" step="1" max="800" shortname="igain phi" param="STABILIZATION_ATTITUDE_PHI_IGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.dd.x" min="0" step="1" max="1000" shortname="ddgain p" param="STABILIZATION_ATTITUDE_PHI_DDGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.p.y" min="1" step="1" max="8000" shortname="pgain theta" param="STABILIZATION_ATTITUDE_THETA_PGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.d.y" min="1" step="1" max="4000" shortname="dgain q" param="STABILIZATION_ATTITUDE_THETA_DGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.i.y" min="0" step="1" max="800" shortname="igain theta" param="STABILIZATION_ATTITUDE_THETA_IGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.dd.y" min="0" step="1" max="1000" shortname="ddgain q" param="STABILIZATION_ATTITUDE_THETA_DDGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.p.z" min="1" step="1" max="4000" shortname="pgain psi" param="STABILIZATION_ATTITUDE_PSI_PGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.d.z" min="1" step="1" max="4000" shortname="dgain r" param="STABILIZATION_ATTITUDE_PSI_DGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.i.z" min="0" step="1" max="400" shortname="igain psi" param="STABILIZATION_ATTITUDE_PSI_IGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_gains.dd.z" min="0" step="1" max="1000" shortname="ddgain r" param="STABILIZATION_ATTITUDE_PSI_DDGAIN" type="int32" persistent="true"/>
|
||||
<dl_setting var="att_ref_quat_i.model.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_int"/>
|
||||
<dl_setting var="att_ref_quat_i.model.zeta.p" min="0.5" step="0.05" max="1.2" shortname="zeta p" param="STABILIZATION_ATTITUDE_REF_ZETA_P" handler="SetZetaP" module="stabilization/stabilization_attitude_quat_int"/>
|
||||
<dl_setting var="att_ref_quat_i.model.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" module="stabilization/stabilization_attitude_quat_int"/>
|
||||
<dl_setting var="att_ref_quat_i.model.zeta.q" min="0.5" step="0.05" max="1.2" shortname="zeta q" param="STABILIZATION_ATTITUDE_REF_ZETA_Q" handler="SetZetaQ" module="stabilization/stabilization_attitude_quat_int"/>
|
||||
<dl_setting var="att_ref_quat_i.model.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" module="stabilization/stabilization_attitude_quat_int"/>
|
||||
<dl_setting var="att_ref_quat_i.model.zeta.r" min="0.5" step="0.05" max="1.2" shortname="zeta r" param="STABILIZATION_ATTITUDE_REF_ZETA_R" handler="SetZetaR" module="stabilization/stabilization_attitude_quat_int"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_attitude.h"/>
|
||||
<file name="stabilization_attitude_quat_int.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_attitude_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_attitude_quat_int.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_ref_quat_int.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_rc_setpoint.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_quat_transformations.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_INT"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_H" value="stabilization_attitude_quat_int.h" type="string"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_passthrough" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Passthrough controller for rotorcraft
|
||||
</description>
|
||||
</doc>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_attitude_passthrough.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_attitude_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_attutude_passthrough.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attutude_rc_setpoint.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="STABILIZATION_ATTITUDE_NO_REF"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_INT"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_H" value="stabilization/stabilization_attutude_passthrough.h" type="string"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,44 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_rate" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Rate controller for rotorcraft
|
||||
</description>
|
||||
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
|
||||
<define name="SP_MAX_P" value="300" description="max roll rate setpoint" unit="deg/s"/>
|
||||
<define name="SP_MAX_Q" value="300" description="max pitch rate setpoint" unit="deg/s"/>
|
||||
<define name="SP_MAX_R" value="240" description="max yaw rate setpoint" unit="deg/s"/>
|
||||
<define name="DEADBAND_P" value="20" description="deadband on roll rate"/>
|
||||
<define name="DEADBAND_Q" value="20" description="deadband on pitch rate"/>
|
||||
<define name="DEADBAND_R" value="200" description="deadband on yaw rate"/>
|
||||
<define name="GAIN_P" value="1000" description="feedback P roll rate gain"/>
|
||||
<define name="GAIN_Q" value="1000" description="feedback P pitch rate gain"/>
|
||||
<define name="GAIN_R" value="800" description="feedback P yaw rate gain"/>
|
||||
<define name="IGAIN_P" value="75" description="feedback I roll rate gain"/>
|
||||
<define name="IGAIN_Q" value="75" description="feedback I pitch rate gain"/>
|
||||
<define name="IGAIN_R" value="50" description="feedback I yaw rate gain"/>
|
||||
</section>
|
||||
</doc>
|
||||
<settings target="ap|nps">
|
||||
<dl_settings>
|
||||
<dl_settings NAME="Rate Loop">
|
||||
<dl_setting var="stabilization_rate_gain.p" min="1" step="1" max="1000" shortname="pgain p" param="STABILIZATION_RATE_GAIN_P" type="int32" persistent="true" module="stabilization/stabilization_rate"/>
|
||||
<dl_setting var="stabilization_rate_gain.q" min="1" step="1" max="1000" shortname="pgain q" param="STABILIZATION_RATE_GAIN_Q" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_rate_gain.r" min="1" step="1" max="1000" shortname="pgain r" param="STABILIZATION_RATE_GAIN_R" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_rate_igain.p" min="0" step="1" max="500" shortname="igain p" param="STABILIZATION_RATE_IGAIN_P" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_rate_igain.q" min="0" step="1" max="500" shortname="igain q" param="STABILIZATION_RATE_IGAIN_Q" type="int32" persistent="true"/>
|
||||
<dl_setting var="stabilization_rate_igain.r" min="0" step="1" max="500" shortname="igain r" param="STABILIZATION_RATE_IGAIN_R" type="int32" persistent="true"/>
|
||||
</dl_settings>
|
||||
</dl_settings>
|
||||
</settings>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_rate.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_rate_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_rate.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="USE_STABILIZATION_RATE"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabiliztion_rate_indi" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Rate INDI controller for rotorcraft
|
||||
</description>
|
||||
</doc>
|
||||
<autoload name="stabilization" type="rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization_rate_indi.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_rate_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_indi.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_rate_indi.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="USE_STABILIZATION_RATE"/>
|
||||
<define name="STABILIZATION_RATE_INDI" value="true"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -0,0 +1,22 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="stabilization_rotorcraft" dir="stabilization">
|
||||
<doc>
|
||||
<description>
|
||||
Base stabilization code for rotorcraft
|
||||
Also provide the direct mode 'stabilization_none'
|
||||
As a durty hack, it also provides navigation and guidance: this should be done in the airframe at some point
|
||||
</description>
|
||||
</doc>
|
||||
<autoload name="nav_basic_rotorcraft"/>
|
||||
<header>
|
||||
<file name="stabilization.h" dir="firmwares/rotorcraft"/>
|
||||
<file name="stabilization_none.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_init()"/>
|
||||
<init fun="stabilization_none_init()"/>
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization.c" dir="$(SRC_FIRMWARE)"/>
|
||||
<file name="stabilization_none.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -30,6 +30,8 @@
|
||||
#include <stdint.h>
|
||||
#include "firmwares/rotorcraft/autopilot.h"
|
||||
|
||||
#include "generated/modules.h"
|
||||
|
||||
#include "mcu_periph/uart.h"
|
||||
#include "mcu_periph/sys_time.h"
|
||||
#include "subsystems/radio_control.h"
|
||||
@@ -38,16 +40,6 @@
|
||||
#include "subsystems/electrical.h"
|
||||
#include "subsystems/settings.h"
|
||||
#include "subsystems/datalink/telemetry.h"
|
||||
#include "firmwares/rotorcraft/navigation.h"
|
||||
#include "firmwares/rotorcraft/guidance.h"
|
||||
|
||||
#include "firmwares/rotorcraft/stabilization.h"
|
||||
#include "firmwares/rotorcraft/stabilization/stabilization_none.h"
|
||||
#include "firmwares/rotorcraft/stabilization/stabilization_attitude.h"
|
||||
|
||||
#if USE_STABILIZATION_RATE
|
||||
#include "firmwares/rotorcraft/stabilization/stabilization_rate.h"
|
||||
#endif
|
||||
|
||||
#include "generated/settings.h"
|
||||
|
||||
@@ -264,18 +256,6 @@ void autopilot_init(void)
|
||||
gpio_clear(POWER_SWITCH_GPIO); // POWER OFF
|
||||
#endif
|
||||
|
||||
// init GNC stack
|
||||
// TODO this should be done in modules init
|
||||
nav_init();
|
||||
guidance_h_init();
|
||||
guidance_v_init();
|
||||
stabilization_init();
|
||||
stabilization_none_init();
|
||||
#if USE_STABILIZATION_RATE
|
||||
stabilization_rate_init();
|
||||
#endif
|
||||
stabilization_attitude_init();
|
||||
|
||||
// call implementation init
|
||||
// it will set startup mode
|
||||
#if USE_GENERATED_AUTOPILOT
|
||||
|
||||
@@ -197,13 +197,6 @@ void guidance_h_init(void)
|
||||
register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_ROTORCRAFT_TUNE_HOVER, send_tune_hover);
|
||||
#endif
|
||||
|
||||
#if GUIDANCE_INDI
|
||||
guidance_indi_enter();
|
||||
#endif
|
||||
|
||||
#if HYBRID_NAVIGATION
|
||||
guidance_hybrid_init();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user