Skip to main content

DCC Configuration

The DCC can be configured to change its behavior. This can be done using the bundle.yml file located at the root of the bundle.

Start delay configuration

When a start is launched, the DCC will repeat the start orders during a period called start delay. At the end of the period the first drone will take off.

This period can be configured using the start_delay key using a value in milliseconds.

Example with a start delay value set to 30000 milliseconds (30 seconds):

start_delay: 30000

Start with Timecode

To be timecode compatible, the start_timecode should be present.

Example of a timecode enabled bundle starting at 1 hour 30 minutes 42 seconds and 2 frames:

start_timecode: "1:30:42.2"
caution

Please respect the above format to make sure your timecode is properly recognized by the DCC. If a component is 0 AND that the following components are also 0, then they can be omitted (.ie 1:30:00.0 can be written 1:30)

info

The start_timecode is equivalent to a manual start. This means that it does not include the start_delay before the take off.

Force user confirmation before take off

Because multiple automatic ways of starting a bundle exists (such a timecode), an item can be added to ensure that the operator is ready for a bundle start.

To do so, a disarmed key can be added. This item, appearing in the checklist will be enabled or not depending on the value passed to the DCC.

Example with an item disabled by default:

disarmed: true

Example with an item enabled by default:

disarmed: false

Checklist configuration

info

For more information please refer to DCC Checklist.

The following keys will change the DCC bundle checklist behavior. All of these keys need to be placed under the checklist to be properly recognized by the DCC. Please note that some items behavior cannot be changed.

KeyDescriptionValue typeValue UnitPossible value
anchorsMinimal number of UWB antennas that should be seen by the systemIntegerNumber of antennas[0;∞]
batteryMinimal drone battery percentage under which the checklist item will triggerIntegerPercentage of battery[0;100]
latencyMaximum latency between the drones and the DCCIntegerMilliseconds[0;∞]
start_orientationMaximum orientation delta between the expected value and the value computed by the drone captorsIntegerDegrees[0;359]
redundancyList of interfaces the drone shall be visible throughList of StringsStrings- dronewifi: visible through Wi-Fi
- droneuwb: visible through UWB
- taguwb: drone tag is visible
- dronebt: drone through bluetooth (Helios only)

Example:

checklist:
- anchors: 21 # at least 21 UWB anchors should be visible
- battery: 60 # minimum battery percentage before take off set to 60%
- latency: 1000 # maximum 1s of latency between the drones and the DCC
- redundancy: # all drones should be visible through:
- dronewifi # wifi
- droneuwb # and uwb

Launching a synchronized music or video file

The Dronisos Hook enable the use of synchronized media files. This necessitates one or more instances of the Dronisos running on the network. The method to do so is available on Dronisos Hook.

To function properly, the DCC also needs specific configuration using the triggers key.

Example of a hook trigger, with a 5000 milliseconds offset:

triggers:
launch_music:
offset: 5000
target: hook

The above code will automatically trigger all Dronisos Hooks instances present on the DCC network 5000 milliseconds (5 seconds) after the start.

Send different files to specific drones

During certain choreographies, multiple types of drones can be used. For example, a choreography can contain both Helios and Zephyr drones, or regular Zephyrs and pyrotechnics enabled Zephyrs.

Because these drones are different, it's possible that they need to be provided with different files.

Configuring the bundle

To send specific files to a specific subgroup of drones, one should update the bundle.yml and use the key folders made for this purpose.

This key accepts a specific research format called regular expression used to match certain drones and not others.

tip

Regular expressions can be complicated to understand and use. Don't hesitate to ask the support team !

For example given the following bundle tree:

pyro/
└─ data/
└─ security.xml
└─ etc/
└─ colibry
└─ milosboard
└─ controller.cfg
data/
└─ security.xml
bundle.yml
demo.xml

and the following bundle.yml:

show_type: GPS
start_delay: 60000
folders:
pyro: "^PYRO_"

In this case, all the drones not having a name starting by PYRO_ will be sent the demo.xml located at the root of the bundle, as well as the security.xml located in the data folder. On the contrary, all drones whose names start with PYRO_ will be sent the demo.xml, the controller.cfg (located in pyro > etc > colibry > milosboard), as well the security.xml (located in pyro > data).

info

Please note that when two files have the same name and hierarchy (in this case security.xml is present in data as well as pyro > data), the file sent is determined by the regular expression match. In this case, the PYRO_ drones will receive the pyro > data > security.xml version while the others the one under data > security.xml.