btGeneric6DofConstraint Angular Motors/Friction
Posted: Mon Dec 05, 2011 12:54 pm
Hi,
I'm attempting to use the btGeneric6DofConstraint to simulate a ball/point2point constraint with friction by enabling the angular motors with a target velocity of zero. The problem comes when trying to simulate a 2D grid of constrained bodies:
So each body is constrained to the adjacent bodies with a pivot at the mid point. The constraint pivot frame is initially set to the world frame. With this setup, if a constraint rotates by greater than some small angle (~pi/4) the entire system becomes unstable. This doesn't appear to be related to the maximum force on the motors although it is eliminated by increasing the constraint solver iterations, presumably because this limits the angle achieved between bodies.
My assumption is that this is some euler angle related problem, but I can't reproduce the issue with ODE and as far as I'm aware the angular motors in Bullet are a port of the ODE motors. I wondered if this could be more to do with differences between the ODE quickstep solver and Bullet's sequential impulse?
I'm going to continue to investigate but if anyone had any thoughts it would be appreciated. I can post code later to reproduce the issue.
Thanks.
I'm attempting to use the btGeneric6DofConstraint to simulate a ball/point2point constraint with friction by enabling the angular motors with a target velocity of zero. The problem comes when trying to simulate a 2D grid of constrained bodies:
Code: Select all
B-B-B-B
| | | |
B-B-B-B
| | | |
B-B-B-B
| | | |
B-B-B-B
My assumption is that this is some euler angle related problem, but I can't reproduce the issue with ODE and as far as I'm aware the angular motors in Bullet are a port of the ODE motors. I wondered if this could be more to do with differences between the ODE quickstep solver and Bullet's sequential impulse?
I'm going to continue to investigate but if anyone had any thoughts it would be appreciated. I can post code later to reproduce the issue.
Thanks.