mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-04 22:17:01 +08:00
Merge remote-tracking branch 'paparazzi/master' into telemetry
Conflicts: conf/firmwares/subsystems/fixedwing/autopilot.makefile sw/airborne/boards/ardrone/navdata.c sw/airborne/boards/lisa_m/baro_ms5611_i2c.c sw/airborne/boards/lisa_m/baro_ms5611_spi.c sw/airborne/firmwares/fixedwing/ap_downlink.h sw/airborne/firmwares/fixedwing/main_ap.c sw/airborne/firmwares/rotorcraft/telemetry.h sw/airborne/mcu_periph/i2c.c sw/airborne/subsystems/ahrs/ahrs_float_cmpl.c sw/airborne/subsystems/ahrs/ahrs_float_lkf.c sw/airborne/subsystems/datalink/downlink.h sw/tools/gen_periodic.ml
This commit is contained in:
@@ -40,6 +40,7 @@
|
|||||||
# /conf/
|
# /conf/
|
||||||
/conf/conf.xml
|
/conf/conf.xml
|
||||||
/conf/conf.xml.20*
|
/conf/conf.xml.20*
|
||||||
|
/conf/conf_personal.xml.20*
|
||||||
/conf/control_panel.xml
|
/conf/control_panel.xml
|
||||||
/conf/%gconf.xml
|
/conf/%gconf.xml
|
||||||
/conf/maps_data/*
|
/conf/maps_data/*
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ PAPARAZZI_SRC=$(shell pwd)
|
|||||||
empty=
|
empty=
|
||||||
space=$(empty) $(empty)
|
space=$(empty) $(empty)
|
||||||
ifneq ($(findstring $(space),$(PAPARAZZI_SRC)),)
|
ifneq ($(findstring $(space),$(PAPARAZZI_SRC)),)
|
||||||
$(error No fucking spaces allowed in the current directory name)
|
$(error No spaces allowed in the current directory name)
|
||||||
endif
|
endif
|
||||||
ifeq ($(PAPARAZZI_HOME),)
|
ifeq ($(PAPARAZZI_HOME),)
|
||||||
PAPARAZZI_HOME=$(PAPARAZZI_SRC)
|
PAPARAZZI_HOME=$(PAPARAZZI_SRC)
|
||||||
@@ -113,7 +113,7 @@ update_google_version:
|
|||||||
|
|
||||||
conf: conf/conf.xml conf/control_panel.xml conf/maps.xml
|
conf: conf/conf.xml conf/control_panel.xml conf/maps.xml
|
||||||
|
|
||||||
conf/%.xml :conf/%.xml.example
|
conf/%.xml :conf/%_example.xml
|
||||||
[ -L $@ ] || [ -f $@ ] || cp $< $@
|
[ -L $@ ] || [ -f $@ ] || cp $< $@
|
||||||
|
|
||||||
|
|
||||||
@@ -248,6 +248,15 @@ paparazzi:
|
|||||||
chmod a+x $@
|
chmod a+x $@
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# doxygen html documentation
|
||||||
|
#
|
||||||
|
dox:
|
||||||
|
$(Q)PAPARAZZI_HOME=$(PAPARAZZI_HOME) sw/tools/doxygen_gen/gen_modules_doc.py -pv
|
||||||
|
@echo "Generationg doxygen html documentation in doc/generated/html"
|
||||||
|
$(Q)( cat Doxyfile ; echo "PROJECT_NUMBER=$(./paparazzi_version)"; echo "QUIET=YES") | doxygen -
|
||||||
|
@echo "Done. Open doc/generated/html/index.html in your browser to view it."
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cleaning
|
# Cleaning
|
||||||
#
|
#
|
||||||
@@ -285,7 +294,7 @@ ab_clean:
|
|||||||
|
|
||||||
replace_current_conf_xml:
|
replace_current_conf_xml:
|
||||||
test conf/conf.xml && mv conf/conf.xml conf/conf.xml.backup.$(BUILD_DATETIME)
|
test conf/conf.xml && mv conf/conf.xml conf/conf.xml.backup.$(BUILD_DATETIME)
|
||||||
cp conf/tests_conf.xml conf/conf.xml
|
cp conf/conf_tests.xml conf/conf.xml
|
||||||
|
|
||||||
restore_conf_xml:
|
restore_conf_xml:
|
||||||
test conf/conf.xml.backup.$(BUILD_DATETIME) && mv conf/conf.xml.backup.$(BUILD_DATETIME) conf/conf.xml
|
test conf/conf.xml.backup.$(BUILD_DATETIME) && mv conf/conf.xml.backup.$(BUILD_DATETIME) conf/conf.xml
|
||||||
@@ -296,7 +305,7 @@ run_tests:
|
|||||||
test: all replace_current_conf_xml run_tests restore_conf_xml
|
test: all replace_current_conf_xml run_tests restore_conf_xml
|
||||||
|
|
||||||
|
|
||||||
.PHONY: all print_build_version update_google_version ground_segment ground_segment.opt \
|
.PHONY: all print_build_version update_google_version dox ground_segment ground_segment.opt \
|
||||||
subdirs $(SUBDIRS) conf ext libpprz multimon cockpit cockpit.opt tmtc tmtc.opt tools\
|
subdirs $(SUBDIRS) conf ext libpprz multimon cockpit cockpit.opt tmtc tmtc.opt tools\
|
||||||
static sim_static lpctools commands \
|
static sim_static lpctools commands \
|
||||||
clean cleanspaces ab_clean dist_clean distclean dist_clean_irreversible \
|
clean cleanspaces ab_clean dist_clean distclean dist_clean_irreversible \
|
||||||
|
|||||||
+12
-3
@@ -64,10 +64,19 @@ Q=@
|
|||||||
#
|
#
|
||||||
ifeq ($(MAKECMDGOALS),all_ac_h)
|
ifeq ($(MAKECMDGOALS),all_ac_h)
|
||||||
-include $(MAKEFILE_AC)
|
-include $(MAKEFILE_AC)
|
||||||
|
|
||||||
|
ifdef PERIODIC_FREQUENCY
|
||||||
|
# telemetry and module periodic frequency default to PERIODIC_FREQUENCY
|
||||||
|
TELEMETRY_FREQUENCY ?= $(PERIODIC_FREQUENCY)
|
||||||
|
DEFAULT_MODULES_FREQUENCY = $(PERIODIC_FREQUENCY)
|
||||||
|
else
|
||||||
|
$(warning Info: PERIODIC_FREQUENCY not configured, defaulting to 60Hz for modules and telemetry)
|
||||||
|
TELEMETRY_FREQUENCY ?= 60
|
||||||
|
DEFAULT_MODULES_FREQUENCY = 60
|
||||||
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# telemetry periodic frequency defaults to 60Hz
|
|
||||||
TELEMETRY_FREQUENCY ?= 60
|
|
||||||
|
|
||||||
init:
|
init:
|
||||||
@[ -d $(PAPARAZZI_HOME) ] || (echo "Copying config example in your $(PAPARAZZI_HOME) directory"; mkdir -p $(PAPARAZZI_HOME); cp -a conf $(PAPARAZZI_HOME); cp -a data $(PAPARAZZI_HOME); mkdir -p $(PAPARAZZI_HOME)/var/maps; mkdir -p $(PAPARAZZI_HOME)/var/include)
|
@[ -d $(PAPARAZZI_HOME) ] || (echo "Copying config example in your $(PAPARAZZI_HOME) directory"; mkdir -p $(PAPARAZZI_HOME); cp -a conf $(PAPARAZZI_HOME); cp -a data $(PAPARAZZI_HOME); mkdir -p $(PAPARAZZI_HOME)/var/maps; mkdir -p $(PAPARAZZI_HOME)/var/include)
|
||||||
@@ -147,7 +156,7 @@ $(MODULES_H) : $(CONF)/$(AIRFRAME_XML) $(TOOLS)/gen_modules.out $(CONF)/modules/
|
|||||||
$(Q)test -d $(AC_GENERATED) || mkdir -p $(AC_GENERATED)
|
$(Q)test -d $(AC_GENERATED) || mkdir -p $(AC_GENERATED)
|
||||||
@echo GENERATE $@
|
@echo GENERATE $@
|
||||||
$(eval $@_TMP := $(shell $(MKTEMP)))
|
$(eval $@_TMP := $(shell $(MKTEMP)))
|
||||||
$(Q)$(TOOLS)/gen_modules.out $(SETTINGS_MODULES) $< > $($@_TMP)
|
$(Q)$(TOOLS)/gen_modules.out $(SETTINGS_MODULES) $(DEFAULT_MODULES_FREQUENCY) $< > $($@_TMP)
|
||||||
$(Q)mv $($@_TMP) $@
|
$(Q)mv $($@_TMP) $@
|
||||||
$(Q)chmod a+r $@
|
$(Q)chmod a+r $@
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ Debian users can use http://paparazzi.enac.fr/debian
|
|||||||
|
|
||||||
- **paparazzi-dev** is the meta-package that depends on everything needed to compile and run the ground segment and the simulator.
|
- **paparazzi-dev** is the meta-package that depends on everything needed to compile and run the ground segment and the simulator.
|
||||||
- **paparazzi-arm-multilib** ARM cross-compiling toolchain for LPC21 and STM32 based boards.
|
- **paparazzi-arm-multilib** ARM cross-compiling toolchain for LPC21 and STM32 based boards.
|
||||||
- **paparazzi-omap** toolchain for the optional Gumstix Overo module available on lisa/L.
|
|
||||||
- **paparazzi-jsbsim** is needed for using JSBSim as flight dynamic model for the simulator.
|
- **paparazzi-jsbsim** is needed for using JSBSim as flight dynamic model for the simulator.
|
||||||
|
|
||||||
|
|
||||||
@@ -66,4 +65,4 @@ Uploading of the embedded software
|
|||||||
Flight
|
Flight
|
||||||
------
|
------
|
||||||
|
|
||||||
1. From the Paparazzi Center, select the flight session and ... do the same than in simulation !
|
1. From the Paparazzi Center, select the flight session and ... do the same than in simulation !
|
||||||
|
|||||||
+23
-20
@@ -78,42 +78,45 @@ elf: $(OBJDIR)/$(TARGET).elf
|
|||||||
# Program the device and start it.
|
# Program the device and start it.
|
||||||
load upload program: $(OBJDIR)/$(TARGET).elf
|
load upload program: $(OBJDIR)/$(TARGET).elf
|
||||||
|
|
||||||
# If it is not the SDK version, then kill program.elf
|
|
||||||
ifneq ($(BOARD_TYPE), sdk)
|
|
||||||
-echo "killall -9 program.elf" | telnet $(HOST)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Kill the application
|
# Kill the application
|
||||||
-echo "killall -9 $(TARGET).elf" | telnet $(HOST)
|
-echo "killall -9 $(TARGET).elf" | telnet $(HOST)
|
||||||
|
|
||||||
# Upload the modules and start the application
|
# Make the target dir and edit the config
|
||||||
-{ \
|
-{ \
|
||||||
echo "mkdir -p $(TARGET_DIR)"; \
|
echo "mkdir -p $(TARGET_DIR)"; \
|
||||||
|
echo "if grep -q \"start_paparazzi *= \" /data/config.ini; then sed -i 's/\(start_paparazzi *= *\).*/\\\1$(ARDRONE2_START_PAPARAZZI)/g' /data/config.ini; else echo \"start_paparazzi = $(ARDRONE2_START_PAPARAZZI)\" >> /data/config.ini; fi"; \
|
||||||
|
echo "if grep -q \"wifi_mode *= \" /data/config.ini; then sed -i 's/\(wifi_mode *= *\).*/\\\1$(ARDRONE2_WIFI_MODE)/g' /data/config.ini; else echo \"wifi_mode = $(ARDRONE2_WIFI_MODE)\" >> /data/config.ini; fi"; \
|
||||||
|
echo "if grep -q \"ssid_single_player *= \" /data/config.ini; then sed -i 's/\(ssid_single_player *= *\).*/\\\1$(ARDRONE2_SSID)/g' /data/config.ini; else echo \"ssid_single_player = $(ARDRONE2_SSID)\" >> /data/config.ini; fi"; \
|
||||||
|
echo "if grep -q \"static_ip_address_base *= \" /data/config.ini; then sed -i 's/\(static_ip_address_base *= *\).*/\\\1$(ARDRONE2_IP_ADDRESS_BASE)/g' /data/config.ini; else echo \"static_ip_address_base = $(ARDRONE2_IP_ADDRESS_BASE)\" >> /data/config.ini; fi"; \
|
||||||
|
echo "if grep -q \"static_ip_address_probe *= \" /data/config.ini; then sed -i 's/\(static_ip_address_probe *= *\).*/\\\1$(ARDRONE2_IP_ADDRESS_PROBE)/g' /data/config.ini; else echo \"static_ip_address_probe = $(ARDRONE2_IP_ADDRESS_PROBE)\" >> /data/config.ini; fi"; \
|
||||||
} | telnet $(HOST)
|
} | telnet $(HOST)
|
||||||
|
|
||||||
# Upload the drivers and new application
|
# Upload the drivers and new application
|
||||||
{ \
|
{ \
|
||||||
echo "binary"; \
|
echo "binary"; \
|
||||||
echo "put $(PAPARAZZI_SRC)/sw/ext/ardrone2_drivers/cdc-acm.ko /$(SUB_DIR)/cdc-acm.ko"; \
|
echo "put $(PAPARAZZI_SRC)/sw/ext/ardrone2_drivers/cdc-acm.ko /$(SUB_DIR)/cdc-acm.ko"; \
|
||||||
echo "put $(PAPARAZZI_SRC)/sw/ext/ardrone2_drivers/usbserial.ko /$(SUB_DIR)/usbserial.ko"; \
|
echo "put $(PAPARAZZI_SRC)/sw/ext/ardrone2_drivers/check_update.sh check_update.sh"; \
|
||||||
echo "put $(PAPARAZZI_SRC)/sw/ext/ardrone2_drivers/pl2303.ko /$(SUB_DIR)/pl2303.ko"; \
|
echo "put $(PAPARAZZI_SRC)/sw/ext/ardrone2_drivers/wifi_setup.sh wifi_setup.sh"; \
|
||||||
echo "put $(PAPARAZZI_SRC)/sw/ext/ardrone2_drivers/ftdi-sio.ko /$(SUB_DIR)/ftdi-sio.ko"; \
|
|
||||||
echo "put $(PAPARAZZI_SRC)/sw/ext/ardrone2_drivers/cp210x.ko /$(SUB_DIR)/cp210x.ko"; \
|
|
||||||
echo "put $(OBJDIR)/$(TARGET).elf /$(SUB_DIR)/$(TARGET).elf"; \
|
echo "put $(OBJDIR)/$(TARGET).elf /$(SUB_DIR)/$(TARGET).elf"; \
|
||||||
echo "quit"; \
|
echo "quit"; \
|
||||||
} | ftp -n $(HOST)
|
} | ftp -n $(HOST)
|
||||||
|
|
||||||
# Upload the modules and start the application
|
# Upload the modules and start the application
|
||||||
-{ \
|
-{ \
|
||||||
echo "cd $(TARGET_DIR)"; \
|
echo "mv /data/video/check_update.sh /bin/"; \
|
||||||
echo "insmod cdc-acm.ko"; \
|
echo "mv /data/video/wifi_setup.sh /bin/"; \
|
||||||
echo "insmod usbserial.ko"; \
|
echo "chmod 777 /bin/check_update.sh" \
|
||||||
echo "insmod cp210x.ko"; \
|
echo "chmod 777 /bin/wifi_setup.sh" \
|
||||||
echo "insmod pl2303.ko"; \
|
echo "insmod $(TARGET_DIR)/cdc-acm.ko"; \
|
||||||
echo "insmod ftdi-sio.ko"; \
|
echo "chmod 777 $(TARGET_DIR)/$(TARGET).elf"; \
|
||||||
echo "chmod 777 $(TARGET).elf"; \
|
echo "$(TARGET_DIR)/$(TARGET).elf > /dev/null 2>&1 &"; \
|
||||||
echo "./$(TARGET).elf > /dev/null 2>&1 &"; \
|
|
||||||
} | telnet $(HOST)
|
} | telnet $(HOST)
|
||||||
|
|
||||||
|
ifeq ($(ARDRONE2_REBOOT),1)
|
||||||
|
-{ \
|
||||||
|
echo "reboot"; \
|
||||||
|
} | telnet $(HOST)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Link: create ELF output file from object files.
|
# Link: create ELF output file from object files.
|
||||||
|
|||||||
@@ -0,0 +1,227 @@
|
|||||||
|
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||||
|
|
||||||
|
<!-- this is an Asctec frame equipped with Lisa/L v0.9 and Asctec V2 controllers -->
|
||||||
|
|
||||||
|
<airframe name="asctec_cdw">
|
||||||
|
<!-- ************************* FIRMWARE ************************* -->
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<target name="ap" board="lisa_l_1.0">
|
||||||
|
<configure name="MODEM_PORT" value="UART3"/>
|
||||||
|
<configure name="GPS_PORT" value="UART2"/>
|
||||||
|
<!-- <define name="ACTUATORS_START_DELAY" value="1"/> -->
|
||||||
|
<subsystem name="radio_control" type="ppm"/>
|
||||||
|
<subsystem name="motor_mixing"/>
|
||||||
|
<subsystem name="actuators" type="asctec_v2"/>
|
||||||
|
<subsystem name="telemetry" type="xbee_api"/>
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_FLAPS"/>
|
||||||
|
<define name="USE_KILL_SWITCH_FOR_MOTOR_ARMING" value="1"/>
|
||||||
|
<define name="USE_I2C_ACTUATORS_REBOOT_HACK"/>
|
||||||
|
</target>
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<subsystem name="fdm" type="jsbsim"/>
|
||||||
|
<subsystem name="radio_control" type="ppm"/>
|
||||||
|
<subsystem name="motor_mixing"/>
|
||||||
|
<subsystem name="actuators" type="mkk"/>
|
||||||
|
</target>
|
||||||
|
<subsystem name="imu" type="aspirin_v2.1"/>
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
<subsystem name="stabilization" type="int_euler"/>
|
||||||
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
|
<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.1"/>
|
||||||
|
<target name="test_servos" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_telemetry" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_baro" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_imu_b2" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_imu_b2_2" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_imu_aspirin" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_rc_spektrum" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_rc_ppm" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_adc" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_hmc5843" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_itg3200" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_adxl345" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_esc_mkk_simple" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_esc_asctecv1_simple" board="lisa_l_1.1"/>
|
||||||
|
<!--target name="test_actuators_mkk" board="lisa_l_1.1"/>
|
||||||
|
<target name="test_actuators_asctecv1" board="lisa_l_1.1"/-->
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
<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_HOVER_Z_HOLD"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ************************* MODULES ************************* -->
|
||||||
|
|
||||||
|
<modules main_freq="512">
|
||||||
|
<!-- <load name="high_speed_logger_spi_link.xml"/> -->
|
||||||
|
<load name="imu_quality_assessment.xml"/>
|
||||||
|
<load name="gps_ubx_ucenter.xml" />
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<!-- ************************* ACTUATORS ************************* -->
|
||||||
|
|
||||||
|
<servos driver="Asctec_v2">
|
||||||
|
<servo name="FRONT" no="0" min="0" neutral="3" max="200"/>
|
||||||
|
<servo name="BACK" no="1" min="0" neutral="3" max="200"/>
|
||||||
|
<servo name="LEFT" no="2" min="0" neutral="3" max="200"/>
|
||||||
|
<servo name="RIGHT" no="3" min="0" neutral="3" max="200"/>
|
||||||
|
</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>
|
||||||
|
|
||||||
|
<section name="MIXING" prefix="MOTOR_MIXING_">
|
||||||
|
<define name="TRIM_ROLL" value="0"/>
|
||||||
|
<define name="TRIM_PITCH" value="0"/>
|
||||||
|
<define name="TRIM_YAW" value="0"/>
|
||||||
|
<define name="NB_MOTOR" value="4"/>
|
||||||
|
<define name="SCALE" value="256"/>
|
||||||
|
<!-- Driver expects: Front - Back - Left - Right -->
|
||||||
|
<define name="ROLL_COEF" value="{ 256, -256, 256, -256 }"/>
|
||||||
|
<define name="PITCH_COEF" value="{ 256, -256, -256, 256 }"/>
|
||||||
|
<define name="YAW_COEF" value="{ 256, 256, -256, -256 }"/>
|
||||||
|
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
|
||||||
|
<set servo="FRONT" value="motor_mixing.commands[SERVO_FRONT]"/>
|
||||||
|
<set servo="BACK" value="motor_mixing.commands[SERVO_BACK]"/>
|
||||||
|
<set servo="RIGHT" value="motor_mixing.commands[SERVO_RIGHT]"/>
|
||||||
|
<set servo="LEFT" value="motor_mixing.commands[SERVO_LEFT]"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<!-- ************************* SENSORS ************************* -->
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="200"/>
|
||||||
|
<define name="ACCEL_X_SENS" value="9.810" integer="16"/>
|
||||||
|
<define name="ACCEL_Y_SENS" value="9.810" integer="16"/>
|
||||||
|
<define name="ACCEL_Z_SENS" value="9.810" 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="180." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="90." unit="deg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<define name="BARO_SENS" value="10." integer="16"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ************************* GAINS ************************* -->
|
||||||
|
|
||||||
|
<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.)"/>
|
||||||
|
<!-- feedback -->
|
||||||
|
<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"/>
|
||||||
|
<!-- feedforward -->
|
||||||
|
<define name="PHI_DDGAIN" value=" 200"/>
|
||||||
|
<define name="THETA_DDGAIN" value=" 200"/>
|
||||||
|
<define name="PSI_DDGAIN" value=" 200"/>
|
||||||
|
</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="100"/>
|
||||||
|
<!-- 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="NOMINAL_HOVER_THROTTLE" value="0.4"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="PGAIN" value="100"/>
|
||||||
|
<define name="DGAIN" value="100"/>
|
||||||
|
<define name="IGAIN" value="0"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ************************* MISC ************************* -->
|
||||||
|
|
||||||
|
<!-- for the sim target -->
|
||||||
|
|
||||||
|
<section name="ACTUATORS_MKK" prefix="ACTUATORS_MKK_">
|
||||||
|
<define name="NB" value="4"/>
|
||||||
|
<define name="ADDR" value="{ 0x52, 0x54, 0x56, 0x58 }"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="MAGNETICS" prefix="AHRS_H_">
|
||||||
|
<define name="X" value="0.4"/>
|
||||||
|
<define name="Y" value="0"/>
|
||||||
|
<define name="Z" value="0.9"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
|
||||||
|
</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="JSBSIM_INIT" value=""reset00""/>
|
||||||
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<conf>
|
||||||
|
<aircraft
|
||||||
|
name="Asctec"
|
||||||
|
ac_id="150"
|
||||||
|
airframe="airframes/CDW/asctec_cdw.xml"
|
||||||
|
radio="radios/R6107SP_7ch.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/stabilization_att_int.xml settings/modules/config_asctec_v2.xml settings/modules/imu_quality_assessment.xml"
|
||||||
|
gui_color="white"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="TriCopter"
|
||||||
|
ac_id="1"
|
||||||
|
airframe="airframes/CDW/tricopter_cdw.xml"
|
||||||
|
radio="radios/R6107SP_7ch.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/stabilization_att_int.xml settings/modules/config_mkk_v2.xml settings/modules/imu_quality_assessment.xml"
|
||||||
|
gui_color="blue"
|
||||||
|
/>
|
||||||
|
</conf>
|
||||||
@@ -0,0 +1,216 @@
|
|||||||
|
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
Tricopter Frame, MKK2 BLDC x3 + Servo x1, Lisa-m-2.
|
||||||
|
|
||||||
|
http://www.robbe.de/roxxy-bl-outrunner-2827-34.html
|
||||||
|
|
||||||
|
Technische Daten
|
||||||
|
|
||||||
|
Abmessungen: Ø 28 x 29 mm
|
||||||
|
Freie Wellenlänge: 12.5 mm
|
||||||
|
Gewicht ca.: 57 g
|
||||||
|
Laststrom (5min/120°C): 9 A
|
||||||
|
Umdrehung / Volt: 760 Umin/V
|
||||||
|
Max.Wirkungsgrad: 76 %
|
||||||
|
Laststrom max. (60 Sek.): 10 A
|
||||||
|
Zellenzahl: 6-10 NC/NiMH
|
||||||
|
Leistung: 110 W
|
||||||
|
Wellendurchmesser: 3.17 mm
|
||||||
|
Spannung: 7-12 Volt
|
||||||
|
LiPo/LiIo-Zellen: 2-3
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<airframe name="TriCopter_CDW">
|
||||||
|
<!-- ************************* FIRMWARE ************************* -->
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<target name="ap" board="lisa_m_2.0">
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_FLAPS"/>
|
||||||
|
<define name="USE_KILL_SWITCH_FOR_MOTOR_ARMING" value="1"/>
|
||||||
|
</target>
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<subsystem name="fdm" type="jsbsim"/>
|
||||||
|
</target>
|
||||||
|
<subsystem name="radio_control" type="ppm"/>
|
||||||
|
<subsystem name="telemetry" type="xbee_api"/>
|
||||||
|
<subsystem name="motor_mixing"/>
|
||||||
|
<subsystem name="actuators" type="mkk_v2"/>
|
||||||
|
<subsystem name="actuators" type="pwm">
|
||||||
|
<define name="USE_PWM0"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem name="imu" type="aspirin_v2.1"/>
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
<subsystem name="stabilization" type="int_euler"/>
|
||||||
|
<subsystem name="ahrs" type="int_cmpl_euler"/>
|
||||||
|
<subsystem name="ins" type="hff"/>
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
<section name="AUTOPILOT">
|
||||||
|
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_RC_CLIMB"/>
|
||||||
|
<define name="MODE_AUTO2" value="AP_MODE_ATTITUDE_Z_HOLD"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ************************* MODULES ************************* -->
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<load name="configure_actuators_mkk_v2.xml"/>
|
||||||
|
<load name="imu_quality_assessment.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<!-- ************************* ACTUATORS ************************* -->
|
||||||
|
|
||||||
|
<section name="ACTUATORS_MKK_V2" prefix="ACTUATORS_MKK_V2_">
|
||||||
|
<define name="NB" value="3"/>
|
||||||
|
<define name="ADDR" value="{ 0x52, 0x56, 0x54 }"/>
|
||||||
|
<define name="DEVICE" value="i2c1"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<servos driver="Mkk_v2">
|
||||||
|
<servo name="FRONTRIGHT" no="0" min="0" neutral="30" max="2047"/>
|
||||||
|
<servo name="FRONTLEFT" no="1" min="0" neutral="30" max="2047"/>
|
||||||
|
<servo name="BACK" no="2" min="0" neutral="30" max="2047"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<servos driver="Pwm">
|
||||||
|
<servo name="TAIL" no="0" min="1000" neutral="1500" max="2000"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<section name="MIXING" prefix="MOTOR_MIXING_">
|
||||||
|
<define name="TRIM_ROLL" value="0"/>
|
||||||
|
<define name="TRIM_PITCH" value="0"/>
|
||||||
|
<define name="TRIM_YAW" value="0"/>
|
||||||
|
<define name="NB_MOTOR" value="3"/>
|
||||||
|
<define name="SCALE" value="2048"/>
|
||||||
|
<define name="ROLL_COEF" value="{ 2048, -2048, 0}"/>
|
||||||
|
<define name="PITCH_COEF" value="{ 1024, 1024, -2048}"/>
|
||||||
|
<define name="YAW_COEF" value="{ 0, 0, 0}"/>
|
||||||
|
<define name="THRUST_COEF" value="{ 2048, 2048, 2048}"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
|
||||||
|
<set servo="FRONTRIGHT" value="motor_mixing.commands[SERVO_FRONTRIGHT]"/>
|
||||||
|
<set servo="FRONTLEFT" value="motor_mixing.commands[SERVO_FRONTLEFT]"/>
|
||||||
|
<set servo="BACK" value="motor_mixing.commands[SERVO_BACK]"/>
|
||||||
|
<set servo="TAIL" value="@YAW"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<!-- ************************* SENSORS ************************* -->
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<define name="MAG_X_NEUTRAL" value="-152"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-51"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="10"/>
|
||||||
|
<define name="MAG_X_SENS" value="4.04042714046" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="3.95350991963" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="3.83055079257" integer="16"/>
|
||||||
|
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="-90." unit="deg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<define name="BARO_SENS" value="15." integer="16"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ************************* GAINS ************************* -->
|
||||||
|
|
||||||
|
<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="360." unit="deg/s"/>
|
||||||
|
<define name="DEADBAND_R" value="200"/>
|
||||||
|
<!-- reference -->
|
||||||
|
<define name="REF_OMEGA_P" value="800" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_P" value="0.9"/>
|
||||||
|
<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.9"/>
|
||||||
|
<define name="REF_MAX_Q" value="300." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_QDOT" value="RadOfDeg(7000.)"/>
|
||||||
|
<define name="REF_OMEGA_R" value="1200" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_R" value="0.85"/>
|
||||||
|
<define name="REF_MAX_R" value="600." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_RDOT" value="RadOfDeg(7000.)"/>
|
||||||
|
<!-- feedback -->
|
||||||
|
<define name="PHI_PGAIN" value="400"/>
|
||||||
|
<define name="PHI_DGAIN" value="410"/>
|
||||||
|
<define name="PHI_IGAIN" value="0"/>
|
||||||
|
<define name="THETA_PGAIN" value="400"/>
|
||||||
|
<define name="THETA_DGAIN" value="410"/>
|
||||||
|
<define name="THETA_IGAIN" value="114"/>
|
||||||
|
<define name="PSI_PGAIN" value="900"/>
|
||||||
|
<define name="PSI_DGAIN" value="1328"/>
|
||||||
|
<define name="PSI_IGAIN" value="0"/>
|
||||||
|
<!-- feedforward -->
|
||||||
|
<define name="PHI_DDGAIN" value=" 100"/>
|
||||||
|
<define name="THETA_DDGAIN" value=" 100"/>
|
||||||
|
<define name="PSI_DDGAIN" value=" 300"/>
|
||||||
|
</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="100"/>
|
||||||
|
<!-- 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"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="PGAIN" value="100"/>
|
||||||
|
<define name="DGAIN" value="100"/>
|
||||||
|
<define name="IGAIN" value="0"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ************************* MISC ************************* -->
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="FMS">
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="MISC">
|
||||||
|
<define name="XBEE_INIT" value=""ATID3332\r""/>
|
||||||
|
<define name="FACE_REINJ_1" value="1024"/>
|
||||||
|
<define name="VoltageOfAdc(adc)" value="(0.00528*adc)"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,219 @@
|
|||||||
|
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
|
||||||
|
|
||||||
|
<airframe name="Quark">
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<load name="gps_ubx_ucenter.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<firmware name="fixedwing">
|
||||||
|
<define name="USE_I2C0"/>
|
||||||
|
<define name="USE_I2C1"/>
|
||||||
|
<!--define name="AGR_CLIMB"/-->
|
||||||
|
<define name="ALT_KALMAN"/>
|
||||||
|
<define name="USE_AIRSPEED"/>
|
||||||
|
<!--define name="LOITER_TRIM"/-->
|
||||||
|
<!--define name="PITCH_TRIM"/-->
|
||||||
|
<configure name="PERIODIC_FREQUENCY" value="125"/>
|
||||||
|
<configure name="AHRS_PROPAGATE_FREQUENCY" value="125"/>
|
||||||
|
<define name="CONTROL_FREQUENCY" value="125"/>
|
||||||
|
|
||||||
|
<target name="sim" board="pc"/>
|
||||||
|
<target name="ap" board="umarim_lite_2.0"/>
|
||||||
|
|
||||||
|
<subsystem name="radio_control" type="datalink"/>
|
||||||
|
|
||||||
|
<!-- Communication -->
|
||||||
|
<subsystem name="telemetry" type="transparent"/>
|
||||||
|
|
||||||
|
<!-- Actuators are automatically chosen according to board-->
|
||||||
|
<subsystem name="imu" type="umarim"/>
|
||||||
|
<subsystem name="ahrs" type="float_dcm"/>
|
||||||
|
<subsystem name="ins" type="alt_float"/>
|
||||||
|
<subsystem name="control" type="new"/>
|
||||||
|
<subsystem name="navigation"/>
|
||||||
|
<!-- Sensors -->
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- commands section -->
|
||||||
|
<servos>
|
||||||
|
<servo name="MOTOR" no="2" min="1040" neutral="1040" max="2000"/>
|
||||||
|
<servo name="AILEVON_LEFT" no="0" min="1900" neutral="1394" max="1100"/>
|
||||||
|
<servo name="AILEVON_RIGHT" no="1" min="1100" neutral="1369" max="1900"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="THROTTLE" failsafe_value="0"/>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<rc_commands>
|
||||||
|
<set command="THROTTLE" value="@THROTTLE"/>
|
||||||
|
<set command="ROLL" value="@ROLL"/>
|
||||||
|
<set command="PITCH" value="@PITCH"/>
|
||||||
|
</rc_commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<let var="aileron" value="@ROLL"/>
|
||||||
|
<let var="elevator" value="@PITCH"/>
|
||||||
|
<set servo="MOTOR" value="@THROTTLE"/>
|
||||||
|
<set servo="AILEVON_LEFT" value="$elevator - $aileron"/>
|
||||||
|
<set servo="AILEVON_RIGHT" value="$elevator + $aileron"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="AUTO1" prefix="AUTO1_">
|
||||||
|
<define name="MAX_ROLL" value="0.85"/>
|
||||||
|
<define name="MAX_PITCH" value="0.6"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
|
||||||
|
<define name="GYRO_P_SIGN" value="1"/>
|
||||||
|
<define name="GYRO_Q_SIGN" value="-1"/>
|
||||||
|
<define name="GYRO_R_SIGN" value="-1"/>
|
||||||
|
|
||||||
|
<!-- Calibration Neutral -->
|
||||||
|
<define name="GYRO_P_NEUTRAL" value="0"/>
|
||||||
|
<define name="GYRO_Q_NEUTRAL" value="0"/>
|
||||||
|
<define name="GYRO_R_NEUTRAL" value="0"/>
|
||||||
|
|
||||||
|
<!-- SENS ITG3200 1/14.375 (deg/s)/LSB, rate frac 12bit => 1/14.375 * pi / 180 * 2^12 -->
|
||||||
|
<define name="GYRO_P_SENS" value="4.97312" integer="16"/>
|
||||||
|
<define name="GYRO_Q_SENS" value="4.97312" integer="16"/>
|
||||||
|
<define name="GYRO_R_SENS" value="4.97312" integer="16"/>
|
||||||
|
|
||||||
|
<define name="ACCEL_X_SIGN" value="1"/>
|
||||||
|
<define name="ACCEL_Y_SIGN" value="-1"/>
|
||||||
|
<define name="ACCEL_Z_SIGN" value="-1"/>
|
||||||
|
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="-13"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="-14"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="-34"/>
|
||||||
|
|
||||||
|
<define name="ACCEL_X_SENS" value="38.8302353809" integer="16"/>
|
||||||
|
<define name="ACCEL_Y_SENS" value="38.6959597569" integer="16"/>
|
||||||
|
<define name="ACCEL_Z_SENS" value="39.2279525433" 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="UMARIM IMU" prefix="UMARIM_">
|
||||||
|
<define name="ACCEL_RANGE" value="ADXL345_RANGE_8G"/>
|
||||||
|
<define name="GYRO_LOWPASS" value="ITG3200_DLPF_20HZ"/>
|
||||||
|
<define name="GYRO_SMPLRT_DIV" value="7"/> <!-- 125 Hz -->
|
||||||
|
</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="BAT">
|
||||||
|
<define name="MILLIAMP_AT_FULL_THROTTLE" value="10000."/>
|
||||||
|
<define name="MAX_BAT_LEVEL" value="8.0" unit="V"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="6.3" unit="V"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="MISC">
|
||||||
|
<define name="NOMINAL_AIRSPEED" value="15." unit="m/s"/>
|
||||||
|
<define name="CARROT" value="5." unit="s"/>
|
||||||
|
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
|
||||||
|
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
|
||||||
|
|
||||||
|
<define name="TRIGGER_DELAY" value="1."/>
|
||||||
|
<define name="DEFAULT_CIRCLE_RADIUS" value="50."/>
|
||||||
|
|
||||||
|
<define name="UNLOCKED_HOME_MODE" value="TRUE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="VERTICAL CONTROL" prefix="V_CTL_">
|
||||||
|
<!--define name="POWER_CTL_BAT_NOMINAL" value="11.1" unit="volt"/-->
|
||||||
|
<!-- outer loop proportional gain -->
|
||||||
|
<define name="ALTITUDE_PGAIN" value="0.15"/> <!-- -0.024 -->
|
||||||
|
<!-- outer loop saturation -->
|
||||||
|
<define name="ALTITUDE_MAX_CLIMB" value="3." unit="m/s"/>
|
||||||
|
|
||||||
|
<!-- Cruise throttle + limits -->
|
||||||
|
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.5"/>
|
||||||
|
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25"/>
|
||||||
|
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.85"/>
|
||||||
|
<define name="AUTO_PITCH_MAX_PITCH" value="20." unit="deg"/>
|
||||||
|
<define name="AUTO_PITCH_MIN_PITCH" value="-20." unit="deg"/>
|
||||||
|
|
||||||
|
<!-- Climb loop (throttle) -->
|
||||||
|
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
|
||||||
|
<define name="AUTO_THROTTLE_PGAIN" value="0.004"/> <!-- -0.005 -->
|
||||||
|
<define name="AUTO_THROTTLE_DGAIN" value="0.01"/> <!-- 0.005 -->
|
||||||
|
<define name="AUTO_THROTTLE_IGAIN" value="0.004"/> <!-- 0.005 -->
|
||||||
|
|
||||||
|
<!-- Climb loop (pitch) -->
|
||||||
|
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.02"/>
|
||||||
|
<define name="AUTO_PITCH_PGAIN" value="0.038"/> <!-- -0.03 -->
|
||||||
|
<define name="AUTO_PITCH_DGAIN" value="0.036"/> <!-- -0.03 -->
|
||||||
|
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
|
||||||
|
|
||||||
|
<!-- airspeed control -->
|
||||||
|
<define name="AUTO_AIRSPEED_SETPOINT" value="16."/>
|
||||||
|
<define name="AUTO_AIRSPEED_THROTTLE_PGAIN" value="0.1"/>
|
||||||
|
<define name="AUTO_AIRSPEED_THROTTLE_DGAIN" value="0.12"/>
|
||||||
|
<define name="AUTO_AIRSPEED_THROTTLE_IGAIN" value="0.0"/>
|
||||||
|
<define name="AUTO_AIRSPEED_PITCH_PGAIN" value="0.06"/>
|
||||||
|
<define name="AUTO_AIRSPEED_PITCH_DGAIN" value="0.0"/>
|
||||||
|
<define name="AUTO_AIRSPEED_PITCH_IGAIN" value="0.042"/>
|
||||||
|
<define name="AIRSPEED_MAX" value="30" unit="m/s"/>
|
||||||
|
<define name="AIRSPEED_MIN" value="10" unit="m/s"/>
|
||||||
|
|
||||||
|
<!-- groundspeed control -->
|
||||||
|
<define name="AUTO_GROUNDSPEED_SETPOINT" value="15" unit="m/s"/>
|
||||||
|
<define name="AUTO_GROUNDSPEED_PGAIN" value="1."/>
|
||||||
|
<define name="AUTO_GROUNDSPEED_IGAIN" value="0."/>
|
||||||
|
|
||||||
|
<!-- pitch trim --> <!-- 5 deg -->
|
||||||
|
<define name="PITCH_LOITER_TRIM" value="0." unit="deg"/>
|
||||||
|
<define name="PITCH_DASH_TRIM" value="0." unit="deg"/>
|
||||||
|
|
||||||
|
<define name="THROTTLE_SLEW" value="0.1"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||||
|
<define name="COURSE_PGAIN" value="0.7"/>
|
||||||
|
<define name="ROLL_MAX_SETPOINT" value="0.8" unit="rad"/>
|
||||||
|
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="rad"/>
|
||||||
|
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="rad"/>
|
||||||
|
|
||||||
|
<define name="ROLL_ATTITUDE_GAIN" value="3800."/>
|
||||||
|
<define name="ROLL_RATE_GAIN" value="500."/>
|
||||||
|
<define name="ROLL_IGAIN" value="150."/>
|
||||||
|
<define name="ROLL_KFFA" value="0"/>
|
||||||
|
<define name="ROLL_KFFD" value="0"/>
|
||||||
|
|
||||||
|
<define name="PITCH_PGAIN" value="10000."/>
|
||||||
|
<define name="PITCH_DGAIN" value="100."/>
|
||||||
|
<define name="PITCH_IGAIN" value="250."/>
|
||||||
|
<define name="PITCH_KFFA" value="0."/>
|
||||||
|
<define name="PITCH_KFFD" value="0."/>
|
||||||
|
|
||||||
|
<define name="PITCH_OF_ROLL" value="0.0" unit="deg"/>
|
||||||
|
<define name="AILERON_OF_THROTTLE" value="0.0"/>
|
||||||
|
<!--define name="ELEVATOR_OF_ROLL" value="1400"/-->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="FAILSAFE" prefix="FAILSAFE_">
|
||||||
|
<define name="DELAY_WITHOUT_GPS" value="2" unit="s"/>
|
||||||
|
<define name="DEFAULT_THROTTLE" value="0.3" unit="%"/>
|
||||||
|
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
|
||||||
|
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
|
||||||
|
<define name="HOME_RADIUS" value="100" unit="m"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="SIMU">
|
||||||
|
<!--define name="ROLL_RESPONSE_FACTOR" value="10"/>
|
||||||
|
<define name="MAX_ROLL_DOT" value="20" unit="rad/s"/-->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</airframe>
|
||||||
@@ -260,7 +260,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<!--define name="INITIAL_CONDITITONS" value=""reset_enac""/-->
|
<!--define name="JSBSIM_INIT" value=""reset_enac""/-->
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -228,7 +228,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Magneto calibration -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="99"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="59"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-65"/>
|
||||||
|
<define name="MAG_X_SENS" value="14.8494072406" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="14.4187929352" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="15.4390790318" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
|
||||||
|
<!-- Magneto calibration (done) -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="8"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="22"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-182"/>
|
||||||
|
<define name="MAG_X_SENS" value="15.6093106965" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="13.7479252753" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="16.7383397999" integer="16"/>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Accelero (done) -->
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="2048"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="2076"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="2048"/>
|
||||||
|
|
||||||
|
<!-- Magneto calibration (done) -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="8"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-7"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-227"/>
|
||||||
|
<define name="MAG_X_SENS" value="15.5234215153" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="14.2647577704" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="14.9418031715" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name= "MAG_X_CURRENT_COEF" value="0.00202964254187"/>
|
||||||
|
<define name= "MAG_Y_CURRENT_COEF" value="-0.000446794092786"/>
|
||||||
|
<define name= "MAG_Z_CURRENT_COEF" value="-0.000974773119924"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Accelero (done) -->
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="2068"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="2068"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="2048"/>
|
||||||
|
|
||||||
|
<!-- Magneto calibration (done) -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="71"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-1"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-166"/>
|
||||||
|
<define name="MAG_X_SENS" value="13.9587052153" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="17.2130452079" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="16.2785989428" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Accelero (done) -->
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="2048"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="2056"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="2048"/>
|
||||||
|
|
||||||
|
<!-- Magneto calibration (done) -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="-59"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-11"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-246"/>
|
||||||
|
<define name="MAG_X_SENS" value="15.6071828304" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="14.9363172663" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="15.9964364143" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<!-- ARDrone calibration file (Finished calibration) -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Magneto calibration -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="18"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="7"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-190"/>
|
||||||
|
<define name="MAG_X_SENS" value="17.5832018436" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="16.9906378261" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="18.4485786615" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<!-- ARDrone calibration file (done) -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Magneto calibration -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="0"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="0"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-190"/>
|
||||||
|
<define name="MAG_X_SENS" value="16.0204597092" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="15.5973173468" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="17.1460428729" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Magneto calibration -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="33"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="44"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-264"/>
|
||||||
|
<define name="MAG_X_SENS" value="19.1984157982" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="18.7031225235" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="19.0380688485" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Accelero (done) -->
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="2056"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="2052"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="2048"/>
|
||||||
|
|
||||||
|
<!-- Magneto calibration -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="33"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="44"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-264"/>
|
||||||
|
<define name="MAG_X_SENS" value="19.1984157982" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="18.7031225235" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="19.0380688485" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Accelero (done) -->
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="2052"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="2052"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="2048"/>
|
||||||
|
|
||||||
|
<!-- Magneto calibration (done) -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="17"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-31"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-195"/>
|
||||||
|
<define name="MAG_X_SENS" value="15.2127658227" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="16.1444639915" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="16.5058009114" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Accelero (done) -->
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="2040"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="2044"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="2048"/>
|
||||||
|
|
||||||
|
<!-- Magneto calibration -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="-14"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-15"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-202"/>
|
||||||
|
<define name="MAG_X_SENS" value="15.71361627" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="15.7480197906" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="16.1966392929" integer="16"/>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<!-- ARDrone calibration file -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Accelero (done) -->
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="2048"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="2052"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="2048"/>
|
||||||
|
|
||||||
|
<!-- Magneto calibration (done) -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="5"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-13"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-161"/>
|
||||||
|
<define name="MAG_X_SENS" value="15.4856734848" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="15.6311803268" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="17.1897525095" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Magneto current calibration -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,206 @@
|
|||||||
|
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
|
||||||
|
|
||||||
|
<airframe name="ardrone2_raw">
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<!-- Main autopilot target -->
|
||||||
|
<target name="ap" board="ardrone2_raw">
|
||||||
|
<define name="USE_INS_NAV_INIT"/>
|
||||||
|
<configure name="AHRS_PROPAGATE_FREQUENCY" value="200"/>
|
||||||
|
<define name="AHRS_PROPAGATE_FREQUENCY" value="200"/>
|
||||||
|
<define name="INS_PROPAGATE_FREQUENCY" value="200"/>
|
||||||
|
<define name="USE_BAROMETER"/>
|
||||||
|
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
|
||||||
|
|
||||||
|
<define name="LINK_HOST" value="\\\"192.168.2.255\\\""/>
|
||||||
|
<configure name="HOST" value="192.168.2.$(AC_ID)"/>
|
||||||
|
<configure name="ARDRONE2_START_PAPARAZZI" value="1"/>
|
||||||
|
<configure name="ARDRONE2_WIFI_MODE" value="2"/>
|
||||||
|
<configure name="ARDRONE2_SSID" value="tudelft_swarmhub"/>
|
||||||
|
<configure name="ARDRONE2_IP_ADDRESS_BASE" value="192.168.2."/>
|
||||||
|
<configure name="ARDRONE2_IP_ADDRESS_PROBE" value="$(AC_ID)"/>
|
||||||
|
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<!-- Subsystem section -->
|
||||||
|
<subsystem name="telemetry" type="udp"/>
|
||||||
|
<subsystem name="radio_control" type="datalink"/>
|
||||||
|
<subsystem name="motor_mixing"/>
|
||||||
|
<subsystem name="actuators" type="ardrone2"/>
|
||||||
|
<subsystem name="imu" type="ardrone2"/>
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
<subsystem name="stabilization" type="int_quat"/>
|
||||||
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
|
<subsystem name="ins" type="extended"/>
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
<modules main_freq="512">
|
||||||
|
<load name="gps_ubx_ucenter.xml"/>
|
||||||
|
<load name="flight_time.xml"/>
|
||||||
|
<load name="TUDelft/imav2013.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="3000"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<servos driver="Default">
|
||||||
|
<servo name="TOP_LEFT" no="0" min="0" neutral="1" max="500"/>
|
||||||
|
<servo name="TOP_RIGHT" no="1" min="0" neutral="1" max="500"/>
|
||||||
|
<servo name="BOTTOM_LEFT" no="3" min="0" neutral="1" max="500"/>
|
||||||
|
<servo name="BOTTOM_RIGHT" no="2" min="0" neutral="1" max="500"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<section name="MIXING" prefix="MOTOR_MIXING_">
|
||||||
|
<define name="TRIM_ROLL" value="0"/>
|
||||||
|
<define name="TRIM_PITCH" value="0"/>
|
||||||
|
<define name="TRIM_YAW" value="0"/>
|
||||||
|
<define name="NB_MOTOR" value="4"/>
|
||||||
|
<define name="SCALE" value="255"/>
|
||||||
|
|
||||||
|
<!-- Time cross layout (X), as documented in paparazzi -->
|
||||||
|
<define name="ROLL_COEF" value="{ 256, -256, -256, 256 }"/>
|
||||||
|
<define name="PITCH_COEF" value="{ 256, 256, -256, -256 }"/>
|
||||||
|
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }"/>
|
||||||
|
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
|
||||||
|
<set servo="TOP_LEFT" value="motor_mixing.commands[SERVO_TOP_LEFT]"/>
|
||||||
|
<set servo="TOP_RIGHT" value="motor_mixing.commands[SERVO_TOP_RIGHT]"/>
|
||||||
|
<set servo="BOTTOM_LEFT" value="motor_mixing.commands[SERVO_BOTTOM_LEFT]"/>
|
||||||
|
<set servo="BOTTOM_RIGHT" value="motor_mixing.commands[SERVO_BOTTOM_RIGHT]"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<include href="conf/airframes/TUDelft/IMAV2013/ARDrone/$AC_ID_calib.xml"/>
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<!-- Body to IMU is no difference -->
|
||||||
|
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- local magnetic field, calculated for: 52°3'56", 4°31'24" -->
|
||||||
|
<!-- http://paparazzi.enac.fr/wiki/Subsystem/ahrs#Local_Magnetic_Field -->
|
||||||
|
<section name="AHRS" prefix="AHRS_">
|
||||||
|
<define name="H_X" value="0.513081"/>
|
||||||
|
<define name="H_Y" value="-0.00242783"/>
|
||||||
|
<define name="H_Z" value="0.858336"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<define name="BARO_SENS" value="22.4" integer="16"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
|
||||||
|
<!-- setpoints -->
|
||||||
|
<define name="SP_MAX_P" value="10000"/>
|
||||||
|
<define name="SP_MAX_Q" value="10000"/>
|
||||||
|
<define name="SP_MAX_R" value="10000"/>
|
||||||
|
<define name="DEADBAND_P" value="20"/>
|
||||||
|
<define name="DEADBAND_Q" value="20"/>
|
||||||
|
<define name="DEADBAND_R" value="200"/>
|
||||||
|
<define name="REF_TAU" value="4"/>
|
||||||
|
|
||||||
|
<!-- feedback -->
|
||||||
|
<define name="GAIN_P" value="400"/>
|
||||||
|
<define name="GAIN_Q" value="400"/>
|
||||||
|
<define name="GAIN_R" value="350"/>
|
||||||
|
|
||||||
|
<define name="IGAIN_P" value="75"/>
|
||||||
|
<define name="IGAIN_Q" value="75"/>
|
||||||
|
<define name="IGAIN_R" value="50"/>
|
||||||
|
|
||||||
|
<!-- feedforward -->
|
||||||
|
<define name="DDGAIN_P" value="300"/>
|
||||||
|
<define name="DDGAIN_Q" value="300"/>
|
||||||
|
<define name="DDGAIN_R" value="300"/>
|
||||||
|
</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="600" unit="deg/s"/>
|
||||||
|
<define name="DEADBAND_A" value="0"/>
|
||||||
|
<define name="DEADBAND_E" value="0"/>
|
||||||
|
<define name="DEADBAND_R" value="250"/>
|
||||||
|
|
||||||
|
<!-- reference -->
|
||||||
|
<define name="REF_OMEGA_P" value="900" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_P" value="0.9"/>
|
||||||
|
<define name="REF_MAX_P" value="600." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
|
<define name="REF_OMEGA_Q" value="900" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_Q" value="0.9"/>
|
||||||
|
<define name="REF_MAX_Q" value="600." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
|
<define name="REF_OMEGA_R" value="600" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_R" value="0.9"/>
|
||||||
|
<define name="REF_MAX_R" value="400." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_RDOT" value="RadOfDeg(4000.)"/>
|
||||||
|
|
||||||
|
<!-- feedback -->
|
||||||
|
<define name="PHI_PGAIN" value="592"/>
|
||||||
|
<define name="PHI_DGAIN" value="303"/>
|
||||||
|
<define name="PHI_IGAIN" value="0"/>
|
||||||
|
|
||||||
|
<define name="THETA_PGAIN" value="606"/>
|
||||||
|
<define name="THETA_DGAIN" value="303"/>
|
||||||
|
<define name="THETA_IGAIN" value="0"/>
|
||||||
|
|
||||||
|
<define name="PSI_PGAIN" value="529"/>
|
||||||
|
<define name="PSI_DGAIN" value="353"/>
|
||||||
|
<define name="PSI_IGAIN" value="0"/>
|
||||||
|
|
||||||
|
<!-- feedforward -->
|
||||||
|
<define name="PHI_DDGAIN" value="0"/>
|
||||||
|
<define name="THETA_DDGAIN" value="0"/>
|
||||||
|
<define name="PSI_DDGAIN" value="52"/>
|
||||||
|
</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="283"/>
|
||||||
|
<define name="HOVER_KD" value="82"/>
|
||||||
|
<define name="HOVER_KI" value="13"/>
|
||||||
|
<!-- 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="NOMINAL_HOVER_THROTTLE" value="0.655"/>
|
||||||
|
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="MAX_BANK" value="30" unit="deg"/>
|
||||||
|
<define name="PGAIN" value="79"/>
|
||||||
|
<define name="DGAIN" value="100"/>
|
||||||
|
<define name="IGAIN" value="60"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AUTOPILOT">
|
||||||
|
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
|
||||||
|
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
|
||||||
|
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="MILLIAMP_AT_FULL_THROTTLE" value="8700"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="9.1" unit="V"/>
|
||||||
|
<define name="CRITIC_BAT_LEVEL" value="9.35" unit="V"/>
|
||||||
|
<define name="LOW_BAT_LEVEL" value="9.45" unit="V"/>
|
||||||
|
<define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,223 @@
|
|||||||
|
<!-- this is a quadrocopter frame equiped with Lisa/S 0.1 and generic china pwm motor controllers -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Applicable configuration:
|
||||||
|
airframe="airframes/examples/quadrotor_lisa_s.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml settings/control/stabilization_rate.xml"
|
||||||
|
-->
|
||||||
|
|
||||||
|
<airframe name="quadrotor_lisa_s">
|
||||||
|
|
||||||
|
<servos driver="Pwm">
|
||||||
|
<servo name="RIGHT" no="5" min="1000" neutral="1150" max="1830"/>
|
||||||
|
<servo name="BACK" no="0" min="1000" neutral="1150" max="1830"/>
|
||||||
|
<servo name="LEFT" no="1" min="1000" neutral="1150" max="1830"/>
|
||||||
|
<servo name="FRONT" no="4" min="1000" neutral="1150" max="1830"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
|
||||||
|
<set servo="FRONT" value="motor_mixing.commands[0]"/>
|
||||||
|
<set servo="BACK" value="motor_mixing.commands[1]"/>
|
||||||
|
<set servo="LEFT" value="motor_mixing.commands[2]"/>
|
||||||
|
<set servo="RIGHT" value="motor_mixing.commands[3]"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="MIXING" prefix="MOTOR_MIXING_">
|
||||||
|
<define name="TRIM_ROLL" value="0"/>
|
||||||
|
<define name="TRIM_PITCH" value="0"/>
|
||||||
|
<define name="TRIM_YAW" 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="BODY_TO_IMU_PHI" value="182." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
|
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
||||||
|
|
||||||
|
<!-- MAGNETO CALIBRATION DELFT -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="-157"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-379"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="130"/>
|
||||||
|
<define name="MAG_X_SENS" value="3.65789837026" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="3.85373116155" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="4.28038049955" integer="16"/>
|
||||||
|
|
||||||
|
<!-- MAGNETO CURRENT CALIBRATION -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.0103422023767"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.0084568317783"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="-0.01935617335"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AUTOPILOT">
|
||||||
|
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO2" value="AP_MODE_ATTITUDE_Z_HOLD"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="MILLIAMP_AT_FULL_THROTTLE" value="14000"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
|
||||||
|
<define name="SP_MAX_P" value="15000"/>
|
||||||
|
<define name="SP_MAX_Q" value="15000"/>
|
||||||
|
<define name="SP_MAX_R" value="15000"/>
|
||||||
|
|
||||||
|
<define name="GAIN_P" value="400"/>
|
||||||
|
<define name="GAIN_Q" value="400"/>
|
||||||
|
<define name="GAIN_R" value="418"/>
|
||||||
|
|
||||||
|
<define name="IGAIN_P" value="301"/>
|
||||||
|
<define name="IGAIN_Q" value="302"/>
|
||||||
|
<define name="IGAIN_R" value="303"/>
|
||||||
|
</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_PSI" value="45." unit="deg"/>
|
||||||
|
<define name="SP_MAX_R" value="90." unit="deg/s"/>
|
||||||
|
<define name="SP_MAX_P" value="90." unit="deg/s"/>
|
||||||
|
<define name="DEADBAND_R" value="250"/>
|
||||||
|
<define name="DEADBAND_A" value="250"/>
|
||||||
|
|
||||||
|
<!-- reference -->
|
||||||
|
<define name="REF_OMEGA_P" value="1500" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_P" value="0.85"/>
|
||||||
|
<define name="REF_MAX_P" value="400." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
|
<define name="REF_OMEGA_Q" value="1500" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_Q" value="0.85"/>
|
||||||
|
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
|
<define name="REF_OMEGA_R" value="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(1000.)"/>
|
||||||
|
|
||||||
|
<!-- feedback -->
|
||||||
|
<define name="PHI_PGAIN" value="180"/>
|
||||||
|
<define name="PHI_DGAIN" value="140"/>
|
||||||
|
<define name="PHI_IGAIN" value="80"/>
|
||||||
|
|
||||||
|
<define name="THETA_PGAIN" value="180"/>
|
||||||
|
<define name="THETA_DGAIN" value="140"/>
|
||||||
|
<define name="THETA_IGAIN" value="80"/>
|
||||||
|
|
||||||
|
<define name="PSI_PGAIN" value="500"/>
|
||||||
|
<define name="PSI_DGAIN" value="200"/>
|
||||||
|
<define name="PSI_IGAIN" value="10"/>
|
||||||
|
|
||||||
|
<!-- feedforward -->
|
||||||
|
<define name="PHI_DDGAIN" value="0"/>
|
||||||
|
<define name="THETA_DDGAIN" value="0"/>
|
||||||
|
<define name="PSI_DDGAIN" value="0"/>
|
||||||
|
|
||||||
|
<define name="PHI_AGAIN" value="0"/>
|
||||||
|
<define name="THETA_AGAIN" value="0"/>
|
||||||
|
<define name="PSI_AGAIN" value="0"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<define name="BARO_SENS" value="22.4" 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="531"/>
|
||||||
|
<define name="HOVER_KD" value="356"/>
|
||||||
|
<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="NOMINAL_HOVER_THROTTLE" value="0.669"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AHRS" prefix="AHRS_">
|
||||||
|
<define name="H_X" value=" 0.47577"/>
|
||||||
|
<define name="H_Y" value=" 0.11811"/>
|
||||||
|
<define name="H_Z" value=" 0.87161"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="PGAIN" value="50"/>
|
||||||
|
<define name="DGAIN" value="50"/>
|
||||||
|
<define name="IGAIN" 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="JSBSIM_INIT" value=""reset00""/>
|
||||||
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<modules main_freq="512">
|
||||||
|
<load name="gps_ubx_ucenter.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<target name="ap" board="lisa_s_0.1">
|
||||||
|
<subsystem name="radio_control" type="superbitrf_rc">
|
||||||
|
<define name="RADIO_TRANSMITTER_ID" value="2008496626"/> <!-- TUDelft Dx6i: TX 4 -->
|
||||||
|
<define name="RADIO_TRANSMITTER_CHAN" value="6"/>
|
||||||
|
<define name="RADIO_TRANSMITTER_PROTOCOL" value="0x01"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
||||||
|
<configure name="LISA_S_BARO" value="BARO_MS5611_SPI"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<subsystem name="fdm" type="jsbsim"/>
|
||||||
|
<subsystem name="radio_control" type="ppm"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<subsystem name="motor_mixing"/>
|
||||||
|
<subsystem name="actuators" type="pwm">
|
||||||
|
<define name="SERVO_HZ" value="400"/>
|
||||||
|
<define name="USE_SERVOS_1AND2"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<subsystem name="telemetry" type="superbitrf"/>
|
||||||
|
<subsystem name="imu" type="lisa_s_v0.1"/>
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
<subsystem name="stabilization" type="int_quat"/>
|
||||||
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
|
<subsystem name="ins"/>
|
||||||
|
</firmware>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,232 @@
|
|||||||
|
<conf>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_181"
|
||||||
|
ac_id="181"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_182"
|
||||||
|
ac_id="182"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_183"
|
||||||
|
ac_id="183"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_184"
|
||||||
|
ac_id="184"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_185"
|
||||||
|
ac_id="185"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_186"
|
||||||
|
ac_id="186"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_187"
|
||||||
|
ac_id="187"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_188"
|
||||||
|
ac_id="188"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_189"
|
||||||
|
ac_id="189"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_190"
|
||||||
|
ac_id="190"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_191"
|
||||||
|
ac_id="191"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_192"
|
||||||
|
ac_id="192"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_193"
|
||||||
|
ac_id="193"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_194"
|
||||||
|
ac_id="194"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_195"
|
||||||
|
ac_id="195"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft_vision.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Ardrone2_raw_196"
|
||||||
|
ac_id="196"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/ardrone2_raw.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_ardrone.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_rate.xml settings/control/stabilization_att_int.xml settings/modules/flight_time.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="ChouChou_LisaS"
|
||||||
|
ac_id="135"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/chouchou_lisa_s.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/stabilization_att_int.xml settings/control/stabilization_rate.xml settings/control/rotorcraft_guidance.xml"
|
||||||
|
gui_color="blue"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="MavRick_LisaS"
|
||||||
|
ac_id="131"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/mavrick_lisa_s.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_fixedwing_imu.xml"
|
||||||
|
flight_plan="flight_plans/basic.xml"
|
||||||
|
settings=" settings/fixedwing_basic.xml settings/control/ctl_basic.xml settings/estimation/ins_neutrals.xml"
|
||||||
|
gui_color="white"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="MicroQuadTurnigy"
|
||||||
|
ac_id="136"
|
||||||
|
airframe="airframes/TUDelft/quadrotor_lisa_m_2_pwm_hbk_ppm.xml"
|
||||||
|
radio="radios/R6107SP_7ch.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/IMAV2013_rotorcraft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml settings/modules/imu_quality_assessment.xml"
|
||||||
|
gui_color="blue"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Quadrotor_LisaS"
|
||||||
|
ac_id="132"
|
||||||
|
airframe="airframes/examples/quadrotor_lisa_s.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml settings/control/stabilization_rate.xml"
|
||||||
|
gui_color="blue"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Walkera_GeniusV1"
|
||||||
|
ac_id="134"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/walkera_genius_v1.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml settings/control/stabilization_rate.xml"
|
||||||
|
gui_color="orange"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="Walkera_V120D02S"
|
||||||
|
ac_id="133"
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/walkera_V120D02S.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml settings/control/stabilization_rate.xml"
|
||||||
|
gui_color="green"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="MicroQuadTurnigy"
|
||||||
|
ac_id="136"
|
||||||
|
airframe="airframes/TUDelft/quadrotor_lisa_m_2_pwm_hbk_ppm.xml"
|
||||||
|
radio="radios/R6107SP_7ch.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/TUDelft/rotorcraft_basic_delft.xml"
|
||||||
|
settings=" settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml settings/modules/imu_quality_assessment.xml"
|
||||||
|
gui_color="blue"
|
||||||
|
/>
|
||||||
|
</conf>
|
||||||
@@ -0,0 +1,181 @@
|
|||||||
|
<!-- this is a tiny MavRick fixedwing frame equiped with Lisa/S 0.1 -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Applicable configuration:
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/mavrick_lisa_s.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_fixedwing.xml"
|
||||||
|
flight_plan="flight_plans/fixedwing_basic.xml"
|
||||||
|
settings="settings/fixedwing_basic.xml"
|
||||||
|
-->
|
||||||
|
|
||||||
|
<airframe name="MavRick_LisaS">
|
||||||
|
|
||||||
|
<firmware name="fixedwing">
|
||||||
|
<define name="AGR_CLIMB" />
|
||||||
|
<target name="ap" board="lisa_s_0.1"/>
|
||||||
|
|
||||||
|
<subsystem name="radio_control" type="superbitrf_rc">
|
||||||
|
<define name="RADIO_TRANSMITTER_ID" value="2008496626"/> <!-- TUDelft Dx6i: TX 4 -->
|
||||||
|
<define name="RADIO_TRANSMITTER_CHAN" value="6"/>
|
||||||
|
<define name="RADIO_TRANSMITTER_PROTOCOL" value="0x01"/>
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_FLAP"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<!-- Communication -->
|
||||||
|
<subsystem name="telemetry" type="superbitrf"/>
|
||||||
|
|
||||||
|
<!-- Actuators are automatically chosen according to board-->
|
||||||
|
<subsystem name="imu" type="lisa_s_v0.1"/>
|
||||||
|
<subsystem name="ahrs" type="float_dcm"/>
|
||||||
|
<define name="LISA_S_UPSIDE_DOWN"/>
|
||||||
|
<subsystem name="control"/>
|
||||||
|
<subsystem name="navigation"/>
|
||||||
|
<!-- Sensors -->
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
<subsystem name="ins" type="alt_float"/>
|
||||||
|
|
||||||
|
<subsystem name="actuators" type="pwm_double"/>
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<load name="gps_ubx_ucenter.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<!-- commands section -->
|
||||||
|
<servos driver="Pwm">
|
||||||
|
<servo name="MOTOR" no="2" min="1040" neutral="1040" max="2000"/>
|
||||||
|
</servos>
|
||||||
|
<servos driver="Pwm_double">
|
||||||
|
<servo name="AILEVON_LEFT" no="0" min="1200" neutral="1500" max="1800"/>
|
||||||
|
<servo name="AILEVON_RIGHT" no="1" 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"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<rc_commands>
|
||||||
|
<set command="THROTTLE" value="@THROTTLE"/>
|
||||||
|
<set command="ROLL" value="@ROLL"/>
|
||||||
|
<set command="PITCH" value="@PITCH"/>
|
||||||
|
</rc_commands>
|
||||||
|
|
||||||
|
<section name="MIXER">
|
||||||
|
<define name="AILEVON_AILERON_RATE" value="0.75"/>
|
||||||
|
<define name="AILEVON_ELEVATOR_RATE" value="0.75"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/>
|
||||||
|
<let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/>
|
||||||
|
<set servo="MOTOR" value="@THROTTLE"/>
|
||||||
|
<set servo="AILEVON_LEFT" value="$elevator + $aileron"/>
|
||||||
|
<set servo="AILEVON_RIGHT" value="$elevator - $aileron"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="AUTO1" prefix="AUTO1_">
|
||||||
|
<define name="MAX_ROLL" value="0.85"/>
|
||||||
|
<define name="MAX_PITCH" value="0.6"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
|
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
||||||
|
|
||||||
|
<!-- From delft MAVLab -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="847"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-415"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-264"/>
|
||||||
|
<define name="MAG_X_SENS" value="2.43585513661" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="3.71461295002" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="3.4639003008" integer="16"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<define name="ROLL_NEUTRAL_DEFAULT" value="0.048" unit="rad"/>
|
||||||
|
<define name="PITCH_NEUTRAL_DEFAULT" value="0." unit="rad"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="MILLIAMP_AT_FULL_THROTTLE" value="10000."/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="3.2" unit="V"/>
|
||||||
|
<define name="CRITIC_BAT_LEVEL" value="3.3" unit="V"/>
|
||||||
|
<define name="LOW_BAT_LEVEL" value="3.4" unit="V"/>
|
||||||
|
<define name="MAX_BAT_LEVEL" value="3.7" unit="V"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="MISC">
|
||||||
|
<define name="NOMINAL_AIRSPEED" value="15." unit="m/s"/>
|
||||||
|
<define name="CARROT" value="5." unit="s"/>
|
||||||
|
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
|
||||||
|
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
|
||||||
|
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
|
||||||
|
</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.0"/>
|
||||||
|
<define name="COURSE_DGAIN" value="0.3"/>
|
||||||
|
|
||||||
|
<define name="ROLL_MAX_SETPOINT" value="0.6" 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_DGAIN" value="1.5"/>
|
||||||
|
|
||||||
|
<define name="ELEVATOR_OF_ROLL" value="1250"/>
|
||||||
|
|
||||||
|
<define name="ROLL_ATTITUDE_GAIN" value="7500"/>
|
||||||
|
<define name="ROLL_RATE_GAIN" value="1500"/>
|
||||||
|
</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="DELAY_WITHOUT_GPS" value="2" unit="s"/>
|
||||||
|
<define name="DEFAULT_THROTTLE" value="0.3" unit="%"/>
|
||||||
|
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
|
||||||
|
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
|
||||||
|
<define name="HOME_RADIUS" value="100" unit="m"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,241 @@
|
|||||||
|
<!-- this is a quadrocopter frame equiped with Lisa/S 0.1 and generic china pwm motor controllers -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Applicable configuration:
|
||||||
|
airframe="airframes/examples/quadrotor_lisa_s.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml settings/control/stabilization_rate.xml"
|
||||||
|
-->
|
||||||
|
|
||||||
|
<airframe name="quadrotor_lisa_s">
|
||||||
|
|
||||||
|
<servos driver="Pwm">
|
||||||
|
<servo name="LEFT" no="4" min="1000" neutral="1100" max="1900"/>
|
||||||
|
<servo name="FRONT" no="5" min="1000" neutral="1100" max="1900"/>
|
||||||
|
<servo name="RIGHT" no="1" min="1000" neutral="1100" max="1900"/>
|
||||||
|
<servo name="BACK" no="0" min="1000" neutral="1100" max="1900"/>
|
||||||
|
</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="1000"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
|
||||||
|
<set servo="FRONT" value="motor_mixing.commands[0]"/>
|
||||||
|
<set servo="BACK" value="motor_mixing.commands[1]"/>
|
||||||
|
<set servo="LEFT" value="motor_mixing.commands[2]"/>
|
||||||
|
<set servo="RIGHT" value="motor_mixing.commands[3]"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="MIXING" prefix="MOTOR_MIXING_">
|
||||||
|
<define name="TRIM_ROLL" value="0"/>
|
||||||
|
<define name="TRIM_PITCH" value="0"/>
|
||||||
|
<define name="TRIM_YAW" 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="BODY_TO_IMU_PHI" value="184." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="3." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="-90." unit="deg"/>
|
||||||
|
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
||||||
|
|
||||||
|
<!-- MAGNETO CALIBRATION DELFT -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="302"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-69"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="100"/>
|
||||||
|
<define name="MAG_X_SENS" value="4.12281780645" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="4.2491445745" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="4.44132606171" integer="16"/>
|
||||||
|
|
||||||
|
<!-- MAGNETO CURRENT CALIBRATION -->
|
||||||
|
<define name= "MAG_X_CURRENT_COEF" value="0.0103422023767"/>
|
||||||
|
<define name= "MAG_Y_CURRENT_COEF" value="0.0084568317783"/>
|
||||||
|
<define name= "MAG_Z_CURRENT_COEF" value="-0.01935617335"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AUTOPILOT">
|
||||||
|
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO2" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="MILLIAMP_AT_FULL_THROTTLE" value="14000"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
|
||||||
|
|
||||||
|
<define name="SP_MAX_P" value="15000"/>
|
||||||
|
<define name="SP_MAX_Q" value="15000"/>
|
||||||
|
<define name="SP_MAX_R" value="15000"/>
|
||||||
|
|
||||||
|
<define name="GAIN_P" value="400"/>
|
||||||
|
<define name="GAIN_Q" value="400"/>
|
||||||
|
<define name="GAIN_R" value="418"/>
|
||||||
|
|
||||||
|
<define name="IGAIN_P" value="301"/>
|
||||||
|
<define name="IGAIN_Q" value="302"/>
|
||||||
|
<define name="IGAIN_R" value="303"/>
|
||||||
|
|
||||||
|
</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_PSI" value="45." unit="deg"/>
|
||||||
|
<define name="SP_MAX_R" value="90." unit="deg/s"/>
|
||||||
|
<define name="SP_MAX_P" value="90." unit="deg/s"/>
|
||||||
|
<define name="DEADBAND_R" value="250"/>
|
||||||
|
<define name="DEADBAND_A" 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="400." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
|
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_Q" value="0.85"/>
|
||||||
|
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
|
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_R" value="0.85"/>
|
||||||
|
<define name="REF_MAX_R" value="90." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
|
||||||
|
|
||||||
|
<!-- feedback -->
|
||||||
|
<define name="PHI_PGAIN" value="399"/>
|
||||||
|
<define name="PHI_DGAIN" value="183"/>
|
||||||
|
<define name="PHI_IGAIN" value="474"/>
|
||||||
|
|
||||||
|
<define name="THETA_PGAIN" value="399"/>
|
||||||
|
<define name="THETA_DGAIN" value="162"/>
|
||||||
|
<define name="THETA_IGAIN" value="474"/>
|
||||||
|
|
||||||
|
<define name="PSI_PGAIN" value="500"/>
|
||||||
|
<define name="PSI_DGAIN" value="300"/>
|
||||||
|
<define name="PSI_IGAIN" value="10"/>
|
||||||
|
|
||||||
|
<!-- feedforward -->
|
||||||
|
<define name="PHI_DDGAIN" value="0"/>
|
||||||
|
<define name="THETA_DDGAIN" value="0"/>
|
||||||
|
<define name="PSI_DDGAIN" value=" 300"/>
|
||||||
|
|
||||||
|
<define name="PHI_AGAIN" value="0"/>
|
||||||
|
<define name="THETA_AGAIN" value="0"/>
|
||||||
|
<define name="PSI_AGAIN" value="0"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<define name="BARO_SENS" value="22.4" 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="400"/>
|
||||||
|
<define name="HOVER_KD" value="350"/>
|
||||||
|
<define name="HOVER_KI" value="144"/>
|
||||||
|
<!-- 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="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value="0.9"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AHRS" prefix="AHRS_">
|
||||||
|
<define name="H_X" value=" 0.47577"/>
|
||||||
|
<define name="H_Y" value=" 0.11811"/>
|
||||||
|
<define name="H_Z" value=" 0.87161"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="PGAIN" value="50"/>
|
||||||
|
<define name="DGAIN" value="50"/>
|
||||||
|
<define name="IGAIN" 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="JSBSIM_INIT" value=""reset00""/>
|
||||||
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<modules main_freq="512">
|
||||||
|
<load name="gps_ubx_ucenter.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<target name="ap" board="lisa_s_0.1">
|
||||||
|
<subsystem name="radio_control" type="superbitrf_rc">
|
||||||
|
<define name="RADIO_TRANSMITTER_ID" value="2008496626"/> <!-- 425044546 -->
|
||||||
|
<define name="RADIO_TRANSMITTER_CHAN" value="6"/> <!-- 9 -->
|
||||||
|
<define name="RADIO_TRANSMITTER_PROTOCOL" value="0x01"/>
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_FLAP"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
||||||
|
<configure name="LISA_S_BARO" value="BARO_MS5611_SPI"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<subsystem name="fdm" type="jsbsim"/>
|
||||||
|
<subsystem name="radio_control" type="ppm"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<subsystem name="motor_mixing"/>
|
||||||
|
<subsystem name="actuators" type="pwm">
|
||||||
|
<define name="SERVO_HZ" value="400"/>
|
||||||
|
<define name="USE_SERVOS_1AND2"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<subsystem name="telemetry" type="superbitrf"/>
|
||||||
|
<subsystem name="imu" type="lisa_s_v0.1"/>
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
<subsystem name="stabilization" type="int_quat"/>
|
||||||
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
|
<subsystem name="ins"/>
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
|
||||||
|
<firmware name="lisa_test_progs">
|
||||||
|
<target name="test_led" board="lisa_s_0.1">
|
||||||
|
<configure name="SYS_TIME_LED" value="none"/>
|
||||||
|
</target>
|
||||||
|
<target name="test_uart" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_servos" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_telemetry" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_imu_aspirin" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_rc_spektrum" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_baro" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_imu_b2" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_can" board="lisa_s_0.1"/>
|
||||||
|
</firmware>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,196 @@
|
|||||||
|
<!-- this is a default Walkera V120D02S frame equiped with Lisa/S 0.1 -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Applicable configuration:
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/walkera_V120D02S.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml settings/control/stabilization_rate.xml"
|
||||||
|
-->
|
||||||
|
|
||||||
|
<airframe name="walkera_v120d02s">
|
||||||
|
|
||||||
|
<servos driver="Pwm">
|
||||||
|
<servo name="CIC_FRONT" no="5" min="2000" neutral="1550" max="900"/>
|
||||||
|
<servo name="CIC_RIGHT" no="0" min="900" neutral="1550" max="2000"/>
|
||||||
|
<servo name="CIC_LEFT" no="1" min="900" neutral="1550" max="2000"/>
|
||||||
|
<servo name="TAIL" no="2" min="1000" neutral="1400" max="1800"/>
|
||||||
|
<servo name="GAS" no="3" min="900" neutral="980" max="2200"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<let var="hoverpower" value=".75*MAX_PPRZ"/>
|
||||||
|
<let var="hoverstick" value=".35*MAX_PPRZ"/>
|
||||||
|
<let var="halfway" value="(@THRUST >= ($hoverstick) ? 1 : 0)"/>
|
||||||
|
<let var="collective" value="@THRUST * 0.4 + (MAX_PPRZ*0.01)"/>
|
||||||
|
<let var="gas" value="($hoverpower) + $halfway * (((@THRUST) - ($hoverstick)) * (MAX_PPRZ - ($hoverpower))) / (MAX_PPRZ - ($hoverstick)) + (1 - $halfway) * ((@THRUST - ($hoverstick)) * ($hoverpower)) / ($hoverstick)"/>
|
||||||
|
|
||||||
|
<set servo="GAS" value="$gas"/>
|
||||||
|
<set servo="CIC_LEFT" value="((@PITCH*0.5*0.5)-(@ROLL*0.5*0.7))+($collective)"/>
|
||||||
|
<set servo="CIC_RIGHT" value="((-@PITCH*0.5*0.5)-(@ROLL*0.5*0.7))-($collective)"/>
|
||||||
|
<set servo="CIC_FRONT" value="-@PITCH*0.5*1.0+($collective)"/>
|
||||||
|
<set servo="TAIL" value="@YAW"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<define name="BODY_TO_IMU_PHI" value="190." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
|
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
||||||
|
|
||||||
|
<!-- From delft MAVLab (TODO) -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="-638"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-101"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-307"/>
|
||||||
|
<define name="MAG_X_SENS" value="3.61215021824" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="4.23407732206" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="4.28237277804" integer="16"/>
|
||||||
|
</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_DIRECT"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="MILLIAMP_AT_FULL_THROTTLE" value="10"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="4.3" unit="V"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
|
||||||
|
<define name="SP_MAX_P" value="80000"/>
|
||||||
|
<define name="SP_MAX_Q" value="80000"/>
|
||||||
|
<define name="SP_MAX_R" value="80000"/>
|
||||||
|
|
||||||
|
<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"/>
|
||||||
|
<define name="DEADBAND_A" value="250"/>
|
||||||
|
|
||||||
|
<!-- reference -->
|
||||||
|
<define name="REF_OMEGA_P" value="3000" 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="3000" 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="3000" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_R" value="0.85"/>
|
||||||
|
<define name="REF_MAX_R" value="300." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_RDOT" value="RadOfDeg(7000.)"/>
|
||||||
|
|
||||||
|
<!-- feedback -->
|
||||||
|
<define name="PHI_PGAIN" value="3052"/>
|
||||||
|
<define name="PHI_DGAIN" value="108"/>
|
||||||
|
<define name="PHI_IGAIN" value="14"/>
|
||||||
|
|
||||||
|
<define name="THETA_PGAIN" value="3052"/>
|
||||||
|
<define name="THETA_DGAIN" value="108"/>
|
||||||
|
<define name="THETA_IGAIN" value="14"/>
|
||||||
|
|
||||||
|
<define name="PSI_PGAIN" value="1099"/>
|
||||||
|
<define name="PSI_DGAIN" value="201"/>
|
||||||
|
<define name="PSI_IGAIN" value="19"/>
|
||||||
|
|
||||||
|
<!-- feedforward -->
|
||||||
|
<define name="PHI_DDGAIN" value="0"/>
|
||||||
|
<define name="THETA_DDGAIN" value="0"/>
|
||||||
|
<define name="PSI_DDGAIN" value="0"/>
|
||||||
|
|
||||||
|
<define name="PHI_AGAIN" value="0"/>
|
||||||
|
<define name="THETA_AGAIN" value="0"/>
|
||||||
|
<define name="PSI_AGAIN" value="0"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<define name="BARO_SENS" value="22.4" 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="281"/>
|
||||||
|
<define name="HOVER_KD" value="66"/>
|
||||||
|
<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="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value="0.9"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AHRS" prefix="AHRS_">
|
||||||
|
<define name="H_X" value=" 0.47577"/>
|
||||||
|
<define name="H_Y" value=" 0.11811"/>
|
||||||
|
<define name="H_Z" value=" 0.87161"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="PGAIN" value="16"/>
|
||||||
|
<define name="DGAIN" value="35"/>
|
||||||
|
<define name="IGAIN" value="6"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="MISC">
|
||||||
|
<define name="FACE_REINJ_1" value="1024"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<modules main_freq="512">
|
||||||
|
<load name="gps_ubx_ucenter.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<target name="ap" board="lisa_s_0.1">
|
||||||
|
<subsystem name="radio_control" type="superbitrf_rc">
|
||||||
|
<define name="RADIO_TRANSMITTER_ID" value="2008496626"/> <!-- TUDelft Dx6i: TX 4 -->
|
||||||
|
<define name="RADIO_TRANSMITTER_CHAN" value="6"/>
|
||||||
|
<define name="RADIO_TRANSMITTER_PROTOCOL" value="0x01"/>
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_FLAP"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
||||||
|
<configure name="LISA_S_BARO" value="BARO_MS5611_SPI"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<subsystem name="actuators" type="pwm">
|
||||||
|
<define name="SERVO_HZ" value="50"/>
|
||||||
|
<define name="USE_SERVOS_1AND2"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<subsystem name="telemetry" type="superbitrf"/>
|
||||||
|
<subsystem name="imu" type="lisa_s_v0.1"/>
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
<subsystem name="stabilization" type="int_quat"/>
|
||||||
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
|
<subsystem name="ins"/>
|
||||||
|
</firmware>
|
||||||
|
</airframe>
|
||||||
@@ -0,0 +1,201 @@
|
|||||||
|
<!-- this is a Walkera Genius V1 frame equiped with Lisa/S 0.1 with brushless main rotor -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Applicable configuration:
|
||||||
|
airframe="airframes/TUDelft/IMAV2013/walkera_genius_v1.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||||
|
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml settings/control/stabilization_rate.xml"
|
||||||
|
-->
|
||||||
|
|
||||||
|
<airframe name="walkera_genius_v1">
|
||||||
|
|
||||||
|
<servos driver="Pwm">
|
||||||
|
<servo name="CIC_FRONT" no="4" min="570" neutral="1600" max="2200"/>
|
||||||
|
<servo name="CIC_RIGHT" no="5" min="570" neutral="1400" max="2200"/>
|
||||||
|
<servo name="CIC_LEFT" no="0" min="570" neutral="1600" max="2200"/>
|
||||||
|
<servo name="TAIL" no="2" min="0" neutral="0" max="500"/>
|
||||||
|
<servo name="GAS" no="3" min="0" neutral="10" max="500"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<let var="hoverpower" value=".75*MAX_PPRZ"/>
|
||||||
|
<let var="hoverstick" value=".35*MAX_PPRZ"/>
|
||||||
|
<let var="halfway" value="(@THRUST >= ($hoverstick) ? 1 : 0)"/>
|
||||||
|
<let var="collective" value="@THRUST * 0.4 + (MAX_PPRZ*0.01)"/>
|
||||||
|
<let var="gas" value="($hoverpower) + $halfway * (((@THRUST) - ($hoverstick)) * (MAX_PPRZ - ($hoverpower))) / (MAX_PPRZ - ($hoverstick)) + (1 - $halfway) * ((@THRUST - ($hoverstick)) * ($hoverpower)) / ($hoverstick)"/>
|
||||||
|
|
||||||
|
<set servo="GAS" value="$gas"/>
|
||||||
|
<set servo="CIC_LEFT" value="((@PITCH*0.5*0.5)-(@ROLL*0.5*0.73))-($collective)"/>
|
||||||
|
<set servo="CIC_RIGHT" value="((-@PITCH*0.5*0.5)-(@ROLL*0.5*0.73))+($collective)"/>
|
||||||
|
<set servo="CIC_FRONT" value="-@PITCH*0.5-($collective)"/>
|
||||||
|
<set servo="TAIL" value="@YAW+0.4*$gas"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<define name="BODY_TO_IMU_PHI" value="185." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
|
|
||||||
|
<define name="ACCEL_X_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Y_NEUTRAL" value="0"/>
|
||||||
|
<define name="ACCEL_Z_NEUTRAL" value="0"/>
|
||||||
|
|
||||||
|
<!-- From delft MAVLab -->
|
||||||
|
<define name="MAG_X_NEUTRAL" value="396"/>
|
||||||
|
<define name="MAG_Y_NEUTRAL" value="-260"/>
|
||||||
|
<define name="MAG_Z_NEUTRAL" value="-91"/>
|
||||||
|
<define name="MAG_X_SENS" value="3.71635905504" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="3.5526454063" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="3.52339566014" integer="16"/>
|
||||||
|
|
||||||
|
<!-- Current correction -->
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="-0.390312445109"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="-0.068976232866"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="-0.181415585657"/>
|
||||||
|
</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_DIRECT"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="MILLIAMP_AT_FULL_THROTTLE" value="3700"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="3.4" unit="V"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
|
||||||
|
<define name="SP_MAX_P" value="80000"/>
|
||||||
|
<define name="SP_MAX_Q" value="80000"/>
|
||||||
|
<define name="SP_MAX_R" value="80000"/>
|
||||||
|
|
||||||
|
<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"/>
|
||||||
|
<define name="DEADBAND_A" value="250"/>
|
||||||
|
|
||||||
|
<!-- reference -->
|
||||||
|
<define name="REF_OMEGA_P" value="3000" 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="3000" 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="3000" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_R" value="0.85"/>
|
||||||
|
<define name="REF_MAX_R" value="300." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_RDOT" value="RadOfDeg(7000.)"/>
|
||||||
|
|
||||||
|
<!-- feedback -->
|
||||||
|
<define name="PHI_PGAIN" value="3052"/>
|
||||||
|
<define name="PHI_DGAIN" value="108"/>
|
||||||
|
<define name="PHI_IGAIN" value="0"/>
|
||||||
|
|
||||||
|
<define name="THETA_PGAIN" value="3052"/>
|
||||||
|
<define name="THETA_DGAIN" value="108"/>
|
||||||
|
<define name="THETA_IGAIN" value="0"/>
|
||||||
|
|
||||||
|
<define name="PSI_PGAIN" value="944"/>
|
||||||
|
<define name="PSI_DGAIN" value="300"/>
|
||||||
|
<define name="PSI_IGAIN" value="10"/>
|
||||||
|
|
||||||
|
<!-- feedforward -->
|
||||||
|
<define name="PHI_DDGAIN" value="0"/>
|
||||||
|
<define name="THETA_DDGAIN" value="0"/>
|
||||||
|
<define name="PSI_DDGAIN" value=" 300"/>
|
||||||
|
|
||||||
|
<define name="PHI_AGAIN" value="0"/>
|
||||||
|
<define name="THETA_AGAIN" value="0"/>
|
||||||
|
<define name="PSI_AGAIN" value="0"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<define name="BARO_SENS" value="22.4" 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="281"/>
|
||||||
|
<define name="HOVER_KD" value="66"/>
|
||||||
|
<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="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value="0.9"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AHRS" prefix="AHRS_">
|
||||||
|
<define name="H_X" value=" 0.47577"/>
|
||||||
|
<define name="H_Y" value=" 0.11811"/>
|
||||||
|
<define name="H_Z" value=" 0.87161"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="PGAIN" value="50"/>
|
||||||
|
<define name="DGAIN" value="50"/>
|
||||||
|
<define name="IGAIN" value="0"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="MISC">
|
||||||
|
<define name="FACE_REINJ_1" value="1024"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<modules main_freq="512">
|
||||||
|
<load name="gps_ubx_ucenter.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<target name="ap" board="lisa_s_0.1">
|
||||||
|
<subsystem name="radio_control" type="superbitrf_rc">
|
||||||
|
<define name="RADIO_TRANSMITTER_ID" value="2008496626"/> <!-- TUDelft Dx6i: TX 4 -->
|
||||||
|
<define name="RADIO_TRANSMITTER_CHAN" value="6"/>
|
||||||
|
<define name="RADIO_TRANSMITTER_PROTOCOL" value="0x01"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
||||||
|
<configure name="LISA_S_BARO" value="BARO_MS5611_SPI"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<subsystem name="actuators" type="pwm">
|
||||||
|
<define name="TIM5_SERVO_HZ" value="2000"/>
|
||||||
|
<define name="SERVO_HZ" value="300"/>
|
||||||
|
<define name="USE_SERVOS_1AND2"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<subsystem name="telemetry" type="superbitrf"/>
|
||||||
|
<subsystem name="imu" type="lisa_s_v0.1"/>
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
<subsystem name="stabilization" type="int_quat"/>
|
||||||
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
|
<subsystem name="ins"/>
|
||||||
|
</firmware>
|
||||||
|
</airframe>
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
<subsystem name="gps" type="ublox">
|
<subsystem name="gps" type="ublox">
|
||||||
<configure name="GPS_BAUD" value="B57600"/>
|
<configure name="GPS_BAUD" value="B57600"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem name="stabilization" type="euler"/>
|
<subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
</firmware>
|
</firmware>
|
||||||
@@ -253,7 +253,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_default.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_default.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
<subsystem name="gps" type="ublox">
|
<subsystem name="gps" type="ublox">
|
||||||
<configure name="GPS_BAUD" value="B57600"/>
|
<configure name="GPS_BAUD" value="B57600"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem name="stabilization" type="euler"/>
|
<subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<define name="PRINT_CONFIG"/>
|
<define name="PRINT_CONFIG"/>
|
||||||
@@ -253,7 +253,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
+135
-148
@@ -4,235 +4,222 @@
|
|||||||
|
|
||||||
<firmware name="rotorcraft">
|
<firmware name="rotorcraft">
|
||||||
<target name="ap" board="ardrone2_raw">
|
<target name="ap" board="ardrone2_raw">
|
||||||
<define name="USE_INS_NAV_INIT" />
|
<define name="USE_INS_NAV_INIT"/>
|
||||||
<!--configure name="USE_NEW_I2C_DRIVER" value="1"/ -->
|
<!--configure name="USE_NEW_I2C_DRIVER" value="1"/ -->
|
||||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="200" />
|
<configure name="AHRS_PROPAGATE_FREQUENCY" value="200"/>
|
||||||
<define name="AHRS_PROPAGATE_FREQUENCY" value="200" />
|
<define name="AHRS_PROPAGATE_FREQUENCY" value="200"/>
|
||||||
<define name="USE_BAROMETER" />
|
<define name="INS_PROPAGATE_FREQUENCY" value="200"/>
|
||||||
<subsystem name="telemetry" type="udp" />
|
<define name="USE_BAROMETER"/>
|
||||||
<subsystem name="radio_control" type="datalink" />
|
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
|
||||||
|
<subsystem name="telemetry" type="udp"/>
|
||||||
|
<subsystem name="radio_control" type="datalink"/>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="nps" board="pc">
|
<target name="nps" board="pc">
|
||||||
<subsystem name="fdm" type="jsbsim" />
|
<subsystem name="fdm" type="jsbsim"/>
|
||||||
<subsystem name="radio_control" type="ppm" />
|
<subsystem name="radio_control" type="ppm"/>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<subsystem name="motor_mixing" />
|
<subsystem name="motor_mixing"/>
|
||||||
|
|
||||||
<subsystem name="actuators" type="ardrone2" />
|
<subsystem name="actuators" type="ardrone2"/>
|
||||||
<subsystem name="imu" type="ardrone2" />
|
<subsystem name="imu" type="ardrone2"/>
|
||||||
<subsystem name="gps" type="sirf" />
|
<subsystem name="gps" type="ublox"/>
|
||||||
<subsystem name="stabilization" type="int_quat" />
|
<subsystem name="stabilization" type="int_quat"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_quat" />
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins" />
|
<subsystem name="ins" type="extended"/>
|
||||||
|
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
<!-- <modules main_freq="512"> <load name="sys_mon.xml" /> </modules> -->
|
<modules main_freq="512">
|
||||||
|
<load name="gps_ubx_ucenter.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
<commands>
|
<commands>
|
||||||
<axis name="PITCH" failsafe_value="0" />
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
<axis name="ROLL" failsafe_value="0" />
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
<axis name="YAW" failsafe_value="0" />
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
<axis name="THRUST" failsafe_value="0" />
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
</commands>
|
</commands>
|
||||||
|
|
||||||
<servos driver="Default">
|
<servos driver="Default">
|
||||||
<servo name="TOP_LEFT" no="0" min="0" neutral="1" max="500" />
|
<servo name="TOP_LEFT" no="0" min="0" neutral="1" max="500"/>
|
||||||
<servo name="TOP_RIGHT" no="1" min="0" neutral="1" max="500" />
|
<servo name="TOP_RIGHT" no="1" min="0" neutral="1" max="500"/>
|
||||||
<servo name="BOTTOM_LEFT" no="3" min="0" neutral="1" max="500" />
|
<servo name="BOTTOM_LEFT" no="3" min="0" neutral="1" max="500"/>
|
||||||
<servo name="BOTTOM_RIGHT" no="2" min="0" neutral="1" max="500" />
|
<servo name="BOTTOM_RIGHT" no="2" min="0" neutral="1" max="500"/>
|
||||||
</servos>
|
</servos>
|
||||||
|
|
||||||
<section name="MIXING" prefix="MOTOR_MIXING_">
|
<section name="MIXING" prefix="MOTOR_MIXING_">
|
||||||
<define name="TRIM_ROLL" value="0" />
|
<define name="TRIM_ROLL" value="0"/>
|
||||||
<define name="TRIM_PITCH" value="0" />
|
<define name="TRIM_PITCH" value="0"/>
|
||||||
<define name="TRIM_YAW" value="0" />
|
<define name="TRIM_YAW" value="0"/>
|
||||||
<define name="NB_MOTOR" value="4" />
|
<define name="NB_MOTOR" value="4"/>
|
||||||
<define name="SCALE" value="255" />
|
<define name="SCALE" value="255"/>
|
||||||
<!-- Time cross layout (X), as documented in paparazzi -->
|
<!-- Time cross layout (X), as documented in paparazzi -->
|
||||||
<define name="ROLL_COEF" value="{ 256, -256, -256, 256 }" />
|
<define name="ROLL_COEF" value="{ 256, -256, -256, 256 }"/>
|
||||||
<define name="PITCH_COEF" value="{ 256, 256, -256, -256 }" />
|
<define name="PITCH_COEF" value="{ 256, 256, -256, -256 }"/>
|
||||||
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }" />
|
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }"/>
|
||||||
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }" />
|
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<command_laws>
|
<command_laws>
|
||||||
<call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)" />
|
<call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
|
||||||
<set servo="TOP_LEFT" value="motor_mixing.commands[SERVO_TOP_LEFT]" />
|
<set servo="TOP_LEFT" value="motor_mixing.commands[SERVO_TOP_LEFT]"/>
|
||||||
<set servo="TOP_RIGHT" value="motor_mixing.commands[SERVO_TOP_RIGHT]" />
|
<set servo="TOP_RIGHT" value="motor_mixing.commands[SERVO_TOP_RIGHT]"/>
|
||||||
<set servo="BOTTOM_LEFT" value="motor_mixing.commands[SERVO_BOTTOM_LEFT]" />
|
<set servo="BOTTOM_LEFT" value="motor_mixing.commands[SERVO_BOTTOM_LEFT]"/>
|
||||||
<set servo="BOTTOM_RIGHT" value="motor_mixing.commands[SERVO_BOTTOM_RIGHT]" />
|
<set servo="BOTTOM_RIGHT" value="motor_mixing.commands[SERVO_BOTTOM_RIGHT]"/>
|
||||||
</command_laws>
|
</command_laws>
|
||||||
|
|
||||||
<section name="IMU" prefix="IMU_">
|
<section name="IMU" prefix="IMU_">
|
||||||
<define name="ACCEL_X_NEUTRAL" value="2072" />
|
<define name="ACCEL_X_NEUTRAL" value="2056"/>
|
||||||
<define name="ACCEL_Y_NEUTRAL" value="2040" />
|
<define name="ACCEL_Y_NEUTRAL" value="2060"/>
|
||||||
<define name="ACCEL_Z_NEUTRAL" value="2047" />
|
<define name="ACCEL_Z_NEUTRAL" value="2052"/>
|
||||||
<define name="ACCEL_X_SENS" value="19.1079036954" integer="16" />
|
|
||||||
<define name="ACCEL_Y_SENS" value="19.5393623518" integer="16" />
|
|
||||||
<define name="ACCEL_Z_SENS" value="19.6539180847" integer="16" />
|
|
||||||
|
|
||||||
<define name="ACCEL_X_SIGN" value="1" />
|
<define name="MAG_X_NEUTRAL" value="99"/>
|
||||||
<define name="ACCEL_Y_SIGN" value="-1" />
|
<define name="MAG_Y_NEUTRAL" value="59"/>
|
||||||
<define name="ACCEL_Z_SIGN" value="-1" />
|
<define name="MAG_Z_NEUTRAL" value="-65"/>
|
||||||
|
<define name="MAG_X_SENS" value="14.8494072406" integer="16"/>
|
||||||
|
<define name="MAG_Y_SENS" value="14.4187929352" integer="16"/>
|
||||||
|
<define name="MAG_Z_SENS" value="15.4390790318" integer="16"/>
|
||||||
|
<define name="MAG_X_CURRENT_COEF" value="0.00175105205138"/>
|
||||||
|
<define name="MAG_Y_CURRENT_COEF" value="0.000172518663485"/>
|
||||||
|
<define name="MAG_Z_CURRENT_COEF" value="0.00022802329524"/>
|
||||||
|
|
||||||
<define name="GYRO_P_SENS_NUM" value="4359" />
|
|
||||||
<define name="GYRO_P_SENS_DEN" value="1000" />
|
|
||||||
<define name="GYRO_Q_SENS_NUM" value="4359" />
|
|
||||||
<define name="GYRO_Q_SENS_DEN" value="1000" />
|
|
||||||
<define name="GYRO_R_SENS_NUM" value="4359" />
|
|
||||||
<define name="GYRO_R_SENS_DEN" value="1000" />
|
|
||||||
|
|
||||||
<define name="GYRO_P_SIGN" value="1" />
|
|
||||||
<define name="GYRO_Q_SIGN" value="-1" />
|
|
||||||
<define name="GYRO_R_SIGN" value="-1" />
|
|
||||||
|
|
||||||
<define name="MAG_X_NEUTRAL" value="118" />
|
|
||||||
<define name="MAG_Y_NEUTRAL" value="-65" />
|
|
||||||
<define name="MAG_Z_NEUTRAL" value="110" />
|
|
||||||
<define name="MAG_X_SENS" value="14.6416865144" integer="16" />
|
|
||||||
<define name="MAG_Y_SENS" value="14.5167340835" integer="16" />
|
|
||||||
<define name="MAG_Z_SENS" value="15.1670335124" integer="16" />
|
|
||||||
|
|
||||||
<define name="MAG_X_SIGN" value="-1" />
|
|
||||||
<define name="MAG_Y_SIGN" value="1" />
|
|
||||||
<define name="MAG_Z_SIGN" value="-1" />
|
|
||||||
|
|
||||||
<!-- roll -->
|
<!-- roll -->
|
||||||
<define name="BODY_TO_IMU_PHI" value="0." unit="deg" />
|
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||||
<!-- pitch -->
|
<!-- pitch -->
|
||||||
<define name="BODY_TO_IMU_THETA" value="0." unit="deg" />
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
<!-- yaw -->
|
<!-- yaw -->
|
||||||
<define name="BODY_TO_IMU_PSI" value="0." unit="deg" />
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- local magnetic field, calculated for: 52°3'56", 4°31'24" -->
|
<!-- local magnetic field, calculated for: 52°3'56", 4°31'24" -->
|
||||||
<!-- http://paparazzi.enac.fr/wiki/Subsystem/ahrs#Local_Magnetic_Field -->
|
<!-- http://paparazzi.enac.fr/wiki/Subsystem/ahrs#Local_Magnetic_Field -->
|
||||||
<section name="AHRS" prefix="AHRS_">
|
<section name="AHRS" prefix="AHRS_">
|
||||||
<define name="H_X" value="0.3892503" />
|
<define name="H_X" value="0.3892503"/>
|
||||||
<define name="H_Y" value="0.0017972" />
|
<define name="H_Y" value="0.0017972"/>
|
||||||
<define name="H_Z" value="0.9211303" />
|
<define name="H_Z" value="0.9211303"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section name="INS" prefix="INS_">
|
<section name="INS" prefix="INS_">
|
||||||
<define name="BARO_SENS" value="22.3" integer="16" />
|
<define name="BARO_SENS" value="22.4" integer="16"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
|
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
|
||||||
<!-- setpoints -->
|
<!-- setpoints -->
|
||||||
<define name="SP_MAX_P" value="10000" />
|
<define name="SP_MAX_P" value="10000"/>
|
||||||
<define name="SP_MAX_Q" value="10000" />
|
<define name="SP_MAX_Q" value="10000"/>
|
||||||
<define name="SP_MAX_R" value="10000" />
|
<define name="SP_MAX_R" value="10000"/>
|
||||||
<define name="DEADBAND_P" value="20" />
|
<define name="DEADBAND_P" value="20"/>
|
||||||
<define name="DEADBAND_Q" value="20" />
|
<define name="DEADBAND_Q" value="20"/>
|
||||||
<define name="DEADBAND_R" value="200" />
|
<define name="DEADBAND_R" value="200"/>
|
||||||
<define name="REF_TAU" value="4" />
|
<define name="REF_TAU" value="4"/>
|
||||||
|
|
||||||
<!-- feedback -->
|
<!-- feedback -->
|
||||||
<define name="GAIN_P" value="400" />
|
<define name="GAIN_P" value="400"/>
|
||||||
<define name="GAIN_Q" value="400" />
|
<define name="GAIN_Q" value="400"/>
|
||||||
<define name="GAIN_R" value="350" />
|
<define name="GAIN_R" value="350"/>
|
||||||
|
|
||||||
<define name="IGAIN_P" value="75" />
|
<define name="IGAIN_P" value="75"/>
|
||||||
<define name="IGAIN_Q" value="75" />
|
<define name="IGAIN_Q" value="75"/>
|
||||||
<define name="IGAIN_R" value="50" />
|
<define name="IGAIN_R" value="50"/>
|
||||||
|
|
||||||
<!-- feedforward -->
|
<!-- feedforward -->
|
||||||
<define name="DDGAIN_P" value="300" />
|
<define name="DDGAIN_P" value="300"/>
|
||||||
<define name="DDGAIN_Q" value="300" />
|
<define name="DDGAIN_Q" value="300"/>
|
||||||
<define name="DDGAIN_R" value="300" />
|
<define name="DDGAIN_R" value="300"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
|
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
|
||||||
<!-- setpoints -->
|
<!-- setpoints -->
|
||||||
<define name="SP_MAX_PHI" value="15" unit="deg" />
|
<define name="SP_MAX_PHI" value="45" unit="deg"/>
|
||||||
<define name="SP_MAX_THETA" value="15" unit="deg" />
|
<define name="SP_MAX_THETA" value="45" unit="deg"/>
|
||||||
<define name="SP_MAX_R" value="90" unit="deg/s" />
|
<define name="SP_MAX_R" value="600" unit="deg/s"/>
|
||||||
<define name="DEADBAND_A" value="0" />
|
<define name="DEADBAND_A" value="0"/>
|
||||||
<define name="DEADBAND_E" value="0" />
|
<define name="DEADBAND_E" value="0"/>
|
||||||
<define name="DEADBAND_R" value="250" />
|
<define name="DEADBAND_R" value="250"/>
|
||||||
|
|
||||||
<!-- reference -->
|
<!-- reference -->
|
||||||
<define name="REF_OMEGA_P" value="800" unit="deg/s" />
|
<define name="REF_OMEGA_P" value="900" unit="deg/s"/>
|
||||||
<define name="REF_ZETA_P" value="0.85" />
|
<define name="REF_ZETA_P" value="0.9"/>
|
||||||
<define name="REF_MAX_P" value="400." unit="deg/s" />
|
<define name="REF_MAX_P" value="600." unit="deg/s"/>
|
||||||
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)" />
|
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
<define name="REF_OMEGA_Q" value="800" unit="deg/s" />
|
<define name="REF_OMEGA_Q" value="900" unit="deg/s"/>
|
||||||
<define name="REF_ZETA_Q" value="0.85" />
|
<define name="REF_ZETA_Q" value="0.9"/>
|
||||||
<define name="REF_MAX_Q" value="400." unit="deg/s" />
|
<define name="REF_MAX_Q" value="600." unit="deg/s"/>
|
||||||
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)" />
|
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
<define name="REF_OMEGA_R" value="500" unit="deg/s" />
|
<define name="REF_OMEGA_R" value="600" unit="deg/s"/>
|
||||||
<define name="REF_ZETA_R" value="0.85" />
|
<define name="REF_ZETA_R" value="0.9"/>
|
||||||
<define name="REF_MAX_R" value="180." unit="deg/s" />
|
<define name="REF_MAX_R" value="400." unit="deg/s"/>
|
||||||
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)" />
|
<define name="REF_MAX_RDOT" value="RadOfDeg(4000.)"/>
|
||||||
|
|
||||||
<!-- feedback -->
|
<!-- feedback -->
|
||||||
<define name="PHI_PGAIN" value="592" />
|
<define name="PHI_PGAIN" value="592"/>
|
||||||
<define name="PHI_DGAIN" value="303" />
|
<define name="PHI_DGAIN" value="303"/>
|
||||||
<define name="PHI_IGAIN" value="0" />
|
<define name="PHI_IGAIN" value="0"/>
|
||||||
|
|
||||||
<define name="THETA_PGAIN" value="606" />
|
<define name="THETA_PGAIN" value="606"/>
|
||||||
<define name="THETA_DGAIN" value="303" />
|
<define name="THETA_DGAIN" value="303"/>
|
||||||
<define name="THETA_IGAIN" value="0" />
|
<define name="THETA_IGAIN" value="0"/>
|
||||||
|
|
||||||
<define name="PSI_PGAIN" value="529" />
|
<define name="PSI_PGAIN" value="529"/>
|
||||||
<define name="PSI_DGAIN" value="353" />
|
<define name="PSI_DGAIN" value="353"/>
|
||||||
<define name="PSI_IGAIN" value="0" />
|
<define name="PSI_IGAIN" value="0"/>
|
||||||
|
|
||||||
<!-- feedforward -->
|
<!-- feedforward -->
|
||||||
<define name="PHI_DDGAIN" value="0" />
|
<define name="PHI_DDGAIN" value="0"/>
|
||||||
<define name="THETA_DDGAIN" value="0" />
|
<define name="THETA_DDGAIN" value="0"/>
|
||||||
<define name="PSI_DDGAIN" value="52" />
|
<define name="PSI_DDGAIN" value="52"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
||||||
<define name="MIN_ERR_Z" value="POS_BFP_OF_REAL(-10.)" />
|
<define name="MIN_ERR_Z" value="POS_BFP_OF_REAL(-10.)"/>
|
||||||
<define name="MAX_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="MIN_ERR_ZD" value="SPEED_BFP_OF_REAL(-10.)"/>
|
||||||
<define name="MAX_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="MAX_SUM_ERR" value="2000000"/>
|
||||||
<define name="HOVER_KP" value="283" />
|
<define name="HOVER_KP" value="283"/>
|
||||||
<define name="HOVER_KD" value="18" />
|
<define name="HOVER_KD" value="82"/>
|
||||||
<define name="HOVER_KI" value="13" />
|
<define name="HOVER_KI" value="13"/>
|
||||||
<!-- 1.5m/s for full stick : BOOZ_SPEED_I_OF_F(1.5) / (MAX_PPRZ/2) -->
|
<!-- 1.5m/s for full stick : BOOZ_SPEED_I_OF_F(1.5) / (MAX_PPRZ/2) -->
|
||||||
<define name="RC_CLIMB_COEF" value="163" />
|
<define name="RC_CLIMB_COEF" value="163"/>
|
||||||
<!-- BOOZ_SPEED_I_OF_F(1.5) * 20% -->
|
<!-- BOOZ_SPEED_I_OF_F(1.5) * 20% -->
|
||||||
<define name="RC_CLIMB_DEAD_BAND" value="160000" />
|
<define name="RC_CLIMB_DEAD_BAND" value="160000"/>
|
||||||
<!-- NOMINAL_HOVER_THROTTLE sets a fixed value instead of the adaptive
|
<define name="NOMINAL_HOVER_THROTTLE" value="0.655"/>
|
||||||
estimation -->
|
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE"/>
|
||||||
<define name="NOMINAL_HOVER_THROTTLE" value="0.4" />
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
<define name="MAX_BANK" value="20" unit="deg" />
|
<define name="MAX_BANK" value="20" unit="deg"/>
|
||||||
<define name="PGAIN" value="100" />
|
<define name="PGAIN" value="79"/>
|
||||||
<define name="DGAIN" value="100" />
|
<define name="DGAIN" value="100"/>
|
||||||
<define name="IGAIN" value="0" />
|
<define name="IGAIN" value="26"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES"
|
<define name="ACTUATOR_NAMES" value="{"top_left_motor", "top_right_motor", "bottom_right_motor", "bottom_left_motor"}"/>
|
||||||
value="{"top_left_motor", "top_right_motor", "bottom_right_motor", "bottom_left_motor"}" />
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00"" />
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_default.h""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_default.h"" />
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section name="AUTOPILOT">
|
<section name="AUTOPILOT">
|
||||||
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT" />
|
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
|
||||||
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD" />
|
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
<define name="MODE_AUTO2" value="AP_MODE_HOVER_Z_HOLD" />
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
|
||||||
|
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section name="BAT">
|
<section name="BAT">
|
||||||
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V" />
|
<define name="MILLIAMP_AT_FULL_THROTTLE" value="8700"/>
|
||||||
<define name="CRITIC_BAT_LEVEL" value="9.6" unit="V" />
|
<define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
|
||||||
<define name="LOW_BAT_LEVEL" value="9.7" unit="V" />
|
<define name="CRITIC_BAT_LEVEL" value="9.6" unit="V"/>
|
||||||
<define name="MAX_BAT_LEVEL" value="12.4" unit="V" />
|
<define name="LOW_BAT_LEVEL" value="9.7" unit="V"/>
|
||||||
|
<define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</airframe>
|
</airframe>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
<target name="ap" board="ardrone2_sdk">
|
<target name="ap" board="ardrone2_sdk">
|
||||||
<define name="USE_INS_NAV_INIT" />
|
<define name="USE_INS_NAV_INIT" />
|
||||||
<define name="ROTORCRAFT_COMMANDS_YAW_ALWAYS_ENABLED"/>
|
<define name="ROTORCRAFT_COMMANDS_YAW_ALWAYS_ENABLED"/>
|
||||||
|
<!-- <define name="ARDRONE2_DEBUG" /> -->
|
||||||
<!-- <define name="USE_GPS_HEIGHT" /> -->
|
<!-- <define name="USE_GPS_HEIGHT" /> -->
|
||||||
<!-- <define name="ARDRONE_FLIGHT_INDOOR" /> -->
|
<!-- <define name="ARDRONE_FLIGHT_INDOOR" /> -->
|
||||||
<!-- <define name="ARDRONE_WITHOUT_SHELL" /> -->
|
<!-- <define name="ARDRONE_WITHOUT_SHELL" /> -->
|
||||||
@@ -84,9 +85,8 @@
|
|||||||
<define name="RC_CLIMB_COEF" value="163" />
|
<define name="RC_CLIMB_COEF" value="163" />
|
||||||
<!-- BOOZ_SPEED_I_OF_F(1.5) * 20% -->
|
<!-- BOOZ_SPEED_I_OF_F(1.5) * 20% -->
|
||||||
<define name="RC_CLIMB_DEAD_BAND" value="160000" />
|
<define name="RC_CLIMB_DEAD_BAND" value="160000" />
|
||||||
<!-- NOMINAL_HOVER_THROTTLE sets a fixed value instead of the adaptive
|
<define name="NOMINAL_HOVER_THROTTLE" value="0.5"/>
|
||||||
estimation -->
|
<define name="ADAPT_THROTTLE_ENABLED" value="FALSE"/>
|
||||||
<define name="NOMINAL_HOVER_THROTTLE" value="0.5" />
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<subsystem name="gps" type="ublox"/>
|
<subsystem name="gps" type="ublox"/>
|
||||||
<subsystem name="actuators" type="mkk"/>
|
<subsystem name="actuators" type="mkk"/>
|
||||||
<subsystem name="imu" type="b2_v1.0"/>
|
<subsystem name="imu" type="b2_v1.0"/>
|
||||||
<subsystem name="stabilization" type="euler"/>
|
<subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
</firmware>
|
</firmware>
|
||||||
@@ -232,7 +232,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}" />
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}" />
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00"" />
|
<define name="JSBSIM_INIT" value=""reset00"" />
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h"" />
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h"" />
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -204,7 +204,7 @@
|
|||||||
<subsystem name="actuators" type="asctec"/>
|
<subsystem name="actuators" type="asctec"/>
|
||||||
<subsystem name="imu" type="b2_v1.1"/>
|
<subsystem name="imu" type="b2_v1.1"/>
|
||||||
<subsystem name="gps" type="ublox"/>
|
<subsystem name="gps" type="ublox"/>
|
||||||
<subsystem name="stabilization" type="euler"/>
|
<subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/>
|
<subsystem name="ahrs" type="int_cmpl_euler"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<!-- Default Aspirin V2.1 values based on the datasheet -->
|
||||||
|
<!-- You can also just leave out those defines then the defaults will be provided by imu_aspirin2.h -->
|
||||||
|
|
||||||
|
<airframe>
|
||||||
|
<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="4.905" integer="16"/>
|
||||||
|
<define name="ACCEL_Y_SENS" value="4.905" integer="16"/>
|
||||||
|
<define name="ACCEL_Z_SENS" value="4.905" 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"/>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</airframe>
|
||||||
@@ -207,7 +207,7 @@ B2L -> CW
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -223,12 +223,10 @@ B2L -> CW
|
|||||||
<firmware name="rotorcraft">
|
<firmware name="rotorcraft">
|
||||||
<target name="ap" board="lisa_m_2.0">
|
<target name="ap" board="lisa_m_2.0">
|
||||||
<subsystem name="radio_control" type="spektrum">
|
<subsystem name="radio_control" type="spektrum">
|
||||||
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
||||||
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
||||||
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
|
|
||||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="nps" board="pc">
|
<target name="nps" board="pc">
|
||||||
@@ -249,7 +247,7 @@ B2L -> CW
|
|||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
|
|||||||
@@ -189,7 +189,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -233,7 +233,7 @@
|
|||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
</airframe>
|
</airframe>
|
||||||
|
|||||||
@@ -205,7 +205,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -215,16 +215,14 @@
|
|||||||
<load name="led_safety_status.xml"/>
|
<load name="led_safety_status.xml"/>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<firmware name="rotorcraft">
|
<firmware name="rotorcraft">
|
||||||
<target name="ap" board="lisa_l_1.1">
|
<target name="ap" board="lisa_l_1.1">
|
||||||
<subsystem name="radio_control" type="spektrum">
|
<subsystem name="radio_control" type="spektrum">
|
||||||
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
||||||
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
||||||
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
|
</target>
|
||||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="nps" board="pc">
|
<target name="nps" board="pc">
|
||||||
<subsystem name="fdm" type="jsbsim"/>
|
<subsystem name="fdm" type="jsbsim"/>
|
||||||
@@ -244,7 +242,7 @@
|
|||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
|
|||||||
@@ -166,7 +166,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -178,12 +178,10 @@
|
|||||||
<firmware name="rotorcraft">
|
<firmware name="rotorcraft">
|
||||||
<target name="ap" board="lisa_m_2.0">
|
<target name="ap" board="lisa_m_2.0">
|
||||||
<subsystem name="radio_control" type="spektrum">
|
<subsystem name="radio_control" type="spektrum">
|
||||||
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
||||||
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
||||||
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
|
|
||||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="nps" board="pc">
|
<target name="nps" board="pc">
|
||||||
@@ -205,7 +203,7 @@
|
|||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
|
|||||||
@@ -177,7 +177,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -195,8 +195,6 @@
|
|||||||
<subsystem name="radio_control" type="ppm">
|
<subsystem name="radio_control" type="ppm">
|
||||||
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
|
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
|
|
||||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="nps" board="pc">
|
<target name="nps" board="pc">
|
||||||
@@ -220,7 +218,7 @@
|
|||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
|
|||||||
@@ -200,7 +200,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -244,7 +244,7 @@
|
|||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
</airframe>
|
</airframe>
|
||||||
|
|||||||
@@ -201,7 +201,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -213,12 +213,10 @@
|
|||||||
<firmware name="rotorcraft">
|
<firmware name="rotorcraft">
|
||||||
<target name="ap" board="lisa_l_1.1">
|
<target name="ap" board="lisa_l_1.1">
|
||||||
<subsystem name="radio_control" type="spektrum">
|
<subsystem name="radio_control" type="spektrum">
|
||||||
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
||||||
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
||||||
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
|
|
||||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="nps" board="pc">
|
<target name="nps" board="pc">
|
||||||
@@ -239,7 +237,7 @@
|
|||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -174,12 +174,10 @@
|
|||||||
<firmware name="rotorcraft">
|
<firmware name="rotorcraft">
|
||||||
<target name="ap" board="lisa_m_1.0">
|
<target name="ap" board="lisa_m_1.0">
|
||||||
<subsystem name="radio_control" type="spektrum">
|
<subsystem name="radio_control" type="spektrum">
|
||||||
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
||||||
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
||||||
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
|
|
||||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="nps" board="pc">
|
<target name="nps" board="pc">
|
||||||
@@ -200,7 +198,7 @@
|
|||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
|
|||||||
@@ -164,7 +164,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -180,12 +180,10 @@
|
|||||||
<firmware name="rotorcraft">
|
<firmware name="rotorcraft">
|
||||||
<target name="ap" board="lisa_m_2.0">
|
<target name="ap" board="lisa_m_2.0">
|
||||||
<subsystem name="radio_control" type="spektrum">
|
<subsystem name="radio_control" type="spektrum">
|
||||||
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
||||||
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
||||||
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
|
|
||||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
|
||||||
<configure name="LISA_M_BARO" value="BARO_MS5611_SPI"/>
|
<configure name="LISA_M_BARO" value="BARO_MS5611_SPI"/>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
@@ -207,7 +205,7 @@
|
|||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -178,10 +178,8 @@
|
|||||||
<firmware name="rotorcraft">
|
<firmware name="rotorcraft">
|
||||||
<target name="ap" board="lisa_m_2.0">
|
<target name="ap" board="lisa_m_2.0">
|
||||||
<subsystem name="radio_control" type="ppm">
|
<subsystem name="radio_control" type="ppm">
|
||||||
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
|
<configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
|
|
||||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="nps" board="pc">
|
<target name="nps" board="pc">
|
||||||
@@ -202,7 +200,7 @@
|
|||||||
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
<subsystem name="ins"/>
|
<subsystem name="ins"/>
|
||||||
<!--define name="USE_INS_NAV_INIT"/-->
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
<!--subsystem name="stabilization" type="euler"/>
|
<!--subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,233 @@
|
|||||||
|
<!-- this is a quadrocopter frame equiped with Lisa/S 0.1 and generic china pwm motor controllers -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Applicable configuration:
|
||||||
|
airframe="airframes/esden/quady_ls01pwm.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/dummy.xml"
|
||||||
|
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_int.xml"
|
||||||
|
-->
|
||||||
|
|
||||||
|
<airframe name="quady_lm2a2pwm">
|
||||||
|
|
||||||
|
<servos driver="Pwm">
|
||||||
|
<servo name="FRONT" no="0" min="1000" neutral="1100" max="1950"/>
|
||||||
|
<servo name="RIGHT" no="1" min="1000" neutral="1100" max="1950"/>
|
||||||
|
<servo name="BACK" no="2" min="1000" neutral="1100" max="1950"/>
|
||||||
|
<servo name="LEFT" no="3" min="1000" neutral="1100" max="1950"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
|
||||||
|
<set servo="FRONT" value="motor_mixing.commands[SERVO_FRONT]"/>
|
||||||
|
<set servo="BACK" value="motor_mixing.commands[SERVO_BACK]"/>
|
||||||
|
<set servo="RIGHT" value="motor_mixing.commands[SERVO_RIGHT]"/>
|
||||||
|
<set servo="LEFT" value="motor_mixing.commands[SERVO_LEFT]"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="MIXING" prefix="MOTOR_MIXING_">
|
||||||
|
<define name="TRIM_ROLL" value="0"/>
|
||||||
|
<define name="TRIM_PITCH" value="0"/>
|
||||||
|
<define name="TRIM_YAW" value="0"/>
|
||||||
|
<define name="NB_MOTOR" value="4"/>
|
||||||
|
<define name="SCALE" value="256"/>
|
||||||
|
<define name="ROLL_COEF" value="{ 0, -256, 0, 256 }"/>
|
||||||
|
<define name="PITCH_COEF" value="{ 256, 0, -256, 0 }"/>
|
||||||
|
<define name="YAW_COEF" value="{ -256, 256, -256, 256 }"/>
|
||||||
|
<define name="THRUST_COEF" value="{ 256, 256, 256, 256 }"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<include href="conf/airframes/esden/calib/ls01-default.xml"/>
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<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="45." 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_HOVER_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_PSI" value="45." unit="deg"/>
|
||||||
|
<define name="SP_MAX_R" value="90." unit="deg/s"/>
|
||||||
|
<define name="SP_MAX_P" value="90." unit="deg/s"/>
|
||||||
|
<define name="DEADBAND_R" value="250"/>
|
||||||
|
<define name="DEADBAND_A" 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="400." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
|
<define name="REF_OMEGA_Q" value="800" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_Q" value="0.85"/>
|
||||||
|
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
|
||||||
|
|
||||||
|
<define name="REF_OMEGA_R" value="500" unit="deg/s"/>
|
||||||
|
<define name="REF_ZETA_R" value="0.85"/>
|
||||||
|
<define name="REF_MAX_R" value="90." unit="deg/s"/>
|
||||||
|
<define name="REF_MAX_RDOT" value="RadOfDeg(900.)"/>
|
||||||
|
|
||||||
|
<!-- feedback -->
|
||||||
|
<define name="PHI_PGAIN" value="1000"/>
|
||||||
|
<define name="PHI_DGAIN" value="400"/>
|
||||||
|
<define name="PHI_IGAIN" value="200"/>
|
||||||
|
|
||||||
|
<define name="THETA_PGAIN" value="1000"/>
|
||||||
|
<define name="THETA_DGAIN" value="400"/>
|
||||||
|
<define name="THETA_IGAIN" value="200"/>
|
||||||
|
|
||||||
|
<define name="PSI_PGAIN" value="500"/>
|
||||||
|
<define name="PSI_DGAIN" value="300"/>
|
||||||
|
<define name="PSI_IGAIN" value="10"/>
|
||||||
|
|
||||||
|
<!-- feedforward -->
|
||||||
|
<define name="PHI_DDGAIN" value=" 300"/>
|
||||||
|
<define name="THETA_DDGAIN" value=" 300"/>
|
||||||
|
<define name="PSI_DDGAIN" value=" 300"/>
|
||||||
|
|
||||||
|
<define name="PHI_AGAIN" value="0"/>
|
||||||
|
<define name="THETA_AGAIN" value="0"/>
|
||||||
|
<define name="PSI_AGAIN" value="0"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<define name="BARO_SENS" value="22.4" 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="400"/>
|
||||||
|
<define name="HOVER_KD" value="350"/>
|
||||||
|
<define name="HOVER_KI" value="144"/>
|
||||||
|
<!-- 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="GUIDANCE_V_NOMINAL_HOVER_THROTTLE" value ="0.9"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AHRS" prefix="AHRS_">
|
||||||
|
<define name="H_X" value=" 0.47577"/>
|
||||||
|
<define name="H_Y" value=" 0.11811"/>
|
||||||
|
<define name="H_Z" value=" 0.87161"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="PGAIN" value="50"/>
|
||||||
|
<define name="DGAIN" value="50"/>
|
||||||
|
<define name="IGAIN" 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="JSBSIM_INIT" value=""reset00""/>
|
||||||
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<modules main_freq="512">
|
||||||
|
<load name="gps_ubx_ucenter.xml"/>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<target name="ap" board="lisa_s_0.1">
|
||||||
|
<subsystem name="radio_control" type="spektrum">
|
||||||
|
<define name="RADIO_MODE" value="RADIO_FLAP"/>
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GEAR"/>
|
||||||
|
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="0"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<configure name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
|
||||||
|
<configure name="LISA_S_BARO" value="BARO_MS5611_SPI"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<subsystem name="fdm" type="jsbsim"/>
|
||||||
|
<subsystem name="radio_control" type="ppm"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<subsystem name="motor_mixing"/>
|
||||||
|
<subsystem name="actuators" type="pwm">
|
||||||
|
<define name="SERVO_HZ" value="400"/>
|
||||||
|
<define name="USE_SERVOS_1AND2"/>
|
||||||
|
</subsystem>
|
||||||
|
|
||||||
|
<subsystem name="telemetry" type="transparent"/>
|
||||||
|
<subsystem name="imu" type="lisa_s_v0.1"/>
|
||||||
|
<subsystem name="gps" type="ublox"/>
|
||||||
|
<subsystem name="stabilization" type="int_quat"/>
|
||||||
|
<subsystem name="ahrs" type="int_cmpl_quat"/>
|
||||||
|
<subsystem name="ins"/>
|
||||||
|
<!--define name="USE_INS_NAV_INIT"/-->
|
||||||
|
<!--subsystem name="stabilization" type="euler"/>
|
||||||
|
<subsystem name="ahrs" type="int_cmpl_euler"/-->
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
|
||||||
|
<firmware name="lisa_test_progs">
|
||||||
|
<target name="test_led" board="lisa_s_0.1">
|
||||||
|
<configure name="SYS_TIME_LED" value="none"/>
|
||||||
|
</target>
|
||||||
|
<target name="test_uart" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_servos" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_telemetry" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_imu_aspirin" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_rc_spektrum" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_baro" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_imu_b2" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_can" board="lisa_s_0.1"/>
|
||||||
|
<!--<target name="test_imu" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_rc_ppm" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_adc" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_hmc5843" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_itg3200" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_adxl345" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_esc_mkk_simple" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_esc_asctecv1_simple" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_actuators_mkk" board="lisa_s_0.1"/>
|
||||||
|
<target name="test_actuators_asctecv1" board="lisa_s_0.1"/-->
|
||||||
|
</firmware>
|
||||||
|
</airframe>
|
||||||
@@ -21,6 +21,11 @@
|
|||||||
</target>
|
</target>
|
||||||
<target name="sim" board="pc"/>
|
<target name="sim" board="pc"/>
|
||||||
|
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<!-- Note NPS needs the ppm type radio_control subsystem -->
|
||||||
|
<subsystem name="fdm" type="jsbsim"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
<define name="USE_AIRSPEED"/>
|
<define name="USE_AIRSPEED"/>
|
||||||
<define name="AGR_CLIMB"/>
|
<define name="AGR_CLIMB"/>
|
||||||
<define name="STRONG_WIND"/>
|
<define name="STRONG_WIND"/>
|
||||||
@@ -251,4 +256,11 @@
|
|||||||
<define name="AUTOSHOOT_METER_GRID" value="50" unit="meter"/>
|
<define name="AUTOSHOOT_METER_GRID" value="50" unit="meter"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
|
<define name="JSBSIM_MODEL" value=""LisaAspirin2""/>
|
||||||
|
<define name="ACTUATOR_NAMES" value="{"throttle-cmd-norm", "aileron-cmd-norm", "elevator-cmd-norm", "rudder-cmd-norm"}"/>
|
||||||
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_default.h""/>
|
||||||
|
<define name="JS_AXIS_MODE" value="4"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
</airframe>
|
</airframe>
|
||||||
|
|||||||
@@ -194,7 +194,7 @@
|
|||||||
|
|
||||||
<section name="SIMULATOR" prefix="NPS_">
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
<define name="ACTUATOR_NAMES" value="{"front_motor", "back_motor", "right_motor", "left_motor"}"/>
|
||||||
<define name="INITIAL_CONDITITONS" value=""reset00""/>
|
<define name="JSBSIM_INIT" value=""reset00""/>
|
||||||
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
<define name="SENSORS_PARAMS" value=""nps_sensors_params_booz2_a1.h""/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -210,7 +210,7 @@
|
|||||||
<subsystem name="actuators" type="mkk"/>
|
<subsystem name="actuators" type="mkk"/>
|
||||||
<subsystem name="imu" type="b2_v1.0"/>
|
<subsystem name="imu" type="b2_v1.0"/>
|
||||||
<subsystem name="gps" type="ublox"/>
|
<subsystem name="gps" type="ublox"/>
|
||||||
<subsystem name="stabilization" type="euler"/>
|
<subsystem name="stabilization" type="int_euler"/>
|
||||||
<subsystem name="ahrs" type="int_cmpl_euler"/>
|
<subsystem name="ahrs" type="int_cmpl_euler"/>
|
||||||
<subsystem name="ins" type="hff"/>
|
<subsystem name="ins" type="hff"/>
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user