Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
bebop_ae_awb module

Auto Exposure and Auto White Balancing for the front camera on the Parrot Bebop 1 and 2 and the Disco

No detailed description...

Example for airframe file

Add to your firmware section:

<module name="bebop_ae_awb"/>

Module configuration options

Airframe file section

  • section name: bebop_ae_awb
    • name BEBOP_AE_AWB_NICE value: 5
      Description: Nice setting for async thread
    • name BEBOP_AUTO_EXPOSURE value: true
      Description: perform auto exposure (Default: true)
    • name BEBOP_AE_AWB_VERBOSE value: TRUE|FALSE
      Description: Whether or not to print debug information to the terminal
    • name BEBOP_AE_EXPOSURE_GAIN value: 0.75
      Description: Gain to apply to autoexposure change
    • name BEBOP_AE_MIDDLE_INDEX value: 110
      Description: Bin index to be considered as the center of the brightness bins
    • name BEBOP_AE_DARK_IGNORE value: 0.2
      Description: Proportion of dark bins to ignore in the computation of the autoexposure
    • name BEBOP_AE_BRIGHT_IGNORE value: 0.6
      Description: Proportion of bright bins to ignore in the computation of the autoexposure
    • name BEBOP_AE_DARK_BINS value: 73
      Description: Number of dark bins to consider as dark in the autoexposure
    • name BEBOP_AE_BRIGHT_BINS value: 73
      Description: Number of bright bins to consider as bright in autoexposure
    • name BEBOP_AUTO_WHITE_BALANCE value: true
      Description: Perform auto white balance (Default: true)
    • name BEBOP_AWB_GAIN value: 0.5
      Description: Gain to apply to AWB changes
    • name BEBOP_AWB_MIN_GAINS value: 1
      Description: Minimum gain for AWB
    • name BEBOP_AWB_MAX_GAINS value: 63.5
      Description: Maximum gain for AWB
    • name BEBOP_AWB_GAIN_SCHEDULING value: TRUE|FALSE
      Description: Activates gain scheduling for the AWB, helps to handle fast changes in brightness
    • name BEBOP_AWB_GAIN_SCHEDULING_TARGET value: 10
      Description: Target white balance
    • name BEBOP_AWB_GAIN_SCHEDULING_TOLERANCE value: 7.5
      Description: Tolerance around the target exposure outside of which gain scheduling is activated
    • name BEBOP_AWB_GAIN_SCHEDULING_STEP value: 0.02
      Description: Step size of the AWB gain scheduling correction
    • name BEBOP_AWB_MIN_GREY_PIXELS value: 1000
      Description: Minimum number of grey pixels in image, when lower, the AWB is reset

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 bebop_ae_awb.xml file:

<!DOCTYPE module SYSTEM "module.dtd">
<module name="bebop_ae_awb" dir="computer_vision">
<doc>
<description>Auto Exposure and Auto White Balancing for the front camera on the Parrot Bebop 1 and 2 and the Disco</description>
<section name="bebop_ae_awb">
<define name="BEBOP_AE_AWB_NICE" value="5" description="Nice setting for async thread"/>
<define name="BEBOP_AUTO_EXPOSURE" value="true" description="perform auto exposure (Default: true)"/>
<define name="BEBOP_AE_AWB_VERBOSE" value="TRUE|FALSE" description="Whether or not to print debug information to the terminal"/>
<define name="BEBOP_AE_EXPOSURE_GAIN" value="0.75" description="Gain to apply to autoexposure change"/>
<define name="BEBOP_AE_MIDDLE_INDEX" value="110" description="Bin index to be considered as the center of the brightness bins"/>
<define name="BEBOP_AE_DARK_IGNORE" value="0.2" description="Proportion of dark bins to ignore in the computation of the autoexposure"/>
<define name="BEBOP_AE_BRIGHT_IGNORE" value="0.6" description="Proportion of bright bins to ignore in the computation of the autoexposure"/>
<define name="BEBOP_AE_DARK_BINS" value="73" description="Number of dark bins to consider as dark in the autoexposure"/>
<define name="BEBOP_AE_BRIGHT_BINS" value="73" description="Number of bright bins to consider as bright in autoexposure"/>
<define name="BEBOP_AUTO_WHITE_BALANCE" value="true" description="Perform auto white balance (Default: true)"/>
<define name="BEBOP_AWB_GAIN" value="0.5" description="Gain to apply to AWB changes"/>
<define name="BEBOP_AWB_MIN_GAINS" value="1" description="Minimum gain for AWB"/>
<define name="BEBOP_AWB_MAX_GAINS" value="63.5" description="Maximum gain for AWB"/>
<define name="BEBOP_AWB_GAIN_SCHEDULING" value="TRUE|FALSE" description="Activates gain scheduling for the AWB, helps to handle fast changes in brightness"/>
<define name="BEBOP_AWB_GAIN_SCHEDULING_TARGET" value="10" description="Target white balance"/>
<define name="BEBOP_AWB_GAIN_SCHEDULING_TOLERANCE" value="7.5" description="Tolerance around the target exposure outside of which gain scheduling is activated"/>
<define name="BEBOP_AWB_GAIN_SCHEDULING_STEP" value="0.02" description="Step size of the AWB gain scheduling correction"/>
<define name="BEBOP_AWB_MIN_GREY_PIXELS" value="1000" description="Minimum number of grey pixels in image, when lower, the AWB is reset"/>
</section>
</doc>
<settings>
<dl_settings>
<dl_settings NAME="AE/AWB">
<dl_setting var="ae_set.active" values="OFF|ON" min="0" step="1" max="1" module="computer_vision/bebop_ae_awb" shortname="AE active"/>
<dl_setting var="ae_set.exposure_gain" min="0" step="0.02" max="2" module="computer_vision/bebop_ae_awb" shortname="AE gain"/>
<dl_setting var="ae_set.middle_index" min="6" step="1" max="249" module="computer_vision/bebop_ae_awb" shortname="AE center bin"/>
<dl_setting var="ae_set.dark_bins" min="0" step="1" max="127" module="computer_vision/bebop_ae_awb" shortname="AE dark bins"/>
<dl_setting var="ae_set.bright_bins" min="0" step="1" max="127" module="computer_vision/bebop_ae_awb" shortname="AE bright bins"/>
<dl_setting var="ae_set.dark_ignore" min="0" step="0.01" max="1" module="computer_vision/bebop_ae_awb" shortname="AE ignore dark (%)"/>
<dl_setting var="ae_set.bright_ignore" min="0" step="0.01" max="1" module="computer_vision/bebop_ae_awb" shortname="AE ignore bright (%)"/>
<dl_setting var="awb_set.active" values="OFF|ON" min="0" step="1" max="1" module="computer_vision/bebop_ae_awb" shortname="AWB Active"/>
<dl_setting var="awb_set.gain" min="0" step="0.02" max="2" module="computer_vision/bebop_ae_awb" shortname="AWB gain"/>
<dl_setting var="awb_set.gain_scheduling" values="OFF|ON" min="0" step="1" max="1" module="computer_vision/bebop_ae_awb" shortname="AE gain sched"/>
<dl_setting var="awb_set.gain_scheduling_target" min="1" step="0.5" max="20" module="computer_vision/bebop_ae_awb" shortname="sched target"/>
<dl_setting var="awb_set.gain_scheduling_tolerance" min="1" step="0.5" max="20" module="computer_vision/bebop_ae_awb" shortname="sched tolerance"/>
<dl_setting var="awb_set.gain_scheduling_step" min="0.005" step="0.005" max="0.1" module="computer_vision/bebop_ae_awb" shortname="sched step"/>
</dl_settings>
</dl_settings>
</settings>
<header>
<file name="bebop_ae_awb.h"/>
</header>
<init fun="bebop_ae_awb_init()"/>
<makefile target="ap">
<file name="bebop_ae_awb.c"/>
</makefile>
</module>