For day 2, JSConf did something pretty unique. There were no sessions at all, but instead they had an "activity day." There were a variety of activities to partake in, from kayaking to golf to just lounging by the pool. I, however, decided to indulge my nerdy side and do some robot hacking!
Raquel Vèlez (@rockbot), from the "AI.js: Robots with Brains!" talk the previous day, and Rick Waldron (@rwaldron) organized a nodebots hacking day, and it was a blast! We were given an Arduino, all the servos and sensors we could want, a bunch of Popsicle sticks, hot glue, and turned us loose. The icing on the cake though was that we used node.js by way of Johnny Five to power our robots.
I worked in a team of four with Ray Daly (@raydaly, from the "JavaScript Journalism" talk), Mike Surowiec (@mikesurowiec), and Rahul Ravikumar (@tikurahul), and we built a typing robot that could type out "helloworld.js". I'm really proud of what we as a team managed to accomplish in just 6 hours. Our bot seemed to be quite the crowd pleaser, and we even got a shout out in the opening statements the following morning! Check out the video of it in action:
In my sophomore year in college (early 2004), I had a semester long project to build a robot based on an RC car that could drive around a parking lot using GPS. It took the entire semester and even then we didn't get it fully working. The GPS car was developed using a Motorola HC12 microcontroller with all software written in assembly. I had to write software that would properly generate a PWM to drive servos to their proper angles, generating an analog output to drive a DC motor, etc., by interacting with the hardware directly.
Comparing my GPS car project with the nodebot, I was blown away by how easy the nodebot was to make using Johnny Five and an Arduino! The hardware for the GPS car was more complex, but only by a factor of two or so. The real difference in was the software. If we used an HC12 plus assembly to make the nodebot, it would have probably take about two weeks, not 6 hours! Having an easy to use library combined with an easy to use programming model really does make robotics much more approachable.
There were a lot of other great nodebots too. There was a robot that looked like a small RC car with a marker attached that could draw on large sheets of paper, which was really fun. There was also a robot that would detect when a toilet paper dispenser was out of toilet paper and send out a tweet (it was very entertaining). One of my personal favorites was a rubber band launcher. The bot was fun in and of itself, but the icing on the cake was what it did later.
Next door to us was another robotic hackathon: nodecopters. There, hackers had to take an AR.Drone and make it do fun things using node.js. There was an official challenge to get the nodecopter to follow a line and land in a square on the ground. Several teams attempted this challenge, but no one succeeded. I greatly admire them for trying, though! I did some image processing work while working on my Ph.D., and properly doing image segmentation is far from trivial. The other teams did various fun things with their nodecopters.
The nodebots teams went over to the nodecopter team's demonstration, and, of course, the rubber band launcher nodebot came along (I'm sure you can see where this was going). The first few demos had some technical difficulties establishing a wireless connection their nodecopters, but finally one demo came that showed a nodecopter doing some fun acrobatics. Just as things were going well for the team, the rubber band launcher shot down the nodecopter! I don't just mean it nicked the nodecopter either. It actually hit one of the propellers, causing the nodecopter to flip and crash to the ground! It was an example of perfect comedic timing, and became the talk of the conference along with one of my favorite memories. There is now an official rivalry between nodebots and nodecopters. There is talk of beefing up our arsenals, bringing in nodeboats, and perhaps even nodeaircraftcarriers. Begun, the drone wars have. Bring it on! :-) The nodecopters have begun preparing, and so too must we:
http://www.youtube.com/watch?v=HUzv_ge-WKA
It was a wonderful day that built a lot of great camaraderie among everyone who participated. Sadly, there were some fires that cropped up at work and I had to spend the rest of the evening in my room fixing bugs on the Titanium Code Processor. Most everyone else at the conference went to downtown Amelia Island and I hear it was a lot of fun.
In my next post, I'll talk about day 3, where I got so many amazing ideas for things I want to hack on.