Newsgroups: comp.ai.genetic,comp.ai.alife,comp.ai.neural-nets
Path: cantaloupe.srv.cs.cmu.edu!nntp.club.cc.cmu.edu!godot.cc.duq.edu!news.duke.edu!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!pipex!uunet!hearst.acc.Virginia.EDU!murdoch!curry.edschool.Virginia.EDU!mws4k
From: mws4k@curry.edschool.Virginia.EDU (Michael Wade Snyder)
Subject: Re: Make a BattleMech Stand Up!
Message-ID: <CxIu2E.44I@murdoch.acc.Virginia.EDU>
Sender: usenet@murdoch.acc.Virginia.EDU
Organization: University of Virginia
References: <377rau$bu8@Venus.mcs.com>
Date: Tue, 11 Oct 1994 18:30:14 GMT
Lines: 82
Xref: glinda.oz.cs.cmu.edu comp.ai.genetic:3993 comp.ai.alife:1119 comp.ai.neural-nets:19391

milo@MCS.COM  writes:
> Greetings!
> 
> I'm the Chief Software Engineer at Virtual World Entertainment, Inc.  For 
> those who haven't heard of us, we are into Location Based Entertainment.
> Basically we operate a chain of stores where you can come in, hop into
> a simulator cockpit with over 100 working controls and play a simulation
> game against up to 8 people in a simulated 3D world.
> 
> So what's this got to do with anything?  Ok, one of our games is 
> BattleTech, combat between giant walking robots. (you may have seen
> our animated show saturday mornings on FOX, the FASA battletech game
> or something similar).  We're currently working on the next generation
> hardware/software system now and I have a small problem.  When one
> of these BattleMechs gets shot, or trips over something, it should
> fall down (obviously).  This is easy to handle with physics based 
> modeling so it looks good.  The trick is, once you fall down it would
> be nice if you could get back up again in a way that looks believable
> regardless of what position you landed in.
> 
> What I'm wondering is if anyone has any ideas on how you might use
> alife, genetic or neural nets to do this.  Basically we start out with
> a mech splayed out on the ground in some random position and we need to
> evolve a way for it to get back to it's feet.  The environment this 
> happens in isn't fully subject to all physical laws (we don't have
> the computer time to simulate EVERYTHING in real time).
> 
> Assuming this works out, the next step would be to come up with a 
> system that evolves a walking/running gait and makes the mech
> recover it's balance when pushed by a weapon's hit.  In the real
> world this would be darned hard...but I'm hoping that our ability
> to "cheat" the laws of physics in our simulation (ie: not having
> to worry about feet sliding on gravel...etc.) might make it possible.
> 
> So...anyone got any thoughts on this?  If so, please mail or call me
> about it.  Anyone who is willing to be of significant help can 
> pretty much look forward to a day of free games whenever they visit
> me in Chicago.
> 
> Greg Corson
> Chief Software Engineer
> Virtual World Entertainments, Inc.
> (312) 243-6515
> milo@mcs.com
> 


easiest solution, and the one I would put into a robot if my
virtual life depended on it:

Do what the best bugs do, when they find themselves on their
back or otherwise in a compromising position, they don't try
toerect themselves THE most efficent possible way- they haven't
the intelligence to figure it out.  But they know that a
certain sequence of arm flailing will generally produce a
general intermediate position from which exact movements follow
to right onesself.  For instance, if the Bot is humaniod in
form, rather than programing it with the acrobatic agility of a
gymnast/ninja/007/etc in order to get to its feet, simply
observe the following sequence (or appropriately cooler looking
varient) - push arms away from body ending up kinda spread
eagle like on the ground (doesn't matter exactly how) push one
arm backwards if you are mostly on your back if on your
stomachish, skip this step. This basically leaves you on your
stomach with arms out in some approximate position (exactness
doesn't matter).  Now bring arms near to sides and bent at
elbows, bend a knee and do a sort of push up type thing.  In
otherwords, use a series of gross movements that yeild a
general position from which a situp or squat thrust or whatever
is viable given an orientation- this is what babies do when
they learn to walk after they fall down.  They learned to get
up from a crawling position- so before they recover from a
fall, they roll over on their stomach, assume a crawling
position then go from there.  Of course, your machines would be
cool and assume a sprinters strating mark position instead,
then zoom off!  :)
	Don't forget, when hit by enemy (or friendly) fire,
don't run.  Stop.  Drop.  And Roll.  ;)

Good luck,
Miguel
University of Virginia
