You are on page 1of 10

A test case for modelling PKMs with generic architectures in a 3D simulation environment

Ferdinando Milella SimX Ltd., 8 Exchange Quay, Salford, Gr. Manchester M5 3EJ, UK f.milella@simx.co.uk

Abstract: Parallel machines are increasingly used in a large number of applications. Currently there is no commercial software able to provide a user-friendly and effective environment for simulating and modelling the wide variety of kinematic arrangements in which parallel mechanisms can be designed. In order to provide such a tool a technique to model and simulate parallel machines with little effort is presented. The related procedure has been integrated and tested in Visual Components 3DCreate simulation software. The method is based on the formulation of parallel machine kinematics in terms of Product-of-Exponential formulae (PoE) and has been tested on the 3 DOF manipulator of VERNE, a machine-tool designed and built by Fatronik. Results show that accuracy and computation time of the proposed inverse kinematics algorithm make it suitable for demanding applications such as real-time control and micromachining. Keywords: Parallel kinematic machines, inverse kinematics, robot simulation, robot modelling, digital manufacturing

1. INTRODUCTION PKMs (Parallel Kinematic Machines) are increasingly used in applications such as highperformance cutting and micromachining because of their advantageous intrinsic features. In comparison with robots with serial kinematics architecture PKMs have the characteristics of higher payload/own weight ratio, greater rigidity, improved accuracy and finer resolution. The main disadvantage of parallel machines is a smaller workspace, which is the reason why the design of a PKM is, in most cases, applicationoriented [Merlet, 1997]. Nowadays PKMs are designed and built in many different ways in order to perform the task at hand. This poses a formidable problem for the development of a general purpose program able to simulate different types of parallel machines and robots. The analytical formulation of forward and inverse kinematics of any mechanical system with parallel topology usually involves a lengthy synthesis of the related equations. Currently there is no commercial software available to help designers to perform comparative evaluations of PKMs potentially suitable for a specific application. The only affordable way is still to rely on personal experience and related scientific/technical literature.

In this paper a method is presented which is suitable to simulate the majority of PKMs by automatic synthesis of their kinematic model. The method is based on the generic numerical inverse kinematics algorithm proposed in [Chen et al., 1999] to control modular reconfigurable robots with standardized components. The generic kinematic model is obtained through differential equations of the kinematics in form of productof-exponentials (PoE). This type of formulation embodies all the advantages derived by describing body kinematics according to the principles of the Screw Theory [Park, 1994] [Selig, 2005]. Lie Algebra transformations are applied to the PoE formulae to obtain a linear system of equations which can be solved with the Newton-Raphson iteration method. A graph representation of the machine assembly configuration is used to generate automatically the PoE-based formulation through the related accessibility matrix and path matrix. Test results in [Chen et al., 1999] show how the algorithm applied to modular robots is more efficient and stable than similar ones described in literature [Kelmar et al., 1988]. However, in that work only tree-typed structures with open kinematic chains have been considered. The test case examined here shows how this technique can be extended to the more general case of kinematic structures with closed loops. The inverse kinematics algorithm has been implemented in C++ and tested for computational performance in terms of accuracy, calculation time and convergence. Results confirm that in the conFigure 1; The VERNE machine-tool sidered case the PoE-based IK solver is more accurate and stable than traditional ones based on the Jacobian matrix that relates the robot joint-velocities to the kinematic screw associated with the end-effector. Even with machine configurations close to singularities it is possible to achieve with a few iterations calculation errors no greater than 1/10 m, which is within the tolerances required for micromachining. The calculation time is always below 20ms, which makes the method suitable for real-time control applications as well.

2. THE VERNE MACHINE As described in [Kanaan et al., 2007], VERNE is a 5-axis machine-tool designed by the Spanish company Fatronik for IRCCyN CNRS. The machine tool consists of a parallel 3-P-(S-S)2 mechanism and a tilting table as shown in Figure 1. A schematic drawing of the parallel mechanism is shown in Figure 2. The spindle is placed at the centre of the moving platform (point P) and the working piece is set at the tilting table, not drawn in Figure 2 for simplicity. The tilting table is used for orientation, while the parallel 3-P(S-S)2 mechanism provides mostly translational motions to the spindle. The movement

L3

L1 L2

xp zp

yp

Figure 2; Schematic drawing of VERNE PKM

Figure 3; Geometric parameters of the parallel manipulator of VERNE

of the platform is accomplished by three vertical linear actuators. The vertices of the platform are connected to the linear actuators through three pair of legs, indicated with , and . Legs in pair I are non-parallel, whereas legs in pairs II and III are parallel and identical. Each leg is made by a rod which links the prismatic joint to the moving platform through a spherical joint at each end of the rod. Pairs of legs and have identical chains, each of which consists of a prismatic joint and a spatial four-bar parallelogram where Ai1Ai2 = Bi1Bi2 (i = 2, 3). The kinematic chain of the third pair of legs consists of a prismatic joint and a spatial four-bar mechanism where A11A12 B11B12. As proved in [Kanaan et al., 2007], the number of degrees of freedom for this type of kinematic configuration is 3. In fact, the two pair and provide two constraints on the rotation of the moving platform about yp and zp axes. The third pair can provide one constraint on the rotation of the moving platform about the zp axis. Hence, the combination of the three pair of legs constrains the rotation of the moving platform with respect to yp and zp axes. This leaves the machine with three translational degrees of freedom and one coupled rotation about the xp axis of the Tool Centre Point (TCP) of the platform which depends on xp and yp values. The angle of rotation w around xp is calculated from a third degree characteristic polynomial in cos(w) according to the geometric parameters described in Figure 3 [Kanaan et al., 2007]:

(1) yields three solutions but for each point on the xpyp plane within the workspace of VERNE only one corresponds to a feasible value of w. In the numerical procedure used to calculate VERNE trajectories it is easy to single out the feasible solution as the closest one to the value of w calculated in the previous step, starting from the initial (home) TCP position (xP = 0, yP = 0, zP = 0) where w = 0. It can be proved that one of the other two yields always complex values of w, whereas the remaining one is associated to a complementary and unfeasible configuration of the kinematic chains, with values well outside the range corresponding to the working envelope of VERNE.

= 2

=2

cos

cos

=0

(1) (2)

3. VERNE MODEL IN VC 3DCREATE In order to test the PoE-based inverse kinematic algorithm, a 3D model of VERNE has been built using 3DCreate, a discrete event-based simulation software for digital manufacturing and robot programming developed and maintained by the Finnish company Visual Components. An equivalent kinematic model of VERNE has been considered which simplifies the representation of the kinematic chains and reduces the amount of computational effort. In this model the two pair of identical legs, II and III have been replaced each with one leg only, indicated from now on with Leg 3 and Leg 4. The resulting structure is equivalent to the original one if we impose that at all time TCP rotations around the yp axis are not allowed. It is possible to reduce further the kinematics complexity of VERNE and get to a pure tree-type structure with no closed loops by decoupling the two legs of pair I, from now on indicated with Leg 1 and Leg 2. This requires imposing two further constraints on the rotation of TCP around zp and xp: rotations around zp must be set equal to zero and rotations around xp must be coupled with xp and yp values according to equations (1) and (2). In a more symbolic way, the equivalence between the original kinematic structures of VERNE and the simplified one can be described by Figure 4, where r, p and w are the roll, pitch and yaw angles of VERNE end-effector. Finally, we can replace the spherical joints at the ends of each rod with three rotational coplanar joints as mentioned in [Merlet, 2000]. Without loss of generality one of the three joints can be chosen with a rotational axis coincident with the rod axis. This means that on the same leg one of the two joints aligned with the leg axis is redundant and can be eliminated. As a consequence, in the equivalent kinematic model of VERNE the spherical joint at the top of each leg can be replaced by only two coplanar rotational joints, that is a universal joint.
Leg 2 Leg 1

I II III

Leg 4

Leg 3

Figure 4; Equivalent kinematic model of VERNE in 3DCreate. Pair I and II are replaced with one leg each; the closed loop between Leg 1 and Leg 2 (pair I) is removed yielding a tree-type structure closed only at the TCP. The equivalence is then set by imposing motion constraints on r, p and w. Links with same colour are part of the same serial kinematic chain; only the vertical linear joint in magenta is in common with serial chains of Leg 1 and Leg 2

=0 =0 +

=0

4. POE-BASED INVERSE KINEMATICS The method used to generate the kinematic model of VERNE is largely based on the approach used in [Chen et al., 1999] for modular reconfigurable robots. The representation used to express the motion of each link is based on the assignment of local frames to each of the robot joints, following the notation described also in [Park, 1994]. The relative twist of the pair of links connected by the same joint is expressed in the respective local frame. According to this notation, if vi and vj are two adjacent links connected by a joint and i and j are the indices of the relative coordinate frames, the relative pose of vi and vj with respect to frame i with a joint displacement (linear or rotational) qj can be described as 44 homogenous matrix:
Tij (q j ) = Tij (0)e
s jq j

(3)

where s j se(3) is the twist of the joint expressed in frame j, Tij ( q j ) and

Tij (0) SE (3) . Tij (0) is the initial pose of frame j relative to frame i:

R (0) d ij (0) Tij (0) = ij 1 0

(4)

where R ij (0) and d ij (0) are the initial orientation and position of frame j relative to frame i respectively. For a serial chain the forward kinematics from base to end-effector is given by the recursive product of transformation matrices between each couple of links. Let a = {a0 , a1, ...an } represent the links of a serial chain. The base is a0 and the number of links is |a| = n+1. The forward kinematics from the base a0 to the endeffector an can be expressed using the PoE formula:
n i =1

Ta0an = Ta0a1 (qa1 )Ta1a2 (qa2 )...Tan1an (qan ) = (Tai 1ai (0)e ai ai )

s q

(7)

In [Chen et al., 1999] is proved that the differential kinematics of a serial chain with forward kinematic expressed by the previous equation can be written as:

D = J dq
where:

(8)

D = log(Tao1 n Taoan ) V 61 , referred as pose difference vector; a J = A BS , defined as body manipulator jacobian; 1 66 A = Ad (Ta0an ) is the adjoint representation of Ta01 n a
B = row[ Ad (Ta01 1 ), Ad (Ta01 2 ),..., Ad (Ta01 n )] a a a
S = diag[ sa1 , sa2 ,...san ]
6 ( a 1)( a 1)

6( a 1)

66 ( a 1)

, with saj the twist coordinates of joint j

dq = column[ dq a1 , dq a2 ,...dq an ]

( a 1)1

Equation (8) is derived fundamentally in two steps. First equation (7) is differentiated and the first order approximation Tao1 n dTaoan log(Tao1 n Taoan ) is applied. Then properties a a of the adjoint representation of a Lie group on its algebra are used [Selig, 2005] to obtain (8). This is the differential kinematics for one serial chain. In parallel mechanisms with general architectures each branch can be seen as a serially connected submanipulator. As a consequence, the differential kinematics of the full mechanism is expressed by a number of equations (8) equal to the number of corresponding serial subchains. They can be grouped in one generalised system of equations in the form:
where q = [ , ,, ] , D = [D , D , , D ] , is D termed as generalised pose difference vector and J = A B S is termed as generalised body manipulator jacobian; m and n are respectively the number of branches and the overall number of joints in the mechanism. A, B and S can be expressed as a function of the corresponding quantities in each serial chain in the form:

DT = J dq

(9)

B=

A=

[A , A , , A ] A

(10)

where gij (i = 1,, m; j = 1,, n) is 1 if there exists a path connecting link i with link j, 0 is the adjoint representation in Lie algebra of the homogenous transotherwise. formation Tijk between link i and link j across the serial chain k. (9) is a system of linear equations which can be solved using the Newton-Raphson iterative algorithm in a way similar to other methods proposed to solve the inverse kinematics in terms of TCP velocities [Kelmar et al., 1988]. A block diagram describing the closed loop iterative algorithm in more details is given in Figure 5. (9) has to be rearranged in the iterative form: q q =q + q = J* D (13) (14)

[ ,

,,

(11)

(12)

where i represents the number of iterations and J* is the pseudoinverse of J. 4.1. PoE-based inverse kinematics of VERNE As seen in the previous paragraph, the PoE-based kinematics allows for a simultaneous solution of the inverse kinematics of all serial chains in a mechanism with multibranched architecture, whereas traditional inverse kinematics algorithms are generally used to solve one serial chain at a time. This is particularly relevant when in the same

mechanism serial chains have links in common, as in the case of VERNE. If we number the links of the machine as in the graph-like representation of VERNE in Figure 5 and apply the basic rules explained in [Chen et al., 1999] for the evaluation of the path matrix, the matrix B of J is a 24138 matrix with the shape:
B=

It is easy to realise that the link in common between Leg 1 and Leg 2 is expressed by the elements b1,1 and b2,1 of B. Indeed for a fully decoupled system B is a block-diagonal matrix. In this case the inverse kinematic equivalence would correspond to a 24144 matrix:
B=

0 0

0 0 0

0 0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0 0

0 0 0

0 0 0

(15)

0 0 0 0 0 0

0 0 0

0 0

0 0 0 0 0 0

0 0

0 0

0 0

0 0

0 0 0

0 0 0

0 0 0

(16)

5. ALGORITHM PERFORMANCE AND SIMULATION The convergence, computation time and accuracy of the PoE-based inverse kinematic algorithm have been tested by implementing the scheme of Figure 6 in C++. The computer used for running the test and simulating VERNE in 3DCreate is equipped with an Intel Core Duo CPU running at 2.20 GHz on Windows Vista OS platform. Since the convergence of a numerical inverse kinematics depends on initial conditions and termination criteria, several test trajectories have been considered. In order to
xd(tn)

Figure 5; A graph-like representation of VERNE

Figure 6; PoE Inverse Kinematics implementation

evaluate the performance of the algorithm with the precision required by micromachining (although VERNE is not a machine-tool designed and built for such applications), tolerances considered for convergence are such that in all tests carried out calculation errors not greater than 10-1 m between desired and calculated TCP positions are achieved. Another important aspect of a numerical solver for inverse kinematics is its robustness when the mechanism is close to kinematic singularities. For this reason the PoE-based algorithm has been mainly tested on trajectories at the boundary of the theoretical workspace of VERNE, where singularities are more likely to occur. Here by theoretical workspace I mean the 3D volume which includes points that would not be normally reached by the TCP because of the manipulator mechanical constraints (ballsocket joint limits, inner machine limits, etc). In other words only link lengths define the theoretical workspace of VERNE (Table 1). Over the theoretical boundary 3752 points have been successfully tested in different trajectories. Several discretisation steps have been tried in order to evaluate the algorithm convergence from initial guesses with varying distance from the solution, the smallest being 1mm and the greatest 100mm. The highest number of iterations for a 100mm step close to a singularity and within a tolerance of 10-1m has been 7. A comparison with the classic numerical inverse kinematic algorithm based on the calculation xy boundary Real Theoretical of TCP velocities as in [Kelmar et [-0.28, 0.32] [-0.51, 0.61] x al., 1988] has been carried out. [-0.5, 0.5] [-0.53, 0.53] y With this algorithm the inverse Table 1 Actual and theoretical boundaries of kinematics of each leg has to be VERNE workspace on the xy plane in meters solved separately as in the case of a serial robot. That is, every iteration is composed by the solution of four separated serial chains with a Jacobian of size 66, whereas the PoE-based IK solver requires the solution of a unique system with a sparse Jacobian matrix of size 2423. The most meaningful results are reported in Figure 7. They refer to solution accuracy, number of iterations and calculation time for both algorithms for a trajectory performed along the boundary of the theoretical workspace of VERNE. The trajectory is made by 3349 points with a discretisation step of 1mm. The convergence tolerance for both algorithms is 10-6, i.e. every component of DT for the PoE-based IK solver and TCP differential position and orientation vector for the traditional algorithm should be within the prescribed precision to terminate the iterations. Peaks in all graphics correspond to points close to singularities. It is possible to see, apart from singularities, how the accuracy of the PoE-based solver is smoother along the trajectory, well below the requirement (10-10) for micromachining. Also, the number of iterations is less but considering the heavier computation involved in solving larger matrices, the resulting computation time is higher than the case of the algorithm solving four individual serial chains. However, it must be said that at this stage no specific coding procedures have been implemented to optimise the calculation of the generalised body manipulator jacobian, which is a large sparse matrix.

PoE-based IK
Solution accuracy [m]

TCP velocity-based IK

Time [s]

Number of iterations

Trajectory points

Figure 7; Comparison between accuracy, convergence and computation time between PoE-based and TCP velocity-based IK solvers; the accuracy is calculated as x x , where xd is the desired 61 TCP vector of positions and orientations and x is the calculated one

6. CONCLUSIONS The numerical inverse kinematics algorithm based on the product of exponential formula proposed in [Chen et al., 1999] for real-time control of modular reconfigurable robots has proved to be very effective for the modelling and simulation of the 3 DOF parallel mechanism of VERNE. The modularity of the algorithm can be used to develop a

generalised automated procedure for the modelling and simulation of robotic mechanisms with any type of multi-branched kinematic architecture. This would provide a user friendly, highly interactive real time simulation framework for PKMs, intended to reduce dramatically the time-to-modelling of such complex systems. Moreover, the good performance of the corresponding inverse kinematic solver in terms of calculation time and accuracy makes it suitable for real time control of parallel mechanisms. However, further tests on different types of PKMs must be carried out to confirm that the method can be effectively used as a generalised kinematic solver.

7. ACKNOWLEDGEMENTS This work has been partially funded by the 6th Framework EU Integrated Project NEXT (NEXT generation production systems). I would like to thank Daniel Kanaan and Damien Chablat of IRCCyN CNRS for providing all the CAD files of VERNE used to build the model in 3DCreate and the accurate information about its workspace.

REFERENCES [Chen et al., 1999] Chen, I-M.; Yang, G.; Kang, I-G.; Numerical Inverse Kinematics for Modular Reconfigurable Robots; In: J. of Robotic Systems, Vol. 16, Issue 4, pp. 213-215, 1999 [Kanaan et al., 2007] Kanaan, D.; Wenger, P.; Chablat, D.; Kinematics analysis of the parallel module of the VERNE machine; In: 12th IFToMM World Congress; Besanon (France), 2007 [Kelmar et al., 1988] Kelmar, L.; Khosla, P.; Automatic Generation of Kinematics for a Reconfigurable Modular Manipulator System; In: Proc. of IEEE Conf. Robotics and Automation (ICRA), pp. 663-668; Philadelphia, PA, USA,1988 [Merlet, 1997] Merlet, J-P.; Designing a parallel manipulator for a specific workspace, In: Int. J. of Robotics Research, 16(4), pp. 545-556, 1997 [Merlet, 2000] Merlet, J.-P.; Parallel Robots; Kluwer Academic Publishers, Dordrecht, 2000 [Park, 1994] Park, F.C.; Computational Aspects of the Product-of-Exponentials Formula for Robot Kinematics; In: IEEE Trans. Automatic Control, Vol. 39, n. 3, pp. 643-647, March 1994 [Selig, 2005] Selig, J.M.; Geometric Fundamentals of Robotics; New York, SpringerVerlag, 2005