There is currently a contest by Make Magazine to create a coaster bot. I'm not looking to really win or anything, but it is a good excuse to create a robot of some sort.
I've ordered a few parts such as a pair of motors, some wheels, and a bunch of hexes of steel and aluminum for structure support. Unfortunately I don't have much in the way of sensors so I'm not sure how I'm going to have it interact with the outside world. The only sensors I've ordered were a few ambient light sensors, but that doesn't really help with navigation other than perhaps telling the robot to stop when it becomes dark (because you're likely to be eaten by a grue).
Fortunately, sensors are really just devices that send some sort of electric signal when they "sense" something. Digital sensors will be basically an on-off sort of thing such as a sound impact sensor that detects loud sound changes like clapping. I'll need some sort of sensor to detect other objects so the robot can perform some sort of navigation.
Luckily, there's a simple sensor that I'm pretty sure I can build myself without buying an expensive sensor module. That is a touch sensor. The idea behind a touch sensor is to detect when the robot has basically run into something so that it can react to that in the future. I can do this by placing some pieces of material on the front of the robot that will bend slightly when the robot hits something, causing a piece of metal to complete a circuit and send a signal to the microcontroller.
If it looks like a hacked up ugly version of a large button, well it is. The idea is taken from the Lego Mindstorm kit that I played with in College. I should be able to find some scrap metal (maybe a washer or something) for the touch contact and another washer and some wire for the internals. I'm not sure what to make the touch arms out of yet, maybe some sort of wood or see if I have any plastic pieces laying around. Ideally I suppose I would use a part of a CD, but I don't have any good tools for cutting and working with them. I'll look into it though
The touch sensor design can be augmented for other uses as well. If you place a rod with a wheel attached to it on the underside of the front of the robot you can add an additional contact that will activate when that front wheel drops too low (such as when stairs or a ledge are encountered). It might not look pretty, but it won't look pretty if the robot falls and smashes either.
So the robot itself will need to be able to navigate a space, around objects and such, in order to qualify. The touch sensor is a good start on that path, but it might be unfortunate that the robot will only be able to avoid something after having rammed into it. My cat might not like this much.
Another aspect of the contest is that the robot needs to be able to accept additional sensors to help it navigate. That seems easy enough, though it's mostly on the programming side (the side I'm least worried about). Ideally I'll be able to acquire some range finders, either ultrasonic sonar or maybe some sort of laser range finder.
Of which, lasers eventually need to be involved. I'm not sure how or in what capacity, but lasers are cool.
So this is the start of my CoasterBot build. I've ordered the motors and a few wheels along with a bunch of other construction parts. I probably should have ordered more wheels but I'll manage I'm sure. I don't know what's going to come of it, but I'm sure it will be neat.