The Denavit-Hartenberg (DT) transformation of coordinates from frame
i to frame
i-1 is given by the matrix:
For a point with coordinates
xi,
yi,
zi in frame
i, its coordinates in frame
i-1 will be equal to
or
The trasformation, in detail:
xi-1 = cosθi xi - sinθi cosαi yi + sinθi sinαi zi + ai cosθi
yi-1 = sinθi xi + cosθi cosαi yi - cosθi sinαi zi + ai sinθi
zi-1 = sinαi yi + cosαi zi + di
A point with coordinates (x
i, y
i, z
i) in the final frame, will have coordinates, in the original frame:
[ x0 y0 z0 1 ]t = 0Tn [ xn yn zn 1 ]t
where
0Tn = 0T1 1T2 ... n-1Tn
is the composition of successive DT transformations. The coordinates, in the original frame, of end-effector position will be given by the formula abiove, where x
n = y
n = z
n = 0.
As mentioned above, each DT transformation is determined by some predefined, fixed parameters and one variable parameter (θ for rotational links, d for prismatic links); in this sense, the coordinates of the end-effector position become functions of n variables:
[ x0 y0 z0 1 ]t = 0T1(q1) 1T2(q2) ... n-1T(qn) [ 0 0 0 1 ]t
or
[ x0 y0 z0 1 ]t = 0Tn(q1, q2, ... , qn) [ 0 0 0 1 ]t
where q
i = θ
i or d
i.
The task of
inverse kinematics is to determine, for given initial values of parameters q
i and a given target point with coordinates (x
target, y
target, z
target) the necessary modifications of (q
i), 1 ≤ i ≤ n, such that the resulting end--effector position will become as close to target as possible.
It is, in essence, an optimization process. Many procedures have been proposed, most of them for specific configurations.
Here we use a method which is general, for any configuration and uses "classical" optimization methods, as in [3].