btAssert(found) in solveGroupCacheFriendlySetup function

Post Reply
norbie
Posts: 21
Joined: Mon Feb 11, 2013 1:57 pm

btAssert(found) in solveGroupCacheFriendlySetup function

Post by norbie »

Hi,

has anybody already bumped into btAssert(found) in btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySetup function?
We have created a ragdoll and for a "special" experiment we had to turn off collision on its rigidbodies. We used a picking constraint very similar to the one used in the bullet demos ( in DemoApplication::mouseFunc) and we received the above assert. When the collision detection was not turned off or I manually activated all rigid bodies at the time of picking the problem did not happen.
I have set up a relatively small experiment replacing the initPhysics function of GenericJointDemo with 3 boxes connected with 2 constraints. If the collision for these boxes is disabled or if the distance between them is large enough, the problem is reproducable grabbing the leftmost box after all the boxes are sleeping.
The code for the small experiment is attached.

For me it seems that if there is no collision and this way the island building is based on only the constraints, it is possible that such a "border" constraint is put to the island for which only RigidBodyA or RigidBodyB is in the island, but not both. Please see InplaceSolverIslandCallback::processIsland and btGetConstraintIslandId.

We are using the official 2.81rev2613.

Thanks.
Attachments
GenericJointDemo.cpp
(9.51 KiB) Downloaded 298 times
Post Reply