Survey a rectangle with a rotorcraft.
From Uni Stuttgart. Adapted to rotorcraft by Eduardo Reginato Lavratti In the flight plan, the survey blocks call init and run functions:
- Initialize the variables needed for the survey to start, with nav_survey_polygon_setup(WP1, WP2, sweep_width, orientation)
- WP1 the first corner of the rectangle (WP_waypoint_name)
- WP2 the second corner of the rectangle (WP_waypoint_name)
- sweep_width distance between the sweeps
- angle NS or WE orientation
- Run the survey with nav_survey_rectangle_rotorcraft_run(WP1,WP2)
Example for airframe file
Add to your firmware section: This example contains all possible configuration options, not all of them are mandatory!
<module name="nav_survey_rectangle_rotorcraft">
b'<define name="RECTANGLE_SURVEY_DEFAULT_SWEEP" value="25" />\n '
b'<define name="NAV_SURVEY_RECTANGLE_DYNAMIC" value="FALSE|TRUE" />\n '
</module>
Module configuration options
Define Options
- name:
RECTANGLE_SURVEY_DEFAULT_SWEEP
value: 25
Description: default sweep distance when using dinamic setup
- name:
NAV_SURVEY_RECTANGLE_DYNAMIC
value: FALSE|TRUE
Description: Set to true to allow changing sweep distance mid survey
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 nav_survey_rectangle_rotorcraft.xml file:
<!DOCTYPE module SYSTEM "module.dtd">
<module name="nav_survey_rectangle_rotorcraft" dir="nav" task="control">
<doc>
<description>
Survey a rectangle with a rotorcraft.
From Uni Stuttgart.
Adapted to rotorcraft by Eduardo Reginato Lavratti
In the flight plan, the survey blocks call init and run functions:
1. Initialize the variables needed for the survey to start, with nav_survey_polygon_setup(WP1, WP2, sweep_width, orientation)
- WP1 the first corner of the rectangle (WP_waypoint_name)
- WP2 the second corner of the rectangle (WP_waypoint_name)
- sweep_width distance between the sweeps
- angle NS or WE orientation
2. Run the survey with nav_survey_rectangle_rotorcraft_run(WP1,WP2)
</description>
<define name="RECTANGLE_SURVEY_DEFAULT_SWEEP" value="25" description="default sweep distance when using dinamic setup"/>
<define name="NAV_SURVEY_RECTANGLE_DYNAMIC" value="FALSE|TRUE" description="Set to true to allow changing sweep distance mid survey"/>
</doc>
<settings>
<dl_settings>
<dl_settings NAME="Ret_Survey">
<dl_setting min="10" max="500" step="1" var="sweep" type="float" shortname="Distance" module="modules/nav/nav_survey_rectangle_rotorcraft"/>
<dl_setting min="0" max="1" step="1" values="FALSE|TRUE" var="interleave" type="bool" shortname="use_interleave" module="modules/nav/nav_survey_rectangle_rotorcraft"/>
</dl_settings>
</dl_settings>
</settings>
<dep>
<depends>@navigation</depends>
</dep>
<header>
<file name="nav_survey_rectangle_rotorcraft.h"/>
</header>
<init fun="nav_survey_rectangle_rotorcraft_init()"/>
<makefile target="ap|sim|nps">
<file name="nav_survey_rectangle_rotorcraft.c"/>
<test firmware="rotorcraft"/>
</makefile>
</module>