<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/11696" />

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2017-05-19T17:27:09+00:00</updated>

	<author><name><![CDATA[Real-Time Physics Simulation Forum]]></name></author>
	<id>https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/11696</id>

		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2017-05-19T17:27:09+00:00</updated>

		<published>2017-05-19T17:27:09+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39374#p39374</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39374#p39374"/>
		<title type="html"><![CDATA[Re: What is the meaning of parameter Kcfm  in PGS Formulatio]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39374#p39374"><![CDATA[
This might be unrelated to the soft parameters. Normally we solve for a relative velocity of zero at a contact point or limit, but you can also imagine to solve to revert some of the approaching velocity to model bouncy contacts (e.g. a ball) or limits.<br><br><a href="https://en.wikipedia.org/wiki/Coefficient_of_restitution" class="postlink">https://en.wikipedia.org/wiki/Coefficie ... estitution</a><p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Fri May 19, 2017 5:27 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Jack2016]]></name></author>
		<updated>2017-05-19T04:48:16+00:00</updated>

		<published>2017-05-19T04:48:16+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39372#p39372</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39372#p39372"/>
		<title type="html"><![CDATA[Re: What is the meaning of parameter Kcfm  in PGS Formulatio]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39372#p39372"><![CDATA[
<blockquote class="uncited"><div><a href="http://box2d.org/files/GDC2011/GDC2011_Catto_Erin_Soft_Constraints.pdf" class="postlink">http://box2d.org/files/GDC2011/GDC2011_ ... raints.pdf</a></div></blockquote>Thanks, Drik<br><br>The Paper &lt;&lt;Soft Constraints&gt;&gt; by Erin is very helpful to me.<br><br>I also find the entire derivation about softness post by Erin <a href="https://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=4&amp;t=1354" class="postlink">https://bulletphysics.org/Bullet/phpBB3 ... f=4&amp;t=1354</a><br><br>v2new = v2damaged + invM * JT * dP <br>J * (v2damaged + invM * JT * dP) + softness * P + softness * dP + bias = 0 <br><br>(J * invM * JT + softness) * dP = -(J * v2damaged + softness * P + bias)<br><br>the softness is CFM<br><br>But I'm still not clear about the parameter 'restitution' which is about damping.<br>'restitution' is not in the Formula above,any one can make it clear ? thanks<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=11805">Jack2016</a> — Fri May 19, 2017 4:48 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2017-05-18T19:49:37+00:00</updated>

		<published>2017-05-18T19:49:37+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39371#p39371</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39371#p39371"/>
		<title type="html"><![CDATA[Re: What is the meaning of parameter Kcfm  in PGS Formulatio]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39371#p39371"><![CDATA[
<a href="http://box2d.org/files/GDC2011/GDC2011_Catto_Erin_Soft_Constraints.pdf" class="postlink">http://box2d.org/files/GDC2011/GDC2011_ ... raints.pdf</a><p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Thu May 18, 2017 7:49 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Jack2016]]></name></author>
		<updated>2017-05-19T05:23:28+00:00</updated>

		<published>2017-05-17T03:11:47+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39366#p39366</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39366#p39366"/>
		<title type="html"><![CDATA[What is the meaning of parameter Kcfm  in PGS Formulation?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=39366#p39366"><![CDATA[
I read K.Erlenben book &lt;&lt;Stable,Robust And Verstile&gt;&gt; Chapter 6  to learn the PGS in Bullet<br><img src="https://pic3.zhimg.com/v2-5d4c969b50737691ca85e915627f154a_b.png" class="postimage" alt="Image"><br><br><img src="http://bulletphysics.org/Bullet/phpBB3/download/file.php?id=1348" class="postimage" alt="Image"><br>When I see the src code in Bullet, I think the Result of the Equation is the Constraint Force Fc*deltaT = dP (delta Impulse).<br>But I can't understand the param 'Kcfm' in the formulation above,constraint force mixing,it's a diagonal matrix in vector form<br>Which paper is about 'Kcfm'?<br><br><img src="https://pic1.zhimg.com/v2-02b75daf555ab5ed5b13b13b80eea77c_b.png" class="postimage" alt="Image"><br><div class="codebox"><p>Code: </p><pre><code>void tbSequentialImpulseConstraintSolver::ResolveSingleConstraintRowLowerLimit(tbSolverBody&amp; body1, tbSolverBody&amp; body2, const tbSolverConstraint&amp; c){tbScalar deltaImpulse = c.m_rhs - tbScalar(c.m_appliedImpulse)*c.m_cfm;const tbScalar deltaVel1Dotn = c.m_contactNormal.Dot(body1.m_deltaLinearVelocity) + c.m_relpos1CrossNormal.Dot(body1.m_deltaAngularVelocity);const tbScalar deltaVel2Dotn = -c.m_contactNormal.Dot(body2.m_deltaLinearVelocity) + c.m_relpos2CrossNormal.Dot(body2.m_deltaAngularVelocity);deltaImpulse -= deltaVel1Dotn*c.m_jacDiagABInv;deltaImpulse -= deltaVel2Dotn*c.m_jacDiagABInv;const tbScalar sum = tbScalar(c.m_appliedImpulse) + deltaImpulse;if (sum &lt; c.m_lowerLimit){deltaImpulse = c.m_lowerLimit - c.m_appliedImpulse;c.m_appliedImpulse = c.m_lowerLimit;}else{c.m_appliedImpulse = sum;}if (body1.m_invMass &gt; tbScalar(0.))body1.ApplyImpulse(c.m_contactNormal*body1.m_invMass, c.m_angularComponentA, deltaImpulse);if (body2.m_invMass &gt; tbScalar(0.))body2.ApplyImpulse(-c.m_contactNormal*body2.m_invMass, c.m_angularComponentB, deltaImpulse);}</code></pre></div><div class="codebox"><p>Code: </p><pre><code>tbScalar restitution = 0.f;tbScalar positionalError = solverConstraint.m_rhs;//already filled in by getConstraintInfo2tbScalarvelocityError = restitution - rel_vel;// * damping;tbScalarpenetrationImpulse = positionalError*solverConstraint.m_jacDiagABInv;tbScalarvelocityImpulse = velocityError *solverConstraint.m_jacDiagABInv;solverConstraint.m_rhs = penetrationImpulse + velocityImpulse;solverConstraint.m_appliedImpulse = 0.f;</code></pre></div>In the Formulation above,I'm clear about the posErr and velocityErr,But Berror doesn't have the param 'restitution',<br>so what's the meaning of 'restitution' and which paper is about it.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=11805">Jack2016</a> — Wed May 17, 2017 3:11 am</p><hr />
]]></content>
	</entry>
	</feed>
