extended INS with vertical filter using sonar.
No detailed description...
Example for airframe file
Add to your firmware section: This example contains all possible configuration options, not all of them are mandatory!
<module name="ins_hff_extended">
b'<define name="USE_INS_NAV_INIT" value="TRUE|FALSE" />\n '
b'<define name="INS_INT_AGL_ID" value="ABI_BROADCAST" />\n '
b'<define name="INS_INT_BARO_ID" value="BARO_BOARD_SENDER_ID" />\n '
b'<define name="INS_INT_GPS_ID" value="GPS_MULTI_ID" />\n '
b'<define name="INS_INT_IMU_ID" value="ABI_BROADCAST" />\n '
b'<define name="INS_INT_VEL_ID" value="ABI_BROADCAST" />\n '
b'<define name="INS_SONAR_MIN_RANGE" value="0.001" />\n '
b'<define name="INS_SONAR_MAX_RANGE" value="4.0" />\n '
b'<define name="INS_SONAR_UPDATE_ON_AGL" value="FALSE" />\n '
</module>
Module configuration options
Define Options
- name:
USE_INS_NAV_INIT
value: TRUE|FALSE
Description: Initialize the origin of the local coordinate system from flight plan. (Default: TRUE)
- name:
INS_INT_AGL_ID
value: ABI_BROADCAST
Description: The ABI sender id of the sonar to use
- name:
INS_INT_BARO_ID
value: BARO_BOARD_SENDER_ID
Description: The ABI sender id of the baro to use
- name:
INS_INT_GPS_ID
value: GPS_MULTI_ID
Description: The ABI sender id of the GPS to use
- name:
INS_INT_IMU_ID
value: ABI_BROADCAST
Description: The ABI sender id of the IMU to use
- name:
INS_INT_VEL_ID
value: ABI_BROADCAST
Description: The ABI sender id of the VELOCITY_ESTIMATE (e.g. from opticflow
- name:
INS_SONAR_MIN_RANGE
value: 0.001
Description: min sonar range in meters
- name:
INS_SONAR_MAX_RANGE
value: 4.0
Description: max sonar range in meters
- name:
INS_SONAR_UPDATE_ON_AGL
value: FALSE
Description: assume flat ground and use sonar for height
Module functions
Init Functions
These initialization functions are called once on startup.
Files
Header Files
The following headers are automatically included in modules.h
Source Files
Raw ins_hff_extended.xml file:
<!DOCTYPE module SYSTEM "module.dtd">
<module name="ins_hff_extended" dir="ins" task="estimation">
<doc>
<description>
extended INS with vertical filter using sonar.
</description>
<define name="USE_INS_NAV_INIT" value="TRUE|FALSE" description="Initialize the origin of the local coordinate system from flight plan. (Default: TRUE)"/>
<define name="INS_INT_AGL_ID" value="ABI_BROADCAST" description="The ABI sender id of the sonar to use"/>
<define name="INS_INT_BARO_ID" value="BARO_BOARD_SENDER_ID" description="The ABI sender id of the baro to use"/>
<define name="INS_INT_GPS_ID" value="GPS_MULTI_ID" description="The ABI sender id of the GPS to use"/>
<define name="INS_INT_IMU_ID" value="ABI_BROADCAST" description="The ABI sender id of the IMU to use"/>
<define name="INS_INT_VEL_ID" value="ABI_BROADCAST" description="The ABI sender id of the VELOCITY_ESTIMATE (e.g. from opticflow"/>
<define name="INS_SONAR_MIN_RANGE" value="0.001" description="min sonar range in meters"/>
<define name="INS_SONAR_MAX_RANGE" value="4.0" description="max sonar range in meters"/>
<define name="INS_SONAR_UPDATE_ON_AGL" value="FALSE" description="assume flat ground and use sonar for height"/>
</doc>
<settings>
<dl_settings NAME="Ins Extended">
<dl_settings NAME="INS">
<dl_setting MAX="10" MIN="0" STEP="0.1" VAR="vff.accel_noise" shortname="accel_noise" module="modules/ins/vf_extended_float"/>
<dl_setting MAX="10" MIN="0" STEP="0.1" VAR="vff.r_baro" shortname="r_baro"/>
<dl_setting MAX="10" MIN="0" STEP="0.1" VAR="vff.r_alt" shortname="r_alt"/>
<dl_setting MAX="10" MIN="0" STEP="0.1" VAR="vff.r_obs_height" shortname="r_obs_height"/>
</dl_settings>
</dl_settings>
</settings>
<dep>
<depends>@imu,@gps|@position|@velocity</depends>
<provides>ins</provides>
</dep>
<header>
<file name="ins_int.h"/>
</header>
<init fun="ins_int_init()"/>
<makefile target="ap|nps">
<define name="INS_TYPE_H" value="modules/ins/ins_int.h" type="string"/>
<file name="ins.c"/>
<file name="ins_int.c"/>
<file name="vf_extended_float.c"/>
<define name="USE_VFF_EXTENDED"/>
<file name="hf_float.c"/>
<define name="USE_HFF"/>
<test firmware="rotorcraft">
<define name="AHRS_PROPAGATE_FREQUENCY" value="500"/>
</test>
</makefile>
</module>