Saturday, November 13, 2010

Underwater puppetry and the skill tester

Underwater puppetry (EN-10: Assignment 6)
The challenge for this assignment was something that I've been wanting to play with for ages - create a puppet using robotics. My original ideas were to make a marionette or possibly some kind of shadow puppet, but I was also very keen to avoid doing a style of puppetry that other students were going to attempt. In the end I opted for an untapped source of puppet potential... underwater puppetry! All I needed was access to a fish tank (thanks Kristen!), some tips about how to do underwater robots (thanks Stevens Institute of Technology), and some local know-how and materials (thanks Morgan and the Anderson building attic!).

I used RCX motors because they are easier to waterproof than NXT motors (it helps that they are smaller too). I plugged any holes on the motors with a hot glue gun and used petroleum jelly and small polypropylene washers to help seal the axle shaft. It took a morning to build the first version of the robot and I couldn't believe the result. It worked incredibly well, first time. The fish tank was a great size for testing the initial build but a bit small for tasting the robot's movement. The haptics that I decided to use in the remote control were a bit stubborn, but the robot was very maneuverable and generally pretty stable. It was much easier than I was expecting, and I'm now very tempted to stick an NXT in there as well... but not for this particular challenge.

From EN-10: Simple Robotics

I spent another morning building a treasure chest for the underwater puppet play... this is a puppet after all! I wanted the treasure chest to hold skeletons and gold that would be visible when the chest is opened, as a finale. I spent ages working on a mechanism that would push the skeletons out of the chest. I was a bit worried that the skeletons wouldn’t look obvious, so I mainly just filled the chest with skulls (rather than entire skeletons) and gold pieces. That made the chest easier to open, but then I put it in the tank and discovered that both the skulls and the gold pieces float!! In the end I had to put a sinker inside the lid of the chest just to keep it closed! And worse, navigating the craft in the small fish tank was so fiddly, that it was nearly impossible to get it into the right position to open the chest. The lever I’d created to open the chest was far from the best solution, but I was out of time. I had half an hour left to write a script - full of bad Dad jokes ("What's that shivering at the bottom of the ocean? A nervous wreck!"). Rather than inflict my bad jokes on anyone else, here's a short video of my underwater robot in action...




The other puppet performances were lots of fun to watch. They included a smart-talking sock puppets, ventriloquist's dummies, a marionette, and an ambitious automated shadow puppet retelling of The Lion King.

Skill Tester (EN-10: Assignment 7)
The final project for EN-10 was to make "your favourite childhood game" using robotics in some way. I'm not quite sure where the idea came from, but I immediately thought of doing a "skill tester". The idea is that you have to move a "wand" from left to right without touching the central wire. There are touch sensors embedded in the sides of the frame and your score increases each time time you reach them. The central wire and the "wand" are connected, via a couple of alligator clips and a custom cable, to one of the inputs on the NXT (from the NXT's point of view, they function as a touch sensor). Each time you touch the central wire, your number of lives decreases by one. Here's the "twist"... a motor turns the central wire, at a speed proportional to your score. The longer you play, the faster the central wire turns, and the harder the challenge becomes... (-:

I spent about a week, on and off, thinking about how I'd do it, and writing a few notes to myself. By the time it came to building, I had a pretty clear idea of what I wanted. From there it took about three hours to build and program the first version.

From EN-10: Simple Robotics

That was all pretty easy, so for an extra challenge, I decided to make a 2-player version. I built a second skill tester, and hooked it up with the first by bluetooth. The idea in the 2-player version is that your score determines the speed of your opponent's central wire. The higher your score, the harder it is for your opponent. This makes the program a bit trickier, and I still haven't ironed out all the bugs, but it worked well enough for presentation in class. I was asked to keep it all intact for an open house at the CEEO in a few weeks, so that will give me a chance to improve the setup.

At the risk of starting an international incident, here's a demo of the 2-player version. Thanks to Christoffer and Alex for helping with this demonstration!



Photos from both of these projects, as well as a bunch more from EN-10, are here.

No comments:

Post a Comment