Enac conf cleaning (#3223)

move boards test files to separated folder
This commit is contained in:
Gautier Hattenberger
2023-12-20 09:33:15 +01:00
committed by GitHub
parent c1ab6d5418
commit 378b9367de
37 changed files with 1597 additions and 1795 deletions
+38 -104
View File
@@ -1,41 +1,8 @@
<conf>
<aircraft
name="APOGEE"
ac_id="3"
airframe="airframes/ENAC/fixed-wing/apogee.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/fixedwing_flight_recorder.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_dcm.xml modules/gps.xml modules/guidance_basic_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/power_switch.xml modules/stabilization_attitude_fw.xml"
gui_color="blue"
/>
<aircraft
name="CHIMERA"
ac_id="23"
airframe="airframes/ENAC/fixed-wing/chimera.xml"
radio="radios/T10CG_SBUS.xml"
telemetry="telemetry/fixedwing_flight_recorder.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/gps.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="#fdeb90060000"
/>
<aircraft
name="CRAZYFLIE"
ac_id="5"
airframe="airframes/ENAC/quadrotor/crazyflie_2.1.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/ENAC/crazyflie_multi_ranger_test.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_madgwick.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_extended.xml modules/nav_rotorcraft.xml modules/opticflow_pmw3901.xml modules/range_forcefield.xml modules/sonar_vl53l1x.xml modules/stabilization_int_quat.xml"
gui_color="blue"
/>
<aircraft
name="CYFOAM"
ac_id="6"
airframe="airframes/ENAC/cyfoam.xml"
airframe="airframes/ENAC/hybrid/cyfoam.xml"
radio="radios/T10CG_SBUS.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
@@ -44,71 +11,16 @@
gui_color="#ffff7f7f0000"
/>
<aircraft
name="JP"
name="ZAGI"
ac_id="12"
airframe="airframes/ENAC/fixed-wing/jp.xml"
airframe="airframes/ENAC/fixed-wing/zagi_test.xml"
radio="radios/R617FS_5ch_neg.xml"
telemetry="telemetry/default_fixedwing_imu.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml [settings/nps.xml]"
settings_modules="modules/ahrs_float_dcm.xml modules/airspeed_adc.xml modules/gps.xml modules/gps_ublox.xml [modules/gps_ubx_ucenter.xml] modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/ins_float_invariant.xml modules/nav_basic_fw.xml modules/power_switch.xml modules/stabilization_adaptive_fw.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_dcm.xml modules/airspeed_adc.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml [modules/gps_ubx_ucenter.xml] modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/ins_float_invariant.xml modules/nav_basic_fw.xml modules/power_switch.xml modules/stabilization_adaptive_fw.xml"
gui_color="#ffff7d7d0000"
/>
<aircraft
name="LISAMX"
ac_id="10"
airframe="airframes/examples/quadrotor_lisa_mx.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_float_mlkf.xml modules/air_data.xml modules/geo_mag.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_basic_rotorcraft.xml modules/stabilization_int_quat.xml modules/stabilization_rate.xml"
gui_color="blue"
/>
<aircraft
name="MATEK"
ac_id="7"
airframe="airframes/ENAC/fixed-wing/matek_f765_wing.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_fixedwing.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/gps.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="blue"
/>
<aircraft
name="NUCLEO"
ac_id="4"
airframe="airframes/ENAC/nucleo144_test.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_fixedwing.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_cmpl_quat.xml modules/ahrs_float_dcm.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="blue"
/>
<aircraft
name="PX4FMUv5"
ac_id="8"
airframe="airframes/tudelft/mentor.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_fixedwing.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_energy.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_attitude_fw.xml"
gui_color="blue"
/>
<aircraft
name="TAWAKI"
ac_id="1"
airframe="airframes/ENAC/fixed-wing/tawaki.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/fixedwing_flight_recorder.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_cmpl_quat.xml modules/ahrs_float_dcm.xml modules/air_data.xml modules/gps.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/ins_float_invariant.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="blue"
/>
<aircraft
name="RoBoBee"
ac_id="2"
@@ -142,17 +54,6 @@
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_indi.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/jevois.xml modules/logger_sd_chibios.xml modules/nav_rotorcraft.xml modules/nav_survey_poly_rotorcraft.xml modules/stabilization_indi.xml modules/switch_servo.xml modules/tag_tracking.xml"
gui_color="#c6d33e3ef958"
/>
<aircraft
name="matek"
ac_id="9"
airframe="airframes/examples/matek_h743_slim.xml"
radio="radios/FrSky_X-Lite.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/stabilization_int_quat.xml"
gui_color="red"
/>
<aircraft
name="CobraV2"
ac_id="11"
@@ -164,4 +65,37 @@
settings_modules="modules/electrical.xml modules/gps.xml modules/guidance_indi.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/jevois.xml modules/logger_sd_chibios.xml modules/nav_rotorcraft.xml modules/preflight_checks.xml modules/stabilization_indi.xml modules/switch_servo.xml modules/tag_tracking.xml"
gui_color="#55005500ff00"
/>
<aircraft
name="MAYA"
ac_id="1"
airframe="airframes/ENAC/quadrotor/maya_outdoor.xml"
radio="radios/FrSky_X-Lite.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/competitions/IMAV2023_dynamic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_indi.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/jevois.xml modules/logger_sd_chibios.xml modules/nav_rotorcraft.xml modules/stabilization_indi.xml modules/switch_servo.xml modules/tag_tracking.xml"
gui_color="#c6d33e3ef958"
/>
<aircraft
name="FALCON_V2"
ac_id="3"
airframe="airframes/ENAC/hybrid/falcon_v2.xml"
radio="radios/T10CG_SBUS.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/air_data.xml modules/airspeed_sdp3x.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/logger_sd_chibios.xml modules/nav_hybrid.xml modules/nav_rotorcraft.xml modules/stabilization_indi.xml"
gui_color="#ffff7f7f0000"
/>
<aircraft
name="PANACHE_1"
ac_id="4"
airframe="airframes/ENAC/fixed-wing/panache_1.xml"
radio="radios/T10CG_SBUS.xml"
telemetry="telemetry/fixedwing_flight_recorder.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/e_identification_fr.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/logger_sd_chibios.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="#ffff7d7d0000"
/>
</conf>
+4 -6
View File
@@ -1,13 +1,11 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<!-- Funjet Multiplex (http://www.multiplex-rc.de/)
UBX GPS
Airspeed sensor
Digital camera
-->
<airframe name="CRRCSIM demo">
<description>
Demo for the CRRCSIM simulator with NPS
</description>
<firmware name="fixedwing">
<define name="AGR_CLIMB"/>
<define name="LOITER_TRIM"/>
@@ -0,0 +1,199 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="Panache_1">
<description>
Talon GT Rebel
Project Panache
AP: Tawaki
GPS: Ublox
Modem: XBee
</description>
<firmware name="fixedwing">
<configure name="PERIODIC_FREQUENCY" value="100"/>
<target name="ap" board="tawaki_1.1">
<module name="radio_control" type="sbus"/>
<define name="USE_PWM5"/>
<define name="USE_PWM_TIM4"/>
</target>
<target name="nps" board="pc">
<module name="radio_control" type="ppm"/>
<module name="fdm" type="jsbsim"/>
<!-- to use real panache board in simulation, remove target="ap" from extra_dl.xml -->
<module name="uart"/>
<define name="UART6_DEV" value="/dev/ttyUSB0"/>
</target>
<module name="telemetry" type="xbee_api"/>
<module name="board" type="tawaki"/>
<module name="ahrs" type="float_dcm"/> <!--Attitude and heading reference system-->
<module name="ins" type="alt_float"/><!--Inertial navigation system-->
<module name="air_data"/>
<module name="gps" type="ublox">
<configure name="GPS_BAUD" value="B115200"/>
</module>
<module name="control" type="new"/>
<module name="navigation"/>
<module name="e_identification_fr">
<configure name="E_ID_PORT" value="UART3"/>
<configure name="E_ID_BAUD" value="B115200"/>
</module>
<module name="flight_recorder"/>
<!-- panache_sensor depends on flight_recorder and extra_dl >-->
<!--module name="panache_sensor">
<configure name="PANACHE_PORT" value="uart3"/>
<configure name="PANACHE_BAUD" value="B230400"/>
</module-->
</firmware>
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
</commands>
<servos>
<servo name="TAIL_RIGHT" no="1" min="1000" neutral="1400" max="1800"/>
<servo name="TAIL_LEFT" no="2" min="1950" neutral="1550" max="1150"/>
<servo name="AILERON_RIGHT" no="3" min="1960" neutral="1660" max="1260"/>
<servo name="AILERON_LEFT" no="4" min="1780" neutral="1380" max="1080"/>
<servo name="MOTOR" no="5" min="1000" neutral="1000" max="2000"/>
</servos>
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
</rc_commands>
<section name="MIXER">
<define name="AILERON_RATE" value="0.85"/>
<define name="ELEVATOR_RATE" value="0.85"/>
<define name="RUDDER_RATE" value="0.75"/>
</section>
<command_laws>
<set servo="MOTOR" value="@THROTTLE"/>
<set servo="AILERON_LEFT" value="@ROLL * AILERON_RATE"/>
<set servo="AILERON_RIGHT" value="@ROLL * AILERON_RATE"/>
<set servo="TAIL_LEFT" value="- @PITCH * ELEVATOR_RATE - @YAW * RUDDER_RATE"/>
<set servo="TAIL_RIGHT" value="- @PITCH * ELEVATOR_RATE + @YAW * RUDDER_RATE"/>
</command_laws>
<section name="GVF" prefix="GVF_">
<define name="LINE_KE" value="2.5"/>
<define name="ELLIPSE_KE" value="0.8"/>
<define name="ELLIPSE_KN" value="0.6"/>
</section>
<section name="GVF_PARAMETRIC" prefix="GVF_PARAMETRIC_">
<define name="3D_LISSAJOUS_KX" value="0.001"/>
<define name="3D_LISSAJOUS_KY" value="0.001"/>
<define name="3D_LISSAJOUS_KZ" value="0.001"/>
</section>
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="45." unit="deg"/>
<define name="MAX_PITCH" value="30." unit="deg"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="ACCEL_X_NEUTRAL" value="-89"/>
<define name="ACCEL_Y_NEUTRAL" value="40"/>
<define name="ACCEL_Z_NEUTRAL" value="42"/>
<define name="ACCEL_X_SENS" value="2.5489897051228363" integer="16"/>
<define name="ACCEL_Y_SENS" value="2.4490240616062073" integer="16"/>
<define name="ACCEL_Z_SENS" value="2.4604910680255285" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0" unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0" unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="180" unit="deg"/>
</section>
<include href="conf/mag/toulouse_muret.xml"/>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="12.6" unit="V"/>
<define name="MAX_BAT_LEVEL" value="16.8"/>
<define name="BAT_NB_CELLS" value="4"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="18." unit="m/s"/>
<define name="CARROT" value="5." unit="s"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="100."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.06"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.45"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.6"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.08" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.003"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.005"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.09"/>
<define name="AUTO_PITCH_PGAIN" value="0.024"/>
<define name="AUTO_PITCH_DGAIN" value="0.013"/>
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
<define name="AUTO_PITCH_MAX_PITCH" value="20" unit="deg"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-20" unit="deg"/>
<define name="PITCH_TRIM" value="-0.4" unit="deg"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="0.4"/>
<define name="PITCH_MAX_SETPOINT" value="30." unit="deg"/>
<define name="PITCH_MIN_SETPOINT" value="-30." unit="deg"/>
<define name="PITCH_PGAIN" value="10210"/>
<define name="PITCH_IGAIN" value="322"/>
<define name="PITCH_DGAIN" value="1485"/>
<define name="ROLL_RATE_GAIN" value="1000"/>
<define name="ROLL_MAX_SETPOINT" value="40" unit="deg"/>
<define name="ROLL_ATTITUDE_GAIN" value="11770"/>
</section>
<section name="CATAPULT" prefix="NAV_CATAPULT_">
<define name="ACCELERATION_THRESHOLD" value="1.2" description="acceleration threshold in multiples of g" unit="g"/>
<define name="ACCELERATION_DETECTION" value="2" description="number acceleration measurments above threshold for launch detection"/>
<define name="MOTOR_DELAY" value="0.5" description="delay until motor is turned on in seconds" unit="s"/>
<define name="HEADING_DELAY" value="3.0" description="delay until heading is unlocked in seconds" unit="s"/>
<define name="INITIAL_PITCH" value="15." description="inital pitch in radians (default 10deg)" unit="deg"/>
<define name="INITIAL_THROTTLE" value="1.0" description="initial throttle (0.0 to 1.0)" unit="%"/>
<define name="CLIMB_DISTANCE" value="200" description="distance of the climb waypoint in front of the catapult" unit="m"/>
<define name="TIMEOUT" value="30." description="timeout to disarm the high freq module" unit="s"/>
</section>
<section name="NAV_LANDING" prefix="NAV_LANDING_">
<define name="AF_HEIGHT" value="25"/>
<define name="FLARE_HEIGHT" value="8"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="2" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0.3" unit="%"/>
<define name="DEFAULT_ROLL" value="10." unit="deg"/>
<define name="DEFAULT_PITCH" value="4." unit="deg"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="JSBSIM_LAUNCHSPEED" value="15"/>
<define name="JSBSIM_MODEL" value="easystar" type="string"/>
</section>
</airframe>
@@ -1,6 +1,6 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="JP">
<airframe name="Zagi test">
<firmware name="fixedwing">
-277
View File
@@ -1,277 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!-- this is a quadrotor frame in X-configuration equiped with
* Autopilot: ELLE0 1.2 with STM32F4 http://wiki.paparazziuav.org/wiki/ELLE0
* IMU: MPU9250 & MS5611 http://wiki.paparazziuav.org/wiki/ELLE0#IMU
* Actuators: PWM motor controllers http://wiki.paparazziuav.org/wiki/Subsystem/actuators#PWM
* (GPS: Ublox http://wiki.paparazziuav.org/wiki/Subsystem/gps)
* RC: one (two) Spektrum sats http://wiki.paparazziuav.org/wiki/Subsystem/radio_control#Spektrum
-->
<airframe name="Hooper Gen AP">
<firmware name="rotorcraft">
<autopilot name="rotorcraft_autopilot.xml"/>
<configure name="AHRS_ALIGNER_LED" value="2"/>
<define name="IMU_MPU9250_READ_MAG" value="0"/>
<define name="LOW_NOISE_THRESHOLD" value="3500"/>
<define name="LOW_NOISE_TIME" value="10"/>
<target name="ap" board="elle0_1.2">
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
</target>
<module name="radio_control" type="spektrum">
<define name="RADIO_MODE" value="RADIO_FLAP"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
</module>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
</module>
<module name="telemetry" type="transparent"/>
<module name="imu" type="elle0"/>
<module name="mag" type="hmc58xx">
<define name="MODULE_HMC58XX_UPDATE_AHRS"/>
<configure name="MAG_HMC58XX_I2C_DEV" value="i2c2"/>
<define name="HMC58XX_CHAN_X" value="1"/>
<define name="HMC58XX_CHAN_Y" value="0"/>
</module>
<module name="gps" type="ublox">
<configure name="GPS_BAUD" value="B115200"/>
</module>
<module name="stabilization" type="int_quat"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="ins" />
<!--module name="geo_mag"/-->
<module name="air_data"/>
<module name="stabilization" type="rate"/>
<!--define name="KILL_ON_GROUND_DETECT" value="TRUE"/-->
<module name="bat_checker">
<define name="BAT_CHECKER_GPIO" value="GPIOA,GPIO0"/>
<define name="USE_PWM5" value="0"/>
</module>
</firmware>
<servos driver="Pwm">
<servo name="FL" no="0" min="1000" neutral="1200" max="2000"/>
<servo name="FR" no="1" min="1000" neutral="1200" max="2000"/>
<servo name="BR" no="2" min="1000" neutral="1200" max="2000"/>
<servo name="BL" no="3" min="1000" neutral="1200" max="2000"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<!-- front left (CW), front right (CCW), back right (CW), back left (CCW) -->
<define name="TYPE" value="QUAD_X"/>
</section>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FL" value="motor_mixing.commands[MOTOR_FRONT_LEFT]"/>
<set servo="FR" value="motor_mixing.commands[MOTOR_FRONT_RIGHT]"/>
<set servo="BR" value="motor_mixing.commands[MOTOR_BACK_RIGHT]"/>
<set servo="BL" value="motor_mixing.commands[MOTOR_BACK_LEFT]"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<define name="ACCEL_X_NEUTRAL" value="-55"/>
<define name="ACCEL_Y_NEUTRAL" value="3"/>
<define name="ACCEL_Z_NEUTRAL" value="-141"/>
<define name="ACCEL_X_SENS" value="2.44645099697" integer="16"/>
<define name="ACCEL_Y_SENS" value="2.44618333167" integer="16"/>
<define name="ACCEL_Z_SENS" value="2.43722535075" integer="16"/>
<!-- MPU MAG -->
<!--define name="MAG_X_NEUTRAL" value="-326"/>
<define name="MAG_Y_NEUTRAL" value="-82"/>
<define name="MAG_Z_NEUTRAL" value="-448"/>
<define name="MAG_X_SENS" value="8.93784052264" integer="16"/>
<define name="MAG_Y_SENS" value="8.76983337164" integer="16"/>
<define name="MAG_Z_SENS" value="8.15871475442" integer="16"/-->
<!-- HMC MAG -->
<define name="MAG_X_SIGN" value="-1"/>
<define name="MAG_Y_SIGN" value="1"/>
<define name="MAG_Z_SIGN" value="1"/>
<define name="MAG_X_NEUTRAL" value="-86"/>
<define name="MAG_Y_NEUTRAL" value="41"/>
<define name="MAG_Z_NEUTRAL" value="-32"/>
<define name="MAG_X_SENS" value="3.73940141026" integer="16"/>
<define name="MAG_Y_SENS" value="3.81423665322" integer="16"/>
<define name="MAG_Z_SENS" value="4.15369264623" integer="16"/>
<!--define name= "MAG_X_CURRENT_COEF" value="0.0350248861409"/>
<define name= "MAG_Y_CURRENT_COEF" value="-0.0118884242797"/>
<define name= "MAG_Z_CURRENT_COEF" value="0.0176235525201"/-->
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- values used if no GPS fix, on 3D fix is update by geo_mag module if loaded -->
<!-- Toulouse -->
<define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
<!-- setpoints -->
<define name="SP_MAX_P" value="300" unit="deg/s"/>
<define name="SP_MAX_Q" value="300" unit="deg/s"/>
<define name="SP_MAX_R" value="240" unit="deg/s"/>
<define name="DEADBAND_P" value="20"/>
<define name="DEADBAND_Q" value="20"/>
<define name="DEADBAND_R" value="200"/>
<!-- feedback -->
<define name="GAIN_P" value="1000"/>
<define name="GAIN_Q" value="1000"/>
<define name="GAIN_R" value="800"/>
<define name="IGAIN_P" value="75"/>
<define name="IGAIN_Q" value="75"/>
<define name="IGAIN_R" value="50"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_R" value="200." unit="deg/s"/>
<define name="DEADBAND_A" value="0"/>
<define name="DEADBAND_E" value="0"/>
<define name="DEADBAND_R" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="400" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="400" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="250" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="250." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="500"/>
<define name="PHI_DGAIN" value="260"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="500"/>
<define name="THETA_DGAIN" value="260"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="500"/>
<define name="PSI_DGAIN" value="300"/>
<define name="PSI_IGAIN" value="10"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="300"/>
<define name="THETA_DDGAIN" value="300"/>
<define name="PSI_DDGAIN" value="300"/>
</section>
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<!-- control effectiveness -->
<define name="G1_P" value="0.05"/>
<define name="G1_Q" value="0.025"/>
<define name="G1_R" value="0.0022"/>
<define name="G2_R" value="0.20"/>
<!--unit: Hz-->
<define name="FILT_CUTOFF_P" value="20.0"/>
<define name="FILT_CUTOFF_Q" value="20.0"/>
<!-- reference acceleration for attitude control -->
<define name="REF_ERR_P" value="170.0"/>
<define name="REF_ERR_Q" value="600.0"/>
<define name="REF_ERR_R" value="600.0"/>
<define name="REF_RATE_P" value="14.3"/>
<define name="REF_RATE_Q" value="28.0"/>
<define name="REF_RATE_R" value="28.0"/>
<!-- first order actuator dynamics -->
<define name="ACT_FREQ_P" value="31.7"/>
<define name="ACT_FREQ_Q" value="31.7"/>
<define name="ACT_FREQ_R" value="31.7"/>
<!-- Adaptive Learning Rate -->
<define name="USE_ADAPTIVE" value="FALSE"/>
<define name="ADAPTIVE_MU" value="0.0001"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="150"/>
<define name="HOVER_KD" value="80"/>
<define name="HOVER_KI" value="20"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.5"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="20" unit="deg"/>
<define name="USE_SPEED_REF" value="TRUE"/>
<define name="PGAIN" value="50"/>
<define name="DGAIN" value="100"/>
<define name="AGAIN" value="70"/>
<define name="IGAIN" value="20"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="nw_motor, ne_motor, se_motor, sw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="HOOPERFLY/hooperfly_teensyfly_quad" type="string"/>
<!-- mode switch on joystick channel 5 (axis numbering starting at zero) -->
<define name="JS_AXIS_MODE" value="4"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/> <!-- for compilation -->
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/> <!-- for compilation -->
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="9.8" unit="V"/>
<define name="LOW_BAT_LEVEL" value="10.5" unit="V"/>
<define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
<define name="MILLIAMP_AT_FULL_THROTTLE" value="20000" unit="mA"/>
<define name="MILLIAMP_AT_IDLE_THROTTLE" value="1000" unit="mA"/>
<define name="CURRENT_ESTIMATION_NONLINEARITY" value="1.0"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="5"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-1"/>
<define name="AC_ICON" value="quadrotor_x"/>
</section>
</airframe>
@@ -1,10 +1,13 @@
<!--Foam Cyclone Airframe
Chimera AP
Xbee API
Ublox M8N
SBUS Futaba -->
<airframe name="foam cylone">
<airframe name="Cylone">
<description>
Foam Cyclone Airframe
Chimera AP
Xbee API
Ublox M8N
SBUS Futaba
</description>
<firmware name="rotorcraft">
<target name="ap" board="chimera_1.0">
@@ -15,16 +18,7 @@
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
</module>
<module name="eff_scheduling_cyfoam">
<define name="SQUARED_ROLL_EFF" value="0.0018"/>
<define name="PITCH_EFF_AT_60" value="4.0"/>
<define name="YAW_EFF_AT_60" value="8.0"/>
<!--function of the form: A + B*airspeed^2-->
<define name="CE_PITCH_A" value="2.4169"/>
<define name="CE_PITCH_B" value="0.0307"/>
<define name="CE_YAW_A" value="5.631"/>
<define name="CE_YAW_B" value="0.0515"/>
</module>
<module name="eff_scheduling_cyfoam"/>
<!--Switch advanced INDI scheduling functions on or off-->
<define name="INDI_FUNCTIONS_RC_CHANNEL" value="6"/>
@@ -34,10 +28,6 @@
<module name="fdm" type="jsbsim"/>
<module name="udp"/>
<module name="radio_control" type="datalink"/>
<module name="logger_file">
<define name="LOGGER_FILE_PATH" value="/home/ewoud/Documents"/>
</module>
<!--Switch advanced INDI scheduling functions on or off-->
<!--Take the mode channel for simulation-->
<define name="INDI_FUNCTIONS_RC_CHANNEL" value="4"/>
@@ -88,24 +78,7 @@
<define name="WLS_N_U" value="4"/>
<define name="WLS_N_V" value="4"/>
</module>
<module name="guidance" type="indi">
<define name="GUIDANCE_INDI_RC_DEBUG" value="FALSE"/>
<define name="GUIDANCE_INDI_POS_GAIN" value="0.2"/>
<define name="GUIDANCE_INDI_SPEED_GAIN" value="1.0"/>
<define name="GUIDANCE_INDI_POS_GAINZ" value="0.5"/>
<define name="GUIDANCE_INDI_SPEED_GAINZ" value="1.8"/>
<define name="GUIDANCE_INDI_LIFTD_ASQ" value="0.20"/>
<define name="GUIDANCE_INDI_PITCH_EFF_SCALING" value="1.0"/>
<define name="GUIDANCE_H_REF_MAX_SPEED" value="18.0"/> <!--not used-->
<define name="GUIDANCE_INDI_MIN_THROTTLE" value="4000"/>
<define name="GUIDANCE_INDI_MIN_THROTTLE_FWD" value="1500"/>
<define name="GUIDANCE_INDI_MAX_AIRSPEED" value="16.0"/>
<!--Flap effectiveness on lift-->
<define name="FE_LIFT_A_PITCH" value="0.00018"/>
<define name="FE_LIFT_B_PITCH" value="0.00072"/>
<define name="FE_LIFT_A_AS" value="0.0008"/>
<define name="FE_LIFT_B_AS" value="0.00009"/>
</module>
<module name="guidance" type="indi"/>
<!--<module name="ahrs" type="int_cmpl_quat">-->
<!--<configure name="USE_MAGNETOMETER" value="TRUE"/>-->
@@ -114,21 +87,16 @@
<!--[><define name="AHRS_GRAVITY_UPDATE_COORDINATED_TURN" value="TRUE"/><]-->
<!--[><define name="AHRS_GPS_SPEED_IN_NEGATIVE_Z_DIRECTION" value="TRUE"/><]-->
<!--</module>-->
<!--<module name="ins"/>-->
<module name="ins" type="float_invariant">
<define name="INS_PROPAGATE_FREQUENCY" value="500"/>
<define name="INS_FINV_MAG_ID" value="MAG_HMC58XX_SENDER_ID"/>
</module>
<!--<module name="gps" type="ubx_ucenter"/>-->
<module name="tlsf"/>
<module name="pprzlog">
<module name="logger" type="sd_chibios">
<define name="SDLOG_START_DELAY" value="10"/>
</module>
<module name="logger" type="sd_chibios"/>
<!--<module name="flight_recorder"/>-->
<!--<module name="logger_spi_link"/>-->
<!--Use an airspeed sensor and get the measured airspeed in the messages-->
<module name="airspeed" type="ms45xx_i2c">
@@ -136,15 +104,13 @@
<define name="MS45XX_PRESSURE_SCALE" value="1.546"/> <!-- 2.4 / 1.6327 * 1.0521 -->
</module>
<!--<module name="pwm_meas"/>-->
<!--<module name="AOA_pwm">-->
<!--<define name="AOA_PWM_CHANNEL" value="PWM_INPUT1"/>-->
<!--</module>-->
<module name="pwm_meas">
<!--
<module name="AOA_pwm">
<define name="AOA_PWM_CHANNEL" value="PWM_INPUT1"/>
<define name="USE_PWM_INPUT1" value="PWM_PULSE_TYPE_ACTIVE_LOW"/>
<define name="USE_PWM_INPUT2" value="PWM_PULSE_TYPE_ACTIVE_LOW"/>
</module>
-->
</firmware>
@@ -153,7 +119,6 @@
<servo name="ELEVON_RIGHT" no="1" min="1000" neutral="1500" max="2000"/>
<servo name="RM" no="2" min="1000" neutral="1100" max="2000"/>
<servo name="LM" no="3" min="1000" neutral="1100" max="2000"/>
<!--<servo name="SERVO_TEST" no="4" min="1000" neutral="1500" max="2000"/>-->
</servos>
<commands>
@@ -173,8 +138,6 @@
<set servo="ELEVON_RIGHT" value="autopilot.motors_on ? actuators_pprz[1] : 0"/>
<set servo="RM" value="autopilot.motors_on ? actuators_pprz[2] : -MAX_PPRZ"/>
<set servo="LM" value="autopilot.motors_on ? actuators_pprz[3] : -MAX_PPRZ"/>
<!--<set servo="RM" value="autopilot_motors_on ? -MAX_PPRZ : -MAX_PPRZ"/>-->
<!--<set servo="LM" value="autopilot_motors_on ? -MAX_PPRZ : -MAX_PPRZ"/>-->
</command_laws>
<section name="IMU" prefix="IMU_">
@@ -257,18 +220,39 @@
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE"/>
</section>
<section name="GUIDANCE_INDI">
<define name="GUIDANCE_INDI_RC_DEBUG" value="FALSE"/>
<define name="GUIDANCE_INDI_POS_GAIN" value="0.2"/>
<define name="GUIDANCE_INDI_SPEED_GAIN" value="1.0"/>
<define name="GUIDANCE_INDI_POS_GAINZ" value="0.5"/>
<define name="GUIDANCE_INDI_SPEED_GAINZ" value="1.8"/>
<define name="GUIDANCE_INDI_LIFTD_ASQ" value="0.20"/>
<define name="GUIDANCE_INDI_PITCH_EFF_SCALING" value="1.0"/>
<define name="GUIDANCE_H_REF_MAX_SPEED" value="18.0"/> <!--not used-->
<define name="GUIDANCE_INDI_MIN_THROTTLE" value="4000"/>
<define name="GUIDANCE_INDI_MIN_THROTTLE_FWD" value="1500"/>
<define name="GUIDANCE_INDI_MAX_AIRSPEED" value="16.0"/>
<!--Flap effectiveness on lift-->
<define name="FE_LIFT_A_PITCH" value="0.00018"/>
<define name="FE_LIFT_B_PITCH" value="0.00072"/>
<define name="FE_LIFT_A_AS" value="0.0008"/>
<define name="FE_LIFT_B_AS" value="0.00009"/>
<!-- Efficiency scheduling -->
<define name="SQUARED_ROLL_EFF" value="0.0018"/>
<define name="PITCH_EFF_AT_60" value="4.0"/>
<define name="YAW_EFF_AT_60" value="8.0"/>
<!--function of the form: A + B*airspeed^2-->
<define name="CE_PITCH_A" value="2.4169"/>
<define name="CE_PITCH_B" value="0.0307"/>
<define name="CE_YAW_A" value="5.631"/>
<define name="CE_YAW_B" value="0.0515"/>
</section>
<section name="NAV">
<define name="NAV_CLIMB_VSPEED" value="1.5"/>
<define name="NAV_DESCEND_VSPEED" value="-0.8"/>
</section>
<!--<section name="AHRS" prefix="AHRS_">-->
<!--<define name="H_X" value="0.5138"/>-->
<!--<define name="H_Y" value="0.00019"/>-->
<!--<define name="H_Z" value="0.8578"/>-->
<!--<define name="GRAVITY_HEURISTIC_FACTOR" value="0"/>-->
<!--</section>-->
<section name="INS" prefix="INS_">
<define name="H_X" value="0.5138"/>
<define name="H_Y" value="0.00019"/>
+349
View File
@@ -0,0 +1,349 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="FALCON_V1">
<description>
Falcon Airframe H-Configuration (no flaps)
Tawaki v1.0 Chibios
Xbee API
Ublox F9P
SBUS Futaba
</description>
<firmware name="rotorcraft">
<configure name="PERIODIC_FREQUENCY" value="500"/>
<target name="ap" board="tawaki_1.1">
<module name="radio_control" type="sbus">
<!-- Put the mode on channel AUX1-->
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
</module>
<!--Switch advanced INDI scheduling functions on or off-->
<define name="INDI_FUNCTIONS_RC_CHANNEL" value="6"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="datalink"/>
<!--Switch advanced INDI scheduling functions on or off-->
<!--Take the mode channel for simulation-->
<define name="INDI_FUNCTIONS_RC_CHANNEL" value="4"/>
</target>
<module name="eff_scheduling_generic"/>
<module name="current_sensor">
<configure name="ADC_CURRENT_SENSOR" value="ADC_1"/>
</module>
<module name="sys_mon"/>
<module name="telemetry" type="xbee_api"/>
<module name="flight_recorder"/>
<!--module name="logger" type="control_effectiveness">
<define name="LOGGER_CONTROL_EFFECTIVENESS_COMMANDS" value="FALSE"/>
<define name="LOGGER_CONTROL_EFFECTIVENESS_ACTUATORS" value="TRUE"/>
<define name="LOGGER_CONTROL_EFFECTIVENESS_POS" value="TRUE"/>
<define name="LOGGER_CONTROL_EFFECTIVENESS_SPEED" value="TRUE"/>
<define name="LOGGER_CONTROL_EFFECTIVENESS_AIRSPEED" value="TRUE"/>
</module-->
<module name="actuators" type="dshot">
<!-- <define name="DSHOT_SPEED" value="300"/> -->
<!--define name="DSHOT_TIM4_TELEMETRY_NUM" value="DSHOT_TLM_RX"/>
<define name="STM32_SERIAL_USE_UART4" value="TRUE"/-->
</module>
<module name="airspeed" type="sdp3x">
<define name="SDP3X_i2C_DEV" value="i2c2"/>
<define name="SDP3X_PRESSURE_SCALE" value="8.0"/>
<define name="SDP3X_PRESSURE_OFFSET" value="0.0"/>
<define name="USE_AIRSPEED_SDP3X" value="TRUE"/>
</module>
<module name="board" type="tawaki">
<configure name="BOARD_TAWAKI_ROTATED" value="TRUE"/>
<define name="IMU_MPU_CHAN_X" value="2"/>
<define name="IMU_MPU_CHAN_Z" value="0"/>
<define name="IMU_MPU_Z_SIGN" value="-1"/>
<!--Set the frequency to 2000 hz with 256 Hz internal low pass-->
<define name="IMU_MPU_LOWPASS_FILTER" value="MPU60X0_DLPF_256HZ"/>
<define name="IMU_MPU_SMPLRT_DIV" value="3"/>
<define name="IMU_MPU_ACCEL_LOWPASS_FILTER" value="MPU60X0_DLPF_ACC_218HZ"/>
<define name="LIS3MDL_CHAN_X" value="2" />
<define name="LIS3MDL_CHAN_Z" value="0" />
<define name="LIS3MDL_CHAN_Y_SIGN" value="-" />
</module>
<module name="air_data"/>
<module name="gps" type="ublox">
<configure name="GPS_BAUD" value="B115200"/>
<configure name="UBX_GPS_PORT" value="UART7"/>
<define name="GPS_FIX_TIMEOUT" value="0.5"/>
</module>
<module name="ins" type="ekf2"/>
<module name="stabilization" type="indi"/>
<module name="guidance" type="indi_hybrid_tailsitter"/>
<module name="nav" type="hybrid"/>
<module name="tag_tracking">
<configure name="JEVOIS_UART" value="UART3" description="UART on which Jevois camera is connected"/>
</module>
</firmware>
<servos driver="DShot">
<servo name="UR" no="3" min="0" neutral="100" max="2000"/>
<servo name="BR" no="4" min="0" neutral="100" max="2000"/>
<servo name="BL" no="1" min="0" neutral="100" max="2000"/>
<servo name="UL" no="2" min="0" neutral="100" max="2000"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<set servo="UR" value="autopilot.motors_on ? actuators_pprz[0] : -MAX_PPRZ"/>
<set servo="BR" value="autopilot.motors_on ? actuators_pprz[1] : -MAX_PPRZ"/>
<set servo="BL" value="autopilot.motors_on ? actuators_pprz[2] : -MAX_PPRZ"/>
<set servo="UL" value="autopilot.motors_on ? actuators_pprz[3] : -MAX_PPRZ"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<!-- IMU calibration, make sure to calibrate the IMU properly before flight, see the wiki for more info-->
<!-- <define name="MAG_X_CURRENT_COEF" value="0."/>
<define name="MAG_Y_CURRENT_COEF" value="0."/>
<define name="MAG_Z_CURRENT_COEF" value="0."/> -->
<!--define name= "MAG_X_CURRENT_COEF" value="-0.511272562535"/>
<define name= "MAG_Y_CURRENT_COEF" value="0.244268225323"/>
<define name= "MAG_Z_CURRENT_COEF" value="1.59518542807"/-->
<define name="MAG_X_NEUTRAL" value="-1057"/>
<define name="MAG_Y_NEUTRAL" value="-5436"/>
<define name="MAG_Z_NEUTRAL" value="-7865"/>
<define name="MAG_X_SENS" value="0.6407900424399927" integer="16"/>
<define name="MAG_Y_SENS" value="0.6504650411481829" integer="16"/>
<define name="MAG_Z_SENS" value="0.6138129561725305" integer="16"/>
<define name="ACCEL_X_SIGN" value="1"/>
<define name="ACCEL_Y_SIGN" value="1"/>
<define name="ACCEL_Z_SIGN" value="1"/>
<define name="GYRO_P_SIGN" value="1"/>
<define name="GYRO_Q_SIGN" value="1"/>
<define name="GYRO_R_SIGN" value="1"/>
<define name="ACCEL_X_NEUTRAL" value="70"/>
<define name="ACCEL_Y_NEUTRAL" value="5"/>
<define name="ACCEL_Z_NEUTRAL" value="48"/>
<define name="ACCEL_X_SENS" value="2.459511813085781" integer="16"/>
<define name="ACCEL_Y_SENS" value="2.404502491913208" integer="16"/>
<define name="ACCEL_Z_SENS" value="2.4486570636573215" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_FORWARD"/>
<!-- <define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD"/> -->
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<define name="MilliAmpereOfAdc(_adc)" value="_adc*100."/>
<define name="CATASTROPHIC_BAT_LEVEL" value="12.4" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="13.8" unit="V"/>
<define name="LOW_BAT_LEVEL" value="14.5" unit="V"/>
<define name="MAX_BAT_LEVEL" value="17.0" unit="V"/>
<define name="BAT_NB_CELLS" value="4"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="60." unit="deg"/>
<define name="SP_MAX_THETA" value="60." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<define name="SP_PSI_DELTA_LIMIT" value="90" unit="deg"/>
</section>
<section name="EFF_SCHEDULING" prefix="FWD_">
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
<define name="G1_ROLL" value="{ -9.0, -9.0, 9.0, 9.0}"/>
<define name="G1_PITCH" value="{ -9.0, 9.0, 9.0, -9.0}"/>
<define name="G1_YAW" value="{ -7.0, 7.0, -7.0, 7.0}"/>
<define name="G1_THRUST" value="{ -0.6, -0.6, -0.6, -0.6}"/>
<!--<define name="G1_ROLL" value="{ -10.0, -10.0, 10.0, 10.0}"/>
<define name="G1_PITCH" value="{ -10.0, 10.0, 10.0, -10.0}"/>
<define name="G1_YAW" value="{ -1.5, 1.5, -1.5, 1.5}"/>
<define name="G1_THRUST" value="{ -0.6, -0.6, -0.6, -0.6}"/>-->
</section>
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<!-- UR BR BL UL-->
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
<define name="G1_ROLL" value="{ -20.0, -20.0, 20.0, 20.0}"/>
<define name="G1_PITCH" value="{ -19.5, 19.5, 19.5, -19.5}"/>
<define name="G1_YAW" value="{ -7.0, 7.0, -7.0, 7.0}"/>
<define name="G1_THRUST" value="{ -0.85, -0.85, -0.85, -0.85}"/>
<!-- Big Wings -->
<!-- <define name="G1_ROLL" value="{ -4.0, -4.0, 4.0, 4.0}"/>
<define name="G1_PITCH" value="{ -16.5, 16.5, 16.5, -16.5}"/>
<define name="G1_YAW" value="{ -1.0, 1.0, -1.0, 1.0}"/>
<define name="G1_THRUST" value="{ -0.6, -0.6, -0.6, -0.6}"/> -->
<!--<define name="G1_ROLL" value="{ -15.0, -15.0, 15.0, 15.0}"/>
<define name="G1_PITCH" value="{ -15.0, 15.0, 15.0, -15.0}"/>
<define name="G1_YAW" value="{ -2.5, 2.5, -2.5, 2.5}"/>
<define name="G1_THRUST" value="{ -1.0, -1.0, -1.0, -1.0}"/>-->
<!--Counter torque effect of spinning up a rotor-->
<define name="G2" value="{0, 0, 0, 0}"/>
<!-- reference acceleration for attitude control -->
<define name="REF_ERR_P" value="100"/>
<define name="REF_ERR_Q" value="80"/>
<define name="REF_ERR_R" value="70"/>
<define name="REF_RATE_P" value="20."/>
<define name="REF_RATE_Q" value="18.0"/>
<define name="REF_RATE_R" value="11.0"/>
<!-- old falcon numbers : define name="REF_ERR_P" value="100"/>
<define name="REF_ERR_Q" value="63"/>
<define name="REF_ERR_R" value="50"/>
<define name="REF_RATE_P" value="20."/>
<define name="REF_RATE_Q" value="10.0"/>
<define name="REF_RATE_R" value="5.0"/-->
<!--<define name="REF_ERR_P" value="90.0"/>
<define name="REF_ERR_Q" value="130.0"/>
<define name="REF_ERR_R" value="130.0"/>
<define name="REF_RATE_P" value="8.0"/>
<define name="REF_RATE_Q" value="10.0"/>
<define name="REF_RATE_R" value="10.0"/> -->
<!--Maxium yaw rate, to avoid instability-->
<define name="MAX_R" value="60.0" unit="deg/s"/>
<define name="ESTIMATION_FILT_CUTOFF" value="4.0"/>
<define name="FILT_CUTOFF" value="5.0"/>
<!-- first order actuator dynamics -->
<define name="ACT_FREQ" value="{12.66, 12.66, 12.66, 12.66}"/>
<define name="ACT_RATE_LIMIT" value="{9600, 9600, 9600, 9600}"/>
<define name="ACT_IS_SERVO" value="{0, 0, 0, 0}"/>
<!-- Adaptive Learning Rate -->
<define name="USE_ADAPTIVE" value="FALSE"/>
<define name="ADAPTIVE_MU" value="0.0001"/>
</section>
<section name="GUIDANCE_INDI">
<define name="GUIDANCE_INDI_RC_DEBUG" value="FALSE"/>
<define name="GUIDANCE_INDI_POS_GAIN" value="0.2"/>
<define name="GUIDANCE_INDI_SPEED_GAIN" value="1.0"/>
<define name="GUIDANCE_INDI_POS_GAINZ" value="1.6"/>
<define name="GUIDANCE_INDI_SPEED_GAINZ" value="2.0"/>
<define name="GUIDANCE_INDI_PITCH_LIFT_EFF" value="0.12"/>
<define name="GUIDANCE_INDI_PITCH_EFF_SCALING" value="1.0"/>
<define name="GUIDANCE_H_REF_MAX_SPEED" value="16.0"/> <!--not used-->
<define name="GUIDANCE_INDI_MIN_THROTTLE" value="2000"/>
<define name="GUIDANCE_INDI_MIN_THROTTLE_FWD" value="1000"/>
<define name="GUIDANCE_INDI_MIN_PITCH" value="-120."/>
<define name="GUIDANCE_INDI_MAX_PITCH" value="25."/>
<define name="GUIDANCE_INDI_MAX_AIRSPEED" value="16.0"/>
<define name="GUIDANCE_HEADING_IS_FREE" value="FALSE"/> <!--heading can not be set by navigation -->
<define name="GUIDANCE_INDI_HEADING_BANK_GAIN" value="9.0"/>
<define name="GUIDANCE_INDI_PITCH_OFFSET_GAIN" value="0.0"/>
<define name="GUIDANCE_INDI_FILTER_CUTOFF" value="1.5"/>
<define name="GUIDANCE_INDI_LINE_GAIN" value="0.7"/>
<!--Flap effectiveness on lift-->
<define name="FE_LIFT_A_PITCH" value="0.00018"/>
<define name="FE_LIFT_B_PITCH" value="0.00072"/>
<define name="FE_LIFT_A_AS" value="0.0008"/>
<define name="FE_LIFT_B_AS" value="0.00009"/>
</section>
<!-- Gains for vertical navigation -->
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="174"/>
<define name="HOVER_KD" value="92"/>
<define name="HOVER_KI" value="72"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.4"/>
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE"/>
</section>
<section name="NAV">
<define name="NAV_CLIMB_VSPEED" value="1.5"/>
<define name="NAV_DESCEND_VSPEED" value="-0.8"/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="GRAVITY_HEURISTIC_FACTOR" value="0"/>
</section>
<include href="conf/mag/germany_aachen.xml"/>
<!-- Gains for horizontal navigation-->
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="50" unit="deg"/>
<define name="PGAIN" value="100"/> <!-- 100 for CYFOAM-->
<define name="DGAIN" value="100"/> <!-- 100 for CYFOAM-->
<define name="IGAIN" value="10"/> <!-- 0 for CYFOAM-->
</section>
<section name="MISC">
<!--The Quadshot uses (when TRUE) a slightly different axis system for the setpoint, to make both hovering and flying forward intuitive-->
<define name="USE_EARTH_BOUND_RC_SETPOINT" value="TRUE"/>
<!-- This is the pitch angle that the Quadshot will have in forward flight, where 0 degrees is hover-->
<define name="TRANSITION_MAX_OFFSET" value="-80.0" unit="deg"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
<define name="COORDINATED_TURN_AIRSPEED" value="18.0"/>
<define name="BARO_PERIODIC_FREQUENCY" value="50"/>
<define name="USE_AIRSPEED" value="TRUE"/>
<define name="FWD_SIDESLIP_GAIN" value="0.20"/> <!-- most flight done with 0.3 -->
<define name="EFF_SCHED_USE_FUNCTION" value="TRUE"/>
<define name="ARRIVED_AT_WAYPOINT" value="4.0"/> <!-- For outdoor -->
<define name="DEFAULT_CIRCLE_RADIUS" value="60"/> <!-- For outdoor -->
<define name="CARROT" value="5.0"/>
</section>
<section name="TAG_TRACKING" prefix="TAG_TRACKING_">
<define name="BODY_TO_CAM_PSI" value="0."/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="UR,BR,BL,UL" type="string[]"/>
<define name="JSBSIM_MODEL" value="falcon" type="string"/>
<define name="NO_MOTOR_MIXING" value="TRUE"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="3"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-1"/>
</section>
</airframe>
+344
View File
@@ -0,0 +1,344 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="FALCON_V2">
<description>
Falcon Airframe H-Configuration with flaps
Tawaki v1.0 Chibios
Xbee API
Ublox F9P
SBUS Futaba
</description>
<firmware name="rotorcraft">
<configure name="PERIODIC_FREQUENCY" value="500"/>
<configure name="INDI_NUM_ACT" value="6"/>
<target name="ap" board="tawaki_1.1">
<module name="radio_control" type="sbus">
<!-- Put the mode on channel AUX1-->
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
</module>
<!--Switch advanced INDI scheduling functions on or off-->
<define name="INDI_FUNCTIONS_RC_CHANNEL" value="6"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="datalink"/>
<!--Take the mode channel for simulation-->
<define name="INDI_FUNCTIONS_RC_CHANNEL" value="4"/>
</target>
<module name="eff_scheduling_falcon">
<define name="EFF_PITCH_A" value="0.35"/>
<define name="EFF_YAW_A" value="0.045"/>
</module>
<module name="current_sensor">
<configure name="ADC_CURRENT_SENSOR" value="ADC_1"/>
</module>
<module name="telemetry" type="xbee_api"/>
<module name="sys_mon"/>
<module name="flight_recorder"/>
<!--module name="logger" type="control_effectiveness">
<define name="LOGGER_CONTROL_EFFECTIVENESS_COMMANDS" value="FALSE"/>
<define name="LOGGER_CONTROL_EFFECTIVENESS_ACTUATORS" value="TRUE"/>
<define name="LOGGER_CONTROL_EFFECTIVENESS_POS" value="TRUE"/>
<define name="LOGGER_CONTROL_EFFECTIVENESS_SPEED" value="TRUE"/>
<define name="LOGGER_CONTROL_EFFECTIVENESS_AIRSPEED" value="TRUE"/>
</module-->
<module name="actuators" type="pwm"/>
<module name="actuators" type="dshot">
<!-- <define name="DSHOT_SPEED" value="300"/> -->
<!--define name="DSHOT_TIM4_TELEMETRY_NUM" value="DSHOT_TLM_RX"/-->
<!--define name="STM32_SERIAL_USE_UART4" value="TRUE"/-->
<!--define name="USE_UART4" value="TRUE"/-->
</module>
<!--Use an airspeed sensor and get the measured airspeed in the messages-->
<module name="airspeed" type="sdp3x">
<define name="SDP3X_i2C_DEV" value="i2c2"/>
<define name="SDP3X_PRESSURE_SCALE" value="7.0"/>
<define name="SDP3X_PRESSURE_OFFSET" value="0.0"/>
<define name="USE_AIRSPEED_SDP3X" value="TRUE"/>
</module>
<!--module name="board" type="tawaki">
<configure name="BOARD_TAWAKI_ROTATED" value="TRUE"/>
</module-->
<module name="baro" type="bmp3">
<configure name="BMP3_I2C_DEV" value="i2c4"/>
<define name="BMP3_SLAVE_ADDR" value="BMP3_I2C_ADDR_ALT"/>
</module>
<module name="imu" type="mpu6000">
<!-- <define name="APOGEE_USE_MPU9150" value="TRUE"/> -->
<configure name="IMU_MPU_SPI_DEV" value="spi4"/>
<configure name="IMU_MPU_SPI_SLAVE_IDX" value="SPI_SLAVE5"/>
<define name="IMU_MPU_CHAN_X" value="2"/>
<define name="IMU_MPU_CHAN_Y" value="1"/>
<define name="IMU_MPU_CHAN_Z" value="0"/>
<define name="IMU_MPU_GYRO_RANGE" value="MPU60X0_GYRO_RANGE_2000"/>
<define name="IMU_MPU_ACCEL_RANGE" value="MPU60X0_ACCEL_RANGE_16G"/>
<!--Set the frequency to 2000 hz with 256 Hz internal low pass-->
<define name="IMU_MPU_LOWPASS_FILTER" value="MPU60X0_DLPF_256HZ"/>
<define name="IMU_MPU_SMPLRT_DIV" value="3"/>
<define name="IMU_MPU_ACCEL_LOWPASS_FILTER" value="MPU60X0_DLPF_ACC_218HZ"/>
</module>
<module name="mag" type="lis3mdl">
<configure name="MAG_LIS3MDL_I2C_DEV" value="i2c4"/>
<define name="MODULE_LIS3MDL_UPDATE_AHRS"/>
<define name="LIS3MDL_CHAN_X" value="2" />
<define name="LIS3MDL_CHAN_Z" value="0" />
<define name="LIS3MDL_CHAN_X_SIGN" value="+" />
<define name="LIS3MDL_CHAN_Y_SIGN" value="-" />
<define name="LIS3MDL_CHAN_Z_SIGN" value="+" />
</module>
<module name="air_data">
<define name="USE_AIRSPEED_AIR_DATA" value="TRUE"/>
</module>
<module name="stabilization" type="indi"/>
<module name="guidance" type="indi_hybrid_tailsitter"/>
<module name="nav" type="hybrid"/>
<module name="ins" type="ekf2"/>
<module name="gps" type="ublox">
<configure name="GPS_BAUD" value="B115200"/>
<configure name="GPS_PORT" value="UART7"/>
<define name="GPS_FIX_TIMEOUT" value="0.5"/>
</module>
</firmware>
<servos driver="DShot">
<servo name="UR" no="3" min="0" neutral="100" max="2000"/>
<servo name="BR" no="4" min="0" neutral="100" max="2000"/>
<servo name="BL" no="1" min="0" neutral="100" max="2000"/>
<servo name="UL" no="2" min="0" neutral="100" max="2000"/>
</servos>
<servos driver="Pwm">
<servo name="ELEVON_RIGHT" no="1" min="1270" neutral="1570" max="1870"/> <!--positive up-->
<servo name="ELEVON_LEFT" no="2" min="1170" neutral="1470" max="1770"/> <!--positive down-->
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<set servo="UR" value="autopilot.motors_on ? actuators_pprz[0] : -MAX_PPRZ"/>
<set servo="BR" value="autopilot.motors_on ? actuators_pprz[1] : -MAX_PPRZ"/>
<set servo="BL" value="autopilot.motors_on ? actuators_pprz[2] : -MAX_PPRZ"/>
<set servo="UL" value="autopilot.motors_on ? actuators_pprz[3] : -MAX_PPRZ"/>
<set servo="ELEVON_RIGHT" value="autopilot.motors_on ? actuators_pprz[4] : 0"/>
<set servo="ELEVON_LEFT" value="autopilot.motors_on ? actuators_pprz[5] : 0"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<!-- IMU calibration, make sure to calibrate the IMU properly before flight, see the wiki for more info-->
<define name= "MAG_X_CURRENT_COEF" value="319.383625919"/>
<define name= "MAG_Y_CURRENT_COEF" value="-32.4484676944"/>
<define name= "MAG_Z_CURRENT_COEF" value="-1421.95651899"/>
<define name="MAG_X_NEUTRAL" value="-33"/>
<define name="MAG_Y_NEUTRAL" value="1485"/>
<define name="MAG_Z_NEUTRAL" value="1184"/>
<define name="MAG_X_SENS" value="0.6709952296917457" integer="16"/>
<define name="MAG_Y_SENS" value="0.6497329786931962" integer="16"/>
<define name="MAG_Z_SENS" value="0.6842444448328998" integer="16"/>
<define name="ACCEL_X_SIGN" value="1"/>
<define name="ACCEL_Y_SIGN" value="1"/>
<define name="ACCEL_Z_SIGN" value="-1"/>
<define name="GYRO_P_SIGN" value="1"/>
<define name="GYRO_Q_SIGN" value="1"/>
<define name="GYRO_R_SIGN" value="-1"/>
<define name="ACCEL_X_NEUTRAL" value="-20"/>
<define name="ACCEL_Y_NEUTRAL" value="-106"/>
<define name="ACCEL_Z_NEUTRAL" value="-28"/>
<define name="ACCEL_X_SENS" value="4.907307048714179" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.561138191178077" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.895601825888152" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_FORWARD"/>
<!-- <define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD"/> -->
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<define name="MilliAmpereOfAdc(_adc)" value="_adc*1."/>
<define name="CATASTROPHIC_BAT_LEVEL" value="12.4" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="13.8" unit="V"/>
<define name="LOW_BAT_LEVEL" value="14.5" unit="V"/>
<define name="MAX_BAT_LEVEL" value="17.0" unit="V"/>
<define name="BAT_NB_CELLS" value="4"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<define name="DEADBAND_A" value="250"/>
<define name="SP_PSI_DELTA_LIMIT" value="90" unit="deg"/>
</section>
<section name="EFF_SCHEDULING" prefix="FWD_">
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
<define name="G1_ROLL" value="{ -9.0, -9.0, 9.0, 9.0, 0.0, 0.0}"/>
<define name="G1_PITCH" value="{ -20.0, 20.0, 20.0, -20.0, 15.0, -15.0}"/> <!-- 12 , -12 -->
<define name="G1_YAW" value="{ -3.0, 3.0, -3.0, 3.0, -10.0, -10.0}"/> <!-- -20 -20 -->
<define name="G1_THRUST" value="{ -0.6, -0.6, -0.6, -0.6, 0.0, 0.0}"/>
</section>
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<!-- UR BR BL UL-->
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
<define name="G1_ROLL" value="{ -9.0, -9.0, 9.0, 9.0, 0.0, 0.0}"/>
<define name="G1_PITCH" value="{ -19.5, 19.5, 19.5, -19.5, 0.0, 0.0}"/>
<define name="G1_YAW" value="{ -3.0, 3.0, -3.0, 3.0, 0.0, 0.0}"/>
<define name="G1_THRUST" value="{ -0.85, -0.85, -0.85, -0.85, 0.0, 0.0}"/>
<!--Counter torque effect of spinning up a rotor-->
<define name="G2" value="{0, 0, 0, 0, 0, 0}"/>
<!-- reference acceleration for attitude control -->
<define name="REF_ERR_P" value="100"/>
<define name="REF_ERR_Q" value="80"/>
<define name="REF_ERR_R" value="70"/>
<define name="REF_RATE_P" value="20."/>
<define name="REF_RATE_Q" value="18.0"/>
<define name="REF_RATE_R" value="11.0"/>
<!--Maxium yaw rate, to avoid instability-->
<define name="MAX_R" value="60.0" unit="deg/s"/>
<define name="ESTIMATION_FILT_CUTOFF" value="4.0"/>
<define name="FILT_CUTOFF" value="5.0"/>
<!-- first order actuator dynamics -->
<define name="ACT_FREQ" value="{12.66, 12.66, 12.66, 12.66, 25.6, 25.6}"/>
<define name="ACT_RATE_LIMIT" value="{9600, 9600, 9600, 9600, 170, 170}"/>
<define name="ACT_IS_SERVO" value="{0, 0, 0, 0, 1, 1}"/>
<!-- Adaptive Learning Rate -->
<define name="USE_ADAPTIVE" value="FALSE"/>
<define name="ADAPTIVE_MU" value="0.0001"/>
</section>
<section name="GUIDANCE_INDI">
<define name="GUIDANCE_INDI_RC_DEBUG" value="FALSE"/>
<define name="GUIDANCE_INDI_POS_GAIN" value="0.2"/>
<define name="GUIDANCE_INDI_SPEED_GAIN" value="0.8"/>
<define name="GUIDANCE_INDI_POS_GAINZ" value="0.6"/>
<define name="GUIDANCE_INDI_SPEED_GAINZ" value="1.5"/>
<define name="GUIDANCE_INDI_PITCH_LIFT_EFF" value="0.12"/>
<define name="GUIDANCE_INDI_PITCH_EFF_SCALING" value="0.6"/>
<define name="GUIDANCE_H_REF_MAX_SPEED" value="16.0"/> <!--not used-->
<define name="GUIDANCE_INDI_MIN_THROTTLE" value="2000"/>
<define name="GUIDANCE_INDI_MIN_THROTTLE_FWD" value="1000"/>
<define name="GUIDANCE_INDI_MIN_PITCH" value="-80."/>
<define name="GUIDANCE_INDI_MAX_PITCH" value="25."/>
<define name="GUIDANCE_INDI_MAX_AIRSPEED" value="16.0"/>
<define name="GUIDANCE_HEADING_IS_FREE" value="FALSE"/> <!--heading can not be set by navigation -->
<define name="GUIDANCE_INDI_HEADING_BANK_GAIN" value="18.0"/>
<define name="GUIDANCE_INDI_PITCH_OFFSET_GAIN" value="0.06"/>
<define name="GUIDANCE_INDI_FILTER_CUTOFF" value="1.5"/>
<define name="GUIDANCE_INDI_LINE_GAIN" value="0.7"/>
<!--Flap effectiveness on lift-->
<define name="FE_LIFT_A_PITCH" value="0.00018"/>
<define name="FE_LIFT_B_PITCH" value="0.00072"/>
<define name="FE_LIFT_A_AS" value="0.0008"/>
<define name="FE_LIFT_B_AS" value="0.00009"/>
</section>
<!-- Gains for vertical navigation -->
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="174"/>
<define name="HOVER_KD" value="92"/>
<define name="HOVER_KI" value="72"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.4"/>
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE"/>
</section>
<section name="NAV">
<define name="NAV_CLIMB_VSPEED" value="1.5"/>
<define name="NAV_DESCEND_VSPEED" value="-1.5"/>
<define name="NAV_TAKEOFF_HEIGHT" value="10."/>
<define name="NAV_LANDING_AF_HEIGHT" value="20."/>
<define name="NAV_LANDING_FLARE_HEIGHT" value="10."/>
<define name="NAV_LANDING_DESCEND_SPEED" value="-1.0"/>
<define name="SURVEY_HYBRID_MAX_SWEEP_BACK" value="1"/>
<define name="MISSION_ALT_PROXIMITY" value="4."/>
</section>
<section name="AHRS" prefix="AHRS_">
<define name="GRAVITY_HEURISTIC_FACTOR" value="0"/>
</section>
<include href="conf/mag/toulouse_muret.xml"/>
<!-- Gains for horizontal navigation-->
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="50" unit="deg"/>
<define name="PGAIN" value="100"/>
<define name="DGAIN" value="100"/>
<define name="IGAIN" value="10"/>
</section>
<section name="MISC">
<!--The Quadshot uses (when TRUE) a slightly different axis system for the setpoint, to make both hovering and flying forward intuitive-->
<define name="USE_EARTH_BOUND_RC_SETPOINT" value="TRUE"/>
<!-- This is the pitch angle that the Quadshot will have in forward flight, where 0 degrees is hover-->
<define name="TRANSITION_MAX_OFFSET" value="-80.0" unit="deg"/>
<define name="NO_RC_THRUST_LIMIT" value="TRUE"/>
<define name="COORDINATED_TURN_AIRSPEED" value="18.0"/>
<define name="BARO_PERIODIC_FREQUENCY" value="50"/>
<define name="USE_AIRSPEED" value="TRUE"/>
<define name="FWD_SIDESLIP_GAIN" value="0.20"/> <!-- most flight done with 0.3 -->
<define name="EFF_SCHED_USE_FUNCTION" value="TRUE"/>
<define name="ARRIVED_AT_WAYPOINT" value="4.0"/> <!-- For outdoor -->
<define name="DEFAULT_CIRCLE_RADIUS" value="60"/> <!-- For outdoor -->
<define name="CARROT" value="3.0"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="UR,BR,BL,UL,ele_right,ele_left" type="string[]"/>
<define name="JSBSIM_MODEL" value="falcon" type="string"/>
<define name="NO_MOTOR_MIXING" value="TRUE"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="3"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-1"/>
</section>
</airframe>
@@ -1,34 +0,0 @@
<airframe>
<section name="IMU" prefix="IMU_">
<!-- Accelero -->
<define name="ACCEL_X_NEUTRAL" value="2036"/>
<define name="ACCEL_Y_NEUTRAL" value="2063"/>
<define name="ACCEL_Z_NEUTRAL" value="2050"/>
<define name="ACCEL_X_SENS" value="19.8215198025" integer="16"/>
<define name="ACCEL_Y_SENS" value="19.3612647775" integer="16"/>
<define name="ACCEL_Z_SENS" value="19.6308115492" integer="16"/>
<!-- Magneto calibration -->
<!--define name="MAG_X_NEUTRAL" value="56"/>
<define name="MAG_Y_NEUTRAL" value="17"/>
<define name="MAG_Z_NEUTRAL" value="-64"/>
<define name="MAG_X_SENS" value="17.4978698304" integer="16"/>
<define name="MAG_Y_SENS" value="17.7032280166" integer="16"/>
<define name="MAG_Z_SENS" value="17.8657801029" integer="16"/-->
<define name="MAG_X_NEUTRAL" value="21"/>
<define name="MAG_Y_NEUTRAL" value="-4"/>
<define name="MAG_Z_NEUTRAL" value="-1"/>
<define name="MAG_X_SENS" value="16.510274159" integer="16"/>
<define name="MAG_Y_SENS" value="16.5086412339" integer="16"/>
<define name="MAG_Z_SENS" value="17.4503678708" integer="16"/>
<!-- Magneto current calibration -->
<define name="MAG_X_CURRENT_COEF" value="0.0"/>
<define name="MAG_Y_CURRENT_COEF" value="0.0"/>
<define name="MAG_Z_CURRENT_COEF" value="0.0"/>
</section>
</airframe>
@@ -1,36 +0,0 @@
<airframe>
<section name="IMU" prefix="IMU_">
<!-- Accelero -->
<define name="ACCEL_X_NEUTRAL" value="2046"/>
<define name="ACCEL_Y_NEUTRAL" value="2050"/>
<define name="ACCEL_Z_NEUTRAL" value="2053"/>
<define name="ACCEL_X_SENS" value="19.6123236866" integer="16"/>
<define name="ACCEL_Y_SENS" value="19.6657552603" integer="16"/>
<define name="ACCEL_Z_SENS" value="19.7736759183" integer="16"/>
<!-- Magneto calibration -->
<!--define name="MAG_X_NEUTRAL" value="23"/>
<define name="MAG_Y_NEUTRAL" value="-13"/>
<define name="MAG_Z_NEUTRAL" value="-8"/>
<define name="MAG_X_SENS" value="15.5472944024" integer="16"/>
<define name="MAG_Y_SENS" value="15.5179439561" integer="16"/>
<define name="MAG_Z_SENS" value="16.8234333541" integer="16"/-->
<!-- Magneto calibration -->
<define name="MAG_X_NEUTRAL" value="24"/>
<define name="MAG_Y_NEUTRAL" value="-20"/>
<define name="MAG_Z_NEUTRAL" value="-9"/>
<define name="MAG_X_SENS" value="15.3774561292" integer="16"/>
<define name="MAG_Y_SENS" value="15.5082167794" integer="16"/>
<define name="MAG_Z_SENS" value="16.5687991924" integer="16"/>
<!-- Magneto current calibration -->
<define name="MAG_X_CURRENT_COEF" value="0.0"/>
<define name="MAG_Y_CURRENT_COEF" value="0.0"/>
<define name="MAG_Z_CURRENT_COEF" value="0.0"/>
</section>
</airframe>
@@ -1,27 +0,0 @@
<airframe>
<section name="IMU" prefix="IMU_">
<!-- Accelero -->
<define name="ACCEL_X_NEUTRAL" value="2061"/>
<define name="ACCEL_Y_NEUTRAL" value="2087"/>
<define name="ACCEL_Z_NEUTRAL" value="2062"/>
<define name="ACCEL_X_SENS" value="19.8086810127" integer="16"/>
<define name="ACCEL_Y_SENS" value="19.6883612768" integer="16"/>
<define name="ACCEL_Z_SENS" value="19.3409944706" integer="16"/>
<!-- Magneto calibration -->
<define name="MAG_X_NEUTRAL" value="46"/>
<define name="MAG_Y_NEUTRAL" value="-50"/>
<define name="MAG_Z_NEUTRAL" value="-28"/>
<define name="MAG_X_SENS" value="16.1913174133" integer="16"/>
<define name="MAG_Y_SENS" value="15.2287916857" integer="16"/>
<define name="MAG_Z_SENS" value="16.5815975397" integer="16"/>
<!-- Magneto current calibration -->
<define name="MAG_X_CURRENT_COEF" value="0.0"/>
<define name="MAG_Y_CURRENT_COEF" value="0.0"/>
<define name="MAG_Z_CURRENT_COEF" value="0.0"/>
</section>
</airframe>
@@ -1,140 +0,0 @@
<!-- shared control loops gain -->
<airframe>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<servos driver="Default">
<servo name="TOP_LEFT" no="0" min="0" neutral="1" max="500"/>
<servo name="TOP_RIGHT" no="1" min="0" neutral="1" max="500"/>
<servo name="BOTTOM_RIGHT" no="2" min="0" neutral="1" max="500"/>
<servo name="BOTTOM_LEFT" no="3" min="0" neutral="1" max="500"/>
</servos>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="-200"/>
<define name="TRIM_YAW" value="0"/>
<define name="NB_MOTOR" value="4"/>
<define name="SCALE" value="255"/>
<!-- Time cross layout (X), with order NW (CW), NE (CCW), SE (CW), SW (CCW) -->
<define name="ROLL_COEF" value="{ 256, -256, -256, 256 }"/>
<define name="PITCH_COEF" value="{ 256, 256, -256, -256 }"/>
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }"/>
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
</section>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="TOP_LEFT" value="motor_mixing.commands[0]"/>
<set servo="TOP_RIGHT" value="motor_mixing.commands[1]"/>
<set servo="BOTTOM_RIGHT" value="motor_mixing.commands[2]"/>
<set servo="BOTTOM_LEFT" value="motor_mixing.commands[3]"/>
</command_laws>
<section name="INS_BASE" prefix="INS_">
<define name="SONAR_MAX_RANGE" value="4.0"/>
<define name="SONAR_MIN_RANGE" value="0.01"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45" unit="deg"/>
<define name="SP_MAX_THETA" value="45" unit="deg"/>
<define name="SP_MAX_R" value="200" unit="deg/s"/>
<define name="DEADBAND_A" value="0"/>
<define name="DEADBAND_E" value="0"/>
<define name="DEADBAND_R" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="900" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.9"/>
<define name="REF_MAX_P" value="600." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="900" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.9"/>
<define name="REF_MAX_Q" value="600." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="600" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.9"/>
<define name="REF_MAX_R" value="40." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(4000.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="1100"/>
<define name="PHI_DGAIN" value="420"/>
<define name="PHI_IGAIN" value="120"/>
<define name="THETA_PGAIN" value="1100"/>
<define name="THETA_DGAIN" value="420"/>
<define name="THETA_IGAIN" value="120"/>
<define name="PSI_PGAIN" value="1000"/>
<define name="PSI_DGAIN" value="400"/>
<define name="PSI_IGAIN" value="30"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="70"/>
<define name="THETA_DDGAIN" value="70"/>
<define name="PSI_DDGAIN" value="50"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="MIN_ERR_Z" value="POS_BFP_OF_REAL(-10.)"/>
<define name="MAX_ERR_Z" value="POS_BFP_OF_REAL( 10.)"/>
<define name="MIN_ERR_ZD" value="SPEED_BFP_OF_REAL(-10.)"/>
<define name="MAX_ERR_ZD" value="SPEED_BFP_OF_REAL( 10.)"/>
<define name="MAX_SUM_ERR" value="2000000"/>
<define name="REF_MIN_ZDD" value="-0.8*9.81"/>
<define name="REF_MAX_ZDD" value=" 0.5*9.81"/>
<define name="REF_MIN_ZD" value="-1.5"/>
<define name="REF_MAX_ZD" value=" 1.5"/>
<define name="HOVER_KP" value="200"/>
<define name="HOVER_KD" value="100"/>
<define name="HOVER_KI" value="30"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.65"/>
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE"/>
<define name="ADAPT_INITIAL_HOVER_THROTTLE" value="0.5"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="REF_MAX_SPEED" value="3." unit="m/s"/>
<!-- Good weather -->
<define name="MAX_BANK" value="20" unit="deg"/>
<!-- Bad weather -->
<!-- define name="MAX_BANK" value="32" unit="deg"/ -->
<define name="PGAIN" value="40"/>
<define name="DGAIN" value="60"/>
<define name="IGAIN" value="20"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="nw_motor, ne_motor, se_motor, sw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_ardrone2" type="string"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="BAT">
<define name="MILLIAMP_AT_FULL_THROTTLE" value="8700"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="9.6" unit="V"/>
<define name="LOW_BAT_LEVEL" value="9.7" unit="V"/>
<define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
</section>
</airframe>
@@ -1,84 +0,0 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="ardrone2_digit">
<firmware name="rotorcraft">
<define name="DEBUG_VFF_EXTENDED"/>
<configure name="HOST" value="192.168.1.$(AC_ID)"/>
<target name="ap" board="ardrone2">
<define name="USE_SONAR"/>
<define name="USE_BARO_MEDIAN_FILTER"/>
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
<module name="radio_control" type="datalink"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="transparent_udp"/>
<!-- Subsystem section -->
<module name="motor_mixing"/>
<module name="actuators" type="ardrone2"/>
<module name="imu" type="ardrone2"/>
<module name="gps" type="ublox"/>
<!--module name="gps" type="ubx_ucenter"/-->
<module name="stabilization" type="int_quat"/>
<!-- AHRS + INS for indoor or outdoor -->
<!--module name="ahrs" type="int_cmpl_euler"/>
<module name="ins" type="extended"/-->
<!-- INS for outdoor only -->
<module name="ins" type="float_invariant"/>
<module name="agl_dist">
<define name="USE_SONAR"/>
</module>
<module name="video_thread"/>
<module name="video_rtp_stream">
<define name="VIEWVIDEO_CAMERA" value="front_camera"/>
<configure name="VIEWVIDEO_USE_NETCAT" value="FALSE"/>
</module>
<module name="rotorcraft_cam"/>
<module name="bat_voltage_ardrone2"/>
</firmware>
<!-- include common control -->
<include href="conf/airframes/ENAC/quadrotor/ard2_base_control.xml"/>
<!-- include arframe calibration -->
<include href="conf/airframes/ENAC/quadrotor/ard2_$AC_ID.xml"/>
<!-- local magnetic field -->
<!-- http://paparazzi.enac.fr/wiki/Subsystem/ahrs#Local_Magnetic_Field -->
<section name="AHRS" prefix="AHRS_">
<!-- Toulouse -->
<!--define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/-->
<!-- Delft -->
<!--define name="H_X" value="0.3892503"/>
<define name="H_Y" value="0.0017972"/>
<define name="H_Z" value="0.9211303"/ -->
</section>
<section name="INS" prefix="INS_">
<!-- Toulouse -->
<define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/>
<!-- Delft -->
<!--define name="H_X" value="0.387766"/>
<define name="H_Y" value="0.00648212"/>
<define name="H_Z" value="0.921725"/ -->
<!-- trust more the baro over the gps alt -->
<define name="INV_NXZ" value="0.3"/>
<define name="INV_NH" value="2.0"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="5"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-1"/>
</section>
</airframe>
@@ -1,86 +0,0 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="ardrone2_vision">
<firmware name="rotorcraft">
<define name="DEBUG_VFF_EXTENDED"/>
<configure name="HOST" value="192.168.1.$(AC_ID)"/>
<target name="ap" board="ardrone2">
<define name="USE_SONAR"/>
<define name="USE_BARO_MEDIAN_FILTER"/>
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
<module name="radio_control" type="datalink"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="transparent_udp"/>
<!-- Subsystem section -->
<module name="motor_mixing"/>
<module name="actuators" type="ardrone2"/>
<module name="imu" type="ardrone2"/>
<module name="gps" type="ublox"/>
<!--module name="gps" type="ubx_ucenter"/-->
<module name="stabilization" type="int_quat"/>
<!-- AHRS + INS for indoor or outdoor -->
<!--module name="ahrs" type="int_cmpl_euler"/>
<module name="ins" type="extended"/-->
<!-- INS for outdoor only -->
<module name="ins" type="float_invariant"/>
<module name="agl_dist">
<define name="USE_SONAR"/>
</module>
<module name="video_thread"/>
<module name="video_rtp_stream">
<define name="VIEWVIDEO_CAMERA" value="front_camera"/>
<define name="VIDEO_SOCK_OUT_OFFSET" value="$(AC_ID)"/>
<define name="VIDEO_DOWNSIZE_FACTOR" value="2"/>
<define name="VIDEO_QUALITY_FACTOR" value="80"/>
<define name="VIDEO_FPS" value="1"/>
</module>
<module name="rotorcraft_cam"/>
</firmware>
<!-- include common control -->
<include href="conf/airframes/ENAC/quadrotor/ard2_base_control.xml"/>
<!-- include arframe calibration -->
<include href="conf/airframes/ENAC/quadrotor/ard2_$AC_ID.xml"/>
<!-- local magnetic field -->
<!-- http://paparazzi.enac.fr/wiki/Subsystem/ahrs#Local_Magnetic_Field -->
<section name="AHRS" prefix="AHRS_">
<!-- Toulouse -->
<!--define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/-->
<!-- Delft -->
<!--define name="H_X" value="0.3892503"/>
<define name="H_Y" value="0.0017972"/>
<define name="H_Z" value="0.9211303"/ -->
</section>
<section name="INS" prefix="INS_">
<!-- Toulouse -->
<define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/>
<!-- Delft -->
<!--define name="H_X" value="0.387766"/>
<define name="H_Y" value="0.00648212"/>
<define name="H_Z" value="0.921725"/ -->
<!-- trust more the baro over the gps alt -->
<define name="INV_NXZ" value="0.3"/>
<define name="INV_NH" value="2.0"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="5"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-1"/>
</section>
</airframe>
@@ -1,76 +0,0 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="ardrone2_basic">
<firmware name="rotorcraft">
<define name="DEBUG_VFF_EXTENDED"/>
<configure name="HOST" value="192.168.1.$(AC_ID)"/>
<target name="ap" board="ardrone2">
<define name="USE_SONAR"/>
<define name="USE_BARO_MEDIAN_FILTER"/>
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
<module name="radio_control" type="datalink"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="transparent_udp"/>
<!-- Subsystem section -->
<module name="motor_mixing"/>
<module name="actuators" type="ardrone2"/>
<module name="imu" type="ardrone2"/>
<!--module name="gps" type="piksi"/-->
<module name="gps" type="ublox"/>
<!--module name="gps" type="ubx_ucenter"/-->
<module name="stabilization" type="int_quat"/>
<!-- AHRS + INS for indoor or outdoor -->
<module name="ahrs" type="float_invariant"/>
<module name="ins" type="extended"/>
<!-- INS for outdoor only -->
<!--module name="ins" type="float_invariant"/-->
<module name="bat_voltage_ardrone2"/>
</firmware>
<!-- include common control -->
<include href="conf/airframes/ENAC/quadrotor/ard2_base_control.xml"/>
<!-- include arframe calibration -->
<include href="conf/airframes/ENAC/quadrotor/ard2_$AC_ID.xml"/>
<!-- local magnetic field -->
<!-- http://paparazzi.enac.fr/wiki/Subsystem/ahrs#Local_Magnetic_Field -->
<section name="AHRS" prefix="AHRS_">
<!-- Toulouse -->
<define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/>
<!-- Delft -->
<!--define name="H_X" value="0.3892503"/>
<define name="H_Y" value="0.0017972"/>
<define name="H_Z" value="0.9211303"/ -->
</section>
<section name="INS" prefix="INS_">
<!-- Toulouse -->
<!--define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/-->
<!-- Delft -->
<!--define name="H_X" value="0.387766"/>
<define name="H_Y" value="0.00648212"/>
<define name="H_Z" value="0.921725"/ -->
<!-- trust more the baro over the gps alt -->
<define name="INV_NXZ" value="0.3"/>
<define name="INV_NH" value="2.0"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="5"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-1"/>
</section>
</airframe>
@@ -1,78 +0,0 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="ardrone2_basic">
<firmware name="rotorcraft">
<define name="DEBUG_VFF_EXTENDED"/>
<configure name="HOST" value="192.168.1.$(AC_ID)"/>
<configure name="MODEM_HOST" value="192.168.1.1"/>
<configure name="MODEM_BROADCAST" value="FALSE"/>
<target name="ap" board="ardrone2">
<define name="USE_SONAR"/>
<define name="USE_BARO_MEDIAN_FILTER"/>
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
<module name="radio_control" type="datalink"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="transparent_udp"/>
<!-- Subsystem section -->
<module name="motor_mixing"/>
<module name="actuators" type="ardrone2"/>
<module name="imu" type="ardrone2"/>
<module name="gps" type="ublox"/>
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="int_quat"/>
<!-- AHRS + INS for indoor or outdoor -->
<!--module name="ahrs" type="int_cmpl_euler"/>
<module name="ins" type="extended"/-->
<!-- INS for outdoor only -->
<module name="ins" type="float_invariant"/>
<module name="bat_voltage_ardrone2"/>
</firmware>
<!-- include common control -->
<include href="conf/airframes/ENAC/quadrotor/ard2_base_control.xml"/>
<!-- include arframe calibration -->
<include href="conf/airframes/ENAC/quadrotor/ard2_$AC_ID.xml"/>
<!-- local magnetic field -->
<!-- http://paparazzi.enac.fr/wiki/Subsystem/ahrs#Local_Magnetic_Field -->
<section name="AHRS" prefix="AHRS_">
<!-- Toulouse -->
<!--define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/-->
<!-- Delft -->
<!--define name="H_X" value="0.3892503"/>
<define name="H_Y" value="0.0017972"/>
<define name="H_Z" value="0.9211303"/ -->
</section>
<section name="INS" prefix="INS_">
<!-- Toulouse -->
<define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/>
<!-- Delft -->
<!--define name="H_X" value="0.387766"/>
<define name="H_Y" value="0.00648212"/>
<define name="H_Z" value="0.921725"/ -->
<!-- trust more the baro over the gps alt -->
<define name="INV_NXZ" value="0.3"/>
<define name="INV_NH" value="2.0"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="5"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-1"/>
</section>
</airframe>
+3 -4
View File
@@ -23,12 +23,11 @@
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
<define name="TAWAKIV2_IMU_ROT" value=""/>
<define name="TAWAKIV2_MAG_ROT" value=""/>
</target>
<module name="telemetry" type="xbee_api"/>
<!--module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="usb_serial"/>
</module-->
<module name="actuators" type="dshot"/>
<module name="actuators" type="pwm"/>
@@ -191,7 +190,6 @@
<define name="ARRIVED_AT_WAYPOINT" value="0.25"/>
<define name="NAV_CLIMB_VSPEED" value="0.8"/>
<define name="NAV_DESCEND_VSPEED" value="-0.5"/>
<define name="NAV_CARROT_DIST" value="18"/>
</section>
<section name="BAT">
@@ -220,6 +218,7 @@
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="nw_motor, ne_motor, se_motor, sw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
<define name="COMMANDS_NB" value="4"/>
</section>
</airframe>
-272
View File
@@ -1,272 +0,0 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="Quadricopter DROP_1">
<description>
* Autopilot: Tawaki
* Actuators: 4 in 4 Holybro BLHELI ESC
* Telemetry: XBee
* GPS: datalink
* RC: Futaba
</description>
<firmware name="rotorcraft">
<configure name="PERIODIC_FREQUENCY" value="500"/>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="$(PERIODIC_FREQUENCY)"/>
<target name="ap" board="tawaki_1.0">
<module name="radio_control" type="sbus"/>
<configure name="BARO_PERIODIC_FREQUENCY" value="50"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="xbee_api"/>
<module name="sys_mon"/>
<module name="motor_mixing"/>
<module name="actuators" type="dshot">
<define name="DSHOT_SPEED" value="300"/>
</module>
<module name="board" type="tawaki">
<configure name="BOARD_TAWAKI_ROTATED" value="TRUE"/>
<define name="IMU_MPU_LOWPASS_FILTER" value="MPU60X0_DLPF_98HZ"/>
<define name="IMU_MPU_ACCEL_LOWPASS_FILTER" value="MPU60X0_DLPF_ACC_44HZ"/>
<define name="IMU_MPU_SMPLRT_DIV" value="1"/>
<configure name="MAG_LIS3MDL_I2C_DEV" value="i2c2"/>
</module>
<module name="gps" type="ublox">
<configure name="GPS_BAUD" value="B115200"/>
<define name="USE_GPS_UBX_RTCM" value="TRUE"/>
</module>
<module name="stabilization" type="int_quat"/>
<module name="ins"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="air_data"/>
<module name="jevois">
<configure name="JEVOIS_UART" value="UART3"/>
<define name="JEVOIS_SEND_VISUAL_DETECTION"/>
</module>
<!--module name="cv" type="target_localization">
<define name="RECTANGLE_SURVEY_DEFAULT_SWEEP" value="20"/>
</module-->
<module name="tag_tracking"/>
<module name="actuators" type="pwm"/>
<module name="switch" type="servo"/>
<!--module name="filter" type="1euro_imu">
<define name="AHRS_ICQ_IMU_ID" value="IMU_F1E_ID"/>
<define name="AHRS_ALIGNER_IMU_ID" value="IMU_F1E_ID"/>
</module-->
</firmware>
<servos driver="DShot">
<servo name="FRONT" no="2" min="0" neutral="100" max="2000"/>
<servo name="RIGHT" no="1" min="0" neutral="100" max="2000"/>
<servo name="BACK" no="3" min="0" neutral="100" max="2000"/>
<servo name="LEFT" no="4" min="0" neutral="100" max="2000"/>
</servos>
<servos driver="Pwm">
<servo name="SWITCH" no="1" min="1000" neutral="1000" max="2000"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<!--define name="TRIM_ROLL" value="0"/>
<define name="TRIM_PITCH" value="-400"/>
<define name="TRIM_YAW" value="-500"/-->
<define name="TYPE" value="QUAD_PLUS"/>
<!--define name="REVERSE" value="TRUE"/-->
</section>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FRONT" value="motor_mixing.commands[MOTOR_FRONT]"/>
<set servo="RIGHT" value="motor_mixing.commands[MOTOR_RIGHT]"/>
<set servo="BACK" value="motor_mixing.commands[MOTOR_BACK]"/>
<set servo="LEFT" value="motor_mixing.commands[MOTOR_LEFT]"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<define name="GYRO_P_SIGN" value="-1"/>
<define name="GYRO_Q_SIGN" value="-1"/>
<define name="GYRO_R_SIGN" value="1"/>
<define name="ACCEL_X_SIGN" value="-1"/>
<define name="ACCEL_Y_SIGN" value="-1"/>
<define name="ACCEL_Z_SIGN" value="1"/>
<define name="ACCEL_X_NEUTRAL" value="-66"/>
<define name="ACCEL_Y_NEUTRAL" value="134"/>
<define name="ACCEL_Z_NEUTRAL" value="12"/>
<define name="ACCEL_X_SENS" value="2.45208261737" integer="16"/>
<define name="ACCEL_Y_SENS" value="2.64210954935" integer="16"/>
<define name="ACCEL_Z_SENS" value="2.45501830376" integer="16"/>
<define name="MAG_X_SIGN" value="1"/>
<define name="MAG_Y_SIGN" value="1"/>
<define name="MAG_Z_SIGN" value="1"/>
<define name="MAG_X_NEUTRAL" value="61"/>
<define name="MAG_Y_NEUTRAL" value="-643"/>
<define name="MAG_Z_NEUTRAL" value="-308"/>
<define name="MAG_X_SENS" value="0.677847523102" integer="16"/>
<define name="MAG_Y_SENS" value="0.69808834351" integer="16"/>
<define name="MAG_Z_SENS" value="0.692571212902" integer="16"/>
<!--define name= "MAG_X_CURRENT_COEF" value="118.702992289"/>
<define name= "MAG_Y_CURRENT_COEF" value="135.416707118"/>
<define name= "MAG_Z_CURRENT_COEF" value="-301.422405936"/-->
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<include href="conf/mag/toulouse_muret.xml"/>
<section name="INS" prefix="INS_">
<define name="INV_NXZ" value="0.25"/>
<define name="INV_NH" value="2.0"/>
<define name="INV_MVZ" value="8."/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
<define name="SP_MAX_P" value="10000"/>
<define name="SP_MAX_Q" value="10000"/>
<define name="SP_MAX_R" value="10000"/>
<define name="GAIN_P" value="400"/>
<define name="GAIN_Q" value="400"/>
<define name="GAIN_R" value="350"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_R" value="90." unit="deg/s"/>
<define name="DEADBAND_R" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="300." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="300." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(7000.)"/>
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="90." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="300"/>
<define name="PHI_DGAIN" value="300"/>
<define name="PHI_IGAIN" value="45"/>
<define name="THETA_PGAIN" value="300"/>
<define name="THETA_DGAIN" value="300"/>
<define name="THETA_IGAIN" value="45"/>
<define name="PSI_PGAIN" value="1000"/>
<define name="PSI_DGAIN" value="600"/>
<define name="PSI_IGAIN" value="30"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="80"/>
<define name="THETA_DDGAIN" value="80"/>
<define name="PSI_DDGAIN" value="170"/>
<define name="PHI_AGAIN" value="0"/>
<define name="THETA_AGAIN" value="0"/>
<define name="PSI_AGAIN" value="0"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="REF_MIN_ZDD" value="-0.4*9.81"/>
<define name="REF_MAX_ZDD" value=" 0.4*9.81"/>
<define name="REF_MIN_ZD" value="-1.5"/>
<define name="REF_MAX_ZD" value=" 1."/>
<define name="HOVER_KP" value="48"/>
<define name="HOVER_KD" value="80"/>
<define name="HOVER_KI" value="11"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.45"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
<define name="ADAPT_NOISE_FACTOR" value="1."/>
<define name="ADAPT_INITIAL_HOVER_THROTTLE" value="0.35"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="20" unit="deg"/>
<define name="PGAIN" value="41"/>
<define name="DGAIN" value="108"/>
<define name="IGAIN" value="20"/>
<define name="NGAIN" value="0"/>
<!-- feedforward -->
<define name="AGAIN" value="0"/>
<define name="REF_MAX_SPEED" value="2.5"/>
<define name="REF_MAX_ACCEL" value="2.5"/>
</section>
<section name="NAV">
<define name="ARRIVED_AT_WAYPOINT" value="2.0"/>
<define name="RECTANGLE_SURVEY_HEADING_WE" value="180."/>
<define name="NAV_CLIMB_VSPEED" value="1.0"/>
</section>
<section name="BAT">
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="9.8" unit="V"/>
<define name="LOW_BAT_LEVEL" value="10.5" unit="V"/>
<define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
<define name="MILLIAMP_AT_FULL_THROTTLE" value="20000" unit="mA"/>
<define name="MILLIAMP_AT_IDLE_THROTTLE" value="1000" unit="mA"/>
<define name="CURRENT_ESTIMATION_NONLINEARITY" value="1.0"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="SWITCH_SERVO" prefix="SWITCH_SERVO_">
<define name="ON_VALUE" value="1000"/>
<define name="OFF_VALUE" value="2000"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="front_motor, right_motor, back_motor, left_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_quad_wind" type="string"/>
</section>
</airframe>
@@ -0,0 +1,218 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="Maya">
<description>
* Autopilot: Tawaki
* Actuators: 4 in 1
* Telemetry: XBee
* GPS: datalink
* RC: SBUS
</description>
<firmware name="rotorcraft">
<configure name="PERIODIC_FREQUENCY" value="500"/>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="$(PERIODIC_FREQUENCY)"/>
<target name="ap" board="tawaki_1.1">
<module name="radio_control" type="sbus"/>
<configure name="BARO_PERIODIC_FREQUENCY" value="50"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="xbee_api"/>
<module name="actuators" type="dshot"/>
<module name="actuators" type="pwm"/>
<module name="switch" type="servo"/>
<define name="SWITCH_SERVO_ON_VALUE" value="SERVO_SWITCH_MAX"/>
<define name="SWITCH_SERVO_OFF_VALUE" value="SERVO_SWITCH_MIN"/>
<module name="board" type="tawaki">
<define name="IMU_MPU_LOWPASS_FILTER" value="MPU60X0_DLPF_256HZ"/>
<define name="IMU_MPU_ACCEL_LOWPASS_FILTER" value="MPU60X0_DLPF_ACC_218HZ"/>
<define name="IMU_MPU_SMPLRT_DIV" value="0"/>
</module>
<module name="gps" type="optitrack"/>
<module name="stabilization" type="indi"/>
<module name="guidance" type="indi"/>
<module name="ins" type="ekf2">
<define name="INS_EKF2_OPTITRACK" value="TRUE"/>
</module>
<!-- <module name="preflight_checks"/> -->
<!--module name="filter" type="1euro_imu">
<define name="AHRS_ICQ_IMU_ID" value="IMU_F1E_ID"/>
<define name="AHRS_ALIGNER_IMU_ID" value="IMU_F1E_ID"/>
</module-->
<module name="motor_mixing"/>
<module name="tag_tracking">
<configure name="JEVOIS_UART" value="UART3"/>
</module>
<module name="flight_recorder"/>
</firmware>
<servos driver="Pwm">
<servo name="SWITCH" no="1" min="800" neutral="800" max="1500"/>
</servos>
<servos driver="DShot">
<servo name="FR" no="1" min="0" neutral="100" max="2000"/>
<servo name="BR" no="2" min="0" neutral="100" max="2000"/>
<servo name="BL" no="3" min="0" neutral="100" max="2000"/>
<servo name="FL" no="4" min="0" neutral="100" max="2000"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TYPE" value="QUAD_X"/>
<define name="REVERSE" value="TRUE"/>
</section>
<command_laws>
<set servo="FR" value="autopilot_get_motors_on() ? actuators_pprz[0] : -MAX_PPRZ"/>
<set servo="BR" value="autopilot_get_motors_on() ? actuators_pprz[1] : -MAX_PPRZ"/>
<set servo="BL" value="autopilot_get_motors_on() ? actuators_pprz[2] : -MAX_PPRZ"/>
<set servo="FL" value="autopilot_get_motors_on() ? actuators_pprz[3] : -MAX_PPRZ"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<define name="ACCEL_CALIB" value="{{.abi_id=9, .calibrated={.neutral=true, .scale=true},.neutral={18,45,-22}, .scale={{47720,3841,3732},{18911,1570,1517}}}}"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="180." unit="deg"/>
</section>
<include href="conf/mag/toulouse_muret.xml"/>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoint limits for attitude stabilization rc flight -->
<define name="SP_MAX_PHI" value="45" unit="deg"/>
<define name="SP_MAX_THETA" value="45" unit="deg"/>
<define name="SP_MAX_R" value="60" unit="deg/s"/>
<define name="DEADBAND_A" value="0"/>
<define name="DEADBAND_E" value="0"/>
<define name="DEADBAND_R" value="50"/>
</section>
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<define name="NUM_ACT" value="4"/>
<!-- reference acceleration for attitude control -->
<define name="REF_ERR_P" value="120"/>
<define name="REF_ERR_Q" value="130"/>
<define name="REF_ERR_R" value="120"/>
<define name="REF_RATE_P" value="15"/>
<define name="REF_RATE_Q" value="15"/>
<define name="REF_RATE_R" value="10"/>
<define name="MAX_R" value="60" unit="deg/s"/>
<!-- second order filter parameters -->
<define name="FILT_CUTOFF" value="4.0"/>
<define name="FILT_CUTOFF_R" value="4.0"/>
<!-- Adaptive Learning Rate -->
<define name="USE_ADAPTIVE" value="FALSE"/>
<define name="ADAPTIVE_MU" value="0.0001"/>
<!-- Full INDI -->
<!-- control effectiveness -->
<define name="G1_ROLL" value="{ -20.0, -20.0, 20.0, 20.0 }"/>
<define name="G1_PITCH" value="{ 20.0, -20.0, -20.0, 20.0 }"/>
<define name="G1_YAW" value="{ 3, -3, 3, -3 }"/>
<define name="G1_THRUST" value="{ -1., -1., -1., -1.}"/>
<!--Counter torque effect of spinning up a rotor-->
<define name="G2" value="{80, -80, 80, -80.0 }"/>
<!-- first order actuator dynamics -->
<define name="ACT_FREQ" value="{10.10, 10.10, 10.10, 10.10}"/>
<define name="ESTIMATION_FILT_CUTOFF" value="4.0"/>
<!--Priority for each axis (roll, pitch, yaw and thrust)-->
<define name="WLS_PRIORITIES" value="{1000, 1000, 1, 100}"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="REF_MIN_ZDD" value="-0.4*9.81"/>
<define name="REF_MAX_ZDD" value=" 0.4*9.81"/>
<define name="REF_MIN_ZD" value="-2."/>
<define name="REF_MAX_ZD" value=" 2."/>
<define name="HOVER_KP" value="90"/>
<define name="HOVER_KD" value="110"/>
<define name="HOVER_KI" value="10"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.35"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
<define name="ADAPT_NOISE_FACTOR" value="1."/>
<define name="ADAPT_INITIAL_HOVER_THROTTLE" value="0.3"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="30" unit="deg"/>
<define name="PGAIN" value="41"/>
<define name="DGAIN" value="108"/>
<define name="IGAIN" value="20"/>
<define name="NGAIN" value="0"/>
<!-- feedforward -->
<define name="AGAIN" value="0"/>
<define name="REF_MAX_SPEED" value="0.5"/>
<define name="REF_MAX_ACCEL" value="2."/>
</section>
<section name="GUIDANCE_INDI" prefix="GUIDANCE_INDI_">
<define name="SPECIFIC_FORCE_GAIN" value="-500.0"/>
<define name="THRUST_DYNAMICS_FREQ" value="25.64"/>
<define name="RC_DEBUG" value="FALSE"/>
<define name="SPEED_GAINZ" value="2.5"/>
</section>
<section name="NAV">
<define name="ARRIVED_AT_WAYPOINT" value="0.25"/>
<define name="NAV_CLIMB_VSPEED" value="0.8"/>
<define name="NAV_DESCEND_VSPEED" value="-0.5"/>
</section>
<section name="BAT">
<define name="CRITIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
<define name="FAILSAFE_FIXED_THROTTLE" value="0.4"/>
</section>
<section name="TAG_TRACKING" prefix="TAG_TRACKING_">
<define name="BODY_TO_CAM_PSI" value="M_PI_2"/>
<define name="CAM_POS_X" value="0.15"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="3"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-0.5"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="nw_motor, ne_motor, se_motor, sw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
<define name="COMMANDS_NB" value="4"/>
</section>
</airframe>
@@ -0,0 +1,250 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<airframe name="Maya">
<description>
* Autopilot: Tawaki
* Actuators: 4 in 1
* Telemetry: XBee
* GPS: datalink
* RC: SBUS
</description>
<firmware name="rotorcraft">
<configure name="PERIODIC_FREQUENCY" value="500"/>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="$(PERIODIC_FREQUENCY)"/>
<target name="ap" board="tawaki_1.1">
<module name="radio_control" type="sbus"/>
<configure name="BARO_PERIODIC_FREQUENCY" value="50"/>
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="xbee_api"/>
<module name="actuators" type="dshot"/>
<module name="actuators" type="pwm"/>
<module name="switch" type="servo"/>
<module name="board" type="tawaki">
<!-- <define name="USE_DSHOT_TIM1" value="TRUE"/> -->
<define name="IMU_MPU_LOWPASS_FILTER" value="MPU60X0_DLPF_256HZ"/>
<define name="IMU_MPU_ACCEL_LOWPASS_FILTER" value="MPU60X0_DLPF_ACC_218HZ"/>
<define name="IMU_MPU_SMPLRT_DIV" value="0"/>
<!--
<configure name="MAG_LIS3MDL_I2C_DEV" value="i2c2"/>
<define name="IMU_MPU_CHAN_X" value="1">
<define name="IMU_MPU_CHAN_Y" value="0">
<define name="IMU_MPU_Y_SIGN" value="-1"/>
<define name="LIS3MDL_CHAN_X_SIGN" value="-"/>
<define name="LIS3MDL_CHAN_Y_SIGN" value="-"/>
-->
</module>
<module name="gps" type="ublox">
<configure name="GPS_BAUD" value="B115200"/>
<define name="USE_GPS_UBX_RTCM" value="TRUE"/>
<define name="GPS_FIX_TIMEOUT" value="0.5"/>
</module>
<module name="stabilization" type="indi"/>
<module name="guidance" type="indi"/>
<module name="ins"/>
<module name="ahrs" type="int_cmpl_quat"/>
<module name="air_data"/>
<!--module name="filter" type="1euro_imu">
<define name="AHRS_ICQ_IMU_ID" value="IMU_F1E_ID"/>
<define name="AHRS_ALIGNER_IMU_ID" value="IMU_F1E_ID"/>
</module-->
<module name="motor_mixing"/>
<module name="tag_tracking">
<configure name="JEVOIS_UART" value="UART3"/>
</module>
<module name="flight_recorder"/>
</firmware>
<servos driver="Pwm">
<servo name="SWITCH" no="1" min="1000" neutral="1000" max="2000"/>
</servos>
<servos driver="DShot">
<servo name="FR" no="1" min="0" neutral="100" max="2000"/>
<servo name="BR" no="2" min="0" neutral="100" max="2000"/>
<servo name="BL" no="3" min="0" neutral="100" max="2000"/>
<servo name="FL" no="4" min="0" neutral="100" max="2000"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<define name="TYPE" value="QUAD_X"/>
<define name="REVERSE" value="TRUE"/>
</section>
<command_laws>
<set servo="FR" value="autopilot_get_motors_on() ? actuators_pprz[0] : -MAX_PPRZ"/>
<set servo="BR" value="autopilot_get_motors_on() ? actuators_pprz[1] : -MAX_PPRZ"/>
<set servo="BL" value="autopilot_get_motors_on() ? actuators_pprz[2] : -MAX_PPRZ"/>
<set servo="FL" value="autopilot_get_motors_on() ? actuators_pprz[3] : -MAX_PPRZ"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<define name="GYRO_P_SIGN" value="-1"/>
<define name="GYRO_Q_SIGN" value="-1"/>
<define name="GYRO_R_SIGN" value="1"/>
<define name="ACCEL_X_SIGN" value="-1"/>
<define name="ACCEL_Y_SIGN" value="-1"/>
<define name="ACCEL_Z_SIGN" value="1"/>
<define name="ACCEL_X_NEUTRAL" value="29"/>
<define name="ACCEL_Y_NEUTRAL" value="45"/>
<define name="ACCEL_Z_NEUTRAL" value="-10"/>
<define name="ACCEL_X_SENS" value="2.521769701216655" integer="16"/>
<define name="ACCEL_Y_SENS" value="2.443739538927253" integer="16"/>
<define name="ACCEL_Z_SENS" value="2.4586009011109544" integer="16"/>
<define name="MAG_X_SIGN" value="-1"/>
<define name="MAG_Y_SIGN" value="-1"/>
<define name="MAG_Z_SIGN" value="1"/>
<define name="MAG_X_NEUTRAL" value="1538"/>
<define name="MAG_Y_NEUTRAL" value="1854"/>
<define name="MAG_Z_NEUTRAL" value="1256"/>
<define name="MAG_X_SENS" value="0.6549725141157784" integer="16"/>
<define name="MAG_Y_SENS" value="0.6258400814886659" integer="16"/>
<define name="MAG_Z_SENS" value="0.6507406574649046" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<include href="conf/mag/toulouse_muret.xml"/>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoint limits for attitude stabilization rc flight -->
<define name="SP_MAX_PHI" value="45" unit="deg"/>
<define name="SP_MAX_THETA" value="45" unit="deg"/>
<define name="SP_MAX_R" value="60" unit="deg/s"/>
<define name="DEADBAND_A" value="0"/>
<define name="DEADBAND_E" value="0"/>
<define name="DEADBAND_R" value="50"/>
</section>
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<define name="NUM_ACT" value="4"/>
<!-- reference acceleration for attitude control -->
<define name="REF_ERR_P" value="120"/>
<define name="REF_ERR_Q" value="130"/>
<define name="REF_ERR_R" value="90"/>
<define name="REF_RATE_P" value="8.9"/>
<define name="REF_RATE_Q" value="8.0"/>
<define name="REF_RATE_R" value="5.0"/>
<define name="MAX_R" value="60" unit="deg/s"/>
<!-- second order filter parameters -->
<define name="FILT_CUTOFF" value="4.0"/>
<define name="FILT_CUTOFF_R" value="4.0"/>
<!-- Adaptive Learning Rate -->
<define name="USE_ADAPTIVE" value="FALSE"/>
<define name="ADAPTIVE_MU" value="0.0001"/>
<!-- Full INDI -->
<!-- control effectiveness -->
<define name="G1_ROLL" value="{ -20.0, -20.0, 20.0, 20.0 }"/>
<define name="G1_PITCH" value="{ 20.0, -20.0, -20.0, 20.0 }"/>
<define name="G1_YAW" value="{ 3, -3, 3, -3 }"/>
<define name="G1_THRUST" value="{ -1., -1., -1., -1.}"/>
<!--Counter torque effect of spinning up a rotor-->
<define name="G2" value="{80, -80, 80, -80.0 }"/>
<!-- first order actuator dynamics -->
<define name="ACT_FREQ" value="{10.10, 10.10, 10.10, 10.10}"/>
<define name="ESTIMATION_FILT_CUTOFF" value="4.0"/>
<!--Priority for each axis (roll, pitch, yaw and thrust)-->
<define name="WLS_PRIORITIES" value="{1000, 1000, 1, 100}"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="REF_MIN_ZDD" value="-0.4*9.81"/>
<define name="REF_MAX_ZDD" value=" 0.4*9.81"/>
<define name="REF_MIN_ZD" value="-2."/>
<define name="REF_MAX_ZD" value=" 2."/>
<define name="HOVER_KP" value="90"/>
<define name="HOVER_KD" value="110"/>
<define name="HOVER_KI" value="10"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.35"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
<define name="ADAPT_NOISE_FACTOR" value="1."/>
<define name="ADAPT_INITIAL_HOVER_THROTTLE" value="0.3"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="MAX_BANK" value="30" unit="deg"/>
<define name="PGAIN" value="41"/>
<define name="DGAIN" value="108"/>
<define name="IGAIN" value="20"/>
<define name="NGAIN" value="0"/>
<!-- feedforward -->
<define name="AGAIN" value="0"/>
<define name="REF_MAX_SPEED" value="4."/>
<define name="REF_MAX_ACCEL" value="2."/>
</section>
<section name="GUIDANCE_INDI" prefix="GUIDANCE_INDI_">
<define name="SPECIFIC_FORCE_GAIN" value="-500.0"/>
<define name="THRUST_DYNAMICS_FREQ" value="25.64"/>
<define name="RC_DEBUG" value="FALSE"/>
<define name="SPEED_GAINZ" value="2.5"/>
</section>
<section name="NAV">
<define name="ARRIVED_AT_WAYPOINT" value="2."/>
<define name="NAV_CLIMB_VSPEED" value="1.5"/>
<define name="NAV_DESCEND_VSPEED" value="-0.5"/>
<define name="NAV_CARROT_DIST" value="18"/>
</section>
<section name="BAT">
<define name="CRITIC_BAT_LEVEL" value="9.3" unit="V"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
</section>
<section name="TAG_TRACKING" prefix="TAG_TRACKING_">
<define name="BODY_TO_CAM_PSI" value="M_PI_2"/>
<define name="CAM_POS_X" value="0.15"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="3"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-0.5"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="nw_motor, ne_motor, se_motor, sw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
<define name="COMMANDS_NB" value="4"/>
</section>
</airframe>
@@ -1,9 +1,13 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Rover Demo">
<airframe name="Rover">
<description>
Basic rover with 2 wheels and a MD25 controller
</description>
<firmware name="rover">
<autopilot name="rover.xml"/>
<autopilot name="rover"/>
<configure name="AHRS_ALIGNER_LED" value="2"/>
<define name="IMU_MPU9250_READ_MAG" value="0"/>
@@ -26,7 +30,6 @@
<!--module name="stabilization" type="int_quat"/-->
<!-- Option 1) Ins(Accel + Gyro + Mag + Baro) + no GPS -->
<module name="ins" type="gps_passthrough"/>
<define name="INS_GP_USE_GPS_ACCEL" value="TRUE"/>
<module name="ahrs" type="int_cmpl_quat"/>
@@ -1,9 +1,13 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Rover Demo">
<airframe name="Ostrich">
<description>
Holonomic rover platform Ostrich
</description>
<firmware name="rover">
<autopilot name="rover_holonomic.xml"/>
<autopilot name="rover_holonomic"/>
<configure name="AHRS_ALIGNER_LED" value="2"/>
<define name="IMU_MPU9250_READ_MAG" value="0"/>
@@ -13,9 +17,7 @@
<target name="ap" board="chimera_1.0">
</target>
<module name="radio_control" type="datalink">
<!--define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/-->
</module>
<module name="radio_control" type="datalink"/>
<module name="actuators" type="ostrich">
<configure name="ACTUATORS_OSTRICH_PORT" value="uart1"/>
@@ -33,7 +35,6 @@
<!--module name="stabilization" type="int_quat"/-->
<!-- Option 1) Ins(Accel + Gyro + Mag + Baro) + no GPS -->
<module name="ins" type="gps_passthrough"/>
<define name="INS_GP_USE_GPS_ACCEL" value="TRUE"/>
<module name="ahrs" type="int_cmpl_quat"/>
@@ -79,21 +80,9 @@
</command_laws>
<section name="IMU" prefix="IMU_">
<!--define name="GYRO_P_SIGN" value="1"/>
<define name="GYRO_Q_SIGN" value="-1"/>
<define name="GYRO_R_SIGN" value="-1"/>
<define name="ACCEL_X_SIGN" value="1"/>
<define name="ACCEL_Y_SIGN" value="-1"/>
<define name="ACCEL_Z_SIGN" value="-1"/-->
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="180." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="-8." unit="deg"/>
<!--define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="-8." unit="deg"/-->
</section>
<section name="AHRS" prefix="AHRS_">
@@ -1,395 +0,0 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Easyglider Matek">
<description>
Easyglider from Multiplex
BOARD = Matek f405 Wing
IMU = MPU6000
BARO = BMP280
Radio modem: OPENLRSNG
Radio control: OPENLRSNG
GPS: Ublox
On Board OSD
On board current sensor
</description>
<firmware name="fixedwing">
<target name="ap" board="matek_f405_wing_v1"/>
<target name="sim" board="pc"/>
<define name="AGR_CLIMB"/>
<define name="WIND_INFO"/>
<define name="WIND_INFO_RET"/>
<define name="STRONG_WIND"/>
<define name="USE_ADC_1"/>
<define name="USE_ADC_2"/>
<define name="USE_ADC_3"/>
<define name="USE_ADC_4"/>
<define name="AHRS_TRIGGERED_ATTITUDE_LOOP"/>
<define name="USE_AHRS_GPS_ACCELERATIONS"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_BAUD" value="B19200"/>
<configure name="MODEM_PORT" value="UART6 "/>
</module>
<module name="gps" type="ublox" >
<configure name="GPS_BAUD" value="B38400"/>
<configure name="GPS_PORT" value="UART1"/>
<configure name="GPS_LED" value="2"/>
</module>
<module name="control" />
<module name="radio_control" type="ppm">
<define name="RADIO_CONTROL_PPM_PIN" value="UART2_RX"/>
</module>
<module name="navigation"/>
<module name="imu" type="mpu6000" />
<module name="ahrs" type="float_dcm"/>
<module name="ins" type="alt_float">
<configure name="USE_MAGNETOMETER" value="true"/>
<define name="AHRS_USE_GPS_HEADING" value="true"/>
<define name="AHRS_GRAVITY_UPDATE_COORDINATED_TURN"/>
</module>
<module name="spi" type="master"/>
<module name="gps_ubx_ucenter"/>
<module name="nav_line"/>
<module name="baro_bmp280_i2c">
<!-- <define name="BMP280_SYNC_SEND"/> -->
<configure name="BMP280_I2C_DEV" value="i2c1" />
<configure name="BMP280_SLAVE_ADDR" value="BMP280_I2C_ADDR" />
</module>
<module name="osd_max7456">
<configure name="MAX7456_SPI_DEV" value="spi2" />
<configure name="MAX7456_SLAVE_IDX" value="SPI_SLAVE1" />
<define name="USE_MATEK_TYPE_OSD_CHIP" value="true" />
<define name="USE_PAL_FOR_OSD_VIDEO" value="true" />
<define name="BARO_ALTITUDE_VAR" value="baro_alt" />
</module>
<module name="mag" type="hmc58xx">
<!-- If you mag somehow does not work, Enable this line or increase the delay if it still does not work -->
<!--<define name="HMC58XX_STARTUP_DELAY" value="1.4"/>-->
<configure name="MAG_HMC58XX_I2C_DEV" value="i2c2"/>
<!-- temporary for debugging external magneto and setup orientation sign and Body to Magneto angles-->
<!-- <define name="MODULE_HMC58XX_SYNC_SEND" value="true"/> -->
<!-- When all calibration is done and everything works, set the below definition to true -->
<define name="MODULE_HMC58XX_UPDATE_AHRS" value="true"/>
<define name="HMC58XX_CHAN_X" value="0"/>
<define name="HMC58XX_CHAN_Y" value="1"/>
<define name="HMC58XX_CHAN_Z" value="2"/>
<define name="HMC58XX_CHAN_X_SIGN" value="+"/>
<define name="HMC58XX_CHAN_Y_SIGN" value="+"/>
<define name="HMC58XX_CHAN_Z_SIGN" value="+"/>
</module>
<module name="uav_recovery">
<define name="USE_PARACHUTE" value="true"/>
<define name="PARACHUTE_SERVO_CHANNEL" value="PARACHUTE" />
<define name="AIRBORNE_WIND_CORRECTION" value="1.0" />
<define name="PARACHUTE_WIND_CORRECTION" value="0.5" />
<define name="PARACHUTE_DESCENT_RATE" value="3.0" />
<define name="PARACHUTE_LINE_LENGTH" value="2.0" />
<define name="FIXED_WIND_DIRECTION_FOR_TESTING" value="330.0" />
<define name="FIXED_WIND_SPEED_FOR_TESTING" value="10.0" />
</module>
</firmware>
<firmware name="setup">
<target name="tunnel" board="matek_f405_wing_v1" />
<target name="usb_tunnel" board="matek_f405_wing_v1">
<configure name="TUNNEL_PORT" value="UART3"/>
</target>
</firmware>
<servos>
<servo name="MOTOR" no="0" min="1100" neutral="1100" max="2000"/>
<servo name="PARACHUTE" no="1" min="950" neutral="950" max="2050"/>
<servo name="AILERON_L" no="2" min="1000" neutral="1500" max="2000"/>
<servo name="ELEVATOR" no="3" min="1000" neutral="1500" max="2000"/>
<servo name="RUDDER" no="4" min="1000" neutral="1500" max="2000"/>
<servo name="AILERON_R" no="5" min="1100" neutral="1100" max="2000"/>
<servo name="CAM_PAN" no="6" min="943" neutral="1520" max="2056"/>
<servo name="CAM_TILT" no="7" min="996" neutral="1221" max="2004"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="YAW" failsafe_value="2000"/>
<axis name="FLAPS" failsafe_value="0"/>
<axis name="CAM_PAN" failsafe_value="0"/>
<axis name="CAM_TILT" failsafe_value="0"/>
<axis name="PARACHUTE" failsafe_value="0"/>
</commands>
<rc_commands>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="YAW" value="@YAW"/>
<set command="FLAPS" value="@AUX1"/>
<set command="PARACHUTE" value="@AUX3"/>
</rc_commands>
<section name="MIXER">
<define name="AILERON_DIFF" value="0.66"/>
<define name="COMBI_SWITCH" value="0.5"/>
</section>
<command_laws>
<let var="roll" value="@ROLL"/>
<let var="flaps" value="@FLAPS"/>
<set servo="MOTOR" value="@THROTTLE"/>
<set servo="PARACHUTE" value="@PARACHUTE"/>
<set servo="AILERON_L" value="$roll + $flaps"/>
<set servo="AILERON_R" value="$roll - $flaps"/>
<set servo="ELEVATOR" value="@PITCH"/>
<set servo="RUDDER" value="@YAW + @ROLL*COMBI_SWITCH"/>
<set servo="CAM_PAN" value="@CAM_PAN"/>
<set servo="CAM_TILT" value="@CAM_TILT"/>
</command_laws>
<!-- EMPTY "auto_rc_commands" block means NO RC RUDDER CONTROL IN AUTO2 AND AUTO1 -->
<auto_rc_commands>
<!--
<set command="YAW" value="@YAW"/>
-->
</auto_rc_commands>
<ap_only_commands>
<copy command="CAM_PAN"/>
<copy command="CAM_TILT"/>
</ap_only_commands>
<!--
Normalized Local magnetic field obtained from http://www.ngdc.noaa.gov/geomag-web/#igrfwmm
Magnetic field intensity (North-East-vertical) / total field strength
H_x = INTENSITY_x / Total Magnetic Field
Total Magnetic Field = (intensityEAST^2+intensityNORTH^2+intensityVERTICAL^2)
Calculated for LAGONISI ATTIKI 23 October 2020
-->
<section name="AHRS" prefix="AHRS_" >
<define name="MAG_DECLINATION" value="5.3" unit="deg" />
<define name="H_X" value="(25243.2/47047.8)" />
<define name="H_Y" value="(2232.5/47047.8)" />
<define name="H_Z" value="(39639.5/47047.8) " />
</section>
<section name="IMU" prefix="IMU_">
<define name="GYRO_P_SIGN" value="1"/>
<define name="GYRO_Q_SIGN" value="-1"/>
<define name="GYRO_R_SIGN" value="-1"/>
<!-- Calibration Neutral -->
<define name="GYRO_P_NEUTRAL" value="0"/>
<define name="GYRO_Q_NEUTRAL" value="0"/>
<define name="GYRO_R_NEUTRAL" value="0"/>
<!-- SENS = 14.375 LSB/(deg/sec) * 57.6 deg/rad = 828 LSB/rad/sec / 12bit FRAC: 4096 / 828 -->
<define name="GYRO_P_SENS" value="4.947" integer="16"/>
<define name="GYRO_Q_SENS" value="4.947" integer="16"/>
<define name="GYRO_R_SENS" value="4.947" integer="16"/>
<define name="GYRO_P_Q" value="0."/>
<define name="GYRO_P_R" value="0"/>
<define name="GYRO_Q_P" value="0."/>
<define name="GYRO_Q_R" value="0."/>
<define name="GYRO_R_P" value="0."/>
<define name="GYRO_R_Q" value="0."/>
<define name="ACCEL_X_SIGN" value="1"/>
<define name="ACCEL_Y_SIGN" value="-1"/>
<define name="ACCEL_Z_SIGN" value="-1"/>
<!-- Found with calibrate.py script -->
<!-- SENS = 2048 LSB/g / 9.81 ms2/g = 208.766564729 LSB/ms2 / 10bit FRAC: 1024 / 208.7665 -->
<define name="ACCEL_X_NEUTRAL" value="63"/>
<define name="ACCEL_Y_NEUTRAL" value="-55"/>
<define name="ACCEL_Z_NEUTRAL" value="-363"/>
<define name="ACCEL_X_SENS" value="4.92325848105" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.91672766019" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.85646198137" integer="16"/>
<define name="MAG_X_SIGN" value="1"/>
<define name="MAG_Y_SIGN" value="1"/>
<define name="MAG_Z_SIGN" value="1"/>
<!-- Found with calibrate.py script -->
<define name="MAG_X_NEUTRAL" value="127"/>
<define name="MAG_Y_NEUTRAL" value="-72"/>
<define name="MAG_Z_NEUTRAL" value="-24"/>
<define name="MAG_X_SENS" value="5.62922068812" integer="16"/>
<define name="MAG_Y_SENS" value="5.80146852641" integer="16"/>
<define name="MAG_Z_SENS" value="6.19489790035" integer="16"/>
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="-90." unit="deg"/> <!-- YAW -->
</section>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="RadOfDeg(0)" unit="radians"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="RadOfDeg(0)" unit="radians"/>
</section>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="RadOfDeg(0)" unit="radians"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="RadOfDeg(0)" unit="radians"/>
</section>
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="50" unit="deg"/>
<define name="MAX_PITCH" value="40" unit="deg"/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<!-- OUTER LOOP PARAMETERS -->
<!-- The below definition affect the throttle percentage shown on the GCS. -->
<define name="POWER_CTL_BAT_NOMINAL" value="12.6" unit="volt"/>
<!-- outer loop ALTITUDE proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.08" unit="(m/s)/m"/>
<!-- outer loop ALTITUDE LIMIT (saturation) -->
<define name="ALTITUDE_MAX_CLIMB" value="3" unit="m/s"/>
<!-- outer loop AIRSPEED proportional gain -->
<define name="AIRSPEED_PGAIN" value="0.2"/>
<!-- INNER LOOP PARAMETERS -->
<!-- The below definitions are used almost always -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.50" unit="%"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.40" unit="%"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.60" unit="%"/>
<define name="THROTTLE_SLEW_LIMITER" value="0.6" unit="s"/>
<define name="AUTO_PITCH_MAX_PITCH" value="RadOfDeg(25)"/>
<define name="AUTO_PITCH_MIN_PITCH" value="RadOfDeg(-20)"/>
<!-- Climb loop (throttle) -->
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_PITCH" value="0.0" unit="rad"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.008" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.0"/>
<define name="AUTO_THROTTLE_DGAIN" value="0.001"/>
<!-- Climb loop (pitch) -->
<!-- magnitude of elevator movement on altitude change -->
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.15" unit="rad/(m/s)"/>
<define name="AUTO_PITCH_PGAIN" value="0.04"/>
<define name="AUTO_PITCH_IGAIN" value="0.01"/>
<define name="AUTO_PITCH_DGAIN" value="0.0"/>
<!-- Loiter and Dash trimming -->
<define name="AUTO_THROTTLE_LOITER_TRIM" value="0" unit="pprz_t"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="0" unit="pprz_t"/>
<define name="PITCH_LOITER_TRIM" value="0" unit="pprz_t"/>
<define name="PITCH_DASH_TRIM" value="0" unit="pprz_t"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="0.8"/>
<define name="COURSE_DGAIN" value="0.8"/>
<define name="COURSE_PRE_BANK_CORRECTION" value="1."/>
<define name="PITCH_MAX_SETPOINT" value="20" unit="deg"/>
<define name="PITCH_MIN_SETPOINT" value="-20" unit="deg"/>
<define name="PITCH_PGAIN" value="8000."/>
<define name="ROLL_MAX_SETPOINT" value="45" unit="deg"/>
<define name="ROLL_SLEW" value="0.1"/>
<define name="ROLL_ATTITUDE_GAIN" value="8000"/>
<define name="ROLL_RATE_GAIN" value="500."/>
<define name="PITCH_OF_ROLL" value="RadOfDeg(1.0)"/>
<define name="ELEVATOR_OF_ROLL" value="1250"/>
<define name="AILERON_OF_THROTTLE" value="0.0"/>
<define name="PITCH_DGAIN" value="6."/>
<define name="PITCH_IGAIN" value="100."/>
</section>
<section name="BAT">
<!-- FOR USE WITH A CURRENT SENSOR -->
<define name="BAT_CAPACITY" value="5000" unit="mah"/>
<define name="LOITER_BAT_CURRENT" value="10" unit="Amps"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="7.5" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="9.0" unit="V"/>
<define name="LOW_BAT_LEVEL" value="10.0" unit="V"/>
<define name="MAX_BAT_LEVEL" value="12.6" unit="V"/>
</section>
<section name="MISC">
<define name="CLIMB_AIRSPEED" value="15." unit="m/s"/>
<define name="GLIDE_AIRSPEED" value="14." unit="m/s"/>
<define name="RACE_AIRSPEED" value="25." unit="m/s"/>
<define name="STALL_AIRSPEED" value="10." unit="m/s"/>
<define name="AIRSPEED_SETPOINT_SLEW" value="1" unit="s"/>
<define name="NOMINAL_AIRSPEED" value="16" unit="m/s"/>
<define name="MINIMUM_AIRSPEED" value="14." unit="m/s"/>
<define name="MAXIMUM_AIRSPEED" value="26." unit="m/s"/>
<define name="CARROT" value="3." unit="s"/>
<define name="GLIDE_RATIO" value="7."/>
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="CONTROL_FREQUENCY" value="60" unit="Hz"/>
<define name="XBEE_INIT" value="\"ATPL2\rATRN1\rATTT80\r\""/>
<define name="NO_XBEE_API_INIT" value="true"/>
<define name="TRIGGER_DELAY" value="1."/>
<define name="DEFAULT_CIRCLE_RADIUS" value="60."/>
<!-- MIN_CIRCLE_RADIUS used and needed for spiral navigation function and panic autolanding turns-->
<define name="MIN_CIRCLE_RADIUS" value="40."/>
<!--UNLOCKED_HOME_MODE if set to true means that HOME mode does not get stuck.
If not set before when you would enter home mode you had to flip a bit via the GCS to get out. -->
<define name="UNLOCKED_HOME_MODE" value="true"/>
<!-- RC_LOST_MODE means that if your RC Transmitter signal is not received anymore in the autopilot, e.g. you switch it off
or fly a long range mission you define the wanted mode behaviour here.
If you do not define it, it defaults to flying to the flightplan HOME -->
<define name="RC_LOST_MODE" value="AP_MODE_AUTO2"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="40"/> <!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/> <!-- Altitude Error to Blend Aggressive to Regular Climb Modes NOT ZERO!!-->
<define name="CLIMB_THROTTLE" value="1.0"/> <!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="RadOfDeg(20)"/> <!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/> <!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="RadOfDeg(-20)"/> <!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/> <!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<!--
<section name="NAV">
<define name="NAV_PITCH" value="0."/>
<define name="NAV_GLIDE_PITCH_TRIM" value="0"/>
<define name="NAV_GROUND_SPEED_PGAIN" value="0.015"/>
<define name="NAV_FOLLOW_PGAIN" value="-0.05"/>
</section>
<section name="GLS_APPROACH" prefix="APP_">
<define name="ANGLE" value="5"/>
<define name="INTERCEPT_AF_TOD" value="10"/>
<define name="TARGET_SPEED" value="13"/>
</section>
-->
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="1" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0.8" unit="%"/>
<define name="DEFAULT_ROLL" value="10" unit="deg"/>
<define name="DEFAULT_PITCH" value="10" unit="deg"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
<define name="KILL_MODE_DISTANCE" value="(MAX_DIST_FROM_HOME*1.5)"/>
</section>
<section name="DATALINK" prefix="DATALINK_">
<define name="DEVICE_TYPE" value="PPRZ"/>
<define name="DEVICE_ADDRESS" value="...."/>
</section>
<section name="GCS">
<define name="AC_ICON" value="flyingwing"/>
<define name="ALT_SHIFT_PLUS_PLUS" value="100"/>
<define name="ALT_SHIFT_PLUS" value="10"/>
<define name="ALT_SHIFT_MINUS" value="-10"/>
<define name="SPEECH_NAME" value="Easyglider"/>
</section>
<section name="SIMU">
<define name="WEIGHT" value ="1."/>
<define name="YAW_RESPONSE_FACTOR" value =".9"/>
<define name="PITCH_RESPONSE_FACTOR" value ="1.5"/>
<define name="ROLL_RESPONSE_FACTOR" value ="20."/>
</section>
</airframe>
@@ -1,11 +1,11 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<!--
Apogee test board
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Apogee">
<description>
Apogee test board
</description>
<firmware name="fixedwing">
<configure name="RTOS_DEBUG" value="0"/>
@@ -19,8 +19,6 @@
<!-- Communication -->
<module name="telemetry" type="xbee_api"/>
<module name="tlsf"/>
<module name="pprzlog"/>
<module name="logger" type="sd_chibios"/>
<module name="flight_recorder"/>
@@ -38,16 +36,6 @@
</module>
<module name="sys_mon"/>
<!--module name="spi_master"/-->
<!-- <module name="mcp355x"> -->
<!-- <define name="USE_SPI1"/> -->
<!-- </module> -->
<!--module name="extra_dl">
<configure name="EXTRA_DL_PORT" value="UART6"/>
<configure name="EXTRA_DL_BAUD" value="B57600"/>
</module>
<module name="meteo_france_DAQ"/-->
</firmware>
<firmware name="test_chibios">
@@ -56,7 +44,7 @@
<target name="test_sys_gpio" board="apogee_1.0_chibios"/>
</firmware>
<!-- commands section -->
<!-- commands section -->
<servos>
<servo name="MOTOR" no="0" min="1040" neutral="1040" max="2000"/>
<servo name="AILEVON_LEFT" no="1" min="1900" neutral="1543" max="1100"/>
@@ -1,17 +1,13 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<!--
Chimera test board
Mako (http://www.readymaderc.com)
Apogee 1.0
XBEE modem
UBX GPS / HMC58XX mag (drotek)
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Chimera">
<description>
Chimera test board
</description>
<firmware name="fixedwing">
<configure name="RTOS_DEBUG" value="1"/>
<configure name="RTOS_DEBUG" value="0"/>
<target name="ap" board="chimera_1.0">
<module name="radio_control" type="sbus"/>
@@ -39,37 +35,7 @@ UBX GPS / HMC58XX mag (drotek)
</module>
<module name="sys_mon"/>
<!--module name="pwm_meas"/-->
<!--module name="spi_master"/-->
<!--module name="meteo_stick">
<configure name="MS_SPI_DEV" value="SPI1"/>
<configure name="MS_PRESSURE_SLAVE_IDX" value="0"/>
<configure name="MS_DIFF_PRESSURE_SLAVE_IDX" value="3"/>
<configure name="MS_TEMPERATURE_SLAVE_IDX" value="2"/>
<configure name="MS_EEPROM_SLAVE_IDX" value="1"/>
<configure name="MS_HUMIDITY_PWM_INPUT" value="PWM_INPUT1"/>
<define name="USE_MS_TEMPERATURE" value="FALSE"/>
</module-->
<!--module name="AOA_pwm">
<configure name="AOA_PWM_CHANNEL" value="PWM_INPUT2"/>
</module-->
<module name="tlsf"/>
<module name="pprzlog"/>
<module name="logger" type="sd_chibios"/>
<module name="flight_recorder"/>
<!-- <module name="mcp355x"> -->
<!-- <define name="USE_SPI1"/> -->
<!-- </module> -->
<!--module name="extra_dl">
<configure name="EXTRA_DL_PORT" value="UART6"/>
<configure name="EXTRA_DL_BAUD" value="B57600"/>
</module>
<module name="meteo_france_DAQ"/-->
</firmware>
<firmware name="test_chibios">
@@ -78,12 +44,7 @@ UBX GPS / HMC58XX mag (drotek)
<target name="test_sys_gpio" board="chimera_1.0"/>
</firmware>
<section name="METEO_STICK">
<define name="LOG_MS" value="TRUE"/>
<define name="SEND_MS" value="TRUE"/>
</section>
<!-- commands section -->
<!-- commands section -->
<servos>
<servo name="MOTOR" no="0" min="1000" neutral="1000" max="1800"/>
<servo name="AILEVON_LEFT" no="1" min="1000" neutral="1500" max="2000"/>
@@ -0,0 +1,90 @@
<conf>
<aircraft
name="APOGEE"
ac_id="3"
airframe="airframes/test_boards/apogee.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/fixedwing_flight_recorder.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_dcm.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_basic_fw.xml modules/imu_common.xml modules/logger_sd_chibios.xml modules/nav_basic_fw.xml modules/power_switch.xml modules/stabilization_attitude_fw.xml"
gui_color="blue"
/>
<aircraft
name="CHIMERA"
ac_id="23"
airframe="airframes/test_boards/chimera.xml"
radio="radios/T10CG_SBUS.xml"
telemetry="telemetry/fixedwing_flight_recorder.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/logger_sd_chibios.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="#fdeb90060000"
/>
<aircraft
name="CRAZYFLIE"
ac_id="5"
airframe="airframes/test_boards/crazyflie_2.1.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/ENAC/crazyflie_multi_ranger_test.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_madgwick.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_extended.xml modules/nav_rotorcraft.xml modules/opticflow_pmw3901.xml modules/range_forcefield.xml modules/sonar_vl53l1x.xml modules/stabilization_int_quat.xml"
gui_color="blue"
/>
<aircraft
name="MATEK_F765"
ac_id="7"
airframe="airframes/test_boards/matek_f765_wing.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_fixedwing.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="blue"
/>
<aircraft
name="NUCLEO"
ac_id="4"
airframe="airframes/test_boards/nucleo144.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_fixedwing.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_cmpl_quat.xml modules/ahrs_float_dcm.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="blue"
/>
<aircraft
name="TAWAKI"
ac_id="1"
airframe="airframes/test_boards/tawaki.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/fixedwing_flight_recorder.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_cmpl_quat.xml modules/ahrs_float_dcm.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/ins_float_invariant.xml modules/logger_sd_chibios.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="blue"
/>
<aircraft
name="MATEK_H743"
ac_id="9"
airframe="airframes/test_boards/matek_h743_slim.xml"
radio="radios/FrSky_X-Lite.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/stabilization_int_quat.xml"
gui_color="red"
/>
<aircraft
name="DISCO"
ac_id="2"
airframe="airframes/test_boards/disco.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_fixedwing.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="blue"
/>
</conf>
@@ -1,9 +1,11 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<!-- Crazyflie 2.1 -->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Crazyflie2">
<description>
Crazyflie 2.1
</description>
<firmware name="rotorcraft">
<configure name="PERIODIC_FREQUENCY" value="1000"/>
<configure name="RTOS_DEBUG" value="0"/>
@@ -1,11 +1,11 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<!--
Parrot Disco
-->
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Disco">
<description>
Parrot Disco
</description>
<firmware name="fixedwing">
<configure name="USE_MAGNETOMETER" value="TRUE"/>
@@ -1,4 +1,4 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Kakute_F7">
@@ -186,10 +186,6 @@
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<!-- control effectiveness -->
<!--define name="G1_P" value="0.018284"/>
<define name="G1_Q" value="0.017385"/>
<define name="G1_R" value="0.0024217"/>
<define name="G2_R" value="-0.30628"/-->
<define name="G1_P" value="0.025483"/>
<define name="G1_Q" value="0.022144"/>
<define name="G1_R" value="0.0023438"/>
@@ -1,10 +1,9 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Matek F765-WING Test File">
<firmware name="fixedwing">
<configure name="RTOS_DEBUG" value="0"/>
<!--configure name="CH_OPT" value="0 -g -ggdb3"/-->
<target name="ap" board="matek_f765_wing">
<configure name="PERIODIC_FREQUENCY" value="100"/>
@@ -35,11 +34,6 @@
<module name="control" type="new"/>
<module name="navigation"/>
<!--configure name="SDLOG_USE_RTC" value="FALSE"/-->
<!--module name="tlsf"/>
<module name="pprzlog"/>
<module name="logger" type="sd_chibios"/>
<module name="flight_recorder"/-->
</firmware>
<!-- commands section -->
@@ -189,10 +189,6 @@
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<!-- control effectiveness -->
<!--define name="G1_P" value="0.018284"/>
<define name="G1_Q" value="0.017385"/>
<define name="G1_R" value="0.0024217"/>
<define name="G2_R" value="-0.30628"/-->
<define name="G1_P" value="0.025483"/>
<define name="G1_Q" value="0.022144"/>
<define name="G1_R" value="0.0023438"/>
@@ -1,10 +1,8 @@
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Tawaki Test File">
<firmware name="fixedwing">
<!--configure name="RTOS_DEBUG" value="1"/-->
<!--configure name="CH_OPT" value="0 -g -ggdb3"/-->
<define name="SERVO_HZ" type="60"/>
<target name="ap" board="tawaki_1.0">
@@ -56,7 +54,6 @@
<define name="AIR_DATA_CALC_AMSL_BARO" value="TRUE"/>
</module>
<!--configure name="SDLOG_USE_RTC" value="FALSE"/-->
<module name="flight_recorder"/>
</firmware>
+1 -1
View File
@@ -46,7 +46,7 @@
<aircraft
name="apogee_chibios"
ac_id="30"
airframe="airframes/ENAC/fixed-wing/apogee.xml"
airframe="airframes/test_boards/apogee.xml"
radio="radios/T10CG_SBUS.xml"
telemetry="telemetry/fixedwing_flight_recorder.xml"
flight_plan="flight_plans/basic.xml"
+1 -1
View File
@@ -167,7 +167,7 @@
<aircraft
name="apogee_chibios"
ac_id="30"
airframe="airframes/ENAC/fixed-wing/apogee.xml"
airframe="airframes/test_boards/apogee.xml"
radio="radios/T10CG_SBUS.xml"
telemetry="telemetry/fixedwing_flight_recorder.xml"
flight_plan="flight_plans/basic.xml"
+16
View File
@@ -0,0 +1,16 @@
<!DOCTYPE airframe SYSTEM "../airframes/airframe.dtd">
<airframe>
<description>
Germany / Aachen
50.9097° N, 6.22823° W
Date Declination (+ E|-W) Inclination (+D|-U) Horizontal Intensity North Comp (+N|-S) East Comp (+E|-W) Vertical Comp (+D|-U) Total Field
2023-08-17 -1.3339° 65.7508° 19,995.7 nT 19,990.2 nT -465.5 nT 44,390.4 nT 48,686.0 nT
</description>
<section name="MAG_MODEL" prefix="INS_">
<define name="H_X" value="0.410594"/>
<define name="H_Y" value="-0.00956127"/>
<define name="H_Z" value="0.911769"/>
</section>
</airframe>