Darwinbots Forum

Code center => Suggestions => Topic started by: Numsgil on February 28, 2005, 01:12:49 AM

Title: Fixing Ties
Post by: Numsgil on February 28, 2005, 01:12:49 AM
I'm desperately trying to get a simple 2 or more cell multibot that can swim, either like a jelly fish or a regular fish.

Problem is the ties oscillate back and forth forever and ever.  I can fix that but it does help isolate a problem.

We need bones!  We need ties that aren't stretchy at all.  We can set their stress tolerances beyond which they snap.  Stifftie doesn't quite work well enough for this.

Also, I can't figure out how to get the little bugger to produce the motions of swimming.  Any ideas?

Anyone else ever try making a swimming bot?
Title: Fixing Ties
Post by: PurpleYouko on February 28, 2005, 09:04:35 AM
Ties are a pain in the butt.   :(

I have spent ages faced with this exact problem. Stifftie goes some way towards fixing the problem but doesn't quite cut it. The problem is that the stretchiness of ties imparts accelerations onto the robots. Most multibots just end up oscilating.

Try changing the tie length in Inchworm and you will see the problem.

Make it too long and his oscilation rate doesn't match the fix/unfix movement. make them too short and he won't move at all. It took a lot of trial and error to get that length just right. He actually uses the inter-robot repulsion field a lot in his design. The two robots cells actually bounce off each other even though you wouldn't know it to watch him move.

To my knowledge the only swimming worm ever made was Carlo's Vermis P and I am not even sure that it works in the latest version.

 :D  Py  :D
Title: Fixing Ties
Post by: Numsgil on February 28, 2005, 09:10:50 AM
Do you have Vermis P?  I've looked through my files I don't think I have it.  I'd love to get a look at how it works.
Title: Fixing Ties
Post by: PurpleYouko on February 28, 2005, 09:43:07 AM
I will post it up on the bestiary. You should have it though. It was packaged V2.1 installation.

 :D  PY  :D
Title: Fixing Ties
Post by: Numsgil on February 28, 2005, 10:07:19 AM
It doesn't work in any of the new versions.   :(   Installed the original 2.1 (wow have we come far!) to see how it was supposed to work.  I think the problem is in the bits of code that impart acceleration to MB's based on the velocity of its parts.

After the next release is done, and all the bugs cleaned up, I'll get to work on revamping the whole tie system.  The mathematics are fairly complex.  Good thing I've studied them already.   :sly:
Title: Fixing Ties
Post by: PurpleYouko on February 28, 2005, 12:35:18 PM
It worked OK in V2.3. I made a point of fixing it up so that it would.

We have come a long way haven't we?
V2.1 was the point where I took over the main programming.

 :D  PY  :D
Title: Fixing Ties
Post by: Numsgil on March 08, 2005, 12:38:37 AM
Okay, here's what I've brain stormed so far:

Ties aren't rubber bands, but more like shocks on a car.

Really good shocks anyway.

Each tie has a resting length, and a spring coefficient (for those familar with physics).  When you change the length of a tie you have to pay energy based on the potential energy of a spring equation (which I don't remember at the moment.  So sue me).

Changing the springiness of a tie costs some energy too.  Or maybe you have to set it when you fire it.

Pretty standard so far.  Nothing too new.  However, as a stretched spring applies force to its connected bots, it has another force that slows it as it approaches its length.

Like this:
|\..........
|.\.........
|..\........
|...\____
----------
0....5....1

Where y axis is velocity of a connected bot and the x axis is the length of the stretched tie.  Assume its natural length is about 1.

That should stop the ties from oscillating while still allowing them to stretch and apply forces to bots.

Also solves the problem of translating forces along a MB.  Bots that move stretch or shrink the tie, causing the tie to create forces on both the moving bot and the connected bot, which is itself translated along the MB.

Bones would just be a tie with a inhumanly large spring coefficient.

I've gone over the math for damped oscillation once before, so I'm somwehat familiar with the math.
Title: Fixing Ties
Post by: PurpleYouko on March 14, 2005, 09:08:22 AM
Sounds like you have a good plan there.

I had a brief go at stopping ties oscilating but it wasn't that successful.

I think we also need to remove any length fixing on temporary ties (or set the length to be whatever distance it starts at). Right now (in 3.0 beta) when a bot shoots a tie at a really close veggie they both spring violently apart. That is messed up and needs fixing.

 :D  PY  :D