Files
paparazzi/conf/modules/ahrs_float_invariant.xml
T
Gautier Hattenberger dfd8e93927 State interface input filter (#3409)
* [generator] generate unique ID and names table for modules
* [state] add accessors for the state origin
* [state] don't access directly to state origin, use getters
* [state] filter inputs with module ID
* [ahrs] convert AHRS modules to state input filter
- selection of ahrs with settings from each module
- init functions for each ahrs modules
- remove old chimu
* update unit test
* [ins] decoupled INS implementation
To allow multiple INS at the same time:
- remove weak functions from ins.c
- remove the INS_TYPE_H define
- use ABI message to trigger INS reset
* [state] protect for c++
2024-12-03 22:34:27 +01:00

51 lines
2.8 KiB
XML

<!DOCTYPE module SYSTEM "module.dtd">
<module name="ahrs_float_invariant" dir="ahrs" task="estimation">
<doc>
<description>
AHRS using invariant filter.
</description>
<configure name="AHRS_FINV_TYPE" value="AHRS_PRIMARY|AHRS_SECONDARY" description="set if the AHRS is the primary source (default) or one of the secondary sources"/>
<configure name="USE_MAGNETOMETER" value="TRUE" description="set to FALSE to disable magnetometer"/>
<configure name="AHRS_ALIGNER_LED" value="1" description="LED number to indicate AHRS alignment, none to disable (default is board dependent)"/>
<define name="SEND_INVARIANT_FILTER" description="send INV_FILTER message for debugging"/>
<define name="AHRS_FINV_IMU_ID" value="ABI_BROADCAST" description="ABI sender id of IMU to use"/>
<define name="AHRS_FINV_MAG_ID" value="ABI_BROADCAST" description="ABI sender id of magnetometer to use"/>
</doc>
<settings>
<dl_settings>
<dl_settings NAME="AHRS INV">
<dl_setting var="ahrs_finv_enable" min="0" step="1" max="1" module="modules/ahrs/ahrs_float_invariant_wrapper" values="DISABLE|ENABLE" handler="enable"/>
<dl_setting MAX="1" MIN="1" STEP="1" VAR="ahrs_float_inv.reset" shortname="reset"/>
<dl_setting MAX="1." MIN="0." STEP="0.01" VAR="ahrs_float_inv.gains.lx" shortname="lx" module="modules/ahrs/ahrs_float_invariant" param="AHRS_INV_LX"/>
<dl_setting MAX="1." MIN="0." STEP="0.01" VAR="ahrs_float_inv.gains.ly" shortname="ly" param="AHRS_INV_LY"/>
<dl_setting MAX="1." MIN="0." STEP="0.01" VAR="ahrs_float_inv.gains.lz" shortname="lz" param="AHRS_INV_LZ"/>
<dl_setting MAX=".1" MIN="0." STEP="0.001" VAR="ahrs_float_inv.gains.mx" shortname="mx" param="AHRS_INV_MX"/>
<dl_setting MAX=".1" MIN="0." STEP="0.001" VAR="ahrs_float_inv.gains.my" shortname="my" param="AHRS_INV_MY"/>
<dl_setting MAX=".1" MIN="0." STEP="0.001" VAR="ahrs_float_inv.gains.mz" shortname="mz" param="AHRS_INV_MZ"/>
<dl_setting MAX="1." MIN="0." STEP="0.01" VAR="ahrs_float_inv.gains.n" shortname="n" param="AHRS_INV_N"/>
<dl_setting MAX="1." MIN="0." STEP="0.01" VAR="ahrs_float_inv.gains.o" shortname="o" param="AHRS_INV_O"/>
</dl_settings>
</dl_settings>
</settings>
<dep>
<depends>ahrs_common,@imu,@mag</depends>
<provides>ahrs</provides>
</dep>
<header>
<file name="ahrs_float_invariant_wrapper.h"/>
</header>
<init fun="ahrs_finv_wrapper_init()"/>
<makefile target="!sim|fbw">
<configure name="USE_MAGNETOMETER" default="1"/>
<define name="USE_MAGNETOMETER" cond="ifeq (,$(findstring $(USE_MAGNETOMETER),0 FALSE))"/>
<file name="ahrs_float_invariant.c"/>
<file name="ahrs_float_invariant_wrapper.c"/>
<test>
<define name="AHRS_FINV_TYPE" value="AHRS_PRIMARY"/>
</test>
</makefile>
</module>