ERP in BulletHingeConstraint is not changeable

Dear enn0x and colleagues

I have two questions on ERP (Error Reduction Parameter) in the hinge constraint using Bullet.

Question 1:
Is the definition of ERP originally from ODE (Open Dynamics Engine) ?
Of course, the bullet with Panda3d is from Bullet and the ERP is defined in bullet web site; … efinitions … f=9&t=6792

But the detail of ERP is not described in the URL above.
Here, I found the definition, which is the document of ODE written by Dr. Russell Smith and may be original

Would you think it is the original definition of ERP ?

Question 2:
ERP in BulletHingeConstraint is not changeable
I tried to set ERP using the code described below , according to the references … embers.php

And examined the change of ERP using joint.getParam().
Then I found ERP can not be changed.
I guess you have converted the code in C++ … nt.cxx#L46
into Python, and I refer to the source code.

Is my code wrong ?

joint = BulletHingeConstraint( jointA.node(), jointB.node(), pivotA2B, pivotB2A,	Vec3(0,1,0), Vec3(0,1,0) , True )
# parameters
erp = 0.1
stoperp = 0.2
cfm = 0.3
stopcfm = 0.4
# set each parameter
joint.setParam(BulletHingeConstraint.CPErp, erp)
joint.setParam(BulletHingeConstraint.CPStopErp, stoperp)
joint.setParam(BulletHingeConstraint.CPCfm, cfm)
joint.setParam(BulletHingeConstraint.CPStopCfm, stopcfm)

erp = joint.getParam(BulletHingeConstraint.CPErp) 
stoperp = joint.getParam(BulletHingeConstraint.CPStopErp) 
cfm = joint.getParam(BulletHingeConstraint.CPCfm)
stopcfm = joint.getParam(BulletHingeConstraint.CPStopCfm)
print "Erp = %f, StopErp = %f, Cfm = %f, StopCfm = %f" % (erp,stoperp, cfm, stopcfm)