Links: [ home | thesis ]

FAQ: M.S. Thesis: Stewart Platform with Fixed Actuators


Excerpt from thesis:

From an e-mail:

This is where I have the problem

I would want to know what dg(si)/ds is bcos this is what I have assumed from the equation 20 that dR/dqj is a 4*4 matrix like dR/dx then dR/dy and so on till gama.. given by (numbers) 14,15,16,17,18,19 and.. pi is the position given by equation 5 .. and dg/ds I have taken as given by (number) 12… so according to this then.. we have a 4*1 matrix multiplied by a 4*4 matrix multiplied by a 4*1 matrix which is not possible to get a single value…. So if you culd help me with this it wuld be really of great importance to me……


Hij = dG(s[i]) / dq[j]
    = {dG(s[i]) / ds}' * { dR / dq[j] } * p[i]
    = {    4x1      }  * {    4x4     }  {4x1}

{dG/ds} should be transposed{dG/ds} = [1x4], as per eq.(12)
Notice that e.q.(12) bottom-right number should be 0, so that final result in the 4-th row is 1.

My Matlab source code is available at
look at SPREADME.m, batch02.m, and especially SPForFA.m that calculates forward kinematics for platform with Fixed Actuators.

In SPForFA.m, 3-dimensional matrices were used. For instance, in the code there is R[4x4], q[6x1], then dR/dq=[6x4x4] (equations (14)-(19) each give a 4x4 matrix, which stacked together give 6x4x4) In Matlab code, [6x4x4] is practically arranged as [24x4].


You don't have to read the rest of this message: It explains how the Matlab code calcuates forward kinematics.

The variable names are different than in the thesis:

Thesis -->  Matlab variable
------      -------
b  -->  b
p  -->  p
s  -->  q
l  -->  lengths
R  -->  R
H  -->  G
q  -->  x
dR/dq --> dR
dR/dq*p --> dq

Calculating inverse Jacobian G(i,j):

i :  1..6 = actuator number
j :  1..6 = x,y,z,alpha,beta,gamma = pose coordinate