featherstone ABA in Bullet

Please don't post Bullet support questions here, use the above forums instead.
r_kh
Posts: 1
Joined: Sun Nov 05, 2017 7:02 pm

featherstone ABA in Bullet

Post by r_kh »

Hi,

i'm trying to implement Featherstone's ABA so i decided to read Bullet implementation and came across this expression

Code: Select all

	//...
	//zeroAccSpatFrc[i+1].setVector(-(rot_from_world[i+1] * linkAppliedTorque), -(rot_from_world[i+1] * linkAppliedForce ))
	//...


	zeroAccSpatFrc[i+1].addVector(
		angDampMult * m_links[i].m_inertiaLocal * spatVel[i+1].getAngular() * (DAMPING_K1_ANGULAR + DAMPING_K2_ANGULAR * spatVel[i+1].getAngular().safeNorm()),
		linDampMult * m_links[i].m_mass * spatVel[i+1].getLinear() * (DAMPING_K1_LINEAR + DAMPING_K2_LINEAR * spatVel[i+1].getLinear().safeNorm())
					);


	//...
	//zeroAccSpatFrc[i+1].addAngular(spatVel[i+1].getAngular().cross(m_links[i].m_inertiaLocal * spatVel[i+1].getAngular()));				
	//zeroAccSpatFrc[i+1].addLinear(m_links[i].m_mass * spatVel[i+1].getAngular().cross(spatVel[i+1].getLinear()));
	//...
which doesn't appear in featherstone's book

i understood this is sort of damping from constant names but where does this come from?
Dirk Gregorius
Posts: 861
Joined: Sun Jul 03, 2005 4:06 pm
Location: Kirkland, WA

Re: featherstone ABA in Bullet

Post by Dirk Gregorius »

IIRC the squared omega (angular velocity) terms lead to simulation instabilities in practice. So Bullet added damping to improve stability.