27 September 2006

Robot or Not Robot?

Just throwing my 2 cents out here yet again. I expect there are a lot of different opinions in this area. This one just happens to be mine.

A robot mainly is a physical thing, though there is some room to call certain kinds of software 'robot' as well.

A robot isn't a robot unless it has some degree of autonomy. If you drive it around with a remote control, it isn't a robot; it's a remotely controlled car. It doesn't matter if it looks humanoid and walks around on two legs. Sure, balancing and arm waving and so forth is cool, and maybe it needs loads of processor power to do it, but balancing on two legs doesn't really amount to more than a fancy suspension/propulsion system. If it just goes where you tell it to with a remote, it's not materially different from an r/c car.

A robot isn't a robot unless it has some degree of state, which I think really amounts to the same thing as memory. For example, I have a kit that rolls forward until it senses an obstacle, at which point it backs to the left for a moment and then proceeds. Very simple behaviour and it's fun to watch, but it has only two states: (A) going forward, and (B) backing to the left. The transitions between these states are trivial. I think this category of device can be interesting, but it isn't really aware of anything. I guess I'm trying to say that a robot must have a sufficient number of states to represent an at least rudimentary awareness of its surroundings.

A robot shouldn't be expected to do it if you can't do it: Imagine you are sitting in an empty room. On the wall there are three lights, which are either ON or OFF. You also have two levers in front of you, which you can independently push forward or pull back. After some time playing with the levers, you might notice that you can predict when the lights will go on or off. Well, this pretty much describes the world of possible awareness that a typical plastic-brick-system robot has; the lights you see are the switch inputs, and the levers you control happen to connect to motors you know nothing about. If someone told you that the left lever moved a motor on the left side of an imaginary car, and the right one, a right side motor, and that the lights represented reflection off a paper map, you might be able to execute the classic line follower behaviour. BUT, and this is important - even if you were left with no explanation of what the levers connected to or what the lights meant, if someone gave you a list of Things To Do, with items like "when the left light goes ON, push the left stick forward and pull the right stick back; when no lights are on, push both sticks forward; etc.", you could execute the line-following algorithm just as well - and this is exactly the situation the little RCX finds itself in.


(It wouldn't be too hard to set up simulations like this, so that an un-informed human could be given such controls as a windows application, and these could connect to a simulated world that could be seen in a window on another computer, and all kinds of what-if scenarios could be played out.. )


A robot doesn't have to do everything, or even one thing as well as you might think. For example, suppose the neighbor's hypothetical cat keeps doing its, err, thing in my tomato patch. I could buy one of those motion-sensitive thingies that connect to a garden hose and blindly spray an area to keep such pests out. Well, this would probably suffice on my neighbor's cat, but suppose the cat were a little more cunning (and determined, one supposes), and could figure out where the sprayer thingy isn't getting things wet. Now the blind/dumb sprayer is ineffective. But what if it could aim? How would it aim? Do I need a full-blown computer vision system that recognizes the particular cat and whether it has burrs stuck on it today? No! It doesn't even need to recognize 'cats', or even 'animals', or know much of anything about the world, visually. It would suffice for it to be able to pick out the black-ish blob that moves in the image, and aim the hose accordingly. Now the cat wouldn't get away unsoaked, and the robot would be effective at its job, and would be minimally aware of its environment, insofar as knowing hey, there it is, there! no, there! or hmm, nothing to soak, stop the water

0 Comments:

Post a Comment

<< Home