PyBullet: rename sleepObjectAutoDeactivation -> sleeping.py

PyBullet: allow maximal coordinate rigid bodies to sleep/deactivate
This commit is contained in:
erwincoumans
2018-05-30 21:14:35 -07:00
parent 150a0e050e
commit 8567f6bb7c
3 changed files with 10 additions and 4 deletions

View File

@@ -33,7 +33,7 @@ class btRigidBody* MyMultiBodyCreator::allocateRigidBody(int urdfLinkIndex, btSc
btRigidBody::btRigidBodyConstructionInfo rbci(mass, 0, colShape, localInertiaDiagonal);
rbci.m_startWorldTransform = initialWorldTrans;
m_rigidBody = new btRigidBody(rbci);
m_rigidBody->forceActivationState(DISABLE_DEACTIVATION);
return m_rigidBody;
}

View File

@@ -337,6 +337,12 @@ void ConvertURDF2BulletInternal(
if (!createMultiBody)
{
btRigidBody* body = creation.allocateRigidBody(urdfLinkIndex, mass, localInertiaDiagonal, inertialFrameInWorldSpace, compoundShape);
bool canSleep = (flags & CUF_ENABLE_SLEEPING)!=0;
if (!canSleep)
{
body->forceActivationState(DISABLE_DEACTIVATION);
}
linkRigidBody = body;
world1->addRigidBody(body);

View File

@@ -2,15 +2,15 @@ import pybullet as p
import time
useMaximalCoordinates=False
flags = 0#p.URDF_ENABLE_SLEEPING
flags = p.URDF_ENABLE_SLEEPING
p.connect(p.GUI)
p.configureDebugVisualizer(p.COV_ENABLE_RENDERING,0)
p.loadURDF("plane100.urdf",flags=flags, useMaximalCoordinates=useMaximalCoordinates)
#p.loadURDF("cube_small.urdf", [0,0,0.5], flags=flags)
for k in range (10):
for i in range (10):
for k in range (5):
for i in range (5):
r2d2=p.loadURDF("r2d2.urdf",[k*2,i*2,1], useMaximalCoordinates=useMaximalCoordinates, flags=p.URDF_ENABLE_CACHED_GRAPHICS_SHAPES+flags)
for j in range (p.getNumJoints(r2d2)):
p.setJointMotorControl2(r2d2,j,p.VELOCITY_CONTROL,targetVelocity=0)