Files
Gautier Hattenberger 37a86bb389
Issues due date / Add labels to issues (push) Has been cancelled
Doxygen / build (push) Has been cancelled
[indi] rewrite indi stabilization and guidance for modularity (#3565)
This PR allows to redefine the outer-loop for stabilization and
guidance, and to specify the guidance model for something else than a
quarotor (but still not an hybrid).
Two use case are proposed:
- replace the PD control of the outer-loop (still used by default) by
  and Hinfinity controller
- parametrize the guidance for an hexa-copter with tilted motors,
  allowing to produce side force for lateral motion control.
2026-02-02 18:41:03 +01:00

94 lines
2.6 KiB
C

#ifndef AIRFRAME_H
#define AIRFRAME_H
#define AIRFRAME_NAME "DUMMY"
#define AC_ID 42
// basic plane
#define COMMAND_THROTTLE 0
#define COMMAND_ROLL 1
#define COMMAND_PITCH 2
#define COMMANDS_NB 3
#define COMMANDS_FAILSAFE {0,0,0}
// basic rotorcraft
//#define COMMAND_PITCH 0
//#define COMMAND_ROLL 1
#define COMMAND_YAW 2
#define COMMAND_THRUST 3
// extra commands
#define COMMAND_FLAPS 4
#define SetCommandsFromRC(_commands_array, _rc_array) { }
#define AllActuatorsInit() { }
#define AllActuatorsCommit() { }
#define SetActuatorsFromCommands(values, AP_MODE) { }
#define KILL_MODE_DISTANCE (1.5*MAX_DIST_FROM_HOME)
#define DEFAULT_CIRCLE_RADIUS 80.
#define NOMINAL_AIRSPEED 12.
#define CARROT 5.
#define V_CTL_AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE 0.4
#define SECTION_FAILSAFE 1
#define FAILSAFE_DELAY_WITHOUT_GPS 2
#define FAILSAFE_DEFAULT_THROTTLE 0.3
#define FAILSAFE_DEFAULT_ROLL 0.3
#define FAILSAFE_DEFAULT_PITCH 0.
#define FAILSAFE_HOME_RADIUS 100
#define SECTION_IMU 1
#define IMU_BODY_TO_IMU_PHI 0.
#define IMU_BODY_TO_IMU_THETA 0.
#define IMU_BODY_TO_IMU_PSI 0
#define SECTION_INS 1
#define INS_H_X 0.3892503
#define INS_H_Y 0.0017972
#define INS_H_Z 0.9211303
#define INS_USE_GPS_ALT 1
#define INS_SONAR_MIN_RANGE 0.0
#define INS_SONAR_MAX_RANGE 3.5
#define INS_SONAR_UPDATE_ON_AGL TRUE
#define INS_ROLL_NEUTRAL_DEFAULT 0.
#define INS_PITCH_NEUTRAL_DEFAULT 0.
#define SECTION_STABILIZATION_ATTITUDE 1
#define STABILIZATION_ATTITUDE_SP_MAX_PHI 0.7853981625
#define STABILIZATION_ATTITUDE_SP_MAX_THETA 0.7853981625
#define STABILIZATION_ATTITUDE_SP_MAX_R 1.04719755
#define STABILIZATION_ATTITUDE_DEADBAND_R 250
#define SECTION_STABILIZATION_ATTITUDE_INDI_HINF 1
#define STABILIZATION_INDI_HINF_Ap 1.
#define STABILIZATION_INDI_HINF_Bp 0.03518
#define STABILIZATION_INDI_HINF_Cp 0.0191
#define STABILIZATION_INDI_HINF_Dp 7.643
#define STABILIZATION_INDI_HINF_Ad 0.9013
#define STABILIZATION_INDI_HINF_Bd -0.02509
#define STABILIZATION_INDI_HINF_Cd 91.15
#define STABILIZATION_INDI_HINF_Dd 44.57
#define SECTION_GUIDANCE_INDI_HINF 1
#define GUIDANCE_INDI_HINF_Ap 0.9985
#define GUIDANCE_INDI_HINF_Bp 0.04362
#define GUIDANCE_INDI_HINF_Cp 0.009739
#define GUIDANCE_INDI_HINF_Dp 0.5602
#define GUIDANCE_INDI_HINF_Ad 1
#define GUIDANCE_INDI_HINF_Bd -0.01418
#define GUIDANCE_INDI_HINF_Cd -0.2814
#define GUIDANCE_INDI_HINF_Dd 2.397
#define GUIDANCE_INDI_HINF_Apz 0.9987
#define GUIDANCE_INDI_HINF_Bpz -0.0003935
#define GUIDANCE_INDI_HINF_Cpz -1.052
#define GUIDANCE_INDI_HINF_Dpz 1.084
#define GUIDANCE_INDI_HINF_Adz 1
#define GUIDANCE_INDI_HINF_Bdz 0.003449
#define GUIDANCE_INDI_HINF_Cdz 1.548
#define GUIDANCE_INDI_HINF_Ddz 3.357
#endif // AIRFRAME_H