mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-09 22:49:53 +08:00
dfd8e93927
* [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++
46 lines
2.6 KiB
XML
46 lines
2.6 KiB
XML
<!DOCTYPE module SYSTEM "module.dtd">
|
|
|
|
<module name="ahrs_float_mlkf" dir="ahrs" task="estimation">
|
|
<doc>
|
|
<description>
|
|
AHRS using MLKF filter.
|
|
Multiplicative Linearized Kalman Filter in quaternion formulation.
|
|
Estimates the gyro bias and needs magnetometer to update all 3 axes.
|
|
Not suitable for fixedwings!
|
|
Suitable for rotorcraft. The magnetometer is used and needs to be well calibrated. Estimates attitude and heading. Does not use GPS.
|
|
</description>
|
|
<configure name="AHRS_MLKF_TYPE" value="AHRS_PRIMARY|AHRS_SECONDARY" description="set if the AHRS is the primary source (default) or one of the secondary sources"/>
|
|
<configure name="AHRS_ALIGNER_LED" value="1" description="LED number to indicate AHRS alignment, none to disable (default is board dependent)"/>
|
|
<define name="AHRS_MAG_UPDATE_ALL_AXES" value="FALSE|TRUE" description="Use magnetometer to update all axes and not only yaw"/>
|
|
<define name="AHRS_MLKF_IMU_ID" value="ABI_BROADCAST" description="ABI sender id of IMU to use"/>
|
|
<define name="AHRS_MLKF_MAG_ID" value="ABI_BROADCAST" description="ABI sender id of magnetometer to use"/>
|
|
</doc>
|
|
|
|
<settings>
|
|
<dl_settings>
|
|
<dl_settings NAME="AHRS MLKF">
|
|
<dl_setting var="ahrs_mlkf_enable" min="0" step="1" max="1" module="modules/ahrs/ahrs_float_mlkf_wrapper" values="DISABLE|ENABLE" handler="enable"/>
|
|
<dl_setting var="ahrs_mlkf.mag_noise.x" min="0.0" step="0.02" max="1.0" module="modules/ahrs/ahrs_float_mlkf" shortname="mag_noise_x" param="AHRS_MAG_NOISE_X" type="float" persistent="true"/>
|
|
<dl_setting var="ahrs_mlkf.mag_noise.y" min="0.0" step="0.02" max="1.0" module="modules/ahrs/ahrs_float_mlkf" shortname="mag_noise_y" param="AHRS_MAG_NOISE_Y" type="float" persistent="true"/>
|
|
<dl_setting var="ahrs_mlkf.mag_noise.z" min="0.0" step="0.02" max="1.0" module="modules/ahrs/ahrs_float_mlkf" shortname="mag_noise_z" param="AHRS_MAG_NOISE_Z" type="float" persistent="true"/>
|
|
</dl_settings>
|
|
</dl_settings>
|
|
</settings>
|
|
|
|
<dep>
|
|
<depends>ahrs_common,@imu,@mag</depends>
|
|
<provides>ahrs</provides>
|
|
</dep>
|
|
<makefile target="!sim|fbw">
|
|
<configure name="AHRS_MLKF_TYPE" default="AHRS_PRIMARY"/>
|
|
<define name="AHRS_MLKF_TYPE" value="$(AHRS_MLKF_TYPE)"/>
|
|
<configure name="USE_MAGNETOMETER" default="1"/>
|
|
<define name="USE_MAGNETOMETER" cond="ifeq (,$(findstring $(USE_MAGNETOMETER),0 FALSE))"/>
|
|
<file name="ahrs_float_mlkf.c"/>
|
|
<file name="ahrs_float_mlkf_wrapper.c"/>
|
|
<test>
|
|
<define name="AHRS_MLKF_TYPE" value="AHRS_PRIMARY"/>
|
|
</test>
|
|
</makefile>
|
|
</module>
|