diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletEngine.cpp b/SimDynamics/DynamicsEngine/BulletEngine/BulletEngine.cpp index eaf69f6783f499a7aa432d38d26073e244bc6903..0e14df2e2a5de4155f3bd9c56d04b48cb2c40208 100644 --- a/SimDynamics/DynamicsEngine/BulletEngine/BulletEngine.cpp +++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletEngine.cpp @@ -18,14 +18,14 @@ namespace SimDynamics bulletObjectDampingAngular = btScalar(0.85f); // bulletObjectDampingAngular = btScalar(0.1f); bulletObjectDeactivation = btScalar(5.0);//1.0); - bulletObjectSleepingThresholdLinear = btScalar(0.5f * BulletObject::ScaleFactor);//1.5); + bulletObjectSleepingThresholdLinear = btScalar(0.5f * BulletObject::ScaleFactor); bulletObjectSleepingThresholdAngular = btScalar(0.5f);//2.5); bulletSolverIterations = 250; bulletSolverGlobalContactForceMixing = 0.0; - bulletSolverGlobalErrorReductionParameter = btScalar(0.6);//0.1); + bulletSolverGlobalErrorReductionParameter = btScalar(0.6); bulletSolverSuccessiveOverRelaxation = btScalar(0.0); - bulletSolverContactSurfaceLayer = btScalar(0.001); + //bulletSolverContactSurfaceLayer = btScalar(0.001); bulletSolverSplitImpulsePenetrationThreshold = btScalar(-0.01); } @@ -681,6 +681,11 @@ namespace SimDynamics return false; } + if (object->getSimType() != VirtualRobot::SceneObject::Physics::eDynamic) + { + VR_WARNING << "Sim type of object " << object->getName() << "!=eDynamic. Is this intended?" << endl; + } + BulletRobot::LinkInfoPtr link = br->attachObjectLink(nodeName, object); if (!link) diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletEngine.h b/SimDynamics/DynamicsEngine/BulletEngine/BulletEngine.h index 4381f2d809ad7ca0c773c4b19820f40ac306dff0..2d77ad39f3ff6a12948182f874018669b48452dd 100644 --- a/SimDynamics/DynamicsEngine/BulletEngine/BulletEngine.h +++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletEngine.h @@ -61,7 +61,7 @@ namespace SimDynamics btScalar bulletSolverGlobalContactForceMixing; // allow to violate constraints (eg joint limits). A value>0 may increase stablity. (standard:0) btScalar bulletSolverGlobalErrorReductionParameter; // How hard should the solver try to correct misaligned joints/constraints/links. (standard 0.2 btScalar bulletSolverSuccessiveOverRelaxation; - btScalar bulletSolverContactSurfaceLayer; + //btScalar bulletSolverContactSurfaceLayer; btScalar bulletSolverSplitImpulsePenetrationThreshold; }; diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletObject.cpp b/SimDynamics/DynamicsEngine/BulletEngine/BulletObject.cpp index 4f97e7b084393e496107102f151a8d644a563011..0b414e148aff98cf25647533bd15f1643613166b 100644 --- a/SimDynamics/DynamicsEngine/BulletEngine/BulletObject.cpp +++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletObject.cpp @@ -287,7 +287,7 @@ namespace SimDynamics this->rigidBody->setWorldTransform(BulletEngine::getPoseBullet(poseGlobal)); // notify motionState -> not needed, automatically done - //motionState->setGlobalPose(pose); + motionState->setGlobalPose(pose); } void BulletObject::setPose(const Eigen::Matrix4f& pose)