Controlling a Drone using Virtual Assistant Amazon Alexa

—Drones have signiﬁcant importance in the current market with many new inventions. These inventions not limited to artiﬁcial intelligence, but also, health-related, military and security. There are many types of drones that are controlled in many ways, nowadays; one of the most reliable ways of controlling a drone is by voice. Even, many of the voice-controlled drones are based on transmitter and receiver, where the functionality or the application is attached to the transmitter. Also, some of the drones failed in the voice recognition that relates to the natural language understanding of the human; in this paper; we tried to build a drone that is controlled by using a virtual assistant called Amazon Alexa. This drone will be using only the receiver other than the transmitter and also built-in services of amazon help us to create voice recognition understandable by the system. We have succeeded 70% of the work and achieved good results in connecting Amazon Alexa and Arduino Yun based drone.


I. INTRODUCTION
Unmanned Aerial Vehicle (UAV) or simply called Drone is the recent hot research topic with many new inventions.Today there are many IoT based applications on drones that ensure continuous and often real-time monitoring of the person and his surrounding environment, providing assessment and triggering assistance when necessary.In both industrial and daily applications, drones have become the new disruptive force.Transportation and delivery of parcels are very obvious areas of use [1].

A. General Components in a Drone
As per Radosveta Sokullu [1], In his paper discussed that the drone is equipped with many components for flying.These Components are generalized into 5 categories and the block diagram is as shown in Fig. 1.The first fundamental Components are the collection of sensors, like Temperature, GPS, Distance, Inertial Measuring Unit (IMU), Current/Voltage, Pitot Tube, and Barometer.Also, many other sensors can be equipped based on the requirement.
The second component is the Autopilot or Arduino pilot that interprets the information from all the other components, holds the aircraft in control and enables it to fly.Autopilot sends instructions to motors through the electronic speed controller (ESC) to reach the desired speed.The autopilot also receives instructions from the remote controller, and it controls the servos and other motors according to the information it receives.
The third main component is the unit of communication which is further divided into three sub-components; telemetric module, remote controller, and video transmitter.The Remote Controller (RC) unit can forward control commands to the Drone.Drones can fly autonomously or by remote control navigation with pilot (human).UAV's are expected to be continuously in the RC coverage area, a requirement governed by law, in order to ensure protection.The telemetric module sends the sensor information for evaluation to the groundcontrol station.In addition, sensor input can be transposed on the camera image through the OSD (On-Screen Display) module if desired, and sent via the video transmitter to the GCS (Ground Control Station).The fourth component is the GCS that displays data for location and performance of the UAVs in real time.It is also used by the UAV camera to monitor live stream data.
The battery is the fifth and last principal part.Lithium Polymer (LiPo) is used almost exclusively in Drones, offering less weight and high discharge speeds.It does have some disadvantages, such as higher costs and continuing safety issues.

B. Drones Classification
Based on [1], Drones are classified based on capability of flight and configuration or structure.As Shown in Fig. 2. the capability of flight is again sub-classified into three types of Drones.One is HALE (High Altitude Long Endurance), these drones can fly more than 9000 m and also has long flight capacity.Second is MALE (Medium Altitude Long Endurance), these are the drones which can fly upto 9000 m.VTOL (Vertical Takeoff and Landing) has the ability to take off and land vertically.Furthermore, VTOL can shift to horizontal flight by the motion of the propeller after rising to a certain altitude above sea level.Based on Structure the Drones also classified into three types, they are "fixed-wing," "multi-rotor" and "flap wing".Fixed wing drones have more range and flexibility compared to multi-rotor UAV's have a swinging capability and are easier to use.Multi-rotor UAVs have more drain on the battery.Flap wing UAVs are known to face difficulties in autopilot design because the wings have to assist movement control in the direction of pitch, yaw and roll.
In this paper, we discussed some of the general components of the UAV's, Classification of Drones and also, tried to implement a drone that is controlled by Amazon Alexa by using some of the available Amazon Web Services (AWS).Also, the drone was developed by using Arduino Yun and some of the sensors discussed above.The reason behind using Amazon Alexa is one of the best voice assistant and also is easily compatible with amazon web services.

II. LITERATURE REVIEW
There is a quite enough research undergoing on the voice controlled drones.Megan Landau and Sebastian Van Delden described and implemented an architecture for controlling a drone using voice commands, but it still needs the remote controller to be attached to app device in order to fly the drone [5].Abdur Razzaq Fayjie et al. [6] build an open source voicebased control system which reduces production costs with zero maintenance costs.They developed the voice control system which uses speech recognition based on HMM with speaker adaptation and applies control logics to control a drone and achieved effective results [6], but in this system the simulator (Gazebo) is to be installed in the respective ROS (Robot Operating System) [7] in order to fly the drone.
Drones with voice controlling technology often perform many rescue operations.In case of earthquakes, the people struck under the large-scale collapsed buildings are rescued using the drones [9], but this kind of drones are only used for rescue operations not related to flying the drone based on the voice commands, also, the voice recognition used in the system is not so accurate which was mentioned.Not only voice controlled drones but also there are many gesture controlled drones in case of UAV's within line of sight [8].This proposed system is based on the wearable devices and embedded artificial intelligence.Drones developed by an Arduino UNO Micro controller are very often.The flight controller developed using Arduino UNO R3 uses the transmitter and receiver along with gyroscope and accelerometer gives the position of the Quadcopter [13] [14].
In this paper, we took position on developing the voice assistant controlled drone by taking some strategies using [5].Also, the drone is developed using Arduino Yun as per [13] [14], amazon web services like Alexa Skill Kit, Lambda Function and IoT Core provides the communication between the Arduino Yun and cloud services.

III. PROBLEM STATEMENT
Here we need to know that the drones we discussed in the literature review are controlled using transmitter and receiver [13] [14], Wearable devices for Gesture Controlling of drones [8] and even there should be a connection between transmitter and app device for some of the voice-controlled drones [5].As technology is increasing day-to-day, smarter devices are coming out.Nowadays, Voice Recognition (VR) controlled system is the recent trending feature in almost every device.The aim of this research is to build a drone using Arduino Yun.Integrating Alexa with Arduino Yun based drone by using AWS IoT and AWS Lambda cloud services without any wearable devices and also, there will be no physical connection between the transmitter and system.Virtual Assistant Alexa is used as a client for controlling the drone by voice commands.
We know that there are many different types of drones with several shapes like X (4 motors), Hexagonal (6 motors), Octagonal (8 motors), etc in the world.Also, we know UAV's which are working with Transmitter and Receiver, Gesture Controlled drones, Voice-Enabled UAV's, App Controlled drones via Bluetooth, Drones built using Raspberry PI and Arduino.On the other hand, we know about Alexa, which is a virtual assistant developed by Amazon [15].Alexa supports almost many devices like phones and tablets, smart speakers, TVs, and Media Boxes, Smart homes, Automotive, etc [15].

IV. METHODOLOGY
The research method used in this research is Qualitative because the description of the whole research is detailed known but the required materials, software and also built-in functions/code snippets are roughly known in advance.On the other hand, the research design followed in this research is Applied Research Design as there is an interaction between the real-world components.Figure 3 represents the Process flow which starts with Alexa voice service from Amazon Web Services (AWS).Echo Dot is used for the Alexa voice service transferring the voice command to cloud services that are working in the AWS cloud.The foremost cloud service is Alexa Skills Kit which is created in the AWS cloud.Then the request is sent to the AWS Lambda function which is created using python file later the request is sent for updating the IoT shadow thing created in the AWS IoT cloud service.Once this is correctly recognized then the request is transferred to the Arduino Yun device where the drone is built with.The drone is controlled based on the commands given to Alexa.

B. Swim Lane Activity Flow
A Swim Lane Diagram represents the flowchart describing the process in each phase.Using the lane metaphor in a pool, a swimlane diagram offers consistency and transparency by positioning process steps within a specific person, workgroup or department's horizontal or vertical "swimlanes." In the Fig. 4 we have 3 lanes which show the activity in each phase of the research project.The first part shows Human Interaction, the second phase is Cloud System and the last phase is IoT Device (Drone).Initially, the activity starts with Human voice command.This voice command is transferred to the cloud system, Alexa.If the voice command is invalid then it is sent back the Human Interaction phase or else if the command is valid then it is sent to Alexa Skill which is created in the Alexa skills kit.This Alexa skill is transferred AWS Lambda Function which later transfers to AWS IoT shadow thing that is created using AWS IoT service.In the final phase which is IoT Device, the AWS IoT shadow thing is connected to Arduino Yun.If the request is valid then the drone flies, if the request is invalid then the message is seen in the log files of the AWS IoT shadow.

V. PROTOTYPING
The process flow (Fig. 3) is divided into 5 different modules.These modules are shown in Fig. 5 which explains in detail module extraction.The first module is creating an alexa skill named "Activate Drone", by using Alexa Skills Kit (ASK) in AWS developer console [17] and configuring the skill for the second module.The second module is all about creating a working Lambda function, this acts as the main source for the communication between the alexa skill and AWS IoT Shadow which comes in third module.Once the Lambda function is created, we have to configure the AWS Skill with Lambda Function.Here we define our Lambda function and configure what it does when an event with a Launch, Intent and Session End Requests are sent.The Lambda function responses to an event carrying a particular request are handled by functions such as on launch(event) and intent scheme(event).on launch(event) function will launch welcome note of the alexa skill.Sample code in Listing 1 shows the intent scheme(event) function that handles the intent request.Since we have a few different intents in our skill, we need to configure what this function will do upon receiving a particular intent.This can be done by introducing the functions which handle each of the intents.These handler intents namely drone bio(event) shown in Listing 2 and drone feature in(event) shown in Listing 3.These handler functions will re-prompt the message of the particular intent which is called based on the value.
1 def intent_scheme(event): Coming to third module, here we will be creating the AWS IoT Shadow thing using the AWS IoT Core service.Configuring the Shadow thing with Lambda Function.Later in fourth module, Arduino Yun based drone is configured as per [19].Fifth module is all about connecting Arduino Yun with AWS IoT shadow by following the steps stated in [18].Once everything works fine we can connect the Amazon Echo Dot to the created alexa skill account and test.

VI. SIMULATION RESULTS
The setup is tested in the Developer console of the ASK.When the "Activate Drone" is uttered or typed in the development mode of the ASK, the reply from the AWS lambda function is invoked and Alexa voice service is called.There after, from the lambda function the IoT shadow service is invoked and is activated to publish the command to Arduino Yun.The Arduino Yun will perform the respective command.

VII. CONCLUSION AND FUTURE WORK
The technology on drones is increasing day-to-day due to some of the features like deployment of the system in drones, low cost, less operational maintenance.Voice-based drones have more scope as the world is emerging into virtual assistants (voice-based assistants like Alexa, Siri, Bixbi, etc.,).The proposed prototype in this research paper is able to succeed until module three i,e connecting Alexa skill with Lambda function and AWS IoT shadow.Also, Arduino Yun based drone is implemented successfully, but the connection between AWS IoT core and Arduino Yun is unsuccessful.
In the future, once the AWS IoT core and Arduino Yun connection is a success, the drone can be used to surveillance of whether the car is in the parking lot or roof of the house based on the voice commands.This drone can also be used for ambient assisted living by adding a decision making feature.