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

T

The control effectiveness scheduler for the rotating wing quadplane drone type

  • it requires a servo called ROTATION_MECH

Example for airframe file

Add to your firmware section:

<module name="eff_scheduling_rotwing_V2"/>

Module configuration options

Airframe file section

  • section name: ROTWING prefix: ROTWING_EFF_SCHED_
    • name IXX_BODY value: 0
    • name IYY_BODY value: 0
    • name IZZ value: 0
    • name IXX_WING value: 0
    • name IYY_WING value: 0
    • name M value: 0
    • name ROLL_ARM value: 0
    • name PITCH_ARM value: 0
    • name HOVER_DF_DPPRZ value: 0
    • name HOVER_ROLL_PITCH_COEF value: {0,0}

Module functions

Init Functions

These initialization functions are called once on startup.

Periodic Functions

These functions are called periodically at the specified frequency from the module periodic loop.

Files

Header Files

The following headers are automatically included in modules.h

Source Files

Raw eff_scheduling_rotwing_V2.xml file:

<!DOCTYPE module SYSTEM "module.dtd">
<module name="eff_scheduling_rotwing_V2" dir="ctrl">
<doc>
<description>T
The control effectiveness scheduler for the rotating wing quadplane drone type
- it requires a servo called ROTATION_MECH
</description>
<section name="ROTWING" prefix="ROTWING_EFF_SCHED_">
<define name="IXX_BODY" value="0" description=""/>
<define name="IYY_BODY" value="0" description=""/>
<define name="IZZ" value="0" description=""/>
<define name="IXX_WING" value="0" description=""/>
<define name="IYY_WING" value="0" description=""/>
<define name="M" value="0" description=""/>
<define name="ROLL_ARM" value="0" description=""/>
<define name="PITCH_ARM" value="0" description=""/>
<define name="HOVER_DF_DPPRZ" value="0" description=""/>
<define name="HOVER_ROLL_PITCH_COEF" value="{0,0}" description=""/>
</section>
</doc>
<settings>
<dl_settings>
<dl_settings NAME="eff_sched">
<dl_setting var="ele_min" min="0" step="100" max="6400" shortname="ele_min"/>
<dl_setting var="roll_eff" min="1" step="0.05" max="10" shortname="roll_eff"/>
<dl_setting var="yaw_eff" min="0.1" step="0.01" max="1" shortname="yaw_eff"/>
<dl_setting var="ele_eff" min="5" step="0.5" max="50" shortname="ele_eff"/>
<dl_setting var="airspeed_fake_on" min="0" step="1" max="1" values="OFF|ON" shortname="bool_airspeed_fake"/>
<dl_setting var="airspeed_fake" min="0" step="0.001" max="20" shortname="airspeed_fake"/>
</dl_settings>
</dl_settings>
</settings>
<header>
<file name="eff_scheduling_rotwing_V2.h"/>
</header>
<init fun="eff_scheduling_rotwing_init()"/>
<periodic fun="eff_scheduling_rotwing_periodic()"/>
<makefile>
<file name="eff_scheduling_rotwing_V2.c"/>
<test firmware="rotorcraft">
<define name="ROTWING_EFF_SCHED_IXX_BODY" value="1"/>
<define name="ROTWING_EFF_SCHED_IYY_BODY" value="1"/>
<define name="ROTWING_EFF_SCHED_IZZ" value="1"/>
<define name="ROTWING_EFF_SCHED_IXX_WING" value="1"/>
<define name="ROTWING_EFF_SCHED_IYY_WING" value="1"/>
<define name="ROTWING_EFF_SCHED_M" value="1"/>
<define name="M_PI" value="3.14"/>
<define name="PERIODIC_FREQUENCY" value="500.0"/>
<define name="ACTUATORS_NB" value="10"/>
<define name="COMMANDS_NB_PASSIVE" value="1"/>
<define name="COMMANDS_NB_VIRTUAL" value="2"/>
<define name="COMMANDS_NB_REAL" value="9"/>
<define name="COMMANDS_NB_OTHER" value="2"/>
<define name="ANDI_OUTPUTS" value="6"/>
<define name="EFF_MAT_ROWS_NB" value="6"/>
<define name="EFF_MAT_COLS_NB" value="11"/>
<define name="COMMAND_MOTOR_FRONT" value="0"/>
<define name="COMMAND_MOTOR_RIGHT" value="8"/>
<define name="COMMAND_MOTOR_BACK" value="9"/>
<define name="COMMAND_MOTOR_LEFT" value="3"/>
<define name="COMMAND_MOTOR_PUSHER" value="10"/>
<define name="COMMAND_ELEVATOR" value="5"/>
<define name="COMMAND_RUDDER" value="6"/>
<define name="COMMAND_AILERONS" value="7"/>
<define name="COMMAND_ROT_MECH" value="11"/>
<define name="SERVO_ROTATION_MECH_IDX" value="11"/>
<define name="RW_aX" value="0"/>
<define name="RW_aY" value="1"/>
<define name="RW_aZ" value="2"/>
<define name="RW_aN" value="0"/>
<define name="RW_aE" value="1"/>
<define name="RW_aD" value="2"/>
<define name="RW_ap" value="3"/>
<define name="RW_aq" value="4"/>
<define name="RW_ar" value="5"/>
<define name="ZERO_ELE_PPRZ" value="8000"/>
<define name="ELE_MIN_AS" value="8.8"/>
<define name="ELE_MAX_AS" value="16.0"/>
</test>
</makefile>
</module>