Author Topic: Fixing Ties  (Read 4037 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Fixing Ties
« 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?
« Last Edit: February 28, 2005, 08:38:22 AM by Numsgil »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Fixing Ties
« Reply #1 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
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Fixing Ties
« Reply #2 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.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Fixing Ties
« Reply #3 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
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Fixing Ties
« Reply #4 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:

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Fixing Ties
« Reply #5 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
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Fixing Ties
« Reply #6 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.
« Last Edit: March 08, 2005, 12:39:26 AM by Numsgil »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Fixing Ties
« Reply #7 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
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D