8 DOF Redundant Robot
8 DOF Redundant Robot
8 DOF Redundant Robot
_
cos(
i
) sin(
i
) 0 a
i1
sin(
i
) cos(
i1
) cos(
1
) cos(
i1
) sin(
i1
) sin(
i1
)d
i
sin(
i
) sin(
i1
) cos(
i
) sin(
i1
) cos(
i1
) cos(
i1
)d
i
0 0 0 1
_
_
(1)
To determine the transformation matrix,
0
n
T, relating the base frame to the end eector,
one simply multiplies all n of the transformation matrices together such that:
0
n
T =
0
1
T
1
2
T
2
3
T ...
n2
n1
T
n1
n
T (2)
=
_
_
r
11
r
12
r
13
p
x
r
21
r
22
r
23
p
y
r
31
r
32
r
33
p
z
0 0 0 1
_
_
(3)
where n is the total number of frames and p
x
, p
y
, and p
z
are the nal x-, y-, and z- positions
of the end eector, respectively
3
. These three values are then utilized to calculate the
Jacobian, which is paramount to deriving the inverse kinematics of the manipulator.
3.2 Jacobian
The Jacobian of a transformation is a time-varying, linear transformation which maps
the velocities from one frame to another having dimensions m x n such that the number
of rows, m, are the degrees of freedom of the workspace in question and the columns, n,
are the total number of joints. As stated earlier, since navigation in 3-space involves 6
DOF, a Jacobian model of a manipulator in 3-space would have to have m =6 in order
to meet the translation and position requirements demanded.
To calculate the Jacobian, one determines the partial derivatives of the position vector
[p
x
, p
y
, p
z
]
T
obtained from Eq. 3 and the partial derivatives of the angles of rotation about
the x-, y-, and z-axes of the end eector frame, [, , ]
T
, with respect to each of the
joint parameters {
1
,
2
, . . . ,
8
}, where
i
is either a linear parameter, d
i
, or an angular
parameter,
i
. This process is shown in Eq. 4.
J() =
_
_
p
x
q
1
p
x
q
2
p
x
q
3
p
x
q
4
p
x
q
5
p
x
q
6
p
x
q
7
p
x
q
8
p
y
q
1
p
y
q
2
p
y
q
3
p
y
q
4
p
y
q
5
p
y
q
6
p
y
q
7
p
y
q
8
p
z
q
1
p
z
q
2
p
z
q
3
p
z
q
4
p
z
q
5
p
z
q
6
p
z
q
7
p
z
q
8
q
1
q
2
q
3
q
4
q
5
q
6
q
7
q
8
q
1
q
2
q
3
q
4
q
5
q
6
q
7
q
8
q
1
q
2
q
3
q
4
q
5
q
6
q
7
q
8
_
_
(4)
3
Due to the nature of the calculation of the nal total transformation from the base frame to the end
eector, p
x
, p
y
, and p
z
are necessarily functions of the D-H Parameters.
3
The vector
is used to denote {
1
,
2
, . . . ,
8
} and the Jacobian can be related to the
linear and angular velocity vectors of the manipulator by:
_
_
v
x
v
y
v
z
z
_
_
= J(
1
,
2
, . . . ,
8
)
_
8
_
_
(5)
where the left-hand side of Eq. 5 is the concatenation of the vectors representing linear
and angular velocities. This relationship can be expressed more succinctly as:
total
= J()
(6)
where
total
is equivalent to the left-hand side of Eq. 5. and
_
v
x
v
y
v
z
_
_
= J
s
(
1
,
2
, . . . ,
8
)
_
8
_
_
(7)
3.3 Inverse Kinematics
Once the Jacobian was determined, the inverse kinematics of the system could be used
to provide a user with the required joint values to bring the manipulator to a desired
position. By algebraically manipulating Eq. 6, it was possible to solve for
as follows:
= J
1
() (8)
However, because the Jacobian for a redundant manipulator is necessarily non-square,
J
s
() is not invertible. Several methods have been developed for the determination of
a pseudo-inverse of the Jacobian, J
s
. The method utilized for this project was Singu-
lar Value Decomposition (SVD), which is capable of producing unique solutions for the
4
pseudo-inverse
4
. Using SVD to generate J
s
, the relationship between the joint parameter
vector,
= J
s
(9)
Next, the desired linear velocity, , was determined. This was performed by taking the
dierence between the current and desired position and scaling them by a constant, ,
which was determined empirically. This relationship is given as:
=
_
_
v
x
v
y
v
z
_
_
=
_
_
_
_
_
x
d
y
d
z
d
_
_
x
c
y
c
z
c
_
_
_
_
_
(10)
where the subscripts d and c represent the desired and current Cartesian positions
of the end eector, respectively. In general, the manipulator could be asked to move
from one end of its workspace to the opposite end. The ramications of a manipulator
instantaneously moving between two distant points are jerky motion and the need for an
innite amount of power with the former being highly undesirable and the latter being
physically impossible to achieve. To resolve this issue, the trajectory between the desired
position and current position were subdivided into discrete steps. The smaller these steps
are, the smoother the motion becomes
5
. Once the velocity was determined, it was plugged
into Eq. 9 to solve for the desired rate of change of the joint parameters,
. By utilizing
the following relationship, it then became possible to solve for the nal joint parameters
such that:
k+1
=
(11)
where the subscripts k and k + 1 correspond to the current set of intermediate joint
parameter values and the next set of intermediate joint parameter values, respectively.
Recall that the path from the current position to the desired position was subdivided.
Thus, the index k ranged from 1 to the number of subdivisions which was 10,000 for this
project. Furthermore, the variable represents a scaling constant
6
and was determined
empirically .
4 Results and Discussion
The values of and were determined to be 0.1 and 1.0, respectively. These values were
determined based upon how close the nal position of the manipulator was to the desired
(input) position. In this case, the actual positions either deviated by less than 2% from
the desired positions or were vastly dierent from the desired positions as shown in Tab.
I.
As the data illustrates, the actual output position of the system (x
a
, y
a
, z
a
) closely
matched the input positions (x
d
, y
d
, z
d
) in most cases. However, it is evident that there
4
MATLAB has the capability to perform the SVD.
5
This was achieved by utilizing the trajpar command in MATLAB starting at the current position
and ending at the desired position in 10,000 steps. A trajpar was used for each of the x-, y-, and z-
directions.
6
The scaling constants and have units of [seconds] and [1/second], respectively.
5
Table I. Measured Values
Run Desired Position Output Position
No. x
d
y
d
z
d
x
a
y
a
z
a
1 40 13 0 35.30 37.20 1.86
2 20 20 20 19.99 19.20 20.19
3 -2 36 20 -1.98 35,94 20.02
4 -30 22 42 -29.95 22.11 41.99
5 -30 22 56 -24.00 31.30 44.57
6 -30 22 55 5.21 11.69 14.83
7 -50 22 5 -48.90 41.38 4.95
8 56 56 56 25.00 28.00 34.00
9 0 0 0 0.02 -0.01 0.04
10 0 0 56 0.02 0.09 55.98
11 0 56 56 16.15 -29.80 6.88
12 0 6 32 0.02 5.96 32.08
13 0 6 32 0.02 5.96 32.08
are some trials when the output position deviated signicantly from the desired position.
An extreme example of such deviation is Run No. 8 where the input position was (56,
56, 56) and the output position was (25.00, 28.00, 34.00). In this case, none of the values
were in an acceptable range. A less extreme example is Run No. 7 where the input
position was (-50, 22, 5) and the output was (-48.90, 31.38, and 4.95). In this case, the
x- and z- coordinates were in an acceptable range, however; the y-coordinate was o.
The common factor between both of these cases is the fact that the manipulator has
approached a workspace singularity at its outer boundary. Since the workspace of this
particular manipulator is the volume of a sphere with a radius of 56 units and due to the
fact that the approaching of the outermost radius causes the loss of one or more degrees
of freedom of the manipulator, which causes certain positions to be unattainable[1], the
closer one approaches the point (56, 56, 56), the more unpredictable the manipulator
behaves. Thus, the eective operating range of this manipulator should be well within
the maximum radius that can be reached by the manipulator. Run No. 1, however,
shows a deviation which is not expected according to the statement about workspace
singularities. It is likely that a workspace singularity somewhere in the interior occurred,
which presents itself when one or more axes of a manipulator align (or approach such
alignment). Finally, , it was stated earlier without proof that the SVD produces a unique
solution for the pseudo-inverse of the Jacobian, J