PyBullet: disable deterministic pairs by default

PyBullet: Only set static when sleeping is enables (todo: figure out issue with determinism)
This commit is contained in:
erwincoumans
2018-06-11 17:32:44 -07:00
parent ad0c7ecaa2
commit 62485abafe
2 changed files with 10 additions and 6 deletions

View File

@@ -333,11 +333,12 @@ void ConvertURDF2BulletInternal(
btRigidBody* linkRigidBody = 0; btRigidBody* linkRigidBody = 0;
btTransform inertialFrameInWorldSpace = linkTransformInWorldSpace*localInertialFrame; btTransform inertialFrameInWorldSpace = linkTransformInWorldSpace*localInertialFrame;
bool canSleep = (flags & CUF_ENABLE_SLEEPING)!=0;
if (!createMultiBody) if (!createMultiBody)
{ {
btRigidBody* body = creation.allocateRigidBody(urdfLinkIndex, mass, localInertiaDiagonal, inertialFrameInWorldSpace, compoundShape); btRigidBody* body = creation.allocateRigidBody(urdfLinkIndex, mass, localInertiaDiagonal, inertialFrameInWorldSpace, compoundShape);
bool canSleep = (flags & CUF_ENABLE_SLEEPING)!=0;
if (!canSleep) if (!canSleep)
{ {
body->forceActivationState(DISABLE_DEACTIVATION); body->forceActivationState(DISABLE_DEACTIVATION);
@@ -365,7 +366,7 @@ void ConvertURDF2BulletInternal(
if (cache.m_bulletMultiBody==0) if (cache.m_bulletMultiBody==0)
{ {
bool canSleep = (flags & CUF_ENABLE_SLEEPING)!=0;
bool isFixedBase = (mass==0);//todo: figure out when base is fixed bool isFixedBase = (mass==0);//todo: figure out when base is fixed
int totalNumJoints = cache.m_totalNumJoints1; int totalNumJoints = cache.m_totalNumJoints1;
cache.m_bulletMultiBody = creation.allocateMultiBody(urdfLinkIndex, totalNumJoints,mass, localInertiaDiagonal, isFixedBase, canSleep); cache.m_bulletMultiBody = creation.allocateMultiBody(urdfLinkIndex, totalNumJoints,mass, localInertiaDiagonal, isFixedBase, canSleep);
@@ -595,10 +596,13 @@ void ConvertURDF2BulletInternal(
} }
} else } else
{ {
if (cache.m_bulletMultiBody->getBaseMass()==0 && cache.m_bulletMultiBody->getNumDofs()==0) if (canSleep)
{ {
//col->setCollisionFlags(btCollisionObject::CF_KINEMATIC_OBJECT); if (cache.m_bulletMultiBody->getBaseMass()==0 && cache.m_bulletMultiBody->getNumDofs()==0)
col->setCollisionFlags(btCollisionObject::CF_STATIC_OBJECT); {
//col->setCollisionFlags(btCollisionObject::CF_KINEMATIC_OBJECT);
col->setCollisionFlags(btCollisionObject::CF_STATIC_OBJECT);
}
} }

View File

@@ -47,7 +47,7 @@ struct btDispatcherInfo
m_allowedCcdPenetration(btScalar(0.04)), m_allowedCcdPenetration(btScalar(0.04)),
m_useConvexConservativeDistanceUtil(false), m_useConvexConservativeDistanceUtil(false),
m_convexConservativeDistanceThreshold(0.0f), m_convexConservativeDistanceThreshold(0.0f),
m_deterministicOverlappingPairs(true) m_deterministicOverlappingPairs(false)
{ {
} }