Inspiration for AirLexa
In an effort to combine the strengths of each team member, we set out to create a product that could be easily used via voice command by any user. The combination of Amazon Web Services and the ARDrone allows for a unique opportunity to utilize video surveillance through spoken commands in any location with WiFi. The example that drove the functionality of AirLexa was a mother using Alexa to control a drone remotely that could watch the children playing in the backyard. Having the capability to find and track certain objects (or individuals), the drone can report back to the user ensuring the children are safely within a certain distance, and are accounted for. AirLexa additionally serves a unique form of entertainment for drone enthusiasts through utilization of Alexa and voice commands.
What it does
AirLexa is a drone controlled by voice through Amazon's Echo device. The echo responds to voice commands such as "Alexa, tell AirLexa to take off" or once in AirLexa, can turn, spin, do a flip, or land. In addition to these commands, there is a visual input on the drone that is programmed to detect and count objects. AirLexa uses vision processing to determine the x,y position of a target object chosen by the user, and can track the object as it moves.
How it was built
AirLexa was built using Python, ARDrone, and Amazon Web Services (AWS). Voice commands are sent through the echo device to Python code that is then transferred to the Amazon Alexa Service Platform. In AWS, the information is processed and sent back to the Echo device, which responds to the user through Amazon Echo. Additionally, from AWS, JSON code is sent to the Lambda, which is then queued and sent to Python code written for vision processing. Responses from vision processing are sent back in a bucket to the lambda. During this process, AWS is also communicating with another computer's Python code utilizing the ARDrone library to control the movements of the drone.
The largest challenge encountered proved to be establishing a connection with both the WiFi and the drone simultaneously. The simple solution would have been using two WiFi adapters, but due to available hardware, a combination of WiFi adapters and Bluetooth eventually allowed Alexa to communicate effectively with the drone.
What was learned
Each team member learned how to utilize Amazon Web Services, as none of us had worked with AWS before. The process of interfacing and connecting all of the components to work harmoniously with each other required not only patience, but learning about Amazon-sqs, lambda, and furthering skills in Python.
What's next for AirLexa
The real power of AirLexa exists in the code, which will be improved upon each time we interface an ARDrone and Amazon Echo to function as AirLexa. The code is open source for others to improve upon it as well, potentially including new functionalities and improvements in the old.