Vous êtes sur la page 1sur 16

INSTITUTO TECNOLOGICO SUPERIOR DE TEZIUTLAN

Nombre: Márquez Patiño José Adrián Materia: Robótica Docente: Mario Eduardo Aguilar Ortha Carrera: Ing. Mecatornica Semestre: 8vo Semestre Control de Velocidad

Docente: Mario Eduardo Aguilar Ortha Carrera: Ing. Mecatornica Semestre: 8vo Semestre Control de Velocidad

Índice

Resolución del problema cinematico inverso por métodos

3

Resolución del problema cinematico directo mediante uso de

4

Desacoplo

6

Resolución del problema cinematico inverso a partir de la matriz de transformación homogénea.

9

Teoría de Tornillos

13

16

Referencias

inverso a partir de la matriz de transformación homogénea. 9 Teoría de Tornillos 13 16 Referencias
Resolución del problema cinematico inverso por métodos geométricos. Como se ha indicado, este procedimiento es
Resolución del problema cinematico inverso por métodos geométricos.
Como se ha indicado, este procedimiento es adecuado para robots de pocos grados de libertad o para el
caso de que se consideren solo los primeros grados de libertad, dedicados a posicionar el extremo.
El procedimiento en si se basa en encontrar suficiente numero de relaciones geométricas en las que
intervendrán las coordenadas del extremo del robot, sus coordenadas articulares y las dimensiones
físicas de sus elementos.
Para mostrar el procedimiento a seguir se va a aplicar el método a la resolución del problema cinematico
inverso de un robot con 3 grados de libertad de rotación (estructura típica articular). El dato de partida
son las coordenadas (Px, Py, Pz) referidas a (S0) en las que se requiere posicionar su extremo.
Como se ve este robot posee una estructura planar, quedando este plano definido por el ángulo de la
primera variable articular q1.
El valor de q1 se obtiene inmediatamente como:
q1 = arctg ( Py / Px )
Considerando ahora únicamente los dos elementos 2 y 3 que están situados en un plano y utilizando el
teorema del coseno, se tendrá:
=
( Px )² + ( Py )²
+
( Px
=
( I2 )²
+
( I3 )² + 2( I2 )( I3 )cosq3
cosq3
=
( Px )²
+
( Py )²
+
( Pz )²
-
( I2 )²
-
( I3 )²
/
2( I2 )( I3 )
Esta expresión permite obtener q1 en función del vector de posición del extremo P. No obstante, por
motivos de ventajas computacionales, es más conveniente utilizar la expresión de la arco tangente en
lugar del arco seno.
Puesto que:
sen q3
=
±
( 1 - cos²q3 )½
Se tendrá que:
q3
=
arctg ( ± ( 1 - cos²q3 )½
/
cosq3 )
cosq3
=
( Px )²
+
( Py )²
+
( Pz )²
-
( I2 )²
-
( I3 )²
/
2( I2 )( I3 )
Como se ve, existen dos posibles soluciones para q3 según se tome el signo positivo o negativo de la raíz.
Estas corresponden a las configuraciones de codo arriba y codo abajo del robot.
El calculo de q2 se hace a partir de la diferencia entre ß y :
El calculo de q2 se hace a partir de la diferencia entre ß y :
El calculo de q2 se hace a partir de la diferencia entre ß y
:
q2
=
ß -
Siendo:
ß
=
arctg ( Pz / r )
=
arctg ( Pz
/
± ( ( px )² + ( Py )²
)
= arctg ( I3 senq3
/
I2
+
I3 cosq3 )
Luego finalmente:
q2
=
arctg ( Pz
/
± ( ( px )² + ( Py )² )½
)
-
arctg ( I3 senq3
/
I2 + I3 cosq3)
De nuevo los dos posibles valores según la elección del signo dan lugar a dos valores diferentes de q2
correspondientes a las configuraciones codo arriba y abajo.

Resolución del problema cinematico directo mediante uso de cuaternios.

Puesto que las matrices de transformación homogénea y los cuaternios son los métodos alternativos para representar transformaciones de rotación y desplazamiento, será posible utilizar estos últimos de manera equivalente a las matrices para la resolución del problema cinematico directo de un robot. Para aclarar el uso de los cuaternios con ese fin, se van a utilizar a continuación para resolver el problema cinematico directo de un robot tipo SCARA cuya estructura se representa en la figura.

El procedimiento a seguir será el de obtener la expresión que permite conocer las coordenadas de posición y orientación del sistema de referencia asociado al extremo del robot (S4) con respecto al

sistema de referencia asociado a la base (S0). Esta relación será función de las magnitudes I1, I2, y I3, de los elementos del robot así como de las coordenadas articulares q1, q2, q3 y q4.

Para obtener la relación entre (S0) y (S4) se ira convirtiendo sucesivamente (S0) en (S1), (S2), (S3) y (S4) según la siguiente serie de transformaciones:

1. Desplazamiento de (S0) una distancia I1 a lo largo del eje Z0 y giro un ángulo q1 alrededor del eje Z0, llegándose a (S1).

2. Desplazamiento de (S1) una distancia I2 a lo largo del eje X1 y giro un ángulo q2 alrededor del nuevo eje Z, para llegar al sistema (S2).

3. Desplazamiento alo largo del eje X2 una distancia I3 para llegar al sistema (S3).
3. Desplazamiento alo largo del eje X2 una distancia I3 para llegar al sistema (S3).
4. Desplazamiento de (S3) una distancia q3 a lo largo del eje Z3 y un giro en torno a Z4 de un ángulo
q4, llegándose finalmente a (S4).
De manera abreviada las sucesivas transformaciones quedan representadas por:
S0 ---> S1: T( z,I1 ) Rot( z,q1 )
S1 ---> S2: T( x,I2 ) Rot( z,q2 )
S2 ---> S3:
T( x,I3 ) Rot ( z,0 )
S3 ---> S4: T( z,-q3 ) Rot( z,q4 )

Donde los desplazamientos quedan definidos por los vectores:

 

p1

=

( 0,0,1 )

p2

=

( I2,0,0 )

p3

=

( I3,0,0 )

p4

=

( 0,0,-q3 )

Y los giros de los cuaternios:

 

Q1

=

( ^C1, 0, 0, ^S1 )

Donde:

Q2

=

( ^C2, 0, 0, ^S2 )

Q3 =

( 1, 0, 0, 0 )

( ^C4, 0, 0, ^S4 )

Q4 =

^C1 =

cos ( q1/2 )

^S1 =

sen ( q1/2 )

Lo que indica que el extremo del robot referido al sistema de su base (S0), esta posicionado en:

x = a0x = I3 cos( q1 + q2 ) + I2 cosq1 y a0y
x =
a0x
=
I3 cos( q1 + q2 ) +
I2 cosq1
y a0y
=
=
I3 sen( q1 + q2 ) +
I2 senq1
z
=
a0z
=
I1 -q3
Y
esta girando respecto al sistema de la base con un ángulo q1 + q2 +q4 según a la rotación entorno al eje
z:
Rot( z, q1+q2+q4 )
Las expresiones anteriores permiten conocer la localización del extremo del robot referidas al sistema
de la base en función de las coordenadas articulares (q1, q2, q3, q4), correspondiendo por tanto a la
solución del problema cinematico directo.
Desacoplo cinematico.
Los procedimientos vistos en los apartados anteriores permiten obtener los valores de las 3 primeras
variables articulares del robot, aquellas que posicionan su extremo en las coordenadas (Px, Py, Pz)
determinadas, aunque pueden ser igualmente utilizadas para la obtención de las 6 a costa de una mayor
complejidad.

Ahora bien, como es sabido, en general no basta con posicionar el extremo del robot en un punto del espacio, sino que casi siempre es preciso también conseguir que la herramienta que aquel porta se oriente de una manera determinada. Para ello, los robots cuentan con otros tres grados de libertad adicionales, situados al final de la cadena cinemática y cuyos ejes, generalmente, se cortan en un punto, que informalmente se denomina muñeca del robot.

Si bien la variación de estos tres últimos grados de libertad origina un cambio en la posición final del extremo real del robot, su verdadero objetivo es poder orientar la herramienta del robot libremente en

el espacio.

El método de desacoplo cinematico saca partido de este hecho, separando ambos problemas: Posición y orientación. Para ello, dada una posición y orientación final deseadas, establece las coordenadas del punto de corte de los 3 últimos ejes (muñeca del robot) calculándose los valores de las tres primeras variables

articulares (q1, q2, q3) que consiguen posicionar este punto. A continuación, a partir de los datos de orientación y de los ya calculados (q1, q2, q3) obtiene los valores del resto de las variables articulares.

Parámetros DH del robot de la figura. Articulación d a 1 Ø1 I1 0 -90°
Parámetros DH del robot de la figura.
Articulación
d
a
1 Ø1
I1
0
-90°
2 Ø2
0
I2
0
3 Ø3
0
0
90°
4 Ø4
I3
0
-90°
5 Ø5
0
0
90°
6 Ø6
I4
0
0

En la figura se representa un robot que reúne las citadas características, con indicación de los sistemas de coordenadas asociados según el procedimiento de Denavit-Hartemberg, cuyos parámetros se pueden observar en la tabla. El punto central de la muñeca del robot corresponde al origen del sistema (S5): O5. Por su parte, el punto final del robot será el origen del sistema (S6): O6. Enseguida se utilizaran los vectores:

Pm

= O0

O5

Pr

= O0

O6

Que van desde el origen del sistema asociado a la base del robot (S0)hasta los puntos centro de la

muñeca y fin del robot, respectivamente. puesto que la dirección del eje Z6 debe coincidir con la de Z5 y la distancia entre O5 y O6 medida a lo largo de Z5 es precisamente d4 = I4, se tendrá que:

Pr

=

( Px, Py, Pz ) (exp)T

El director Z6 es el vector A correspondiente a la orientación deseada Z6 = ( Ax, Ay, Az ) (exp) T e I4 es un parámetro asociado con el robot. Por lo tanto, las coordenadas del punto central de la muñeca ( Pmx, Pmy, Pmz ) son fácilmente obtenibles.

Es posible, mediante un método geométrico, por ejemplo, calcular los valores de ( q1, q2,
Es posible, mediante un método geométrico, por ejemplo, calcular los valores de ( q1, q2, q3 ) que
consiguen posicionar el robot en el Pm deseado.
Quedan ahora obtener los valores de q4, q5, y q6 que consiguen la orientación deseada. Para ello
denominando 0R6 a la submatriz de rotación de 0T6 se tendrá:
0R6
=
( n o a )
=
0R3( 3R6 )
Donde 0R6 es conocida por la orientación deseada del extremo del robot, y 0R3 definida por:
0R3
=
0A1 ( 1A2 ) ( 2A3 )
También lo será a partir de los valores ya obtenidos de q1, q2 y q3. Por lo tanto:
3R6
=
( Rij )
=
( 1 / 0R3 ) ( 0R6 ) =
( 0R )(exp)T ( n o a )
Tendrá sus componentes numéricas conocidas.
Por otra parte, 3R6 corresponde a una submatriz (3X3)de rotación de la matriz de transformación
homogénea 3T6 que relaciona el sistema (S3) con el (S6), por lo tanto:
3R6 = 3R4 ( 4R5 )( 5R6 )
Donde i-1Ri es la submatriz de rotación de la matriz de Denavit-Hartemberg i-1Ai, cuyos valores son:
3R4
4R5
5R6
C4 0 -S4
C5 0 S5
C6 -S6 0
S4 0 C4
S5 0 -C5
S6 C6 0
0 -1 0
0 1 0
0 0 1

Luego se tiene que:

3R6 =

C4C5C6-S4S6

-C4C5S6-S4C6

C4S5

S4C5C6 + C4S6

-S4C5S6 + C4C6

-S4C5

-S5C6

S5S6

C5

Donde Rij, será por valores numéricos conocidos:

Rij =

C4C5C6-S4S6 -C4C5S6-S4C6

C4S5

S4C5C6 + C4S6

-S4C5S6 + C4C6

-S4C5

-S5C6

S5S6

C5

De estas nueve relaciones expresadas se puede tomar las correspondientes a R13, R23, R33, R31, R32:

R13

=

C4S5

R23

=

-S4C5

R33

=

C5

R31 = -S5C6 R32 = S5S6 Del conjunto de ecuaciones es inmediato obtener los parámetros
R31
=
-S5C6
R32
=
S5S6
Del conjunto de ecuaciones es inmediato obtener los parámetros articulares:
q4 =
arcsen ( R23 / R33 )
q5 =
arccos ( R33 )
q6 =
arctg ( -R32 / R31 )
Estas expresiones y teniendo en cuenta que las posiciones de cero son distintas, constituyen la solución
completa del problema cinematico inverso del robot articular.
Resolución del problema cinematico inverso a partir de la matriz de transformación homogénea.
En principio es posible tratar de obtener el modelo cinematico inverso de un robot a partir del
conocimiento de su modelo directo. Es decir, suponiendo conocidas las relaciones que expresan el valor de
la posición y orientación del extremo del robot en función de sus coordenadas articulares, obtener por
manipulación de aquellas las relaciones inversas.
Sin embargo, en la practica esta tarea no es trivial siendo en muchas ocasiones tan compleja que obliga a
desecharla. Además, puesto que el problema cinematico directo, resuelto a través de Tij contiene en el
caso de un robot de 6 grados de libertad 12 ecuaciones, y se busca solo 6 relaciones (una por cada grado
de libertad), existirá, necesariamente ciertas dependencias entre las 12 expresiones de partida con lo
cual la elección de las ecuaciones debe hacerse con sumo cuidado.

Se va a aplicar este procedimiento al robot de 3 grados de libertad de configuración esférica (2 giros y un desplazamiento) mostrado en la figura. El robot queda siempre contenido en un plano determinado por el ángulo q1.

El primer paso a dar para resolver el problema cinematico inverso es obtener Tij correspondiente
El primer paso a dar para resolver el problema cinematico inverso es obtener Tij correspondiente
El primer paso a dar para resolver el problema cinematico inverso es obtener Tij correspondiente a este
robot. Es decir, obtener la matriz T que relaciona el sistema de referencia (S0) asociado a la base con el
sistema de referencia (S3) asociado a su extremo.
La siguiente figura muestra la asignación de sistemas de referencia según los criterios de DH con el
robot situado en su posición de partida (q1 = q2 = 0), y la tabla muestra los valores de los parámetros de
DH.
A partir de estos es inmediato obtener las matrices A y la matriz T.
Obtenida la expresión de T en función de las coordenadas articulares (q1, q2, q3), y supuesta una
localización de destino para el extremo del robot definida por los vectores n, o, a y p se podría intentar
manipular directamente las 12 ecuaciones resultantes de T a fin de despejar q1, q2, y q3 en función de n,
o,
a y p.
Parámetros DH del robot polar de 3 GDL.
Articulación
d
a
1
q1
I1
0
90°
2
q2
0
0
-90°
3
0
q3
0
0
Sin embargo, este procedimiento directo es complicado, apareciendo ecuaciones trascendentes. En lugar de ello, suele
Sin embargo, este procedimiento directo es complicado, apareciendo ecuaciones trascendentes. En lugar
de ello, suele ser más adecuado aplicar el siguiente procedimiento:
Puesto que T = 0A1 ( 1A2 )( 2A3 ), se tendrá que:
( 1 / 0A1 ) T
=
1A2( 2A3 )
( 1 / 1A2 ) ( 1 / 0A1 ) T = 2A3
Puesto que:
T =
n o a p
0 0 0 1

Es conocida, los miembros a la izquierda en las expresiones anteriores, son función de las variables articulares (qk+1, ,qn). De modo, que la primera de las expresiones se tendrá q1 aislado del resto de las variables articulares y tal vez será posible obtener su valor sin la complejidad que se tendría abordando directamente la manipulación de la expresión T. A su vez, una vez obtenida q1, la segunda expresión anterior (2A3), permitirá tener el valor de q2 aislado respecto de q3. Por ultimo, conocidos q1 y q2 se podrá obtener q3 de la expresión T sin excesiva dificultad.

Para poder aplicar este procedimiento, es necesario en primer lugar obtener las inversas de las matrices, i-1Ai. Esto es sencillo si se considera que la inversa de una matriz viene dada por:

inversa

nx

ox

ax

Px

nx

ox

ax

-n(exp)T(P)

ny

oy

ay

Py

ny

oy

ay

-o(exp)T(P)

nz

oz

az

Pz

=

nz

oz

az

-a(exp)T(P)

 

0

0

0

1

0

0

0

1

 

1

/ ( 0A1 ) inversa

 

C1

0

S1

0

C1

S1

0

0

S1

0

-C1

0

0

0

1

-I1

0 1 0 I1 = S1 -C1 0 0 0 0 0 1 0 0
0
1
0
I1
=
S1
-C1
0
0
0
0
0
1
0
0
0
1
1
/ ( 1A2 )
inversa
C2
0
-S2
0
C2
S2
0
0
S2
0
C2
0
0
0
-1
0
0
-1
0
0
=
-S2 C2
0
0
0
0
0
1
0
0
0
1
1
/ ( 2A3 )
inversa
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
q3
=
0
0
1
-q3
0
0
0
1
0
0
0
1
Por lo tanto, utilizando la primera de las ecuaciones definidas al principio del tema, se tiene que:
( 1 / 0A1 ) 0T3 = 1A3 (
2A3 ) =
C2
0
-S2
-S2q3
S2
0
C2
C2q3
0
-1
0
0
0
0
0
1

De las 12 relaciones establecidas en la ecuación anterior, interesan aquellas que expresan q1 en función de constantes. Así por ejemplo se tiene:

S1 ( Px ) - C1 ( Py ) = 0

tan( q1 ) = ( Py

/

Px )

Se tiene finalmente:

q1 =arctg ( Py

/

Px )

q2 = arctg( ( ( Px )² + ( Py )² )½

q3 = C2 ( Pz - I1 )

-

S2 ( (

Px

/

( I1

)² + (

Pz ))

Py )² )½

Las expresiones anteriores corresponden a la solución del problema cinematico inverso del robot considerado.

A los mismos resultados se podría haber llegado mediante consideraciones geométricas. Teoría de Tornillos P($)
A los mismos resultados se podría haber llegado mediante consideraciones geométricas.
Teoría de Tornillos
P($) = s , y
Un tornillo infinitesimal, $, es un vector de seis dimensiones que consta de una
componente primaria, una componente dual, D($) = s O , dado por
⎡s ⎤
$ = ⎢
,
⎣ s O ⎦
donde s es un vector unitario a lo largo del eje instantáneo del tornillo mientras que s O es el momento
producido por
el vector
de acuerdo a un vector r O / P , el cual inicia en un punto P del eje instantáneo de tornillo y
s termina en el
punto de referencia O . El par momento se determina como
s O = hs + s × r O / P ,
donde
h es el paso del tornillo. El álgebra de Lie, e(3), puede considerarse como el álgebra de
los elementos
infinitesimales del grupo Euclídeo, E(3), y es isomórfica al álgebra de tornillos, frecuentemente
denominada álgebra de motores, en la que se satisfacen las siguientes operaciones.

Sean

$ 1

= (s 1 , s O1 )

$ 1

= (s 2 , s O

y

$ 1

= (s 3 , s O3

, 2 )

)

λR.

elementos del álgebra de Lie e(3) y sea además

Entonces

Adición,

$ 1

+$ 2

=(s 1 +s 2 ,s O1 +s O2 ).

Multiplicación por un escalar, λ$ 1 = (λs 1 ,λs O1 ) .

Producto de Lie,

[$ 1

$ 2 ]=

.

s

×

s

1

2

s 1 ×s O2 s 2 ×s O1

De esta manera, el álgebra de Lie, e(3), es un álgebra no conmutativa, no asociativa que satisface la identidad de Jacobi. Más aún, es posible definir dos formas simétricas bilineales o productos internos.

La forma de Killing, Ki : e(3) × e(3) → Ki($ 1 ,$ 2 )
La forma de Killing,
Ki : e(3) × e(3) → Ki($ 1
,$ 2
) = s 1 •s 2
La forma de Klein,
KL : e(3) ×e(3) → KL($ 1 ,$ 2 ) = s 1 •s O2 +s 2 •s O1
donde × y
denotan, respectivamente, al producto cruz y al producto interno del álgebra vectorial
convencional de
tres dimensiones.
Suponga que un cuerpo rígido posee una velocidad angular ω y que un punto O , fijo al mismo, posee una
velocidad
v O ambos vectores referidos con respecto a otro cuerpo o sistema de referencia. Puesto que con
ambos vectores es
posible determinar la velocidad de cualquier punto del cuerpo rígido, entonces es totalmente razonable
definir al estado de velocidad, V , del cuerpo rígido como un vector de seis dimensiones de la siguiente
manera
V
= ⎢ ω ⎢.
(1)
⎢ ⎣ v O ⎢ ⎦
La velocidad angular ω se conoce como la componente primaria mientras que la
velocidad v O
se conoce como la
componente dual. Más aún, a principios del siglo
α
XX Ball (1900) definió al estado de velocidad
como el giro sobre un tornillo, esto es
AR
=

V =ω$ .(2)

Suponga ahora que el cuerpo rígido posee una aceleración angular α y que el punto O posee

una aceleración a O .

Brand (1947) definió el estado de aceleración reducida o simplemente, por brevedad, acelerador de un cuerpo rígido, A R , como un vector de seis dimensiones dado por

a O −ω×v O

(3)

,

donde, α es la componente primaria mientras que la composición

×v O

que en las expresiones (1) y (3) las componentes primarias no dependen de ningún punto en particular y por lo tanto pueden considerarse propiedades de los cuerpos rígidos. Al contrario, las componentes duales dependen del punto O de referencia. Más aún, la componente primaria del acelerador se obtiene de manera directa a partir de la componente primaria del estado de velocidad, esto es

a O

−ω

es la componente dual

Nótese

α = d ω. dt Por su parte la deducción de la componente dual del
α = d ω.
dt
Por su parte la deducción de la componente dual del acelerador, a partir del estado de velocidad, es más
elusiva. Este
procedimiento se aclara si se toma en cuenta que tanto el estado de velocidad como el de aceleración
reducida son vectores de seis dimensiones que satisfacen las condiciones de un campo vectorial
helicoidal, para detalles consulte Gallardo y Rico (1998).
En un manipulador serie el estado de velocidad del órgano terminal, cuerpo m , con respecto al eslabón
base, cuerpo 0 , puede establecerse en términos de los tornillos infinitesimales asociados a los pares
cinemáticos y las velocidades
relativas, ω, como
m−1
i ω i+1
0 V m
i $ i+1 .
= ∑
(4)
i=0
Por su parte el estado de aceleración reducida del órgano terminal, en términos de tornillos infinitesimales,
vendrá dado
por
m−1 m
+$ L
,
(5)
i α i+1 i
0 A
= ∑
R
$ i+1
i=
0
donde, el tornillo de Lie, $ L , se determina a partir de los resultados del análisis de velocidad como
m−2
m−1
j

$ L

=

i ω i+1

i

j=i+1 j ω j

+1

 

. (6)

i=0

$ i+1

j+1

$

   

Las expresiones (4) y (5) son las ecuaciones fundamentales que permiten resolver el análisis cinemático de manipuladores serie y pueden extenderse sin esfuerzo considerable a los análisis de velocidad y de aceleración de cadenas cinemáticas cerradas y por supuesto a los manipuladores paralelos. Para información más detallada de dichas expresiones se sugiere consulte Rico y Duffy (1996).

Referencias

Innocenti , C., Forward kinematics in polynomial form of the general Stewart platform", Proc. 1998 ASME Design Engineering Technical Conference, CD-ROM, Paper DETC98/MECH-5894. Ku, D. -M ., Forward kinematic analysis of a 6-3 type Stewart platform mechanism", IMechE Part K Journal of Multibody Dynamics, Vol. 214, No. K4, pp. 233-241.

Merlet , J. - P., Parallel Robots, Kluwer Academic Publishers, 1999. Merlet , J. - P ., Direct kinematics of parallel manipulators", IEEE transactions on Robotics and Automation, Vol. 9, No. 6, 1993, pp. 842-846. Raghavan, M ., The Stewart platform of general geometry has 40 configurations", ASME Journal of Mechanical Design, Vol. 115, No. 2, 1993, pp. 277-282. Rico, J.M . y Duffy , J ., An application of screw algebra to the acceleration analysis of aerial chains", Mechanism and Machine Theory, Vol. 31, No. 4, 1996, pp. 445-457. Rico, J.M . y Duffy , J ., Forward and inverse acceleration analyses of in-parallel manipulators", ASME Journal of Mechanical Design, Vol. 122, 2000, pp. 299-303.

.

. St - Onge, B.M . y Gosselin, C., “Singularity analysis and representation of the
. St - Onge, B.M . y Gosselin, C., “Singularity analysis and representation of the general Gough-Stewart platform", Int. J.
Robotics Research, Vol. 19, No. 3, 2000, pp. 271-288.
16. Tsai , L.W., Enumeration of Kinematic Structures According to Function, CRC Press, 2001.