Interface for programmable command and control of autonomous drones
Date of Issue2017-11-16
School of Computer Science and Engineering
Drone technology has been growing among the human community in the current era. The drones are being used not only for personal use but also being used for commercial use. The drones reduce the work load of a person, thus increasing the efficiency. In the current era, the drones are being tested for delivering food and used as an alternate mode for transporting goods. In this project, the Self-Fly App not only allows the user to operate the drone manually but also autonomously. With the use of google map, the user only had to insert the destinations of the flight path for the drone. The basic features and concept of the Self-Fly App are based on the FreeFlight Pro App. More detailed information about the basic feature and concept is available in the following report documentation. The Self-Fly App is an application which communicates with the Bebop Drone. The main specialty of the app is to allow the user to control the drone using three different types of control systems. The three types of control system consist of Manual, Autonomous, and Script control system. In addition to the control system, the app has additional features which will allow the drone to autonomously land or return the drone to the start point upon reaching the low or critical level of the drone’s battery percentage. However, the project’s main objective is to deliver an App that will allow a user to control the drone autonomously without any hassle of controlling the drone manually. The other two control system which are Manual and Script control system, are additional features of the App. The other additional feature consists of the tutorial section. For first time users, this tutorial section will be most useful as it guides the user step by step with detailed information of the functions implemented and the outcome of the functions on the App. The MVP (Model View Presenter) is a model guide that was used for the design architecture in the development of Self-Fly App. The reason for choosing the MVP architecture as model guide is because the App is based on the android system. Most of the Android Apps are developed based on the use of MVP as their design architecture. The implementation of the App was segregated into nineteen use cases. These nineteen use cases were tested individually with occurrence to the App. The video presented during the presentation demonstrates the individual control systems. The video is segregated into 3 types of scenarios which demonstrates the 3 control systems. In each scenario, the video demonstrates what the user can expect, explains how the App response and how the drone reacts and behaves from the 3 types of control systems. During the project, many obstacles had to be overcome due to the limitation and from personal experiences. The limitation can be categorized into three parts, hardware, software and external limitation. Under the hardware limitation, the GPS chip implemented on the drone has a low precision GPS tracker where the GPS signal of the drone is available when the drone is on an open field. Under the software limitation, an App developer is unable to access the drone’s sensor to read the values but it can provide the working status of the sensor. Under the external limitations, the drone will be wobbling in the air if the wind speed exceeds 24mph, the weather condition plays a huge factor while operating the Bebop drone, as the sensors are inaccessible the drone had to be operated on an open field without any obstruction on the flight path. More limitations and detailed explanation is provided in chapter 3. Under the personal experience there were many struggles I faced and they are mentioned in detail in the conclusion section. Due to limited access to the hardware components, I would recommend purchasing a drone which has sensors that the developer can access. This limitation is a critical problem for a developer. Without the access of the sensors developer can’t implement an algorithm to operate the drone autonomously and avoid obstacles. Through this project, I have gained in-depth knowledge of developing Android applications using the Android Studio. Most importantly, how an App is developed to communicate with an external hardware device like the drone. In addition, I learned the different types of drones in the market and their functionalities, capabilities, and limitations. I learned that, for an App to be compatible with a hardware device it is necessary to know the ins and outs, pros and cons of the device before designing or implementing an App. Without the knowledge of the hardware’s features and limitation, the App will be unworkable. Most importantly, I gained the courage and confident on working on a project independently and approaching people and posting queries on the forum whenever I had a question to clarify without hesitating.
Final Year Project (FYP)
Nanyang Technological University