Our inspiration was to mimic human motion with robotics. Our goal was to revolutionize robotic abilities and change the industry by implementing machine learning into robotics to allow toe robot to discover for itself the best ways to mimic these motions.
What it does
Currently, the arm is set up to teach itself to type using machine learning. It is reinforced by correct or incorrect keypresses on the keyboard and will eventually build itself a map of the keyboard and determine the right course of action to take to hit each key when desired.
How we built it
The arm itself is built out of Legos because they are easy to build with and change on the fly, which was necessary for this project. It also allowed us to use the NXT motors in conjunction with an Arduino and two serial motor drivers for the three-axis motion. The software was built in three parts: Arduino, Python, and MATLAB. The Arduino itself controls voltages to the motors. Python running on the computer tells the Arduino to do motor actions through the serial port. Python also uses integrated Matlab functions to help with the more complex graphing using in our reinforcement learning algorithm. It is given a simple connected graph (no locations, just connections) of what keys are located next to each other.It then builds a map of its 'closeness' to the correct key as it tries different positions, eventually focusing in on the correct key.
Challenges we ran into
Everything. No seriously, everything. We averaged ten iterations of anything before success. The hardware took 24 hours to get working as a result of the motor drivers not functioning as expected and being difficult to acquire. Several languages and libraries failed to give the results we needed for a successful project. To make things worse, the internet would cut out just before downloads finished to make sure we couldn't have that one last piece to make the part work.
Accomplishments that we're proud of
We were able to create a mechanical arm with a nearly full range of motion on the horizontal plane (where the keyboard is).We are also proud of the connections between our abstract mathematical algorithms and our physical real world application.
What we learned
We came into this hackathon with only basic knowledge of machine learning we needed to accomplish this task. After hours of research and trial and error, we gained valuable experience not only understanding AI concepts but creating machine learning applications from the ground up.
What's next for Autonomous [w]Riting Machine
This project can serve as a starting point and proof of concept for advancements in the AI industry. We wanted to move towards machine learning for real world interaction as opposed to the normal abstract big data application (computer vision, natural language processing). We plan to apply similar concepts, including applications that mimic other human motor functions.