diff --git a/src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp b/src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp index 3d0f45b77..86c7d3a74 100644 --- a/src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp +++ b/src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp @@ -25,7 +25,7 @@ btMultiBodyJointMotor::btMultiBodyJointMotor(btMultiBody* body, int link, btScal :btMultiBodyConstraint(body,body,link,body->getLink(link).m_parent,1,true), m_desiredVelocity(desiredVelocity), m_desiredPosition(0), - m_kd(0.1), + m_kd(1.), m_kp(0) { @@ -56,7 +56,7 @@ btMultiBodyJointMotor::btMultiBodyJointMotor(btMultiBody* body, int link, int li :btMultiBodyConstraint(body,body,link,body->getLink(link).m_parent,1,true), m_desiredVelocity(desiredVelocity), m_desiredPosition(0), - m_kd(0.1), + m_kd(1.), m_kp(0) { btAssert(linkDoF < body->getLink(link).m_dofCount); @@ -125,13 +125,7 @@ void btMultiBodyJointMotor::createConstraintRows(btMultiBodyConstraintArray& con btScalar currentVelocity = m_bodyA->getJointVelMultiDof(m_linkA)[dof]; btScalar positionStabiliationTerm = (m_desiredPosition-currentPosition)/infoGlobal.m_timeStep; btScalar velocityError = (m_desiredVelocity - currentVelocity); - btScalar rhs = m_kp * positionStabiliationTerm + m_kd * velocityError; - printf("m_kd = %f\n", m_kd); - printf("m_kp = %f\n", m_kp); - printf("m_desiredVelocity = %f\n", m_desiredVelocity); - printf("m_desiredPosition = %f\n", m_desiredPosition); - printf("m_maxAppliedImpulse = %f\n", m_maxAppliedImpulse); - printf("rhs = %f\n", rhs); + btScalar rhs = m_kp * positionStabiliationTerm + currentVelocity+m_kd * velocityError; fillMultiBodyConstraint(constraintRow,data,jacobianA(row),jacobianB(row),dummy,dummy,dummy,posError,infoGlobal,-m_maxAppliedImpulse,m_maxAppliedImpulse,1,false,rhs); diff --git a/src/BulletDynamics/Featherstone/btMultiBodyJointMotor.h b/src/BulletDynamics/Featherstone/btMultiBodyJointMotor.h index e433515d4..a8bcf606c 100644 --- a/src/BulletDynamics/Featherstone/btMultiBodyJointMotor.h +++ b/src/BulletDynamics/Featherstone/btMultiBodyJointMotor.h @@ -45,13 +45,13 @@ public: btMultiBodyJacobianData& data, const btContactSolverInfo& infoGlobal); - virtual void setVelocityTarget(btScalar velTarget, btScalar kd = 0.1f) + virtual void setVelocityTarget(btScalar velTarget, btScalar kd = 1.f) { m_desiredVelocity = velTarget; m_kd = kd; } - virtual void setPositionTarget(btScalar posTarget, btScalar kp = 0.1f) + virtual void setPositionTarget(btScalar posTarget, btScalar kp = 1.f) { m_desiredPosition = posTarget; m_kp = kp;