Sunteți pe pagina 1din 5

FECHA DEL INFORME: 23/03/2016

Informe de Laboratorio 2 Cinematica Directa


Jeisson J.Benavides B., Codigo 285977 jejbenavidesba@unal.edu.co
Carlos A. Salazar S., Codigo 285990 caasalazarsa@unal.edu.co
Javier S. Solano C., Codigo 285724 jssolanoc@unal.edu.co
Estudiantes, Universidad Nacional de Colombia

ResumenEn este laboratorio se presenta un acercamiento


a la cinematica directa y su aplicacion. Para ello, haciendo
uso de un robot pincher de Dynamixel, se recogieron sus los
parametros de sus articulaciones y eslabones, se definio una
posicion inicial y un espacio de trabajo. Con estos datos y
mediante la representacion de Denavit Hatemberg modificada
apoyados en el toolbox de Peter Corke para Matlab se planearon
algunos movimientos para el robot.
Indice de Terminos Matlab, Toolbox Peter Corke, Cinematica
directa, Denavit-Hartenberg.

I.

I NTRODUCCI ON

En el presente informe se muestran las simulaciones


realizadas manejando diferentes herramientas, y los resultados
obtenidos que se relacionan con los conceptos basicos que
fundamentan la robotica, esto, con el objetivo de comprender
la aplicacion de la cinematica directa en los robots. Hay que
tener en cuenta que se definieron experimentalmente una
posicion de HOME para el robot y sus lmites de operacion
por artculacion.
Es importante intuir en esta practica que Matlab contiene
tambien unos conjuntos de herramientas complementarios
permitiendo resolver problemas especiales en diversas a reas
de aplicacion como por ejemplo: el complemento ToolBox
de Peter Corke. Entonces, se planteo realizar un movimiento
del robot usando el modelamiento con los parametros de
Denavit-Hartenberg modificados con el Toolbox.
Adicionalmente, para entender un poco mas el desarrollo
de la practica, se escriben las matrices de transformacion
encontradas y las lneas de codigo utilizadas para generar
un robot a partir de los parametros de Denavit-Hartenberg
modificados.

Figura 1: Diagrama de alambres en la posicion HOME.

Se llevaron manualmente los motores a la posicion HOME


como se ve en la figura 2.
Se obtuvieron los siguientes datos:

II.

D ESARROLLO DE LA PR ACTICA

Esta practica se divide en dos partes: Una sesion de laboratorio y Una sesion en casa
II-A.

Sesion de laboratorio

Para la posicon de HOME se extendio completamente el


robot dejando todos sus eslabones en posicon vertical y el
gripper totalmente abierto.
Este robot presenta articulaciones de tipo rotacional y un
gripper como efector final.
El diagrama de alambres correspondiente a la posicion de
HOME se presenta en la Figura 1.

Cuadro I: Valor real de los motores en la posicion HOME


Articulacion
q1
q2
q3
q4
Gripper

Teorica
512
512
512
512
512

Motores
510
509
512
511
510

Como se puede obsevar en el cuadro I no todos los valores


de los motores coinciden con los valores reales pero son muy
proximos.

FECHA DEL INFORME: 23/03/2016

Donde L1 = 0cm L2 = 10, 6cm y L3 = 10, 6cm


Ademas, tenemos para la herramienta que
Lt = 9, 3cm
b. Fue necesario hacer algun cambio al diagrama
de alambres original?
Si fue necesario, ya que al desplazar la ubicacion
teorica de algunas articulaciones sobre su mismo
eje de giro conseguimos reducir a cuatro la tabla
de parametros a completar de Denavyt-Hartenberg.

Figura 2: robot en la posicion HOME.

Posteriormente se encontaron los valores lmite fsicos de


cada articulacion. Para esto se movio manualmente el robot.
Los valores lmites se encontraron haciendo uso del programa
RoboPlus, y se encuentran consignados en el cuadroII.
Cuadro II: Lmites de cada articulacion
Lmite
q1
q2
q3
q4
Gripper

Superior
1023
152
127
161
0

Inferior
300
900
940
827
512

El sentido de giro de los motores se verifico. El motor


de la primera articulacion gira en sentido opuesto al de las
manecillas del reloj visto desde arriba, por lo tanto el eje Z1
se ubica en posicion vertical hacia arriba. Para los ejes Z1,
Z2, Z3 y Z4, dado que los motores tienen el mismo sentido
de giro, se ubicaron iguales, el posicion horizontal.
Finalmente para el gripper, se definieron sus ejes To(open),
Ta(approach) y Tn (normal). Todo se encuentra dibujado en
el diagrama de alambres presente en la Figura 1.
II-B.

Sesion en casa

1. Parametros Denavit-Hartenberg del robot


Para la sesion en casa se solicita encontrar los
parametros DH modificados para el robot (Se
recomienda colocar teoricamente las dos u ltimas
articulaciones en el lugar donde se interceptan los ejes
zetas. En adelante se llamara a esta posicion como
muneca). Entonces, una vez se han colocado los ejes
X de cada sistema coordenado consiguiendo que los
valores de sean positivos, se realiza lo siguiente:
a. Segun la figura 3, llene la tabla 3.
La tabla de parametros de Denavyt-Hartenberg se
presenta a continuacion:
i
1
2
3
4

a(i-1)
0
L1
L2
L3

(i-1)
0
/2
0
0

d(i)
0
0
0
0

(i)
q1
q2
q3
q4

c. Recuerde hallar la transformacion para llegar


desde la u ltima articulacion hasta el efector final
(tool/Gripper). En el efector final el eje z debe
coincidir con el eje de approach.
Entonces, partiendo de la tabla de parametros de
Denavyt-Hartenberg y del analisis sobre el movimiento de cada par cinematico, se generan las
matrices de transformacion entre las articulaciones
que se presentan a continuacion:

Cos(q1 ) Sen(q1 ) 0 L0
Sen(q1 ) Cos(q1 ) 0 0
0

T1 =
0
0
1 0
0
0
0 1

Cos(q2 ) Sen(q2 ) 0 0
0
0
1 0
1

T2 =
Sen(q2 ) Cos(q2 )
0 0
0
0
0 1

Cos(q3 ) Sen(q3 ) 0 L1
Sen(q3 ) Cos(q3 ) 0 0
2

T3 =
0
0
1 0
0
0
0 1

Cos(q4 ) Sen(q4 ) 0 L2
Sen(q4 ) Cos(q4 ) 0 0
3

T4 =
0
0
1 0
0
0
0 0

1
4
TT =
0
0

0
0
1
0

1 LT
0 0

0 0
0 1

Para una mejor comprension de los valores contenidos en la matriz a continuacion utilizaremos las
siguientes equivalencias:
a = Sen(q1 + q2 + q3 + q4 ).
b = Sen(q1 q2 q3 q4 ).
c = Cos(q1 + q2 + q3 + q4 ).
d = Cos(q1 q2 q3 q4 ).
e = Sen(q2 + q3 + q4 ).
f = Cos(q2 + q3 + q4 ).
g = Sen(q2 + q3 ).

FECHA DEL INFORME: 23/03/2016

h = Cos(q2 + q3 ).
i = Sen(q1 ).
j = Sen(q2 ).
k = Cos(q1 ).
l = Cos(q2 ).
m = L1 .
n = L2 .

(b a)/2

(c d)/2
0
T4 =

f
0

robot =
S e r i a l L i n k ( L , name , r o b o t ) ;
robot . tool = tool ;
end
Se grafica el robot mostrado en la figura 3.

(c d)/2
(b a)/2
e
0

k
k
0
0

k(n g) + (m j)
i(n g) + (m j)

(n h) + (m l)
1

Al multiplicarlo por la matriz de la herramienta


tenemos.

0T

(c d)/2
(b a)/2

T =
e
0

k
k
0
0

(b a)/2
(c d)/2
f
0

(b a)/2 LT k(n g) + (m j)
(c d)/2 LT i(n g) + (m j)

f LT (n h) + (m l)
1

2. Comprobacion con Matlab


a.

Generar un robot a partir de los parametros


modificados de Denavit-Hartenberg (Utilice la
funcion SerialLink del toolbox o la funcion
crearRobot)
Usando el siguiente codigo creamos el robot.
n = 5;
d1 = 1 3 . 7 ;
L1 = 0 ;
L2 = 1 0 . 6 ;
L3 = 1 0 . 6 ;
L4 = 9 . 3 ;
pdhm ( 1 , : ) = [ 0 0 0 0 0 0 ] ;
pdhm ( 2 , : ) = [ 0 d1 0 0 0 0 ] ;
pdhm ( 3 , : ) = [ 0 0 L1 p i / 2 0 p i / 2 ] ;
pdhm ( 4 , : ) = [ 0 0 L2 0 0 0 ] ;
pdhm ( 5 , : ) = [ 0 0 L3 0 0 0 ] ;
t o o l = [ 0 0 L4 p i / 2 ] ;
Ttool = t r a n s l ([ tool (1 ,3) 0 0])
t r o t y ( p i / 2 ) t r o t z ( p i / 2 )
transl ([0 0 tool (1 ,2)]);
[ r o b o t ] = c r e a r R o b o t ( pdhm , n , T t o o l )
figure (1);
robot . plot ([0 0 0 0 0]);
zlim ([0 60])
La funcion crearRobot se muestra a continuaci`on:
function [ robot ] =
c r e a r R o b o t ( mdh , n , t o o l )
f o r i =1: n ;
L ( i ) = L i n k ( [ mdh ( i , 1 )
mdh ( i , 2 ) mdh ( i , 3 )
mdh ( i , 4 ) mdh ( i , 5 ) ] , m o d i f i e d ) ;
L ( i ) . o f f s e t = mdh ( i , 6 ) ;
end

Figura 3: Diagramacion del Robot en Matlab


b. Modificar los rangos las variables articulares
de los robots simulados a partir de los lmites
medidos sobre el robot real.
Estas lneas de codigo permiten modificar
los lmites del robot, se usan entonces los lmites
hayados en la sesion de laboratorio,
infMotores =
[ 0 300 152 127 1 6 1 ] ;
supMotores =
[ 0 1023 900 940 8 2 7 ] ;
homeMotores =
[ 0 512 512 512 5 1 2 ] ;
maxMotoresGrados =
[ 0 300 300 300 3 0 0 ] ;
f o r i =1: n
min ( i ) =
u12u2 ( i n f M o t o r e s ( i ) homeMotores ( i )
, maxMotoresGrados ( i ) , 0 , 1 0 2 3 , 0 , 6 0 )
pi /180;
max ( i ) = u12u2 ( s u p M o t o r e s ( i )
homeMotores ( i ) , maxMotoresGrados ( i )
,0 ,1023 ,0 ,60) pi /180;
end
min
max
f o r i =1: n ;
r o b o t . l i n k s ( i ) . qlim =
[ min ( i ) max ( i ) ] ;
end
La funcion u12u2 se muestra a continuacion:
function [ valor2 ] =
u12u2 ( v a l o r 1 , max2 , min2 ,

FECHA DEL INFORME: 23/03/2016

max1 , min1 , o f f s e t )
valor2 = ( valor1 + o f f s e t )
( max2min2 ) / ( max1min1 ) ;
end
c. Obtener la matriz de transformacion homogenea
desde la base al efector final del robot.
Para obtener la matriz de tranformacion
homogenea usamos el siguiente codigo, hay que
resaltar que T es la matriz de tranformacion, H es
la misma matriz usando una funcion del toolbox
para comprobar, Pos es el vector de posicion
final, los dos u ltimos son las representaci`on de la
orientacion final en roll-pitch-yaw y en a ngulos
de euler:
q g r a d = [ 0 0 45 45 45];
q = qgrad pi / 1 8 0 ;
T = transl ([0 0 0]);
f o r i =1: n ;
T = T r o b o t . l i n k s ( i ) . A( q ( i ) )
end
T = T T t o o l
H = robot . fkine (q)
pos = t r a n s l (T)
or rpy = tr2rpy (T)
or zyz = t r 2 e u l (T)
Para este caso tenemos unos a ngulos q1 = 0,
q2 = 45o , q3 = 45o , q4 = 45o . La matriz de
transformacion resultante es:

0,707 0 0,707 24,67


0
1
0
0
0

TT =
0,707 0 0,707 14,62
0
0
0
1

i f ( pos ( 3 ) < 0)
alturaNegativa = 1
else
alturaNegativa = 0
end
i f ( f u e r a D e R a n g o == 0
&& a l t u r a N e g a t i v a == 0 )
robot . plot (q ) ;
h o l d on ;
t r p l o t (T ) ;
zlim ([0 60])
else
d i s p l a y ( Los v a l o r e s de l a s
variables articulares
no s o n v a l i d o s ) ;
end
Graficamos entonces las siguientes poses:

Figura 4: Grafica Robot q = [0 45 45 45]

d. Graficar varias poses del robot empleando las


funciones del toolbox.
Para esto utilizamos las siguientes lneas de
codigo:
q g r a d = [ 0 0 0 60 90];
q = qgrad pi / 1 8 0 ;
T = transl ([0 0 0]);
f o r i =1: n ;
T = T r o b o t . l i n k s ( i ) . A( q ( i ) )
end
T = T T t o o l
H = robot . fkine (q)
pos = t r a n s l (T)
or rpy = tr2rpy (T)
or zyz = t r 2 e u l (T)
i f ( norm ( r o b o t . i s l i m i t ( q ) ) = = 0 )
fueraDeRango = 0
else
fueraDeRango = 1
end

Figura 5: Grafica Robot q = [0 0 90 90]

Figura 6: Grafica Robot q = [0 0 60 90]

FECHA DEL INFORME: 23/03/2016

3. Preguntas

a. Si fija la primera articulacion y mueve la segunda


y la tercera articulacion. Esto afecta el angulo
(coordenadas esfericas) de la posicion de la
muneca?
Considerando que lac coodenadas polares se
representa con un radio y dos a ngulos, los cuales
son colatitud y azimut se concluye que s se
modifica el a ngulo de azimut s cambia, mas sin
embargo, el a ngulo de colatitud no tiene cambios.
b. Si mueve las dos u ltimas articulaciones del robot,
cambia la posicion de la muneca?
En el caso de nuestro robot Pincher la posicion
de la muneca s cambia ya que contamos con una
muneca de solo un grado de libertad, por lo que
las u ltimas dos articulaciones no hacer parte de
e sta, razon por la cual su posicion cambia al estar
en movimiento el eslabon anterior.
c. Si se fijan las tres primeras articulaciones de
la muneca.Como afecta cada articulacion de la
muneca a la orientacion del tool en representacion
ZYZ? Alguno de los parametros de orientacion
no se puede cambiar con la muneca? Justique su
respuesta.
Teniendo en cuenta nuevamente que la muneca
del pincher cuenta con solo un grado de libertad
solo se puede considerar giros en y, siguiendo el
sistema de coordenadas de matlab, por lo que la
muneca no puede cambiar los parametros para el
eje z sistema.
d. Teniendo definido el robot y la transformacion
homogenea del tool es posible hallar la posicion
de la muneca?. Si es posible, como lo hara?
S es posible, se hallara entonces a partir
de la Transformaci`on homogenea del tool al cual
al sacar la matriz homogenea inversa tendramos
la matriz de la muneca con respecto al tool, luego
se postmultiplicaria por la matriz del robot
e. Si se mueven las dos u ltimas articulaciones
cambia la posicion del tool?
S, ya que la muneca solo cuenta con una
articulacion rotacional que gira entorno al eje
y,por lo que implica el movimiento del eslabo
anterior que igualmente tiene una artculacion
rotacional que gira en y.
f. Alguna de las articulaciones no afecta la

orientacion del tool?


No, todas las artculaciones lo modifican, aunque
igualmente es posible hayar una configuracion
conjunta entre estas que logren que la orientacion
del tool permanezca igual en dos posciones
distintas.

III.

C ONCLUSIONES

El movimiento del robot por software puede ocasionar


danos al mismo si antes no se verifican los lmites
fsicos de las articulaciones y no se ajusta el valor del
torque para que se puedan prevenir posibles colisiones.
Una vez obtenidas las matrices de traslacion, se pueden
tratar como ecuacion, es decir podemos despejar
cualquiera de ellas, siempre recordando premultiplicar
las matrices inversas.
La representacion matricial de Denavit-Hartenberg
permite obtener la cinematica directa de una manera
sencilla para robots independientemente de los grados
de libertad que posea el mismo.
Al realizar la simulacion del robot a partir de
los parametros de la tabla de Denavit-Hartenberg
encontramos que se puede observar el movimiento de
cada uno de los eslabones del robot.

R EFERENCIAS
[1] Matlab y robotica. Hernando Miguel 2012. http://www.elai.upm.
es/moodle/pluginfile.php/1452/mod resource/content/0/MatLab y
Robotica.pdf
[2] Robotics, vision and control- Peter Corke- http://www.petercorke.com/
Book.html
[3] MATLAB - The Language of Technical Computing. MATLAB R2013b.
[4] AX-12/ AX-12+/ AX-12A MANUAL. Paginas: 1 http://support.robotis.
com/en/product/dynamixel/ax series/dxl ax actuator.htm.

S-ar putea să vă placă și