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"
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)
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
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.
| Key | Description | Value type | Value Unit | Possible value |
|---|---|---|---|---|
anchors | Minimal number of UWB antennas that should be seen by the system | Integer | Number of antennas | [0;∞] |
battery | Minimal drone battery percentage under which the checklist item will trigger | Integer | Percentage of battery | [0;100] |
latency | Maximum latency between the drones and the DCC | Integer | Milliseconds | [0;∞] |
start_orientation | Maximum orientation delta between the expected value and the value computed by the drone captors | Integer | Degrees | [0;359] |
redundancy | List of interfaces the drone shall be visible through | List of Strings | Strings | - 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.
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).
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.