In this project, we study the ability of an affordable swarm, consisting of DJI Tello drones, to clean windows. We developed a unique Python framework, allowing us to control multiple Tello drones at the same time, including multiple video streams. The framework requires a server with multiple network interfaces, as each drone communicates via a different subnet. This framework is general enough to control up to 216 drones (limited only by the number of available Network Interface Controllers, NICs), and to obtain all the functionality described by the official DJI Tello SDK. We utilize this framework to show a proof-of-concept of a fully automated system that cleans windows of buildings and skyscrapers. In particular, the mission of each drone is to recognize a marked window designated as the target of the drone, approach the window, and complete the cleaning mission. This is done by following the logic described in the state machine depicted on the right.
As a fiducial system, we use AprilTags, such as the one show on the left, which are two-dimensional barcodes that contain arbitrary user-defined data. They are specifically designed for robust identification at large distances and real-time performance.
We faced many challenges while working on this project. The final framework overcomes most of the communication issues and is able to make the drones locate and approach multiple tags. However, we did not manage to complete the final phase of cleaning, since the contact between the drone and the window raised some issues regarding external forces and friction that are beyond the ability of the drone.