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_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 \n '
b'<define name="DEBUG_VFF_EXTENDED" value="0|1|2" />\n '
b'<define name="VFF_EXTENDED_INIT_PXX" value="1." />\n '
b'<define name="VFF_EXTENDED_ACCEL_NOISE" value="0.5" />\n '
b'<define name="VFF_EXTENDED_R_BARO" value="2." />\n '
b'<define name="VFF_EXTENDED_NON_FLAT_GROUND" 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
- name:
DEBUG_VFF_EXTENDED
value: 0|1|2
Description: If set > 0, this will send the vff message. If > 1 then it will also print the P matrix
- name:
VFF_EXTENDED_INIT_PXX
value: 1.
Description: Initial value of the diagonal of the P matrix
- name:
VFF_EXTENDED_ACCEL_NOISE
value: 0.5
Description: Accelerometer noise setting
- name:
VFF_EXTENDED_R_BARO
value: 2.
Description: Barometer noise setting
- name:
VFF_EXTENDED_NON_FLAT_GROUND
value: FALSE
Description: VFF_EXTENDED_NON_FLAT_GROUND removes the assumption of a flat ground and tries to estimate the height of the obstacles under the vehicle.
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_extended.xml file:
<!DOCTYPE module SYSTEM "module.dtd">
<module name="ins_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"/>
<define name="DEBUG_VFF_EXTENDED" value="0|1|2" description="If set > 0, this will send the vff message. If > 1 then it will also print the P matrix"/>
<define name="VFF_EXTENDED_INIT_PXX" value="1." description="Initial value of the diagonal of the P matrix"/>
<define name="VFF_EXTENDED_ACCEL_NOISE" value="0.5" description="Accelerometer noise setting"/>
<define name="VFF_EXTENDED_R_BARO" value="2." description="Barometer noise setting"/>
<define name="VFF_EXTENDED_NON_FLAT_GROUND" value="FALSE" description="VFF_EXTENDED_NON_FLAT_GROUND removes the assumption of a flat ground and tries to estimate the height of the obstacles under the vehicle."/>
</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</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"/>
<test firmware="rotorcraft"/>
</makefile>
</module>