Merge pull request #525 baro_abi

Baro event handling using ABI interface

Main benefits:

less crappy handler functions in main.c files
possibility to use multiple sources of sensors (integrated to the board or not)
the filters don't need to know who is sending the raw values (not completely true with the old alt_float filter yet)

the pressure are now standardized in Pascal and the standard atmosphere model is used

The INS_BARO_SENS is hence not needed anymore.
onboard baros are automatically available in fixedwing firmware as well (use same code as rotorcraft now)

disable onboard baro with <configure name="USE_BARO_BOARD" value="FALSE"/>
Some stuff to do before using: find the default conversion factor to convert ADC values to Pascal
(mostly older boards/baro, recent digital sensors can output pressure in Pascal already)

Also all baro_board implementations use the same BARO_BOARD_SENDER_ID,
since there can only be one baro_board at the same time and this provides a good default for INS_BARO_ID.
So if you want to use an onboard baro the INS_BARO_ID is already ok (also if you have additional baro modules).
To use a baro module for INS: <define name="INS_BARO_ID" value="BARO_x_SENDER_ID"/>

closes #525
This commit is contained in:
Felix Ruess
2013-10-11 15:13:13 +02:00
210 changed files with 2260 additions and 2279 deletions
+2 -1
View File
@@ -82,6 +82,7 @@ SUBDIRS = $(PPRZCENTER) $(MISC) $(LOGALIZER)
# xml files used as input for header generation
#
MESSAGES_XML = $(CONF)/messages.xml
ABI_XML = $(CONF)/abi.xml
UBX_XML = $(CONF)/ubx.xml
MTK_XML = $(CONF)/mtk.xml
XSENS_XML = $(CONF)/xsens_MTi-G.xml
@@ -218,7 +219,7 @@ $(DL_PROTOCOL2_H) : $(MESSAGES_XML) tools
$(Q)mv $($@_TMP) $@
$(Q)chmod a+r $@
$(ABI_MESSAGES_H) : $(MESSAGES_XML) tools
$(ABI_MESSAGES_H) : $(ABI_XML) tools
@echo GENERATE $@
$(eval $@_TMP := $(shell $(MKTEMP)))
$(Q)PAPARAZZI_SRC=$(PAPARAZZI_SRC) PAPARAZZI_HOME=$(PAPARAZZI_HOME) $(TOOLS)/gen_abi.out $< airborne > $($@_TMP)
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!DOCTYPE protocol SYSTEM "messages.dtd">
<protocol>
<class name="airborne">
<!--message name="TEST_ABI" id="0">
<field name="value" type="int8_t"/>
<field name="boo" type="struct abi_boo"/>
<field name="vect" type="struct Int32Vect3 *"/>
</message-->
<message name="BARO_ABS" id="1">
<field name="pressure" type="float" unit="Pa"/>
</message>
<message name="BARO_DIFF" id="2">
<field name="pressure" type="float" unit="Pa"/>
</message>
</class>
</protocol>
-1
View File
@@ -124,7 +124,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="10." integer="16"/>
</section>
<!-- ************************* GAINS ************************* -->
-1
View File
@@ -121,7 +121,6 @@ LiPo/LiIo-Zellen: 2-3
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="15." integer="16"/>
</section>
<!-- ************************* GAINS ************************* -->
@@ -124,7 +124,6 @@
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="-0.0640000030398" unit="rad"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0.0670000016689" unit="rad"/>
<define name="BARO_SENS" value="1.0"/> <!-- TODO calibration -->
</section>
<section name="BAT">
@@ -15,9 +15,6 @@
<define name="LIGHT_LED_STROBE" value="5"/>
<define name="LIGHT_LED_NAV" value="3"/>
</load-->
<!--load name="baro_board.xml">
<define name="BARO_ABS_EVENT" value="BaroPbnUpdate"/>
</load-->
<load name="pbn.xml"/>
</modules>
-1
View File
@@ -9,7 +9,6 @@
<airframe name="Funjet">
<modules>
<!--load name="baro_board.xml"/-->
<load name="airspeed_adc.xml">
<configure name="ADC_AIRSPEED" value="ADC_0"/>
<define name="AIRSPEED_QUADRATIC_SCALE" value="1.09378"/>
@@ -120,7 +120,6 @@
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="3." unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0." unit="deg"/>
<define name="BARO_SENS" value="1.0"/> <!-- TODO calibration -->
</section>
<section name="BAT">
@@ -142,7 +142,6 @@
<section name="INS" prefix="INS_">
<!-- datasheet 1.4 mm/LSB : 0.0014*2^8 = 0.3584 -->
<!-- calibration SENS = 1.156 :( -->
<define name="BARO_SENS" value="1.156" integer="16"/>
<define name="SONAR_SENS" value="0.0128633" integer="16"/>
<define name="SONAR_OFFSET" value="7"/>
<define name="SONAR_MAX_RANGE" value="4.0"/>
@@ -177,7 +177,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="15." integer="16"/>
<!--define name="SONAR_SENS" value="0.00650498" integer="16"/--> <!-- XL-MaxSonar-EZ4 5V supply -->
<define name="SONAR_SENS" value="0.016775" integer="16"/> <!-- XL-MaxSonar-EZ4 5V supply scaled to 3.3V -->
<define name="SONAR_MAX_RANGE" value="5.0"/>
-1
View File
@@ -127,7 +127,6 @@
<section name="INS" prefix="INS_">
<!-- datasheet 1.4 mm/LSB : 0.0014*2^8 = 0.3584 -->
<!-- calibration SENS = 1.156 :( -->
<define name="BARO_SENS" value="1.156" integer="16"/>
</section>
@@ -145,7 +145,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -147,7 +147,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -129,7 +129,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -134,7 +134,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -221,7 +221,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="10." integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -221,7 +221,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="10." integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-1
View File
@@ -109,7 +109,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
-1
View File
@@ -170,7 +170,6 @@ B2L -> CW
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -153,7 +153,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-1
View File
@@ -167,7 +167,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="10." integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-1
View File
@@ -128,7 +128,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="10." integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-1
View File
@@ -135,7 +135,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="10." integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-1
View File
@@ -161,7 +161,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-1
View File
@@ -163,7 +163,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="10." integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-1
View File
@@ -124,7 +124,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-1
View File
@@ -127,7 +127,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -124,7 +124,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-1
View File
@@ -127,7 +127,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -12,7 +12,6 @@ twog_1.0 + aspirin + ETS baro + ETS speed
<airframe name="Tob_energyadaptive">
<firmware name="fixedwing">
<target name="sim" board="pc"/>
<target name="ap" board="twog_1.0">
<configure name="PERIODIC_FREQUENCY" value="120"/>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="100"/>
@@ -22,6 +21,9 @@ twog_1.0 + aspirin + ETS baro + ETS speed
<define name="USE_I2C0"/>
<define name="USE_BARO_ETS"/>
</target>
<target name="sim" board="pc">
<define name="INS_BARO_ID" value="BARO_SIM_SENDER_ID"/>
</target>
<define name="USE_AIRSPEED"/>
<define name="USE_BAROMETER"/>
@@ -50,12 +52,11 @@ twog_1.0 + aspirin + ETS baro + ETS speed
<!-- <define name="AIRSPEED_ETS_I2C_DEV" value="i2c1"/> -->
</load>
<load name="baro_ets.xml">
<define name="BARO_ETS_SCALE" value="0.3"/>
<define name="BARO_ETS_SCALE" value="40.0"/>
<define name="BARO_ETS_ALT_SCALE" value="0.3"/>
<define name="BARO_ETS_SYNC_SEND"/>
</load>
<load name="baro_board.xml">
<define name="BARO_ABS_EVENT" value="BaroEtsUpdate"/>
</load>
<load name="baro_sim.xml"/>
<load name="digital_cam.xml">
<define name="DC_SHUTTER_LED" value="5"/><!-- led4:aux led5:camsw-->
</load>
@@ -124,7 +125,6 @@ twog_1.0 + aspirin + ETS baro + ETS speed
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="0.3"/>
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
</section>
-1
View File
@@ -148,7 +148,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="15." integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
-4
View File
@@ -19,7 +19,6 @@
<define name="USE_I2C0"/>
<define name="USE_AIRSPEED"/>
<define name="USE_BARO_ETS"/>
<define name="INS_BARO_SENS" value="0.32"/>
<subsystem name="radio_control" type="ppm"/>
<subsystem name="telemetry" type="transparent"/>
@@ -37,9 +36,6 @@
<modules>
<load name="airspeed_ets.xml"/>
<load name="baro_ets.xml"/>
<load name="baro_board.xml">
<define name="BARO_ABS_EVENT" value="BaroEtsUpdate"/>
</load>
<load name="infrared_adc.xml"/>
</modules>
-1
View File
@@ -147,7 +147,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="15." integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -119,7 +119,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22." integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
@@ -122,7 +122,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22." integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
@@ -112,7 +112,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22." integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
@@ -108,7 +108,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22." integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
-1
View File
@@ -146,7 +146,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="10." integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -102,7 +102,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.3" integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
@@ -104,7 +104,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.3" integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
@@ -94,7 +94,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.3" integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
@@ -147,7 +147,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
@@ -98,7 +98,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.3" integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
+2 -2
View File
@@ -36,6 +36,8 @@
<subsystem name="stabilization" type="int_euler"/>
<subsystem name="ahrs" type="int_cmpl_quat"/>
<subsystem name="ins" type="hff"/>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="512"/>
</firmware>
<section name="MIXING" prefix="MOTOR_MIXING_">
@@ -117,7 +119,6 @@
<!-- Magnetic field for Toulouse (declination -16°) -->
<section name="AHRS" prefix="AHRS_">
<define name="PROPAGATE_FREQUENCY" value="512"/>
<define name="PROPAGATE_LOW_PASS_RATES" value="1"/>
<define name="H_X" value=" 0.513081"/>
<define name="H_Y" value="-0.00242783"/>
@@ -127,7 +128,6 @@
<section name="INS" prefix="INS_">
<!-- datasheet 1.4 mm/LSB : 0.0014*2^8 = 0.3584 -->
<!-- calibration SENS = 1.156 :( -->
<define name="BARO_SENS" value="1.156" integer="16"/>
<define name="SONAR_SENS" value="0.0128633" integer="16"/>
<define name="SONAR_OFFSET" value="7"/>
<define name="SONAR_MAX_RANGE" value="4.0"/>
@@ -98,7 +98,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.3" integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
@@ -184,7 +184,6 @@ More information on the Quadshot can be found at transition-robotics.com -->
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.4" integer="16"/>
</section>
<!-- Gains for vertical navigation -->
@@ -31,13 +31,11 @@
<modules main_freq="512">
<load name="baro_ets.xml">
<define name="BARO_ETS_SCALE" value="0.3"/>
<define name="BARO_ETS_SCALE" value="40.0"/>
<define name="BARO_ETS_ALT_SCALE" value="0.3"/>
<define name="BARO_ETS_SYNC_SEND"/>
<define name="BARO_ETS_I2C_DEV" value="i2c1"/>
</load>
<load name="baro_board.xml">
<define name="BARO_ABS_EVENT" value="BaroEtsUpdate"/>
</load>
</modules>
<servos driver="Pwm">
@@ -100,7 +98,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.3" integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
@@ -138,7 +138,6 @@
</section>
<section name="INS" prefix="INS_">
<define name="BARO_SENS" value="22.3" integer="16"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
@@ -130,7 +130,6 @@
</section>
<section name="INS" prefix="BOOZ_INS_">
<define name="BARO_SENS" value="15." integer="16"/>
<define name="SONAR_SENS" value="2.146" integer="16"/>
</section>
@@ -163,7 +163,6 @@
</section>
<section name="INS" prefix="BOOZ_INS_">
<define name="BARO_SENS" value="15." integer="16"/>
<!--define name="SONAR_SENS" value="2.146" integer="16"/-->
<define name="SONAR_SENS" value="3." integer="16"/>
</section>

Some files were not shown because too many files have changed in this diff Show More