mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-05 15:30:08 +08:00
sdlog
This commit is contained in:
@@ -0,0 +1,284 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
<!--
|
||||
|
||||
AULA_Funjet (based on ENAC/fixedwing/apogee.xml) modified
|
||||
2016-01-07 a.philipp@geo.uni-augsburg.de sdlog
|
||||
|
||||
-->
|
||||
|
||||
<airframe name="Apogee_SUMO">
|
||||
|
||||
<modules>
|
||||
<!--load name="sys_mon.xml"/-->
|
||||
<!-- <load name="mcp355x.xml"> -->
|
||||
<!-- <define name="USE_SPI1"/> -->
|
||||
<!-- </load> -->
|
||||
<!--load name="extra_dl.xml">
|
||||
<configure name="EXTRA_DL_PORT" value="UART6"/>
|
||||
<configure name="EXTRA_DL_BAUD" value="B57600"/>
|
||||
</load>
|
||||
<load name="meteo_france_DAQ.xml"/-->
|
||||
<load name="flight_recorder.xml"/>
|
||||
|
||||
<!-- Sensors -->
|
||||
<load name="air_data.xml">
|
||||
<define name="AIR_DATA_BARO_ABS_ID" />
|
||||
<define name="AIR_DATA_CALC_AMSL_BARO" value="TRUE"/>
|
||||
</load>
|
||||
<load name="gps_ubx_ucenter.xml"/>
|
||||
<load name="humid_sht.xml">
|
||||
<define name="SHT_DAT_GPIO" value="GPIOB,GPIO1"/>
|
||||
<define name="SHT_SCK_GPIO" value="GPIOC,GPIO5"/>
|
||||
<define name="SHT_SDLOG" value="TRUE"/>
|
||||
</load>
|
||||
<load name="airspeed_ets.xml">
|
||||
<define name="AIRSPEED_ETS_SYNC_SEND"/>
|
||||
<define name="USE_I2C2"/>
|
||||
<configure name="AIRSPEED_ETS_I2C_DEV" value="i2c2"/>
|
||||
<define name="AIRSPEED_ETS_SDLOG" value="TRUE"/>
|
||||
</load>
|
||||
<load name="temp_temod.xml">
|
||||
<configure name="TEMOD_I2C_DEV" value="i2c1"/>
|
||||
<define name="TEMP_TEMOD_SDLOG" value="TRUE"/>
|
||||
</load>
|
||||
|
||||
<load name="nav_line_border.xml"/>
|
||||
<load name="nav_line.xml"/>
|
||||
<load name="nav_survey_poly_osam.xml">
|
||||
<define name="POLY_OSAM_POLYGONSIZE" value="10" />
|
||||
<define name="POLY_OSAM_ENTRY_RADIUS" value="0" />
|
||||
<define name="POLY_OSAM_DEFAULT_SIZE" value="5" />
|
||||
<define name="POLY_OSAM_DEFAULT_SWEEP" value="100" />
|
||||
<define name="POLY_OSAM_MIN_RADIUS" value="30" />
|
||||
<define name="POLY_OSAM_FIRST_SWEEP_DISTANCE" value="4" />
|
||||
</load>
|
||||
</modules>
|
||||
|
||||
<firmware name="fixedwing">
|
||||
<define name="USE_INS_NAV_INIT" value="TRUE" /> <!-- initialize ground reference with flight plan coordinates, instead of leaving it uninitialized (to be set
|
||||
from the GPS fix with NavSetGroundReferenceHere) -->
|
||||
<target name="ap" board="apogee_1.0_chibios">
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
<configure name="PERIODIC_FREQUENCY" value="100"/>
|
||||
<define name="APOGEE_BARO_SDLOG" value="TRUE"/>
|
||||
</target>
|
||||
<target name="sim" board="pc">
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
</target>
|
||||
|
||||
<define name="USE_I2C1"/>
|
||||
<define name="USE_I2C2"/>
|
||||
<!--define name="AGR_CLIMB"/-->
|
||||
<!--define name="LOITER_TRIM"/-->
|
||||
<!--define name="PITCH_TRIM"/-->
|
||||
|
||||
<!-- Communication -->
|
||||
<subsystem name="telemetry" type="transparent">
|
||||
<configure name="MODEM_BAUD" value="B57600"/>
|
||||
<configure name="MODEM_PORT" value="UART1"/>
|
||||
<!-- <define name="TELEMETRY_MODE_FBW" value="2"/> -->
|
||||
</subsystem>
|
||||
|
||||
<!-- <subsystem name="navigation" type="extra"/> -->
|
||||
|
||||
<subsystem name="sdlog"/>
|
||||
|
||||
<!-- Actuators are automatically chosen according to board-->
|
||||
<subsystem name="imu" type="apogee_mpu9150"/>
|
||||
<!-- <subsystem name="imu" type="apogee"/> -->
|
||||
<subsystem name="ahrs" type="float_dcm"/>
|
||||
|
||||
<subsystem name="ins" type="alt_float">
|
||||
<define name="USE_BAROMETER" value="TRUE"/>
|
||||
</subsystem>
|
||||
|
||||
<subsystem name="control"/>
|
||||
<subsystem name="navigation"/>
|
||||
<!-- Sensors -->
|
||||
<subsystem name="gps" type="ublox"/>
|
||||
|
||||
<!--subsystem name="spi_master"/-->
|
||||
</firmware>
|
||||
|
||||
<!-- commands section -->
|
||||
<servos>
|
||||
<servo name="MOTOR" no="0" min="1040" neutral="1040" max="2000"/>
|
||||
<servo name="AILEVON_LEFT" no="1" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="AILEVON_RIGHT" no="2" min="1000" neutral="1500" max="2000"/>
|
||||
</servos>
|
||||
|
||||
<commands>
|
||||
<axis name="THROTTLE" failsafe_value="0"/>
|
||||
<axis name="ROLL" failsafe_value="0"/>
|
||||
<axis name="PITCH" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
</rc_commands>
|
||||
|
||||
<section name="MIXER">
|
||||
<define name="AILEVON_AILERON_RATE" value="0.75"/>
|
||||
<define name="AILEVON_ELEVATOR_RATE" value="0.75"/>
|
||||
</section>
|
||||
|
||||
<command_laws>
|
||||
<let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/>
|
||||
<let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/>
|
||||
<set servo="MOTOR" value="@THROTTLE"/>
|
||||
<set servo="AILEVON_LEFT" value="$elevator - $aileron"/>
|
||||
<set servo="AILEVON_RIGHT" value="$elevator + $aileron"/>
|
||||
</command_laws>
|
||||
|
||||
<section name="AUTO1" prefix="AUTO1_">
|
||||
<define name="MAX_ROLL" value="80" unit="deg" />
|
||||
<define name="MAX_PITCH" value="60" unit="deg" />
|
||||
</section>
|
||||
|
||||
<section name="GCS">
|
||||
<define name="SPEECH_NAME" value="Funjet 1"/>
|
||||
<define name="AC_ICON" value="flyingwing"/>
|
||||
</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 "/>
|
||||
|
||||
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="0" unit="deg"/> <!--roll-left-->
|
||||
<define name="BODY_TO_IMU_THETA" value="0" unit="deg"/> <!--pitch-down-->
|
||||
<define name="BODY_TO_IMU_PSI" 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"/>
|
||||
</section>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="ROLL_NEUTRAL_DEFAULT" value="0.0" unit="deg"/>
|
||||
<define name="PITCH_NEUTRAL_DEFAULT" value="0.0" unit="deg"/>
|
||||
</section>
|
||||
|
||||
<section name="BAT">
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
|
||||
<define name="MilliAmpereOfAdc(_adc)" value="(_adc-158)*16.5698"/>
|
||||
</section>
|
||||
|
||||
<section name="MISC">
|
||||
<define name="NOMINAL_AIRSPEED" value="10." unit="m/s"/>
|
||||
<define name="CARROT" value="5." unit="s"/>
|
||||
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
|
||||
|
||||
<define name="TRIGGER_DELAY" value="1."/>
|
||||
<define name="DEFAULT_CIRCLE_RADIUS" value="40."/>
|
||||
|
||||
<define name="UNLOCKED_HOME_MODE" value="TRUE"/>
|
||||
</section>
|
||||
|
||||
<section name="VERTICAL CONTROL" prefix="V_CTL_">
|
||||
<!--define name="POWER_CTL_BAT_NOMINAL" value="11.1" unit="volt"/-->
|
||||
<!-- outer loop proportional gain -->
|
||||
<define name="ALTITUDE_PGAIN" value="0.18"/> <!-- 0.024 -->
|
||||
<!-- outer loop saturation -->
|
||||
<define name="ALTITUDE_MAX_CLIMB" value="5."/>
|
||||
|
||||
<!-- Cruise throttle + limits -->
|
||||
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.3"/>
|
||||
|
||||
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.05"/>
|
||||
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.85"/>
|
||||
<define name="AUTO_PITCH_MAX_PITCH" value="RadOfDeg(45.)"/> <!-- was 20-->
|
||||
<define name="AUTO_PITCH_MIN_PITCH" value="-RadOfDeg(45.)"/> <!-- was 20-->
|
||||
|
||||
<!-- Climb loop (throttle) -->
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
|
||||
<!--automatic increase to the throttle position for climb error.
|
||||
If you have a climb error calculated at 1 m/s, with 0.15 you will increase the throttle
|
||||
automatically(open loop) by 15%. -->
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.002"/> <!-- 0.005 -->
|
||||
<define name="AUTO_THROTTLE_DGAIN" value="0.0"/> <!-- 0.005 -->
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.004"/> <!-- 0.005 -->
|
||||
|
||||
<!-- Climb loop (pitch) -->
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.03"/>
|
||||
<!-- increases the pitch setpoint for a climb_error.
|
||||
If your climb rate error is 1 m/s you will command a pitch of 0.35 radians. -->
|
||||
<define name="AUTO_PITCH_PGAIN" value="0.04"/> <!-- 0.03 -->
|
||||
<define name="AUTO_PITCH_DGAIN" value="0.04"/> <!-- 0.03 -->
|
||||
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
|
||||
|
||||
<define name="AUTO_AIRSPEED_SETPOINT" value="13."/>
|
||||
<define name="AUTO_AIRSPEED_THROTTLE_PGAIN" value="0.1"/>
|
||||
<define name="AUTO_AIRSPEED_THROTTLE_DGAIN" value="0.12"/>
|
||||
<define name="AUTO_AIRSPEED_THROTTLE_IGAIN" value="0.0"/>
|
||||
<define name="AUTO_AIRSPEED_PITCH_PGAIN" value="0.06"/>
|
||||
<define name="AUTO_AIRSPEED_PITCH_DGAIN" value="0.0"/>
|
||||
<define name="AUTO_AIRSPEED_PITCH_IGAIN" value="0.042"/>
|
||||
<define name="AIRSPEED_MAX" value="30"/>
|
||||
<define name="AIRSPEED_MIN" value="10"/>
|
||||
|
||||
<!-- groundspeed control -->
|
||||
<define name="AUTO_GROUNDSPEED_SETPOINT" value="12."/>
|
||||
<define name="AUTO_GROUNDSPEED_PGAIN" value="1."/>
|
||||
<define name="AUTO_GROUNDSPEED_IGAIN" value="0."/>
|
||||
|
||||
<!-- pitch trim --> <!-- 5 deg -->
|
||||
<define name="PITCH_LOITER_TRIM" value="RadOfDeg(0.)"/>
|
||||
<define name="PITCH_DASH_TRIM" value="RadOfDeg(-0.)"/>
|
||||
|
||||
<define name="THROTTLE_SLEW" value="0.1"/>
|
||||
</section>
|
||||
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="0.7"/>
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.8" unit="radians"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
|
||||
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="8800."/>
|
||||
<define name="ROLL_RATE_GAIN" value="500."/>
|
||||
<define name="ROLL_IGAIN" value="150."/>
|
||||
<define name="ROLL_KFFA" value="0"/>
|
||||
<define name="ROLL_KFFD" value="0"/>
|
||||
|
||||
<define name="PITCH_PGAIN" value="14000."/>
|
||||
<define name="PITCH_DGAIN" value="0."/>
|
||||
<define name="PITCH_IGAIN" value="250."/>
|
||||
<define name="PITCH_KFFA" value="0."/>
|
||||
<define name="PITCH_KFFD" value="0."/>
|
||||
|
||||
<define name="PITCH_OF_ROLL" value="RadOfDeg(0.0)"/>
|
||||
<define name="AILERON_OF_THROTTLE" value="0.0"/>
|
||||
<define name="ELEVATOR_OF_ROLL" value="1400"/>
|
||||
</section>
|
||||
|
||||
<section name="NAV">
|
||||
<define name="NAV_GLIDE_PITCH_TRIM" value="0"/>
|
||||
</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="0.3" unit="rad"/>
|
||||
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
|
||||
<define name="HOME_RADIUS" value="60" unit="m"/>
|
||||
</section>
|
||||
|
||||
<section name="SIMU">
|
||||
<!--define name="ROLL_RESPONSE_FACTOR" value="10"/>
|
||||
<define name="MAX_ROLL_DOT" value="20" unit="rad/s"/-->
|
||||
</section>
|
||||
|
||||
</airframe>
|
||||
@@ -0,0 +1,67 @@
|
||||
<!DOCTYPE flight_plan SYSTEM "../flight_plan.dtd">
|
||||
<flight_plan alt="650" ground_alt="600" lat0="47.830809" lon0="11.061623" max_dist_from_home="500" name="ScaleX_" security_height="30">
|
||||
|
||||
<header>
|
||||
#include "subsystems/datalink/datalink.h"
|
||||
</header>
|
||||
|
||||
<waypoints>
|
||||
<waypoint name="HOME" x="0" y="0" height="50"/>
|
||||
<waypoint name="Profil" x="0" y="0"/>
|
||||
<waypoint name="Anflug" x="-150" y="0" height="30"/>
|
||||
</waypoints>
|
||||
|
||||
<blocks>
|
||||
|
||||
<block name="Waiting for GPS fix">
|
||||
<!-- <set value="1" var="kill_throttle"/> -->
|
||||
<while cond="!GpsFixValid()"/>
|
||||
</block>
|
||||
|
||||
<block name="Geo init">
|
||||
<while cond="LessThan(NavBlockTime(), 7)"/>
|
||||
<!-- <call fun="NavSetGroundReferenceHere()"/> -->
|
||||
<call fun="NavSetAltitudeReferenceHere()"/>
|
||||
<set var="air_data.calc_qnh_once" value="TRUE"/>
|
||||
</block>
|
||||
|
||||
<block name="Waiting for Remote Control">
|
||||
<while cond="RCLost()"/>
|
||||
</block>
|
||||
|
||||
<block name="Unlock throttle">
|
||||
<set value="1" var="launch"/>
|
||||
<set value="0" var="kill_throttle"/>
|
||||
<set value="0" var="autopilot_flight_time"/>
|
||||
</block>
|
||||
|
||||
<block name="Climb">
|
||||
<circle wp="Profil" pitch="45" radius="-70" throttle="0.80" until="GetPosAlt() > ground_alt + 305" vmode="throttle"/>
|
||||
<deroute block="Descent"/>
|
||||
</block>
|
||||
|
||||
<block name="Descent">
|
||||
<circle wp="Profil" climb="-4" radius="-70" throttle="0.40" pitch="auto" until="ground_alt+25 > GetPosAlt()" vmode="climb"/>
|
||||
<exception cond="GetPosAlt() > ground_alt + 305 + 50 " deroute="Down"/>
|
||||
<deroute block="Landing"/>
|
||||
</block>
|
||||
|
||||
<block name="Down">
|
||||
<circle wp="Profil" radius="-70" until="ground_alt+35 > GetPosAlt()" vmode="alt" alt="ground_alt+40"/>
|
||||
<deroute block="Landing"/>
|
||||
</block>
|
||||
|
||||
<block name="Landing">
|
||||
<while cond="TRUE">
|
||||
<go wp="Anflug" approaching_time="1"/>
|
||||
<go from="Anflug" hmode="route" vmode="glide" wp="HOME" alt="ground_alt+15" approaching_time="1"/>
|
||||
</while>
|
||||
<deroute block="Standby"/>
|
||||
</block>
|
||||
|
||||
<block name="Standby" group="home" key="Ctrl+a" strip_button="Standby" strip_icon="home.png">
|
||||
<circle radius="-70" wp="HOME"/>
|
||||
</block>
|
||||
|
||||
</blocks>
|
||||
</flight_plan>
|
||||
@@ -125,7 +125,7 @@ void apogee_baro_event(void)
|
||||
#if APOGEE_BARO_SDLOG
|
||||
if (pprzLogFile != -1) {
|
||||
if (!log_apogee_baro_started) {
|
||||
sdLogWriteLog(pprzLogFile, "APOGEE_BARO: Pres(Pa) GPS_fix TOW(ms) Week Lat(1e7deg) Lon(1e7deg) HMSL(mm) gpseed(cm/s) course(1e7deg) climb(cm/s)\n");
|
||||
sdLogWriteLog(pprzLogFile, "APOGEE_BARO: Pres(Pa) Temp/degC) GPS_fix TOW(ms) Week Lat(1e7deg) Lon(1e7deg) HMSL(mm) gpseed(cm/s) course(1e7deg) climb(cm/s)\n");
|
||||
log_apogee_baro_started = TRUE;
|
||||
}
|
||||
if (count_sd_writes == 0) {
|
||||
|
||||
Reference in New Issue
Block a user