Introduction: Mind Controlled Robotic Arm
This is a project I did for my Google Science Fair Entry. If you like this please check it out and vote for me when it becomes available.
This is a video of the hand being controlled by the brain opening and closing:
More videos will be on as soon as I get them uploaded
Today, millions are suffering due to the lack of a functional arm preventing them from doing things we take for granted. Until about five years ago, the idea that these people could have a prosthetic arm that wouldn’t just serve for aesthetic reasons, but instead would act as a way for them to regain functionality with natural control via the brain seemed highly far-fetched. Recently, groundbreaking ways to do just that have been successfully developed. These systems, still in development, either connect to existing neurons or to electrodes implanted into the brain to decode the signals from the brain and use them to control a robotic arm. Although they are a great way to help the disabled, these new systems are very costly to develop. The surgery required is very complicated and costly. The robotic arms that these systems use are also extremely pricey. The whole system requires hundreds of thousands to millions of dollars to develop. I wondered If I could develop a system that is affordable to most of those who need it. After doing research, I discovered alternative ways to achieve the task which employs different technologies and components for a fraction of the cost. This robotic arm based on the Inmoov project costs less than $200 dollars for its construction and the brain interface uses a $300 headset from Emotiv. Overall this $500 price tag is almost nothing compared to the hundreds of thousands to millions of dollars required for the current technology. This will successfully enable many more people in need to be able to utilize the available technologies to its fullest potential and restore not only their limbs, but also their lives.
Step 1: Materials
All the parts required to build the Inmoov arm which can be found at Inmoov.fr
The robotic arm I made is partly different from this but it can be made without them. For cost efficiency, I do although use different servos which I explain in the next step
Emotiv EEG Headset+software
Step 2: Contruction of Inmoov Robotic Arm
In the beginning, I had plans to design and build my own robotic arm that would have every function of a regular human one. Because I would be using my public library’s 3d printer and I didn’t have one of my own, I would have been unable to prototype regularly make changes through testing. When I came across Inmoov, an open source 3d printed humanoid project, I had decided the best path would be to make and use an iteration of its arm. The arm part of Inmoov acts very similar to a human’s and would be very helpful. I used its design as a base making changes to have it fit my function. I had also used different parts in the case of some servo motors where I could find ones very similar from different sources for about half the price. I coded each degree of motion to correspond with two buttons on the keyboard, one for each direction. When one of these buttons is pressed, the arm moves in that direction for however long it is held.
I will not go into much detail here on how to build the robotic arm due to the fact that it is covered well on Inmoov.fr
You can get the files for the 3d printed pieces here:
Instead of the HB802 servos use these: http://hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=21821
they are much cheaper but just as good
Step 3: Powering Arm
I used a 5000 mah 7.2v 2s Li-po battery which I bought off of Hobbyking which I duct taped onto my project enclosure. I also used a 20a sbec to bring the voltage down to the 6v that the motors can use. To control the whole arm, I used an Arduino Mega although a Uno will do just fine.
Step 4: Coding for Robotic Arm
For this code, the thumb-pinky is attached to pin 2-6 respectively
the writs is connected to 6, bicep piston to 7, bicep rotational to 8, shoulder piston to 9 and shoulder rotational to 10;
To move the pinky in use q and to move it out use a. The two letters to its right (w and s) control the ring finger and so on so forth until the t and the g which control the thumb. C closes every finger and v opens every finger. Y and H control the wrist, U and J the Bicep up and down. I and K control the bicep rotation. O and L control the shoulder up and down. P and ;(semi colon) contorl the shoulder roation.
The Code I used is attached
Step 5: Mind Control Interface
This is the most important part of the system which makes it interesting.
Looking a the available choices, the EEG headset and the EKG sensors seemed to be the only methods of control which allowed for a low budget and didn’t require surgery. Of these two, I saw the EEG headset as the clear preferable method. The EKG sensors require muscle contractions the area above the prosthetic. First of all, this restricts it to people who still can control that muscle which rules out anyone who is disabled due paralysis or something similar rather than amputation. It also means that without nerve rerouting, not all of the arm can be controlled. Of the EEG headsets, the one that stood out to me was the 300 dollar Emotiv EPOC headset due to its 14 sensors that can pick up cognitive thought compared to the cheaper ones that only sensed concentration levels.
To control the robotic arm with this device, I had the program track my brainwaves as I imagined the possible positions of my arm. To train it with my mind, I gave it many sets of information of my brainwaves. This way, when it sees those patterns again, it know which position I was imagining. Originally I had imagined the movement itself but this proved to be difficult to recognize because it was a set of thoughts rather than one continuous thought. After it was able to detect each though, I had programmed it to type a letter for that thought that corresponds with the one programmed into the the arm. This letter would then be entered into a communication port which went to the robotic arm.
Step 6: Training the Arm
To get the eeg headset to recognize the motions I tricked the Emotiv Control panel into thinking my thoughts of one of the actions as the preset 'bringing an onscreen cube forward" I set up a different preset function with a direction for each degree of motion. (Look at pictures to understand). After each motion is set up and you give enough data for it to consistently detect your thoughts, go into Emokey and set up rules. Each rule should have a condition as one of the cognitive thought motions that you trained and an output key that is held corresponding to the letter that is programmed for that motion. For mine, instead of training each finger, I trained the thoughts of close and open.
Step 7: Make It Work
Launch a serial communication port at 9600 baud rate with the arduino via Putty. Put on the headset and turn Emokey on. Click into Putty so that any key entered by Emokey goes into the comunication port. Thats it! Imagine the thoughts you trained and see them at work coming to life.