Code center > Suggestions

Cost for turning

(1/8) > >>

Numsgil:
Say you're a bot.  Right now, you can spin and spin in any direction in any amount for free.  This isn't quite realistic.  A better system could be formed.

Currently the system works like: Assume the bot is in a vacuum.  What mechanism does it use to turn?  well, the best answer is probably small compressed air cannons placed 90 degrees to either side of the bot.  These fire in tandem such that a net torque is produced. This torque starts the bot spinning.  These same cannons stop the bot at a designated angle.  This all happens betwen cycles.

Thus, bots have zero rotational velocity at any given cycle.

Question:

Do we want to keep it so that bots have zero rotational velocity during each cycle?  If we don't, then bots keep spinning after they 5 .aimdx store indefinately at some rotational speed.  This speed would slow down if they gain mass.  If we do, then a bot that is constantly spinning will be charged a much larger value of energy than need be for the starting/stopping.

There are pros and cons here.  Old bots would be broken if we have rotational momentum hold over between cycles.  .aimdx and .aimsx might need to be rewritten entirely to be the amount of energy you want to spend to spin instead of the amount of spin you want...

However, we would get to use some new physics things, and sneaking up on a bot from behind becomes a useful strategy, implying more stratagy in the hunt.

I'll write two different proposals for each method, so we can all see how they differ.

shvarz:
I like the new system, it is better for evolution sims.  But all you guys designing bots will have a difficult time...  

Numsgil:
I am increasingly wanting to pull the program in one direction, while the older bots try and stop me.  Trying to make the changes backwards compatible is quite a challenge.

I would favor changing turning to be applying energy to cause your bot to turn.  I'd love to have everything in the simulation using the new physics stuff.  While it's different from the old version, it makes adding new physics things quite natural and easy.

On the other hand, it usually involves me spending several hours re-learning my calc based physics stuff.

Are there any Newtonian Physicists in the house?

Numsgil:
This is what I've come up with:

The cost to turn a bot is:

4/5 *mass * radius * pi^3 * abs(delta aim) / 1256

where delta aim is aimdx - aimsx.

That gives rather large values for turning however.  I'll double check my work later tonight.

PurpleYouko:
[ABE] Message posted before the last one by Nums.
A more backward compatible method will be to assume that rotations include a rotational acceleration and a rotational deceleration at the correct point. This rotation can be charged for proportional to the bot's mass.

I like this system as it maintains the present system for doing stuff like precise angled MB construction.

However I also like the idea of using rotational momentum as that would allow a bot to continue rotating forever at a very small initial cost.

How about we use BOTH systems?

Keep the old way but add a small mass-anglechange-proportional charge for rotations.

Add new rotation commands that just add rotational acceleration without stopping at the other end. Cheaper to start rotating than .aimsx but less precise control as to the end point. This will work just like .up and .dn in that it applies a known amount of force which will be translated into motion by the program based on the mass of the robot.

Should be pretty easy to implement.

Navigation

[0] Message Index

[#] Next page

Go to full version