Setup general autopilot parameters

After the firmware has been uploaded, you will need to setup both standard and custom ArduCopter parameters. You can use your standard tools for this using Mission Planner or any other ArduCopter-compatible software. Or, you can also use Skybrush Live itself.

The list of available custom ArduCopter parameters defined for the new SHOW flight mode are listed in the Appendix. The most important ones are also detailed in the following sections of this tutorial.

The following standard ArduCopter parameters are also need to be checked and set up properly.

Setup a unique ID for all your drones

If you work with multiple drones, first of all, make sure that each of them has a unique ID (set by the SYSID_THISMAV parameter).

This parameter is 8-bit only, so you can only manage up to around 250 drones by default. If you need more, you have to setup multiple Wi-fi interfaces in your GCS laptop, and configure Skybrush Server to derive drone IDs that also include a "network identifier" so you can distinguish drone 42 in network 1 from drone 42 in network 2 and so on (see more details in the Wifi setup part of this tutorial).

We require to use MAVLink 2 protocol instead of MAVLink 1 in all serial channels where MAVLink is used:

SERIALx_PROTOCOL 2

where x is the number of the channel you configure.

MAVLink 2 is required for the serial wifi channel and for MAVLink-driven LED support, too.

To disable excess communication on the wifi channel, please disable all unwanted messages:

SRx_* 0

where x should be the number of the serial channel of your wifi connection.

Please note that Mission Planner and other GCS software tend to change these parameters permanently without notice, which might result in bandwidth shortage if many drones are used.

Disable failsafe for RC loss when in auto mode

To prevent the drone from activating its failsafe mode of operation when the RC reception is lost temporarily during a show, disable the RC failsafe:

FS_OPTIONS 4

This is required if you use a remote controller, otherwise it is optional.

Configure the primary position and altitude source

Drone shows require accurate horizontal and vertical positioning of the drones. The horizontal positioning is provided by GPS in outdoor shows and some beacon-based navigation system in indoor shows. The vertical positioning is a bit more complex as there are usually two possible altitude sources in a drone: the pressure sensor and the GPS. The pressure sensor provides altitude above home level (AHL), and it is assumed to be zero at takeoff. The GPS provides altitude above mean sea level (AMSL). Autopilots usually maintain an assumed offset between the two altitude sources and they fuse the two measurements, assigning a higher weight to the pressure sensor because GPS-based altitude readings are not very accurate if you do not use RTK corrections.

The preferred set of parameters is different, based on whether you want to fly without RTK corrections or with RTK corrections. Without RTK corrections, the pressure sensor should be the primary source of altitude and Skybrush Live must be configured to control the show based on AHL because this is what the pressure sensor provides. In this setup, GPS altitude will be blended into the altitude reported by the pressure sensor, but only with a relatively low weight:

EK3_PRIMARY 0
EK3_SRC1_POSXY 3
EK3_SRC1_VELXY 3
EK3_SRC1_POSZ 1
EK3_SRC1_VELZ 3
EK3_SRC1_YAW 1

The above settings instruct the drone to use GPS for velocity and horizontal position, but to use the pressure sensor for vertical position.

If you want to fly with RTK corrections, the primary source of altitude should be the GPS. Our firmware is smart enough to use the GPS as the altitude source only if RTK corrections are present (and it falls back to the pressure sensor in case of loss of RTK corrections). The preferred settings should be:

EK3_PRIMARY 0
EK3_SRC1_POSXY 3
EK3_SRC1_VELXY 3
EK3_SRC1_POSZ 3
EK3_SRC1_VELZ 3
EK3_SRC1_YAW 1

Adjust settings for the position and waypoint controllers

Skybrush uses the built-in position and waypoint controllers of the ArduCopter firmware, and it sends updated setpoints to these controllers at a high frequency (several times per second). The default settings of the controllers are better suited for use-cases when setpoints are changed infrequently, and the controllers themselves have a tendendy to shape or limit the inputs they are provided with. In order to avoid the firmware code to alter Skybrush’s commands significantly, the limits of the position and waypoint controllers should be raised. A reasonable set of default settings for most mid-sized show drones is as follows:

PSC_JERK_XY 20
PSC_JERK_Z 20
WPNAV_ACCEL 800
WPNAV_ACCEL_Z 500
WPNAV_SPEED 1000
WPNAV_SPEED_DN 300
WPNAV_SPEED_UP 550
WPNAV_JERK 10

If you are using an older version of our firmware, it might happen that some of these parameters do not exist yet; feel free to ignore these.

Do not turn off motors after arming

At show start drones first arm their motors and spin them at low speed, then take off only after a few seconds. To prevent the drone from disarming its motors before takeoff, set the following:

DISARM_DELAY 10

Any value higher than 10 is OK, but do NOT set it less than 10.