Forward Kinematics applies to a chain of jointed objects. Given the angles of the joints, and the distances between them, we want to find the the position of the end point.
Data Structure (using matrix)
If we have the following transforms:
- [Ta]=matrix to transform the joint at the end of link a in local coodinates of link a.
- [Tb]=matrix to transform the joint at the end of link b in local coodinates of link b.
- [Tc]=matrix to transform the calculated end point in local coodinates of link c.
Then the position of the calculated end point in world coordinates is given by multiplying the matrices together:
[Ta][Tb][Tc]
Data Structure (not using matrix)
We can store the relative positions and orientations of the links in a scenegraph.
We can combine translation and rotation without using matrices as described on this page.
- Rtotal = Ra Rb
- Ctotal = Cb
- Ttotal = Ra (Cb + Tb - Ca) + Ca + Tb - Cb
Therefore the parameters for all 3 links gives:
- Rtotal = Ra Rb Rc
- Ctotal = Cc
- Ttotal = Ra (Cb + (Rb (Cc + Tc - Cb) + Cb + Tc - Cc) - Ca) + Ca + (Rb (Cc + Tc - Cb) + Cb + Tc - Cc) - Cb
For a more detailed suggestion of how to store this information see these pages.
n-link algorithm
So what is the code or algorithm for calculating the endpoint in an n-link
chain:
- Rtotal = R1 R2 ... Rn
- Ctotal = Cn
- Ttotal = ???
Can you help me here?