Skip to main content

Tablet-based drone control for aerial writing

Student: Cristiano Urban

Supervisor: prof. Pier Luca Montessoro

Platform: DJI Matrice 100, DJI Manifold, two laptops


The goal of this Master Thesis project is the development of a software application for a tablet-based drone control. The main purpose is the aerial writing, namely the possibility for the user to drive a drone in order to reproduce on a plain surface the gestures done by the user himself. The whole application consists essentially of two different pieces of software, a client-side part (Scribbling Client) and a server-side part (Scribbling Server). The client is a simple and intuitive Qt 5 GUI, equipped with a drawing area, from which the user can easily control the drone. The server is a background process running on the drone onboard computer. It exchanges data with the client and sends the appropriate commands to drive the drone. Both applications are written in C++.

What you need

The hardware development platform includes the following tools:

  • Drone: DJI Matrice 100
  • Drone remote controller
  • Onboard computer to run the Scribbling Server: DJI Manifold
  • A laptop with a Windows OS to run the flight simulator
  • A laptop with a Linux OS equipped with touch screen to run the Scribbling Client
  • The code: BitBucket repository.

In the appendices of the thesis you can find all the details on how to build, install and run the software:

  • Appendix E: How to install the Qt 5 library on GNU/Linux Ubuntu
  • Appendix F: How to build Scribbling Client, Scribbling Server and the Dummy Server from sources.


The steps to perform a simulation are described in the Appendix G of the thesis. Here below you can see a short video of a flight simulation on the y-z surface. The Scribbling Client and the Scribbling Server are shown in action in the bottom-right corner of the screen.


Future developments

During the flight tests we noticed some issues related to abnormal behavior of the drone, especially using the velocity control APIs on the y-z surface. These issues led my supervisor and me to consider porting the code to other development platforms.

So, one of the possible future developments could be to port the code to one of the following platforms: