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