FK-stewart enables to compute the solutions of the forward kinematics of a Stewart platform parallel robot.
Free source codes are available under Free Software Society conventions through anonymous ftp (download here).
This software is provided "as is" without warranty of any kind. In no event shall INRIA be liable for any loss of profits, loss of business, loss of use or data, interruption of business, or for indirect, special, incidental, or consequential damages of any kind, arising from any error in this software. No commercial use of this software can be made without the previous agreement of INRIA. The use of this software for any publication should acknowledged the contribution of INRIA.
Window system: none
Type: sources
Language: C
Number of lines: 4511
Size of binary: 0.47 Mo
Output: results, files, graphic output in xjpdraw format
This program enables to solve the forward kinematics problem for a Stewart platform (figure 1), i.e. being given the lengths l1, l2 of the 6 legs compute the position and orientation of the moving platform.
This problem has at most 12 solutions has demonstrated in [1]. From the initial set of 6 equations which gives the leg lengths as a function of the position/orientation of the moving platform we deduce an univariate polynomial (here of order 24) whose solution enable to compute the position/orientation of the moving platform.
A Stewart platform is defined in a mechanism file which contain the following data (see figure 2):
x1 y1 z11 z21 l1 x2 y2 z12 z22 l2 x3 y3 z13 z23 l3 xp1 yp1 zp1 xp2 yp2 zp2 xp3 yp3 zp3
Note that such file is compatible with the visualization program visu_robot also available via ftp.
When running the program you will be first asked the name of a file describing the mechanism.
Then you enter in the following menu:
number of assembly mode (input=position) :(0)? p1,p2,p3 angles :(1)? coefficient of polynomial :(2)? xjpdraw file of polynomial :(3)? number of assembly mode (input=lengths) :(4)?Using 0 the program will ask you a position/orientation, then it will compute the corresponding leg lengths and then solve the forward kinematics with these lengths (you should therefore find your initial position among the solutions).
Using 1 the program will ask you a position/orientation, then will display the corresponding leg lengths.
Using 2 the program will ask you a position/orientation, then will display the coefficients of the polynomial which has to be solved for the forward kinematics.
Using 3 you will have a graphical plot of the polynomial in the xjpdraw graphical format (xjpdraw is available via ftp). The program will ask you a position/orientation, then the range for the unknown of the univariate polynomial (which is here given in degree), then the number of point you want in the plot and eventually a file name. In the range you should not have 180 for which the unknown is not defined. To see the polynomial use the command:
xjpdraw -X 7 -Y 6 -F [file name]where the arguments of X, Y are the width and height of the box which will enclose the drawing.
Using 4 the program will ask you a for a set of leg lengths, three pairs of (l1 l2) and compute the position/orientation of the moving platform.