mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-29 02:38:07 +08:00
Merge remote-tracking branch 'paparazzi/master' into actuators
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
||||
# ignore html dir for github pages
|
||||
/doc/html
|
||||
/doc/generated
|
||||
|
||||
*.so
|
||||
*.[oa]
|
||||
|
||||
+1
-4
@@ -1,9 +1,6 @@
|
||||
[submodule "sw/ext/libopencm3"]
|
||||
path = sw/ext/libopencm3
|
||||
url = git://libopencm3.git.sourceforge.net/gitroot/libopencm3/libopencm3
|
||||
[submodule "sw/ext/stm32loader"]
|
||||
path = sw/ext/stm32loader
|
||||
url = https://github.com/jsnyder/stm32loader.git
|
||||
url = https://github.com/libopencm3/libopencm3.git
|
||||
[submodule "sw/ext/luftboot"]
|
||||
path = sw/ext/luftboot
|
||||
url = https://github.com/paparazzi/luftboot.git
|
||||
|
||||
@@ -51,7 +51,7 @@ PROJECT_LOGO = data/pictures/penguin_icon.png
|
||||
# If a relative path is entered, it will be relative to the location
|
||||
# where doxygen was started. If left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = doc/html
|
||||
OUTPUT_DIRECTORY = doc/generated
|
||||
|
||||
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
|
||||
# 4096 sub-directories (in 2 levels) under the output directory of each output
|
||||
@@ -828,7 +828,7 @@ GENERATE_HTML = YES
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||
# put in front of it. If left blank `html' will be used as the default path.
|
||||
|
||||
HTML_OUTPUT = docs
|
||||
HTML_OUTPUT =
|
||||
|
||||
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
|
||||
# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
|
||||
|
||||
@@ -210,10 +210,6 @@ upload_ms ms.upload: ms
|
||||
#####
|
||||
#####
|
||||
|
||||
doxygen:
|
||||
mkdir -p dox
|
||||
doxygen Doxyfile
|
||||
|
||||
run_sitl :
|
||||
$(PAPARAZZI_HOME)/var/$(AIRCRAFT)/sim/simsitl
|
||||
|
||||
@@ -282,4 +278,4 @@ run_tests:
|
||||
|
||||
test: all replace_current_conf_xml run_tests restore_conf_xml
|
||||
|
||||
.PHONY: all print_build_version clean cleanspaces ab_clean dist_clean distclean dist_clean_irreversible doxygen run_sitl install uninstall test replace_current_conf_xml run_tests restore_conf_xml
|
||||
.PHONY: all print_build_version clean cleanspaces ab_clean dist_clean distclean dist_clean_irreversible run_sitl install uninstall test replace_current_conf_xml run_tests restore_conf_xml
|
||||
|
||||
+2
-2
@@ -51,7 +51,7 @@ ifneq ($(BOARD_SERIAL),)
|
||||
OOCD_OPTIONS = -c "ft2232_serial $(BOARD_SERIAL)"
|
||||
endif
|
||||
|
||||
LOADER= $(PAPARAZZI_SRC)/sw/ext/stm32loader/stm32loader.py
|
||||
LOADER ?= $(PAPARAZZI_SRC)/sw/tools/stm32loader/stm32loader.py
|
||||
|
||||
ifndef $(TARGET).OOCD_INTERFACE
|
||||
OOCD_INTERFACE = lisa-l
|
||||
@@ -130,7 +130,7 @@ AFLAGS += -mcpu=$(MCU) -mthumb
|
||||
endif
|
||||
AFLAGS += -x assembler-with-cpp -Wa,-adhlns=$(OBJDIR)/$(<:.S=.lst),--g$(DEBUG)
|
||||
|
||||
LDFLAGS = -L../ext/libopencm3/lib/stm32/f1
|
||||
LDFLAGS = -L../ext/libopencm3/lib
|
||||
ifeq ("$(MULTILIB)","yes")
|
||||
LDFLAGS += -T$(LDSCRIPT) -nostartfiles -O$(OPT) -mthumb -march=armv7 -mfix-cortex-m3-ldrd -msoft-float
|
||||
else
|
||||
|
||||
@@ -0,0 +1,309 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
<!--
|
||||
Lisa + Aspirin v2 using SPI only
|
||||
-->
|
||||
|
||||
<airframe name="LisaAspirin2">
|
||||
|
||||
<servos>
|
||||
<servo name="THROTTLE" no="0" min="1000" neutral="1000" max="2000"/>
|
||||
<servo name="AILEVON_LEFT" no="1" min="1200" neutral="1500" max="1800"/>
|
||||
<servo name="ELEVATOR" no="2" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="RUDDER" no="3" min="1100" neutral="1500" max="1900"/>
|
||||
<servo name="AILEVON_RIGHT" no="4" min="1800" neutral="1500" max="1200"/>
|
||||
</servos>
|
||||
|
||||
<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"/>
|
||||
<axis name="FORCECRASH" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
<set command="YAW" value="@YAW"/>
|
||||
<!-- <set command="FORCECRASH" value="@FLAPS"/> -->
|
||||
</rc_commands>
|
||||
|
||||
<command_laws>
|
||||
<set servo="AILEVON_LEFT" value="@ROLL"/>
|
||||
<set servo="AILEVON_RIGHT" value="-@ROLL"/>
|
||||
<set servo="THROTTLE" value="@THROTTLE"/>
|
||||
<set servo="ELEVATOR" value="@PITCH"/>
|
||||
<set servo="RUDDER" value="@YAW"/>
|
||||
</command_laws>
|
||||
|
||||
<!-- Local magnetic field -->
|
||||
<section name="AHRS" prefix="AHRS_">
|
||||
<define name="H_X" value="0.51562740288882"/>
|
||||
<define name="H_Y" value="-0.05707735220832"/>
|
||||
<define name="H_Z" value="0.85490967783446"/>
|
||||
</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 = 16.4 LSB/(deg/sec) * 57.6 deg/rad = 939.650 LSB/rad/sec / 12bit FRAC: 4096 / 939.65 -->
|
||||
<define name="GYRO_P_SENS" value="4.359" integer="16"/>
|
||||
<define name="GYRO_Q_SENS" value="4.359" integer="16"/>
|
||||
<define name="GYRO_R_SENS" value="4.359" integer="16"/>
|
||||
|
||||
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
||||
|
||||
<!-- SENS = 2048 LSB/g / 9.81 ms2/g = 208.766564729 LSB/ms2 / 10bit FRAC: 1024 / 208.7665 -->
|
||||
<define name="ACCEL_X_SENS" value="9.81" integer="16"/>
|
||||
<define name="ACCEL_Y_SENS" value="9.81" integer="16"/>
|
||||
<define name="ACCEL_Z_SENS" value="9.81" integer="16"/>
|
||||
|
||||
<define name="MAG_X_NEUTRAL" value="0"/>
|
||||
<define name="MAG_Y_NEUTRAL" value="0"/>
|
||||
<define name="MAG_Z_NEUTRAL" value="0"/>
|
||||
|
||||
<define name="MAG_X_SENS" value="1" integer="16"/>
|
||||
<define name="MAG_Y_SENS" value="1" integer="16"/>
|
||||
<define name="MAG_Z_SENS" value="1" integer="16"/>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="0"/>
|
||||
<define name="BODY_TO_IMU_THETA" value="0"/>
|
||||
<define name="BODY_TO_IMU_PSI" value="0"/>
|
||||
</section>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="ROLL_NEUTRAL_DEFAULT" value="-0.0" unit="rad"/>
|
||||
<define name="PITCH_NEUTRAL_DEFAULT" value="0.103000000119" unit="rad"/>
|
||||
</section>
|
||||
|
||||
<section name="TRIM" prefix="COMMAND_">
|
||||
<define name="ROLL_TRIM" value="0"/>
|
||||
<define name="PITCH_TRIM" value="788."/>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<section name="AUTO1" prefix="AUTO1_">
|
||||
<define name="MAX_ROLL" value="0.8"/>
|
||||
<define name="MAX_PITCH" value="0.8"/>
|
||||
</section>
|
||||
|
||||
<section name="BAT">
|
||||
<define name="MilliAmpereOfAdc(adc)" value="((adc) - 505) * 124.0f"/>
|
||||
|
||||
<define name="LOW_BAT_LEVEL" value="10.5" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="10" unit="V"/>
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="9.1" unit="V"/>
|
||||
</section>
|
||||
|
||||
<section name="MISC">
|
||||
<define name="NOMINAL_AIRSPEED" value="13." unit="m/s"/>
|
||||
<define name="CARROT" value="5." unit="s"/>
|
||||
<define name="CONTROL_RATE" value="60" unit="Hz"/>
|
||||
|
||||
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
|
||||
|
||||
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
|
||||
|
||||
<define name="NAV_GLIDE_PITCH_TRIM" value="0."/>
|
||||
</section>
|
||||
|
||||
<section name="CATAPULT" prefix="NAV_CATAPULT_" >
|
||||
<define name="MOTOR_DELAY" value="45" />
|
||||
<define name="HEADING_DELAY" value="(60*3)" />
|
||||
<define name="ACCELERATION_THRESHOLD" value="1.75" />
|
||||
<define name="INITIAL_PITCH" value="(15.0/57.0)" />
|
||||
<define name="INITIAL_THROTTLE" value="1.0" />
|
||||
</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="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.104999996722"/>
|
||||
<!-- outer loop saturation -->
|
||||
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
|
||||
<define name="ALTITUDE_PRE_CLIMB_CORRECTION" value="0.0960000008345"/>
|
||||
<!--
|
||||
<define name="AUTO_PITCH_PGAIN" value="-0.00"/>
|
||||
<define name="AUTO_PITCH_IGAIN" value="-0.00"/>
|
||||
-->
|
||||
|
||||
<!-- auto throttle inner loop -->
|
||||
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.5"/>
|
||||
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.36700001359"/>
|
||||
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.626999974251"/>
|
||||
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
|
||||
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.518000006676" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.00"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0."/>
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.307000011206"/>
|
||||
|
||||
<define name="THROTTLE_SLEW_LIMITER" value="1" unit="s"/>
|
||||
</section>
|
||||
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="1.16600000858"/>
|
||||
<define name="COURSE_DGAIN" value="0.324999988079"/>
|
||||
<define name="COURSE_PRE_BANK_CORRECTION" value="0.889999985695"/>
|
||||
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.586000025272" unit="radians"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
|
||||
|
||||
<define name="PITCH_PGAIN" value="12587.4130859"/>
|
||||
<define name="PITCH_DGAIN" value="1.5"/>
|
||||
|
||||
<define name="ELEVATOR_OF_ROLL" value="1273.88500977"/>
|
||||
|
||||
<define name="ROLL_SLEW" value="1."/>
|
||||
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="7972.02783203"/>
|
||||
<define name="ROLL_RATE_GAIN" value="500."/>
|
||||
</section>
|
||||
|
||||
|
||||
<section name="AGGRESSIVE" prefix="AGR_">
|
||||
<define name="BLEND_START" value="70"/>
|
||||
<define name="BLEND_END" value="60"/>
|
||||
<define name="CLIMB_THROTTLE" value="0.949999988079"/>
|
||||
<define name="CLIMB_PITCH" value="0.352999985218"/>
|
||||
<define name="DESCENT_THROTTLE" value="0."/>
|
||||
<define name="DESCENT_PITCH" value="-0.252000004053"/>
|
||||
<define name="CLIMB_NAV_RATIO" value="0.8"/>
|
||||
<define name="DESCENT_NAV_RATIO" value="1.0"/>
|
||||
</section>
|
||||
|
||||
<section name="FAILSAFE" prefix="FAILSAFE_">
|
||||
<define name="DEFAULT_THROTTLE" value="0.35" unit="%"/>
|
||||
<define name="DEFAULT_ROLL" value="0.17" unit="rad"/>
|
||||
<define name="DEFAULT_PITCH" value="0.08" unit="rad"/>
|
||||
|
||||
<define name="HOME_RADIUS" value="DEFAULT_CIRCLE_RADIUS" unit="m"/>
|
||||
<define name="KILL_MODE_DISTANCE" value="(MAX_DIST_FROM_HOME*1.5)"/>
|
||||
<define name="DELAY_WITHOUT_GPS" value="3" unit="s"/>
|
||||
</section>
|
||||
|
||||
<section name="DIGITAL_CAMERA" prefix="DC_">
|
||||
<define name="AUTOSHOOT_QUARTERSEC_PERIOD" value="6" unit="quarter_second"/>
|
||||
<define name="AUTOSHOOT_METER_GRID" value="50" unit="meter"/>
|
||||
</section>
|
||||
|
||||
|
||||
<modules>
|
||||
<load name="gps_ubx_ucenter.xml"/>
|
||||
<!--
|
||||
<load name="adc_generic.xml">
|
||||
<configure name="ADC_CHANNEL_GENERIC1" value="0" />
|
||||
<configure name="ADC_CHANNEL_GENERIC2" value="1" />
|
||||
</load>
|
||||
-->
|
||||
<load name="light.xml">
|
||||
<define name="LIGHT_LED_STROBE" value="2"/>
|
||||
<define name="LIGHT_LED_NAV" value="3"/>
|
||||
<define name="STROBE_LIGHT_MODE_DEFAULT" value="6"/>
|
||||
<define name="NAV_LIGHT_MODE_DEFAULT" value="4"/>
|
||||
</load>
|
||||
|
||||
<!-- <load name="digital_cam_i2c.xml"/> -->
|
||||
<load name="digital_cam.xml">
|
||||
<define name="DC_SHUTTER_LED" value="3"/>
|
||||
</load>
|
||||
|
||||
<load name="nav_catapult.xml"/>
|
||||
|
||||
</modules>
|
||||
|
||||
<firmware name="fixedwing">
|
||||
|
||||
<target name="ap" board="lisa_m_2.0">
|
||||
<!-- this define is not available in paparazzi v4.1 -->
|
||||
<!--define name="LISA_M_LONGITUDINAL_X"/-->
|
||||
|
||||
<configure name="SEPARATE_FBW" value="1"/>
|
||||
|
||||
<configure name="PERIODIC_FREQUENCY" value="120"/>
|
||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="100"/>
|
||||
<configure name="AHRS_CORRECT_FREQUENCY" value="100"/>
|
||||
<define name="AHRS_TRIGGERED_ATTITUDE_LOOP"/>
|
||||
|
||||
<configure name="AHRS_ALIGNER_LED" value="1"/>
|
||||
<configure name="CPU_LED" value="1"/>
|
||||
<define name="LINK_MCU_LED" value="4"/>
|
||||
|
||||
<!-- split of ap/fbw specific subsystems for ap -->
|
||||
<subsystem name="actuators" type="dummy"/>
|
||||
<subsystem name="intermcu" type="uart">
|
||||
<configure name="INTERMCU_PORT_NR" value="5"/>
|
||||
</subsystem>
|
||||
|
||||
<subsystem name="control"/>
|
||||
<subsystem name="navigation" type="extra"/>
|
||||
</target>
|
||||
|
||||
<target name="fbw" board="lisa_m_2.0">
|
||||
<configure name="SYS_TIME_LED" value="2"/>
|
||||
<define name="RADIO_CONTROL_LED" value="4"/>
|
||||
<define name="LINK_MCU_LED" value="3"/>
|
||||
|
||||
<define name="OUTBACK_CHALLENGE_DANGEROUS_RULE_RC_LOST_NO_AP" value="1"/>
|
||||
<define name="OUTBACK_CHALLENGE_VERY_DANGEROUS_RULE_AP_CAN_FORCE_FAILSAFE" value="1"/>
|
||||
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
|
||||
<!-- split of ap/fbw specific subsystems for fbw -->
|
||||
<subsystem name="actuators" type="direct"/>
|
||||
<subsystem name="intermcu" type="uart">
|
||||
<configure name="INTERMCU_PORT_NR" value="2"/>
|
||||
</subsystem>
|
||||
</target>
|
||||
|
||||
<target name="sim" board="pc">
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
<subsystem name="control"/>
|
||||
<subsystem name="navigation" type="extra"/>
|
||||
</target>
|
||||
|
||||
<configure name="FLASH_MODE" value="JTAG"/>
|
||||
<configure name="NO_LUFTBOOT" value="1"/>
|
||||
|
||||
<define name="AGR_CLIMB"/>
|
||||
<define name="LOITER_TRIM"/>
|
||||
<define name="ALT_KALMAN"/>
|
||||
<define name="TUNE_AGRESSIVE_CLIMB"/>
|
||||
<define name="STRONG_WIND"/>
|
||||
<define name="WIND_INFO"/>
|
||||
<define name="WIND_INFO_RET"/>
|
||||
<define name="RADIO_CONTROL_AUTO1"/>
|
||||
|
||||
<!-- Communication -->
|
||||
<subsystem name="telemetry" type="transparent">
|
||||
<configure name="MODEM_BAUD" value="B9600"/>
|
||||
<configure name="MODEM_PORT" value="UART2"/>
|
||||
</subsystem>
|
||||
|
||||
<!-- Sensors -->
|
||||
<subsystem name="imu" type="aspirin_v2.1"/>
|
||||
<subsystem name="gps" type="ublox">
|
||||
<configure name="GPS_PORT" value="UART1"/>
|
||||
</subsystem>
|
||||
|
||||
<subsystem name="ahrs" type="float_dcm"/>
|
||||
<subsystem name="ins" type="alt_float"/>
|
||||
|
||||
</firmware>
|
||||
|
||||
</airframe>
|
||||
@@ -1,248 +0,0 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
<!--
|
||||
Lisa + Aspirin v2 using SPI only
|
||||
-->
|
||||
|
||||
<airframe name="LisaAspirin2">
|
||||
|
||||
<servos>
|
||||
<servo name="THROTTLE" no="2" min="1000" neutral="1000" max="2000"/>
|
||||
<servo name="AILEVON_LEFT" no="1" min="1000" neutral="1500" max="2000"/>
|
||||
<servo name="AILEVON_RIGHT" no="0" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="ELEVATOR" no="3" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="RUDDER" no="4" min="1100" neutral="1500" max="1900"/>
|
||||
</servos>
|
||||
|
||||
<commands>
|
||||
<axis name="THROTTLE" failsafe_value="0"/>
|
||||
<axis name="ROLL" failsafe_value="0"/>
|
||||
<axis name="PITCH" failsafe_value="0"/>
|
||||
<axis name="BRAKE" failsafe_value="0"/> <!-- both elerons up as butterfly brake ? -->
|
||||
</commands>
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
<set command="BRAKE" value="@YAW"/>
|
||||
</rc_commands>
|
||||
|
||||
<command_laws>
|
||||
<set servo="AILEVON_LEFT" value="@ROLL + @PITCH"/>
|
||||
<set servo="AILEVON_RIGHT" value="@ROLL - @PITCH"/>
|
||||
<set servo="THROTTLE" value="@THROTTLE"/>
|
||||
<set servo="ELEVATOR" value="@PITCH"/>
|
||||
</command_laws>
|
||||
|
||||
<!-- Local magnetic field -->
|
||||
<section name="AHRS" prefix="AHRS_" >
|
||||
<define name="H_X" value="0.51562740288882" />
|
||||
<define name="H_Y" value="-0.05707735220832" />
|
||||
<define name="H_Z" value="0.85490967783446" />
|
||||
</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 = 16.4 LSB/(deg/sec) * 57.6 deg/rad = 939.650 LSB/rad/sec / 12bit FRAC: 4096 / 939.65 -->
|
||||
<define name="GYRO_P_SENS" value="4.359" integer="16"/>
|
||||
<define name="GYRO_Q_SENS" value="4.359" integer="16"/>
|
||||
<define name="GYRO_R_SENS" value="4.359" integer="16"/>
|
||||
|
||||
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
||||
|
||||
<!-- SENS = 2048 LSB/g / 9.81 ms2/g = 208.766564729 LSB/ms2 / 10bit FRAC: 1024 / 208.7665 -->
|
||||
<define name="ACCEL_X_SENS" value="9.81" integer="16"/>
|
||||
<define name="ACCEL_Y_SENS" value="9.81" integer="16"/>
|
||||
<define name="ACCEL_Z_SENS" value="9.81" integer="16"/>
|
||||
|
||||
<define name="MAG_X_NEUTRAL" value="0"/>
|
||||
<define name="MAG_Y_NEUTRAL" value="0"/>
|
||||
<define name="MAG_Z_NEUTRAL" value="0"/>
|
||||
|
||||
<define name="MAG_X_SENS" value="1" integer="16"/>
|
||||
<define name="MAG_Y_SENS" value="1" integer="16"/>
|
||||
<define name="MAG_Z_SENS" value="1" integer="16"/>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="0"/>
|
||||
<define name="BODY_TO_IMU_THETA" value="0"/>
|
||||
<define name="BODY_TO_IMU_PSI" value="0"/>
|
||||
</section>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
|
||||
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
|
||||
</section>
|
||||
|
||||
<section name="AUTO1" prefix="AUTO1_">
|
||||
<define name="MAX_ROLL" value="0.7"/>
|
||||
<define name="MAX_PITCH" value="0.7"/>
|
||||
</section>
|
||||
|
||||
<section name="BAT">
|
||||
<define name="MilliAmpereOfAdc(adc)" value="((adc) - 505) * 124.0f"/>
|
||||
|
||||
<define name="LOW_BAT_LEVEL" value="10.5" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="10" unit="V"/>
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="9.1" unit="V"/>
|
||||
</section>
|
||||
|
||||
<section name="MISC">
|
||||
<define name="NOMINAL_AIRSPEED" value="13." unit="m/s"/>
|
||||
<define name="CARROT" value="5." unit="s"/>
|
||||
<define name="CONTROL_FREQUENCY" value="60" unit="Hz"/>
|
||||
<define name="XBEE_INIT" value=""ATPL2\rATRN5\rATTT80\r""/>
|
||||
<!-- <define name="NO_XBEE_API_INIT" value="TRUE"/> -->
|
||||
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
|
||||
|
||||
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
|
||||
|
||||
<define name="GLIDE_AIRSPEED" value="10"/>
|
||||
<define name="GLIDE_VSPEED" value="3."/>
|
||||
<define name="GLIDE_PITCH" value="45" unit="deg"/>
|
||||
</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.03"/>
|
||||
<!-- outer loop saturation -->
|
||||
<define name="ALTITUDE_MAX_CLIMB" value="2."/>
|
||||
|
||||
<!-- auto throttle inner loop -->
|
||||
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.32"/>
|
||||
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25"/>
|
||||
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.65"/>
|
||||
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
|
||||
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.15" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="-0.01"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.05"/>
|
||||
|
||||
<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/>
|
||||
</section>
|
||||
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="-1.20000004768"/>
|
||||
<define name="COURSE_DGAIN" value="0.3"/>
|
||||
<define name="COURSE_PRE_BANK_CORRECTION" value="0.2"/>
|
||||
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.75" unit="radians"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
|
||||
|
||||
<define name="PITCH_PGAIN" value="-12000."/>
|
||||
<define name="PITCH_DGAIN" value="1.5"/>
|
||||
|
||||
<define name="ELEVATOR_OF_ROLL" value="1000."/>
|
||||
|
||||
<define name="ROLL_SLEW" value="1."/>
|
||||
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="-7500"/>
|
||||
<define name="ROLL_RATE_GAIN" value="0."/>
|
||||
</section>
|
||||
|
||||
<section name="AGGRESSIVE" prefix="AGR_">
|
||||
<define name="BLEND_START" value="20"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
|
||||
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
|
||||
<define name="CLIMB_THROTTLE" value="1.00"/><!-- Gaz for Aggressive Climb -->
|
||||
<define name="CLIMB_PITCH" value="0.3"/><!-- Pitch for Aggressive Climb -->
|
||||
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
|
||||
<define name="DESCENT_PITCH" value="-0.25"/><!-- 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="FAILSAFE" prefix="FAILSAFE_">
|
||||
<define name="DEFAULT_THROTTLE" value="0.35" unit="%"/>
|
||||
<define name="DEFAULT_ROLL" value="0.17" unit="rad"/>
|
||||
<define name="DEFAULT_PITCH" value="0.08" unit="rad"/>
|
||||
|
||||
<define name="HOME_RADIUS" value="DEFAULT_CIRCLE_RADIUS" unit="m"/>
|
||||
<define name="KILL_MODE_DISTANCE" value="(MAX_DIST_FROM_HOME*1.5)"/>
|
||||
<define name="DELAY_WITHOUT_GPS" value="3" unit="s"/>
|
||||
</section>
|
||||
|
||||
<section name="DIGITAL_CAMERA" prefix="DC_">
|
||||
<define name="AUTOSHOOT_QUARTERSEC_PERIOD" value="6" unit="quarter_second"/>
|
||||
<define name="AUTOSHOOT_METER_GRID" value="50" unit="meter"/>
|
||||
</section>
|
||||
|
||||
|
||||
<modules>
|
||||
<!--
|
||||
<load name="light.xml">
|
||||
<define name="LIGHT_LED_STROBE" value="2"/>
|
||||
<define name="LIGHT_LED_NAV" value="3"/>
|
||||
<define name="STROBE_LIGHT_MODE_DEFAULT" value="6"/>
|
||||
<define name="NAV_LIGHT_MODE_DEFAULT" value="4"/>
|
||||
</load>
|
||||
|
||||
<load name="digital_cam_i2c.xml"/> -->
|
||||
|
||||
<!-- <load name="ins_ppzuavimu.xml" /> -->
|
||||
|
||||
<!--
|
||||
<load name="digital_cam.xml" >
|
||||
<define name="DC_SHUTTER_LED" value="3"/>
|
||||
</load>
|
||||
-->
|
||||
</modules>
|
||||
|
||||
<firmware name="fixedwing">
|
||||
|
||||
<target name="ap" board="lisa_l_1.0">
|
||||
<define name="STRONG_WIND"/>
|
||||
<define name="WIND_INFO"/>
|
||||
<define name="WIND_INFO_RET"/>
|
||||
|
||||
<configure name="PERIODIC_FREQUENCY" value="120"/>
|
||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="100"/>
|
||||
<configure name="AHRS_CORRECT_FREQUENCY" value="100"/>
|
||||
<define name="AHRS_TRIGGERED_ATTITUDE_LOOP" />
|
||||
|
||||
<configure name="AHRS_ALIGNER_LED" value="1"/>
|
||||
</target>
|
||||
<target name="sim" board="pc"/>
|
||||
|
||||
<define name="AGR_CLIMB"/>
|
||||
<define name="LOITER_TRIM"/>
|
||||
|
||||
<!-- Sensors -->
|
||||
<!--
|
||||
<subsystem name="ahrs" type="int_cmpl_quat">
|
||||
<define name="AHRS_GRAVITY_UPDATE_COORDINATED_TURN" />
|
||||
</subsystem>
|
||||
-->
|
||||
<subsystem name="imu" type="aspirin_v2.1"/>
|
||||
<subsystem name="ahrs" type="float_dcm">
|
||||
<configure name="USE_MAGNETOMETER" value="0"/>
|
||||
</subsystem>
|
||||
|
||||
<subsystem name="ins" type="alt_float"/>
|
||||
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
|
||||
<!-- Communication -->
|
||||
<subsystem name="telemetry" type="xbee_api">
|
||||
<configure name="MODEM_BAUD" value="B57600"/>
|
||||
</subsystem>
|
||||
|
||||
<!-- Actuators -->
|
||||
<subsystem name="control"/>
|
||||
<!-- Sensors -->
|
||||
<subsystem name="navigation"/>
|
||||
<subsystem name="gps" type="ublox"/>
|
||||
|
||||
|
||||
</firmware>
|
||||
|
||||
|
||||
</airframe>
|
||||
@@ -0,0 +1,260 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
<airframe name="TwinStarXSens">
|
||||
|
||||
<servos>
|
||||
<servo name="THROTTLE_LEFT" no="1" min="1100" neutral="1100" max="1900"/>
|
||||
<servo name="THROTTLE_RIGHT" no="0" min="1100" neutral="1100" max="1900"/>
|
||||
<servo name="AILERON_RIGHT" no="2" min="2300" neutral="1550" max="700"/>
|
||||
<servo name="AILERON_LEFT" no="3" min="2300" neutral="1550" max="700"/>
|
||||
<servo name="ELEVATOR" no="4" min="1100" neutral="1500" max="1900"/>
|
||||
</servos>
|
||||
|
||||
<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"/>
|
||||
<axis name="BRAKE" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
<set command="BRAKE" value="@YAW"/>
|
||||
</rc_commands>
|
||||
|
||||
<section name="SERVO_MIXER_GAINS">
|
||||
<define name="AILERON_RATE_UP" value="0.50f"/>
|
||||
<define name="AILERON_RATE_DOWN" value="0.25f"/>
|
||||
|
||||
<define name="AILERON_RATE_UP_BRAKE" value="0.5f"/>
|
||||
<define name="AILERON_RATE_DOWN_BRAKE" value="0.9f"/>
|
||||
|
||||
<define name="PITCH_GAIN" value="0.9f"/>
|
||||
|
||||
<define name="YAW_THRUST" value="0.0f"/>
|
||||
<define name="BRAKE_AILEVON" value="-0.68f"/>
|
||||
<define name="BRAKE_PITCH" value="0.0f"/>
|
||||
<define name="MAX_BRAKE_RATE" value="130"/>
|
||||
</section>
|
||||
|
||||
<command_laws>
|
||||
<!-- Brake Rate Limiter -->
|
||||
<let var="brake_value_nofilt" value="Chop(-@BRAKE, 0, MAX_PPRZ)"/>
|
||||
<ratelimit var="brake_value" value="$brake_value_nofilt" rate_min="-MAX_BRAKE_RATE" rate_max="MAX_BRAKE_RATE" />
|
||||
|
||||
<!-- Differential Aileron Depending on Brake Value -->
|
||||
<let var="aileron_up_rate" value="(AILERON_RATE_UP * (MAX_PPRZ - $brake_value)) + (AILERON_RATE_UP_BRAKE * $brake_value)"/>
|
||||
<let var="aileron_down_rate" value="(AILERON_RATE_DOWN * (MAX_PPRZ - $brake_value)) + (AILERON_RATE_DOWN_BRAKE * $brake_value)"/>
|
||||
<let var="aileron_up" value="((-@ROLL) * (((float)$aileron_up_rate) / ((float)MAX_PPRZ)))"/>
|
||||
<let var="aileron_down" value="((-@ROLL) * (((float)$aileron_down_rate) / ((float)MAX_PPRZ)))"/>
|
||||
<let var="leftturn" value="((-@ROLL) >= 0? 1 : 0)"/>
|
||||
<let var="rightturn" value="(1 - $leftturn)"/>
|
||||
<set servo="AILERON_LEFT" value="($aileron_up * $leftturn) + ($aileron_down * $rightturn) - $brake_value*(BRAKE_AILEVON)"/>
|
||||
<set servo="AILERON_RIGHT" value="($aileron_up * $rightturn) + ($aileron_down * $leftturn) + $brake_value*(BRAKE_AILEVON)"/>
|
||||
|
||||
<!-- Differential Thurst -->
|
||||
<set servo="THROTTLE_LEFT" value="@THROTTLE - @ROLL * (YAW_THRUST)"/>
|
||||
<set servo="THROTTLE_RIGHT" value="@THROTTLE + @ROLL * (YAW_THRUST)"/>
|
||||
|
||||
<!-- Pitch with Brake-Trim Function -->
|
||||
<set servo="ELEVATOR" value="-@PITCH * PITCH_GAIN + BRAKE_PITCH * $brake_value"/>
|
||||
</command_laws>
|
||||
|
||||
<section name="AUTO1" prefix="AUTO1_">
|
||||
<define name="MAX_ROLL" value="0.7"/>
|
||||
<define name="MAX_PITCH" value="0.7"/>
|
||||
</section>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="ROLL_NEUTRAL_DEFAULT" value="0"/>
|
||||
<define name="PITCH_NEUTRAL_DEFAULT" value="0"/>
|
||||
</section>
|
||||
|
||||
<!-- Local magnetic field -->
|
||||
<section name="AHRS" prefix="AHRS_">
|
||||
<define name="H_X" value="0.51562740288882"/>
|
||||
<define name="H_Y" value="-0.05707735220832"/>
|
||||
<define name="H_Z" value="0.85490967783446"/>
|
||||
</section>
|
||||
|
||||
<section name="XSENS">
|
||||
<define name="GPS_IMU_LEVER_ARM_X" value="0.0f"/>
|
||||
<define name="GPS_IMU_LEVER_ARM_Y" value="0.0f"/>
|
||||
<define name="GPS_IMU_LEVER_ARM_Z" value="0.0f"/>
|
||||
</section>
|
||||
|
||||
|
||||
<section name="ADC" prefix="ADC_CHANNEL_">
|
||||
<define name="CURRENT" value="AdcBank1(5)"/>
|
||||
</section>
|
||||
|
||||
<section name="BAT">
|
||||
<define name="VoltageOfAdc(adc)" value="(0.01688000f*(adc)+2)"/>
|
||||
<define name="MilliAmpereOfAdc(adc)" value="((adc) - 505) * 124.0f"/>
|
||||
|
||||
<define name="LOW_BAT_LEVEL" value="10.5" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="10" unit="V"/>
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="9.1" unit="V"/>
|
||||
</section>
|
||||
|
||||
<section name="FAILSAFE" prefix="FAILSAFE_">
|
||||
<define name="DEFAULT_THROTTLE" value="0.45" unit="%"/>
|
||||
<define name="DEFAULT_ROLL" value="0.17" unit="rad"/>
|
||||
<define name="DEFAULT_PITCH" value="0.08" unit="rad"/>
|
||||
|
||||
<define name="HOME_RADIUS" value="DEFAULT_CIRCLE_RADIUS" unit="m"/>
|
||||
<define name="KILL_MODE_DISTANCE" value="(MAX_DIST_FROM_HOME*1.5)"/>
|
||||
<define name="DELAY_WITHOUT_GPS" value="3" unit="s"/>
|
||||
</section>
|
||||
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="0.75"/>
|
||||
<define name="COURSE_DGAIN" value="0.45"/>
|
||||
<define name="COURSE_PRE_BANK_CORRECTION" value="0.935"/>
|
||||
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.8" unit="radians"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="0.4" unit="radians"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-0.275" unit="radians"/>
|
||||
|
||||
<define name="PITCH_PGAIN" value="11000"/>
|
||||
<define name="PITCH_DGAIN" value="0."/>
|
||||
<define name="ELEVATOR_OF_ROLL" value="1000."/>
|
||||
|
||||
<!-- roll rate loop -->
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="7000."/>
|
||||
<define name="ROLL_RATE_GAIN" value="1100"/>
|
||||
</section>
|
||||
|
||||
|
||||
<section name="VERTICAL CONTROL" prefix="V_CTL_">
|
||||
<!-- outer loop proportional gain -->
|
||||
<define name="ALTITUDE_PGAIN" value="0.1"/>
|
||||
|
||||
<!-- outer loop saturation -->
|
||||
<define name="ALTITUDE_MAX_CLIMB" value="3.0"/>
|
||||
|
||||
<!-- auto throttle inner loop -->
|
||||
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value=".38"/>
|
||||
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.45"/>
|
||||
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.62"/>
|
||||
|
||||
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1000."/>
|
||||
<define name="AUTO_THROTTLE_DASH_TRIM" value="-1500"/>
|
||||
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.2" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0."/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0."/>
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.175"/>
|
||||
|
||||
<define name="THROTTLE_SLEW_LIMITER" value="1" unit="s"/>
|
||||
</section>
|
||||
|
||||
<section name="NAV">
|
||||
<define name="AGR_CLIMB_PITCH" value="0."/> <!-- Needed For OSAMNav -->
|
||||
</section>
|
||||
|
||||
<section name="MISC">
|
||||
<define name="NOMINAL_AIRSPEED" value="15." unit="m/s"/>
|
||||
<define name="CARROT" value="5." unit="s"/>
|
||||
<define name="CONTROL_FREQUENCY" value="60" unit="Hz"/>
|
||||
|
||||
<define name="DEFAULT_CIRCLE_RADIUS" value="75."/>
|
||||
|
||||
<define name="GLIDE_AIRSPEED" value="10"/>
|
||||
<define name="GLIDE_PITCH" value="45" unit="deg"/>
|
||||
|
||||
<define name="COMMAND_ROLL_TRIM" value="180"/>
|
||||
<define name="COMMAND_PITCH_TRIM" value="-194."/>
|
||||
</section>
|
||||
|
||||
<section name="DIGITAL_CAMERA" prefix="DC_">
|
||||
<define name="AUTOSHOOT_QUARTERSEC_PERIOD" value="8" unit="quarter_second"/>
|
||||
<define name="AUTOSHOOT_METER_GRID" value="50" unit="meter"/>
|
||||
</section>
|
||||
|
||||
<firmware name="fixedwing">
|
||||
|
||||
<target name="ap" board="classix">
|
||||
<configure name="SYS_TIME_LED" value="2"/>
|
||||
|
||||
<define name="USE_LED_6" value="1"/>
|
||||
<define name="LED_6_BANK" value="0"/>
|
||||
<define name="LED_6_PIN" value="15"/>
|
||||
|
||||
<define name="USE_AD0"/>
|
||||
<define name="USE_AD0_3"/>
|
||||
<define name="ADC_6" value="AdcBank0\(3\)"/>
|
||||
|
||||
<subsystem name="control"/>
|
||||
<subsystem name="navigation" type="extra"/>
|
||||
</target>
|
||||
|
||||
<target name="fbw" board="classix">
|
||||
<configure name="SYS_TIME_LED" value="2"/>
|
||||
<define name="RADIO_CONTROL_LED" value="1"/>
|
||||
<define name="USE_AD1_5" value="1"/>
|
||||
<define name="USE_AD1" value="1"/>
|
||||
<configure name="ACTUATORS" value="actuators_ppm"/>
|
||||
<define name="ADC_CHANNEL_VSUPPLY" value="AdcBank0\(6\)"/>
|
||||
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
</target>
|
||||
|
||||
<target name="sim" board="pc">
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
<subsystem name="control"/>
|
||||
<subsystem name="navigation" type="extra"/>
|
||||
</target>
|
||||
|
||||
<define name="DC_IMAGE_BUFFER" value="65000" />
|
||||
<define name="STRONG_WIND"/>
|
||||
<define name="WIND_INFO"/>
|
||||
<define name="WIND_INFO_RET"/>
|
||||
<define name="LOITER_TRIM"/>
|
||||
<define name="RADIO_CONTROL_AUTO1"/>
|
||||
|
||||
|
||||
<subsystem name="telemetry" type="xbee_api">
|
||||
<configure name="MODEM_PORT" value="UART0"/>
|
||||
<configure name="MODEM_BAUD" value="B9600"/>
|
||||
</subsystem>
|
||||
|
||||
<subsystem name="ins" type="xsens">
|
||||
<configure name="XSENS_UART_NR" value="1"/>
|
||||
</subsystem>
|
||||
|
||||
</firmware>
|
||||
|
||||
<modules>
|
||||
<load name="digital_cam.xml">
|
||||
<define name="DC_SHUTTER_LED" value="6"/>
|
||||
</load>
|
||||
<load name="adc_generic.xml">
|
||||
<define name="ADC_GENERIC_NB_SAMPLES" value="32"/>
|
||||
<configure name="ADC_CHANNEL_GENERIC1" value="ADC_6"/> <!-- e.g. current sensor -->
|
||||
</load>
|
||||
<load name="photogrammetry_calculator.xml" />
|
||||
</modules>
|
||||
|
||||
<!-- --------------------------------------------------------------------------- -->
|
||||
|
||||
|
||||
<section name="Photogrammetry" prefix="PHOTOGRAMMETRY_">
|
||||
<!-- Camera Parameters -->
|
||||
<define name="FOCAL_LENGTH" value="20" unit="mm"/>
|
||||
<define name="SENSOR_WIDTH" value="24" unit="mm"/>
|
||||
<define name="SENSOR_HEIGHT" value="13.5" unit="mm"/>
|
||||
<define name="PIXELS_WIDTH" value="1280" unit=""/>
|
||||
|
||||
<!-- Flight Safety Parameters -->
|
||||
<define name="HEIGHT_MIN" value="40" unit="m"/>
|
||||
<define name="HEIGHT_MAX" value="300" unit="m"/>
|
||||
<define name="RADIUS_MIN" value="70" unit="m"/>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
</airframe>
|
||||
@@ -1,276 +0,0 @@
|
||||
<!-- this is an asctec frame equiped with Lisa/L#3 and asctec V2 controllers -->
|
||||
|
||||
<airframe name="booz2_a7">
|
||||
|
||||
<servos>
|
||||
<servo name="FRONT" no="0" min="0" neutral="0" max="255"/>
|
||||
<servo name="BACK" no="1" min="0" neutral="0" max="255"/>
|
||||
<servo name="LEFT" no="2" min="0" neutral="0" max="255"/>
|
||||
<servo name="RIGHT" no="3" min="0" neutral="0" max="255"/>
|
||||
</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>
|
||||
|
||||
<!-- for the sim -->
|
||||
<section name="ACTUATORS_MKK" prefix="ACTUATORS_MKK_">
|
||||
<define name="NB" value="4"/>
|
||||
<define name="ADDR" value="{ 0x52, 0x54, 0x56, 0x58 }"/>
|
||||
</section>
|
||||
|
||||
|
||||
<section name="SUPERVISION" prefix="SUPERVISION_">
|
||||
<define name="MIN_MOTOR" value="3"/>
|
||||
<define name="MAX_MOTOR" value="200"/>
|
||||
<define name="TRIM_A" value="0"/>
|
||||
<define name="TRIM_E" value="0"/>
|
||||
<define name="TRIM_R" value="0"/>
|
||||
<define name="NB_MOTOR" value="4"/>
|
||||
<define name="SCALE" value="256"/>
|
||||
<define name="ROLL_COEF" value="{ 0 , 0, 256, -256 }"/>
|
||||
<define name="PITCH_COEF" value="{ 256, -256, 0, 0 }"/>
|
||||
<define name="YAW_COEF" value="{ 256, 256, -256, -256 }"/>
|
||||
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
|
||||
</section>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
|
||||
<define name="GYRO_P_NEUTRAL" value="32858"/>
|
||||
<define name="GYRO_Q_NEUTRAL" value="33152"/>
|
||||
<define name="GYRO_R_NEUTRAL" value="31779"/>
|
||||
<define name="GYRO_P_SENS" value=" 1.101357422" integer="16"/>
|
||||
<define name="GYRO_Q_SENS" value=" 1.122670898" integer="16"/>
|
||||
<define name="GYRO_R_SENS" value=" 1.104890137" integer="16"/>
|
||||
|
||||
|
||||
<define name="ACCEL_X_NEUTRAL" value="32899"/>
|
||||
<define name="ACCEL_Y_NEUTRAL" value="33281"/>
|
||||
<define name="ACCEL_Z_NEUTRAL" value="32569"/>
|
||||
<define name="ACCEL_X_SENS" value="2.57702956051" integer="16"/>
|
||||
<define name="ACCEL_Y_SENS" value="2.57835230627" integer="16"/>
|
||||
<define name="ACCEL_Z_SENS" value="2.54311399868" integer="16"/>
|
||||
|
||||
<define name="MAG_X_NEUTRAL" value="58"/>
|
||||
<define name="MAG_Y_NEUTRAL" value="92"/>
|
||||
<define name="MAG_Z_NEUTRAL" value="-3"/>
|
||||
<define name="MAG_X_SENS" value="4.70018395734" integer="16"/>
|
||||
<define name="MAG_Y_SENS" value="4.884119848" integer="16"/>
|
||||
<define name="MAG_Z_SENS" value="2.59926404993" 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="135." unit="deg"/>
|
||||
|
||||
</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_ATTITUDE_Z_HOLD"/>
|
||||
</section>
|
||||
|
||||
<section name="BAT">
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
|
||||
</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="180." unit="deg/s"/>
|
||||
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
|
||||
|
||||
<!-- gaui props
|
||||
<define name="PHI_PGAIN" value="900"/>
|
||||
<define name="PHI_DGAIN" value="200"/>
|
||||
<define name="PHI_IGAIN" value="200"/>
|
||||
|
||||
<define name="THETA_PGAIN" value="900"/>
|
||||
<define name="THETA_DGAIN" value="200"/>
|
||||
<define name="THETA_IGAIN" value="200"/>
|
||||
|
||||
<define name="PSI_PGAIN" value="900"/>
|
||||
<define name="PSI_DGAIN" value="200"/>
|
||||
<define name="PSI_IGAIN" value="10"/>
|
||||
|
||||
<define name="PHI_DDGAIN" value=" 200"/>
|
||||
<define name="THETA_DDGAIN" value=" 200"/>
|
||||
<define name="PSI_DDGAIN" value=" 200"/>
|
||||
-->
|
||||
|
||||
<!-- feedback -->
|
||||
<define name="PHI_PGAIN" value="2000"/>
|
||||
<define name="PHI_DGAIN" value="400"/>
|
||||
<define name="PHI_IGAIN" value="200"/>
|
||||
|
||||
<define name="THETA_PGAIN" value="2000"/>
|
||||
<define name="THETA_DGAIN" value="400"/>
|
||||
<define name="THETA_IGAIN" value="200"/>
|
||||
|
||||
<define name="PSI_PGAIN" value="2000"/>
|
||||
<define name="PSI_DGAIN" value="400"/>
|
||||
<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="AHRS" prefix="AHRS_">
|
||||
<define name="PROPAGATE_FREQUENCY" value="512"/>
|
||||
<define name="H_X" value=" 0.51562740288882"/>
|
||||
<define name="H_Y" value="-0.05707735220832"/>
|
||||
<define name="H_Z" value=" 0.85490967783446"/>
|
||||
</section>
|
||||
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="BARO_SENS" value="10." integer="16"/>
|
||||
</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="HOVER_KP" value="500"/>
|
||||
<define name="HOVER_KD" value="200"/>
|
||||
<define name="HOVER_KI" value="0"/>
|
||||
-->
|
||||
<define name="HOVER_KP" value="150"/>
|
||||
<define name="HOVER_KD" value="80"/>
|
||||
<define name="HOVER_KI" value="0"/>
|
||||
|
||||
<!-- 1.5m/s for full stick : BOOZ_SPEED_I_OF_F(1.5) / (MAX_PPRZ/2) -->
|
||||
<define name="RC_CLIMB_COEF" value ="163"/>
|
||||
<!-- BOOZ_SPEED_I_OF_F(1.5) * 20% -->
|
||||
<define name="RC_CLIMB_DEAD_BAND" value ="160000"/>
|
||||
<!-- <define name="INV_M" value ="0.2"/> -->
|
||||
</section>
|
||||
|
||||
|
||||
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||
<define name="PGAIN" value="50"/>
|
||||
<define name="DGAIN" value="100"/>
|
||||
<define name="IGAIN" value="15"/>
|
||||
<define name="NGAIN" value="0"/>
|
||||
</section>
|
||||
|
||||
<section name="MISC">
|
||||
<define name="FACE_REINJ_1" value="1024"/>
|
||||
</section>
|
||||
|
||||
<section name="SIMULATOR" prefix="NPS_">
|
||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||
</section>
|
||||
|
||||
|
||||
<modules main_freq="512">
|
||||
<load name="i2c_abuse_test.xml"/>
|
||||
</modules>
|
||||
|
||||
<firmware name="rotorcraft">
|
||||
<!-- <define name="USE_PERSISTENT_SETTINGS"/> -->
|
||||
<!-- <define name="USE_INS_NAV_INIT"/> -->
|
||||
<define name="FAILSAFE_GROUND_DETECT"/>
|
||||
<define name="USE_GPS_ACC4R"/>
|
||||
<target name="ap" board="lisa_l_1.0">
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
<subsystem name="actuators" type="asctec"/>
|
||||
</target>
|
||||
<target name="sim" board="pc">
|
||||
<subsystem name="fdm" type="jsbsim"/>
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
<subsystem name="actuators" type="mkk"/>
|
||||
</target>
|
||||
<subsystem name="telemetry" type="transparent"/>
|
||||
<subsystem name="imu" type="b2_v1.1"/>
|
||||
<subsystem name="gps" type="ublox">
|
||||
<configure name="GPS_BAUD" value="B57600"/>
|
||||
</subsystem>
|
||||
<!--subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||
<subsystem name="stabilization" type="euler"/>
|
||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||
<subsystem name="ins"/>
|
||||
<subsystem name="ins" type="hff"/>
|
||||
</firmware>
|
||||
|
||||
<firmware name="lisa_test_progs">
|
||||
<target name="test_led" board="lisa_l_1.0"/>
|
||||
<target name="test_uart" board="lisa_l_1.0"/>
|
||||
<target name="test_servos" board="lisa_l_1.0"/>
|
||||
<target name="test_telemetry" board="lisa_l_1.0"/>
|
||||
<target name="test_baro" board="lisa_l_1.0"/>
|
||||
<target name="test_imu_b2" board="lisa_l_1.0"/>
|
||||
<target name="test_imu_b2_2" board="lisa_l_1.0"/>
|
||||
<target name="test_imu_aspirin" board="lisa_l_1.0"/>
|
||||
<target name="test_rc_spektrum" board="lisa_l_1.0"/>
|
||||
<target name="test_rc_ppm" board="lisa_l_1.0"/>
|
||||
<target name="test_adc" board="lisa_l_1.0"/>
|
||||
<target name="test_hmc5843" board="lisa_l_1.0"/>
|
||||
<target name="test_itg3200" board="lisa_l_1.0"/>
|
||||
<target name="test_adxl345" board="lisa_l_1.0"/>
|
||||
<target name="test_esc_mkk_simple" board="lisa_l_1.0"/>
|
||||
<target name="test_esc_asctecv1_simple" board="lisa_l_1.0"/>
|
||||
<target name="test_actuators_mkk" board="lisa_l_1.0"/>
|
||||
<target name="test_actuators_asctecv1" board="lisa_l_1.0"/>
|
||||
<target name="tunnel_sw" board="lisa_l_1.0"/>
|
||||
<target name="tunnel_hw" board="lisa_l_1.0"/>
|
||||
</firmware>
|
||||
|
||||
<firmware name="lisa_passthrough">
|
||||
<target name="overo_test_passthrough" board="lisa_l_1.0" >
|
||||
<param name="HOST" value="A7"/>
|
||||
<param name="USER" value=""/>
|
||||
<param name="TARGET_DIR" value="~"/>
|
||||
<param name="PERIODIC_FREQ" value="512"/>
|
||||
</target>
|
||||
<target name="stm_passthrough" board="lisa_l_1.0">
|
||||
<subsystem name="radio_control" type="spektrum"/>
|
||||
<subsystem name="imu" type="b2_v1.1"/>
|
||||
</target>
|
||||
</firmware>
|
||||
|
||||
|
||||
</airframe>
|
||||
+10
-12
@@ -1,5 +1,6 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
|
||||
<airframe name="Yapa v1">
|
||||
|
||||
<servos>
|
||||
@@ -81,15 +82,12 @@
|
||||
|
||||
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
|
||||
|
||||
<define name="GLIDE_AIRSPEED" value="10"/>
|
||||
<define name="GLIDE_VSPEED" value="3."/>
|
||||
<define name="GLIDE_PITCH" value="45" unit="deg"/>
|
||||
</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.03"/>
|
||||
<define name="ALTITUDE_PGAIN" value="0.03"/>
|
||||
<!-- outer loop saturation -->
|
||||
<define name="ALTITUDE_MAX_CLIMB" value="2."/>
|
||||
|
||||
@@ -100,7 +98,7 @@
|
||||
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
|
||||
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.15" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="-0.01"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.05"/>
|
||||
|
||||
@@ -108,21 +106,21 @@
|
||||
</section>
|
||||
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="-1.20000004768"/>
|
||||
<define name="COURSE_PGAIN" value="1.20000004768"/>
|
||||
<define name="COURSE_DGAIN" value="0.3"/>
|
||||
<define name="COURSE_PRE_BANK_CORRECTION" value="0.2"/>
|
||||
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.9" 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_MAX_SETPOINT" value="0.9" unit="rad"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="rad"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="rad"/>
|
||||
|
||||
<define name="PITCH_PGAIN" value="-12000."/>
|
||||
<define name="PITCH_PGAIN" value="12000."/>
|
||||
<define name="PITCH_DGAIN" value="0"/>
|
||||
|
||||
<define name="ELEVATOR_OF_ROLL" value="1000."/>
|
||||
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="-11500"/>
|
||||
<define name="ROLL_RATE_GAIN" value="-600."/>
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="11500"/>
|
||||
<define name="ROLL_RATE_GAIN" value="600."/>
|
||||
</section>
|
||||
|
||||
<section name="AGGRESSIVE" prefix="AGR_">
|
||||
@@ -1,13 +1,14 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
|
||||
<airframe name="Yapa v1">
|
||||
|
||||
<servos>
|
||||
<servo name="THROTTLE" no="8" min="1000" neutral="1000" max="2000"/>
|
||||
<servo name="AILERON_LEFT" no="9" min="1000" neutral="1500" max="2000"/>
|
||||
<servo name="AILERON_RIGHT" no="4" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="ELEVATOR" no="5" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="RUDDER" no="3" min="1100" neutral="1500" max="1900"/>
|
||||
<servo name="THROTTLE" no="0" min="1000" neutral="1000" max="2000"/>
|
||||
<servo name="AILERON_LEFT" no="1" min="1000" neutral="1500" max="2000"/>
|
||||
<servo name="AILERON_RIGHT" 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="1100" neutral="1500" max="1900"/>
|
||||
</servos>
|
||||
|
||||
<commands>
|
||||
@@ -109,7 +110,7 @@
|
||||
<define name="COURSE_DGAIN" value="0.3"/>
|
||||
<define name="COURSE_PRE_BANK_CORRECTION" value="0.2"/>
|
||||
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.75" unit="rad"/>
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.9" unit="rad"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="rad"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="rad"/>
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
|
||||
<firmware name="fixedwing">
|
||||
|
||||
<target name="ap" board="tiny_2.11">
|
||||
<target name="ap" board="yapa_2.0">
|
||||
<define name="STRONG_WIND"/>
|
||||
<define name="WIND_INFO"/>
|
||||
<define name="WIND_INFO_RET"/>
|
||||
@@ -1,95 +1,87 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
<!--
|
||||
Tiny + XSens + XBee
|
||||
YAPA + XSens + XBee
|
||||
-->
|
||||
|
||||
<airframe name="Yapa v1">
|
||||
|
||||
<servos>
|
||||
<servo name="THROTTLE" no="0" min="1000" neutral="1000" max="2000"/>
|
||||
<servo name="AILERON_LEFT" no="2" min="1000" neutral="1500" max="2000"/>
|
||||
<servo name="AILERON_RIGHT" no="6" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="ELEVATOR" no="3" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="RUDDER" no="4" min="1100" neutral="1500" max="1900"/>
|
||||
<servo name="THROTTLE" no="0" min="1100" neutral="1000" max="1900"/>
|
||||
<servo name="RUDDER" no="2" min="1100" neutral="1500" max="1900"/>
|
||||
<servo name="ELEVATOR" no="6" min="1000" neutral="1500" max="2000"/>
|
||||
<servo name="CAM_TILT" no="7" min="700" neutral="1600" max="2500"/>
|
||||
<servo name="CAM_PAN" no="3" min="800" neutral="1650" max="2500"/>
|
||||
</servos>
|
||||
|
||||
<commands>
|
||||
<axis name="THROTTLE" failsafe_value="0"/>
|
||||
<axis name="ROLL" failsafe_value="0"/>
|
||||
<axis name="PITCH" failsafe_value="0"/>
|
||||
<axis name="BRAKE" failsafe_value="0"/> <!-- both elerons up as butterfly brake ? -->
|
||||
<axis name="CAM_PAN" failsafe_value="0"/>
|
||||
<axis name="CAM_TILT" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<ap_only_commands>
|
||||
<copy command="CAM_PAN"/>
|
||||
<copy command="CAM_TILT"/>
|
||||
</ap_only_commands>
|
||||
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
<set command="BRAKE" value="@YAW"/>
|
||||
</rc_commands>
|
||||
|
||||
<section name="SERVO_MIXER_GAINS">
|
||||
<define name="AILERON_RATE_UP" value="0.50f"/>
|
||||
<define name="AILERON_RATE_DOWN" value="0.25f"/>
|
||||
|
||||
<define name="AILERON_RATE_UP_BRAKE" value="0.5f"/>
|
||||
<define name="AILERON_RATE_DOWN_BRAKE" value="0.9f"/>
|
||||
|
||||
<define name="PITCH_GAIN" value="0.9f"/>
|
||||
|
||||
<define name="YAW_THRUST" value="0.0f"/>
|
||||
<define name="BRAKE_AILEVON" value="-0.68f"/>
|
||||
<define name="BRAKE_PITCH" value="0.0f"/>
|
||||
<define name="MAX_BRAKE_RATE" value="150"/>
|
||||
|
||||
</section>
|
||||
|
||||
<command_laws>
|
||||
<!-- Brake Rate Limiter -->
|
||||
<let var="brake_value_nofilt" value="Chop(-@BRAKE, 0, MAX_PPRZ)"/>
|
||||
<ratelimit var="brake_value" value="$brake_value_nofilt" rate_min="-MAX_BRAKE_RATE" rate_max="MAX_BRAKE_RATE" />
|
||||
<set servo="CAM_PAN" value="@CAM_PAN"/>
|
||||
<set servo="CAM_TILT" value="@CAM_TILT"/>
|
||||
|
||||
<!-- Differential Aileron Depending on Brake Value -->
|
||||
<let var="aileron_up_rate" value="(AILERON_RATE_UP * (MAX_PPRZ - $brake_value)) + (AILERON_RATE_UP_BRAKE * $brake_value)"/>
|
||||
<let var="aileron_down_rate" value="(AILERON_RATE_DOWN * (MAX_PPRZ - $brake_value)) + (AILERON_RATE_DOWN_BRAKE * $brake_value)"/>
|
||||
<let var="aileron_up" value="(@ROLL * (((float)$aileron_up_rate) / ((float)MAX_PPRZ)))"/>
|
||||
<let var="aileron_down" value="(@ROLL * (((float)$aileron_down_rate) / ((float)MAX_PPRZ)))"/>
|
||||
<let var="leftturn" value="(@ROLL >= 0? 1 : 0)"/>
|
||||
<let var="rightturn" value="(1 - $leftturn)"/>
|
||||
<set servo="AILERON_LEFT" value="($aileron_up * $leftturn) + ($aileron_down * $rightturn) - $brake_value*(BRAKE_AILEVON)"/>
|
||||
<set servo="AILERON_RIGHT" value="($aileron_up * $rightturn) + ($aileron_down * $leftturn) + $brake_value*(BRAKE_AILEVON)"/>
|
||||
<set servo="RUDDER" value="@ROLL"/>
|
||||
|
||||
<!-- Differential Thurst -->
|
||||
<set servo="THROTTLE" value="@THROTTLE"/>
|
||||
|
||||
<!-- Pitch with Brake-Trim Function -->
|
||||
<set servo="ELEVATOR" value="-@PITCH * PITCH_GAIN + BRAKE_PITCH * $brake_value"/>
|
||||
<set servo="ELEVATOR" value="@PITCH"/>
|
||||
</command_laws>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="rad"/>
|
||||
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="rad"/>
|
||||
</section>
|
||||
|
||||
<section name="AUTO1" prefix="AUTO1_">
|
||||
<define name="MAX_ROLL" value="0.7"/>
|
||||
<define name="MAX_PITCH" value="0.7"/>
|
||||
</section>
|
||||
|
||||
<section name="BAT">
|
||||
<define name="MilliAmpereOfAdc(adc)" value="((adc) - 505) * 124.0f"/>
|
||||
|
||||
<define name="LOW_BAT_LEVEL" value="10.5" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="10" unit="V"/>
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="9.1" unit="V"/>
|
||||
<section name="PANTILT" prefix="CAM_">
|
||||
<define name="PAN_MIN" value="-45"/>
|
||||
<define name="PAN_NEUTRAL" value="33"/>
|
||||
<define name="PAN_MAX" value="156"/>
|
||||
<define name="PAN0" value="0"/>
|
||||
<define name="TILT_MIN" value="-62"/>
|
||||
<define name="TILT_NEUTRAL" value="47"/>
|
||||
<define name="TILT_MAX" value="122"/>
|
||||
<define name="TILT0" value="90"/>
|
||||
<define name="MODE0" value="1"/>
|
||||
</section>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
|
||||
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
|
||||
<section name="BAT">
|
||||
<define name="LOW_BAT_LEVEL" value="7" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="6.5" unit="V"/>
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="6.0" unit="V"/>
|
||||
</section>
|
||||
|
||||
<section name="MISC">
|
||||
<define name="NOMINAL_AIRSPEED" value="13." unit="m/s"/>
|
||||
<define name="CARROT" value="5." unit="s"/>
|
||||
<define name="CONTROL_FREQUENCY" value="60" unit="Hz"/>
|
||||
<define name="XBEE_INIT" value=""ATPL2\rATRN5\rATTT80\r""/>
|
||||
<!-- <define name="NO_XBEE_API_INIT" value="TRUE"/> -->
|
||||
<define name="CONTROL_RATE" value="60" unit="Hz"/>
|
||||
<!-- <define name="XBEE_INIT" value=""ATPL2\rATRN5\rATTT80\r""/>
|
||||
<define name="NO_XBEE_API_INIT" value="TRUE"/> -->
|
||||
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
|
||||
|
||||
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
|
||||
@@ -102,7 +94,7 @@
|
||||
<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.03"/>
|
||||
<define name="ALTITUDE_PGAIN" value="0.03"/>
|
||||
<!-- outer loop saturation -->
|
||||
<define name="ALTITUDE_MAX_CLIMB" value="2."/>
|
||||
|
||||
@@ -113,7 +105,7 @@
|
||||
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
|
||||
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.15" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="-0.01"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.05"/>
|
||||
|
||||
@@ -121,23 +113,21 @@
|
||||
</section>
|
||||
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="-1.20000004768"/>
|
||||
<define name="COURSE_PGAIN" value="1.20000004768"/>
|
||||
<define name="COURSE_DGAIN" value="0.3"/>
|
||||
<define name="COURSE_PRE_BANK_CORRECTION" value="0.2"/>
|
||||
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.75" unit="radians"/>
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.9" unit="radians"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
|
||||
|
||||
<define name="PITCH_PGAIN" value="-12000."/>
|
||||
<define name="PITCH_DGAIN" value="1.5"/>
|
||||
<define name="PITCH_PGAIN" value="12000."/>
|
||||
<define name="PITCH_DGAIN" value="0"/>
|
||||
|
||||
<define name="ELEVATOR_OF_ROLL" value="1000."/>
|
||||
|
||||
<define name="ROLL_SLEW" value="1."/>
|
||||
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="-7500"/>
|
||||
<define name="ROLL_RATE_GAIN" value="0."/>
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="11500"/>
|
||||
<define name="ROLL_RATE_GAIN" value="600."/>
|
||||
</section>
|
||||
|
||||
<section name="AGGRESSIVE" prefix="AGR_">
|
||||
@@ -168,33 +158,44 @@
|
||||
|
||||
|
||||
<modules>
|
||||
<load name="i2c_abuse_test.xml"/>
|
||||
<load name="ins_chimu_spi.xml" >
|
||||
<define name="CHIMU_BIG_ENDIAN" />
|
||||
</load>
|
||||
<load name="cam_point.xml" />
|
||||
<load name="gps_ubx_ucenter.xml">
|
||||
<define name="GPS_PORT_ID" value="GPS_PORT_UART2" />
|
||||
</load>
|
||||
</modules>
|
||||
|
||||
<firmware name="fixedwing">
|
||||
|
||||
<define name="STRONG_WIND"/>
|
||||
<define name="WIND_INFO"/>
|
||||
<define name="WIND_INFO_RET"/>
|
||||
<define name="LOITER_TRIM"/>
|
||||
<define name="ALT_KALMAN"/>
|
||||
<define name="POINT_CAM_PITCH_ROLL" />
|
||||
|
||||
<target name="ap" board="tiny_2.11">
|
||||
<define name="STRONG_WIND"/>
|
||||
<define name="WIND_INFO"/>
|
||||
<define name="WIND_INFO_RET"/>
|
||||
<define name="LOITER_TRIM"/>
|
||||
</target>
|
||||
<target name="sim" board="pc"/>
|
||||
<!-- <target name="sim" board="pc"/> -->
|
||||
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
<subsystem name="gps" type="ublox" />
|
||||
|
||||
|
||||
<!-- Communication -->
|
||||
<subsystem name="telemetry" type="xbee_api">
|
||||
<configure name="MODEM_BAUD" value="B57600"/>
|
||||
<configure name="MODEM_BAUD" value="B9600"/>
|
||||
</subsystem>
|
||||
|
||||
<!-- Actuators -->
|
||||
<subsystem name="control"/>
|
||||
<!-- Sensors -->
|
||||
<subsystem name="navigation"/>
|
||||
<subsystem name="ins" type="xsens">
|
||||
<configure name="XSENS_UART_NR" value="0"/>
|
||||
</subsystem>
|
||||
</firmware>
|
||||
|
||||
<subsystem name="spi_slave_hs"/>
|
||||
|
||||
</firmware>
|
||||
|
||||
</airframe>
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
<define name="BRAKE_AILEVON" value="-0.7f"/>
|
||||
<define name="BRAKE_PITCH" value="0.1f"/>
|
||||
<define name="MAX_BRAKE_RATE" value="130"/>
|
||||
<define name="MAX_BRAKE_RATE" value="80"/>
|
||||
|
||||
<define name="RUDDER_OF_AILERON" value="0.3"/>
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
|
||||
<firmware name="fixedwing">
|
||||
|
||||
<target name="ap" board="tiny_2.11"/>
|
||||
<target name="ap" board="yapa_2.0"/>
|
||||
<target name="sim" board="pc"/>
|
||||
|
||||
<define name="STRONG_WIND"/>
|
||||
|
||||
Executable → Regular
@@ -0,0 +1,317 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
<!--
|
||||
Lisa + Aspirin v2 using SPI only
|
||||
-->
|
||||
|
||||
<airframe name="LisaAspirin2">
|
||||
|
||||
<servos>
|
||||
<servo name="THROTTLE" no="0" min="1000" neutral="1000" max="2000"/>
|
||||
<servo name="AILEVON_LEFT" no="1" min="1200" neutral="1500" max="1800"/>
|
||||
<servo name="ELEVATOR" no="2" min="2000" neutral="1500" max="1000"/>
|
||||
<servo name="RUDDER" no="3" min="1100" neutral="1500" max="1900"/>
|
||||
<servo name="AILEVON_RIGHT" no="4" min="1800" neutral="1500" max="1200"/>
|
||||
</servos>
|
||||
|
||||
<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"/>
|
||||
<axis name="FORCECRASH" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
<set command="YAW" value="@YAW"/>
|
||||
<!-- <set command="FORCECRASH" value="@FLAPS"/> -->
|
||||
</rc_commands>
|
||||
|
||||
<command_laws>
|
||||
<set servo="AILEVON_LEFT" value="@ROLL"/>
|
||||
<set servo="AILEVON_RIGHT" value="-@ROLL"/>
|
||||
<set servo="THROTTLE" value="@THROTTLE"/>
|
||||
<set servo="ELEVATOR" value="@PITCH"/>
|
||||
<set servo="RUDDER" value="@YAW"/>
|
||||
</command_laws>
|
||||
|
||||
<!-- Local magnetic field -->
|
||||
<section name="AHRS" prefix="AHRS_">
|
||||
<define name="H_X" value="0.51562740288882"/>
|
||||
<define name="H_Y" value="-0.05707735220832"/>
|
||||
<define name="H_Z" value="0.85490967783446"/>
|
||||
</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 = 16.4 LSB/(deg/sec) * 57.6 deg/rad = 939.650 LSB/rad/sec / 12bit FRAC: 4096 / 939.65 -->
|
||||
<define name="GYRO_P_SENS" value="4.359" integer="16"/>
|
||||
<define name="GYRO_Q_SENS" value="4.359" integer="16"/>
|
||||
<define name="GYRO_R_SENS" value="4.359" integer="16"/>
|
||||
|
||||
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
||||
|
||||
<!-- SENS = 2048 LSB/g / 9.81 ms2/g = 208.766564729 LSB/ms2 / 10bit FRAC: 1024 / 208.7665 -->
|
||||
<define name="ACCEL_X_SENS" value="9.81" integer="16"/>
|
||||
<define name="ACCEL_Y_SENS" value="9.81" integer="16"/>
|
||||
<define name="ACCEL_Z_SENS" value="9.81" integer="16"/>
|
||||
|
||||
<define name="MAG_X_NEUTRAL" value="0"/>
|
||||
<define name="MAG_Y_NEUTRAL" value="0"/>
|
||||
<define name="MAG_Z_NEUTRAL" value="0"/>
|
||||
|
||||
<define name="MAG_X_SENS" value="1" integer="16"/>
|
||||
<define name="MAG_Y_SENS" value="1" integer="16"/>
|
||||
<define name="MAG_Z_SENS" value="1" integer="16"/>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="0"/>
|
||||
<define name="BODY_TO_IMU_THETA" value="0"/>
|
||||
<define name="BODY_TO_IMU_PSI" value="0"/>
|
||||
</section>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="ROLL_NEUTRAL_DEFAULT" value="-0.0" unit="rad"/>
|
||||
<define name="PITCH_NEUTRAL_DEFAULT" value="0.103000000119" unit="rad"/>
|
||||
</section>
|
||||
|
||||
<section name="TRIM" prefix="COMMAND_">
|
||||
<define name="ROLL_TRIM" value="0"/>
|
||||
<define name="PITCH_TRIM" value="788."/>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<section name="AUTO1" prefix="AUTO1_">
|
||||
<define name="MAX_ROLL" value="0.8"/>
|
||||
<define name="MAX_PITCH" value="0.8"/>
|
||||
</section>
|
||||
|
||||
<section name="BAT">
|
||||
<define name="MilliAmpereOfAdc(adc)" value="((adc) - 505) * 124.0f"/>
|
||||
|
||||
<define name="LOW_BAT_LEVEL" value="10.5" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="10" unit="V"/>
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="9.1" unit="V"/>
|
||||
</section>
|
||||
|
||||
<section name="MISC">
|
||||
<define name="NOMINAL_AIRSPEED" value="13." unit="m/s"/>
|
||||
<define name="CARROT" value="5." unit="s"/>
|
||||
<define name="CONTROL_RATE" value="60" unit="Hz"/>
|
||||
|
||||
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
|
||||
|
||||
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
|
||||
|
||||
<define name="NAV_GLIDE_PITCH_TRIM" value="0."/>
|
||||
</section>
|
||||
|
||||
<section name="CATAPULT" prefix="NAV_CATAPULT_" >
|
||||
<define name="MOTOR_DELAY" value="45" />
|
||||
<define name="HEADING_DELAY" value="(60*3)" />
|
||||
<define name="ACCELERATION_THRESHOLD" value="1.75" />
|
||||
<define name="INITIAL_PITCH" value="(15.0/57.0)" />
|
||||
<define name="INITIAL_THROTTLE" value="1.0" />
|
||||
</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="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.104999996722"/>
|
||||
<!-- outer loop saturation -->
|
||||
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
|
||||
<define name="ALTITUDE_PRE_CLIMB_CORRECTION" value="0.0960000008345"/>
|
||||
<!--
|
||||
<define name="AUTO_PITCH_PGAIN" value="-0.00"/>
|
||||
<define name="AUTO_PITCH_IGAIN" value="-0.00"/>
|
||||
-->
|
||||
|
||||
<!-- auto throttle inner loop -->
|
||||
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.5"/>
|
||||
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.36700001359"/>
|
||||
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.626999974251"/>
|
||||
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
|
||||
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.518000006676" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.00"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0."/>
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.307000011206"/>
|
||||
|
||||
<define name="THROTTLE_SLEW_LIMITER" value="1" unit="s"/>
|
||||
</section>
|
||||
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="1.16600000858"/>
|
||||
<define name="COURSE_DGAIN" value="0.324999988079"/>
|
||||
<define name="COURSE_PRE_BANK_CORRECTION" value="0.889999985695"/>
|
||||
|
||||
<define name="ROLL_MAX_SETPOINT" value="0.586000025272" unit="radians"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
|
||||
|
||||
<define name="PITCH_PGAIN" value="12587.4130859"/>
|
||||
<define name="PITCH_DGAIN" value="1.5"/>
|
||||
|
||||
<define name="ELEVATOR_OF_ROLL" value="1273.88500977"/>
|
||||
|
||||
<define name="ROLL_SLEW" value="1."/>
|
||||
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="7972.02783203"/>
|
||||
<define name="ROLL_RATE_GAIN" value="500."/>
|
||||
</section>
|
||||
|
||||
|
||||
<section name="AGGRESSIVE" prefix="AGR_">
|
||||
<define name="BLEND_START" value="70"/>
|
||||
<define name="BLEND_END" value="60"/>
|
||||
<define name="CLIMB_THROTTLE" value="0.949999988079"/>
|
||||
<define name="CLIMB_PITCH" value="0.352999985218"/>
|
||||
<define name="DESCENT_THROTTLE" value="0."/>
|
||||
<define name="DESCENT_PITCH" value="-0.252000004053"/>
|
||||
<define name="CLIMB_NAV_RATIO" value="0.8"/>
|
||||
<define name="DESCENT_NAV_RATIO" value="1.0"/>
|
||||
</section>
|
||||
|
||||
<section name="FAILSAFE" prefix="FAILSAFE_">
|
||||
<define name="DEFAULT_THROTTLE" value="0.35" unit="%"/>
|
||||
<define name="DEFAULT_ROLL" value="0.17" unit="rad"/>
|
||||
<define name="DEFAULT_PITCH" value="0.08" unit="rad"/>
|
||||
|
||||
<define name="HOME_RADIUS" value="DEFAULT_CIRCLE_RADIUS" unit="m"/>
|
||||
<define name="KILL_MODE_DISTANCE" value="(MAX_DIST_FROM_HOME*1.5)"/>
|
||||
<define name="DELAY_WITHOUT_GPS" value="3" unit="s"/>
|
||||
</section>
|
||||
|
||||
<section name="DIGITAL_CAMERA" prefix="DC_">
|
||||
<define name="AUTOSHOOT_QUARTERSEC_PERIOD" value="6" unit="quarter_second"/>
|
||||
<define name="AUTOSHOOT_METER_GRID" value="50" unit="meter"/>
|
||||
</section>
|
||||
|
||||
|
||||
<modules>
|
||||
<load name="gps_ubx_ucenter.xml"/>
|
||||
<!--
|
||||
<load name="adc_generic.xml">
|
||||
<configure name="ADC_CHANNEL_GENERIC1" value="0" />
|
||||
<configure name="ADC_CHANNEL_GENERIC2" value="1" />
|
||||
</load>
|
||||
-->
|
||||
<load name="light.xml">
|
||||
<define name="LIGHT_LED_STROBE" value="2"/>
|
||||
<define name="LIGHT_LED_NAV" value="3"/>
|
||||
<define name="STROBE_LIGHT_MODE_DEFAULT" value="6"/>
|
||||
<define name="NAV_LIGHT_MODE_DEFAULT" value="4"/>
|
||||
</load>
|
||||
|
||||
<!-- <load name="digital_cam_i2c.xml"/> -->
|
||||
<load name="digital_cam.xml">
|
||||
<define name="DC_SHUTTER_LED" value="3"/>
|
||||
</load>
|
||||
|
||||
<load name="nav_catapult.xml"/>
|
||||
|
||||
</modules>
|
||||
|
||||
<firmware name="fixedwing">
|
||||
|
||||
<target name="fbw" board="lisa_m_2.0">
|
||||
<configure name="SYS_TIME_LED" value="2" />
|
||||
<define name="RADIO_CONTROL_LED" value="4"/>
|
||||
|
||||
<configure name="FLASH_MODE" value="JTAG" />
|
||||
<configure name="NO_LUFTBOOT" value="1" />
|
||||
<!-- <configure name="BMP_PORT" value="/dev/ttyACM0" /> -->
|
||||
|
||||
<define name="OUTBACK_CHALLENGE_DANGEROUS_RULE_RC_LOST_NO_AP" value="1" />
|
||||
<define name="OUTBACK_CHALLENGE_VERY_DANGEROUS_RULE_AP_CAN_FORCE_FAILSAFE" value="1" />
|
||||
|
||||
</target>
|
||||
|
||||
<subsystem name="radio_control" type="ppm"/>
|
||||
<subsystem name="actuators" type="direct"/>
|
||||
<subsystem name="intermcu" type="uart">
|
||||
<configure name="INTERMCU_PORT_NR" value="2" />
|
||||
</subsystem>
|
||||
|
||||
|
||||
</firmware>
|
||||
|
||||
<firmware name="fixedwing">
|
||||
|
||||
<target name="ap" board="lisa_m_2.0">
|
||||
<define name="LISA_M_LONGITUDINAL_X"/>
|
||||
|
||||
<configure name="SEPARATE_FBW" value="1"/>
|
||||
|
||||
<configure name="PERIODIC_FREQUENCY" value="120"/>
|
||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="100"/>
|
||||
<configure name="AHRS_CORRECT_FREQUENCY" value="100"/>
|
||||
<define name="AHRS_TRIGGERED_ATTITUDE_LOOP"/>
|
||||
|
||||
<configure name="FLASH_MODE" value="JTAG" />
|
||||
<configure name="NO_LUFTBOOT" value="1" />
|
||||
<!-- <configure name="BMP_PORT" value="/dev/ttyACM0" /> -->
|
||||
|
||||
|
||||
<configure name="AHRS_ALIGNER_LED" value="1"/>
|
||||
<configure name="CPU_LED" value="1"/>
|
||||
</target>
|
||||
<target name="sim" board="pc"/>
|
||||
|
||||
<define name="AGR_CLIMB"/>
|
||||
<define name="LOITER_TRIM"/>
|
||||
<define name="ALT_KALMAN"/>
|
||||
<define name="TUNE_AGRESSIVE_CLIMB"/>
|
||||
<define name="STRONG_WIND"/>
|
||||
<define name="WIND_INFO"/>
|
||||
<define name="WIND_INFO_RET"/>
|
||||
<define name="RADIO_CONTROL_AUTO1"/>
|
||||
|
||||
|
||||
<subsystem name="imu" type="aspirin_v2.1"/>
|
||||
<subsystem name="ahrs" type="float_dcm" />
|
||||
|
||||
<!-- Communication -->
|
||||
<!-- <subsystem name="telemetry" type="xbee_api"> -->
|
||||
<subsystem name="telemetry" type="transparent">
|
||||
<configure name="MODEM_BAUD" value="B9600"/>
|
||||
<configure name="MODEM_PORT" value="UART2"/>
|
||||
</subsystem>
|
||||
|
||||
<!-- Actuators -->
|
||||
<subsystem name="control"/>
|
||||
<!-- Sensors -->
|
||||
<subsystem name="navigation" type="extra"/>
|
||||
<subsystem name="gps" type="ublox">
|
||||
<configure name="GPS_PORT" value="UART1"/>
|
||||
</subsystem>
|
||||
|
||||
<subsystem name="actuators" type="dummy"/>
|
||||
|
||||
<subsystem name="intermcu" type="uart">
|
||||
<configure name="INTERMCU_PORT_NR" value="5" />
|
||||
</subsystem>
|
||||
|
||||
</firmware>
|
||||
|
||||
<makefile>
|
||||
|
||||
|
||||
</makefile>
|
||||
|
||||
</airframe>
|
||||
@@ -186,7 +186,7 @@ fbw.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLI
|
||||
fbw.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c $(SRC_ARCH)/mcu_periph/uart_arch.c
|
||||
|
||||
fbw.CFLAGS += -DINTER_MCU -DMCU_SPI_LINK -DUSE_SPI -DSPI_SLAVE
|
||||
fbw.srcs += inter_mcu.c link_mcu.c spi.c $(SRC_ARCH)/spi_hw.c
|
||||
fbw.srcs += inter_mcu.c link_mcu_spi.c spi.c $(SRC_ARCH)/spi_hw.c
|
||||
|
||||
fbw.CFLAGS += -DADC -DUSE_AD0
|
||||
fbw.srcs += $(SRC_ARCH)/adc_hw.c
|
||||
@@ -202,7 +202,7 @@ ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLIN
|
||||
ap.srcs += subsystems/datalink/downlink.c $(SRC_ARCH)/mcu_periph/uart_arch.c datalink.c subsystems/datalink/pprz_transport.c
|
||||
|
||||
ap.CFLAGS += -DINTER_MCU -DMCU_SPI_LINK -DUSE_SPI -DSPI_MASTER -DUSE_SPI_SLAVE0
|
||||
ap.srcs += inter_mcu.c link_mcu.c spi.c $(SRC_ARCH)/spi_hw.c
|
||||
ap.srcs += inter_mcu.c link_mcu_spi.c spi.c $(SRC_ARCH)/spi_hw.c
|
||||
|
||||
ap.CFLAGS += -DUSE_GPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B38400
|
||||
ap.srcs += gps_ubx.c gps.c latlong.c
|
||||
|
||||
@@ -195,7 +195,7 @@ fbw.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLI
|
||||
fbw.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c $(SRC_ARCH)/mcu_periph/uart_arch.c
|
||||
|
||||
fbw.CFLAGS += -DINTER_MCU -DMCU_SPI_LINK -DUSE_SPI -DSPI_SLAVE
|
||||
fbw.srcs += inter_mcu.c link_mcu.c spi.c $(SRC_ARCH)/spi_hw.c
|
||||
fbw.srcs += inter_mcu.c link_mcu_spi.c spi.c $(SRC_ARCH)/spi_hw.c
|
||||
|
||||
fbw.CFLAGS += -DADC -DUSE_AD0
|
||||
fbw.srcs += $(SRC_ARCH)/adc_hw.c
|
||||
@@ -208,7 +208,7 @@ ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLIN
|
||||
ap.srcs += subsystems/datalink/downlink.c $(SRC_ARCH)/mcu_periph/uart_arch.c datalink.c subsystems/navigation/traffic_info.c subsystems/datalink/pprz_transport.c
|
||||
|
||||
ap.CFLAGS += -DINTER_MCU -DMCU_SPI_LINK -DUSE_SPI -DSPI_MASTER
|
||||
ap.srcs += inter_mcu.c link_mcu.c spi.c $(SRC_ARCH)/spi_hw.c
|
||||
ap.srcs += inter_mcu.c link_mcu_spi.c spi.c $(SRC_ARCH)/spi_hw.c
|
||||
|
||||
ap.CFLAGS += -DUSE_GPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B38400
|
||||
ap.srcs += gps_ubx.c gps.c latlong.c
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
#
|
||||
# yapa_2.0.makefile
|
||||
#
|
||||
# http://paparazzi.enac.fr/wiki/YAPA/v2.0
|
||||
#
|
||||
|
||||
ARCH=lpc21
|
||||
|
||||
BOARD=yapa
|
||||
BOARD_VERSION=2.0
|
||||
|
||||
BOARD_CFG=\"boards/$(BOARD)_$(BOARD_VERSION).h\"
|
||||
|
||||
|
||||
ifndef FLASH_MODE
|
||||
FLASH_MODE = IAP
|
||||
endif
|
||||
|
||||
|
||||
LPC21ISP_BAUD = 38400
|
||||
LPC21ISP_XTAL = 12000
|
||||
|
||||
#
|
||||
# default LED configuration
|
||||
#
|
||||
ifndef RADIO_CONTROL_LED
|
||||
RADIO_CONTROL_LED = none
|
||||
endif
|
||||
|
||||
ifndef BARO_LED
|
||||
BARO_LED = none
|
||||
endif
|
||||
|
||||
ifndef AHRS_ALIGNER_LED
|
||||
AHRS_ALIGNER_LED = none
|
||||
endif
|
||||
|
||||
ifndef GPS_LED
|
||||
GPS_LED = 2
|
||||
endif
|
||||
|
||||
ifndef SYS_TIME_LED
|
||||
SYS_TIME_LED = 1
|
||||
endif
|
||||
|
||||
|
||||
#
|
||||
# default uart settings
|
||||
#
|
||||
ifndef GPS_PORT
|
||||
GPS_PORT = UART0
|
||||
endif
|
||||
ifndef GPS_BAUD
|
||||
GPS_BAUD = B38400
|
||||
endif
|
||||
|
||||
ifndef MODEM_PORT
|
||||
MODEM_PORT = UART1
|
||||
endif
|
||||
ifndef MODEM_BAUD
|
||||
MODEM_BAUD = B57600
|
||||
endif
|
||||
|
||||
|
||||
ADC_IR_TOP = ADC_0
|
||||
ADC_IR1 = ADC_1
|
||||
ADC_IR2 = ADC_2
|
||||
ADC_IR_NB_SAMPLES = 16
|
||||
ADC_GYRO_NB_SAMPLES = 16
|
||||
|
||||
ADC_GENERIC_NB_SAMPLES = 16
|
||||
|
||||
#
|
||||
# you can use different actuators by adding a configure option to your firmware section
|
||||
# e.g. <configure name="ACTUATORS" value="actuators_ppm/>
|
||||
#
|
||||
ifndef ACTUATORS
|
||||
ACTUATORS = actuators_4017
|
||||
endif
|
||||
|
||||
|
||||
# All targets on the TINY board run on the same processor achitecture
|
||||
$(TARGET).ARCHDIR = $(ARCH)
|
||||
@@ -1,4 +0,0 @@
|
||||
# attitude estimation for fixedwings via dcm algorithm
|
||||
|
||||
|
||||
$(error The attitude_dcm subsystem has been renamed, please replace <subsystem name="attitude" type="dcm"/> with <subsystem name="ahrs" type="dcm"/>)
|
||||
@@ -1 +0,0 @@
|
||||
$(error Attitude estimation via infrared has been implemented as an AHRS subsystem now. Please replace <subsystem name="attitude" type="infrared"/> with <subsystem name="ahrs" type="infrared"/> and add the module <load name="infrared_adc.xml"/> in your airframe file.)
|
||||
@@ -1 +0,0 @@
|
||||
$(error Attitude estimation via infrared has been implemented as an AHRS subsystem now. Please replace <subsystem name="attitude" type="infrared"/> with <subsystem name="ahrs" type="infrared"/> and add the module <load name="infrared_i2c.xml"/> in your airframe file.)
|
||||
@@ -240,15 +240,16 @@ jsbsim.srcs += $(SRC_ARCH)/subsystems/settings_arch.c
|
||||
#
|
||||
|
||||
ifeq ($(BOARD),classix)
|
||||
fbw.CFLAGS += -DMCU_SPI_LINK -DUSE_SPI -DSPI_SLAVE
|
||||
fbw.srcs += $(SRC_FIXEDWING)/link_mcu.c mcu_periph/spi.c $(SRC_ARCH)/mcu_periph/spi_arch.c
|
||||
ap_srcs += $(SRC_FIRMWARE)/fbw_downlink.c
|
||||
ap.CFLAGS += -DMCU_SPI_LINK -DUSE_SPI -DSPI_MASTER -DUSE_SPI_SLAVE0
|
||||
ap.srcs += $(SRC_FIXEDWING)/link_mcu.c mcu_periph/spi.c $(SRC_ARCH)/mcu_periph/spi_arch.c
|
||||
include $(CFG_FIXEDWING)/intermcu_spi.makefile
|
||||
else
|
||||
# Single MCU's run both
|
||||
ap.CFLAGS += $(fbw_CFLAGS)
|
||||
ap.srcs += $(fbw_srcs)
|
||||
ifeq ($(SEPARATE_FBW),)
|
||||
ap.CFLAGS += $(fbw_CFLAGS)
|
||||
ap.srcs += $(fbw_srcs)
|
||||
else
|
||||
# avoid fbw_telemetry_mode error
|
||||
ap_srcs += $(SRC_FIRMWARE)/fbw_downlink.c
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# UBlox LEA 4P
|
||||
|
||||
$(error The gps_ublox_lea4p subsystem has been renamed, please replace <subsystem name="gps" type="ublox_lea4p"/> with <subsystem name="gps" type="ublox_utm"/> in your airframe file.)
|
||||
@@ -1,4 +0,0 @@
|
||||
# UBlox LEA 5H
|
||||
|
||||
$(error The gps_ublox_lea5h subsystem has been renamed, please replace <subsystem name="gps" type="ublox_lea5h"/> with <subsystem name="gps" type="ublox"/> in your airframe file.)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
$(error The imu_booz subsystem has been removed, please replace <subsystem name="imu" type="booz"/> with e.g. <subsystem name="imu" type="yai"/> or "b2_v1.0", "b2_v1.1", "b2_v1.2" as appropriate.)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Hey Emacs, this is a -*- makefile -*-
|
||||
|
||||
# InterMCU type SPI
|
||||
|
||||
|
||||
fbw.CFLAGS += -DMCU_SPI_LINK -DUSE_SPI -DSPI_SLAVE
|
||||
fbw.srcs += $(SRC_FIXEDWING)/link_mcu_spi.c mcu_periph/spi.c $(SRC_ARCH)/mcu_periph/spi_arch.c
|
||||
ap_srcs += $(SRC_FIRMWARE)/fbw_downlink.c
|
||||
ap.CFLAGS += -DMCU_SPI_LINK -DUSE_SPI -DSPI_MASTER -DUSE_SPI_SLAVE0
|
||||
ap.srcs += $(SRC_FIXEDWING)/link_mcu_spi.c mcu_periph/spi.c $(SRC_ARCH)/mcu_periph/spi_arch.c
|
||||
SEPARATE_FBW = 1
|
||||
@@ -0,0 +1,29 @@
|
||||
# Hey Emacs, this is a -*- makefile -*-
|
||||
|
||||
# InterMCU type UART
|
||||
|
||||
|
||||
ifeq ($(TARGET),fbw)
|
||||
ifeq ($(INTERMCU_PORT),none)
|
||||
INTERMCU_PORT_NR = 2
|
||||
endif
|
||||
fbw.CFLAGS += -DINTERMCU_LINK=Uart$(INTERMCU_PORT_NR) -DUSE_UART$(INTERMCU_PORT_NR) -DUART$(INTERMCU_PORT_NR)_BAUD=B57600
|
||||
else
|
||||
ifeq ($(INTERMCU_PORT),none)
|
||||
INTERMCU_PORT_NR = 5
|
||||
endif
|
||||
ap.CFLAGS += -DINTERMCU_LINK=Uart$(INTERMCU_PORT_NR) -DUSE_UART$(INTERMCU_PORT_NR) -DUART$(INTERMCU_PORT_NR)_BAUD=B57600
|
||||
endif
|
||||
|
||||
ifneq ($(TARGET),sim)
|
||||
$(TARGET).CFLAGS += -DINTER_MCU -DMCU_UART_LINK
|
||||
$(TARGET).srcs += ./link_mcu_usart.c
|
||||
endif
|
||||
|
||||
|
||||
|
||||
#############################
|
||||
# CAN:
|
||||
# fbw.srcs += ./link_mcu_can.c ./mcu_periph/can.c ./arch/stm32/mcu_periph/can_arch.c
|
||||
# fbw.CFLAGS += -DINTER_MCU -DMCU_CAN_LINK
|
||||
# $(TARGET).CFLAGS += -DCAN_SJW_TQ=CAN_SJW_1tq -DCAN_BS1_TQ=CAN_BS1_3tq -DCAN_BS2_TQ=CAN_BS2_4tq -DCAN_PRESCALER=12 -DUSE_CAN -DUSE_CAN1 -DUSE_USB_LP_CAN1_RX0_IRQ -DCAN_ERR_RESUME=DISABLE
|
||||
@@ -0,0 +1 @@
|
||||
# for classix and AP only boards
|
||||
+3
-3
@@ -77,7 +77,7 @@
|
||||
|
||||
<message name="BAT" id="12">
|
||||
<field name="throttle" type="int16" unit="pprz"/>
|
||||
<field name="voltage" type="uint8" unit="1e-1V" alt_unit="V" alt_unit_coef="0.1"/>
|
||||
<field name="voltage" type="uint16" unit="1e-1V" alt_unit="V" alt_unit_coef="0.1"/>
|
||||
<field name="amps" type="int16" unit="1e-2A" alt_unit="A" alt_unit_coef="0.01"/>
|
||||
<field name="flight_time" type="uint16" unit="s"/>
|
||||
<field name="kill_auto_throttle" type="uint8" unit="bool"/>
|
||||
@@ -727,7 +727,7 @@
|
||||
<field name="rc_status" type="uint8" values="OK|LOST|REALLY_LOST"/>
|
||||
<field name="frame_rate" type="uint8" unit="Hz"/>
|
||||
<field name="mode" type="uint8" values="MANUAL|AUTO|FAILSAFE"/>
|
||||
<field name="vsupply" type="uint8" unit="decivolt"/>
|
||||
<field name="vsupply" type="uint16" unit="decivolt"/>
|
||||
<field name="current" type="int32" unit="mA"/>
|
||||
</message>
|
||||
|
||||
@@ -1803,7 +1803,7 @@
|
||||
<field name="ap_motors_on" type="uint8" values="MOTORS_OFF|MOTORS_ON"/>
|
||||
<field name="ap_h_mode" type="uint8" values="KILL|RATE|ATTITUDE|HOVER|NAV"/>
|
||||
<field name="ap_v_mode" type="uint8" values="KILL|RC_DIRECT|RC_CLIMB|CLIMB|HOVER|NAV"/>
|
||||
<field name="vsupply" type="uint8" unit="decivolt"/>
|
||||
<field name="vsupply" type="uint16" unit="decivolt"/>
|
||||
<field name="cpu_time" type="uint16" unit="s"/>
|
||||
</message>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<file name="point.h"/>
|
||||
</header>
|
||||
<init fun="cam_init()"/>
|
||||
<periodic fun="cam_periodic()" freq="10."/>
|
||||
<periodic fun="cam_periodic()" />
|
||||
<makefile>
|
||||
<define name="CAM"/>
|
||||
<define name="MOBILE_CAM"/>
|
||||
|
||||
@@ -4,15 +4,6 @@
|
||||
|
||||
// Use (parts of) the following section in airframe file to change
|
||||
|
||||
<section name="DIGITAL_CAMERA" prefix="DC_">
|
||||
|
||||
<configure name="PUSH" value"LED_ON" />
|
||||
<configure name="RELEASE" value"LED_OFF" />
|
||||
|
||||
<configure name="AUTOSHOOT_QUARTERSEC_PERIOD" value="6" unit="quarter_second"/>
|
||||
<configure name="AUTOSHOOT_METER_GRID" value="50" unit="meter"/>
|
||||
</section>
|
||||
|
||||
# ap.CFLAGS += -DGPS_TRIGGERED_FUNCTION="dc_shoot_on_gps"
|
||||
# ap.CFLAGS += -DDC_GPS_TRIGGER_START=1
|
||||
# ap.CFLAGS += -DDC_GPS_TRIGGER_STOP=3
|
||||
@@ -24,6 +15,12 @@
|
||||
<description>Digital camera control (trigger using led)</description>
|
||||
<define name="DC_SHOOT_ON_BUTTON_RELEASE" />
|
||||
<define name="SENSOR_SYNC_SEND" value="1" />
|
||||
|
||||
<define name="DC_PUSH" value="LED_ON" />
|
||||
<define name="DC_RELEASE" value="LED_OFF" />
|
||||
|
||||
<define name="DC_AUTOSHOOT_QUARTERSEC_PERIOD" value="6" description="quarter_second"/>
|
||||
<define name="DC_AUTOSHOOT_METER_GRID" value="50" description="grid in meters"/>
|
||||
</doc>
|
||||
|
||||
<header>
|
||||
|
||||
Executable → Regular
@@ -27,8 +27,8 @@
|
||||
<dl_settings name="climb_accel">
|
||||
<dl_setting MAX="2.0" MIN="0" STEP="0.01" VAR="v_ctl_altitude_pgain" shortname="alt_pgain" module="guidance/energy_ctrl" param="V_CTL_ALTITUDE_PGAIN"/>
|
||||
<dl_setting MAX="1.0" MIN="0" STEP="0.01" VAR="v_ctl_airspeed_pgain" shortname="speed_pgain" param="V_CTL_AIRSPEED_PGAIN"/>
|
||||
<dl_setting MAX="10.0" MIN="-10" STEP="0.5" VAR="v_ctl_max_climb" shortname="max_climb" />
|
||||
<dl_setting MAX="2.0" MIN="-2" STEP="0.05" VAR="v_ctl_max_acceleration" shortname="max_acc_g" />
|
||||
<dl_setting MAX="10.0" MIN="-10" STEP="0.5" VAR="v_ctl_max_climb" shortname="max_climb" param="V_CTL_MAX_CLIMB"/>
|
||||
<dl_setting MAX="2.0" MIN="-2" STEP="0.05" VAR="v_ctl_max_acceleration" shortname="max_acc_g" param="V_CTL_MAX_ACCELERATION"/>
|
||||
</dl_settings>
|
||||
|
||||
<dl_settings name="energy_loop">
|
||||
@@ -46,10 +46,10 @@
|
||||
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_pitch_of_airspeed_igain" shortname="I_pitch_air" />
|
||||
<dl_setting MAX="5." MIN="0" STEP="0.01" VAR="v_ctl_auto_pitch_of_airspeed_dgain" shortname="D_pitch_air" />
|
||||
|
||||
<dl_setting MAX="1." MIN="0" STEP="0.01" VAR="v_ctl_energy_total_pgain" shortname="P_en_tot"/>
|
||||
<dl_setting MAX="1." MIN="0" STEP="0.01" VAR="v_ctl_energy_total_igain" shortname="I_en_tot"/>
|
||||
<dl_setting MAX="1." MIN="0" STEP="0.01" VAR="v_ctl_energy_diff_pgain" shortname="P_en_dis"/>
|
||||
<dl_setting MAX="1." MIN="0" STEP="0.01" VAR="v_ctl_energy_diff_igain" shortname="I_en_dis"/>
|
||||
<dl_setting MAX="1." MIN="0" STEP="0.01" VAR="v_ctl_energy_total_pgain" shortname="P_en_tot" param="V_CTL_ENERGY_TOT_PGAIN"/>
|
||||
<dl_setting MAX="1." MIN="0" STEP="0.01" VAR="v_ctl_energy_total_igain" shortname="I_en_tot" param="V_CTL_ENERGY_TOT_IGAIN"/>
|
||||
<dl_setting MAX="1." MIN="0" STEP="0.01" VAR="v_ctl_energy_diff_pgain" shortname="P_en_dis" param="V_CTL_ENERGY_DIFF_PGAIN"/>
|
||||
<dl_setting MAX="1." MIN="0" STEP="0.01" VAR="v_ctl_energy_diff_igain" shortname="I_en_dis" param="V_CTL_ENERGY_DIFF_IGAIN"/>
|
||||
|
||||
</dl_settings>
|
||||
|
||||
|
||||
@@ -165,6 +165,47 @@
|
||||
settings=" settings/test_fixedwing_actuators.xml"
|
||||
gui_color="blue"
|
||||
/>
|
||||
<!-- Special Combinnations -->
|
||||
<aircraft
|
||||
name="DualBoard_AP_FBW"
|
||||
ac_id="31"
|
||||
airframe="airframes/CDW/DualBoardApFbw.xml"
|
||||
radio="radios/R6107SP_7ch.xml"
|
||||
telemetry="telemetry/default_fixedwing_imu.xml"
|
||||
flight_plan="flight_plans/versatile.xml"
|
||||
settings=" settings/fixedwing_basic.xml settings/control/ctl_basic.xml"
|
||||
gui_color="blue"
|
||||
/>
|
||||
<aircraft
|
||||
name="Yapa2_XSens"
|
||||
ac_id="32"
|
||||
airframe="airframes/CDW/yapa_xsens.xml"
|
||||
radio="radios/R6107SP_7ch.xml"
|
||||
telemetry="telemetry/default_fixedwing_imu_9k6.xml"
|
||||
flight_plan="flight_plans/versatile.xml"
|
||||
settings=" settings/fixedwing_basic.xml settings/control/ctl_basic.xml settings/estimation/ins_neutrals.xml settings/control/tune_agr_climb.xml settings/modules/dc.xml"
|
||||
gui_color="blue"
|
||||
/>
|
||||
<aircraft
|
||||
name="Classix_XSens"
|
||||
ac_id="33"
|
||||
airframe="airframes/CDW/classix.xml"
|
||||
radio="radios/cockpitSX.xml"
|
||||
telemetry="telemetry/default_fixedwing_imu_9k6.xml"
|
||||
flight_plan="flight_plans/versatile.xml"
|
||||
settings=" settings/fixedwing_basic.xml settings/control/ctl_basic.xml settings/modules/photogrammetry_calculator.xml settings/modules/dc.xml"
|
||||
gui_color="blue"
|
||||
/>
|
||||
<aircraft
|
||||
name="tiny2_chimu_spi"
|
||||
ac_id="22"
|
||||
airframe="airframes/CDW/tiny2_chimu_spi_pt.xml"
|
||||
radio="radios/R6107SP_7ch.xml"
|
||||
telemetry="telemetry/default_fixedwing_imu_9k6.xml"
|
||||
flight_plan="flight_plans/versatile.xml"
|
||||
settings=" settings/fixedwing_basic.xml settings/control/ctl_basic.xml settings/estimation/ins_neutrals.xml settings/modules/cam.xml"
|
||||
gui_color="blue"
|
||||
/>
|
||||
<!-- Hardware test Lisa/L -->
|
||||
<aircraft
|
||||
name="LisaLv11_Booz2v12_RC"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
DEF_VER=v4.1_unstable
|
||||
DEF_VER=v4.9_devel
|
||||
|
||||
# First try git describe (if running on a git repo),
|
||||
# then use default version from above (for release tarballs).
|
||||
|
||||
@@ -56,7 +56,7 @@ static inline void uart_set_baudrate(struct uart_periph* p, uint32_t baud) {
|
||||
((uartRegs_t *)(p->reg_addr))->fcr = UART_FIFO_8;
|
||||
}
|
||||
|
||||
void uart_periph_set_baudrate(struct uart_periph* p, uint32_t baud) {
|
||||
void uart_periph_set_baudrate(struct uart_periph* p, uint32_t baud, bool_t hw_flow_control __attribute__ ((unused))) {
|
||||
uart_disable_interrupts(p);
|
||||
uart_set_baudrate(p, baud);
|
||||
uart_enable_interrupts(p);
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
#include "fms/fms_serial_port.h"
|
||||
|
||||
|
||||
void uart_periph_set_baudrate(struct uart_periph* p, uint16_t baud) {
|
||||
void uart_periph_set_baudrate(struct uart_periph* p, uint16_t baud, bool_t hw_flow_control __attribute__ ((unused))) {
|
||||
struct FmsSerialPort* fmssp;
|
||||
// close serial port if already open
|
||||
if (p->reg_addr != NULL) {
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
|
||||
void adc1_2_isr(void);
|
||||
|
||||
uint8_t adc_new_data_trigger;
|
||||
volatile uint8_t adc_new_data_trigger;
|
||||
|
||||
/* Static functions */
|
||||
|
||||
@@ -312,80 +312,62 @@ static inline void adc_init_single(uint32_t adc,
|
||||
}
|
||||
|
||||
/* Configure ADC */
|
||||
//adc_reset(adc);
|
||||
|
||||
/* XXX: This register fiddeling code should be moved to libopencm3! */
|
||||
/* Explicitly setting most registers, reset/default values are correct for most */
|
||||
|
||||
/* Set CR1 register. */
|
||||
{
|
||||
uint32_t tmpreg = ADC_CR1(adc);
|
||||
|
||||
/* Clear DUALMOD and SCAN. */
|
||||
tmpreg &= ~(ADC_CR1_DUALMOD_MASK | ADC_CR1_SCAN);
|
||||
|
||||
/* Set correct DUALMOD and SCAN. */
|
||||
tmpreg |= ADC_CR1_DUALMOD_IND | ADC_CR1_SCAN;
|
||||
|
||||
ADC_CR1(adc) = tmpreg;
|
||||
}
|
||||
/* Clear AWDEN */
|
||||
adc_disable_analog_watchdog_regular(adc);
|
||||
/* Clear JAWDEN */
|
||||
adc_disable_analog_watchdog_injected(adc);
|
||||
/* Clear DISCEN */
|
||||
adc_disable_discontinuous_mode_regular(adc);
|
||||
/* Clear JDISCEN */
|
||||
adc_disable_discontinuous_mode_injected(adc);
|
||||
/* Clear JAUTO */
|
||||
adc_disable_automatic_injected_group_conversion(adc);
|
||||
/* Set SCAN */
|
||||
adc_enable_scan_mode(adc);
|
||||
/* Enable ADC<X> JEOC interrupt (Set JEOCIE) */
|
||||
adc_enable_eoc_interrupt_injected(adc);
|
||||
/* Clear AWDIE */
|
||||
adc_disable_awd_interrupt(adc);
|
||||
/* Clear EOCIE */
|
||||
adc_disable_eoc_interrupt(adc);
|
||||
|
||||
/* Set CR2 register. */
|
||||
{
|
||||
uint32_t tmpreg = ADC_CR2(adc);
|
||||
|
||||
/* Clear CONT, ALIGN and EXTSEL. */
|
||||
tmpreg &= ~(ADC_CR2_CONT | ADC_CR2_ALIGN | ADC_CR2_EXTSEL_MASK);
|
||||
|
||||
/* Set correct CONT, ALIGN and EXTSEL. */
|
||||
tmpreg |= ADC_CR2_EXTSEL_SWSTART;
|
||||
|
||||
ADC_CR2(adc) = tmpreg;
|
||||
}
|
||||
|
||||
/* Set SQR1 register. */
|
||||
{
|
||||
uint32_t tmpreg = ADC_SQR1(adc);
|
||||
|
||||
/* Clear regular channel sequence length. */
|
||||
tmpreg &= ~(0xF); //~(ADC_SQR1_L_MSK);
|
||||
|
||||
/* Set regular channel sequence length. */
|
||||
tmpreg |= 0;
|
||||
|
||||
ADC_SQR1(adc) = tmpreg;
|
||||
}
|
||||
|
||||
/* Set JSQR1 injected sequence length. */
|
||||
{
|
||||
uint32_t tmpreg = ADC_JSQR(adc);
|
||||
|
||||
/* Clear injected channel sequence length. */
|
||||
tmpreg &= ~(0x2 << 20); //~(ADC_JSQR_JL_MSK);
|
||||
|
||||
/* Set injected channel sequence length. */
|
||||
tmpreg |= (num_channels << ADC_JSQR_JL_LSB);
|
||||
|
||||
ADC_JSQR(adc) = tmpreg;
|
||||
}
|
||||
/* Clear TSVREFE */
|
||||
adc_disable_temperature_sensor(adc);
|
||||
/* Clear EXTTRIG */
|
||||
adc_disable_external_trigger_regular(adc);
|
||||
/* Clear ALIGN */
|
||||
adc_set_right_aligned(adc);
|
||||
/* Clear DMA */
|
||||
adc_disable_dma(adc);
|
||||
/* Clear CONT */
|
||||
adc_set_single_conversion_mode(adc);
|
||||
|
||||
rank = 0;
|
||||
if (chan1) {
|
||||
adc_set_conversion_time(adc, adc_channel_map[0], ADC_SMPR1_SMP_41DOT5CYC);
|
||||
channels[rank] = adc_channel_map[0];
|
||||
adc_set_sample_time(adc, adc_channel_map[0], ADC_SMPR1_SMP_41DOT5CYC);
|
||||
channels[rank] = adc_channel_map[0];
|
||||
rank++;
|
||||
}
|
||||
if (chan2) {
|
||||
adc_set_conversion_time(adc, adc_channel_map[1], ADC_SMPR1_SMP_41DOT5CYC);
|
||||
channels[rank] = adc_channel_map[1];
|
||||
adc_set_sample_time(adc, adc_channel_map[1], ADC_SMPR1_SMP_41DOT5CYC);
|
||||
channels[rank] = adc_channel_map[1];
|
||||
rank++;
|
||||
}
|
||||
if (chan3) {
|
||||
adc_set_conversion_time(adc, adc_channel_map[2], ADC_SMPR1_SMP_41DOT5CYC);
|
||||
channels[rank] = adc_channel_map[2];
|
||||
adc_set_sample_time(adc, adc_channel_map[2], ADC_SMPR1_SMP_41DOT5CYC);
|
||||
channels[rank] = adc_channel_map[2];
|
||||
rank++;
|
||||
}
|
||||
if (chan4) {
|
||||
adc_set_conversion_time(adc, adc_channel_map[3], ADC_SMPR1_SMP_41DOT5CYC);
|
||||
channels[rank] = adc_channel_map[3];
|
||||
adc_set_sample_time(adc, adc_channel_map[3], ADC_SMPR1_SMP_41DOT5CYC);
|
||||
channels[rank] = adc_channel_map[3];
|
||||
}
|
||||
|
||||
adc_set_injected_sequence(adc, num_channels, channels);
|
||||
@@ -398,15 +380,11 @@ static inline void adc_init_single(uint32_t adc,
|
||||
adc_enable_external_trigger_injected(adc, ADC_CR2_JEXTSEL_TIM2_TRGO);
|
||||
#endif
|
||||
|
||||
/* Enable ADC<X> JEOC interrupt */
|
||||
adc_enable_jeoc_interrupt(adc);
|
||||
|
||||
/* Enable ADC<X> */
|
||||
adc_on(adc);
|
||||
adc_power_on(adc);
|
||||
|
||||
/* Enable ADC<X> reset calibaration register */
|
||||
adc_reset_calibration(adc);
|
||||
|
||||
/* Check the end of ADC<X> reset calibration */
|
||||
while ((ADC_CR2(adc) & ADC_CR2_RSTCAL) != 0);
|
||||
/* Start ADC<X> calibaration */
|
||||
|
||||
@@ -29,15 +29,22 @@
|
||||
#include <libopencm3/stm32/f1/gpio.h>
|
||||
#include "std.h"
|
||||
|
||||
void uart_periph_set_baudrate(struct uart_periph* p, uint32_t baud) {
|
||||
void uart_periph_set_baudrate(struct uart_periph* p, uint32_t baud, bool_t hw_flow_control) {
|
||||
|
||||
/* Configure USART */
|
||||
usart_set_baudrate((u32)p->reg_addr, baud);
|
||||
usart_set_databits((u32)p->reg_addr, 8);
|
||||
usart_set_stopbits((u32)p->reg_addr, USART_STOPBITS_1);
|
||||
usart_set_parity((u32)p->reg_addr, USART_PARITY_NONE);
|
||||
usart_set_flow_control((u32)p->reg_addr, USART_FLOWCONTROL_NONE);
|
||||
usart_set_mode((u32)p->reg_addr, USART_MODE_TX_RX);
|
||||
|
||||
if (hw_flow_control) {
|
||||
usart_set_flow_control((u32)p->reg_addr, USART_FLOWCONTROL_RTS_CTS);
|
||||
}
|
||||
else {
|
||||
usart_set_flow_control((u32)p->reg_addr, USART_FLOWCONTROL_NONE);
|
||||
}
|
||||
|
||||
/* Enable USART1 Receive interrupts */
|
||||
USART_CR1((u32)p->reg_addr) |= USART_CR1_RXNEIE;
|
||||
|
||||
@@ -126,8 +133,19 @@ void uart1_init( void ) {
|
||||
gpio_set_mode(GPIO_BANK_USART1_RX, GPIO_MODE_INPUT,
|
||||
GPIO_CNF_INPUT_FLOAT, GPIO_USART1_RX);
|
||||
|
||||
/* Configure USART */
|
||||
uart_periph_set_baudrate(&uart1, UART1_BAUD);
|
||||
#if UART1_HW_FLOW_CONTROL
|
||||
#warning "USING UART1 FLOW CONTROL. Make sure to pull down CTS if you are not connecting any flow-control-capable hardware."
|
||||
gpio_set_mode(GPIO_BANK_USART1_RTS, GPIO_MODE_OUTPUT_50_MHZ,
|
||||
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO_USART1_RTS);
|
||||
gpio_set_mode(GPIO_BANK_USART1_CTS, GPIO_MODE_INPUT,
|
||||
GPIO_CNF_INPUT_FLOAT, GPIO_USART1_CTS);
|
||||
|
||||
/* Configure USART1, enable hardware flow control*/
|
||||
uart_periph_set_baudrate(&uart1, UART1_BAUD, TRUE);
|
||||
#else
|
||||
/* Configure USART1, no flow control */
|
||||
uart_periph_set_baudrate(&uart1, UART1_BAUD, FALSE);
|
||||
#endif
|
||||
}
|
||||
|
||||
void usart1_isr(void) { usart_isr(&uart1); }
|
||||
@@ -155,7 +173,7 @@ void uart2_init( void ) {
|
||||
GPIO_CNF_INPUT_FLOAT, GPIO_USART2_RX);
|
||||
|
||||
/* Configure USART */
|
||||
uart_periph_set_baudrate(&uart2, UART2_BAUD);
|
||||
uart_periph_set_baudrate(&uart2, UART2_BAUD, FALSE);
|
||||
}
|
||||
|
||||
void usart2_isr(void) { usart_isr(&uart2); }
|
||||
@@ -185,7 +203,7 @@ void uart3_init( void ) {
|
||||
GPIO_CNF_INPUT_FLOAT, GPIO_USART3_PR_RX);
|
||||
|
||||
/* Configure USART */
|
||||
uart_periph_set_baudrate(&uart3, UART3_BAUD);
|
||||
uart_periph_set_baudrate(&uart3, UART3_BAUD, FALSE);
|
||||
}
|
||||
|
||||
void usart3_isr(void) { usart_isr(&uart3); }
|
||||
@@ -214,7 +232,7 @@ void uart5_init( void ) {
|
||||
GPIO_CNF_INPUT_FLOAT, GPIO_UART5_RX);
|
||||
|
||||
/* Configure USART */
|
||||
uart_periph_set_baudrate(&uart5, UART5_BAUD);
|
||||
uart_periph_set_baudrate(&uart5, UART5_BAUD, FALSE);
|
||||
}
|
||||
|
||||
void uart5_isr(void) { usart_isr(&uart5); }
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#include "boards/tiny_2.1.h"
|
||||
|
||||
|
||||
// ADC / 1023 * 3.3V * (10k + 1k5) / 1k5
|
||||
#undef DefaultVoltageOfAdc
|
||||
#define DefaultVoltageOfAdc(adc) (0.0247311828*adc)
|
||||
@@ -71,7 +71,7 @@ extern uint8_t lateral_mode;
|
||||
|
||||
#define THROTTLE_THRESHOLD_TAKEOFF (pprz_t)(MAX_PPRZ * 0.9)
|
||||
|
||||
extern uint8_t vsupply;
|
||||
extern uint16_t vsupply;
|
||||
extern float energy;
|
||||
|
||||
extern bool_t launch;
|
||||
|
||||
@@ -20,34 +20,45 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file firmwares/fixedwing/guidance/guidance_v.c
|
||||
* Vertical control using total energy control for fixed wing vehicles.
|
||||
* @file firmwares/fixedwing/guidance/energy_ctrl.c
|
||||
* Total Energy (speed + height) control for fixed wing vehicles.
|
||||
*
|
||||
* Energy:
|
||||
* @f{eqnarray*}{
|
||||
* E &=& mgh + \frac{1}{2}mV^2 \\
|
||||
* \frac{\dot{E}}{V} &=& \left(\gamma + \frac{\dot{V}}{g}\right) W
|
||||
* @f}
|
||||
*
|
||||
* Equilibrium:
|
||||
* @f[
|
||||
* \frac{\dot{V}}{g} = \frac{\mbox{Thrust}}{W} - \frac{\mbox{Drag}}{W} - \sin(\gamma)
|
||||
* @f]
|
||||
* with:
|
||||
* @f[
|
||||
* \frac{\mbox{Drag}}{\mbox{Weight}} = \left(\frac{C_l}{C_d}\right)^{-1}
|
||||
* @f]
|
||||
*
|
||||
* - glide angle: @f$\dot{V}=0, T=0 \rightarrow \gamma = \frac{C_d}{C_l}@f$
|
||||
* - level flight: @f$\dot{V}=0, \gamma=0 \rightarrow \frac{W}{T} = \frac{C_l}{C_d}@f$
|
||||
*
|
||||
* Strategy:
|
||||
* - thrust = path + acceleration[g] (total energy)
|
||||
* - pitch = path - acceleration[g] (energy balance)
|
||||
*
|
||||
* Pseudo-Control Unit = dimensionless acceleration [g]
|
||||
*
|
||||
* - pitch <-> pseudocontrol: sin(Theta) steers Vdot in [g]
|
||||
* - throttle <-> pseudocontrol: motor characteristic as function of V x throttle steeds VDot
|
||||
*
|
||||
* @dot
|
||||
* digraph total_energy_control {
|
||||
* node [shape=record];
|
||||
* b [label="attitude loop" URL="\ref attitude_loop"];
|
||||
* c [label="climb loop" URL="\ref v_ctl_climb_loop"];
|
||||
* b -> c [ arrowhead="open", style="dashed" ];
|
||||
* }
|
||||
* @enddot
|
||||
*
|
||||
|
||||
|
||||
=================================================
|
||||
Energy:
|
||||
------
|
||||
E = mgh + 1/2mV^2
|
||||
Edot / V = (gamma + Vdot/g) * W
|
||||
|
||||
equilibrium
|
||||
|
||||
Vdot / g = Thrust/W - Drag/W - sin(gamma)
|
||||
with: Drag/Weight = (Cl/Cd)^-1
|
||||
|
||||
-glide angle: Vdot = 0, T=0 ==> gamma = Cd/Cl
|
||||
-level flight: Vdot = 0, gamma=0 ==> W/T = Cl/Cd
|
||||
=================================================
|
||||
|
||||
Strategy: thrust = path + acceleration[g] (total energy)
|
||||
pitch = path - acceleration[g] (energy balance)
|
||||
|
||||
Pseudo-Control Unit = dimensionless acceleration [g]
|
||||
|
||||
- pitch <-> pseudocontrol: sin(Theta) steers Vdot in [g]
|
||||
- throttle <-> pseudocontrol: motor characteristic as function of V x throttle steeds VDot
|
||||
|
||||
*/
|
||||
|
||||
#pragma message "CAUTION! Using TOTAL ENERGY CONTROLLER: Experimental!"
|
||||
@@ -170,7 +181,14 @@ void v_ctl_init( void ) {
|
||||
|
||||
/* outer loop */
|
||||
v_ctl_altitude_setpoint = 0.;
|
||||
|
||||
#ifdef V_CTL_ALTITUDE_PGAIN
|
||||
v_ctl_altitude_pgain = V_CTL_ALTITUDE_PGAIN;
|
||||
#endif
|
||||
#ifdef V_CTL_AIRSPEED_PGAIN
|
||||
v_ctl_airspeed_pgain = V_CTL_AIRSPEED_PGAIN;
|
||||
#endif
|
||||
|
||||
v_ctl_auto_airspeed_setpoint = NOMINAL_AIRSPEED;
|
||||
|
||||
/* inner loops */
|
||||
@@ -178,8 +196,23 @@ void v_ctl_init( void ) {
|
||||
|
||||
/* "auto throttle" inner loop parameters */
|
||||
v_ctl_auto_throttle_nominal_cruise_throttle = V_CTL_AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE;
|
||||
|
||||
#ifdef V_CTL_AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT
|
||||
v_ctl_auto_throttle_climb_throttle_increment = V_CTL_AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT;
|
||||
v_ctl_auto_throttle_pitch_of_vz_pgain = V_CTL_AUTO_THROTTLE_PITCH_OF_VZ_PGAIN;
|
||||
#endif
|
||||
|
||||
#ifdef V_CTL_AUTO_THROTTLE_OF_AIRSPEED_PGAIN
|
||||
v_ctl_auto_throttle_of_airspeed_pgain = V_CTL_AUTO_THROTTLE_OF_AIRSPEED_PGAIN;
|
||||
v_ctl_auto_throttle_of_airspeed_igain = V_CTL_AUTO_THROTTLE_OF_AIRSPEED_IGAIN;
|
||||
#endif
|
||||
|
||||
#ifdef V_CTL_ENERGY_TOT_PGAIN
|
||||
v_ctl_energy_total_pgain = V_CTL_ENERGY_TOT_PGAIN;
|
||||
v_ctl_energy_total_igain = V_CTL_ENERGY_TOT_IGAIN;
|
||||
v_ctl_energy_diff_pgain = V_CTL_ENERGY_DIFF_PGAIN;
|
||||
v_ctl_energy_diff_igain = V_CTL_ENERGY_DIFF_IGAIN;
|
||||
#endif
|
||||
|
||||
v_ctl_throttle_setpoint = 0;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "mcu.h"
|
||||
#include "mcu_periph/sys_time.h"
|
||||
|
||||
#include "link_mcu.h"
|
||||
#include "link_mcu_spi.h"
|
||||
|
||||
// Sensors
|
||||
#if USE_GPS
|
||||
@@ -130,7 +130,7 @@ uint16_t autopilot_flight_time = 0;
|
||||
/** Supply voltage in deciVolt.
|
||||
* This the ap copy of the measurement from fbw
|
||||
*/
|
||||
uint8_t vsupply;
|
||||
uint16_t vsupply;
|
||||
|
||||
/** Supply current in milliAmpere.
|
||||
* This the ap copy of the measurement from fbw
|
||||
@@ -188,7 +188,7 @@ void init_ap( void ) {
|
||||
stateInit();
|
||||
|
||||
/************* Links initialization ***************/
|
||||
#if defined MCU_SPI_LINK
|
||||
#if defined MCU_SPI_LINK || defined MCU_UART_LINK
|
||||
link_mcu_init();
|
||||
#endif
|
||||
#if USE_AUDIO_TELEMETRY
|
||||
@@ -533,7 +533,7 @@ void attitude_loop( void ) {
|
||||
|
||||
ap_state->commands[COMMAND_PITCH] = h_ctl_elevator_setpoint;
|
||||
|
||||
#if defined MCU_SPI_LINK
|
||||
#if defined MCU_SPI_LINK || defined MCU_UART_LINK
|
||||
link_mcu_send();
|
||||
#elif defined INTER_MCU && defined SINGLE_MCU
|
||||
/**Directly set the flag indicating to FBW that shared buffer is available*/
|
||||
@@ -639,7 +639,7 @@ void event_task_ap( void ) {
|
||||
DatalinkEvent();
|
||||
|
||||
|
||||
#ifdef MCU_SPI_LINK
|
||||
#if defined MCU_SPI_LINK || defined MCU_UART_LINK
|
||||
link_mcu_event_task();
|
||||
#endif
|
||||
|
||||
|
||||
@@ -46,7 +46,11 @@
|
||||
#include "mcu_periph/i2c.h"
|
||||
|
||||
#ifdef MCU_SPI_LINK
|
||||
#include "link_mcu.h"
|
||||
#include "link_mcu_spi.h"
|
||||
#endif
|
||||
|
||||
#ifdef MCU_UART_LINK
|
||||
#include "link_mcu_usart.h"
|
||||
#endif
|
||||
|
||||
uint8_t fbw_mode;
|
||||
@@ -125,7 +129,7 @@ void event_task_fbw( void) {
|
||||
i2c_event();
|
||||
|
||||
#ifdef INTER_MCU
|
||||
#ifdef MCU_SPI_LINK
|
||||
#if defined MCU_SPI_LINK | defined MCU_UART_LINK
|
||||
link_mcu_event_task();
|
||||
#endif /* MCU_SPI_LINK */
|
||||
|
||||
@@ -135,9 +139,11 @@ void event_task_fbw( void) {
|
||||
inter_mcu_event_task();
|
||||
command_roll_trim = ap_state->command_roll_trim;
|
||||
command_pitch_trim = ap_state->command_pitch_trim;
|
||||
#ifndef OUTBACK_CHALLENGE_DANGEROUS_RULE_RC_LOST_NO_AP
|
||||
if (ap_ok && fbw_mode == FBW_MODE_FAILSAFE) {
|
||||
fbw_mode = FBW_MODE_AUTO;
|
||||
}
|
||||
#endif
|
||||
if (fbw_mode == FBW_MODE_AUTO) {
|
||||
SetCommands(ap_state->commands);
|
||||
}
|
||||
@@ -154,6 +160,17 @@ void event_task_fbw( void) {
|
||||
#endif /**Else the buffer is filled even if the last receive was not correct */
|
||||
}
|
||||
|
||||
#if OUTBACK_CHALLENGE_VERY_DANGEROUS_RULE_AP_CAN_FORCE_FAILSAFE
|
||||
#warning DANGER DANGER DANGER DANGER: Outback Challenge Rule FORCE-CRASH-RULE: DANGER DANGER: AP is now capable to FORCE your FBW in failsafe mode EVEN IF RC IS NOT LOST: Consider the consequences.
|
||||
|
||||
int crash = 0;
|
||||
if (commands[COMMAND_FORCECRASH] >= 8000)
|
||||
{
|
||||
set_failsafe_mode();
|
||||
crash = 1;
|
||||
}
|
||||
|
||||
#endif
|
||||
#ifdef ACTUATORS
|
||||
if (fbw_new_actuators > 0)
|
||||
{
|
||||
@@ -170,6 +187,13 @@ void event_task_fbw( void) {
|
||||
|
||||
SetActuatorsFromCommands(trimmed_commands);
|
||||
fbw_new_actuators = 0;
|
||||
#if OUTBACK_CHALLENGE_VERY_DANGEROUS_RULE_AP_CAN_FORCE_FAILSAFE
|
||||
if (crash == 1)
|
||||
{
|
||||
for (;;) {}
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -192,7 +216,12 @@ void periodic_task_fbw( void ) {
|
||||
#ifdef RADIO_CONTROL
|
||||
radio_control_periodic_task();
|
||||
if (fbw_mode == FBW_MODE_MANUAL && radio_control.status == RC_REALLY_LOST) {
|
||||
#ifdef OUTBACK_CHALLENGE_DANGEROUS_RULE_RC_LOST_NO_AP
|
||||
#warning WARNING DANGER: OUTBACK_CHALLENGE RULE RC_LOST_NO_AP defined. If you loose RC you will NOT go to automatically go to AUTO2 Anymore!!
|
||||
set_failsafe_mode();
|
||||
#else
|
||||
fbw_mode = FBW_MODE_AUTO;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -204,6 +233,11 @@ void periodic_task_fbw( void ) {
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MCU_UART_LINK
|
||||
inter_mcu_fill_fbw_state();
|
||||
link_mcu_periodic_task();
|
||||
#endif
|
||||
|
||||
#ifdef DOWNLINK
|
||||
fbw_downlink_periodic_task();
|
||||
#endif
|
||||
|
||||
@@ -30,7 +30,7 @@ static struct ap_state _ap_state;
|
||||
struct fbw_state* fbw_state = &_fbw_state;
|
||||
struct ap_state* ap_state = &_ap_state;
|
||||
#else /* SINGLE_MCU */
|
||||
#include "link_mcu.h"
|
||||
#include "link_mcu_spi.h"
|
||||
struct fbw_state* fbw_state = &link_mcu_from_fbw_msg.payload.from_fbw;
|
||||
struct ap_state* ap_state = &link_mcu_from_ap_msg.payload.from_ap;
|
||||
#endif /* ! SINGLE_MCU */
|
||||
|
||||
@@ -58,8 +58,8 @@ struct fbw_state {
|
||||
#endif
|
||||
uint8_t status;
|
||||
uint8_t nb_err;
|
||||
uint8_t vsupply; /* 1e-1 V */
|
||||
int32_t current; /* milliAmps */
|
||||
uint16_t vsupply; ///< 1e-1 V
|
||||
int32_t current; ///< milliAmps
|
||||
};
|
||||
|
||||
struct ap_state {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "link_mcu.h"
|
||||
#include "link_mcu_spi.h"
|
||||
#include "mcu_periph/spi.h"
|
||||
|
||||
struct link_mcu_msg link_mcu_from_ap_msg;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user