Thursday, March 3, 2011

PID Loops

I've been playing around with the SF bug tracker - it really comes in handy!

Anyhoo, I think I found the cause of bug 3198106, which was starting to vex me. However, the solution is also elusive: Either we do a server side clipping of all contacts under, say, a Newton or we have the client report which ships should record contacts. Or maybe both. For instance, the testShip doesn't even have a function to deal with contacts, so no point sending the data across. But, as long as we don't crash them into each other, we should be safe ;)


Oh yes - Bullet, the physics library, does all collisions in terms of contact points. The Python files have callbacks for these contact points. For example, the torpedo uses it to acts as an explosive trigger. Bullet is running on the server, and the Python files are running on the client.


I think that 0.0.1 will be released at the end of Spring Break. When it is released, I want to have the destroyer model up and running. I also want to have MUCH BETTER PID LOOPS for every model.


Have I mentioned my bipolar view of PID loops? They are incredibly useful in ship control, so I love them. However, for some reason or another I can never get my PID loops to tune correctly, so I hate them. The average image of me trying to tune them is me sitting in front of my computer for hours (days?) on end, downing bottles of Advil along the way. I've tried to setup automatic PID loop tuners, but it didn't work too well. The one I tried is the 'PIDLS' in the torpedo.py and base/Ships/pid-trainer.py files. I'm considering empirically getting the response curves for the system and plugging that into a PID loop simulator (which are hard to find for free, so I'll have to write one), just so that I can get faster turnaround times.

No comments:

Post a Comment