I thought I might try and get some others opinions about this, as well as try and get a solid idea down to motivate myself.
The idea:
To create a creature/robot style thing that learns to walk (4 legs, not 2), within blender.
Using the game engine and just some simple constraints, I can make a critter with legs that can move them and push itself around. I’ll then use the logic blocks to link to a script and allow the critter to do things like tense or relax muscles.
Then the issue is building a control structure and learning environment. I am aiming at reinforcement learning, so that it starts with no knowledge and works out what to do based on trial and error.
I was wondering if anyone had any input or ideas about this
You may want to look at something like pyro for some inspiration as well. I haven’t read a lot about it, but its basically robotics control (including AI) written in python. There may be something there to study.
Very interesting idea:) Could be very tricky to pull it off though - do you have a method of making it know what’s the ‘right’ way of walking (could be tricky as it’s individual body parts don’t need to work against gravity in the GE), or is that going to be set as an exact objective, and it keeps trying different movements until it gets it right?
Good luck with this anyway, I’m sure it’ll be an interesting programming challenge:yes:
I am extremely interested in this! The work I’m doing on Siberia Complex is basically a study of the use of (currently just basic) A.I. concepts in 3D animation, and I would love to be kept in the loop with what you’re doing, and the results!
And I’ll be taking a look at Pyro, too. Never knew people were using Python for robotics:eek:
Hehe, easy challenges are never fun! (Sorry I didn’t reply before, you posted as I did )
do you have a method of making it know what’s the ‘right’ way of walking (could be tricky as it’s individual body parts don’t need to work against gravity in the GE)
I’ll have all of the body parts obey the laws of physics as far as I can. I’d like this to be a decent simulator for a real robot, so that the techniques I use could in theory be applied to a proper simulator and a real robot.
There will be no set way of walking, it will evaluate it’s progress based on how far it moves in the right direction. I’ll probably use distance to goal as a fitness evaluator to begin with.
I was thinking of using a type of reinforcement learning, but I’ve been reading a paper on using oscillating neurons, which was successfully used to train an AIBO to walk.
Excellent! I’ll try and keep this thread updated with progress, all files and information will be put under a gpl licence so everyone can use it (if anything works!). What is the Siberia Complex? Have you got a link to further info?
Ok, this is a very rough sketch of the kind of base mesh.
SCROLL DOWN FOR NEW FILE:
Sorry for the host, I can’t post attachments in this forum.
Press play, and space will tense all the muscles, to make it stand up. Friction stops it from a) spinning annoyingly and b) falling back down
EDIT - not re-upped, but that file is wrong, it spins because I mixed up two axes, hehe.
Edit - reupped.
Now, this has a control script, which I’ll explain properly sometime. Basically, there is a thigh and calf actuator (though unlike real muscles they can push as well as pull) for each leg. There is a “maxforce” variable which is constant over all muscles.
There is a simple set function, which lets you contract or extend any section of a limb. You need to do set(musclenumber,scaledforce)
where the muscle number is the place in the list created at the beginning, and scaled force is between -1 and 1 (extend, contract).
I’ve used numbers so that I can pipe the output of a neural net or something directly into the critter.
File:
See first post
Press ‘p’ to watch it flail around like a jellyfish.
SC is linked in my sig It’s basically a CG movie made as part of the testing of some rather unusual production methods; it relies a lot on teaching the computer to do heavy lifting in the task of making movies. It is only using very, very basic AI structures at the moment (natural language processing in manuscripts, basic environmental recognition, and some situational reaction), but more will be implemented on the road ahead. Much math and theory is proprietary owned (yes, apparently you can own the rights to mathematical formulas… sigh), so I am always on the look out for open source material to substitute parts with.
Wow, sounds cool I’ll check that out sometime today (I have all sigs blocked btw )
Edit - If you are having a problem with jerkiness, try to solve equations for the least effort expended. I was reading something a while ago where researchers created a much more realistic motion by making their robot lazy. If they made it move along paths that required the least effort, rather than the logical motion, it seemed much more ‘human’
That makes a lot of sense. I observed real people walk for a few days and the main thing I noticed is that real people barely lift their feet high enough to clear the ground when they are walking on paved surfaces. On rougher ground, they tend to lift their feet a little highter. (Observations on campus where a lot of people cut across the grass either leaving or entering sidewalk pavement.)
Yes, it can be a surprise to look closely at things we are used to do I am still very watchful about how people make sharp turns or shift direction entirely while walking; the foot-patterns are sometimes rather surprising.
And (simple) AI take that a step (pun unintended) further, because they do not learn by mimicking other people, as babies generally do. I read an interesting article on some university students making an AI fly (the insect). It was to learn using its wings by experimenting on its own to achieve a pre-set height above ground. What no one had thought about was the wingspan; the AI realized that it could simply ‘stand’ on its wings (they were simply designed as solid objects, not naturally frail wings), and it would automatically hold its body above the pre-set height! So rather than a flying bug, they got a fellow standing on ‘wing stilts’
As mentioned by a friend of mine, perhaps humanity is not smart enough to understand artificial intelligence; we should start with artificial stupidity
Hehehe, AI is immensely good at cheating. Anything you evolve is particularly cunning, and always finds some annoying little way past your fitness function.
Back on topic: I cannot download your file. The service keeps either plain out refusing me (I get a 404 with Explorer) or showing me an ad for IncrediMail (sigh) and then crashing my FireFox. Have you considered using FileWind instead, or is there some other way I can get a hold of the file?