Flight Performance VTOL

AKAMAV edited this page Mar 3, 2018 · 25 revisions

In this section we want to provide more informations about the whole building process of the Arkbird VTOL used for the Flight Performance Task at IMAV 2017.

Hardware Configuration

In the table stated below we provide our detailed hardware setup.

Component Product URL Cost
Frame Arkbird (Plane Kit) https://www.banggood.com/Arkbird-VTOL-Vertical-Takeoff-And-Landing-Electric-FPV-RC-Aircraft-Airplane-KIT-p-1138877.html?rmmds=search&cur_warehouse=CN US$ 65
Motors 2x TBS Endurance 1450 KV http://team-blacksheep.com/products/prod:endurance_2206_1450 2x US$ 25
Propellers CW/CCW 2x HQ Direct Drive 7x4" Propeller https://redbee.de/HQ-Direct-Drive-7x4-Propeller 2x US$ 5
ESCs 2x Racerstar RS20A-V2 https://www.banggood.com/Racerstar-RS20A-V2-New-20A-Blheli_S-OPTO-2-4S-ESC-Support-Oneshot42-Multishot-for-FPV-Racer-p-1072075.html?rmmds=myorder&cur_warehouse=UK 2x US$ 12
Battery Multistar 4S 5.2Ah https://hobbyking.com/en_us/multistar-high-capacity-4s-5200mah-multi-rotor-lipo-pack.html US$ 32
Flight Controller PixFalcon https://hobbyking.com/en_us/pixfalcon-micro-px4-autopilot.html US$ 130
Airspeed sensor Digital airspeed sensor http://store.jdrones.com/digital_airspeed_sensor_p/senair02kit.htm US$ 65
GNSS-Module Holybro Micro M8N GPS https://shop.holybro.com/micro-m8n-gps_p1009.html US$ 39
Receiver FrSky X8R https://hobbyking.com/en_us/frsky-x8r-8-16ch-s-bus-accst-telemetry-receiver-w-smart-port-no-antenna-cover.html US$ 35
Telemetry 3DR Radio Telemetry Air/Ground Module 433MHz https://www.banggood.com/500mW-3DR-Radio-Telemetry-AirGround-Module-433MHz-915-MHz-For-MWC-APM-PIXHAWK-Pirate-p-982005.html?rmmds=search&ID=510651&cur_warehouse=CN US$ 35
Consumable material wires, glue, hook-and-loop fasteners, screws, solder, ...
Transmitter FrSky Taranis X9D Plus
Ground Station Notebook with 433MHz Telemetry Module

Basic Firmware Settings

The tailsitter configuration is defined by the following parameters.

Command Value Units Options Description
Q_ENABLE 1 0:Disable 1:Enable 2:Enable VTOL AUTO This enables QuadPlane functionality, assuming multicopter motors start on output 5. If this is set to 2 then when starting AUTO mode it will initially be in VTOL AUTO mode.
Q_FRAME_CLASS 10 0:Undefined 1:Quad 2:Hexa 3:Octa 4:OctaQuad 5:Y6 7:Tri 10: TailSitter Controls major frame class for multicopter component

Moreover, the servo function must be defined. Be sure, to connect the servos in the correct order to the pins of the flight controller.

Command Value Units Options Description
SERVO1_FUNCTION 74 [...] 70:Throttle 71:TrackerYaw 72:TrackerPitch 73:ThrottleLeft 74:ThrottleRight 75:tiltMotorLeft 76:tiltMotorRight 77:ElevonLeft 78:ElevonRight 79:VTailLeft 80:VTailRight [...] Function assigned to this servo. Seeing this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function
SERVO2_FUNCTION 73
SERVO5_FUNCTION 78
SERVO6_FUNCTION 77
SERVO6_REVERSED 1 0:Normal 1:Reversed

Hand Launch and Belly Landing

For hand launch the following parameters have to be adjusted.

Command Value Units Options Description
TKOFF_THR_DELAY 0 ds 0 127 This parameter sets the time delay (in 1/10ths of a second) that the ground speed check is delayed after the forward acceleration check controlled by TKOFF_THR_MINACC has passed. For hand launches with pusher propellers it is essential that this is set to a value of no less than 2 (0.2 seconds) to ensure that the aircraft is safely clear of the throwers arm before the motor can start. For bungee launches a larger value can be used (such as 30) to give time for the bungee to release from the aircraft before the motor is started.
TKOFF_THR_MINACC 5 m/s/s 0 30 Minimum forward acceleration in m/s/s before arming the ground speed check in auto-takeoff. This is meant to be used for hand launches. Setting this value to 0 disables the acceleration test which means the ground speed check will always be armed which could allow GPS velocity jumps to start the engine. For hand launches and bungee launches this should be set to around 15.
TKOFF_THR_MINSPD 1 m/s 0 30 Minimum GPS ground speed in m/s used by the speed check that un-suppresses throttle in auto-takeoff. This can be be used for catapult launches where you want the motor to engage only after the plane leaves the catapult, but it is preferable to use the TKOFF_THR_MINACC and TKOFF_THR_DELAY parameters for catapult launches due to the errors associated with GPS measurements. For hand launches with a pusher prop it is strongly advised that this parameter be set to a value no less than 4 m/s to provide additional protection against premature motor start. Note that the GPS velocity will lag the real velocity by about 0.5 seconds. The ground speed check is delayed by the TKOFF_THR_DELAY parameter.

As auto land in VTOL mode did not work, an automatic belly landing be achieved by defining the following parameters.

Command Value Units Options Description
LAND_ABORT_THR 1 0:Disabled 1:Enabled Allow a landing abort to trigger with a throttle > 95%
LAND_FLARE_SEC 2 s Vertical time before landing point at which to lock heading and flare with the motor stopped. This is vertical time, and is calculated based solely on the current height above the ground and the current descent rate. Set to 0 if you only wish to flare based on altitude (see LAND_FLARE_ALT).
LAND_PITCH_CD 0 cdeg Used in autoland to give the minimum pitch in the final stage of landing (after the flare). This parameter can be used to ensure that the final landing attitude is appropriate for the type of undercarriage on the aircraft. Note that it is a minimum pitch only - the landing code will control pitch above this value to try to achieve the configured landing sink rate.
TECS_LAND_ARSPD 13 -1 127 When performing an autonomous landing, this value is used as the goal airspeed during approach. Note that this parameter is not useful if your platform does not have an airspeed sensor (use TECS_LAND_THR instead). If negative then this value is not used during landing.

Auto-Mode and Mission Planning

To automatically fly a mission you want to adjust the following parameters.

Command Value Units Options Description
NAVL1_PERIOD 8 s 1 60 Period in seconds of L1 tracking loop. This parameter is the primary control for aggressiveness of turns in auto mode. This needs to be larger for less responsive airframes. The default of 20 is quite conservative, but for most RC aircraft will lead to reasonable flight. For smaller more agile aircraft a value closer to 15 is appropriate, or even as low as 10 for some very agile aircraft. When tuning, change this value in small increments, as a value that is much too small (say 5 or 10 below the right value) can lead to very radical turns, and a risk of stalling.
WP_LOITER_RAD 25 m -32767 32767 Defines the distance from the waypoint center, the plane will maintain during a loiter. If you set this value to a negative number then the default loiter direction will be counter-clockwise instead of clockwise.
WP_MAX_RADIUS 10 m 0 32767 Sets the maximum distance to a waypoint for the waypoint to be considered complete. This overrides the "cross the finish line" logic that is normally used to consider a waypoint complete. For normal AUTO behaviour this parameter should be set to zero. Using a non-zero value is only recommended when it is critical that the aircraft does approach within the given radius, and should loop around until it has done so. This can cause the aircraft to loop forever if its turn radius is greater than the maximum radius set.
TRIM_ARSPD_CM 1900 cm/s Airspeed in cm/s to aim for when airspeed is enabled in auto mode. This is a calibrated (apparent) airspeed.

PID Tuning - Hover Mode

For the hover mode we found the following PID gains to be satisfying.

Command Value Units Options Description
Q_A_ANG_PIT_P 3 3.000 12.000 Pitch axis angle controller P gain. Converts the error between the desired pitch angle and actual angle to a desired pitch rate
Q_A_ANG_RLL_P 2 3.000 12.000 Roll axis angle controller P gain. Converts the error between the desired roll angle and actual angle to a desired roll rate
Q_A_ANG_YAW_P 2 3.000 6.000 Yaw axis angle controller P gain. Converts the error between the desired yaw angle and actual angle to a desired yaw rate
Q_A_RAT_PIT_D 0.004 0.0 0.02 Pitch axis rate controller D gain. Compensates for short-term change in desired pitch rate vs actual pitch rate
Q_A_RAT_PIT_FF 0.2 0 0.5 Pitch axis rate controller feed forward
Q_A_RAT_PIT_P 0.3 0.08 0.30 Pitch axis rate controller P gain. Converts the difference between desired pitch rate and actual pitch rate into a motor speed output
Q_A_RAT_RLL_D 0 0.0 0.02 Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate
Q_A_RAT_RLL_I 0.13 0.01 0.5 Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate
Q_A_RAT_RLL_P 0.3 0.08 0.30 Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output
Q_A_RAT_YAW_D 0.03 0.000 0.02 Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate
Q_A_RAT_YAW_FF 0.2 0 0.5 Yaw axis rate controller feed forward
Q_A_RAT_YAW_I 0.01 0.010 0.05 Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate
Q_A_RAT_YAW_P 0.6 0.10 0.50 Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output
Q_ANGLE_MAX 6000 cdeg 1000 8000 Maximum lean angle in all VTOL flight modes
Q_PXY_P 1 0.500 2.000 Loiter position controller P gain. Converts the distance (in the latitude direction) to the target location into a desired speed which is then passed to the loiter latitude rate controller
Q_TAILSIT_ANGLE 30 5 80 This is the angle at which tailsitter aircraft will change from VTOL control to fixed wing control.

PID Tuning - Cruise

Command Value Units Options Description
PTCH2SRV_D 0.07 0 0.1 This is the gain from pitch rate to elevator. This adjusts the damping of the pitch control loop. It has the same effect as PTCH2SRV_D in the old PID controller and can be set to the same value, but without the spikes in servo demands. This gain helps to reduce pitching in turbulence. Some airframes such as flying wings that have poor pitch damping can benefit from increasing this gain term. This should be increased in 0.01 increments as too high a value can lead to a high frequency pitch oscillation that could overstress the airframe.
PTCH2SRV_I 0.15 0 0.5 This is the gain applied to the integral of pitch angle. It has the same effect as PTCH2SRV_I in the old PID controller and can be set to the same value. Increasing this gain causes the controller to trim out constant offsets between demanded and measured pitch angle.
PTCH2SRV_P 0.4 0.1 3.0 This is the gain from pitch angle to elevator. This gain works the same way as PTCH2SRV_P in the old PID controller and can be set to the same value.
RLL2SRV_D 0.02 0 0.1 This is the gain from roll rate to aileron. This adjusts the damping of the roll control loop. It has the same effect as RLL2SRV_D in the old PID controller but without the spikes in servo demands. This gain helps to reduce rolling in turbulence. It should be increased in 0.01 increments as too high a value can lead to a high frequency roll oscillation that could overstress the airframe.
RLL2SRV_I 0.1 0 1.0 This is the gain from the integral of bank angle to aileron. It has the same effect as RLL2SRV_I in the old PID controller. Increasing this gain causes the controller to trim out steady offsets due to an out of trim aircraft.
RLL2SRV_P 0.8 0.1 4.0 This is the gain from bank angle error to aileron.
RUDD_DT_GAIN 10 % 0 100 gain control from rudder to differential thrust
KFF_RDDRMIX 0.02 0 1 The amount of rudder mix to apply during aileron movement 0 = 0 %, 1 = 100%
YAW2SRV_DAMP 0.2 0 2 This is the gain from yaw rate to rudder. It acts as a damper on yaw motion. If a basic yaw damper is required, this gain term can be incremented, whilst leaving the YAW2SRV_SLIP and YAW2SRV_INT gains at zero. Note that unlike with a standard PID controller, if this damping term is zero then the integrator will also be disabled.
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.