Anda di halaman 1dari 29

INSTITUTO TECNOLÓGICO DE ESTUDIOS SUPERIORES DE LA

REGIÓN CARBONÍFERA.
“DR. ROGELIO MONTEMAYOR SEGUY”.

DIVISIÓN ACADÉMICA DE INGENIERÍA MECATRÓNICA.

MODELO CINEMÁTICO DIRECTO DEL ROBOT


CRS ROBOTICS A465.

ALUMNO:

Carlos Fernando Salinas García.

NÚMERO DE CONTROL:

071M0272.

ASESOR DE LA INVESTIGACIÓN:

Ing. Pedro Emanuel Rocha Flores.

Villa de Agujita, Coah., Noviembre de 2011.

1
I. Índice.
1. Planteamiento del problema………………………………………………………….4

2. Objetivos.……………………………………………………………………………….5
2.1 Objetivos generales…………………………………………………………..5
2.2 Objetivos específicos…………………………………………………………5
3. Marco teórico.
3.1 Cinemática de un robot……………………………………………………….6
3.1.1 Matrices de transformación homogénea……………………........7
3.1.2 Algoritmo de Denavit – Hartenberg……………………………….8
3.2 Brazo robot CRS A465……………………………………………………...11
3.3 Controlador C500C…………………………………………..……………...12
3.4 Software Robbcom3…………………………………………………………14
3.5 MATLAB……………………………………………………………………...15
4. Justificación de la investigación………………………………..……………………17
5. Diseño de la investigación.
5.1 Obtención del modelo cinemático mediante el algoritmo de D-H..........18
5.2 Programa de MATLAB del modelo cinemático…………………………..20
5.3 Comparación de resultados……………………………………………......24
6. Obstáculos y alternativas de solución………………………………………….…..27
7. Conclusiones………………………………………………………………………..…28
8. Bibliografía………………………………………………………………………..……29

2
II. Índice de tablas y figuras.

Figura 3.1. Diagrama de relación entre cinemática directa e inversa……………….6

Figura 3.2. Configuración articular del Robot CRS A465……………………………11

Figura 3.3. Componentes del sistema robótico A465………………………………..12

Figura 3.4. Vista frontal del controlador C500C………………………………………13

Figura 3.5. Funciones básicas de Robcomm3………………………………………..14

Figura 3.6. Ventana principal de Robcomm3…………………………………………15

Figura 3.7. Ventana principal de MATLAB……………………………………………16

Figura 5.1. Esquema de la configuración del robot CRS A465……………………..18

Tabla 5.1. Parámetros de Denavit Hartenberg del robot CRS A465……………….19

Figura 5.2. Valores articulares y coordenadas de posición del robot CRS A465…24

Figura 5.3. Simulación de la cinemática directa del robot en MATLAB……………25

Tabla 5.2. Datos arrojados por MATLAB y Robcomm3……………………………..26

3
1. Planteamiento del problema.

Debido a la falta de aplicaciones prácticas de los conocimientos teóricos y


herramientas matemáticas empleadas en robótica, no se logra una correcta
asimilación y aprendizaje de dichas herramientas, ya que los conocimientos
adquiridos solamente se aplican en la resolución de problemas en papel o
software y nunca son llevados a la realidad para poderse verificar, todo esto trae
como consecuencia la falta de interés en el estudio de estos temas.

Con la presente investigación se busca ver de manera práctica la aplicación de las


herramientas matemáticas de robótica auxiliándose del material y equipo con el
que cuenta el ITERSC.

4
2. Objetivos.

2.1 Objetivos generales.

El objetivo de la investigación se divide en dos partes:

1. Obtener el modelo cinemático directo del brazo robot CRS A465, empleado
en el laboratorio de CIM del ITESRC, mediante el método conocido como
algoritmo de Denavit – Hartenberg.

2. Elaborar un programa en MATLAB el cual simule la cinemática de dicho


robot.

2.2 Objetivos específicos.

Demostrar la validez del modelo cinemático del brazo robot CRS A465 mediante la
comparación de los resultados arrojados por el programa en MATLAB con los
proporcionados por el software del robot. Dichos resultados serán calculados
ingresando movimientos reales del robot.

5
3. Marco teórico.

3.1 Cinemática de un robot.

El autor Antonio Barrientos define la cinemática del robot como: “El estudio del
movimiento del mismo con respecto a un sistema de referencia sin considerar las
fuerzas que intervienen”. Así puede decirse que la cinemática del robot se
interesa en estudiar analíticamente el movimiento espacial del robot y
particularmente por describir las relaciones existentes entre la posición y
orientación del extremo del robot con los valores de cada una de sus
articulaciones.

Existen dos problemas a resolver en el estudio de la cinemática del robot, uno de


ellos es la llamada cinemática directa, la cual consiste en determinar cuales serán
la posición y la orientación del extremo del robot, conociéndose los valores
variables de sus articulaciones además de los parámetros geométricos del robot;
el segundo de los problemas es la conocida como cinemática inversa la cual no es
tratada en la presente investigación , la cual busca determinar los valores de las
articulaciones del robot en base a una posición y orientación conocidas.

La figura 3.1 muestra la relación existente entre la cinemática directa e inversa del
robot.

Figura 3.1. Diagrama de relación entre cinemática directa e inversa. (Antonio


Barrientos, Fundamentos de robótica, p.119).
6
Matrices de transformación homogénea.

Se define a una matriz de transformación homogénea, a una matriz de dimensión


4 x 4 que representa la transformación de un vector de coordenadas homogéneas
de un sistema de coordenadas a otro.

[ ] [ ]

Se puede considerar que una matriz homogénea se halla compuesta por cuatro
submatrices de distinto tamaño: una submatriz de rotación, una de traslación, una
que representa una transformación de perspectiva y finalmente una que
representa un escalado global. En robótica generalmente sólo interesa conocer los
valores de las matrices de rotación y traslación, aunque no por esto dejan de ser
útiles en otros campos.

Generalmente se representará una matriz de transformación homogénea como:


lo que indica que esta matriz representa la posición y orientación del eslabón
i con respecto al eslabón i-1.

Los elementos que integran una matriz de transformación homogénea son:

[ ]

Siendo los componentes n, o y a como ya se mencionó anteriormente los


elementos de la matriz de rotación y Px, Py y Pz, las coordenadas cartesianas de
posicionamiento del robot.

7
3.1.2 Algoritmo de Denavit – Hartenberg.

Aunque para describir la relación que existe entre dos elementos contiguos se
puede hacer uso de cualquier sistema de referencia ligado a cada elemento, la
forma habitual que se suele utilizar en robótica es la representación de Denavit-
Hartenberg, la cual es un método matricial que establece la localización que debe
tomar cada sistema de coordenadas * + ligado a cada eslabón i de una cadena
articulada, para poder sistematizar la obtención de las ecuaciones cinemáticas de
la cadena completa.

Escogiendo los sistemas de coordenadas asociados a cada eslabón según la


representación hecha por Denavit – Hartenberg, será posible pasar de uno al
siguiente mediante 4 transformaciones básicas, que dependen exclusivamente de
las características geométricas del eslabón.

Las cuatro transformaciones mencionadas son las siguientes:

1. Rotación alrededor del eje un ángulo


2. Traslación a lo largo de una distancia .
3. Traslación a lo largo de una distancia .
4. Rotación alrededor del eje un ángulo

Donde las transformaciones se refieren al sistema móvil.

Dado que el producto de matrices no es conmutativo, las transformaciones se han


de realizar en el orden indicado, de este modo se tiene que:

( ) ( ) ( ) ( )

Y realizando el producto de matrices se obtiene que:

[ ][ ][ ][ ]

8
[ ]

Donde , , , son los parámetros D-H del eslabón i. De este modo basta con
identificar dichos parámetros para obtener las matrices de transformación que
relacionan así todos y cada uno de los eslabones del robot.

Los siguientes son los pasos a seguir en el algoritmo de Denavit – Hartenberg.

DH 1. Numerar los eslabones comenzando con 1 y acabando con n. Se numerará


como eslabón 0 a la base fija del robot.

DH 2. Numerar cada articulación comenzando con 1 y acabando en n.

DH 3. Localizar el eje de cada articulación. Si ésta es rotativa, el eje será su propio


eje de rotación. Si es prismática, será el eje a lo largo del cual se produce el
desplazamiento.

DH 4. Para i de 0 a n-1 situar el eje sobre el eje de la articulación i+1.

DH 5. Situar el origen del sistema de la base S0 en cualquier punto del eje z0. Los
ejes x0 y y0 se situarán de modo que formen un sistema dextrógiro con z0.

DH 6. Para i de 1 a n-1, situar el origen del sistema Si en la intersección del eje zi


con la línea normal común a zi-1 y zi. Si ambos ejes se cortasen se situaría Si en
el punto de corte. Si fuesen paralelos Si se situaría en la articulación i+1.

DH 7. Situar xi en la línea normal común a zi-1 y zi.

DH 8. Situar yi de modo que forme un sistema dextrógiro con xi y zi.

DH 9. Situar el sistema Sn en el extremo del robot de modo que zn coincida con la


dirección de zn-1 y xn sea normal a zn-1 y zn.

DH 10. Obtener como el ángulo que hay que girar en torno a zi-1 para que xi-1 y
xi queden paralelos.

9
DH 11. Obtener di como la distancia, medida a lo largo de zi-1, que habría que
desplazar Si-1 para que xi y xi-1 quedasen alineados.

DH 12. Obtener a1 como la distancia medida a lo largo del eje xi que habría que
desplazar el nuevo Si-1 para que su origen coincidiese con Si.

DH 13. Obtener como al ángulo que habría que girar en torno a xi para que el
nuevo Si-1 coincidiese totalmente con Si.

DH 14. Obtener las matrices de transformación A.

DH 15. Obtener la matriz T de transformación que relacione el sistema de la base


con el extremo del robot.

DH 16. La matriz T define la orientación y posición del extremo del robot referido a
la base, en función de las n coordenadas articulares.

10
3.2 Brazo robot CRS A465.

El Robot CRS Robotics A465 (Figura 3.1), es un brazo mecánico con seis grados
de libertad. Las dimensiones del robot se asemejan a las del brazo humano en lo
referente a proporción. El robot A465 se puede manejar utilizando el lenguaje
RAPL-III.

Figura 3.2. Configuración articular del Robot CRS A465. (Extraída de “Visión
artificial estéreo con aplicación al control de un brazo robot” por M.C. Marco
Antonio Moreno, p. 9)

Cada grado de libertad se encuentra basado en servomotores con sensores


ópticos que pueden llevar al órgano terminal a las coordenadas u orientaciones
definidas por el usuario. El controlador permite la manipulación del robot ya sea en
coordenadas absolutas con respecto a su espacio de trabajo o en coordenadas
relativas con respecto a su posición, así como la manipulación de cada grado de
libertad. Para que el robot pueda cumplir su tarea se le debe instalar un órgano
terminal adecuado a labor que vaya a realizar.

El robot A465 puede ser operado por una consola de operación vía comunicación
serial o por medio de un sistema de cómputo a través de alguna de las dos
configuraciones de transmisión serial que el controlador tiene ya definidas.

11
Figura 3.3. Componentes del sistema robótico A465. (A465 robot system user
guide, CRS Robotics, p. 1).

3.3 Controlador C500C.

El controlador C500C (Figura 3.3) provee seguridad a los circuitos, alimentación y


control de movimiento para el brazo. Éste controla los motores en cada eje,
mantiene la posición de los motores mediante retroalimentación proveniente de los
encoders, trayectorias computacionales, y almacena las aplicaciones del robot en
la memoria. También detecta condiciones de daño potenciales, tales como
severas colisiones, pérdida de retroalimentación de posición y errores en la
comunicación. Si una de dichas condiciones es detectada, el controlador
inmediatamente envía un paro de emergencia o se apaga.

12
El sistema embebido multi-tarea CRS Robot Operating System (CROS)
proporciona un programa de procesos e interfaces de bajo nivel del sistema de
funciones del robot. Además provee de herramientas de aplicaciones básicas,
incluido el Aplication Shell (ash) un ambiente integrado de desarrollo, compilación
y corrida de aplicaciones del robot en el controlador.

Figura 3.4. Vista frontal del controlador C500C. (A465 robot system user guide,
CRS Robotics, p. 15).

13
3.4 Software Robbcom3.
Robcomm3 es un software de aplicación basado en Windows diseñado para su
uso con RAPL-3 un lenguaje de programación de robots. El ambiente de
desarrollo integrado en el Robcomm3 permite:

- Crear y editar programas de robot como código fuente.


- Compilar código fuente en programas objeto.
- Transferir archivos entre la computadora y el controlador.
- Simplificar la compilación y transferencia con la configuración de las
aplicaciones.
- Comunicar interactivamente con el controlador usando la ventana de
terminal.

A continuación se muestra una pequeña tabla (en idioma inglés) extraída del
manual técnico del software que describe las funciones básicas del Robbcom3.

Figura 3.5. Funciones básicas de Robcomm3. (Robcomm3, CRS Robotics, p.7)

14
Figura 3.6. Ventana principal de Robcomm3.

3.5 MATLAB.

MATLAB es un poderoso sistema computacional de ayuda en los cálculos de


problemas científicos y de ingeniería. El nombre MATLAB se forma con las sílabas
iniciales de MAtrix LABoratory, porque el sistema fue diseñado para hacer el
cómputo de matrices particularmente fáciles.

MATLAB además cuenta con un lenguaje de programación propio (lenguaje M).


Está disponible para Windows, Unix y Apple MacOS X.

Entre sus prestaciones básicas se encuentran la manipulación de matrices, la


representación de datos y funciones, la implementación de algoritmos, la creación

15
de interfaces de usuario y la comunicación con programas en otros lenguajes y
con otros dispositivos hardware.
El paquete MATLAB dispone de dos herramientas adicionales que expanden sus
prestaciones, a saber, Simulink (plataforma de simulación multidominio) y GUIDE
(editor de interfaces de usuario - GUI). Además, se pueden ampliar las
capacidades de MATLAB con las cajas de herramientas (Toolboxes); y las de
Simulink con los paquetes de bloques (blocksets).

Es un software muy usado en universidades y centros de investigación y


desarrollo. En los últimos años ha aumentado el número de prestaciones, como la
de programar directamente procesadores digitales de señal o crear código VHDL.

Figura 3.7. Ventana principal de MATLAB.

16
4. Justificación de la investigación.

Al aplicar en un robot real los conocimientos adquiridos en la materia de robótica,


además del uso de software de simulación matemática, se puede verificar la
validez y precisión del modelo cinemático obtenido, permitiendo realizar las
correcciones necesarias

17
5. Diseño de la investigación.

5.1 Obtención del modelo cinemático mediante el algoritmo de D-H.

Para obtener el modelo cinemático se seguirá el algoritmo de D – H como se


mencionó anteriormente.

DH 1 – DH 9. Numerar eslabones, articulaciones y establecer los sistemas de


coordenadas de cada articulación.

Figura 5.1. Esquema de la configuración cinemática del robot CRS A465.

18
DH 10 – DH 13 Obtener parámetros de Denavit Hartenberg del Robot CRS A465.

Articulación
1 13 0 90º
2 0 12 0º
3 0 0 90º
4 13 0 -90º
5 0 0 90º
6 3 0 0º

Tabla 5.1. Parámetros de Denavit Hartenberg del robot CRS A465.

DH 14. Matrices de transformación.

[ ]

( ) ( ) ( )
( ) ( ) ( )
[ ]

[ ]

[ ]

19
[ ]

[ ]

DH 15. Obtener la matriz de transformación que relaciona el sistema de la base


con el del extremo del robot.

DH 16. La matriz que da como resultado de la multiplicación anterior es muy


extensa por lo que se omite exponerla en este documento. Dejándose solamente
expresada en la fórmula anterior.

5.2 Programa de MATLAB del modelo cinemático.

Una vez que se han obtenido los parámetros de Denavit Hartenberg se procederá
a realizar un programa en MATLAB el cual simule la cinemática del robot.

Para esto primeramente se deben programar ciertas funciones que simplifiquen el


programa principal.

Como se mencionó anteriormente el algoritmo de D – H consiste en una serie de


traslaciones y rotaciones que van relacionando un sistema de coordenada con el
anterior, así que es necesario declarar dichas funciones en MATLAB.

20
Para la rotación alrededor del eje X, se declara la siguiente función:

function rotx=t(alfa)
rotx=[1 0 0 0;0 cos(alfa) -sin(alfa) 0;0 sin(alfa) cos(alfa) 0;0 0 0 1];

Del mismo modo para la rotación alrededor del eje Z, se utiliza:

function rotz=t(theta)
rotz=[cos(theta) -sin(theta) 0 0;sin(theta) cos(theta) 0 0;0 0 1 0;0 0 0
1];

Se omitirá la rotación alrededor del eje Y debido a que no es empleado en D – H.

Sin embargo es necesario utilizar una traslación, para la cual se emplea el


siguiente código.

function trasxyz=t(x,y,z)
trasxyz=[1 0 0 x;0 1 0 y;0 0 1 z;0 0 0 1];

Una vez que se tienen definidas las funciones anteriores se procederá a


establecer la función que hará las cuatro transformaciones necesarias en D – H.

%%Algoritmo de Denavit-Hartenberg
function denhat=t(thetai,di,ai,alfai)
denhat=rotz(thetai)*trasxyz(0,0,di)*trasxyz(ai,0,0)*rotx(alfai);

Lo cual obedece a la formula:

( ) ( ) ( ) ( )

Establecidas todas las funciones necesarias, ya es posible desarrollar el programa


completo que nos describa la cinemática directa del robot.

21
%% Programa de simulación de la cinemática directa de un
%% brazo robot A465 de 6GDL...

%%---------Definición de los parámetros de Denavit-Hartenberg.-----------


%%

clc

%% Ángulos de rotación de cada eje.

theta1=input('Introduce ángulo de joint1: ')*pi/180;


theta2=input('Introduce ángulo de joint2: ')*pi/180 +pi/2;
theta3=input('Introduce ángulo de joint3: ')*pi/180;
theta4=input('Introduce ángulo de joint4: ')*pi/180;
theta5=input('Introduce ángulo de joint5: ')*pi/180;
theta6=input('Introduce ángulo de joint6: ')*pi/180;

%% Desplazamiento en eje Z

d1=13;
d2=0;
d3=0;
d4=13;
d5=0;
d6=3;

%%Desplazamiento en eje X

a1=0;
a2=12;
a3=0;
a4=0;
a5=0;
a6=0;

22
%%Rotación en eje X.

alfa1=pi/2;
alfa2=0;
alfa3=pi/2;
alfa4=-pi/2;
alfa5=pi/2;
alfa6=0;

%%-------- Obtención de las matrices de transformación homogénea. -------


%%

A01=denhat(theta1,d1,a1,alfa1);
A12=denhat(theta2,d2,a2,alfa2);
A23=denhat(theta3,d3,a3,alfa3);
A34=denhat(theta4,d4,a4,alfa4);
A45=denhat(theta5,d5,a5,alfa5);
A56=denhat(theta6,d6,a6,alfa6);

%%--------- Solución al problema cinemático directo. (Matriz T) ---------


%%

T06=A01*A12*A23*A34*A45*A56;

%%-----------------------------------------------------------------------
%%
Px=T06(1,4)
Py=T06(2,4)
Pz=T06(3,4)

23
5.3 Comparación de resultados.

Una vez finalizado el programa se procedió a realizar distintos giros en los ejes de
rotación del robot CRS A465 y comprobar mediante el software del robot la
posición en la cual se encuentra el extremo del robot después de efectuarse los
giros. Posterior a esto serán ingresados los datos de los giros de cada articulación
en el programa realizado en MATLAB, con el objetivo de comparar la posición real
del extremo robot, otorgada por el software del mismo con la posición calculada
por MATLAB.

Para esto se procede primeramente mediante la ventana terminal de Robbcom3 a


ir girando cada uno de los ejes y posteriormente mediante el comando “w0” se
verifica la posición del extremo del robot.

Figura 5.2. Valores articulares y coordenadas de posición del robot CRS A465.

24
Los valores de las coordenadas cartesianas de posición del extremo del robot se
muestran debajo de los encabezados X/TrackX, Y/TrackY y Z.

Una vez realizados los giros en el sistema robótico, se procedió a correr el


programa en MATLAB.

Figura 5.3. Simulación de la cinemática directa del robot en MATLAB.

Una vez entregados los valores por MATLAB, se comparó las Px, Py y Pz tanto de
MATLAB como de Robcomm3.

25
La tabla 5.2 muestra los resultados obtenidos por la simulación en MATLAB y por
el software del robot.

Datos ingresados. Datos entregados por Datos entregados por


MATLAB. CRS Robcomm3.

Tabla 5.2. Datos arrojados por MATLAB y Robcomm3.

26
6. Obstáculos y alternativas de solución.

Los principales obstáculos en el desarrollo de esta investigación han sido la


necesidad de conocimientos previos en el área del álgebra lineal, así como de
la geometría. Además de la poca literatura referente al tema.

Como alternativas de solución cabe mencionar que el algoritmo de Denavit –


Hartenberg no es la única vía de solucionar el problema cinemático directo, no
obstante es la más utilizada en robótica. Otros de los métodos empleados en
este campo es la solución por métodos geométricos y mediante el uso de
cuaternios.

27
7. Conclusiones.

Al finalizar el presente trabajo se comprobó con satisfacción que el modelo


obtenido es 100% confiable, ya que al comparar resultados tanto de MATLAB
como de Robcomm3 se ven por lo general diferencias de milésimas por
cuestiones de redondeo.

Cabe mencionar que para el autor resultó ser una importante herramienta de
aprendizaje que ayudó a la correcta comprensión de dicho tema, esperándose
que sea así también para quienes cursen la materia de robótica en futuros
cursos, o para quien, interesado en el tema, tome como referencia este texto y
busque su ampliación.

Para ampliar el contenido de la presente investigación se recomienda que en


futuros trabajos se utilice el método de cuaternios para obtener la cinemática
directa del robot, con el fin de comprobarse la fiabilidad de ambos
procedimientos; así mismo es de importancia el abarcar también la cinemática
inversa con el fin de obtener el modelo cinemático completo del robot.

28
8. Bibliografía.

[1] A. Barrientos, Fundamentos de robótica 2da. ed., McGraw-Hill / Interamericana


de España, España, 2007.

[2] John J. Craig, Robótica 3ra. ed., Pearson Educación, México, 2007.

[3] A465 Robot System User Guide, CRS Robotics Corporation Products, Estados
Unidos, diciembre de 2001.

[4] Manual de operación del robot 6GL, Instituto Tecnológico de Querétaro,


Querétaro, Qro, 2008.

[5] Brian Hahn & Daniel T. Valentine, Essential MATLAB for Engineers and
Scientists Third Edition, Butterworth-Heinemann, 2007.

29