Files
paparazzi/conf/modules/orange_avoider_guided.xml
T
Gautier Hattenberger e4d9e10492 [modules][ocaml] implement module dependency (#2669)
- support depends, conflicts and provides nodes, all under a 'dep' node
- autoload are kept for now and are not moved yet
- modules are updated for new dep format
- it is now required that module's name and filename are the same
2021-03-16 17:47:34 +01:00

49 lines
2.6 KiB
XML

<!DOCTYPE module SYSTEM "module.dtd">
<module name="orange_avoider_guided" dir="orange_avoider">
<doc>
<description>
This module is an example module for the course AE4317 Autonomous Flight of Micro Air Vehicles at the TU Delft.
This module is used in combination with a color filter (cv_detect_color_object) and the guided mode of the autopilot.
The avoidance strategy is to simply count the total number of orange pixels. When above a certain percentage threshold,
(given by color_count_frac) we assume that there is an obstacle and we turn.
The color filter settings are set using the cv_detect_color_object. This module can run multiple filters simultaneously
so you have to define which filter to use with the ORANGE_AVOIDER_VISUAL_DETECTION_ID setting.
This module differs from the simpler orange_avoider.xml in that this is flown in guided mode. This flight mode is
less dependent on a global positioning estimate as with the navigation mode. This module can be used with a simple
speed estimate rather than a global position.
Here we also need to use our onboard sensors to stay inside of the cyberzoo and not collide with the nets. For this
we employ a simple color detector, similar to the orange poles but for green to detect the floor. When the total amount
of green drops below a given threshold (given by floor_count_frac) we assume we are near the edge of the zoo and turn
around. The color detection is done by the cv_detect_color_object module, use the FLOOR_VISUAL_DETECTION_ID setting to
define which filter to use.
</description>
<define name="ORANGE_AVOIDER_VISUAL_DETECTION_ID" value="ABI_BROADCAST" description="which VISUAL_DETECTION message to recieve for orange pole detection."/>
<define name="FLOOR_VISUAL_DETECTION_ID" value="ABI_BROADCAST" description="which VISUAL_DETECTION message to recieve for floor detection."/>
</doc>
<settings>
<dl_settings>
<dl_settings name="OrangeAvoiderGuided">
<dl_setting var="oag_color_count_frac" min="0" step="0.01" max="0.5"/>
<dl_setting var="oag_floor_count_frac" min="0" step="0.01" max="0.5"/>
<dl_setting var="oag_max_speed" min="0" step="0.1" max="1"/>
<dl_setting var="oag_heading_rate" min="0" step="5" max="45" unit="rad" alt_unit="deg"/>
</dl_settings>
</dl_settings>
</settings>
<dep>
<depends>cv_detect_color_object</depends>
</dep>
<header>
<file name="orange_avoider_guided.h"/>
</header>
<init fun="orange_avoider_guided_init()"/>
<periodic fun="orange_avoider_guided_periodic()" freq="4"/>
<makefile target="ap|nps">
<file name="orange_avoider_guided.c"/>
</makefile>
</module>