Sunday, December 18, 2011

Cricket, the toy robot that never was

I decided earlier this year to build a robot as a gift for a young relative. I've always found Braitenberg vehicles interesting and wanted to create a mobile robot with simple sensors and the ability to switch among several Braitenberg-type "personalities" (light-following, sound-avoiding, etc.).

Thus Cricket was born.

Cricket with, well, some things working.

Turns out I underestimated the chaos of the target environment, with multiple even younger siblings running around. Only a totally bombproof gift would work - which Cricket is not.

That, plus some irritating bugs I don't feel like ironing out, means Cricket is now abandonware. But not forgotten!


Testing the light pods.

Full details and more pics after the jump.


Friday, December 9, 2011

Hot glue FTW!

How did it take me so long to discover hot glue?!?!?! Everyone else smears it on their robots and projects, but somehow it never occurred to me to try it. As an inveterate epoxy user - what a revelation!

Sure, it can get messy. But the adhesive power, the (literal) flexibility, and the absolute trifle of time it takes to set up are mind-bottling.

I just built a set of contact bumpers for a small robot in about 10 minutes, including time to mount them on the robot itself. With epoxy I'd still be waiting for the bumpers to set up, then I'd have to mount them tomorrow and wait another day, and it'd still be fairly brittle.

Now I'm on the prowl for anything that needs gluing - just like way back in the day when I discovered duct tape. Thanks, hot glue gun! 

Wednesday, December 7, 2011

Neural networks part 2: Evolving a "living" robot

In my first post on neural networks, I discussed training the network using gradient descent - a pretty straightforward optimization method. This project took a completely different approach: evolving the network's weights with genetic algorithms

Our project team designed a virtual agent (robot) that learned to avoid obstacles while acting autonomously to "work" and "eat", maintaining its own internal conditions in proper balance like a living animal.

The virtual robot (green circle) navigates from the green "health" waypoint to the red "work" waypoint while avoiding the gray obstacles.

We started in simulation, planning to implement the working system on a physical robot, but ran out of time to get the hardware side functioning. C'est la vie robotique! We did make sure our virtual agent would use the same motor commands as the real robot, so the simulation wasn't completely disconnected from the real world.

Full details, including the multilevel control architecture we developed, after the jump.