Each drone sends to all the others a message named RequestUAV at the camera frame rate. This message contains a Binary VLAD descriptor of the frame the agent is viewing. We use a modified version of the BVLAD [1]}, to perform place recognition between the UAVs. The ORB descriptor is binary and so we create a VLAD by using binary operations only, in particular, we use the OR (\(\vee \) ) and the AND (\(\wedge \) ) operations, instead of sums and subtractions. Doing so we do not need to perform normalization nor exponential decay law to reduce the impact of recurring features. VLADs are of a fixed length, and they can be shortened applying dimensionality reduction through PCA [2]}. The resulting request message has a fixed size that is much smaller than a MessageUAV. We created a coarse vocabulary of ORB visual words of 64 centroids. Hence, without applying any dimensionality reduction sharing a VLAD is the same as sharing 64 ORB descriptors. The result is that the RequestUAV message weighs \(2.05 kB\) , including the timestamp and the id of the sender, resulting in lower data consumption.
When a robot receives the request message from another agent, it looks among its keyframes to find a loop-closure. A keyframe contains the information needed by the MessageUAV and a VLAD. The score between the received descriptor \(r_j\)  and the keyframe one \(r_k\)  is given by:
\(s \doteq \frac{Hamming(r_j \wedge r_k)}{D_{max}}\) 
