Issues with 6 DoF joint drives


I use PhysX 2.8 and a 6 DOF configurable joint to drive the second actor with the functions driveOrientation() and drivePosition() of the joint. The problem is that PhysX applies first the driveOrientation and once it reaches the specified orientation, it applies the drive position. How to apply driveOrientation and drivePosition linearly?

I really need this to work !! Thanks for your help.

PS: Why does the driveOrientation is affected by the drivePosition? It’s really inconvenient… I have to put an offset in my drivePosition to cancel the translation created by the driveOrientation.

Bases on your description I can hardly judge whether the behaviour is inconvenient, but my mechanical engineering background tell me that it is convenient. Depending on your understanding of mechanical engineering, you might be able to draw a free-body-diagram and draw the reaction torques and forces on the bodies (for simplicity keep that drawing in 2D). Then I gues that you will see that the torque generate reaction force opposing to the desired movement. Once the desired orientation is reached, the torque is zero (the opposing force is zero) and the linear motion can start.

If you lake mechanical engineering skills (I guess you studied computer science) then you should be able to verify the above by making the revers rotation and the same motion. Then you will likely see the opposite happening: first the translation, then the rotation.

If that does not happen, which I doubt, lots of other things could be happening. It might be that the mass/inertia ratios and/or the translational/rotational stiffness’s are such that the translational motion is so slow that you do not note it at first. But as mentioned, your description is lacking details.

A solution might be to:
-limit the max torque such that the reaction force is less than the driving force
-increase the translational stiffness, though I do not remember if there is an independent stiffness for tras and rot, if not you could decouple the joints in a pure rot and trans joint (Meaning make two or more joints with each only one dof).
-gain some (or someone with) mechanical engineering skills. The more I wonder around in the world of physics engines the more I realize that each team should have some mechanical engineering skills.