About Me

I'm just someone struggling against my own inertia to be creative. My current favorite book is "Oh the places you'll go" by Dr. Seuss

Saturday, March 22, 2008

Live Robot Walking; Another AI thought.

Lots of people have tried and failed to make robots walk upright on two legs. Those that have succeeded, made a robot that walks stiffly, and rather unnaturally. What makes me think that I can do better? I have no idea. In fact, no, I can't. But at the same time, I can't help but have ideas about how I would tackle the problem.

Because while it's apparently difficult to make a physical robot walk, I have seen a number of computer physics simulations where a simulated spring based robot seems to have no problem walking. It's possible, even if the simulations cheat to make it happen.

This is how humans walk though, in a sense. We have in our minds a physics simulation, with a simulated image of ourselves within it. Before we're able to walk as children, we simulate countless times the image of ourselves walking. We attempt to walk, and compare the results to our physics simulation, and adjust our image of physics to closer match reality. In fact, we may even adjust our image of ourselves, and the weight, length and size of our limbs to try and match the results that our senses have delivered to us.

I think to make a robot walk it needs a few things: the program controlling it needs a simulation of the robot's body configuration, and its environment. The robot needs some sensors, such as an accelerometer, to deliver to the program its physical orientation, and the configuration of its limbs. An attempt at walking must be made, perhaps random at first, and the results of an attempt must be compared to the results of the same attempt in the simulation, and in particular the simulations simulated sensors.

Then the physical simulation can be adjusted such that the simulated sensors match the results of the real sensors. Then multiple simulated attempts at walking take place, until something resembling a successful walk is achieved. It is then attempted in the real robot, the results are recorded and fed back into the simulation. One might use a number of different methods for getting the physics simulations to match the results of the real robot: Genetic, Neural network, etc. But the fact is, the more data one can get about the results of the real physics, the closer one can get the simulated physics- AT least, for this one domain: Walking.

I don't know how many iterations of practice, and real attempts it would take to make a robot walk. But research has shown that this process of repeatedly imagining ourselves doing a task, does considerably speed the time it takes for a human to aquire this task. So it stands to reason, that simulating this process in an AI, for a robot may have the same effect.

2 comments:

Maksim Lin said...

sorry Breton, but I think the flaw in that reasoning is that computer simulations are just that - simulations. Simulations only mimic reality up to a certain point. Programs that you see ont he computer (your springs example) are only simulating reality to some approximation, usually by leaving out a lot of small-order effects(eg. friction). However its often a combination of these along with effects that you didn't even know you needed to take into account in your simulation that foil machines in the real world.
There is actually a whole field of engineering (and associated field of maths) called control-systems and control theory that covers the issues involved in everything from simple systems such as single motors all the way through to complex robotics systems such as those need for a walking machine.
Now while alot of good progress has been made in these fields by applying newer concepts from theories like neural networks and fuzzy logic that in no way mean that things like robot-walking can somehow me magically solved with "machine learning". The biggest irony is that most of the mechanisms by which "neural network" software works actually come back to the core principles from classical control theory!

Maksim Lin said...

And just to get you started:
http://en.wikipedia.org/wiki/Control_theory

http://en.wikipedia.org/wiki/Control_systems