#!/bin/sh
#
# @name Plane SITL for SIH
#
# @type Plane
#
# @maintainer Romain Chiappinelli <romain.chiap@gmail.com>

. ${R}etc/init.d/rc.fw_defaults

PX4_SIMULATOR=${PX4_SIMULATOR:=sihsim}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=airplane}

param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 1

param set-default SIH_F_T_MAX 8
param set-default SIH_F_CT0 0.16
param set-default SIH_MASS 0.3
param set-default SIH_IXX 0.00402
param set-default SIH_IYY 0.0144
param set-default SIH_IZZ 0.0177
param set-default SIH_IXZ 0.00046
param set-default SIH_KDV 0.2

param set-default SIH_VEHICLE_TYPE 1 	# sih as fixed wing
param set-default RWTO_TKOFF 1  # enable takeoff from runway (as opposed to launched)

param set-default CA_ROTOR_COUNT 1
param set-default CA_ROTOR0_PX 0.3

# SIH for now hardcodes this configuration which we need to match in the airframe files.
param set-default CA_SV_CS_COUNT 3
param set-default CA_SV_CS0_TRQ_R 1
param set-default CA_SV_CS0_TYPE 15  # single channel aileron
param set-default CA_SV_CS1_TRQ_P 1
param set-default CA_SV_CS1_TYPE 3  # elevator
param set-default CA_SV_CS2_TRQ_Y 1
param set-default CA_SV_CS2_TYPE 4  # rudder

param set-default PWM_MAIN_FUNC1 201
param set-default PWM_MAIN_FUNC2 202
param set-default PWM_MAIN_FUNC3 203
param set-default PWM_MAIN_FUNC4 101

param set-default SENS_GPS0_DELAY 0
param set-default SENS_GPS1_DELAY 0

# Rate controllers
param set-default FW_RR_P 0.0500
param set-default FW_RR_I 2.0000
param set-default FW_RR_D 0.0000
param set-default FW_RR_FF 0.0000
param set-default FW_RR_IMAX 1.0000

param set-default FW_PR_P 0.0800
param set-default FW_PR_I 2.5000
param set-default FW_PR_D 0.0000
param set-default FW_PR_FF 0.0000
param set-default FW_PR_IMAX 1.0000

param set-default FW_YR_P 0.0500
param set-default FW_YR_I 3.0000
param set-default FW_YR_D 0.0000
param set-default FW_YR_FF 0.0000
param set-default FW_YR_IMAX 1.0000

# FW controller / TECS tuning for this 0.3 kg low-mass airframe.
# Default PX4 FW tuning is calibrated for 1-5 kg planes; this airframe needs
# specific tuning for the takeoff -> cruise handoff at 10 m/s trim with 8 N
# max thrust. Values verified by iterating against SIH dynamics.
param set-default FW_AIRSPD_STALL 6
param set-default FW_AIRSPD_MIN 7
param set-default FW_AIRSPD_TRIM 10
param set-default FW_AIRSPD_MAX 12
param set-default FW_PSP_OFF 2.0
param set-default FW_THR_TRIM 0.9
param set-default FW_THR_MIN 0.5
param set-default FW_T_CLMB_MAX 2
param set-default FW_T_SINK_MIN 2
param set-default FW_T_SPDWEIGHT 2.0
param set-default FW_T_ALT_TC 3.0
param set-default FW_T_TAS_TC 3.0
param set-default FW_T_HRATE_FF 0.6
param set-default FW_T_THR_DAMPING 0.3
param set-default NAV_LOITER_RAD 30
