More on Featherstone's ABM

Please don't post Bullet support questions here, use the above forums instead.
Stelian
Posts: 4
Joined: Sat Sep 08, 2007 4:55 am

More on Featherstone's ABM

Post by Stelian »

Hi,

I am sorta new to the Physical simulation field, but I am loving it. I started working on an implementation of Feathersone's ABM, and so far it's going pretty well. I implemented the basic algorithm that treats multiple dof joints by adding fake, zero length links in between and that works quite well. I am now trying to switch to using motion subspaces in order to actually simulate multiple dof joints (I made sure to change the d term to a matrix, etc, and all the dimensions of the matrices match), but I got stuck here - it looks wrong but I am not sure how to debug it. I was wondering if any of you have managed to get that working. If you have any pointers to papers or other resources (I already looked at Featherstone's '87 book) that talk about this, I would appreciate it if you would let me know about it.

Thanks,
Stelian
Erin Catto
Posts: 316
Joined: Fri Jul 01, 2005 5:29 am
Location: Irvine

Re: More on Featherstone's ABM

Post by Erin Catto »

I recommend looking at Brian Mirtich's dissertation (try Google). Also, he provided some source code you can find here:

http://www.kuffner.org/james/software/
Stelian
Posts: 4
Joined: Sat Sep 08, 2007 4:55 am

Re: More on Featherstone's ABM

Post by Stelian »

Thanks for the link. I did actually look over his dissertation, but it seems that he doesn't use motion subspaces either. I was also wondering if the method Vangelis proposed in his 2004 GDC paper would work for 'real' (i.e. not the zero length links trick) multiple dof joints.
Erin Catto
Posts: 316
Joined: Fri Jul 01, 2005 5:29 am
Location: Irvine

Re: More on Featherstone's ABM

Post by Erin Catto »

By motion space joints, do you mean using a map from multiple joint coordinate speeds to the attached bodies' relative velocity? If so, I have used this method, so perhaps I can help.
Stelian
Posts: 4
Joined: Sat Sep 08, 2007 4:55 am

Re: More on Featherstone's ABM

Post by Stelian »

Thanks for the reply. I'm not quite sure where to start, but I'll try to see if I am on the right track. Featherstone uses the term motion subspace to map multiple dof velocities to the relative velocity, like you said. So with that, the relative velocities can be written as S * qDot, where S is 6xn, qDot is nx1 and n is the number of dofs for the joint. The tricky part is that now S is not a constant anymore, so its rate of change must be taken into account throughout the algorithm. Featherstone does provide the corresponding expression for S for some common joints, but he doesn't explain why that's the format. Also, he uses an inner and outer coordinate frame for each joint which causes the S values to be different than those used by Brian Mirtich. So I guess, one of my many questions is, do you happen to know how to compute the correct values for S? Also, are the values in Sdot just the element wise derivatives of S?

Stelian
Stelian
Posts: 4
Joined: Sat Sep 08, 2007 4:55 am

Re: More on Featherstone's ABM

Post by Stelian »

I'll ask another question, because this might help me debug my program a little more. Would you expect the articulated inertia of the root (you would still want to compute that for floating linkages) to be (mostly) the same no matter which strategy you use to handle multiple dof joints (zero length, zero mass fake links vs multidimensional S spatial vectors)?