mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-09 22:49:53 +08:00
Easystar glider with the MATEK F405 WING
Airframe file of the Easystar powered glider with the Matek F405 Wing autopilot.
This commit is contained in:
@@ -0,0 +1,348 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
<airframe name="Easystar Matek">
|
||||
<description>
|
||||
Easystar glider 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"/>
|
||||
<define name="MAGNETOMETER_AVAILABLE" value="0" />
|
||||
<define name="BAROMETER_AVAILABLE" value="0" />
|
||||
|
||||
<module name="telemetry" type="transparent">
|
||||
<configure name="MODEM_BAUD" value="B57600"/>
|
||||
<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="0"/>
|
||||
<define name="AHRS_USE_GPS_HEADING" value="1"/>
|
||||
<define name="AHRS_GRAVITY_UPDATE_COORDINATED_TURN"/>
|
||||
</module>
|
||||
<module name="spi" type="master"/>
|
||||
<module name="nav_line.xml"/>
|
||||
<module name="gps_ubx_ucenter.xml"/>
|
||||
<module name="baro_bmp280_i2c.xml">
|
||||
<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.xml">
|
||||
<configure name="MAX7456_SPI_DEV" value="spi2" />
|
||||
<configure name="MAX7456_SLAVE_IDX" value="SPI_SLAVE1" />
|
||||
<define name="USE_MATEK_TYPE_OSD_CHIP" value="1" />
|
||||
<define name="USE_PAL_FOR_OSD_VIDEO" value="1" />
|
||||
<define name="OSD_USE_BARO_ALTITUDE" value="0" />
|
||||
<define name="BARO_ALTITUDE_VAR" value="baro_alt" /> <!-- if non defined the default var is ''baro_alt'' -->
|
||||
<define name="OSD_USE_MAG_COMPASS" value="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="AILERON" no="2" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="ELEVATOR" no="3" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="RUDDER" no="4" min="1000" neutral="1500" max="2000"/>
|
||||
<servo name="CAM_PAN" no="5" min="943" neutral="1520" max="2056"/>
|
||||
<servo name="CAM_TILT" no="6" min="996" neutral="1221" max="2004"/>
|
||||
<servo name="PARACHUTE" no="7" min="950" neutral="950" max="2050"/>
|
||||
</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="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="PARACHUTE" value="@PARACHUTE"/>
|
||||
</rc_commands>
|
||||
|
||||
<section name="MIXER">
|
||||
<define name="AILERON_DIFF" value="0.66"/>
|
||||
<define name="COMBI_SWITCH" value="0.3"/>
|
||||
</section>
|
||||
|
||||
<command_laws>
|
||||
<set servo="MOTOR" value="@THROTTLE"/>
|
||||
<set servo="AILERON" value="@ROLL"/>
|
||||
<set servo="ELEVATOR" value="@PITCH"/>
|
||||
<set servo="RUDDER" value="@YAW"/>
|
||||
<set servo="CAM_PAN" value="@CAM_PAN"/>
|
||||
<set servo="CAM_TILT" value="@CAM_TILT"/>
|
||||
<set servo="PARACHUTE" value="@PARACHUTE"/>
|
||||
</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 21 AUGUST 2020
|
||||
-->
|
||||
<section name="AHRS" prefix="AHRS_" >
|
||||
<define name="MAG_DECLINATION" value="5.3" />
|
||||
<define name="H_X" value="(25242.1/47035.5)" />
|
||||
<define name="H_Y" value="(2224.0/47035.5)" />
|
||||
<define name="H_Z" value="(39626.2/47035.5) " />
|
||||
</section>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
<!-- 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="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="MAG_X_SIGN" value="1"/>
|
||||
<define name="MAG_Y_SIGN" value="1"/>
|
||||
<define name="MAG_Z_SIGN" value="1"/>
|
||||
|
||||
<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="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.07" 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="CATASTROPHIC_BAT_LEVEL" value="7.5" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="8.5" unit="V"/>
|
||||
<define name="LOW_BAT_LEVEL" value="9.3" 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="DART"/>
|
||||
</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>
|
||||
Reference in New Issue
Block a user