Joint chains, PhysX 3.2.x

I’m trying to create a joint chain which contains 6+ revolute joints. It seems pretty troublesome to make it stable tho.

Only time I can get the chain stable is if the actors got a density lower than 1.0 and a spring and force that exceeds 1000000.0

Any hints on what I’m doing wrong?

I made s spread sheet of some tests I was doing recently. I was testing for chained objects of sizes approaching or smaller than the suggested minimums as I want sizes to around 5mm. My units are PhysX defaults.

The test was anchoring the top end of the chain about 2 units up then swinging it in a broad arc and stopping abruptly at various speeds to judge stability. Stability to me is all objects come to rest within a few seconds without constant jumping around. I did allow the sphere to spin locally in place.

If I can, I will attach a spreadsheet with a few tests. The nomenclature consists of my local variables but should be readable. It would be nice to make a wiki or something with public contribution for material properties so we don’t continually reinvent the wheel. Btw, yes, those are decimal point moves on some gravity datums and there are extreme numbers to get what I wanted.

http://www.tkinnovations.net/physx/ch-material-stability-tests-b.xls

You should normalize the masses of the jointed actors to make sure they are within the 1-10 ratio. E.g an object of 1000000kg shouldn’t be jointed with one with its mass of 0.1kg, try to set them all at 1 kg first.

A PVD capture will make it easier for us to debug. Thank.

making a serial link with several joints is indeed very troubling, though very easy if you know what you want to optimize and whit what parameters you can tone it.

one thing you can optimize (and I think it is the best) is the so called ‘mass ratio’ of the cable. This means: assuming all cable elements have an identical mass (m1) and they carry a load (m2), what is the maximum ration m2/m1 under which the cable is still stable. (and yes it does not matter if the obtained by 1000/1 or 1/0.001). You can check some scientific research on this: http://www.computer.org/csdl/trans/tg/2008/04/ttg2008040783-abs.html

I think that the most important (not all!) tuning parameters to optimize the mass ration are:
-the nr of elements (double elements is about half the mass ratio)
-the length of the elements (double length is about double mass ratio)
-and the simulation time step. (decreasing the time step by a factor of 10 increases the mass ration by about a factor of 100)
(these results were obtained by simulation in PhysX 2.x and may not reflect in PhysX 3.x or other engines)

I hope this helps you a bit