Tuesday, March 09, 2010

Boomzilla - Scavenger Bot

BOOMZILLA Ver. 1.0 - fully automated scavenger bot. Trial run.

Made a video of this Lego bot I've been working on with help of GR.

I got the green light from the primary robotics coach to take home one of the Lego Mindstorms NXT 2.0 kits the other weekend and have been burning the midnight lithium-ion on many a night, just going full on mad-scientist creative STEM. So, so much fun, just good wholesome brain-friendly fun. If we had a Mindstorms or other robotics courses/clubs/teams when I was in school, I think half my graduating class would’ve gone on to advanced engineering, science or some other Conceptual Age venture instead of settle-marrying the high school sweetheart and valet parking at the Sheraton for the medical benefits, living on Top Ramen courtesy of food stamps.

You can make almost literally anything you can dream up. I watched videos of a Lego a stair-climbing amphibious tank, a plushie claw-grab type game, a Rubik cube solver, even a knitting robot.

I spent most of the first day just crash coursing in building and trying to re-vamp the basic three-wheel vehicle design to append a grasping claw to the front of the bot without it dragging on the ground or getting too tipsy. Once I had the basic physical phenotype in place, I started blue-skying up a goal for the bot to accomplish. The ‘challenge’ in class which none of the kids’ teams have yet completed is retrieving a nickel-roll sized plastic beacon and bringing it back to home base. The programming I’m having them do for now is pretty much straightforward Assembly-linear movements all predetermined from the start – no “brainy action”, complex decision trees, sensory response, fuzzy logic, heuristics etc.

So I wanted to take things to the next level and a make a fully autonomous scavenging robot that could explore a room, identify usable/grabbable objects, pick them up, return the object to ‘base’ and then venture back out to continue searching, eventually collecting all collectable entities in the vicinity. The first and most important bit was implementing the ultrasonic sensor, which sends out 20+ khz sound waves and judges distance by how long it takes the waves to bounce back a la SONAR. This allows the robot to “see” when something is nearby, see if it is a collectable object, etc. and is the workhorse of the sensors If the eyes are the windows to the human soul, perhaps the ears are the screens into the machine “soul”? The second piece was adding the light sensor, set to detect ambient light in a given direction, which allows the robot to figure out which way is home by looking for the desk lamp beacon situated in the base/”stash”.

The hardest part was designing the AI, calibrating it and figuring out work-arounds for potential issues and fail states, like running into a wall, figuring out if an object is graspable or a shelf/wall/…, and tuning the search heuristic to be as efficient as possible (search in a row of wide 360 degree circles till you hit a wall, search a new row..)

GR and I were mulling over various names but I ended up calling him “Boomzilla” because he steals shit he likes, sometimes flies his shit around, and gets his shit together, eventually.

(downloadable higher res)


Post a Comment

Subscribe to Post Comments [Atom]

<< Home