This project builds upon the work done during our previous hackathon (HackCU Phase): https://devpost.com/software/autonomous-luggage-system
Our team is inspired by the growing need for direct surveillance of a house or office. Normally, security cameras passively record their house and send this data over the network, making it easy for hackers to open up public security cam footage of other people's houses. However, if a user has complete control over their surveillance, and are directly connected to it, it is easier to turn on or off a feed at will.
What It Does
Our user interface controls the movement of the irobot create 2 using a public website. The robot can be used for many different things, including child tracking (being able to follow your children while you are gone), security monitoring, house inspection and a general sense of connection to one's house while they are gone. The system can also be implemented into the internet of things, connecting to sensors around the house that can control temperature, do basic tasks around the house and just roam to provide a constant live stream of the house.
How We Built It
A continuation of our previous autonomous iRobot Create 2, this project highlighted some of the user interaction possibilities with an autonomous robot. The previous code that ran on our robot interfaced with the user directly from the command line of the local operating system. Naturally, this is inconvenient for any use in the public domain, so we decided to hook our robot up to a wifi network. The robot was connected to a local web server (the web server being used was only for static processes, we used ngrok to allow our computer to be the processing side of the server) via USB and it would receive POST requests via http protocol from our web app built in the Flask framework for python. This way, any user could open up the web app and command the robot from their local machine completely wirelessly. The web app is also linked to a separate dedicated page for a live stream (it would be possible to maintain this live stream on the same page, however this is too much processing for a laptop semi server).
Accomplishments That We're Proud Of
Our team is proud of the amount we learned during this hackathon. Prior to the day, we all had a very loose understanding of some of the concepts being used in our control system. We didn't know much about servers, http, Azure, or flask to create a substantial amount of code, and although some of our learning was in vain (primarily with the use of Azure's live video streaming feed). We each learned so much about a very specific, but useful skill for developing a UI for a house patrolling robot.
What We Learned
In this project specifically, we focused more on user interaction. As computer scientists, it's often hard to see your own code being displayed on an easy to read format. After all, all back end code is run without notice from the user. Thus, to create a user interface, we learned how to connect the back end, complex code to the front end, static scripting languages. I was easier to see what our code was doing with the addition of a GUI.
What's Next For Autonomous Luggage System
Of course, a security and authentication system would be necessary if we were to continue on with this project. So a user would have an account and run their robot from their own account. Our functional code is set up as an object oriented program, so it would be very easy to create an authentication system using a google API or any other open source security software. The GUI on the web app is being configured to host multiple functions at once. The future goal for the UI is to add a method's portion of the web app, where the irobot would be told to roam autonomously using either the obstacle avoidance code or the image detection code, a gpio portion of the app, where the user could send and receive data such as microphone audio, a video, or even receive data like temperature humidity pressure etc. Finally, the UI could incorporate a security mode, where it passively roams the house using AI to detect an intruder. For maximum efficiency, the irobot could communicate with other systems in the house such as trip lines and motion sensors and relay this information to the user using a messaging api like twilio and ping a notification the user's account.