Setup guide for small outdoor shows (1-250 drones)
A good place to start your basic outdoor configuration with a local RTK station and MAVLink-based drones is the etc/conf folder of the Skybrush Server repository on GitHub, which contains several sample configuration files for different use cases. You should check out the ones matching skybrush-outdoor*.jsonc
.
In these configuration files there are basically only three extensions for Skybrush Server that are configured differently from their default configuration: http_server
, rtk
and mavlink
. In the followings we explain in detail how these should be setup for small outdoor fleets.
Configuring the http_server
extension
The http_server extension defines the IP address and port of the host that the server should listen on. The default value for the host
property is localhost, but it is advised to use an empty string to listen on all interfaces. Other settings can change the default port or switch to the safe https protocol in case a certificate is given, but these are not needed for the time being.
So all you need in your configuration file in the EXTENSIONS
property of the main JSON object related to the http_server
extension at this point is the following:
"http_server": {
"host": ""
},
Configuring the rtk
extension
For configuring the RTK extension for your outdoor drone show, please read the dedicated guide for RTK support.
Configuring the mavlink
extension
The mavlink extension handles communication with your outdoor drones that are using the MAVLink communication protocol (all ArduPilot-based systems use that).
Setting up your primary WiFi network connection
The most important property one has to configure is networks, as in the example below:
"mavlink": {
"enabled": true,
"networks": {
"mav": {
"connections": ["default"]
}
}
}
The code snipped above enables the mavlink
extension and creates a single network called mav
, with one single default connection.
Since system ID’s in the MAVLink protokol (and in ArduCopter) are 8-bit only, one network can contain up to around 250 drones with unique IDs as a maximum. As ID 0 and IDs between 251-255 should be generally preserved for GCS stations and other entities, the most convenient method is to calculate with exactly 250 drones per network.
make sure you have a different system ID ArduCopter parameter for all your drones to be able to address them uniquely (the parameter is called MAV_SYSID since ArduCopter 4.7, and was called SYSID_THISMAV before).
|
The "default"
connection in the example above will resolve to "udp-listen://:14550?broadcast_port=14555"
, meaning that Skybrush Server will listen for heartbeats on UDP port 14550, and send broadcasts to UDP port 14555, which is the default configuration for ArduCopter-based drones.
Setting up a secondary radio connection
If you have a secondary one-way radio connection from the GCS towards the drones besides the primary WiFi connection, and you wish to control both channels from Skybrush Live (i.e., you are not using Skybrush Sidekick), your connections
configuration property should be modified as below:
"mavlink": {
"enabled": true,
"networks": {
"mav": {
"connections": ["default", "serial:COM6?baud=57600"],
"routing": {"rtk": [1]}
}
}
}
In this server configuration code snipped sample the second connection will be an UART connection connected to COM6
port with 57600 baud rate, and the RTK correction signals will be routed to this second radio connection (change these parameters as convenient).
If you want to have your RTCM messages transmitted by both channels, use {"rtk": [0, 1]}
as the routing
parameter.
If you wish to control the radio channel through Skybrush Sidekick, not Skybrush Live, do not configure the second connection, but enable the sidekick
pro extension instead, which will handle the radio connection for you.