After my success with sharing the brain-controlled hex bug with Conor and Joel, we brainstormed on how we could make this hack even more fun. We decided that the main problem with this hack is that only one person gets to participate — the person driving the robot. The solution? Let’s hook up multiple people at the same time to control the one robot. It’ll be like that 3-legged race, where you tie your leg to the leg of another person, and then you stumble together in slapstick hilarity until you both get to the finish line. We are going to do the same thing, but with brain-controlled robots. Here’s how far we’ve gotten so far…
The Plan: Our goal is to have multiple people control one robot via their brain waves. To do this, we aimed to connect multiple people to a single OpenBCI board. I have never connected multiple people to one EEG system before, so this was pretty exciting for me. As shown in the figure below, the idea is that each player is responsible for just one of the robot’s actions — one player is responsible for “Turn Left”, another for “Turn Right”, etc. Since the robot has four actions (Left, Right, Forward, Fire), we can have up to four players.
The Hexbug robot has four commands (Left, Right, Forward, Fire), so for multi-player fun, connect four people to one OpenBCI board and work cooperatively! |
Commanding the Robot: In setting up this hack, I wanted to make it as easy as possible for the players to command the robot with their brain waves. The easiest brain waves to generate and the easiest brain waves to detect are Alpha rhythms (ie, 10 Hz oscillations), specifically the Alpha rhythm that naturally occurs when you close your eyes. So, with the setup above, we have the computer looking for Alpha waves in each person’s EEG signal. If the computer sees Alpha waves from Player 1, the computer issues a “Turn Left” command to the robot. If the computer sees Alpha waves from Player 2, it issues a “Forward” command. And so on…
EEG Setup: To detect these eyes-closed Alpha waves, we put one electrode on the back of a player’s head over the visual cortex (position “O1” in the 10-20 system). We put another electrode on one ear lobe to act as the EEG reference. Finally, we put a third electrode on the other ear lobe to act as the EEG Bias.
Individual Reference: To allow each person to use their own reference electrode, we configured the software on the OpenBCI board to put the ADS1299 EEG chip into per-channel differential mode. Unlike our normal mode of operation, which uses a common reference electrode via SRB1 or SRB2, this differential mode allows each channel (ie, each player) to have its own reference. This is what we want! We simply plug the O1 electrode into the channel’s “P” input and the ear lobe reference into the channel’s “N” electrode.
Common Bias: The only tricky part is that we want all four players to be connected to the OpenBCI Bias. This is tricky because the OpenBCI board does not have four Bias pins. Well, as you can see below, all it takes is a soldering iron and you can connect a piece of pin header to turn the single Bias pin into four Bias pins. Now we’re hacking!
OpenBCI V3 Board With Extra Pins Soldered to the Bias Output |
Connecting the Pieces: The picture below shows all the connections to the OpenBCI board assuming three players. On the lower left, we’ve got three pairs of wires (one pair for each player) plugged into the “P” and “N” inputs of three different channels. Then, in the upper-left, you see three wires plugged into three of the four new Bias pins. Finally, in the upper-right, you see five wires that go off to command the hacked Hexbug remote control.
OpenBCI Board with Connections Ready for Three Players |
Conor and Joel working through the details of the connecting the Hexbug remote control. |
Testing It: Once we pulled together all of the pieces, Conor and I began to test the complete setup (see pic below). After a little tweaking, we got the whole system working, as shown in the video at the top of this post. It was a group effort that worked out. Pretty sweet.
Conor and Chip — Two Brains, One Robot. |
Recruiting a Team: At the AF LabHack, there were lots of folks doing their own hacking. By the time we got our system working (with the one healthy robot), the other teams were scrambling to get there last results prior to presenting to the group…so we had a tough time recruiting volunteers for being part of a robot-control team. In the short time we had left, we did get three enthusiastic folks step up. We got them all equipped with EEG electrodes, tuned the system a bit and let them play!
Our Fine Volunteers. Three Brains, One Robot. |
No Video: At this point, we should be presenting a triumphant video. Unfortunately, we don’t have one. If we did, what you’d see is that two of the three players could easily and repeatably use their eyes-closed Alpha waves to command the robot. It was cool to see.
No Alpha: The third player, though, did not have much luck controlling his part of the robot. At first, I assumed that it was a problem with our system, but after a little debugging, I came to the conclusion that his brain simply wasn’t generating eyes-closed Alpha. He could have been trying too hard (you must be relaxed, without concentrating or being overly focused), or he could have been part of the 11% of the normal, healthy population that simply does not generate Alpha upon closing their eyes [Ref 1]. For these folks, I’ve got to come up with an alternate robot-control methodology…perhaps by the concentration signature of counting-backwards-by-three.
Next Steps: The next steps are clear — I have to get a bunch of people together, hook them up, and enjoy the shenanigans of many brains trying to control a single robot. Should be fun!
Ref [1]: Gibbs FA, Gibbs EL, Lennox WG. Electroencephalographic classification of epileptic patients and control subjects. Arch Neurol Psychiatry. 1943;50:111–28, as referenced by http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3927247/