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:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user