Está en la página 1de 203

Instituto Politcnico Nacional

ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA


SECCIN DE ESTUDIOS DE POSGRADO E INVESTIGACIN

METODOLOGA PARA
GENERACIN DE TRAYECTORIAS
DE MANIPULADORES
ROBTICOS, SU CINEMTICA Y
DINMICA

T E S I S
QUE PARA OBTENER EL GRADO DE
MAESTRO EN CIENCIAS
CON ESPECIALIDAD EN
INGENIERA MECNICA
P R E S E N T A :

ING. EMMANUEL ALEJANDRO MERCHN CRUZ

DIRIGIDA POR: DR. GUILLERMO URRIOLAGOITIA CALDERN

MXICO, D.F. 2000


La imaginacin es ms importante que el conocimiento
Albert Einstein
a mis padres
ndice
ndice........................................................................................................................ i
ndice de Tablas y Figuras ..................................................................................... iv
Simbologa. ........................................................................................................... viii
Resumen. ................................................................................................................ x
Abstract. ................................................................................................................. xi
Justificacin............................................................................................................xii
Objetivo. .................................................................................................................xii
Introduccin........................................................................................................... xiii

1. Estado del Arte.................................................................................................... 2


1.1 Antecedentes Generales ............................................................................... 2
1.2 Antecedentes Especficos.............................................................................. 9

2. Fundamentos Tericos...................................................................................... 16
2.1 Cinemtica de Manipuladores Robticos..................................................... 16
2.1.1 Representacin de la Orientacin entre Sistemas de
Coordenadas......................................................................................... 16
2.1.1.1 Matrices de Rotacin. ..................................................................... 17
2.1.1.2 Otros Mtodos para Representar la Orientacin de
Sistemas de Coordenadas. ........................................................... 22
2.1.2 Matrices de Transformacin Homognea. ............................................ 23
2.1.3 Asignacin de Sistemas de Coordenadas a Manipuladores
Robticos (Parametrizacin de Manipuladores Robticos)................... 26
2.1.4 Representacin de Denavit y Hartenberg. ............................................ 27
2.2 Dinmica de Manipuladores Robticos........................................................ 32
2.2.1 Formulacin de Bsica. ......................................................................... 34
2.2.2 Formulacin de Lagrange. .................................................................... 37
2.2.2.1 Dinmica Lagrangiana de un Manipulador de dos
grados de Libertad. ....................................................................... 38
2.3 Control de Manipuladores Robticos. .......................................................... 42
2.3.1 Control de la velocidad de motores de C.D. ......................................... 45
2.3.2 Ley de control en lazo abierto de manipuladores robticos. ................. 50
2.3.3 Ley de control del Torque Calculado..................................................... 51

3. El robot de 5 Grados de Libertad Mitsubishi Movemaster como


Caso de Estudio............................................................................................... 55
3.1 Descripcin del Manipulador Robtico Mitsubishi........................................ 55
3.1.1 Sistemas de Coordenadas sobre los que se desplaza el
robot Mitsubishi Movemaster................................................................. 57
3.2 Planteamiento del problema cinemtico. ..................................................... 57
3.2.1. Obtencin de las ecuaciones de diseo del Manipulador. ................... 57
3.2.2. Planteamiento de la Solucin a la Cinemtica Directa e
Inversa del Manipulador. ....................................................................... 61
3.2.2.1 Cinemtica Directa. ........................................................................ 61
3.2.2.2 Cinemtica Inversa. ........................................................................ 63
3.3 Planteamiento del Problema Dinmico. ....................................................... 67
3.3.1 Obtencin del Modelo Dinmico del Manipulador. ................................ 68
3.3.2 Planteamiento de la solucin a la Dinmica del
Manipulador........................................................................................... 72

4. Generacin de Trayectorias. ............................................................................. 75


4.1 Metodologa para la generacin de trayectorias. ......................................... 76
4.2 Parametrizacin de Trayectorias. ................................................................ 77
4.3 Cinemtica de la generacin de trayectorias. .............................................. 86
4.4 Dinmica en la generacin de trayectorias. ................................................. 91

5. Desarrollo Experimental Derivado de este Trabajo. ........................................ 106


5.1 Proyecto de Implementacin de las Tcnicas de Control PID
en un Manipulador Robtico de Tres Grados de Libertad ....................... 106
5.1.1 Descripcin fsica ................................................................................ 108
5.1.2 Modelado Matemtico y Solucin a la Cinemtica Directa e
Inversa. ............................................................................................... 111
5.1.3 Implementacin de Tcnicas de Control para el robot
R3GL................................................................................................... 117
5.1.3.1 Accin de control Proporcional ..................................................... 117
5.1.3.2 Accin de control Integral ............................................................. 118
5.1.3.3 Accin de control Proporcional-Integral ........................................ 118
5.1.3.4 Accin de control Proporcional-Derivativo .................................... 119
5.1.3.5 Accin de control Proporcional Integral Derivativo ....................... 120
5.1.4 Funcin de Transferencia de un Controlador PID Digital .................... 120
5.1.5 Descripcin del Sistema de Control del Manipulador
Robtico R3GL.................................................................................... 126
5.1.6 Estado actual del Proyecto de Investigacin. ...................................... 127

CONCLUSIONES................................................................................................ 129

REFERENCIAS................................................................................................... 132

ANEXOS ...............................................................................................................A1
ANEXO 1. Programas en Matlab ....................................................................A2
ANEXO 2. Listado para el Modelado en Realidad Virtual del Robot
Mitsubishi Movemaster. .................................................................A14
ANEXO 3. Grficas correspondientes a las 21 posiciones que
conforman la trayectoria abc..........................................................A24
ANEXO 4. Programas del proyecto de implementacin. .................................A32
ANEXO 5. Diagramas de conexin del manipulador robtico
R3GL. ............................................................................................A39
ANEXO 6. Publicacin generada de sta tesis................................................A41
ndice de Tablas y Figuras
FIGURA 1.1 TELAR AUTOMTICO DE JACUARD................................................ 2
FIGURA 1.2 CONFIGURACIN CARTESIANA O PRISMTICA ........................... 5
FIGURA 1.3 CONFIGURACIN CILNDRICA. ....................................................... 6
FIGURA 1.4 CONFIGURACIN ESFRICA O POLAR.......................................... 6
FIGURA 1.5 CONFIGURACIN DE BRAZO ARTICULADO. ................................. 7
FIGURA 1.6 CONFIGURACIN SCARA ................................................................ 7
FIGURA 1.7 POSICIONAMIENTO Y ORIENTACIN DEL EFECTOR
FINAL. .................................................................................................. 8
FIGURA 1.8 ORIENTACIN DEL EFECTOR FINAL. ............................................. 8

FIGURA 2.1.- REPRESENTACIN DE SISTEMAS DE


COORDENADAS................................................................................ 17
FIGURA 2.2.- (A) ROTACIN ALREDEDOR DEL EJE X, GRADOS;
(B) ROTACIN ALREDEDOR DEL EJE Y, GRADOS;
(C) ROTACIN ALREDEDOR DEL EJE Z GRADOS. .................... 18
FIGURA 2.3.- OBTENCIN DE LA MATRIZ DE ROTACIN
RESULTANTE. ................................................................................... 20
FIGURA 2.4.- MATRIZ DE TRANSFORMACIN HOMOGNEA......................... 24
FIGURA 2.5.- MATRICES DE BSICAS DE ROTACIN
HOMOGNEAS ................................................................................. 25
FIGURA 2.6.- MATRIZ DE TRASLACIN HOMOGNEA BSICA...................... 25
FIGURA 2.7 DIFERENTES CONVENCIONES PARA LA
ASIGNACIN ..................................................................................... 27
DE SISTEMAS DE COORDENADAS ................................................................... 27
FIGURA 2.8 PARMETROS DE D-H. ................................................................. 30
FIGURA 2.9 MANIPULADOR DE DOS GRADOS DE LIBERTAD. ....................... 38
FIGURA 2.10 CAMBIOS EN LA ENTRADA DE UN SISTEMA DE
CONTROL .......................................................................................... 42
FIGURA 2.11 ERROR DE SEGUIMIENTO DEBIDO AL EFECTO
DINMICO.......................................................................................... 43
FIGURA 2.12 SISTEMA MASA-RESORTE-AMORTIGUADOR............................ 44
FIGURA 2.13 DIAGRAMA POLOS-CEROS A)POLOS SIMPLES; B)
POLOS COMPLEJOS ........................................................................ 44
FIGURA 2.14 ESTRUCTURA BSICA DE CONTROL DE POSICIN ................ 50

FIGURA 3.1 ROBOT MITSUBISHI MOVEMASTER ............................................. 55


FIGURA 3.2 DIMENSIONES (EN MM.) DEL ROBOT MOVEMASTER ................ 55
FIGURA 3.3 SISTEMA MOVEMASTER................................................................ 56
FIGURA 3.4 GRADOS DE LIBERTAD DEL MOVEMASTER................................ 56
FIGURA 3.5 POSICIN INICIAL PARA LA ASIGNACIN DE
SISTEMAS DE COORDENADAS ...................................................... 58
FIGURA 3.6 SISTEMAS DE COORDENADAS PARA EL ROBOT ....................... 58
TABLA 3.1 PARMETROS DE D-H...................................................................... 59
FIGURA 3.7 DIAGRAMA DE FLUJO DE LA FUNCIN CDMOVER..................... 62
FIGURA 3.8 DIAGRAMA DE FLUJO DE LA FUNCIN NEWTON. ...................... 67
i
FIGURA 3.9 PUNTO ri EN EL SISTEMA DE COORDENADAS DE LA
ARTICULACIN. ................................................................................ 68
FIGURA 3.10 DIAGRAMA DE FLUJO PARA LA FUNCIN NUM1. ..................... 72

FIGURA 4.1 TRAYECTORIA DEL EFECTOR FINAL ENTRE DOS


PUNTOS............................................................................................. 76
FIGURA 4.2 SISTEMAS DE COORDENADAS DEL ROBOT Y DE
OBJETOS EN SU ENTORNO ............................................................ 78
FIGURA 4.3 RUTA A SEGUIR POR EL MANIPULADOR..................................... 79
FIGURA 4.4 DEFINICIN DE LAS LIGADURAS DE CAMINO............................. 79
FIGURA 4.5 ESTABLECIMIENTO DE LA ORIENTACIN DESEADA
DURANTE LA TRAYECTORIA. ......................................................... 80
FIGURA 4.6 IDENTIFICACIN DE LAS ORIENTACIONES
DESEADAS. ....................................................................................... 81
FIGURA 4.7 ANLISIS DE LA TRAYECTORIA PARCIAL BC.............................. 84
FIGURA 4.8 ANLISIS DE VARIACIN ANGULAR EN LA
ORIENTACIN................................................................................... 84
FIGURA 4.9 ANLISIS CINEMTICO TRAYECTORIA ABC ............................ 88
FIGURA 4.10 CONFIGURACIN RESULTANTE
CORRESPONDIENTE AL PUNTO A. ................................................ 89
FIGURA 4.11 CONFIGURACIN RESULTANTE
CORRESPONDIENTE AL PUNTO A1................................................ 90
FIGURA 4.12 CONFIGURACIN RESULTANTE
CORRESPONDIENTE AL PUNTO B9................................................ 90
FIGURA 4.13 CONFIGURACIN RESULTANTE
CORRESPONDIENTE AL PUNTO B. ................................................ 91
TABLA 4.1 VELOCIDADES ANGULARES (RAD/SEG) ........................................ 93
TABLA 4.2 ACELERACIONES ANGULARES (RAD/SEG^2) .............................. 94
FIGURA 4.14 VELOCIDADES ANGULARES EN LAS
ARTICULACIONES (RAD/S).............................................................. 95
FIGURA 4.15 ACELERACIONES EN LAS ARTICULACIONES
(RAD/S^2)........................................................................................... 96
TABLA 4.3 TORQUES APLICADOS EN LAS ARTICULACIONES
PARA GENERAR LA TRAYECTORIA ABC (N-M) ............................. 97
FIGURA 4.16 TORQUE ARTICULACIN 1 .......................................................... 98
FIGURA 4.17 TORQUE ARTICULACIN 2 ......................................................... 98
FIGURA 4.18 TORQUE ARTICULACIN 3 ........................................................ 99
FIGURA 4.19 TORQUE ARTICULACIN 4 ........................................................ 99
FIGURA 4.20 TORQUE ARTICULACIN 5 ....................................................... 100
TABLA 4.4.- TORQUES CONSIDERANDO UNA CARGA DE 1.5 K.G
EN EL EFECTOR FINAL (N-M)........................................................ 101
FIGURA 4.21 COMPARACIN T1 VS T1......................................................... 102
FIGURA 4.22 COMPARACIN T2 VS T2.......................................................... 102
FIGURA 4.23 COMPARACIN T3 VS T3......................................................... 103
FIGURA 4.24 COMPARACIN DE T4 VS T4................................................... 103
FIGURA 4.25 COMPARACIN T5 VS T5.......................................................... 104
FIGURA 5.1 DIMENSIONES GENERALES (EN MM) DEL
MANIPULADOR R3GL, VISTA LATERAL ....................................... 109
FIGURA 5.2 DIMENSIONES GENERALES (EN MM) DEL
MANIPULADOR R3GL, VISTA SUPERIOR ..................................... 110
FIGURA 5.3 DIMENSIONES GENERALES (EN MM) DEL
MANIPULADOR R3GL, VISTA FRONTAL ....................................... 110
FIGURA 5.4 POSICIN DE SISTEMA DE COORDENADAS CERO. ................ 111
FIGURA 5.5 ASIGNACIN DE SISTEMAS DE COORDENADAS. .................... 111
TABLA 5.1 PARAMETROS DE D-H PARA EL ROBOT R3GL............................ 111
FIGURA 5.6 POSICIN INICIAL (0 0 0 90 0)...................................................... 113
FIGURA 5.7 POSICIN1 (90 0 0 90 0) ............................................................... 113
FIGURA 5.8 POSICIN 2 (0 45 45 180 0) ........................................................ 114
FIGURA 5.9 POSICIN 3 (0 90 90 180 0) ........................................................ 115
FIGURA 5.10 POSICIN 4 (45 90 90 180 0) .................................................... 116
FIGURA 5.11 POSICIN 5 (0 45 90 135 0) ...................................................... 117
FIGURA 5.12 ANLISIS DEL COMPORTAMIENTO DEL ERROR
E(T), Y COMPORTAMIENTO DE LA SEAL
MANIPULADA U(T) PARA UN CONTROL PI .................................. 119
FIGURA 5.13 ANLISIS DEL COMPORTAMIENTO DEL ERROR
E(T), Y COMPORTAMIENTO DE LA SEAL
MANIPULADA U(T) PARA UN CONTROL PD................................. 119
FIGURA 5.14 ANLISIS DEL COMPORTAMIENTO DEL ERROR
E(T), Y COMPORTAMIENTO DE LA SEAL
MANIPULADA U(T) PARA UN CONTROL PID................................ 120
FIGURA 5.15 DIAGRAMA DE FLUJO PARA LA IMPLEMENTACIN
DEL PID DIGITAL............................................................................. 122
FIGURA 5.16 DIAGRAMA DE FLUJO DE LAS SUBRUTINAS
RECTSU Y RECTBA ........................................................................ 123
FIGURA 5.17 DIAGRAMA DE FLUJO DE LA SUBRUTINA PID......................... 124
FIGURA 5.18 DIAGRAMA ESQUEMTICO DEL SISTEMA DE
CONTROL DEL MANIPULADOR ROBTICO R3GL....................... 126
Simbologa.
xyz - sistema de coordenadas fijo
x0 y0 z0 - sistema de coordenadas de la base del manipulador
xn yn zn - sistema de coordenadas de la base del manipulador
uvw - sistema de coordenadas fijo
R, [R] - matriz de rotacin 3 x 3
T , [T ] - matriz de transformacin homognea 4 x 4
I3 - matriz identidad 3 x 3
I4 - matriz identidad 4 x 4

i j k - vectores unitarios
- desplazamientos angulares
i - ngulo entre eslabones
ai , d i , i , i - parmetros de Denavit y Hartenberg
axyz - vector de posicin respecto al sistema de coordenadas xyz
auvw - vector de posicin respecto al sistema de coordenadas uvw

[A]T - matriz transpuesta


Q, (q0 , q ) - cuaternion
i 1
Ai - matriz de transformacin homognea para los sistemas de
coordenadas i e i 1 .
0
Tn - matriz del robot
n - grados de libertad
F - fuerza
m - masa
ri - vector de posicin
r&
i,v - vector de velocidad lineal
&
r&
i,a - vector de aceleracin lineal
gj - restricciones del sistema
qi - coordenada generalizada
i - fuerza generalizada
L - Lagrangiano del manipulador
K - energa cintica
P - energa potencial
- velocidad angular
- aceleracin angular
J - matriz Jacobiana
V - voltaje
I - corriente elctrica
E - fuerza electromotriz
d - posicin angular deseada
&d - velocidad angular deseada
&
&d - aceleracin angular deseada
vv - vector variable
vc - vector constante
Resumen.

En este trabajo se presenta una metodologa que permite obtener los parmetros
necesarios para la generacin de trayectorias de manipuladores robticos fuera de
lnea, como son: los vectores de posicin angular que resulten en la configuracin
espacial del manipulador que se requiere durante la trayectoria deseada, y los
vectores de fuerza o torque necesarios para que se cumplan las condiciones
dinmicas de movimiento. Partiendo de un anlisis cinemtico y dinmico del
manipulador y de la tarea a desempear por este. Desarrollando tambin, las
herramientas de cmputo necesarias para este fin.

Se presenta tambin el trabajo experimental desarrollado, que contempla el diseo


y construccin de un manipulador de 3 grados de libertad y la implementacin de
tcnicas de control para este.

En la versin en disco compacto (en formato HTML), se incluye la animacin del


manipulador generando la trayectoria deseada, los listados de los programas
necesarios para la implementacin del control PID (ProporcionalIntegral
Derivativo), el listado para el modelado virtual del manipulador y los listados
necesarios para la solucin a la Cinemtica y Dinmica en MATLab, para su uso
posterior.

Este trabajo esta disponible en Internet en las direcciones electrnicas


http://pathfinder.esimez.ipn.mx/Robotica y http://robotica.mexico.com.mx.
Abstract.

A methodology to obtain, offline, the parameters for the trajectory generation of


robotic manipulators is presented in this work. Parameters such as the angular
position vectors, that conform the desired trajectory in the Cartesian space, and the
force vectors which are required to fulfill the dynamic conditions of movement are
obtained from kinematic and dynamic analysis of the robot manipulator and, the
task to be carried out by it. The computer tools for this purpose are developed as
well.

It is presented, as well, the experimental work done so far, which includes the
design and construction of a 3 dof robot manipulator, and the implementation of
control techniques for its operation.

The CD version (in HTML format) includes: the animation of the desired trajectory
followed by the robot manipulator, the programs of implementation for the PID
control techniques for the robot, the program for virtual modeling of the robot
manipulator, and the programs to solve the Kinematics and Dynamics with
MATlab, for its further use.

This work is also available in Internet at http://pathfinder.esimez.ipn.mx/Robotica


and http://robotica.mexico.com.mx.
Justificacin.

Actualmente, uno de los principales problemas que presentan las industrias que
tienen implementadas en su lnea de produccin clulas de manufactura robticas,
son los denominados tiempos muertos derivados de la reprogramacin de un
manipulador robtico. Esta, en el contexto de la industria nacional, es en su
mayora gestual y textual, lo que obliga a detener la lnea de produccin por
espacio de muchas horas, periodo en el cual, los tcnicos identifican en un modelo
fsico, los puntos que habrn de definir la trayectoria a seguir por el robot, para
posteriormente programar la secuencia de movimientos del mismo.

El estudio de la generacin de trayectorias de un manipulador robtico, es de gran


utilidad para la determinacin de los parmetros necesarios que definan la
trayectoria a seguir por el robot, sin necesidad de detener la lnea de produccin,
permitiendo as realizar una programacin fuera de lnea, reduciendo as los
tiempos de reprogramacin de manera significativa.

Objetivo.

El objetivo del presente trabajo, es plantear una metodologa de anlisis que


permita la determinacin de los parmetros cinemticos y dinmicos de control
necesarios para la generacin de trayectorias en un manipulador robtico.
Introduccin.

El estudio de la robtica comprende muchas reas, por lo que se considera


completamente interdisciplinaria, un profesional que quiera desarrollarse dentro de
esta debe tener conocimientos en las reas de ingeniera elctrica, ingeniera
mecnica, ingeniera electrnica, ingeniera de manufactura, y ciencias de la
computacin, con el fin de poder ver los problemas que representan el estudio de
la robtica desde un punto de vista integral.

Hoy en da, la industria nacional cuenta con una planta de aproximadamente 2,000
robots instalados, de los cuales un 60% tienen que ver con la industria automotriz
[52]. Se estima que, debido a la demanda en los mercados, la planta de robots
instalados crezca con un ritmo del 10% anual [53]. Por lo anterior es necesario
contar con el recurso humano que posea el nivel tcnico necesario para poder
llevar a cabo la integracin e implementacin de esta tecnologa en la planta
manufacturera nacional.

Un aspecto de gran inters es el que representa la generacin de trayectorias de


manipuladores robticos para el desarrollo de una tarea, la cual comprende la
definicin de los puntos que habrn de conformar dicha trayectoria.

La manera menos eficiente de definir estos puntos y que es como actualmente se


hace en la industria nacional es manipulando el robot para llevarlo
manualmente a la posicin y orientacin deseada para su efector final, ya que
esto representa el tener que detener la lnea de produccin, de la cual forma parte
el robot, para que un grupo de tcnicos realice esta nueva definicin de puntos de
una trayectoria, lo que se traduce en tiempo en el que el robot no es productivo,
adems de que la definicin de los puntos de esta manera no son del todo
precisos.
Un segundo mtodo para definir los puntos que conforman a una trayectoria es en
el que, para definirlos, solo es necesario contar con informacin bsica del
manipulador robtico, como lo son sus dimensiones y grados de libertad.
Obteniendo as la informacin necesaria para generar una trayectoria fuera de
lnea, es decir, sin interrumpir la lnea de produccin para poder hacerlo.

La generacin de trayectorias es, sin duda, uno de los principales problemas de


anlisis en el rea de la robtica. Esta incluye el estudio de la cinemtica y
dinmica del manipulador, el control del sistema y la parametrizacin de la tarea a
desempear para definir la trayectoria a seguir por el manipulador.

El objetivo de este trabajo es el de plantear una metodologa de anlisis para la


generacin de trayectorias de manipuladores robticos, tomando en cuenta la
cinemtica y dinmica que tiene que ver con el manipulador y la tarea a
desempear. Para lo cual esta tesis se divide de la siguiente manera:

En el primer captulo, Estado del Arte, se exponen los antecedentes generales de


la robtica, desde su primera concepcin hasta la descripcin de los
manipuladores robticos actuales. As como tambin los antecedentes especficos
que tienen que ver con el estudio de la robtica en sus diversos aspectos, como lo
son la cinemtica, la dinmica, el control, entre otros.

En el segundo captulo, Fundamentos Tericos, se presentan los fundamentos


necesarios para realizar un estudio cinemtico y dinmico de un manipulador
robtico. En este captulo tambin se incluyen aspectos bsicos de control de
manipuladores robticos, pues es, en la opinin del que escribe, necesario
establecer desde un principio, la relacin de un estudio dinmico de un sistema
fsico con su modelo de control correspondiente y no tratarlo como dos temas
independientes.
En el tercer captulo, El manipulador robtico de 5 grados de Libertad
Mitsubishi Movemaster como Caso de Estudio, se toma el manipulador
mencionado para ejemplificar el establecimiento de los parmetros necesarios
para realizar un estudio cinemtico y dinmico de un robot. En este captulo, se
plantean los problemas cinemtico y dinmico con el objeto de desarrollar las
herramientas de cmputo necesarias para su solucin y posterior aplicacin en el
estudio de trayectorias. Es importante mencionar que se utiliz el robot Mitsubishi
Movemaster como espcimen de estudio, ya que el IPN cuenta con tres
manipuladores de este tipo en las escuelas de nivel superior ESIME Azcapotzalco,
ESIME Culhuacn, y UPIICSA, por lo que el acceso a estos equipos es
relativamente sencillo.

En el cuarto captulo, Generacin de Trayectorias, se presenta la metodologa


para el estudio de la generacin de trayectorias. Para la ilustracin de esta
metodologa se propone una tarea a desempear por el manipulador, para la cual
se llevan a cabo los siguientes pasos: parametrizacin de la trayectoria y anlisis
cinemtico y dinmico de la trayectoria. En este captulo se obtienen los vectores
de posiciones, velocidades y aceleraciones angulares que corresponden a la
trayectoria deseada a partir del anlisis cinemtico y los vectores de torque
necesarios en las articulaciones, para satisfacer las condiciones dinmicas de la
trayectoria a partir del anlisis dinmico.

En el quinto captulo, Desarrollo Experimental Derivado de este Trabajo, se


presentan los diversos proyectos que se han realizado a lo largo del desarrollo de
esta tesis. De los cuales, se describe de manera general el proyecto que ms ha
avanzado y que lleva como ttulo Proyecto de implementacin de tcnicas de
control PID en un manipulador robtico de 3 grados de libertad y que comprende
el diseo y construccin del manipulador, el modelado matemtico y solucin a la
cinemtica directa e inversa para este manipulador, siguiendo la metodologa que
se presenta en esta tesis y con las herramientas que se han desarrollado en
Matlab. Por ltimo, la implementacin de tcnicas de control PID (Proporcional
Integral Derivativo) en el manipulador robtico utilizando micro controladores
MC68HC11 de Motorola

Por ltimo se presentan las conclusiones a las que se han llegado como resultado
del desarrollo de este trabajo. Adems de los anexos en los que se incluyen los
listados de los programas en Matlab, el listado para el modelado en realidad
virtual del manipulador, la representacin grfica de 21 posiciones que conforman
la trayectoria de estudio, los programas de implementacin del algoritmo de
control PID en un manipulador de 3 grados de libertad, los diagramas de conexin
del manipulador R3GL y las publicaciones generadas de este trabajo.

Es de gran importancia el agradecer los apoyos recibidos por CONACYT y por el


IPN a travs del Programa Institucional de Formacin de Investigadores, pues sin
este, hubiese sido muy difcil el desarrollo de este trabajo, as como la
construccin del prototipo de manipulador robtico, cuyos costos se han cubierto
con los recursos generados por las becas de ambas instituciones.
Estado del Arte

E
n

s
t
e
c
a
p
1. Estado del Arte

1.1 Antecedentes Generales

Cuando hablamos de robtica, inevitablemente pensamos en un proceso


automtico, y como la robtica es hoy en da sinnimo de automatizacin, nos
referiremos a Joseph Jacquard como el primer pionero de la automatizacin
industrial que, en el ao de 1801, invent una mquina textil operada por tarjetas
perforadas conocida como telar programable, dando lugar a la produccin en
masa [1,3].

Figura 1.1 Telar automtico de Jacuard.

No es sino hasta ms de un siglo despus, en el ao de 1921, que el trmino


robot, derivado del vocablo checo robota, cuyo significado es sirviente o esclavo,
es utilizado por primera vez por el Doctor en filosofa Karel Capek en una obra de
teatro en la que describe sirvientes mecnicos llamados robots [2].

Para el ao de 1938, los americanos Williard Pollard y Harold Roselund disean


un mecanismo programable para el pintado por aspersin para la compaa
DeVilbiss [3].
George Devol, en el ao de 1946, dise una mquina programable capaz de
almacenar y reprogramar informacin [1,4]. En el mismo ao, los cientficos
americanos J. Presper Eckert y John Mauchly construyen la primera computadora
digital llamada ENIAC (Electronic Numerical Integrator and Computer) en la
Universidad de Pensilvania [1,5]. En el M.I.T., una segunda computadora llamada
UNIVAC I (Universal Automatic Computer) resuelve por primera vez un problema
matemtico [5,6].

Norbert Wiener, profesor del M.I.T., en 1948 publica el libro Ciberntica, en el


cual describe conceptos de comunicaciones y control en sistemas electrnicos,
mecnicos y biolgicos [1,5].

En el ao de 1951, Raymond Goertz disea un brazo articulado el cual es


teleoperado para la manipulacin de materiales radioactivos, a peticin de la
Comisin de Energa Atmica [1,5].

George Devol, en el ao de 1954, registra bajo la patente nmero 2,988,237 de


EUA al primer robot [1]. Este estaba diseado para la transferencia de materiales
en una fabrica [5]. Ms adelante, en el ao 1956, Joseph Engelberger y Devol
conforman la que a la postre sera una de las ms exitosas compaas de robots,
Unimation, Inc. [1,4,5], construyendo el primer robot Unimation en 1958. Pero no
fue sino hasta el ao de 1962 cuando se instal por primera vez un robot industrial
en una lnea de produccin en una armadora propiedad de General Motors [1],
cuya tarea era el tomar piezas calientes de una forja y empaquetarlas [5].

En Japn, Kawasaki Heavy Industries import su primer robot en el ao de 1967


[5], obteniendo la licencia para la manufactura de robots Unimation en 1968 [1,4].

En el ao de 1970, la Universidad de Stanford disea un brazo robot que se


convierte en el estndar en proyectos de investigacin [1]. Este brazo utiliza
motores elctricos como actuadores y se le conoce como robot Stanford [5]. Al
ao siguiente, 1971, en Japn se conforma la primera asociacin de robtica en el
mundo, la Asociacin de Robots Industriales de Japn (JIRA) [1].

En 1973, se utiliza por primera vez una microcomputadora para controlar un brazo
robtico, desarrollado por Richard Horn para Cincinati Milacron Corporation [1,5].

En el ao de 1974, el creador del robot Stanford, Profesor Sheinman, funda


Vicarm Inc., con el propsito de comercializar una versin para aplicaciones
industriales del robot Stanford original [1].

La Asociacin Industrias Robticas es establecida en 1975 [1], dando, por primera


vez, una definicin para robot industrial: Un robot industrial es un manipulador
multifuncional programable, diseado para mover, materiales, herramientas o
dispositivos especializados; por medio de movimientos programados para la
realizacin de varias tareas [1,7].

En 1977, ASEA (ahora ABB), compaa europea, ofrece comercialmente dos


modelos de robots industriales con actuadores elctricos conocidos como Irb6.
Ambos utilizan microcomputadoras como controlador para su programacin y
operacin [1,8]. Durante el mismo ao, Vicarm Inc. es adquirido por Unimation Co.
[1]. Como resultado de esta fusin, uno de los mayores xitos de Unimation se
obtiene el robot PUMA (Programable Universal Machine for Assembly). Por otra
parte, el ingeniero mecnico estadounidense Victor Scheinman, cuando estudiaba
la carrera en la Universidad de Stanford, en California, desarroll este manipulador
polivalente realmente flexible conocido. El PUMA era capaz de mover un objeto y
colocarlo con cualquier orientacin en un lugar deseado que estuviera a su
alcance [10]. El concepto bsico multiarticulado del PUMA es la base de la
mayora de los robots actuales, es diseado utilizando las tcnicas de control de
Vicarm y bajo patrocinio de General Motors [1,5].
FANUC Robotics, compaa japonesa, es introducida al mercado americano en
1981, siendo General Motors el principal accionista [1]. En este mismo ao, un
nuevo concepto en robots de ensamble es traido desde Japn, conocido como
robot SCARA (Selective Compliance Assembly Robot Arm) [8].

Para 1984, se desarrollan robots con actuadores acoplados de manera directa en


las articulaciones (direct-drive) por Adept Corporation, eliminando el uso de
engranajes o cadenas intermedias [1]. En el mismo ao, ASEA presenta una
nueva configuracin de robot con 6 grados de libertad tipo pndulo, para tareas de
ensamble [8].

En 1986, la instalacin y aplicacin de robots continua creciendo pero desde un


punto de vista integral, aumentando el inters en Celdas de Manufactura,
Sistemas Flexibles de Manufactura y sistemas CIM [1].

Durante este tiempo, los tipos de configuraciones bsicas de robots que se han
establecido son las siguientes [9]:

- - Cartesiano: con capacidad de movimiento a lo largo del los ejes X, Y y


Z.

Figura 1.2 Configuracin Cartesiana o prismtica


- - Cilndrico: Con movimiento a lo largo de Z y Y, alrededor de Z.

Figura 1.3 Configuracin Cilndrica.

- - Esfrico o polar: con dos articulaciones de revolucin y una prismtica.

Figura 1.4 Configuracin Esfrica o Polar.


- - Brazo articulado o de revolucin: nicamente conformado por
articulaciones de revolucin.

Figura 1.5 Configuracin de Brazo Articulado.

- - SCARA: Con dos pares de revolucin y uno prismtico, pero dispuestos


en una configuracin diferente a la de la configuracin esfrica.

Figura 1.6 Configuracin SCARA

Todas estas configuraciones, en un principio, consideran nicamente tres grados


de libertad en su representacin, que permiten que el manipulador posicione su
efector final en cualquier punto dentro de su espacio de trabajo, en tanto que
grados de libertad adicionales se utilizan para darle la orientacin deseada o
necesaria, de acuerdo con la tarea a desempear, como se muestra en la figura
1.7.

Figura 1.7 Posicionamiento y orientacin del efector final.

Figura 1.8 Orientacin del efector final.


1.2 Antecedentes Especficos.

Debido a que la robtica es interdisciplinaria, en la que intervienen la ingeniera


mecnica, elctrica, electrnica, ciencias de la computacin y manufactura, se han
conformado diversas lneas de investigacin bajo esta rea.

En un panorama global, esta lneas comprenden: el diseo de los mecanismos


que conforman el manipulador, consideracin de eslabones rgidos y flexibles,
configuraciones de manipuladores de cadena abierta y manipuladores paralelos;
desarrollo de nuevas tcnicas de control de manipuladores robticos, control
adaptivo, difuso, etc; desarrollo de diversos algoritmos y tcnicas de programacin
en lnea y fuera de lnea, dentro de este panorama global pueden identificarse los
algoritmos de visin artificial y algoritmos para robots cooperativos.

Como ejemplo de lo anterior podemos citar los siguientes casos:

En el rea de ingeniera mecnica hoy en da no solo se analizan robots de


cadena abierta, sino tambin robots paralelos, en los cuales el principal problema
es determinar el modelo cinemtico que rige el movimiento del sistema,
concentrndose el anlisis en la determinacin de este modelo. En la Universidad
de Victoria, Carretero, Nahon y otros trabajan, en 1997, en el anlisis cinemtico
de un mecanismo de manipulador paralelo de 3 grados de libertad, para su uso en
foco de un lente de telescopio. Proponen la solucin directa e inversa de la
cinemtica del manipulador [11]. Para 1998, Podohorosdeski presenta el estudio
de optimizacin en la arquitectura de este mecanismo [12]. En tanto que en la
Universidad de Queens, actualmente se trabaja en el diseo de nuevas
configuraciones de robots paralelos bajo la supervisin de la Profesora Leila
Notash [13].

En lo que respecta a los manipuladores articulados de cadena abierta,


actualmente se desarrollan diversas metodologas para la solucin de la
cinemtica de dichos robots, o bien el planteamiento del modelo cinemtico de
este, siendo comn encontrar trabajos como el desarrollado por Doty, 1992, para
la NASA, en el cual se establece la solucin a la cinemtica directa e inversa de
un manipulador desarrollado para esta agencia [14].

Para la solucin a la cinemtica directa de manipuladores robticos, se emplea un


mtodo sistemtico y generalizado que utiliza el lgebra matricial como
herramienta, este mtodo describe la geometra espacial de los elementos de un
brazo manipulador con respecto a un sistema de referencia fijo, mtodo propuesto
para el anlisis de mecanismos por Denavit y Hartenberg en 1955 [15] que se
aplica a la robtica.

En lo referente a la solucin de la cinemtica inversa (CI), se reconocen, en


diversos textos, dos estrategias para la solucin de esta, las soluciones de forma
cerrada y las soluciones numricas.

En un principio se optaba por las soluciones cerradas derivadas de un anlisis


del problema algebraico o geomtrico [15,16], ya que las herramientas de cmputo
disponibles no contaban con la velocidad suficiente para resolverlos en un tiempo
conveniente, con esto, se buscaba simplificar la solucin del problema, pues las
soluciones obtenidas, por la aplicacin de este mtodo no eran siempre la mejor
de las soluciones, y adems, considerando la naturaleza del problema que se
deriva del anlisis de un mecanismo eslabonado de cadena abierta, es evidente
que pueden existir mltiples soluciones para una condicin deseada.

Parkin [21], seala que la solucin a la CI no se puede obtener de manera


algebraica, lo que significa que una solucin de forma cerrada no existe y que es
necesaria una solucin iterativa que, debido a la naturaleza del problema implica
que pueden haber varias soluciones para un mismo punto.
Al respecto, se han desarrollado varios trabajos, por ejemplo, Doty y Shwartz [36],
sealan que un par de mtodos para la solucin a la CI consisten en utilizar
mtodos numricos para resolverla calculando el error cuadrtico mnimo, o bien,
agregar restricciones algebraicas en la solucin a la CI para manipuladores
redundantes. Posteriormente demuestran la aplicacin del mtodo de Moore-
Penrose en la solucin a esta y proponen un mtodo llamado Teora Inversa
Generalizada, que se basa en la generalizacin del mtodo antes mencionado
[37] y ms adelante presentan la aplicacin de la metodologa propuesta para la
solucin a la CI en velocidades [38].

Trabajos ms avanzados en cuanto a propuestas de solucin a la CI, tienen que


ver con la aplicacin de la lgica difusa para la solucin a esta. Tal como lo
presentan Xu y Nechyba en [39], bajo el argumento de que la solucin a la CI
requiere de muchos recursos computacionales, lo que puede resultar en retrasos
significativos en el control en tiempo real y, basndose en el hecho de que los
humanos no calculan de manera exacta la CI para realizar sus movimientos, sin
embargo, podemos, en todo momento, posicionar en el espacio cualquiera de
nuestras extremidades u objeto manipulado, de manera precisa a partir de un
razonamiento difuso.

En el rea de los mecanismos, actualmente se emplean los nmeros duales para


el anlisis y sntesis de mecanismos, tal como lo describe Cheng en [41] y [43];
llevando este anlisis hasta los mecanismos de cadena abierta de manipuladores
robticos, a partir de los parmetros de Denavit y Hartenberg [42].

En lo que se refiere a la dinmica de manipuladores robticos, tambin se plantea


el uso de nmeros duales para describir la dinmica del cuerpo rgido [45]. O bien,
el uso de multiplicadores de Lagrange en sistemas de simulacin de la dinmica
de manipuladores, utilizando estos para establecer las restricciones en el modelo
a simular [18]. Algunos anlisis de la dinmica inversa de manipuladores
comerciales de 6 grados de libertad, con el fin de comparar diversos recursos
computacionales se presentan en [46] por Cheng y Gupta

En el Instituto de Robtica de Carnegie-Mellon se desarrollan tcnicas de control


adaptivo de manipuladores, as como el uso de bi-cuaterniones para establecer los
algoritmos de control de robots cooperativos [28], adems de algoritmos de control
para la determinacin de la fuerza de apriete ptima en mecanismos de aprensin
de manipuladores robticos [48]. En el Instituto Tecnolgico de California trabajan
en el diseo de un control adaptivo para sistemas fsicos con dinmica cambiante
[49] y en anlisis de la dinmica de robots mviles para el establecimiento de un
control ptimo [50]. En la Universidad de msterdam, trabajan en aspectos de
control como el diseo de un modelo de control para el uso de sistemas de visin
artificial, como gua para el movimiento de un brazo robot usando redes
neuronales.

En el mbito nacional, la robtica no ha crecido an de manera notable, ya que


son pocos los centros educativos en donde se aborda este tema con fines de
investigacin y desarrollo, destacndose el CINVESTAV, el IPN, la UNAM y el
ITESM.

Es importante hacer notar que, debido a la importancia de este tema, en el ao de


1991, en ESIME Azcapotzalco, se crea la carrera de Ingeniera en Robtica
Industrial, cuyo enfoque, lamentablemente, es una automatizacin emprica de
procesos industriales, sin conocer los fundamentos bsicos de la manipulacin
robtica, ni los aspectos bsicos de control de procesos.

Dentro de la currcula de diversas carreras en ingeniera del IPN, se imparten


materias relacionadas con la robtica, tal es el caso de la carrera de Ingeniera en
Control y Automatizacin de la ESIME Zacatenco y de Ingeniera en Mecatrnica
de la UPITA.
En estos diversos centros, se llevan a cabo actividades de investigacin y
desarrollo sobre estas tecnologas a nivel posgrado, principalmente en el
CINVESTAV, ITESM y SEPI-ESIME, no siempre llegando a resultados
satisfactorios, tal es el caso del proyecto MIRH de la SEPI-ESIME-IPN que, a
cerca de tres aos de iniciado, no ha llegado a resultados tangibles. En el
CINVESTAV han diseado un robot tipo SCARA, proyecto que ha evolucionado de
manera notable.

Dentro de esta Seccin de Estudios de Posgrado e Investigacin, se han


desarrollado pocos trabajos referentes al tema, como la propuesta de una
Metodologa para el Diseo de un Robot Manipulador Industrial en 1993 por Daz
de Len [54]. En el mismo ao, Lpez [55] presenta el Anlisis Cinemtico y
Dinmico de un Manipulador Robtico con tres Grados de Libertad.

Despus de este ao, es hasta 1997 cuando Rojas Garnica [56] presenta el
Diseo de un Mecanismo Atornillador para un Brazo Manipulador Robtico,
trabajo que no aporta conocimiento a la lnea de investigacin de robtica.

Los dos trabajos ms recientes sobre el tema son, en 1997, el Desarrollo de un


Simulador para el Control de un Brazo Robtico, por Gonzlez Snchez [57], en
donde se plantea el desarrollo de un simulador para el control, sin definir los
conceptos de dinmica directa y dinmica inversa, aun cuando la dinmica directa
es la que tiene que ver con el diseo de simuladores dinmicos, tal como lo
sealan Craig [17], Baraff [18] y Murray [19]. Adems, se menciona como objetivo
el control de un brazo robtico, cuando, dentro del texto no se hace un solo
planteamiento ni consideracin de las tcnicas ni modelos de control que se
emplean en manipuladores robticos, lo cual es sealado ampliamente en
diversos textos como [9], [15], [17], [19] y [21]. El mencionado trabajo presenta
tambin errores en la obtencin del modelo matemtico del manipulador
analizado. Por lo que no se recomienda la lectura de este trabajo.
El segundo trabajo ms reciente dentro de la seccin, es la Modelacin y
Simulacin de Sistemas Electromecnicos Bajo Control, por Domnguez Aguirre
en 1998 [20], en donde se hacen consideraciones importantes en cuanto al
modelado de sistemas fsicos para su anlisis.

Como se puede observar, en 7 aos, en el departamento de Ingeniera Mecnica


de la SEPI-ESIME se han desarrollado un total de 6 trabajos, incluyendo el
presente, relacionados con la robtica. Lo que no corresponde con la demanda de
recursos humanos, con la preparacin necesaria, que demanda la industria
nacional.
Fundamentos
Tericos
E
n
e
s
t
e
c
a
p
t
2. Fundamentos Tericos.

2.1 Cinemtica de Manipuladores Robticos.

La cinemtica es el estudio del movimiento sin tomar en cuenta las fuerzas que lo
producen; esta estudia la posicin, la velocidad y la aceleracin del sistema [22].

De esta forma, la cinemtica de un manipulador robtico describe la relacin entre


el movimiento de las articulaciones del manipulador y el movimiento resultante de
los cuerpos rgidos que conforman al robot [19]. Esta comprende dos problemas:
El primero consiste en determinar la posicin y orientacin del efector final del
manipulador, derivada de un cambio en la configuracin del sistema de eslabones
que conforman la cadena cinemtica de este (Cinemtica Directa) y el segundo
problema consiste en definir los valores de las posiciones de las articulaciones,
para que la configuracin del sistema resulte en una orientacin y posicin
deseadas del efector final, dentro de su espacio de trabajo (Cinemtica Inversa).

Para plantear y dar solucin al modelo cinemtico del sistema, es necesario


establecer una relacin geomtrica entre los elementos que conforman la cadena
cinemtica. Para lo cual, se propone la asignacin de sistemas de coordenadas
que sirvan como referencia para poder establecer dicha relacin. Es entonces
necesario representar, mediante el uso de expresiones matemticas, la
orientacin y posicin relativa entre sistemas de coordenadas asignados a los
elementos del manipulador.

2.1.1 Representacin de la Orientacin entre Sistemas de


Coordenadas.

Para poder representar la orientacin de un sistema de coordenadas mvil, con


respecto a otro sistema de referencia, se emplean matrices de rotacin.
Bsicamente, estas representan las proyecciones de los vectores unitarios de un
sistema mvil, en un sistema fijo.

2.1.1.1 Matrices de Rotacin.

La matriz de rotacin en su forma general es la siguiente:

......................(2.1)

ix iu ix j v ix k w
j y k w
R = j y iu j y j v
k z iu k z j v k z k w

Entonces, si tenemos dos sistemas de coordenadas que coinciden en su origen y


su orientacin, tal como se ve en la figura 2.1, la matriz de rotacin
correspondiente que represente la orientacin del sistema de coordenadas
OUVW, respecto del sistema de coordenadas OXYZ, es:

......................(2.2)

1 0 0
R = 0 1 0 = I 3
0 0 1

Z,W

z w
k , k
j y , jv
Y, V
ix , iu O

X,U
Figura 2.1.- Representacin de sistemas de coordenadas.

Lo cual es fcil de comprobar, ya que debido a que ambos sistemas son

ortonormales y coinciden en su orientacin, los vectores unitarios ix e iu son


vectores paralelos, para los que, por definicin, el producto punto entre ellos es 1;

j
mientras que iu es normal a y y k z , cuyo producto punto es cero. Cumplindose
lo anterior para las dems relaciones.

En segunda instancia tenemos el sistema de coordenadas mvil OUVW, que


puede ser rotado alrededor de cualquiera de los ejes del sistema de coordenadas
OXYZ, como se ve en la figura 2.2.

Z
Z w Z,W
w
v
jv j y , j z w
k , k v
kw
Y Y, Y
O O
ix , iu V O

X,U X X
u u
(a) (b) (c)

Figura 2.2.- (a) Rotacin alrededor del eje X, grados; (b) rotacin alrededor del eje Y, grados;
(c) rotacin alrededor del eje Z grados.

Entonces, para determinar la matriz de rotacin que represente la orientacin para

el caso que ilustra la figura 2.2(a), partiremos del hecho que iu es paralelo a ix y

tienen el mismo sentido, por lo que, siendo sistemas ortonormales, iu no tiene

proyeccin en los vectores unitarios


j y y k z ; en tanto que, jv y k w siguen siendo

j
normales a ix , pero ambos tienen proyeccin en y y k z . La matriz de rotacin
R3, que representa la orientacin resultante de una rotacin respecto al eje X,
grados es:

1 0 0
Rx, = 0 cos sen . . . . . . . . . . . . . .. . . . . . . . . . . (2.3)

0 sen cos

haciendo ahora un anlisis similar para los casos de las figuras 2.2(b) y (c),
obtenemos:

cos 0 sen
R y , = 0 1 0 . . . . . . . . . . . . . .. . . . . . . . . . . (2.4)

sen 0 cos

cos sen 0
Rz , = sen cos 0 . . . . . . . . . . . . . .. . . . . . . . . . . (2.5)

0 0 1

Supngase ahora que es necesario conocer el nuevo vector de posicin de un


punto cuyas coordenadas estn descritas en el sistema de coordenadas mvil
OUVW y el punto es auvw, con respecto al sistema de coordenadas de referencia
OXYZ. Una vez que el sistema mvil ha sido afectado por una rotacin alrededor
del eje Y, por ejemplo 25. El nuevo vector perteneciente al punto axyz, estara
dado por:

si auvw = [3,2,5]T

axyz estar dado por:

axyz = [ R ] [auvw]
cos 25 0 sen25 3 4.8320
0 1 0 2 = 2.0000

axyz = sen 25 0 cos 25 5 3.2637

En un sistema real, la orientacin final de un sistema de coordenadas mvil no


estar dada por una simple rotacin alrededor de alguno de los ejes del sistema
de referencia, si no que ser definida como resultado de una secuencia de
rotaciones no solo respecto de los ejes XYZ del sistema de referencia. Tambin
estar en funcin de rotaciones alrededor de los ejes UVW del sistema mvil, de
manera tal que se obtiene una matriz resultante. La cual estar dada de acuerdo a
la siguiente convencin, descrita en [9],[15],[19]:

Partiendo del hecho que, en un principio ambos sistemas de coordenadas


coinciden en el origen y en su orientacin, condicin que est descrita por una

matriz I 3 , a partir de esta y de acuerdo a la secuencia de rotaciones que afecten


al sistema, habrn de ordenarse de manera tal que: las rotaciones respecto a XYZ

se escribirn a la izquierda de la matriz I 3 , en tanto que las rotaciones respecto a


UVW, se escriben a la derecha de esta, obtenindose as la secuencia correcta de
multiplicacin para la obtencin de la matriz resultante, tal como se ilustra en la
figura 2.3.

R= Rotaciones y/o
traslaciones
I3 Rotaciones y/o
traslaciones
respecto a XYZ respecto a UVW

Figura 2.3.- Obtencin de la matriz de rotacin resultante.

Para ilustrar el procedimiento anterior, habr de obtenerse enseguida la matriz de


rotacin resultante para la siguiente secuencia de rotaciones: Rx,30; Ry,45; Rw,10;
Ru,-35; estara dada por:
R = Ry,45 Rx,30 I 3 Rw,10 Rv,-35

c 45 0 s 45 1 0 0 1 0 0 c10 s10 0 1 0 0
=
0 1 0 0 c30 s30 0 1 0 s10 c10 0 0 c(35) s (35)

s 45 0 c 45 0 s30 c30 0 0 1 0 0 1 0 s (35) c(35)

como multiplicar por I 3 es multiplicar por 1, entonces:

c 45 0 s 45 1 0 0 c10 s10 0 1 0 0
0 1 0 0 c30 s30 s10 c10 0 0 c(35) s (35)
=
s 45 0 c 45 0 s30 c30 0 0 1 0 s (35) c(35)

0.7578 - 0.1666 0.6309


R = 0.1504 0.9854 0.0796

- 0.6350 0.0346 0.7718

Puede ahora calcularse tambin el nuevo punto axyz para el punto dado auvw, de la
manera en que se explic anteriormente:

0.7578 - 0.1666 0.6309 3 5.0946


a xyz = 0.1504 0.9854 0.0796 2 = 2.8200

- 0.6350 0.0346 0.7718 5 2.0230

Ahora bien, si es necesario calcular el vector de posicin de un punto dado en


coordenadas para XYZ con respecto al sistema mvil UVW a partir de la solucin
encontrada, puede hacerse de la siguiente manera:

[ ]
buvw = [R ]T bxyz
b
si xyz es [5,3,2]T, el nuevo punto buvw estar dado por:

T
0.7578 - 0.1666 0.6309 5 2.9700
buvw = 0.1504 0.9854 0.0796 3 = 2.1923

- 0.6350 0.0346 0.7718 2 4.9369

2.1.1.2 Otros Mtodos para Representar la Orientacin de Sistemas de


Coordenadas.

Otra forma popular de especificar la orientacin entre sistemas de coordenadas,


es haciendo uso de los ngulos de Euler. Estos describen cualquier posible
orientacin en trminos de una rotacin con respecto del eje Z, seguida por una
rotacin respecto al nuevo eje rotado Y y por ltimo, seguida por una rotacin
respecto al nuevo eje rotado Z [9].

Representando lo anterior como:

Euler(,,) = Rz, Ry, Rz,

La orientacin entre sistemas de coordenadas puede definirse tambin haciendo


uso de cuaterniones.

Los cuaterniones generalizan a los nmeros complejos y pueden ser utilizados


para representar rotaciones, de la misma manera en que los nmeros complejos,
en el circulo unitario, se usan para representar rotaciones planas [9], [19] y [23].

Formalmente un cuaternion es un nmero hipercomplejo de la siguiente forma


[24], [28], [29], [30]:

Q = q0 + q1i + q2 j + q3 k ...................................(2.6)
donde:
q0 = componente escalar de Q , y

q = ( q1 , q 2 , q3 ) = componente vectorial

por lo que es comn que Q se escriba tambin como:

Q = (q0 , q ) ...................................(2.7)

De aqu podemos anticipar que, al momento de realizar operaciones con


cuaterniones, podemos estar manipulando operadores de traslacin y de rotacin
que pudiesen afectar al sistema mvil.

Para mayor informacin al respecto del tema, se recomienda la lectura de


[24],[25],[26] y [27].

2.1.2 Matrices de Transformacin Homognea.

Para poder describir completamente la relacin espacial entre sistemas de


coordenadas, es necesario incluir tambin dentro de la representacin, un
componente que relacione el vector de posicin entre los orgenes de los sistemas
de coordenadas, ya que es comn que el sistema mvil se encuentre descentrado
respecto al sistema de referencia.

Como una matriz de rotacin 3 x 3 no nos da ninguna posibilidad para incluir la


traslacin y el escalado, se introduce un cuarto componente al vector de posicin

P = ( p x , p y , p z ) en
T
un espacio tridimensional, que lo transforma en

P = (wp x , wp y , wp z , w) , entonces decimos que el vector P est representado en


T
coordenadas homogneas, pues se le ha incluido un componente de escala w
[9],[19].

El concepto de una representacin homognea en un espacio euclidiano


tridimensional, es til para desarrollar transformaciones matriciales que incluyen:
rotacin, traslacin, escalado y perspectiva [15].

Entonces, una matriz de transformacin homognea, puede considerarse como


que est conformada por cuatro submatrices, como se ilustra el la figura 2.4:

Matriz Vector
R3 x 3 P3 x1 de de
T = =
Rotacin Posicin

P1x 3 E 1x1 Transforma cin de Perspectiva Escala

Figura 2.4.- Matriz de transformacin homognea.

en donde:

La matriz de rotacin representa la orientacin del sistema de


coordenadas del sistema mvil, con respecto del sistema de referencia.

El vector de posicin representa el descentramiento entre los orgenes


de los sistemas de coordenadas.

La matriz de perspectiva se refiere a la perspectiva de anlisis, que para


el caso de la robtica es siempre [0 0 0].

El factor de escala, que nos indica el escalado de la magnitud del vector


de posicin, que para el caso de la robtica es [1].
Por lo que podemos escribir ahora, la matriz de transformacin homognea en su
forma general:

ix iu ix jv ix kw px

j i j y jv j y kw py
T = y u (2.8)
kz iu kz jv kz kw pz

0 0 0 1

de donde se pueden derivar fcilmente las matrices bsicas de rotacin


homognea que se ilustran en la figura 2.5.

1 0 0 0 c 0 s 0 c s 0 0
0 c s 0 0 1 0 0 s c 0 0
Tx , = Ty , = Tz , =
0 s c 0 s 0 c 0 0 0 1 0

0 0 0 1 0 0 0 1 0 0 0 1
Figura 2.5.- Matrices de Bsicas de Rotacin Homogneas

As como tambin la matriz de traslacin homognea bsica, la cual tiene el efecto


de trasladar el sistema de coordenadas del sistema OUVW, a lo largo de los ejes
del sistema de coordenadas OXYZ, a bien a lo largo de sus propios ejes, segn
sea el caso.

0 0 0 x 0 0 0 u
0 0 0 y 0 0 0 v
Ttr = =
0 0 0 z 0 0 0 w

0 0 0 1 0 0 0 1
Figura 2.6.- Matriz de Traslacin Homognea Bsica.

Generalizando ahora lo antes dicho para el caso de las matrices de rotacin, una
matriz de transformacin homognea resultante no estar dada nicamente por
operaciones unitarias de rotacin y/o traslacin, sino por una secuencia de estas,
por lo que, para obtener la matriz de transformacin homognea resultante,
aplicaremos la misma metodologa que para el caso de matrices de rotacin R3.
De manera tal que:

T= Rotaciones y/o
traslaciones
I4 Rotaciones y/o
traslaciones
respecto a XYZ respecto a UVW

Tomando ahora como base a I4, ya que representa la condicin inicial en la que
ambos sistemas de coordenadas, mvil y referencia, coinciden en su posicin y
orientacin.

2.1.3 Asignacin de Sistemas de Coordenadas a Manipuladores


Robticos (Parametrizacin de Manipuladores Robticos)

Para poder aplicar las herramientas antes descritas en el estudio de


manipuladores robticos, es necesario asignar sistemas de coordenadas a los
componentes bsicos de un robot, i.e. eslabones y articulaciones. Esto es con la
finalidad de describir la relacin espacial entre estos elementos, por medio de la
obtencin de una matriz de transformacin homognea que relacione al sistema
de coordenadas asignado al efector final, con el sistema de coordenadas de
referencia fijo en la base del manipulador; matriz comnmente conocida como,
matriz de robot.

La localizacin de los sistemas de coordenadas que permitan la obtencin de


parmetros cinemticos de un manipulador sern en: la base del robot, las
articulaciones y el efector final.

Con el propsito de que se estableciera una metodologa estndar para la


asignacin de sistemas de coordenadas, y por consiguiente, en la obtencin de las
matrices de transformacin homognea que describen la cinemtica del
manipulador, se ha aceptado la representacin de Denavit y Hartenberg como lo
establecen [9], [14], [15] y [19].
2.1.4 Representacin de Denavit y Hartenberg.

Para poder describir la relacin traslacional y rotacional entre los elementos de


una cadena cinemtica, Denavit y Hartenberg propusieron, en 1955, un mtodo
matricial para establecer de forma sistemtica un sistema de coordenadas ligado
al cuerpo para cada elemento de una cadena articulada [15].

La representacin de Denavit y Hartenberg ha dado lugar a dos metodologas para


la asignacin de los sistemas de coordenadas; cada una de ellas permite ciertas
libertades en el establecimiento de estos sistemas de coordenadas [16], [22].

Estndar

Modificada
Figura 2.7 Diferentes convenciones para la asignacin
de sistemas de coordenadas

En la primera, el sistema de coordenadas i tiene su origen a lo largo del eje de la


articulacin i + 1 , como lo describe Lee [15]. En la segunda, el sistema de
coordenadas i tiene su origen a lo largo de la articulacin i . Esta segunda
convencin es frecuentemente referida como convencin modificada de Denavit y
Hartenberg, como lo describe Craig [17]. La figura 2.7 muestra la diferencia entre
ambas convenciones.

La convencin que a lo largo de este trabajo se utiliza corresponde a aquella


descrita por Lee [15], que es la que se emplea de manera comn [9], [14], [19],
[22]. Y que llevada al rea de manipuladores robticos es como sigue [16]:

1. 1. Se lleva al manipulador a una posicin inicial, que servir de referencia


para medir los desplazamientos del sistema.

2. 2. Se numeran los eslabones del sistema, comenzando por 0 para la base


del robot, hasta n para el efector final.

3. 3. Se numeran las articulaciones del sistema, comenzando con 1 para la


primer articulacin y n para la ltima; donde n = nmero de grados de
libertad.

4. 4. Los sistemas de coordenadas se asignarn en donde se intersecan el


eslabn i 1 con la articulacin i con base en lo siguiente:
a. a. Los ejes Z estarn ubicados a lo largo del eje de movimiento de
la articulacin. Para el caso de articulaciones de revolucin ser a lo
largo del eje de rotacin; en tanto que para las articulaciones
prismticas, ser a lo largo del eje de movimiento de esta.

b. b. Se asigna el primer sistema de coordenadas completa a la base


del manipulador, procurando que uno de los ejes de este sistema
este en lnea con la orientacin del brazo de robot; numerando a este
sistema de coordenadas como sistema cero.
c. c.Los ejes xi se asignarn de manera tal que estos sean normales a

los ejes zi 1 .

d. d. Los ejes yi complementarn los sistemas de coordenadas para


formar sistemas dextrgiros.

e. e. Como los sistemas van numerados desde 0 hasta n , un ltimo


sistemas de coordenadas se asigna al efector final, o bien al plato de
herramientas, del robot. Este, habr de conservar la orientacin del
sistema de coordenadas n 1 .

f. f. Se identifica el sentido positivo en el desplazamiento de las


articulaciones, de acuerdo a la regla de la mano derecha.

Un eslabn puede ser considerado como un cuerpo rgido, el cual puede ser
descrito por dos parmetros, la longitud del eslabn y el giro del eslabn. Estos
parmetros definen la localizacin relativa de los ejes de articulaciones vecinas en
el espacio.

Asimismo, las articulaciones pueden ser descritas tambin por dos parmetros, el
descentramiento del eslabn, que es la distancia de un eslabn a otro prximo, a
lo largo del eje de la articulacin; y el ngulo de la articulacin, que es la rotacin
de un eslabn con respecto al prximo, alrededor del eje de la articulacin.

La representacin de Denavit y Hartenberg de un cuerpo rgido depende entonces,


de cuatro parmetros geomtricos asociados a cada elemento, estos describen
completamente la relacin espacial entre sistemas de coordenadas. Estos
parmetros pueden resumirse como:
Longitud del eslabn ai : distancia desde el origen del sistema de

coordenadas i hasta la interseccin de los ejes xi y z i 1 , a lo largo del

eje xi ;

Giro del eslabn i : ngulo formado entre el eje z i 1 al eje z i alrededor

del eje xi ;

Descentramiento del eslabn d i : distancia desde el origen del sistema

de coordenadas i 1 hasta la interseccin de los ejes xi y z i 1 , a lo largo

del eje z i 1 .

ngulo de la articulacin i : ngulo de la articulacin del eje xi 1 al eje


xi respecto al eje z i 1 .

De esta forma, para una articulacin de revolucin, d i , ai y i son los parmetros

de la articulacin y permanecen constantes, mientras que i es la variable de la

articulacin. Para una articulacin prismtica, la variable ser d i .

zi 1
yi
ai
xi
xi
x i 1
i
zi
di
zi 1
zi 1
zi 1
i xi

yi 1
x i 1 yi 1 zi

Figura 2.8 Parmetros de D-H.


De acuerdo con [15], [17] y [22], la representacin de D-H resulta en una matriz de
transformacin homognea 4 x 4, i-1Ai:

...............(2.9)
cosi seni cosi seni seni ai cosi
sen cosi cosi cosi seni ai seni
i 1
Ai = i
0 seni cosi di

0 0 0 1

que describe la relacin entre el sistema de coordenadas de cada eslabn con


respecto al sistema de coordenadas previo [22],
0
Ti =0Ti1 i1 Ai
0
donde Ti es la transformacin homognea que describe la posicin del sistema de
coordenadas i con respecto al sistema de coordenadas de la base.

0
De manera tal que si tenemos un robot con 3 grados de libertad, la matriz T3
estar dada por:
0
T3 =0A1 1 A2 2 A3

0
La matriz de transformacin homognea [T]=
Tn , que especifica la posicin y

orientacin del efector final del manipulador con respecto al sistema de


coordenadas de la base, es tan frecuentemente utilizada en la cinemtica de los
manipuladores robticos que se conoce como matriz del robot, y es comn
escribir la siguiente forma:

..........................(2.10)
n x sx ax px
n sy ay py
T = y
nz sz az pz

0 0 0 1

donde [n,s,a] nos representa la orientacin del sistema de coordenadas del efector
final con respecto al sistema de coordenadas de la base y [p] la posicin de este
con respecto a la base. De esta matriz se obtienen las ecuaciones de diseo del
manipulador, las cuales sirven como base para la solucin a la cinemtica inversa.

2.2 Dinmica de Manipuladores Robticos.

La dinmica es la rama de la mecnica que trata el movimiento de los cuerpos


bajo la accin de fuerzas. Esta incluye a la cinemtica, que es el estudio del
movimiento sin tomar en cuenta las causas que lo producen, y la cintica, que
relaciona estas fuerzas con el movimiento resultante.

Cuando una fuerza es aplicada a un cuerpo, este tiende a acelerarse de acuerdo


con las leyes de Newton. Por tanto, sobre la base de esta definicin, el
comportamiento dinmico de un manipulador robtico es descrito en trminos de
la relacin de tiempo con el de cambio de la configuracin del brazo y con el
torque dado por sus actuadores.

La dinmica del robot trata con las formulaciones matemticas de las ecuaciones
de movimiento del brazo, estableciendo un conjunto de ecuaciones que describen
su comportamiento dinmico. Estas ecuaciones son tiles para la simulacin en
computadora del movimiento del robot, el diseo de leyes de control adecuadas y
para la evaluacin del diseo y estructura del brazo [15].
La mayora de los manipuladores robticos son animados por actuadores
elctricos, pneumticos o hidrulicos, los cuales aplican torques (o fuerzas, en el
caso de actuadores lineales) a las articulaciones del robot. En donde las
ecuaciones de movimiento del manipulador determinan la respuesta de este a la
aplicacin de dichas fuerzas.

El modelo dinmico del robot se puede obtener a partir de leyes fsicas conocidas,
tales como la mecnica newtoniana y lagrangiana, estas conducen al desarrollo de
ecuaciones de movimiento dinmico para las diversas articulaciones del
manipulador, en trminos de los parmetros geomtricos e inerciales de los
elementos.

De manera similar al caso de la cinemtica, la dinmica de un manipulador


comprende el anlisis de dos problemas: el problema de la dinmica inversa, en
el que dado un vector de posiciones, velocidades y aceleraciones para el efector
final, se calcula el vector requerido de torques en las articulaciones, que satisfaga
las condiciones de movimiento deseadas para un instante (t). Si la dinmica
inversa es modelada de manera exacta, el controlador podr predecir el torque
adicional requerido para seguir una trayectoria durante la aceleracin y/o
desaceleracin. Con dicho controlador, el robot puede incrementar la velocidad en
el efector final y, por tanto, reducir el tiempo para la ejecucin de una tarea.

Un segundo problema, de importancia en estudios de simulacin, es el problema


de la dinmica directa, en el que dado un vector de torques aplicados en las
articulaciones, se calcula la respuesta del sistema en base del movimiento
resultante del manipulador [16].

Un actuador tiene que balancear los torques de cuatro fuentes: el torque dinmico,
derivado del movimiento; torque esttico, debido a la friccin en el mecanismo, los
torques por gravedad, derivados por la accin de la gravedad sobre cada eslabn,
y fuerzas y torques externos que actan en el efector final. Tres tipos de torques
dinmicos se derivan del movimiento del manipulador: inercial, centrpeto y de
Coriolis [9].

Torque inercial que, de acuerdo a la segunda ley de Newton, es


proporcional a la aceleracin de la articulacin, en donde la inercia es la
tendencia de un cuerpo a mantener el estado de movimiento uniforme o
reposo en el que se encuentra.
Torque centrpeto, se deriva de las fuerzas centrpetas que restringen a un
cuerpo a rotar respecto de un punto, se dirige hacia el centro del
movimiento uniforme circular, y es proporcional al cuadrado de la velocidad
angular de la articulacin.
Torque de Coriolis derivado de las fuerzas de vrtice generadas por la
interaccin de dos eslabones rotantes, siendo estas proporcionales al
producto de las velocidades angulares de dichos eslabones, debido al
movimiento relativo entre estos.

Las leyes bsicas de la dinmica del manipulador pueden obtenerse a partir de las
leyes de Newton en conjunto con conceptos como el principio del trabajo virtual de
DAlembert, ecuaciones de Lagrange, y ecuaciones de Hamilton [15], [17]. En la
robtica, las dos formulaciones que comnmente se tratan son: la formulacin de
Newton-Euler, y la formulacin de Lagrange [9].

La dinmica de un manipulador robtico se describe por medio de un conjunto de


ecuaciones diferenciales ordinarias no lineales de segundo orden, que dependen
de las propiedades cinemticas e inerciales del robot.

Para la solucin a la dinmica del manipulador habremos de basarnos en la


derivacin Lagrangiana de la dinmica. Esta tcnica tiene la ventaja de requerir
nicamente de las energas cinticas y potenciales del sistema para su clculo.
2.2.1 Formulacin de Bsica.

Si se considera un sistema de n partculas que obedecen la segunda ley de


Newton, en la que la razn de cambio en el momento de una partcula es igual a la

fuerza aplicada a esta. Siendo Fi la fuerza aplicada en la i -sima partcula, mi la

masa de esta y ri su vector de posicin, entonces la segunda ley de Newton se


escribe como:

Fi = mi &
r&
i i = 1,2,..., n . . . . . . . . . . . . (2.11)

pero, ya que el inters de este estudio no es sobre una partcula independiente,


sino sobre un conjunto de partculas que estn fijas a otras y tienen grados de
libertad limitados [19]. Es entonces, necesario describir estas interconexiones
introduciendo restricciones entre las posiciones de las partculas. Cada restriccin

es representada por una funcin g j :

g j (r1 , , rn ) = 0 j = 1,..., k
k = no. de restricciones ..................... (2.12)

Una restriccin que puede ser escrita en esta forma, como una relacin algebraica
entre las posiciones de las partculas, es conocida como restriccin holonmica
[19], [20].

Una restriccin acta en un sistema por la accin de una fuerza de restriccin,


dicha fuerza es determinada de manera tal que la ecuacin de restriccin (2.12) es
siempre satisfecha. Si vemos a las restricciones como una superficie plana, las
fuerzas de restriccin son siempre normales a esta superficie, y restringen la
velocidad del sistema a ser tangente a esta en todo momento [19]. Por lo que el
modelo dinmico dado por (2.11) puede ser reescrito cmo una ecuacin vectorial
de la siguiente manera:
m1 I 0 & 1
r&
F = +
k
j =1
j j

0 mn I rn . . . . . . . . . .. . . . (2.13)

donde los vectores 1 ,..., n son las bases para las fuerzas de restriccin, los

cuales no se requiere que sean ortonormales; y j es el factor de escala para el


j - simo elemento. Para restricciones de la forma en que aparecen en la

ecuacin (2.13), j puede tomarse como el gradiente de g j , que es perpendicular

al nivel establecido por g j ( r ) = 0 .

Los escalares 1 ,..., n son conocidos como los multiplicadores de Lagrange, cuyos
valores dan nicamente magnitudes relativas de las fuerzas de restriccin, dado

que los vectores j no son necesariamente ortonormales [18], [19].

Este acercamiento para tratar con restricciones es intuitivamente sencillo, pero


complejo desde el punto de vista de cmputo, ya que es necesario mantener la
atencin en el estado de todas las partculas en el sistema, an cuando estas no
sean capaces de movimiento independiente [19].

Un acercamiento ms atractivo consiste en describir el movimiento del sistema en


trminos de un conjunto ms pequeo de variables, que describan completamente
la configuracin del sistema [20]. Para un sistema de n partculas con k

restricciones, se busca obtener un conjunto de m = 3n k variables, q1 ,..., qn , y

funciones de igualdad f1 ,..., f n , de manera que:

ri = f i (q1 ,..., q n ) g j (r1 ,..., rn ) = 0



i = 1,..., n j = 1,..., k
Siendo las qi ' s el conjunto de coordenadas generalizadas para el sistema. En un
manipulador robtico compuesto por eslabones rgidos, estas coordenadas
generalizadas corresponden a las variables de las articulaciones, siendo:

para articulaciones de revolucin


qi = i
d i para articulaciones prismticas

Dado que los valores de las coordenadas generalizadas son suficientes para
especificar la posicin de las partculas que conforman al robot, podemos
reescribir las ecuaciones de movimiento del sistema en trminos de stas, para
componentes en coordenadas generalizadas se hace referencia a estas fuerzas
como fuerzas generalizadas [16].

2.2.2 Formulacin de Lagrange.

La dinmica lagrangiana se basa en la determinacin de la energa contenida en


el sistema [21], definiendo al Lagrangiano L como la diferencia entre la energa
cintica y la energa potencial, de manera tal, que las ecuaciones para un sistema

mecnico expresado en coordenadas generalizadas qi , estn dadas por:

d L L
=i i = 1,2,..., n
dt q&i q i ........(2.14)

donde:

L = Funcin Lagrangiana = energa cintica K energa potencial P,


qi = Coordenada generalizada del brazo
i = Fuerza o par generalizado aplicado al sistema en la articulacin.
Por lo que es necesaria la comprensin de la matriz de transformacin de
i 1
coordenadas homogneas Ai , que describe la relacin espacial entre los

sistemas de coordenadas del i -simo elemento con el (i 1) -simo elemento.


Relacionando un punto fijado en el elemento i, expresado en coordenadas
homogneas, con respecto al sistema de coordenadas i-simo en el sistema
de coordenadas (i-1)-simo [15].

Ntese que si no hay restricciones en el sistema, entonces se puede hacer a


1
q componente de r , resultando en
K=
2
mi r&
i
2

, as la ecuacin (2.14) se
reduce a la ecuacin (2.11). De hecho, reordenando la ecuacin (2.14), se
puede representar como:

d L L
= +
dt q& q . . . . . . . . . . . . . . . . . .(2.15)

Que es un replanteamiento de la ley de Newton en coordenadas generalizadas


[19].

2.2.2.1 Dinmica Lagrangiana de un Manipulador de dos grados de Libertad.

Para un manipulador de dos grados de libertad, articulado en la base y el hombro,


como se muestra en la figura (2.9), la base esta fija, y como consecuencia, el
centro de masa de esta no se mueve, lo que hace que el trmino de velocidad
lineal en la ecuacin de la energa cintica sea cero, en tanto que la energa
potencial del eslabn permanece constante.
Figura 2.9 Manipulador de dos grados de libertad.

Par efectos de ilustrar la derivacin de las ecuaciones dinmicas de Lagrange, se


modelarn a los eslabones como elementos unifilares con concentracin de masa
(m) en el extremo distal de estos. Ya que la energa cintica es independiente del
sistema de coordenadas en el cual se evala, el clculo de la energa cintica,
debida a la velocidad angular, se hace en el sistema de coordenadas del eslabn,
de esta manera, el tensor de inercia no tiene que ser transformado al sistema de
coordenadas de la base.

0
Partiendo de la matriz T2 que corresponde a la solucin a la cinemtica directa de
este manipulador, se obtienen las expresiones para determinar las velocidades del
sistema, como se muestra a continuacin:

C1C2 C1 S 2 S1 l2 C1C2
S C S1 S 2 C1 l2 S1C2
0
T2 = 1 2
S2 C2 0 d1 + l 2 S 2

0 0 0 1

y como V1 = 0 , se puede derivar fcilmente el vector de posicin en la matriz


0

anterior para obtener

S1C 2& &


1 C1 S 2 2

V2 = C1C 2& &
1 S1 S 2 2 l 2
0

C 2&2
las velocidades angulares

0
1
0 = &1
0
y

0 C2 S2 0 0 C 2& 1
2
0 = 0 + S 2 C2 0 1 = S 21
& &
&2 0 0 1 0 &2
se calcula ahora la energa cintica para cada eslabn mediante:
1 &2
K1 = m 1 = 0
2
ya que el eje de rotacin pasa a travs del centro de masa, entonces
1 1
K 2 = m2 0V22 + m2 0 22 0
22 = 0 2 0 2T = S 22& 2 & &2 &2 &2
1 + C 2 1 + 2 = 1 + 2
2 2

2 2
como el eje de rotacin pasa a travs del centro de masa (siendo la velocidad
angular expresada en el sistema de coordenadas de la articulacin), la inercia no
tiene contribucin en la energa cintica de sistema (cuando este no es el caso, el

12 2 T
+ 2 0 J 2 0
segundo trmino existe y es de la forma ).

0
[
V22 = 0V2 0V2T = l 22 ( S1C2&
1 C1 S 2 2 ) + (C1C 2 1 S1 S 2 2 ) + C 2 2
& & 2
& 2 2
& 2
]
[ ] [ ]
= l 22 S12 C 22 + C12 C22 12 + l 22 C12 S 22 + S12 S 22 + C 22 22
= l 22 C 2212 + l 22 22
entonces:

K2 =
1
2
(
m2 l 22 C 22&2 &2
1 +2 )
y las energas potenciales para cada eslabn estn dadas como:
P1 = m1 gl1
P2 = m2 g (l1 + l 2 S 2 )
por lo que el Lagrangiano del manipulador es:
L = (K1 + K 2 ) (P1 + P2 )
1
(
= 0 + m2 l 22 C 22&
2
2 &2 )
1 + 2 m1 gl1 m2 g (l1 + l 2 S 2 )

de donde se obtienen los siguientes componentes correspondientes a la


formulacin dinmica de Lagrange.
L 1 2 2 2
m2 l 2 C 2 &
2 2 &
= 1 = m2 l 2 C 2 1
& &
1 1 2
L
=0
1
d L

&
dt 1
(
= m2 l 22 C 22&
& &&
1 2C 2 S 2 1 2 )
y

L 1 2 2
= m2 l 2 &2 = m2 l 2 &
2
& &
2 2 2
1

L 1
= m2 l 22 C 22&
1 m2 gl 2 S 2
2

2 2 2
= m2 l 22 S 2 C 2& 1 m2 gl 2 C 2
2

d L
= m2 l 22&
&
dt &2
2

lo que determina las ecuaciones de los torques a partir de la formulacin de


Lagrange, como:

d L L
1 = = m2 l 22 C 22&
& &&
1 2m2 l 2 C 2 S 2 1 2
2

dt 1 1

d L L
2 = = m2 l 22&
& &2
2 + m2 l 2 S 2 C 2 1 + m2 gl 2 C 2
2

dt 2 2
que son las ecuaciones diferenciales que gobiernan el movimiento del
manipulador, expresando lo anterior en notacin matricial:

1 2 C 2
2
0 &
&
1 0 2 2 C 2 S 2 &&
0
= m2 l 2 & + m2 l 22 &
1 2 m2 l 2 1 2 +
2 0 1 &
2 S 2C2 0 m2 l 2 C 2
que de forma general puede escribirse como [15], [17]:

&+ C ( ,&)&+ N ( ,&) . . ...... . . . .. . ............. (2.16)


= M ( )&

2.3 Control de Manipuladores Robticos.

El primer paso cuando se disea un sistema de control es el determinar la funcin


de transferencia, o modelo de la planta del proceso que se trata de controlar. Un
modelo esttico de la planta describe la salida como funcin de la entrada,
excluyendo los efectos dinmicos. En un sistema lineal, un modelo esttico es la
relacin de la salida con respecto de la entrada. Por ejemplo, la relacin de
revoluciones a la salida de una caja de engranes que es constante. La mayora de
los sistemas fsicos son lineales nicamente dentro de un rango de las variables
[31], razn por la cual se disean los sistemas para que trabajen en el rango lineal.

Cuando lo anterior no puede ser establecido, se trata de controlar un sistema no


lineal, en el que el modelo esttico es una funcin no lineal para una o ms
variables [32].

Por otra parte, las funciones de transferencia son modelos de planta que incluyen
tanto los efectos dinmicos del sistema, como la relacin esttica entre la entrada
y la salida. Dichos efectos hacen que la relacin entre la entrada y la salida varen
durante la transicin de un estado a otro. El principal efecto dinmico, en lo que
corresponde al control, es el retraso en el tiempo desde que se varia la entrada
hasta que la salida responde [9].

Figura 2.10 Cambios en la entrada de un sistema de control


La entrada de un sistema puede ser manipulada de varias maneras (Figura 2.10).
Una entrada del tipo impulso, representa de manera general una perturbacin no
deseada. Una entrada que varia de manera continua, como la senoidal, es usada
para medir la funcin de transferencia. La mayora de las entradas a un sistema
son del tipo rampa, las cuales varan en un rango fijo [33].

Los efectos dinmicos dependen de la frecuencia y no solo retrazan el cambio en


la salida en respuesta de la excitacin presente en la entrada, sino tambin,
limitan el rango en el cual la salida puede responder. Este lmite es conocido como
relacin de desviacin (figura 2.11) del sistema. Si la rampa es ms rpida que la
relacin de desviacin, la salida no puede igualar a la entrada, y un error de
seguimiento es generado. Este ltimo es la diferencia entre la entrada y la salida
en cualquier instante en el tiempo. Uno de los usos del control predictivo es el
anticipar la respuesta del sistema de manera tal que el error de seguimiento sea
mnimo.

Figura 2.11 Error de seguimiento debido al efecto dinmico

Las funciones de transferencia para un sistema lineal son expresadas en el


dominio del tiempo como ecuaciones diferenciales, y en el dominio de Laplace
como transformadas de Laplace. Al considerar un bloque de masa (m) que es
jalado a lo largo de una superficie con friccin (f) por un cable de constante
elstica (k) (Figura 2.12), el modelo dinmico para este sistema puede derivarse
de la segunda ley de Newton. Cuando un vector F(t) es aplicado, una fuerza de
reaccin, compuesta por una fuerza inercial proporcional a la aceleracin de la
masa, una fuerza de friccin proporcional a la velocidad de la masa y una fuerza
elstica proporcional a la tensin del cable, deben ser consideradas.

Figura 2.12 Sistema masa-resorte-amortiguador.

x&+ fx&+ kx&= F (t ) . . . . . . . . . . . . . . . . . . . . (2.17)


m&

La funcin de transferencia es la relacin entre la transformada de Laplace de la


salida y la transformada de Laplace de la entrada.

salida 1 1
= G ( s) = =
entrada mS + fS + k ( S + a )( S + b) . . . . . . . . . . (2.18)
2

El polinomio en el denominador, cuando este se iguala a cero, se conoce como


ecuacin caracterstica, dado que las races de esta ecuacin caracterizan el
tiempo de respuesta del sistema. Las raices de esta ecuacin son llamadas polos
o singularidades del sistema son llamadas ceros del sistema. Estos son dibujados
en un diagrama de polos y ceros (figura 2.13).
Figura 2.13 Diagrama polos-ceros a)polos simples; b) polos complejos

En robtica, funciones de transferencia son requeridas para los eslabones y los


actuadores. Por ejemplo, un eslabn puede ser modelado como un pndulo con la
masa concentrada en el extremo distal de este. El torque aplicado a la flecha de la
articulacin es entonces, funcin de la inercia, la friccin en la articulacin y la
gravedad.

= m&
&+ f&+ mgl . . . . . . . . . . . . . . . . . . . . (2.19)

2.3.1 Control de la velocidad de motores de C.D.

Debido a que las variables a controlar ( ,&,&


&) dependen directamente del

desplazamiento, velocidad y aceleracin del actuador, que en este caso es un


motor de c.d., se presentan las tcnicas y consideraciones para su control.

La velocidad de salida de un motor de corriente directa, puede ser controlada ya


sea, variando el voltaje en la armadura, o variando la corriente en el campo. Para
un motor controlado por el voltaje en la armadura, el aspecto dinmico tiene que
considerar el efecto de la inductancia en la armadura y la carga por inercia
(incluyendo la inercia de la armadura, y la friccin). Como la corriente en la
armadura es constante, no existe efecto dinmico en el campo. La corriente en la

armadura (I ) es funcin del voltaje aplicado (V ) , la resistencia de la armadura


( Ra ) , la inductancia de la armadura (L) y la fuerza electromotriz en retorno (E ) .

V ( s) = (Ra + LS )I ( s ) + E ( s) . . . . . . . . . . . . . . . . . . . . (2.20)

El torque ( a ) , producido por el motor, es funcin de la fuerza del campo ( ) y de


la corriente de la armadura.
a ( s ) = K aI ( s ) = K m I ( s ) . . . . . . . . . . . . . . . . . . . . (2.21)

Este torque hace que el motor gire la carga con una velocidad angular . El
torque del actuador es contrarrestado por el torque debido a la inercia y la friccin.

L = JS ( s) + f ( s) . . . . . . . . . . . . . . . . . . . . (2.22)

La rotacin de la armadura produce una fuerza electromotriz de retorno que es

proporcional a la velocidad de esta ( ) .

E ( s ) = K a ( s) = K m ( s) . . . . . . . . . . . . . . . . . . . . (2.23)

Entre ms grande sea la carga, ms lento rotar la armadura, reduciendo con esto
la fem de retorno e incrementando la corriente en la armadura para mover la
carga.

Al combinar estas expresiones para formar el diagrama a bloques de la figura 11.9


y obtener la funcin de transferencia del motor, se obtiene:

1 Km
=
V [
S (Ra + LS )(JS + F ) + (K m )
2
] . . . . . . . . . . . . . . . . (2.24)

Si el eje del motor se une a una caja de engranajes, la velocidad de salida de la

esta ( 2 ) es el producto de la velocidad del motor. Finalmente, si se quiere


controlar el torque aplicado por el eje del motor, en lugar de la velocidad o posicin
de este, se utiliza una funcin de transferencia de corriente a torque.

K m ( Ra + LS )( JS + F )
=
I K m2 + ( Ra + LS )( JS + F ) . . . . . . . . . . . . . (2.25)
La tcnica que se emplea para variar la velocidad de un motor de c.d. consiste en
hacer uso de un amplificador, este controla el voltaje aplicado en las terminales del
motor, y por tanto, la velocidad de este.

Hoy en da, dos tipos de amplificadores son utilizados, el amplificador de potencia


de c.d. y amplificadores con modulacin por ancho de pulso (PWM por sus siglas
en ingls).

El amplificador de potencia de c.d. magnifica un pequeo voltaje a la entrada de


este, a un voltaje capaz de mover un motor. Tanto el valor de entrada, como el de
salida del amplificador son analgicos. La ganancia en voltaje es normalmente
pequea, pero la ganancia en potencia puede ser muy grande. De esta forma, la
corriente de salida es funcin de la resistencia de la carga. Estos amplificadores
usualmente incluyen una retroalimentacin interna, de manera tal que poseen una
funcin de transferencia lineal en voltaje, as que estos pueden ser modelados
como una ganancia constante.

V0
= Ka =
Vi ganancia del amplificador

El segundo tipo de amplificador es el que utiliza la modulacin por ancho de pulso.


Este elemento proporciona un tren de pulsos al motor. El voltaje aplicado al motor
es un valor promedio de c.d.

t
V promedio = V1 1
t1 + t 2 . . . . . . . . . . . . . . . . . . . . (2.26)

Este tipo de amplificadores presentan dos ventajas: control electrnico sencillo y


buen desempeo en operacin a bajo voltaje. El control electrnico puede ser
simplificado mediante interruptores de energa (transistores) con la temporizacin
hecha por programacin. A bajas velocidades, el voltaje aplicado por un
amplificador de c.d. puede que no sea suficiente para romper la resistencia de
contacto entre las escobillas y el conmutador del motor, o para vencer la friccin
esttica. Como la modulacin por ancho de pulso siempre aplica el mismo voltaje,
este problema no se presenta, pero si la frecuencia de los pulsos es muy baja, la
respuesta del motor puede ser muy burda, para minimizar este efecto, la
frecuencia de modulacin suele ser muy alta, de esta manera, la armadura se
comporta como un filtro R-L, y promedia los pulsos de entrada.

Como las ganancias de voltaje y corriente son similares a aquellas del amplificador
de c.d., este amplificador tambin se modela como uno con ganancia constante.
No obstante, si un control electrnico simple es usado, una retroalimentacin de
voltaje puede ser requerida para hacer lineal el control en voltaje.

El objetivo del control de un manipulador basado en computadora es el mantener


la respuesta dinmica del sistema de acuerdo con objetivos deseados. Por lo que,
para controlar el movimiento de una serie de eslabones, de manera tal que el
efector final trace una trayectoria deseada, el sistema de control tiene que proveer
los torques en las articulaciones para balancear las fuerzas en los eslabones.

Cuando un eslabn es acelerado, el actuador habr de proveer el torque


necesario para contrarrestar la inercia. Si el robot utiliza nicamente control de
retroalimentacin de posicin o velocidad, la dinmica del sistema provocar que
el efector final se atrase con relacin a la trayectoria deseada durante la
aceleracin y posiblemente pierda el punto final de la trayectoria.

De manera general, son tres los tipos de respuestas que se pueden observar en
un sistema bajo control, estas son: sub-amortiguado, respuesta que se obtiene
cuando el valor del amortiguamiento es <1; crticamente amortiguado, cuando el
valor del amortiguamiento es =1; y sobre-amortiguado, cuando el valor del
amortiguamiento es >1.
En el espacio cartesiano se hace uso de la solucin a la cinemtica inversa para
calcular los ngulos que habrn de posicionar al efector final en la posicin y
orientacin deseada en el espacio. Las articulaciones se desplazan a esas
posiciones angulares y se asume que el manipulador se encuentra en la posicin
cartesiana correcta, si no existe algn elemento que permita cuantificar el
desplazamiento en las articulaciones, no habr certeza de si el manipulador se
encuentra en la posicin correcta. Lo anterior es conocido como control de lazo
abierto. Este modelo de control es tan exacto como lo sea el modelo de la planta,
asegurando que no hay perturbaciones que causen error, ya que las variaciones
mecnicas y/o del entorno, pueden causar errores en la posicin del efector final,
pues el modelo de control no es capaz de detectar ni corregir dicho error.

Cuando el resultado de una accin previa es usado para corregir el error en la


planta, recibe el nombre de control adaptivo. Este tipo de control corrige errores en
la planta debidos a variaciones a largo plazo, pero no corrige errores en la
dinmica del sistema. Por ejemplo, cuando un lanzador suelta la pelota, este ya no
tiene ms control sobre sta, si el resultado no es el deseado, es decir si falla el
lanzamiento, el lanzador corregir o adaptar, en otro lanzamiento, la fuerza
aplicada en el lanzamiento para conseguir que la pelota sigua la trayectoria
deseada.

El uso de un modelo para predecir que accin tomar sobre la cantidad de energa
en uso, se conoce como control prealimentado o control predictivo. Este tipo de
control se utiliza para realizar ajustes en el sistema si la seal de retroalimentacin
esta retrasada y es necesario tomar una accin para mantener la respuesta del
sistema dentro de los lmites deseados.
Figura 2.14 Estructura bsica de control de posicin

Para obtener un modelo de control preciso de la planta durante la ejecucin de


una accin, se utiliza el control con retroalimentacin. Bajo este modelo de control,
el parmetro a ser controlado es continuamente medido (retroalimentacin), y
comparado con una referencia (clculo del error).

Cuando se controla un manipulador robtico, el control predictivo se usa para


calcular las referencias de las articulaciones a partir del espacio cartesiano,
utilizando la solucin a la cinemtica inversa. Por otra parte, para controlar una
articulacin individual (Fig. 2.14), el control de retroalimentacin es utilizado para
comparar el ngulo medido con el ngulo de referencia. Cualquier error entre la
seal de retroalimentacin y la de referencia es amplificado para proveer la
energa necesaria al actuador.

2.3.2 Ley de control en lazo abierto de manipuladores robticos.

Como se acord anteriormente, la dinmica de un manipulador est descrita por la


ecuacin (2.16), en donde [ ] es el conjunto de variables que definen la
configuracin del manipulador y representa el torque aplicado en las

articulaciones. Se denota aqu, por medio de d , la trayectoria o posicin deseada


de la articulacin, la cual se asume que est definida para cualquier instante en el
tiempo y que es al menos diferenciable en dos ocasiones [19].

Si se tiene un modelo perfecto del robot y (0) = d (0), (0) = d (0) , entonces,
& &

podemos modelar al torque necesario como:

= M ( d )&d + C ( d , d ) d + N ( d , d )
& & & &
. . . . . . . . . . . . . . (2.27)

Dado que tanto como d satisfacen la misma ecuacin diferencial y tienen las

mismas condiciones iniciales, se puede tomar que (t ) = d (t ) para toda t 0 .

Esta estrategia de control no es muy robusta, ya que si (0) d (0) , entonces la


ley de control en lazo abierto nunca habr de corregir el error. Esto claramente no
es deseable, pues nunca se sabra con certeza la posicin real del robot. Por esta
razn, se introduce la retroalimentacin en la ley de control. Esta retro
alimentacin debe establecerse de manera tal que la trayectoria real del robot
converja en la trayectoria deseada.

2.3.3 Ley de control del Torque Calculado.

La ley de control de lazo abierto puede refinarse dando la posicin y velocidad real
del manipulador, cancelando todas las no linealidades y aplicando exactamente el
torque necesario para contrarrestar la inercia del actuador. La ley de control puede
expresarse como:

= M ( )&d + C ( , ) + N ( , )
& && &
. . . . . . . . . . . . . . . . (2.28)

Al sustituir esta ley de control en la ecuacin dinmica del manipulador, se


observa que:
M ( )&
&= M ( )&
&d . . . . . . . . . . . . . . . . . . . . (2.29)

y dado que M ( ) est completamente definida en ( ) , tenemos:

&
&= &
&d . . . . . . . . . . . . . . . . . . . . (2.30)

De aqu, que si la posicin y velocidad iniciales del manipulador coinciden con


aquellas deseadas, el manipulador habr de seguir la trayectoria deseada. Pero
tambin, esta ley de control no corrige ninguna condicin de error que se
encuentre presente, pues an es una ley de control en lazo abierto.

Las propiedades de esta ley de control pueden mejorarse al incluir un trmino de


realimentacin en sta, la condicin de linealidad (2.30) sugiere la siguiente ley de
control:

= M ( )(&
& & K p e ) + C ( , &)&+ N ( , &)
d Kve . . . . . . . . . (2.31)

donde e = d , y K v y K p son las constantes de ganancia. Al sustituir en la


ecuacin (2.28), el error dinmico puede ser escrito como:

M ( )(e&
&+ K v e&+ K p e ) = 0 . . . . . . . . . . . . . . . . . . . . (2.32)

como M ( ) es siempre positivo y definido, se tiene:

&+ K v e&+ K p e = 0
e& . . .. . . . . . . . (2.33)

Esta es la ecuacin diferencial lineal que gobierna el error entre las trayectorias
real y deseada. La ecuacin (2.31) es conocida como la ley de control del torque
calculado [19], que puede ser reescrita como:
= M ( )&d + C + N + M ( )( K v e
& K p e )
& &
1 4 44 2 4 4 43 1 4 4 4 2 4 4 43
ff fb . . . . . . . . . (2.34)

El trmino ff es el componente de prealimentacin o predictivo, el cual provee la


cantidad de torque necesario para conducir al sistema a lo largo de su trayectoria

deseada. En tanto que el trmino fb es el parmetro de retroalimentacin, que


provee el torque de correccin para reducir los errores en la trayectoria del
manipulador.

De manera general, en ste captulo se han presentado los fundamentos bsicos


para el modelado matemtico de manipuladores robticos, en lo que corresponde
a la cinemtica, dinmica y control de estos. En el siguiente captulo, se obtiene el
modelo matemtico que gobierna el movimiento del manipulador de anlisis.
El Manipulador Robtico de 5
Grados de Libertad Mitsubishi
Movemaster RV-M1 como Caso
de Estudio

E
n
e
s
t
e
c
a
3. El robot de 5 Grados de Libertad Mitsubishi
Movemaster como Caso de Estudio.

3.1 Descripcin del Manipulador Robtico Mitsubishi.


El Mitsubishi Movemaster EX es un robot articulado con cinco grados de libertad,
figura 3.1, con una capacidad de carga mxima de 1.5 Kg. Para que el robot
Mitsubishi realice la secuencia de movimientos es indispensable que estn activos
en la memoria, tanto el archivo de puntos, como el programa, el cual describir la
secuencia de puntos y la interaccin con otros elementos.

Figura 3.1 Robot Mitsubishi Movemaster

Las dimensiones fsicas del manipulador se muestran en la figura 3.2

Figura 3.2 Dimensiones (en mm.) del Robot Movemaster


Los elementos que constituyen al sistema del robot Mitsubishi son: el brazo de
robot, el controlador principal y el control manual; los cuales se presentan a
continuacin en la figura 3.3.

Figura 3.3 Sistema Movemaster

La capacidad de movimiento de este manipulador de 5 grados de libertad se


ilustra en la figura 3.4

Figura 3.4 Grados de Libertad del Movemaster.


3.1.1 Sistemas de Coordenadas sobre los que se desplaza el robot
Mitsubishi Movemaster

A continuacin se describen los diversos modos en los que se pueden realizar los
movimientos del robot MITSUBISHI, para facilitar la localizacin de un punto en
especial.

Modo PTP: este modo permite mover, articulacin por articulacin,


los elementos del robot para modificar su configuracin en el
espacio.

Modo XYZ: en este modo, el brazo realiza movimientos en los planos


X, Y y Z, tomando como base el sistema cartesiano del robot,
localizado en la base de este.

Modo Herramental: en este modo, el robot se mueve en base al


sistema de coordenadas que se localiza en el plato de herramientas,
que por la configuracin del brazo, el eje Z, corresponde a un
acercamiento o distanciamiento del objetivo.

3.2 Planteamiento del problema cinemtico.

El problema cinemtico consiste en obtener las ecuaciones que describen el


movimiento del robot, sin tomar en cuenta las fuerzas que lo producen, estas
ecuaciones se conocen como ecuaciones de diseo del manipulador.

3.2.1. Obtencin de las ecuaciones de diseo del Manipulador.

Para poder dar solucin tanto a la cinemtica directa como a la inversa, es


necesario establecer un conjunto de ecuaciones que describan el movimiento del
efector final en el espacio cartesiano, en funcin de los desplazamientos angulares
o lineales de los eslabones que lo componen. Estas ecuaciones se obtienen de la
convencin establecida por Denavit y Hartenberg, de manera tal que, para un
manipulador de n grados de libertad, se obtendr un sistema de 12 ecuaciones
con n incgnitas, en donde por lo general, n<12. Estas ecuaciones representan la
posicin y orientacin del efector final en coordenadas cartesianas, en funcin de
los desplazamientos de las articulaciones.

Para el manipulador de 5 grados de libertad, siguiendo la metodologa descrita en


el captulo 2, se tiene:

a) a) El manipulador en una posicin inicial conveniente para asignar los


sistemas de coordenadas (Figura 3.5).

Figura 3.5 Posicin inicial para la asignacin de sistemas de coordenadas

b) b) Asignacin de los sistemas de coordenadas (Figura 3.6), de donde se


deriva la matriz de parmetros de Denavit-Hartenberg (Tabla 3.1):

Figura 3.6 Sistemas de coordenadas para el robot


Tabla 3.1 Parmetros de D-H

A rticulacin
i i ai di
1 1 90 0 300
2 2 0 250 0
3 3 0 160 0
4 4 -90 0 0
5 5 0 0 72
i 1
De la cual se obtienen las matrices de transformacin homognea Ai :

C1 0 S1 0 C 2 S 2 0 250C 2
S 0 C1 0 S C 2 0 250S 2
1 2
0 1 0 300 0 0 1 0

0
A1= 0 0 0 1 1
A2= 0 0 0 1

C 3 S 3 0 160C 3 C 4 0 S 4 0
S C 3 0 160S 3 S 0 C 4 0
3 4
0 0 1 0 0 1 0 0

2
A3= 0 0 0 1 3
A4= 0 0 0 1

C 5 S 5 0 0
S C 5 0 0
5
0 0 1 72

4
A5= 0 0 0 1

y la matriz de transformacin correspondiente al efector final con relacin a la base


0
T5 .

C1C 234C5 S1 S 5 C1C 234 S 5 S1C5 C1 S 234 72C1S 234 + 160C1C 234 + 250C1C 2
S C C + C S S1C234 S 5 + C1C5 S1 S 234 72S1 S 234 + 160S1C234 + 250S1C2
1 234 5 1 5

S 234C5 S 234 S 5 C234 72C 234 + 160S 23 + 250S 2 + 300



0
T5= 0 0 0 1

donde C234 = cos( 2 + 3 + 4 ) y S 234 = sen( 2 + 3 + 4 )


igualando miembro a miembro con la ecuacin (2.10), se tiene:

n x = cos 1 cos 234 cos 5 sen1sen 5


n y = sen1 cos 234 cos 5 + cos 1sen 5

n z = sen 234 cos 5

s x = cos 1 cos 234 sen 5 sen1 cos 5
s y = sen1C234 sen 5 + cos 1 cos 5

s z = sen 234 sen 5
.......................(3.1)
a x = cos 1sen 234
a y = sen1sen 234

a z = cos 234
p x = 72 cos 1sen 234 + 160 cos 1 cos 234 + 250 cos 1 cos 2
p y = 72 sen1sen 234 + 160sen1 cos 234 + 250sen1 cos 2

p z = 72 cos 234 + 160sen 23 + 250sen 2 + 300

Al conjunto de ecuaciones conformado por (3.1) se le conoce como las


ecuaciones de diseo del manipulador [18]. En general, se trata de un conjunto
de ecuaciones no lineales sobredeterminado, de 12 ecuaciones con n incgnitas,
que describen el movimiento del efector final en el espacio cartesiano, en funcin
de la posicin angular, o desplazamiento angular de las articulaciones. Para este
caso se trata de un sistema de 12 ecuaciones con 5 incgnitas, ya que es un
sistema de 5 grados de libertad.

Como la cinemtica no solo es el estudio de la posicin, sino tambin de la


velocidad y aceleracin, las expresiones que definen dichas relaciones de cambio
se obtienen fcilmente al derivar las ecuaciones de diseo con respecto al tiempo,

asumiendo que es funcin de t y que esta puede derivarse.


3.2.2. Planteamiento de la Solucin a la Cinemtica Directa e Inversa
del Manipulador.
3.2.2.1 Cinemtica Directa.

La solucin a la cinemtica directa a partir de las ecuaciones de diseo del


manipulador es relativamente sencilla, ya que estas expresan la relacin espacial
entre los elementos en funcin de los valores de entrada en las articulaciones del
manipulador. Para conocer la posicin y orientacin del efector final del
manipulador para un vector de posiciones dado para las articulaciones, solo basta
sustituir los valores para las ' s en las ecuaciones de diseo, en la matriz del
robot, obteniendo como resultado el vector de posicin de la base al efector final y
la matriz de orientacin [n, s, a] de este con respecto al sistema de coordenadas
de la base. Y para conocer la velocidad y aceleracin lineal del efector final como
resultado de velocidades y aceleraciones angulares en las articulaciones, se
sustituyen estos ltimos en las expresiones correspondientes para velocidades y
aceleraciones de las ecuaciones de diseo. Resolviendo con esto, de manera
completa, lo referente a cinemtica directa.

Para la solucin numrica a la Cinemtica Directa se desarroll la funcin


Cdmover (Anexo1) bajo el programa Matlab, los elementos de la matriz de
transformacin homognea para el robot Movemaster que se utilizan en esta
funcin para determinar la posicin y orientacin del efector final son los que se
obtuvieron en (3.1).

La funcin Cdmover resuelve la cinemtica directa a partir de dos vectores de


entrada, el vector constante [VC], que contiene las longitudes de los eslabones del
manipulador, y el vector variable [VV], que contiene los valores de los ngulos de
las articulaciones, obteniendo la matriz correspondiente para la posicin y
orientacin del efector final especificada por los ngulos de entrada. En la figura
3.7 se muestra el diagrama de flujo de la funcin.
Figura 3.7 Diagrama de Flujo de la Funcin Cdmover.

Como ejemplo, la matriz [M] que se obtiene para ngulos de entrada 1... 5 = [ /2
0 0 /2 0], que corresponden a la posicin de origen seleccionada y con
longitudes de los eslabones L1...L4 = [300 250 160 72] es:

cdmover(vv,vc)

ans =

0.0000 -1.0000 0.0000 0.0000


0.0000 0.0000 1.0000 482.00
-1.0000 0 0.0000 300.00
0 0 0 1.0000
Como podemos observar, la posicin y orientacin del efector final obtenidas
corresponden a aquellas que coinciden con la posicin inicial considerada para
establecer los sistemas de coordenadas del manipulador.

3.2.2.2 Cinemtica Inversa.

Como se explic anteriormente, existen diversos mtodos para la solucin a la


cinemtica inversa. El que aqu se plantea se basa en la comprensin de que hoy
en da las herramientas de computo con las que se cuenta, poseen una velocidad
de procesamiento que permite realizar el clculo de la solucin al problema
planteado en poco tiempo, permitiendo as su implementacin.

La cinemtica inversa consiste en determinar los valores de las articulaciones que


satisfagan condiciones deseadas de posicin, velocidad o aceleracin en el
espacio cartesiano. De lo anterior, podemos identificar tres problemas a resolver,
cinemtica inversa para posiciones, cinemtica inversa para velocidades y
cinemtica inversa para aceleraciones.

Para el primer problema, se parte de las ecuaciones de diseo, las cuales


representan un sistema de ecuaciones no lineales sobredeterminado, de 12
ecuaciones por n incgnitas. Aqu, se especifican los valores deseados para
[n, s, a, p] para los que se resolvern los valores de ' s .

Como el sistema de ecuaciones es no lineal, el primer paso es linealizar el sistema


aplicando algn mtodo iterativo como es el mtodo de Newton, que hace uso de
la expansin de Taylor[34]. El modelo matemtico del mtodo de Newton es el
siguiente:

fi ( x1, x 2 ,..., xn ) = 0 , i = 1, 2 ,..., n ....................(3.2)


donde fi es una funcin no lineal de las xj. Si tenemos una estimacin inicial de la
solucin, esta puede escribirse como sigue:

xj = x j + xj ..............................................(3.3)

donde xj es la estimacin inicial y xj es una correccin desconocida. Si


expandimos la ecuacin 3.2 para obtener un polinomio de Taylor truncado de

primer orden alrededor de xj obtenemos:

fi
j xj
xj = fi ( x1, x 2,..., xn)
.........................(3.4)

donde las derivadas parciales se evalan con las condiciones iniciales. La


ecuacin 3.4 puede escribirse en forma de matriz como:

J x = -f .....................................................(3.5)

Donde J es la matriz Jacobiana dada por

fi
=
J xj .....................................................(3.6)

y,

x1
x 2
x =


xn ....................................................(3.7)
fi ( x1, x 2, , xn)
f 2( x1, x 2, , xn)

=


f fn( x1, x 2, , xn) ..........................................(3.8)

Las derivadas parciales pueden evaluarse con una aproximacin de diferencia, de


la forma siguiente:

fi fi(x1, , xj +xj, , xn) fi(x1, , xj, xn)



xj xj ................................(3.9)

donde xj es un valor pequeo elegido arbitrariamente.

Una vez linealizado el sistema de ecuaciones, queda por resolver el sistema de


ecuaciones sobredeterminado, para esto se utiliza algn mtodo iterativo como es
el mtodo de Gauss, de Jacobi o de Moore-Penrose. Este ltimo, hace uso de la
matriz inversa generalizada, algunas veces llamada matriz pseudoinversa.

La ventaja de utilizar el mtodo de Moore-Penrose sobre otros, es que este


derivar en la solucin que signifique la menor de la norma de las posibles
soluciones [37], [40].

La solucin que se obtiene depende de la correcta implementacin de ambos


mtodos y de la aproximacin inicial que se determine para su solucin, esto para
la cinemtica inversa de posicin.

Para el caso del manipulador robtico Movemaster, las ecuaciones de diseo a


linealizar se plantean de la siguiente manera:
F1 = cos1 cos 234 cos 5 sen1sen 5 nx
F2 = sen1 cos 234 cos 5 + cos1sen 5 n y

F3 = sen 234 cos 5 nz

F4 = cos1 cos 234 sen 5 sen1 cos 5 s x
F5 = sen1C234 sen 5 + cos1 cos 5 s y

F6 = sen 234 sen 5 s z

F7 = cos1sen 234 a x
F8 = sen1sen 234 a y

F9 = cos 234 a z
F10 = 72 cos1sen 234 + 160 cos1 cos 234 + 250 cos1 cos 2 p x
F11 = 72 sen1sen 234 + 160sen1 cos 234 + 250 sen1 cos 2 p y

F12 = 72 cos 234 + 160sen 23 + 250 sen 2 + 300 p z ...... (3.10)

Para las derivadas parciales que se indican en la ecuacin 3.9, el valor de xj es


un pequeo incremento elegido arbitrariamente, que en la funcin Newton (Anexo
1) es llamada damp.

Una vez linealizado el sistema de ecuaciones, se resuelve el sistema de


ecuaciones sobredeterminado utilizando el comando pinv, que soluciona el
problema sobredeterminado utilizando el mtodo de Moore-Penrose .

Considerando lo anterior, el listado del programa para resolver el problema


cinemtico inverso, haciendo uso del mtodo de Newton, queda como se muestra
en la funcin Newton en el Anexo 1, dicha funcin resuelve la cinemtica inversa
a partir de una matriz de entrada [M], que contiene la posicin y orientacin
deseados del efector final y de valores iniciales para las incgnitas 1...5, de
donde comenzar la funcin en el mtodo iterativo de Newton a linealizar el
sistema de ecuaciones no lineales (3.10), en el cual habr convergencia cuando
las funciones F1 a F12 lleguen a un valor que pueda considerarse como cero. Una
vez linealizado el sistema de ecuaciones, numricamente resolvemos el sistema
sobredeterminado obteniendo los valores de los ngulos de las articulaciones para
la posicin deseada en el vector de salida [t]. El diagrama de flujo de la funcin
Newton se muestra en la Figura 3.8.

Figura 3.8 Diagrama de Flujo de la Funcin Newton.

3.3 Planteamiento del Problema Dinmico.

La obtencin del modelo dinmico de un manipulador robtico proveer de las


expresiones suficientes para establecer las leyes de control del sistema, as como
para el clculo del torque requerido para que el manipulador cumpla con las
condiciones de movimiento deseadas. A partir de la solucin a la cinemtica
inversa para posiciones, velocidades y aceleraciones, se obtienen los parmetros
necesarios para evaluar el comportamiento dinmico de este.
3.3.1 Obtencin del Modelo Dinmico del Manipulador.

Para la obtencin del modelo dinmico del manipulador se utiliza la formulacin de


Lagrange. La aplicacin de esta, en conjunto con la representacin de
coordenadas de elementos de Denavit y Hartenberg, resulta en una descripcin
algortmica conveniente y compacta de las ecuaciones de movimiento del
manipulador [15].

Como se estableci previamente, la formulacin de Lagrange requiere del


conocimiento de la energa cintica del sistema fsico, lo que a su vez requiere del
conocimiento de la velocidad de cada articulacin con respecto a la base del
manipulador.

Para manipuladores de ms de dos grados de libertad, resulta un tanto difcil


establecer el modelo dinmico como se plante en el captulo anterior. Se
recomienda aqu el utilizar la derivacin de la formulacin de Lagrange como lo
sugieren (Fu et al.) en [15], que se presenta a continuacin. Ya que la
implementacin de esta en Matlab resulta de manera natural.

i
Figura 3.9 Punto ri en el sistema de coordenadas de la articulacin.
Si establecemos un punto cuyo vector de posicin, expresado en el sistema de
i
coordenadas de la articulacin ri (como se muestra en la figura 3.9) y como el
inters se concentra en el sistema de coordenadas de la base, se establece que:

0
vi vi =
d
dt
( r ) = dtd (
o
i
0
)
Ai i ri =

= 0 A&1 1 A2 ...i 1 Ai i ri + 0A1 1 A&2 ...i 1 Ai i ri + ...+ 0A1 ...i 1 A&i i ri + 0A1 ...i 1 Ai i r&
i

i 0Ai i
= q r i = 0
j =1 q &j i
ya que i
r&
j ................................................(3.11)

0
La derivada parcial de Ai con respecto a q j se calcula fcilmente con la ayuda de

la matriz Qi , que para una articulacin de revolucin se define como:

0 1 0 0
1 0 0 0
Qi =
0 0 0 0

0 0 0 0 ..................................................(3.12)

y para una articulacin prismtica, como:

0 0 0 0
0 0 0 0
Qi =
0 0 0 1

0 0 0 0 ..................................................(3.13)

de manera que:
i 1Ai
= Qi i 1 Ai
qi ..................................................(3.14)
de aqu que, para i = 1, 2, ..., n .

0Ai 0 A1 1 A2 ... j 2 A j 1Q j j 1
A j ...i 1 Ai . . . para j i
=
q j 0 para j > i . . . . . (3.15)

La ecuacin (3.15) se puede interpretar como el efecto del movimiento de la

articulacin j , sobre todos los puntos del elemento i . Con el fin de establecer una
notacin simplificada y compacta se define,

0Ai 0 A j 1Q j j 1
Ai . . . para j i
U ij =
q j 0 para j > i ....................(3.16)

Entonces, la expresin correspondiente para la velocidad en el elemento i , se


puede expresar como:

i
vi = Uijq&j i ri
j =1 ..................................................(3.17)

Lo anterior es vlido nicamente para un elemento, pero debido a que se trata de


una cadena eslabonada, es necesario determinar el efecto en la velocidad,
derivado de la interaccin de las articulaciones, de la siguiente manera:

0
A j 1Q j j 1 Ak 1Qk k 1 Ai ik j
U ij
U ijk = 0
Ak 1Qk k 1 A j 1Q j j 1 Ai i jk
q k
0 i< j i<k
.......(3.18)

Una vez planteada la formulacin para velocidades en el sistema, es necesario


calcular la energa cintica total del manipulador, la cual esta dada por la siguiente
expresin:
n n i i
K = Ki = 1 Traza U ip J jU irT q&p q&r

2 i =1
i =1 p =1 r =1

[Traza (U )]
n i i

2
=1 ip J jU irT q&p q&r
i =1 p =1 r =1 ...........................(3.19)

en donde J j es la matriz correspondiente a los momentos de inercia de las


secciones de los eslabones del manipulador.

La energa potencial total del manipulador estar dada por:

P = i =1 Pi = i =1 mi g 0 Ai i ri
n n
[ ( )] ..........................(3.20)

en donde g es un vector fila de gravedad expresado en el sistema de coordenadas


de la base. Para un sistema de nivel, g =(0, 0, -| g |, 0).

Una vez determinadas las energas cintica y potencial del sistema, se pueden
establecer las ecuaciones de movimiento del manipulador.

Ya que la funcin Lagrangiana del sistema est dada por L = K P , tenemos

[Traza(U )] [ ( )]
n i i n

2
L= 1 ip J jU irT q&p q&r + mi g 0 Ai i ri
i =1 p =1 r =1 i =1 .....(3.21)

de manera tal que el par generalizado i dado por la formulacin de Lagrange es:

d L L
i =
dt q&i qi

Tr (U jk J )q&& + Tr (U )q&q& m
n j n j j n
= T
jU ji k jkm J
T
jU ji k m jqU ij
j
rj
j = i k =1 j = i k =1 m =1 j =1 ......(3.22)
para i = 1, 2, . . ., n . La Ecuacin anterior se puede expresar en notacin matricial
como:
n n n j
i = Dik q&
&k + hikm q&k q&m + ci i = 1, 2, . . . , n
k =1 k =1 m =1 m =1 ........(3.23)

o de forma matricial como:


(t ) = D(q(t ) )q&
&(t ) + h(q(t ), q&(t ) ) + c(q(t ) ) ...........................(3.24)

3.3.2 Planteamiento de la solucin a la Dinmica del Manipulador.

Una vez conocidos los valores de posicin, velocidad y aceleracin del sistema,
estos se sustituyen en la formulacin dinmica del manipulador. Para esto se
desarrollaron los listados num1, num2 y num3 (ver Anexo 1) que emplean los
datos derivados de la solucin a la cinemtica inversa, para la solucin numrica
de la dinmica del robot, al conjunto de listados les corresponde el diagrama de
flujo que se muestra en la figura 3.10.

Figura 3.10 Diagrama de Flujo para la Funcin num1.


Han sido definidos, hasta este punto, los modelos matemticos que gobiernan el
movimiento del manipulador Mitsubishi Movemaster y se han desarrollado las
herramientas de cmputo necesarias para la solucin de estas en MATlab. En el
siguiente captulo se plantea el uso de estos modelos matemticos en la
generacin de trayectorias de manipuladores robticos, con el objeto de poder
obtener la informacin necesaria que permita realizar una programacin fuera de
lnea.
Generacin de Trayectorias.

E
n

s
t
e
c
a
p
4. Generacin de Trayectorias.

De manera general, el objetivo de un manipulador robtico es que siga una


trayectoria deseada, con la finalidad de realizar una tarea determinada. Para esto
se habrn de definir los puntos que conforman dicha trayectoria. Hoy en da, la
mayora de las industrias nacionales que cuentan con robots instalados, tienen el
problema de que, para indicar una nueva trayectoria a seguir por el manipulador,
es necesario detener la lnea de produccin, para que un grupo de tcnicos
localicen los puntos de manera gestual sobre una plantilla de tamao real, o sobre
un prototipo. Lo anterior se puede aceptar y no sera un problema si:

a) a) La trayectoria pudiera definirse con pocos puntos, y


b) b) Si no se requiere de una gran precisin para definir dichos
puntos.

Ya que las condiciones planteadas en a) y b), por lo general no se dan, es


necesario, para localizar y grabar los puntos de una nueva trayectoria, hacerlo de
manera gestual, para lo cual se requiere un periodo importante de tiempo para
poder definir los puntos y afinar la localizacin de estos.

Lo que se propone en este trabajo, es un mtodo para poder obtener los


parmetros necesarios que permitan realizar una programacin fuera de lnea. A
partir de la solucin a la cinemtica inversa (para un robot comercial) y de la
solucin a la dinmica (c.i. y dinmica para prototipos de manipuladores), se podr
contar con la informacin necesaria para definir la orientacin y posicin en cada
uno de los puntos que conforman la trayectoria deseada.

Esto es, si el robot habr de seguir una trayectoria deseada durante un periodo de

tiempo T , esta estar definida, para un instante (t), por los siguientes parmetros:
posicin, orientacin, velocidad y aceleracin del efector final.
Si se desea que el manipulador pase de un punto A a un punto B dentro de una
trayectoria, no existe ningn elemento que asegure que la trayectoria descrita por
el efector final sea una lnea recta, ya que por la configuracin de cadena abierta
del manipulador y por la naturaleza del control, las diferentes articulaciones de
este, se movern de manera tal que estas converjan en la posicin angular
deseada, lo que da como resultado la posicin y orientacin angular deseadas en
el espacio cartesiano. Por lo que el efector final describir una trayectoria en base
a los desplazamientos de las articulaciones, lo que no necesariamente es una
lnea recta (Figura 4.1).

Figura 4.1 Trayectoria del Efector final entre dos puntos

En algunos casos, la trayectoria que siga el efector final entre los puntos A y B,
puede no ser de gran inters, pero si existe algn objeto u obstculo con el que el
manipulador pudiese colisionar, o bien, el proceso que realiza este, exige que la
trayectoria a seguir sea una lnea determinada, entonces se definirn tantos
puntos como se considere necesario para que efectivamente el efector final del
manipulador describa la trayectoria deseada entre los dos puntos.

Si deseamos que el efector final describa una trayectoria circular, entonces


tambin tendremos que especificar un nmero suficiente de puntos que, al
momento de unirlos por la trayectoria que describa el efector final, correspondan a
la circunferencia deseada.

4.1 Metodologa para la generacin de trayectorias.

Los pasos a seguir para la generacin de trayectorias son los siguientes:


1. 1. Parametrizar la trayectoria. Identificar los puntos donde exista un
cambio de direccin en la trayectoria a seguir (ligaduras de camino) y
establecer las orientaciones del efector final que se desean durante esta.

2. 2. Realizar el anlisis cinemtico de la trayectoria para obtener los


vectores de posiciones angulares que satisfacen las condiciones
establecidas por las ligaduras de camino.

3. 3. Realizar el anlisis dinmico, que incluye el determinar los vectores de


velocidades y aceleraciones angulares correspondientes a las condiciones
de movimiento deseadas para la trayectoria, con el propsito de determinar
los vectores de torque en las articulaciones, que satisfacen la dinmica de
la trayectoria.

Para lograr lo anterior, en el tercer captulo, ya fueron definidos los modelos


cinemticos que gobiernan el movimiento del manipulador, as, habrn de definirse
las orientaciones y posiciones que conformarn la trayectoria a describir y por
medio de la solucin a la cinemtica inversa del manipulador, se calculan los
vectores de posiciones angulares para las articulaciones que habrn de
satisfacerlos. Por lo cual se requiere realizar una parametrizacin de trayectoria.

4.2 Parametrizacin de Trayectorias.

El establecimiento de parmetros que definen la trayectoria a seguir por un


manipulador, contempla:

(1) (1) La identificacin de aquellos puntos en donde existe un cambio de


direccin en la trayectoria a seguir por el manipulador, referidas como
ligaduras de camino [9], [15], [35]; y
(2) (2) La orientacin del efector final, que se desea mantener a lo largo de la
trayectoria. Para lo anterior, es necesario conocer con precisin la
ubicacin de los elementos que constituyen el entorno de trabajo del robot,
con el fin de poder relacionar directamente, la tarea a desempear con el
sistema de coordenadas de la base del manipulador (Figura 4.2).

Figura 4.2 Sistemas de coordenadas del robot y de objetos en su entorno

La informacin que se derive de la definicin de los puntos y orientaciones


deseadas para el efector final que conformarn la trayectoria, ser utilizada
posteriormente, como valores de entrada a los programas de solucin de la
Cinemtica Inversa y Dinmica del manipulador, para determinar as las
configuraciones espaciales del manipulador que satisfagan las posiciones y
orientaciones que, a su vez definan la trayectoria deseada, definiendo asimismo
los vectores de fuerzas o torques a aplicar, para que se cumplan las condiciones
dinmicas de movimiento de la trayectoria.

Con el objeto de ilustrar lo anterior, supngase que la tarea a desempear por el


manipulador robtico consiste en colocar un cordn de soldadura sobre el
contorno marcado en la figura 4.3 por la lnea punteada.
Figura 4.3 Ruta a seguir por el manipulador.

El primer paso es determinar las ligaduras de camino que habrn de definir.,de


manera general, los puntos que conforman a la trayectoria a seguir (Figura 4.4).

Figura 4.4 Definicin de las ligaduras de camino.


El segundo paso es relacionar estas ligaduras de camino (puntos a...h), con el
sistema de coordenadas de la base, partiendo de la suposicin que el vector de
posicin de a, respecto al sistema de coordenadas 0 de la base del manipulador,
es a=[200, 100, 150, 1]T. As, que las dems ligaduras de camino estarn
definidas por:

200 250 - 250 - 200


100 150 250
b= , c= , d= , e = 250 ,
150 150 150 150

1 1 1 1

200 250 250


300 250
f = , g = , h = 150
150 150 150

1 1 1

Una vez determinados los vectores de posicin de las ligaduras de camino, el


tercer paso consiste en establecer la orientacin deseada del efector final durante
la trayectoria a seguir, Figura 4.5.

Figura 4.5 Establecimiento de la orientacin deseada durante la trayectoria.


Como al efector final le corresponde un sistema de coordenadas que determina su
orientacin con respecto a la base del robot, se definen las matrices de
transformacin homognea que corresponden a la trayectoria (posicin de las
ligaduras de camino y orientacin del efector final en estas), Figura 4.6.

Figura 4.6 Identificacin de las orientaciones deseadas.

0 1 0 200 0 1 0 200 1 0 0 250


1 0 0 100 1 0 0 100 0 1 0 150
a= , b= , c= ,
0 0 1 150 0 0 1 150 0 0 1 150

0 0 0 1 0 0 0 1 0 0 0 1

1 0 0 - 250 0 1 0 200 0 1 0 200


0 1 0 250 1 0 0
300 1 0 0 300
d= , e= , f = ,
0 0 1 150 0 0 1 150 0 0 1 150

0 0 0 1 0 0 0 1 0 0 0 1

1 0 0 250 1 0 0 250
0 1 0 250
g= , h = 0 1 0 150
0 0 1 150 0 0 1 150

0 0 0 1 0 0 0 1
Analizando la figura 4.4, se observa que la trayectoria a seguir se compone por un
conjunto de trayectorias parciales, que se definen de la siguiente manera:

1. 1. Trayectoria ab recta
2. 2. Trayectoria bc arco de circunferencia
3. 3. Trayectoria cd recta
4. 4. Trayectoria de arco de circunferencia
5. 5. Trayectoria ef recta
6. 6. Trayectoria fg arco de circunferencia
7. 7. Trayectoria gh recta
8. 8. Trayectoria ha arco de circunferencia

De lo anterior se puede tomar, como representativo para el anlisis, al segmento


de trayectoria abc.

Para que la trayectoria parcial de ab sea efectivamente una lnea recta, es


necesario definir un numero suficiente de puntos intermedios (el nmero de puntos
depende de la precisin que se requiera dependiendo de la tarea a desempear),
para que la trayectoria parcial ab del efector final describa la lnea deseada. De
esta manera, en el momento en que el efector final del manipulador satisfaga los
puntos (A, A1, A2, ..., An, B), la trayectoria descrita por este, corresponder con lo
esperado.

As que, para el ejemplo, se definen 10 puntos en esta trayectoria parcial, estos


estaran definidos por:

0 1 0 200 0 1 0 160 0 1 0 120


1 0 0 100 1 0 0 100 1 0 0 100
A= , A1 = , A2 = ,
0 0 1 150 0 0 1 150 0 0 1 150

0 0 0 1 0 0 0 1 0 0 0 1
0 1 0 80 0 1 0 40 0 1 0 0
1 0 0 100 1 0 0 100 1 0 0 100
A3 = , A 4 = , A 5 = ,
0 0 1 150 0 0 1 150 0 0 1 150

0 0 0 1 0 0 0 1 0 0 0 1

0 1 0 40 0 1 0 80 0 1 0 120
1 0 0 100 1 0 0 100 1 0 0 100
A6 = , A7 = , A8 = ,
0 0 1 150 0 0 1 150 0 0 1 150

0 0 0 1 0 0 0 1 0 0 0 1

0 1 0 160 0 1 0 200
1 0 0 100 1 0 0 100
A9 = , B= ,
0 0 1 150 0 0 1 150

0 0 0 1 0 0 0 1

Como se observa, la orientacin del efector se mantiene en todo momento, en


tanto que, la magnitud en x se incrementa, satisfaciendo la ecuacin de la recta.

Para el caso de la trayectoria parcial bc que se desea describa un arco de radio


25mm, es necesario definir de igual manera, las ligaduras de camino parciales,
necesarias para que el efector final siga un arco de circunferencia. De manera tal,
se establecen 10 puntos para definir esta trayectoria parcial (en general se habrn
de definir un mayor nmero de puntos para describir una trayectoria circular), se
hace el siguiente anlisis:


Se determina los desplazamientos X y y , ya que en z el valor se mantiene
constante, a partir del punto b hasta el punto c. Como se muestra en la figura 4.7.
Figura 4.7 Anlisis de la Trayectoria Parcial bc.

En donde:

X = r sen
y

Y = r r cos

Se determina la variacin angular en la orientacin, para el sistema de


coordenadas de efector final durante la trayectoria parcial, haciendo el anlisis que
se muestra en la figura 4.8.

Figura 4.8 Anlisis de variacin angular en la orientacin.


De donde se obtiene la matriz de variacin en coordenadas homogneas:

sen cos 0 200 r sen


cos sen 0 100 + r - r cos
bn =
0 0 1 150

0 0 0 1

Con esta relacin se pueden determinar tantos puntos como se desee para definir
la trayectoria parcial. Para este caso, se establecen 10 puntos para la definicin de
la trayectoria, los cuales se generan de manera automtica con la funcin traycirc
(Anexo1) desarrollada en Matlab, de donde se obtienen los siguientes puntos:

0 1 0 200 0.1564 0.9877 0 207.8217


1 0 0
100 .09877 0.1564 0 100.6156
b= b1 =
0 0 1 150 0 0 1 150.0000

0 0 0 1 , 0 0 0 1

0.3090 0.9511 0 215.4508 0.4540 0.8910 0 222.6995


0.9511 0.3090 0
102.4472 0.8910 0.4540 0 105.4497
b2 = b3 =
0 0 1 150.0000 0 0 1 150.0000

0 0 0 1 0 0 0 1
0.5878 0.8090 0 229.3893 0.7071 0.7071 0 235.3553
0.8090 0.5878 0 109.5492 0.7071 0.7071 0 114.6447
b4 = b5 =
0 0 1 150.0000 0 0 1 150.0000

0 0 0 1 0 0 0 1
0.8090 0.5878 0 240.4508 0.8910 0.4540 0 244.5503
0.5878 0.8090 0 120.6107 0.4540 0.8910 0 127.3005
b6 = b7 =
0 0 1 150.0000 0 0 1 150.0000

0 0 0 1 0 0 0 1
0.9511 0.3090 0 247.5528 0.9877 0.1564 0 249.3844
0.3090 0.9511 0
134.5492 0.1564 0.9877 0 142.1783
b8 = b9 =
0 0 1 150.0000 0 0 1 150.0000

0 0 0 1 0 0 0 1
1 0 0 250
0 1 0 150
c=
0 0 1 150

0 0 0 1

Como se observa, los desplazamientos del vector de posicin satisfacen la


ecuacin de una circunferencia, en tanto que en el componente de orientacin,
esta se define para cada una de las posicin, de manera tal que el efector realiza
una trayectoria suave a lo largo de un cuarto de circunferencia.

4.3 Cinemtica de la generacin de trayectorias.

Una vez obtenida la informacin necesaria que define la trayectoria, se realiza el


anlisis cinemtico de la trayectoria, en este, se calculan los vectores de
posiciones angulares que satisfagan las condiciones determinadas por las
matrices de transformacin homogneas, que corresponden a las posiciones que
definen la trayectoria. Estas matrices, se alimentan como valor de entrada al
programa Newton para resolver la cinemtica inversa para cada una de las
posiciones.

Para la trayectoria abc de la figura 4.4, que ha sido definida por 21 matrices de
transformacin homognea, se obtienen los siguientes vectores de posicin
angular en grados a partir de la solucin a la cinemtica inversa del manipulador:
26.565 1 32.0054 39.8056 51.3402
19.0243 17.2037 12.9419 6.2761

a = - 113.5907 a1 = - 125.4646 a 2 = - 136.071 a 3 = - 145.1048

- 85.4336 - 71.7391 - 56.8709 - 41.1713
- 63.4349 - 57.9946 - 50.1944 - 38.6598

68.1986 90 111.8014 128.6598


- 1.0903 - 4.6284 - 1.0903 6.2761

a 4 = - 151.6665 a 5 = - 154.1844 a 6 = - 151.6665 a 7 = - 145.1048

- 27.2432 - 21.1872 - 27.2432 - 41.1713
- 21.8014 0 21.8014 38.6598

140.1944 147.9946 153.4349 154.1663


12.9419 19.0243 19.1261
17.2037
a 8 = - 136.071 a 9 = - 125.4646 b = - 113.5907 b1 = - 111.0255

- 56.8709 - 71.7391 - 85.4336 - 88.1006
50.1944 57.9946 63.4349 73.1643

154.5688 154.6621 154.4723 154.0287


19.1431 19.0697 18.9094 18.6731

b2 = - 108.2865 b3 = - 105.4422 b4 = - 102.559 b5 = - 99.701

- 90.8566 - 93.6275 - 96.3505 - 98.9722
82.5671 91.6628 100.4736 109.0287
153.3615 152.5008 151.4752 150.3118
18.3771 18.041 17.6867 17.3366

b6 = - 96.93 b 7 = - 94.3053 b 8 = - 91.884 b 9 = - 89.7198

- 101.4471 - 103.7356 - 105.8026 - 107.6168
117.3603 125.5001 133.4769 141.3139

149.0362
17.0127

c = - 87.8624

- 109.1503
149.0362

Estos vectores representan las posiciones angulares que satisfacen las


condiciones de posicin y orientacin del efector final para la trayectoria abc.

Figura 4.9 Anlisis cinemtico trayectoria abc


Con el propsito de comprobar los resultados derivados del anlisis cinemtico, se
model el manipulador robtico Mitsubishi Movemaster, haciendo uso de
herramientas de modelado en realidad virtual, cuyo listado se incluye en el Anexo
2. Derivado de este modelado, se obtienen los grficos correspondientes a las
configuraciones del brazo, como resultado de las posiciones angulares que
satisfacen la posicin y orientacin deseadas para el efector final. En la figuras
4.10 a 4.13 se muestran las configuraciones resultantes para los puntos a, a1, b9 y
c, desde tres diferentes perspectivas, frontal, lateral derecha y superior. (Los
grficos correspondientes para el resto de las posiciones se incluyen en el Anexo
3).

Otra forma de comprobar la veracidad de los resultados es la siguiente: se sabe


que en todo momento el ngulo que existe entre z0 y z5 es de 180, y que este
est dado por la suma de los ngulos theta2, theta3 y theta4, lo cual corresponde
en todo momento al realizar la suma de estos ngulos.

Figura 4.10 Configuracin resultante correspondiente al punto a.


Figura 4.11 Configuracin resultante correspondiente al punto a1.

Figura 4.12 Configuracin resultante correspondiente al punto b9.


Figura 4.13 Configuracin resultante correspondiente al punto b.

Para las dems trayectorias parciales, se hace un anlisis similar con el fin de
determinar las ligaduras de camino necesarias, para que el efector final del
manipulador describa de manera fiel la trayectoria principal deseada.

4.4 Dinmica en la generacin de trayectorias.

Cuando un manipulador describe una trayectoria, es importante el considerar el


comportamiento dinmico que se desea presente el manipulador. Este
comportamiento estar definido por los vectores de velocidad y aceleracin que
afectarn el movimiento del efector final a lo largo de su trayectoria, adems de las
caractersticas de masas y momentos de inercia del propio manipulador.

Los vectores de velocidades y aceleraciones angulares que afectan al sistema


para el ejemplo que se plantea, se obtienen tomando en cuenta las siguientes
consideraciones:
La longitud total considerada para el anlisis es la que comprende la
tayectoria abc, que es de 596.35mm.
El tiempo en el que se desea recorrer esta trayectoria es de 3 min. (que es
el tiempo que un soldador calificado le tomara realizar la tarea).
Tanto la velocidad inicial, como la final del sistema es de 0 m/s.

Ya que la trayectoria abc (figura 4.4) est compuesta por dos trayectorias
parciales, ab y bc, se determina el tiempo en el que se habrn de cubrir cada una
de estas trayectorias parciales de la siguiente manera: la trayectoria abc est
definida por un total de 21 puntos, de los cuales, los primeros 10 puntos definen la
trayectoria parcial ab, con una longitud total de 400mm; y los siguientes 11 puntos,
definen la trayectoria parcial bc con una longitud total de 196.35mm. Con esta
informacin es posible establecer una relacin que permita determinar el tiempo
que corresponde para describir cada una de las trayectorias parciales.

De manera tal que, para la trayectoria parcial ab tenemos:

596.35mm 3 min
400.00mm x

x = 2.0122min = 120.7345seg

como esta trayectoria est definida por 10 puntos, el intervalo de tiempo entre
posiciones es de 12.07345seg.

Considerando lo anterior, el tiempo correspondiente para describir la trayectoria bc


es de 0.9878min, 59.2680seg. Como esta trayectoria esta definida por 11 puntos,
el intervalo de tiempo entre puntos es de 5.3880seg. Como la velocidad es la
razn de cambio de posicin en el tiempo, se obtiene el gradiente entre posiciones
angulares y se divide entre el intervalo de tiempo, obteniendo as las velocidades
angulares para el sistema que se muestran en la tabla 4.1.

Para las aceleraciones, tomando en cuenta que esta es la razn de cambio de la


velocidad en el tiempo, se obtienen los gradientes de velocidad y se divide
nuevamente entre el intervalo de tiempo, obteniendo as, las aceleraciones
angulares del sistema para las condiciones de movimiento deseadas (Tabla 4.2).
En las figuras 4.14 y 4.15, se observa grficamente el comportamiento de estos
parmetros para cada una de las articulaciones.

Tabla 4.1 Velocidades angulares (rad/seg)


omega1 omega2 omega3 omega4 omega5
0 0 0 0 0
0.00786446 -0.00263185 -0.01716482 0.01979667 0.00786446
0.01127591 -0.00616083 -0.01533254 0.02149336 0.01127591
0.01667433 -0.00963603 -0.01305920 0.02269523 0.01667433
0.02437038 -0.01064881 -0.00948555 0.02013436 0.02437038
0.03151595 -0.00511465 -0.00363986 0.00875451 0.03151595
0.03151595 0.00511465 0.00363986 -0.00875451 0.03151595
0.02437038 0.01064881 0.00948555 -0.02013436 0.02437038
0.01667433 0.00963603 0.01305920 -0.02269523 0.01667433
0.01127591 0.00616083 0.01533254 -0.02149336 0.01127591
0.00786446 0.00263185 0.01716482 -0.01979667 0.00786446
0.00236922 0.00032976 0.00830943 -0.00863919 0.03151634
0.00130381 5.5068E-05 0.00887241 -0.00892748 0.03045839
0.00030223 -0.00023776 0.00921351 -0.00897575 0.02946361
-0.00061482 -0.00051926 0.00933952 -0.00882059 0.02854073
-0.00143695 -0.00076544 0.00925789 -0.00849245 0.02771245
-0.00216125 -0.00095883 0.00897607 -0.00801692 0.02698847
-0.00278806 -0.00108873 0.00850216 -0.00741311 0.02636717
-0.00332222 -0.00114768 0.00784329 -0.00669561 0.02583917
-0.00376859 -0.00113408 0.00701047 -0.00587672 0.02538631
-0.00413204 -0.00104921 0.00601666 -0.00496745 0.02501477
0 0 0 0 0
Tabla 4.2 Aceleraciones angulares (rad/seg^2)
alfa1 alfa2 alfa3 alfa4 alfa5
0.00065138 -0.000217986 -0.0014217 0.00163969 0.00065138
0.00028256 -0.000292293 0.000151762 0.00014053 0.00028256
0.00044713 -0.000287839 0.000188292 9.9546E-05 0.00044713
0.00063744 -8.38851E-05 0.000295992 -0.00021211 0.00063744
0.00059184 0.000458375 0.000484177 -0.00094255 0.00059184
0 0.000847256 0.000602952 -0.00145021 0
-0.00059184 0.000458375 0.000484177 -0.00094255 -0.00059184
-0.00063744 -8.38851E-05 0.000295992 -0.00021211 -0.00063744
-0.00044713 -0.000287839 0.000188292 9.9546E-05 -0.00044713
-0.00028256 -0.000292293 0.000151762 0.00014053 -0.00028256
-0.0010199 -0.000427262 -0.00164354 0.0020708 0.00438973
-0.00019774 -5.09821E-05 0.000104489 -5.3507E-05 -0.00019635
-0.00018589 -5.43489E-05 6.33068E-05 -8.9579E-06 -0.00018463
-0.0001702 -5.22447E-05 2.33869E-05 2.8798E-05 -0.00017128
-0.00015259 -4.56915E-05 -1.515E-05 6.0902E-05 -0.00015373
-0.00013443 -3.58919E-05 -5.2305E-05 8.8257E-05 -0.00013437
-0.00011633 -2.41083E-05 -8.7956E-05 0.00011206 -0.00011531
-9.9139E-05 -1.09419E-05 -0.00012228 0.00013317 -9.7996E-05
-8.2846E-05 2.52506E-06 -0.00015457 0.00015198 -8.4048E-05
-6.7455E-05 1.57516E-05 -0.00018445 0.00016876 -6.8958E-05
0.0007669 0.00019473 -0.00111668 0.00092195 -0.00464268
Figura 4.14 Velocidades angulares en las articulaciones (rad/s)
Figura 4.15 Aceleraciones en las articulaciones (rad/s^2)
Con la informacin de velocidades y aceleraciones se pueden obtener las
magnitudes de los torques a aplicar en las articulaciones para las condiciones de
movimiento especificadas. Para la solucin a la dinmica del manipulador se
utilizan los listados num1, num2 y num3 descritos en el captulo 3. Para la
solucin numrica empleando estos listados, es necesario indicar como valores de
entrada los datos correspondientes para las posiciones, velocidades y
aceleraciones angulares para el instante de inters.

Los torques necesarios para que el manipulador describa la trayectoria abc se


tabulan en la tabla 4.3 y se muestran grficamente en las figuras 4.16, 4.17, 4.18,
4.19 y 4.20.

Tabla 4.3 Torques aplicados en las articulaciones para generar la trayectoria abc (N-m)
Torque 1 Torque 2 Torque 3 Torque 4 Torque 5
0.0004870214 27.1975313380 -0.6250001102 -0.0000360868 -0.0000203874
0.0001436039 25.6540508720 -2.4591168747 0.0000004178 -0.0000001207
0.0002306826 24.3931644180 -4.2891295760 0.0000010117 -0.0000004156
0.0003267300 23.3460505000 -5.9075255540 0.0000029780 -0.0000008443
0.0002872534 22.4473828030 -6.9774428291 0.0000048964 -0.0000009731
-0.0000195852 22.0167453970 -7.3175516817 0.0000006752 0.0000010249
-0.0003060936 22.4473334410 -6.9774727159 -0.0000054527 0.0000039083
-0.0003262149 23.3460232730 -5.9075595117 -0.0000051326 0.0000030425
-0.0002236030 24.3931574470 -4.2891514369 -0.0000028497 0.0000013002
-0.0001347403 25.6540491630 -2.4591287130 -0.0000014141 0.0000004537
-0.0007662548 27.1974020300 -0.6251277793 -0.0000696256 0.0000442875
-0.0001241159 27.5453211290 -0.2601140452 0.0000004116 0.0000000111
-0.0001206671 27.9199038290 0.1173299862 0.0000001852 0.0000000050
-0.0001148534 28.3114570210 0.4965393357 -0.0000000404 -0.0000000028
-0.0001075126 28.7097671910 0.8680522409 -0.0000015159 -0.0000000029
-0.0000991848 29.1047345520 1.2239161353 -0.0000017680 -0.0000000013
-0.0000899836 29.4866611150 1.5575301656 -0.0000007771 -0.0000000042
-0.0000803898 29.8465309040 1.8634468187 0.0000002307 -0.0000000158
-0.0000703488 30.1761153720 2.1371997960 0.0000000432 -0.0000000416
-0.0000598403 30.4682095670 2.3751778503 -0.0000013594 -0.0000000613
0.0005877206 30.7167068910 2.5744521587 -0.0000049808 0.0000005784
Figura 4.16 Torque articulacin 1

Figura 4.17 Torque articulacin 2


Figura 4.18 Torque articulacin 3

Figura 4.19 Torque articulacin 4


Figura 4.20 Torque articulacin 5

Con este anlisis se puede determinar el valor nominal mximo del torque
necesario en las articulaciones, para que el manipulador siga la trayectoria
deseada. Sobre la base de este anlisis y modificando las condiciones de
movimiento, es posible determinar el valor de torque mximo para la seleccin de
los elementos actuadores, que habrn de animar al manipulador.

Derivado del anlisis anterior, se puede observar que los valores para los torques
2 y 3 son significativamente mayores en su magnitud, que aquellos para el resto
de las articulaciones. Esto obedece a que las articulaciones 2 y 3 experimentan
mayores desplazamientos, adems de que por la configuracin espacial del
mecanismo del manipulador, son los nodos en donde existe una mayor reaccin
como resultado de las cargas en los elementos. En tanto que en el resto de las
articulaciones, los valores de pares a aplicar son menores, en comparacin con
los dos mencionados.

Es tambin de inters los picos que se observan en la demanda de torque, los


cuales aparecen cuando las articulaciones del manipulador tienen que cubrir un
mayor desplazamiento para llegar a la siguiente posicin, por lo que se observa
una correspondencia con los picos que se observan en las grficas de
velocidades.

Si se considera ahora una carga a manipular en el efector final de 1.5kg, y se


analiza la misma trayectoria bajo el mismo patrn de velocidades y aceleraciones
se obtienen los siguientes valores de torques a ser aplicados por los elementos
actuadores en las articulaciones del robot, Tabla 4.4:

Tabla 4.4.- Torques considerando una carga de 1.5 k.g en el efector final (N-m)
Torque 1'' Torque 2'' Torque 3'' Torque 4'' Torque 5''
0.0005511658 30.4878396010 -0.8125289751 -0.0000631519 -0.0000356779
0.0001471379 28.4304706650 -3.1968527155 0.0000007311 -0.0000002113
0.0002364060 26.6917201230 -5.5758684624 0.0000017705 -0.0000007272
0.0003340472 25.2304930840 -7.6797795846 0.0000052116 -0.0000014775
0.0002925591 24.0322442400 -9.0706648234 0.0000085688 -0.0000017030
-0.0000224890 23.4882464430 -9.5128031741 0.0000011817 0.0000017935
-0.0003164518 24.0321773410 -9.0707069170 -0.0000095423 0.0000068395
-0.0003345241 25.2304518500 -7.6798264182 -0.0000089820 0.0000053243
-0.0002270446 26.6917067090 -5.5758982872 -0.0000049870 0.0000022754
-0.0001351820 28.4304660610 -3.1968688476 -0.0000024747 0.0000007940
-0.0008906908 30.4876612510 -0.8127383216 -0.0001218447 0.0000775032
-0.0001276212 30.9429678030 -0.3381489446 0.0000007202 0.0000000194
-0.0001243601 31.4304265330 0.1525285577 0.0000003241 0.0000000088
-0.0001187134 31.9372857690 0.6455010268 -0.0000000708 -0.0000000049
-0.0001115249 32.4503989560 1.1284675576 -0.0000026529 -0.0000000050
-0.0001032964 32.9570132790 1.5910909032 -0.0000030940 -0.0000000022
-0.0000940889 33.4450633920 2.0247899538 -0.0000013600 -0.0000000073
-0.0000844085 33.9034524930 2.4224823829 0.0000004036 -0.0000000277
-0.0000741878 34.3221413500 2.7783614564 0.0000000756 -0.0000000728
-0.0000633733 34.6923924460 3.0877325218 -0.0000023789 -0.0000001072
0.0006156428 35.0068224650 3.3467956179 -0.0000087164 0.0000010122

Para considerar esta carga adicional en la formulacin de Lagrange solamente se


modifica la masa y el centro de gravedad que se especifica para el ltimo sistema
de coordenadas, el cual corresponde al efector final. En el listado num1 se
modifica el valor de masa, en tanto que en el listado num3 se modifica el valor del
vector de posicin del centro de masa de este.
A continuacin se realiza un anlisis comparativo entre los torques obtenidos para
ambas condiciones de carga, como se muestra en las graficas de las figuras 4.21
a 4.25.

Figura 4.21 Comparacin t1 vs t1

Figura 4.22 Comparacin t2 vs t2


Figura 4.23 Comparacin t3 vs t3

Figura 4.24 Comparacin de t4 vs t4


Figura 4.25 Comparacin t5 vs t5

De las grficas anteriores se observa que entre los torques calculados inicialmente
y aquellos obtenidos considerando una carga en el efector final de 1.5kg, existe
una correspondencia cualitativa en cuanto al comportamiento de los torques a
aplicar en las articulaciones, en tanto que no existe una correspondencia
cuantitativa, pues es necesaria una mayor demanda de torque en los actuadores
del robot para manipular una carga mayor.

De manera general, se puede decir que al seguir la metodologa presentada en


este captulo, se obtiene claramente la informacin necesaria para la generacin
de trayectorias de manipuladores robticos y, es posible pensar en la
implementacin de sta en un prototipo real, desde el punto de vista experimental,
como se presenta en el siguiente captulo.
Desarrollo experimental derivado
de este trabajo.

En
ste
capt
ulo
se
pres
enta
el
traba
5. Desarrollo Experimental Derivado de este Trabajo.

Derivado de este trabajo se han desarrollado un total de 10 proyectos de diseo


de prototipos de manipuladores robticos para diversas aplicaciones,
buscando con esto alentar la investigacin sobre este tema en jvenes ingenieros
y como parte del trabajo desarrollado como profesor de las materias Sistemas
Digitales II (Microprocesadores) y Sistemas Digitales III (Robtica) a nivel
licenciatura en la carrera de Ingeniera en Control y Automatizacin de la ESIME -
Zacatenco. De estos, el que ms avance presenta es el proyecto de
Implementacin de las Tcnicas de Control PID en un Manipulador Robtico de
Tres Grados de Libertad, que a continuacin se describe de manera ms amplia.

Es importante mencionar que los costos derivados de este proyecto se han


financiado haciendo uso de las becas de CONACYT y PIFI. El costo total
aproximado hasta el momento es de $9,000.00.

5.1 Proyecto de Implementacin de las Tcnicas de Control PID


en un Manipulador Robtico de Tres Grados de Libertad

Los objetivos de este proyecto son:

Diseo y construccin de un manipulador robtico de 3 grados de


libertad
Solucin al modelo matemtico del manipulador
Implementacin de la tcnica de control PID para comprobar el modelo
matemtico del manipulador
Identificacin y anlisis de las diferentes curvas de respuesta que
presenta el control P, PI, PD Y PID.

Para lo cual, este se ha dividido en 5 etapas:


Diseo y desarrollo mecnico.
Modelado matemtico y solucin de las ecuaciones.
Programacin fuera de lnea.
Circuito de potencia.
Control.

El manipulador robtico consta de tres movimientos (grados de libertad) en una


configuracin denomina Brazo Articulado, puesto que las articulaciones son
giratorias.

Cada una de las articulaciones cuenta con un sensor (encoder) de tipo absoluto,
que representa el ngulo de posicin de un eslabn con respecto al eslabn
anterior.

La funcin a desempear del manipulador, es la de generar una trayectoria en el


espacio, para llevar un objeto de un extremo de la base a otro, teniendo pleno
control sobre las articulaciones por medio de la tcnica PID e identificando las
diferentes respuestas que presenta esta tcnica. En tanto que los parmetros para
la generacin de trayectorias se obtienen de la solucin a la cinemtica inversa,
comprobando dichos parmetros en un principio mediante el modelado virtual del
manipulador, para verificar que los resultados son los esperados y posteriormente
alimentando los datos de la trayectoria a la base de datos del control del
manipulador, para generar as la trayectoria deseada por el manipulador real.

En un principio se determina el modelo matemtico correspondiente al


manipulador, partiendo de la obtencin de los parmetros de Denavit y Hartenberg
necesarios para definir la posicin y orientacin del efector final del manipulador
con respecto a la base.

Ya que se tiene el modelo matemtico del manipulador, se resuelven las


ecuaciones de diseo del manipulador para dar solucin a la cinemtica directa.
Posteriormente, las ecuaciones de diseo son linealizadas por medio del mtodo
de Newton, para obtener la solucin a la cinemtica inversa de este manipulador,
lo cual conduce a encontrar los ngulos que satisfacen una posicin y orientacin
final deseada.

La solucin a la Cinemtica Directa e Inversa corresponde a la programacin fuera


de lnea, es decir, se realiza con ayuda de una PC para resolver las ecuaciones y
obtener los ngulos de cada articulacin que describen una trayectoria deseada.

Los ngulos obtenidos en la programacin fuera de lnea, son suministrados a un


Micro controlador para reproducir la trayectoria; el Micro Controlador cuenta con
un algoritmo de control PID el cual se encarga de evitar que las articulaciones se
salgan de la posicin deseada.

El algoritmo de control PID es parte del desarrollo de este proyecto, este control
precisa de la informacin que otorga la retro-alimentacin, para poder determinar
la posicin angular de cada articulacin.

Una vez que el Micro Controlador ha realizado los clculos necesarios del control,
este nos arroja seales (en los pines del puerto del microcontrolador) que nos
representan la velocidad, arranque, paro y sentido de giro de un motor de corriente
directa.

Estas seales deben de ser acondicionadas de tal forma que tengan la potencia
necesaria para mover el motor de CD; esto se logra con la etapa de potencia en
donde se emplean circuitos en configuracin tipo H para controlar el giro del
motor, as como la velocidad del mismo.

5.1.1 Descripcin fsica

El material que conforma la estructura del manipulador es perfil rectangular de


aluminio, las guardas o fundas estn hechas con lamina de aluminio de 2mm de
espesor; el manipulador cuenta con 4 moto reductores, los cuales le dan
movimiento a cada articulacin. Los motores empleados para proporcionar el
movimiento a cada uno de los eslabones son de 12-24 V de C.D. con un corriente
nominal de 0.8 amp y una corriente mxima de 3 amp.

El primer movimiento corresponde a la base, el cual tiene un rango de trabajo de


340, el siguiente movimiento es el del brazo superior cuyo rango de trabajo es de
160 con respecto de la base. El tercer movimiento es el del antebrazo, su rea de
trabajo es de 180 con respecto del primer eslabn. El GRIPER o efector final
tiene una capacidad de movimiento de 180; este, no es gobernado por ningn
motor, sino por medio de la gravedad, es decir, con su mismo peso se alinea
verticalmente.

Las caractersticas y dimensiones se presentan detalladamente en las figuras 5.1


a 5.3.

Figura 5.1 Dimensiones generales (en mm) del manipulador R3GL, vista lateral .
Figura 5.2 Dimensiones generales (en mm) del manipulador R3GL, vista superior

Figura 5.3 Dimensiones generales (en mm) del manipulador R3GL, vista frontal
5.1.2 Modelado Matemtico y Solucin a la Cinemtica Directa e
Inversa.

Tomando en cuenta las caractersticas fsicas del manipulador robtico, se


establecen los sistemas de coordenadas correspondientes a cada articulacin, de
la manera en que se explic en el captulo 2, definiendo para esto una posicin
inicial para la asignacin de los sistemas de coordenadas (Figura 5.4).

Figura 5.4 Posicin de sistema de coordenadas cero.

Figura 5.5 Asignacin de sistemas de coordenadas.

Una vez que se han determinado los sistemas de coordenadas para cada
articulacin (Figura 5.5), se obtienen los parmetros de Denavit-Hartenberg (Tabla
5.1).
Tabla 5.1 Parametros de D-H para el robot R3GL
ARTICULACION d a
1 0 -90 148 33
2 0 0 0 270
3 0 0 0 160
4 90 90 0 0
5 0 0 130 0

Obteniendo las matrices:


C1 0 S S AC1 C 2 S 2 0 CC 2
S 0 C 1 AS1 S C 2 0 CS 2
1 2
0 1 0 B 0 0 1 0

0
A1= 0 0 0 1 1
A2= 0 0 0 1

C 3 S 3 0 DC 3 C 4 0 S 4 0
S C 3 0 DS 3 S 0 C 4 0
3 4
0 0 1 0 0 1 0 0

2
A3= 0 0 0 1 3
A4= 0 0 0 1

C 5 S 5 0 0
S C 5 0 0
5
0 0 1 E

4
A5= 0 0 0 1

de donde se deriva la matriz 0A5, que corresponde a la matriz del manipulador.

C1C 234C5 S1S 5 C1C 234 S 5 S1C5 C1S 234 C1 (ES 234 + DC23 + CC 2 ) + AC1
S C C + C S S1C 234 S 5 + C1C5 S1S 234 S1 (ES 234 + DC23 + CC 2 ) + AS1
1 234 5 1 5
S 234C5 S 234 S 5 C234 (EC234 DS 23 CS 2 ) + B

0
A5= 0 0 0 1

Una vez obtenida esta matriz, se puede dar solucin tanto a la cinemtica directa
como a la inversa.

Ejemplos de solucin de la cinemtica directa.

Posicin inicial
Valores del Vector Variable en grados:
VV=[0 0 0 90 0]

Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:
0 0 1 593
0 1 0 0

- 1 0 0 148

M = 0 0 0 1

Figura 5.6 Posicin inicial (0 0 0 90 0)

Primera posicin.
Valores del Vector Variable
VV=[90 0 0 90 0]

Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:

0 -1 00
0 0 1 593

- 1 0 0 148

M= 0 0 0 1

Figura 5.7 Posicin1 (90 0 0 90 0)


Segunda posicin.
Valores del Vector Variable:
VV=[0 45 45 180 0]

Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:

- 1 0 0 383.9188
0 1 0 0

0 0 - 1 208.9188

M = 0 0 0 1.0000

Figura 5.8 Posicin 2 (0 45 45 180 0)

Tercera posicin.
Valores del Vector Variable:
VV=[0 90 90 180 0]

Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:
- 1 0 0 193
0 1 0 0

0 0 - 1 288

M = 0 0 0 1

Figura 5.9 Posicin 3 (0 90 90 180 0)

Cuarta Posicin.
Valores del Vector Variable:
VV=[45 90 90 180 0]

Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:

- 0.7071 - 0.7071 0 136.4716


- 0.7071 0.7071 0 136.4716

0 0 -1 288

M = 0 0 0 1
Figura 5.10 Posicin 4 (45 90 90 180 0)

Quinta posicin.
Valores del Vector Variable:
VV=[0 45 90 135 0]

Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:

0 0 1 467.0559
0 1 0 0

- 1 0 0 70.2183

M = 0 0 0 1
Figura 5.11 Posicin 5 (0 45 90 135 0)

5.1.3 Implementacin de Tcnicas de Control para el robot R3GL.

A continuacin se describen las tcnicas de control que se implementan en el


manipulador robtico R3GL.

5.1.3.1 Accin de control Proporcional

Para un controlador con accin de control proporcional, la relacin entre la salida


del controlador y la seal del error es:

Salida del controlador = Kp * Error

Nota: La salida del controlador y la seal del error estn en funcin del tiempo.

Cualquiera que sea el mecanismo real y la forma de la potencia de operacin, el


controlador proporcional es, en esencia, un amplificador con ganancia ajustable.
5.1.3.2 Accin de control Integral

En un controlador de accin de control Integral, el valor de la salida del controlador


se cambia a una razn proporcional a la seal de error.


u(t) = Ki e(t)dt
0 ........................... (5.1)

Si se duplica el valor del error, el valor de la salida del controlador varia dos veces
ms rpido. Para un error de cero, el valor de la salida del controlador permanece
estacionario. En ocasiones, la accin del control integral se denomina control de
reajuste (reset).

5.1.3.3 Accin de control Proporcional-Integral

La accin de control de un controlador Proporcional-Integral (PI) se define


mediante:
t
Kp
u (t ) = K p e(t ) +
Ti e(t )dt
0 ........................... (5.2)

En donde Kp es la ganancia proporcional y Ti, se denomina tiempo integral. Tanto


Kp como Ti son ajustables. El tiempo integral ajusta la accin de control integral,
mientras que un cambio en el valor de Kp afecta las partes integral y proporcional
de la accin de control.

Al inverso del tiempo integral Ti se le denomina velocidad de reajuste, la cual


corresponde a la cantidad de veces por minuto que se duplica la parte
proporcional de la accin de control. La velocidad de reajuste se mide en trminos
de repeticiones por minuto.
Figura 5.12 Anlisis del comportamiento del error e(t), y comportamiento de la seal manipulada
u(t) para un control PI

5.1.3.4 Accin de control Proporcional-Derivativo

La accin de control de un controlador Proporcional-Derivativo (PD) se define


mediante:

d
u (t ) = K p e(t ) + K pTd e(t )
dt ........................... (5.3)

Donde Td es una constante denominada tiempo derivativo. Tanto Kp como Td son


ajustables. Esta accin es denominada control de velocidad, ocurre donde la
magnitud de la salida del controlador es proporcional a la velocidad de cambio de
la seal de error. El tiempo derivativo Td es el intervalo de tiempo durante el cual
la accin de la velocidad hace avanzar el efecto de la accin de control
proporcional; Por lo que el control derivativo tiene un carcter de previsin pero
tiene la desventaja de que amplifica la seales de ruido y puede provocar un
efecto de saturacin en el actuador.

Figura 5.13 Anlisis del comportamiento del error e(t), y comportamiento de la seal manipulada
u(t) para un control PD
5.1.3.5 Accin de control Proporcional Integral Derivativo

La combinacin de una actuacin de control Proporcional, una accin de control


Integral, y una accin de control Derivativo se denomina control Proporcional
Integral Derivativo (PID). Esta accin combinada tiene las ventajas de cada una de
las tres acciones de control individuales. La ecuacin del controlador con esta
accin combinada se obtiene mediante:

t
Kp d
u (t ) = K p e(t ) +
Ti e(t )dt + K pTd dt e(t )
0 ........................... (5.4)

Figura 5.14 Anlisis del comportamiento del error e(t), y comportamiento de la seal manipulada
u(t) para un control PID

5.1.4 Funcin de Transferencia de un Controlador PID Digital

El principio bsico del esquema de control PID es que acta sobre la variable
manipulada a travs de una apropiada combinacin de las tres acciones de
control.

En situaciones donde muchas plantas se controlan directamente mediante una


sola computadora digital, la mayora de los lazos de control se pueden manipular
mediante esquemas de control PID.
La accin del control PID en controladores analgicos esta dada por la ecuacin
5.4, en donde e(t) es la entrada al controlador (seal del error actuante), u(t)es la
salida del controlador (seal manipulada), Kp es la ganancia proporcional, Ti es el
tiempo integral (o tiempo de reajuste) y Td es el tiempo derivativo (o tiempo de
adelanto).

Para obtener la Funcin de Transferencia al pulso del controlador PID digital se


aplica la transformada de Laplace a la ecuacin 5.4, obteniendo:

1 1
U ( s) = K p E (s ) + + Td E ( s )
Ti s E ( s ) .......................... (5.5)

Aplicando a su vez la transformada Z a U(s) tenemos



U ( z) = K p E( z) +
1
E( z)
(
+ Td E ( z ) 1 z 1 )
Ti

1 z 1 .......................... (5.6)

y considerando a Kp (cte proporcional), Kp(1/Ti)=Ki (cte integral) y Kp*Td=Kd (cte


derivativa), se obtiene:

M(k)=Kp*e(k)+Ki*W(k)+Kd*V(k) .......................... (5.7)

En donde:
W(k)=W(k-1)+T/2(e(k)+e(k-1))
V(k)=[e(k)-e(k-1)]/T
T=periodo de muestreo
e=seal de referencia seal de salida
La ecuacin 5.7 se toma como base para el desarrollo de los programas de
implementacin del algoritmo de control PID digital, con el microcontrolador
MC68HC11. A continuacin se presentan los diagramas de flujo para la
implementacin del PID.

Figura 5.15 Diagrama de Flujo para la Implementacin del PID Digital.


Figura 5.16 Diagrama de flujo de las subrutinas RECTSU y RECTBA
Figura 5.17 Diagrama de Flujo de la Subrutina PID.
I

Configuracion del
puerto C como salidas

Carga un dato de 0 FFFF


en la localidad PWM.

(PWM) - TAlto
STALTO

(PWM) - TBajo
#$FF - PC

#$FE - PC

PC
PC

STBAJO

ST ALTO
ST BAJO

(T ALTO) IX (T BAJO) IX

(IX)-1 (IX)-1

NO NO
=0? =0?
SI SI

R R
Figura 5.17 Diagramas de Flujo para la Generacin del PWM
5.1.5 Descripcin del Sistema de Control del Manipulador Robtico
R3GL.

Para controlar el movimiento de las articulaciones del manipulador y tomando en


cuenta que se gobiernan 3 articulaciones, es necesario manejar, en tres
microcontroladores, el algoritmo de control PID, uno por cada articulacin (los
programas de implementacin se incluyen en el Anexo 4).

El sistema de control est compuesto por 4 microprocesadores, los tres para las
articulaciones, que trabajan bajo la configuracin de esclavos y uno principal que
trabaja en configuracin de Maestro, el cual habr de indicar a los esclavos las
posiciones deseadas para cada articulacin, de acuerdo al vector de posicin que
corresponda a una orientacin y posicin deseadas del efector final.

Una vez que las tres articulaciones han llegado a la posicin deseada, estas
mandan una seal de confirmacin al Maestro, para que se proceda con la carga
de datos de la nueva posicin que se desea del manipulador. En la figura 5.18 se
muestra, de manera esquemtica, el sistema de control del manipulador robtico,
en esta se incluye una computadora que tiene como funcin en el sistema el
clculo de parmetros fuera de lnea (Los diagramas de conexin se incluyen en el
Anexo 5).
GP
MCS
B
68HC11 U BH M
S
FA
SP

GP
MCS
MCM B B
U 68HC11 U BH M
68HC11 S S
SA
SP
NP

GP

MCS
B
68HC11 U BH M
S
TA
SP

Figura 5.18 Diagrama esquemtico del sistema de control del manipulador robtico R3GL
5.1.6 Estado actual del Proyecto de Investigacin.

Actualmente, el manipulador robtico R3GL, puede generar trayectorias que han


sido calculadas fuera de lnea, alimentando al sistema de control nicamente la
base de datos que conforma la trayectoria deseada (vectores de posicin angular
para la generacin de la trayectoria). Hasta este punto, es posible pensar en incluir
dentro del control del sistema, la tcnica de control por par calculado, para poder
comprobar los resultados derivados del anlisis dinmico de la trayectoria (los
torques calculados para condiciones dinmicas de movimiento). En tanto que lo
referente a la solucin a la cinemtica directa e inversa ha sido plenamente
resuelta y se puede comenzar a generar trayectorias especificas para ste
manipulador.
CONCLUSIONES
CONCLUSIONES.

La metodologa para la generacin de trayectorias que aqu se presenta, ha


demostrado, hasta el momento, ser adecuada para el propsito que se persigue,
que es su aplicacin en la programacin fuera de lnea de manipuladores
robticos.

Los resultados del anlisis cinemtico, que derivan en la determinacin de los


vectores de posicin angular, a partir de la solucin a la cinemtica inversa, han
demostrado ser correctos; toda vez que, en la simulacin virtual del manipulador
se observa que, efectivamente, ste genera la trayectoria deseada.

En cuanto a los resultados derivados del anlisis dinmico, estos muestran, para
una misma trayectoria de anlisis considerando diferentes condiciones de carga,
una correspondencia cualitativa, pues se conserva la tendencia de demanda de
torque en las articulaciones del manipulador. Mientras que en lo cuantitativo, se
observa una mayor demanda de torque en las articulaciones, derivado de la
consideracin de que la masa a manipular es mayor.

Para un manipulador robtico comercial, basta con realizar un anlisis cinemtico


de la trayectoria, puesto que es muy difcil que se pueda manipular el torque
entregado a las articulaciones por los motores, debido a la configuracin del
sistema de control del propio manipulador. Por lo que, solo basta el conocer las
dimensiones fsicas de este, as como sus capacidades de movimiento, para
establecer el modelo matemtico que gobierna el movimiento del manipulador y, a
partir de esto y de la tarea a desempear por este, obtener la informacin
necesaria para la generacin de la trayectoria deseada, sin necesidad de detener
la lnea de produccin dentro de la cual se encuentre instalado el manipulador,
reduciendo con esto, los tiempos muertos que se derivan de la programacin de
un robot en lnea.
En el rea experimental, la metodologa que aqu se presenta, puede aplicarse de
manera completa, ya que la informacin derivada del anlisis dinmico se emplea
para el diseo y verificacin de las tcnicas de control bajo las cuales habr de
regirse el comportamiento dinmico del manipulador.

El trabajo experimental que se ha desarrollado hasta el momento, ha permitido


verificar hasta ahora, lo correspondiente al anlisis cinemtico en un prototipo real.
Pues las tcnicas de control utilizadas en este, contemplan solamente un control
por posicin, en donde las variables velocidad, aceleracin y, por consiguiente,
torque, tienen el carcter de variables secundarias. Ahora, una vez que ya se
puede obtener la informacin derivada del anlisis dinmico, que es el
comportamiento del torque aplicado en una articulacin a lo largo del tiempo, es
posible pensar en migrar a esta variable, el torque aplicado, a la categora de
variable principal a controlar.

Dado que la informacin que se deriva de un anlisis dinmico de un manipulador


robtico, es de gran inters para los diferentes actores que intervienen en el
diseo de un robot, como son:

El ingeniero mecnico, para el cual la magnitud de los torques que actan en las
articulaciones del robot, le permitir evaluar el diseo estructural de este, as como
de los elementos considerados para la transmisin de potencia mecnica, ya que
estar en condiciones de determinar los esfuerzos bajo los cuales se encuentran
sometidos los elementos que constituyen al manipulador.

Y, para el ingeniero electrnico, que derivado del anlisis dinmico, podr


implementar tcnicas de control adecuadas para que el actuador pueda
contrarrestar la inercia de los elementos en movimiento para que se presente el
comportamiento dinmico del robot que se requiere durante una tarea especfica.

Como trabajo futuro se recomienda realizar:


El modelado de un manipulador en ANSYS, con objeto de optimizar el
diseo estructural de este,

El modelado en ADAMS para comparar los resultados de una simulacin


dinmica con aquellos que se obtienen a partir de los listados que aqu se
presentan para la solucin a la dinmica en MATlab,

La generalizacin de la solucin que aqu se presenta para manipuladores


de 6 grados de libertad, la cual solamente consiste en agregar algunos
trminos a las ecuaciones que aqu se presentan,

La optimizacin a los listados de solucin a la Cinemtica y Dinmica para


poder obtener resultados para diferentes manipuladores a partir de los
parmetros de Denavit y Hartenberg,

El implementar un control por torque para manipuladores robticos a partir


de la informacin que se obtiene del anlisis dinmico para la generacin
de trayectorias.

Es importante sealar que, el tema que aqu se aborda, ha demostrado ser de


gran inters, puesto que los avances de este trabajo se han estado publicando en
la direccin http://pathfinder.esimez.ipn.mx o bien, http://robotica.mexico.com.mx
de la Internet; pgina que ha sido consultada hasta el momento, desde su fecha
de publicacin en el mes de abril de este ao, en ms de 300 ocasiones.
REFERENCIAS

[1] Regh, J. Introduction to Robotics in CIM Systems;


3rd Edition
Prentice Hall, 1997

[2] Robot
The Encyclopedia Britannica,
26th ed., 1998

[3] Dunbar, R. Robotics, past, present and future;


April 6th, 1999
http://robotics.stanford.edu

[4] James, A.; Engelberger, J. Robot


The Encyclopedia Americana, 1994

[5] History of robotics and robots


www.robotics.com

[6] Automation
The Encyclopedia Britannica: Macropedia
26th ed., 1998

[7] A short story of Robots


http://darkstar.engr.wisc.edu/zwideel/outreach/histrob.html

[8] Development of the Industrial Robot


www.robot.co.jp

[9] McKerrow, P.J. Introduction to Robotics


Addison Wesley, 1991

[10] Robot
Encyclopedia Encarta 99
199

[11] Carretero, J.A.; Nahon, M.; Bucklam, B.; Gosselin, C.M.: Kinematic
Analysis of a Three-DOF Mechanism for Telescope Applications
Proceedings of the 1997 ASME Design Engineering technical Conference
and Computers in Engineering Conference
September 14-17, 1997, Sacramento, California
[12] Carretero, J.A.; Podorodeski, R.P.; Nahon, M.; Architecture Optimization of
a 3-DOF Parallel Mechanism
Proceedings of the 1998 ASME Design Engineering Technical Conference
25th Biennial Mechanism Conference
September 13-16, 1998, Atlanta, Georgia

[13] Notash, L.; Research Activities Report


Queens University
1999, Ontario, Canada
www.queens.edu

[14] Doty, K.L.; Kinematic Analysis of the ARID Manipulator


NASA, Summer faculty fellowship program
Kennedy Space Center
Summer 1992

[15] Fu, K.S.; Gonzalez, R.C.; Lee, C.S.G.; Robtica: Control, Deteccin, Visin
e Inteligencia
McGraw Hill, 1990

[16] Palacios Montufar, C. Merchn Cruz, E.A.; Notas de Clase


2000

[17] Craig, J.; Introduction to Robotics: Mechanics and Control


Addison Wesley, 1989

[18] Baraff, D. Linear Time Dynamics using Lagrange Multipliers


Computer Graphics Proceedings, Annual Conference Series, 1996
Robotics Institute, Carnegie Mellon University
August 4-9, 1996, New Orleans

[19] Murray, R.M.; Li,Z.; Sastry, S.S.; A Mathematical Introduction to Robotic


Manipulation
CRC Press, Inc., 1994

[20] Aguirre, H.; Modelacin y Simulacin de Sistemas Electromecnicos Bajo


Control
Tesis de Maestria, SEPI ESIME
1998

[21] Parking, R.E.; Applied Robotic Analysis


Prentice Hall, 1991

[22] Corke, P.I.; Robotics Toolbox


Division of Manufacturing Technology
Preston, Australia
July 1999
[23] Duffy, C.; Precisions on the Generalized Inverses Theory
University of Florida
1993

[24] Kupiers, J.B.; Quaternions and Rotation Sequences


Princeton University Press
Princeton, New Jersey
1999

[25] Wheeler, M.D.; Katsushi, I. Iterative Estimation of Rotation and Translation


using the Quaternion
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA
December, 1995

[26] Noyes, P. From Bit-String to Quaternions


Stanford Linear Accelerator Center
Stanford University
April, 1991

[27] Joy, K. Quaternions


Visualization and Graphic Research Laboratory
Department of Computer Science
University of California, Davis
1994

[28] Paul, G.; Ikeuchi, K. Representing the Motion of Objects using Dual
Quaternions and its Applications
Robotics Institute
Carnegie Mellon University
Pittsburgh, PA
1997

[29] Goddard, J.S.; Abidi, M.A. Pose and Motion Estimation Using Dual
Quaternions Based Extended Kalman Filtering
Oak Ridge National Laboratory
University of Tennessee
1996

[30] Shoham, M. A Note on Cliffords Derivation of Bi-quaternions


Tenth World Congress on the Theory of machine and Mechanisms
June, 1999
[31] Ogata, K. Ingeniera de Control Moderna
Prentice-Hall
1998

[32] Dorf, R. Modern Control Systems


University of Santa Clara
1973
[33] Tou, J.T. Digital and Sampled-data Control Systems
McGraw-Hill
1960

[34] Nakamura, S. Anlisis Numrico y Visualizacin Grfica con Matlab


Prentice-Hall
1997

[35] Mason, M.T. Mechanics of Robotic Manipulation


M.I.T.
1999

[36] Doty, K.L.; Schwartz, E.M. Spatial Freedom, Singularity Surfaces and
Workspaces of Serial Kinematic Chains
Machine Intelligence Laboratory
Department of Electrical Engineering
University of Florida
1991

[37] Doty, K.L. An Essay on the Application of Weighted Generalized Inverses


in Robotics
Machine Intelligence Laboratory
Department of Electrical Engineering
University of Florida
1992

[38] Doty, K.L. Adjustments to the Theory on Singularity Robust Inverses


Machine Intelligence Laboratory
Department of Electrical Engineering
University of Florida
1992

[39] Xu, Y.; Nechyba, M. Fuzzy Inverse Kinematic Mapping: Rule Generation,
Efficiency, and Implementation
Carnegie Mellon University
Pittsburgh, PA
1998
[40] Weisstein, E. Moore-Penrose Generalized Matrix Inverse
World of Mathematics
http://mathworld.wolfram.com/Moore-PenroseGeneralizedMatrixInverse.html

[41] Cheng, H.H.; Thompson, S. Programming with Dual Numbers and its
Applications in Mechanisms Design
Engineering with Computers
Vol 10, No. 4, pp. 212-223
1994
[42] Cheng, H.H.; Thompson, S. Dual Polynomials and Complex Numbers of
Spatial Mechanisms
Proceedings of the 1996 ASME Design Engineering Conference and
Computers in Engineering Conference.
August 1996
[43] Cheng, H.H.; Gonzalez, P. Development of a Software Library Functions for
Analysis of Spatial Mechanisms
Proceedings of the 5th Applied Mechanisms and Robotics Conference.
Cincinnati, OH
October, 1997

[44] Hollerbach, J.M. Robotic Analysis


Novembre, 1999
[45] Brodsky, V.; Shoham, M. Dual Number Representation of Rigid Body
Dynamics
Department of Mechanical Engineering
Israel Institute of Technology
1996
[46] Cheng, H.; Gupta, K.C. Vectorization of Robot Inverse Dynamics on a
Pipelined Vector Processor
IEEE Trans. on Robbotics and Automation
Vol 9, No. 6, pp. 858 - 863
1998
[47] Doty, K.; English III, J.D. A three-point velocity approach to robot motion
control
4th International Robot Board
Capri, Italy
1994
[48] Emiris, I. Force Closure Grasp of High Quality
Advanced Robotics Laboratory
Robotics Institute
Carnegie Mellon University
1994
[49] Zefran, M.; Brdick, J. Design of Switching Controllers for Systems with
Changing Dynamics
IEEE Conference on Decision Control
1998

[50] Ostrowski, J.P.; The Mechanics and Control of UndulatoryRobotic


Locomotion
PhD.Thesis
California Institute of Technology
1996

[51] Van der Smagt,P.; Visual Robot Guidance using Neural Networks
PhD.Thesis
University of Amsterdam
1996

[52] Pertenece el IPN a la Red Mexicana de Robtica


Gaceta Politcnica
IPN
15 de Marzo, 2000

[53] Secretaria de Comercio y Fomento Industrial


www.secofi.gob.mx

[54] Daz de Len, V.M.;Metodologa para el Diseo de un Robot Manipulador


Industrial
Tesis de Maestra
SEPI-ESIME-IPN
1993

[55] Ramiro Lpez, A.;Anlisis Cinemtico y Dinmico de un Manipulador


Robtico con Tres Grados de Libertad
Tesis de Maestra
SEPI-ESIME-IPN
1993

[56] Rojas Garnica, J.C.;Diseo de un Mecanismo Atornillador para un Brazo


Manipulador Robtico
Tesis de Maestra
SEPI-ESIME-IPN
1997

[57] Gonzles Snchez, A. Desarrollo de un Simulador para el Control de un


Brazo Robtico
Tesis de Maestra
SEPI-ESIME-IPN
1993
ANEXOS
ANEXO 1. Programas en Matlab

function [M]=CDmov(VV,VC)
% funcin desarrollada por Emmanuel Merchn
% construye la matriz de un robot MINIMOVER
% a partir de dos vectores de entrada
% VV vector variable [theta1 ... theta6]
% VC vector constante [L1 L2 L3 L6]
VV=VV*pi/180
t1=[VV(1) ];
t2=[VV(2) ];
t3=[VV(3) ];
t4=[VV(4) ];
t5=[VV(5) ];

L1=[VC(1) ];
L2=[VC(2) ];
L3=[VC(3) ];
L4=[VC(4) ];

M(1,1)=(cos(t1)*cos(t5)*cos(t2+t3+t4)-sin(t1)*sin(t5));
M(1,2)=(-cos(t2+t3+t4)*sin(t5)*cos(t1)-sin(t1)*cos(t5));
M(1,3)=-cos(t1)*sin(t2+t3+t4);
M(1,4)=-
L4*cos(t1)*sin(t2+t3+t4)+L3*cos(t1)*cos(t2+t3)+L2*cos(t1)*cos(t2);

M(2,1)=cos(t5)*sin(t1)*cos(t2+t3+t4)+cos(t1)*sin(t5);
M(2,2)=-sin(t5)*sin(t1)*cos(t2+t3+t4)+cos(t1)*cos(t5);
M(2,3)=-sin(t1)*sin(t2+t3+t4);
M(2,4)=sin(t1)*(-L4*sin(t2+t3+t4)+L3*cos(t2+t3)+L2*cos(t2));

M(3,1)=cos(t5)*sin(t2+t3+t4);
M(3,2)=sin(t5)*sin(t2+t3+t4);
M(3,3)=cos(t2+t3+t4);
M(3,4)=L4*cos(t2+t3+t4)+L3*sin(t2+t3)+L2*sin(t2)+L1;

M(4,1)=0;
M(4,2)=0;
M(4,3)=0;
M(4,4)=1;
function [kk]=Newton(M,vv)
%Funcin desarrollada por Emmanuel Merchn
%Resuelve el problema cinemtico inverso a partir de la matriz de entrada
[M]
%que contiene la orientacin del efector final con repecto a la base
nx...az
%y la posicin deseada px,py y pz.
damp=0.001;
VC=[300 250 160 72];
%t1=input('Valor inicial de theta1= ');
%t2=input('Valor inicial de theta2= ');
%t3=input('Valor inicial de theta3= ');
%t4=input('Valor inicial de theta4= ');
%t5=input('Valor inicial de theta5= ');
t1=vv(1)*pi/180;
t2=vv(2)*pi/180;
t3=vv(3)*pi/180;
t4=vv(4)*pi/180;
t5=vv(5)*pi/180;

for n=1:1000

t1p=t1+damp;
t2p=t2+damp;
t3p=t3+damp;
t4p=t4+damp;
t5p=t5+damp;

J(1,1)=(f1(t1p,t2,t3,t4,t5,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(1,2)=(f1(t1,t2p,t3,t4,t5,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(1,3)=(f1(t1,t2,t3p,t4,t5,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(1,4)=(f1(t1,t2,t3,t4p,t5,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(1,5)=(f1(t1,t2,t3,t4,t5p,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(2,1)=(f2(t1p,t2,t3,t4,t5,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(2,2)=(f2(t1,t2p,t3,t4,t5,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(2,3)=(f2(t1,t2,t3p,t4,t5,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(2,4)=(f2(t1,t2,t3,t4p,t5,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(2,5)=(f2(t1,t2,t3,t4,t5p,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(3,1)=(f3(t1p,t2,t3,t4,t5,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(3,2)=(f3(t1,t2p,t3,t4,t5,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(3,3)=(f3(t1,t2,t3p,t4,t5,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(3,4)=(f3(t1,t2,t3,t4p,t5,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(3,5)=(f3(t1,t2,t3,t4,t5p,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(4,1)=(f4(t1p,t2,t3,t4,t5,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(4,2)=(f4(t1,t2p,t3,t4,t5,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(4,3)=(f4(t1,t2,t3p,t4,t5,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(4,4)=(f4(t1,t2,t3,t4p,t5,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(4,5)=(f4(t1,t2,t3,t4,t5p,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(5,1)=(f5(t1p,t2,t3,t4,t5,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(5,2)=(f5(t1,t2p,t3,t4,t5,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(5,3)=(f5(t1,t2,t3p,t4,t5,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(5,4)=(f5(t1,t2,t3,t4p,t5,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(5,5)=(f5(t1,t2,t3,t4,t5p,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(6,1)=(f6(t1p,t2,t3,t4,t5,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(6,2)=(f6(t1,t2p,t3,t4,t5,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(6,3)=(f6(t1,t2,t3p,t4,t5,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(6,4)=(f6(t1,t2,t3,t4p,t5,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(6,5)=(f6(t1,t2,t3,t4,t5p,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(7,1)=(f7(t1p,t2,t3,t4,t5,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(7,2)=(f7(t1,t2p,t3,t4,t5,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(7,3)=(f7(t1,t2,t3p,t4,t5,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(7,4)=(f7(t1,t2,t3,t4p,t5,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(7,5)=(f7(t1,t2,t3,t4,t5p,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(8,1)=(f8(t1p,t2,t3,t4,t5,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(8,2)=(f8(t1,t2p,t3,t4,t5,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(8,3)=(f8(t1,t2,t3p,t4,t5,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(8,4)=(f8(t1,t2,t3,t4p,t5,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(8,5)=(f8(t1,t2,t3,t4,t5p,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(9,1)=(f9(t1p,t2,t3,t4,t5,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(9,2)=(f9(t1,t2p,t3,t4,t5,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(9,3)=(f9(t1,t2,t3p,t4,t5,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(9,4)=(f9(t1,t2,t3,t4p,t5,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(9,5)=(f9(t1,t2,t3,t4,t5p,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(10,1)=(f10(t1p,t2,t3,t4,t5,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(10,2)=(f10(t1,t2p,t3,t4,t5,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(10,3)=(f10(t1,t2,t3p,t4,t5,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(10,4)=(f10(t1,t2,t3,t4p,t5,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(10,5)=(f10(t1,t2,t3,t4,t5p,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,1)=(f11(t1p,t2,t3,t4,t5,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,2)=(f11(t1,t2p,t3,t4,t5,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,3)=(f11(t1,t2,t3p,t4,t5,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,4)=(f11(t1,t2,t3,t4p,t5,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,5)=(f11(t1,t2,t3,t4,t5p,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,1)=(f12(t1p,t2,t3,t4,t5,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,2)=(f12(t1,t2p,t3,t4,t5,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,3)=(f12(t1,t2,t3p,t4,t5,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,4)=(f12(t1,t2,t3,t4p,t5,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,5)=(f12(t1,t2,t3,t4,t5p,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;

f(1)=f1(t1,t2,t3,t4,t5,M);
f(2)=f2(t1,t2,t3,t4,t5,M);
f(3)=f3(t1,t2,t3,t4,t5,M);
f(4)=f4(t1,t2,t3,t4,t5,M);
f(5)=f5(t1,t2,t3,t4,t5,M);
f(6)=f6(t1,t2,t3,t4,t5,M);
f(7)=f7(t1,t2,t3,t4,t5,M);
f(8)=f8(t1,t2,t3,t4,t5,M);
f(9)=f9(t1,t2,t3,t4,t5,M);
f(10)=f10(t1,t2,t3,t4,t5,VC,M);
f(11)=f11(t1,t2,t3,t4,t5,VC,M);
f(12)=f12(t1,t2,t3,t4,t5,VC,M);

%ds= -J\f';
ds=pinv(J)*(-f');

t1=t1+ds(1);
t2=t2+ds(2);
t3=t3+ds(3);
t4=t4+ds(4);
t5=t5+ds(5);
t=[t1 t2 t3 t4 t5];
kk=t*180/pi;
%fprintf('n=%2.0f, t1=%12.5e, t2=%12.5e, t3=%12.5e, t4=%12.5e,
t5=%12.5e,', n,kk(1),kk(2),kk(3),kk(4),kk(5))
%fprintf(' f(1)=%10.2e, f(2)=%10.2e, f(3)=%10.2e, f(4)=%10.2e,
f(5)=%10.2e, f(6)=%10.2e, f(7)=%10.2e, f(8)=%10.2e, f(9)=%10.2e,
f(10)=%10.2e, f(11)=%10.2e, f(12)=%10.2e\n', f(1), f(2), f(3), f(4),
f(5), f(6), f(7), f(8), f(9), f(10), f(11), f(12))
if (abs(f(1))<1.0e-9 & abs (f(2))<1.0e-9 & abs (f(3))<1.0e-9 & abs
(f(4))<1.0e-9 & abs (f(5))<1.0e-9 & abs (f(6))<1.0e-9 & abs (f(7))<1.0e-9
& abs (f(8))<1.0e-9 & abs (f(9))<1.0e-9 & abs (f(10))<1.0e-9 & abs
(f(11))<1.0e-9 & abs (f(12))<1.0e-9), break;end
end
%Funcin num1.m desarrollada por Emmanuel Merchn
%determinacin de los parmetros necesarios en la formulacin
%de Lagrange-Euler, primer listado
vv=input('vector de posiciones angulares= ');
veloc=input('vector de velocidades angulares= ');
acc=input('vector de aceleraciones angulares= ');
dt1=veloc(1);
dt2=veloc(2);
dt3=veloc(3);
dt4=veloc(4);
dt5=veloc(5);
acc=acc';

L1=.300;
L2=.250;
L3=.160;
L4=.072;
vv=vv*pi/180;
t1=vv(1);
t2=vv(2);
t3=vv(3);
t4=vv(4);
t5=vv(5);

A01=[cos(t1) 0 sin(t1) 0;sin(t1) 0 -cos(t1) 0;0 1 0 L1;0 0 0 1];


A12=[cos(t2) -sin(t2) 0 L2*cos(t2);sin(t2) cos(t2) 0 L2*sin(t2);0 0 1 0;
0 0 0 1];
A23=[cos(t3) -sin(t3) 0 L3*cos(t3);sin(t3) cos(t3) 0 L3*sin(t3);0 0 1 0;
0 0 0 1];
A34=[cos(t4) 0 -sin(t4) 0;sin(t4) 0 cos(t4) 0; 0 -1 0 0;0 0 0 1];
A45=[cos(t5) -sin(t5) 0 0;sin(t5) cos(t5) 0 0;0 0 1 L4; 0 0 0 1];
A05=A01*A12*A23*A34*A45;

Q=[0 -1 0 0;1 0 0 0;0 0 0 0;0 0 0 0];


m1=5;
m2=8;
m3=6;
m4=0;
m5=2;

J1=[(1/3)*m1*L1^2 0 0 -(1/2)*m1*L1;0 0 0 0;0 0 0 0;-(1/2)*m1*L1 0 0 m1];


J2=[(1/3)*m2*L2^2 0 0 -(1/2)*m2*L2;0 0 0 0;0 0 0 0;-(1/2)*m2*L2 0 0 m2];
J3=[(1/3)*m3*L3^2 0 0 -(1/2)*m3*L3;0 0 0 0;0 0 0 0;-(1/2)*m3*L3 0 0 m3];
J4=[(1/3)*m4 0 0 -(1/2)*m4;0 0 0 0;0 0 0 0;-(1/2)*m4 0 0 m4];
J5=[(1/3)*m5*L4^2 0 0 -(1/2)*m5*L4;0 0 0 0;0 0 0 0;-(1/2)*m5*L4 0 0 m5];

U11=Q*A01;
U21=Q*A01*A12;
U31=Q*A01*A12*A23;
U41=Q*A01*A12*A23*A34;
U51=Q*A01*A12*A23*A34*A45;

U22=A01*Q*A12;
U32=A01*Q*A12*A23;
U42=A01*Q*A12*A23*A34;
U52=A01*Q*A12*A23*A34*A45;
U33=A01*A12*Q*A23;
U43=A01*A12*Q*A23*A34;
U53=A01*A12*Q*A23*A34*A45;

U44=A01*A12*A23*Q*A34;
U54=A01*A12*A23*Q*A34*A45;

U55=A01*A12*A23*A34*Q*A45;

U111=Q*U11;
U211=Q*U21;
U311=Q*U31;
U411=Q*U41;
U511=Q*U51;
U221=Q*U22;
U321=Q*U32;
U421=Q*U42;
U521=Q*U52;
U331=Q*U33;
U431=Q*U43;
U531=Q*U53;
U441=Q*U44;
U541=Q*U54;
U551=Q*U55;

U212=U221;
U312=U321;
U412=U421;
U512=U521;
U222=A01*Q*Q*A12;
U322=A01*Q*Q*A12*A23;
U422=A01*Q*Q*A12*A23*A34;
U522=A01*Q*Q*A12*A23*A34*A45;
U332=U22*Q*A23;
U432=U22*Q*A23*A34;
U532=U22*Q*A23*A34*A45;
U442=U32*Q*A34;
U542=U32*Q*A34*A45;
U552=U42*Q*A45;

U313=U331;
U413=U431;
U513=U531;
U323=U332;
U423=U432;
U523=U532;
U333=A01*A12*Q*Q*A23;
U433=A01*A12*Q*Q*A23*A34;
U533=A01*A12*Q*Q*A23*A34*A45;
U443=U33*Q*A34;
U543=U33*Q*A34*A45;
U553=U43*Q*A45;

U414=U441;
U514=U541;
U424=U442;
U524=U542;
U434=U443;
U534=U543;
U444=A01*A12*A23*Q*Q*A34;
U544=A01*A12*A23*Q*Q*A34*A45;
U554=U44*Q*A45;

U515=U551;
U525=U552;
U535=U553;
U545=U554;
U555=A01*A12*A23*A34*Q*Q*A45;

h111=trace(U111*J1*U11')+trace(U211*J2*U21')+trace(U311*J3*U31')+trace(U4
11*J4*U41')+trace(U511*J5*U51');
h112=trace(U212*J2*U21')+trace(U312*J3*U31')+trace(U412*J4*U41')+trace(U5
12*J5*U51');
h113=trace(U313*J3*U31')+trace(U413*J4*U41')+trace(U513*J5*U51');
h114=trace(U414*J4*U41')+trace(U514*J5*U51');
h115=trace(U515*J5*U51');

h121=trace(U221*J2*U21')+trace(U321*J3*U31')+trace(U421*J4*U41')+trace(U5
21*J5*U51');
h122=trace(U222*J2*U21')+trace(U322*J3*U31')+trace(U422*J4*U41')+trace(U5
22*J5*U51');
h123=trace(U323*J3*U31')+trace(U423*J4*U41')+trace(U523*J5*U51');
h124=trace(U424*J4*U41')+trace(U524*J5*U51');
h125=trace(U525*J5*U51');

h131=trace(U331*J3*U31')+trace(U431*J4*U41')+trace(U531*J5*U51');
h132=trace(U332*J3*U31')+trace(U432*J4*U41')+trace(U532*J5*U51');
h133=trace(U333*J3*U31')+trace(U433*J4*U41')+trace(U533*J5*U51');
h134=trace(U434*J4*U41')+trace(U534*J5*U51');
h135=trace(U535*J5*U51');

h141=trace(U441*J4*U41')+trace(U541*J5*U51');
h142=trace(U442*J4*U41')+trace(U542*J5*U51');
h143=trace(U443*J4*U41')+trace(U543*J5*U51');
h144=trace(U444*J4*U41')+trace(U544*J5*U51');
h145=trace(U545*J5*U51');

h151=trace(U551*J5*U51');
h152=trace(U552*J5*U51');
h153=trace(U553*J5*U51');
h154=trace(U554*J5*U51');
h155=trace(U555*J5*U51');

h211=trace(U211*J2*U22')+trace(U311*J3*U32')+trace(U411*J4*U42')+trace(U5
11*J5*U52');
h212=trace(U212*J2*U22')+trace(U312*J3*U32')+trace(U412*J4*U42')+trace(U5
12*J5*U52');
h213=trace(U313*J3*U32')+trace(U413*J4*U42')+trace(U513*J5*U52');
h214=trace(U414*J4*U42')+trace(U514*J5*U52');
h215=trace(U515*J5*U52');

h221=trace(U221*J2*U22')+trace(U321*J3*U32')+trace(U421*J4*U42')+trace(U5
21*J5*U52');
h222=trace(U222*J2*U22')+trace(U322*J3*U32')+trace(U422*J4*U42')+trace(U5
22*J5*U52');
h223=trace(U323*J3*U32')+trace(U423*J4*U42')+trace(U523*J5*U52');
h224=trace(U424*J4*U42')+trace(U524*J5*U52');
h225=trace(U525*J5*U52');

h231=trace(U331*J3*U32')+trace(U431*J4*U42')+trace(U531*J5*U52');
h232=trace(U332*J3*U32')+trace(U432*J4*U42')+trace(U532*J5*U52');
h233=trace(U333*J3*U32')+trace(U433*J4*U42')+trace(U533*J5*U52');
h234=trace(U434*J4*U42')+trace(U534*J5*U52');
h235=trace(U535*J5*U52');

h241=trace(U441*J4*U42')+trace(U541*J5*U52');
h242=trace(U442*J4*U42')+trace(U542*J5*U52');
h243=trace(U443*J4*U42')+trace(U543*J5*U52');
h244=trace(U444*J4*U42')+trace(U544*J5*U52');
h245=trace(U545*J5*U52');

h251=trace(U551*J5*U52');
h252=trace(U552*J5*U52');
h253=trace(U553*J5*U52');
h254=trace(U554*J5*U52');
h255=trace(U555*J5*U52');

h311=trace(U311*J3*U33')+trace(U411*J4*U43')+trace(U511*J5*U53');
h312=trace(U312*J3*U33')+trace(U412*J4*U43')+trace(U512*J5*U53');
h313=trace(U313*J3*U33')+trace(U413*J4*U43')+trace(U513*J5*U53');
h314=trace(U414*J4*U43')+trace(U514*J5*U53');
h315=trace(U515*J5*U53');

h321=trace(U321*J3*U33')+trace(U421*J4*U43')+trace(U521*J5*U53');
h322=trace(U322*J3*U33')+trace(U422*J4*U43')+trace(U522*J5*U53');
h323=trace(U323*J3*U33')+trace(U423*J4*U43')+trace(U523*J5*U53');
h324=trace(U424*J4*U43')+trace(U524*J5*U53');
h325=trace(U525*J5*U53');

h331=trace(U331*J3*U33')+trace(U431*J4*U43')+trace(U531*J5*U53');
h332=trace(U332*J3*U33')+trace(U432*J4*U43')+trace(U532*J5*U53');
h333=trace(U333*J3*U33')+trace(U433*J4*U43')+trace(U533*J5*U53');
h334=trace(U434*J4*U43')+trace(U534*J5*U53');
h335=trace(U535*J5*U53');

h341=trace(U441*J4*U43')+trace(U541*J5*U53');
h342=trace(U442*J4*U43')+trace(U542*J5*U53');
h343=trace(U443*J4*U43')+trace(U543*J5*U53');
h344=trace(U444*J4*U43')+trace(U544*J5*U53');
h345=trace(U545*J5*U53');

h351=trace(U551*J5*U53');
h352=trace(U552*J5*U53');
h353=trace(U553*J5*U53');
h354=trace(U554*J5*U53');
h355=trace(U555*J5*U53');

h411=trace(U411*J4*U44')+trace(U511*J5*U54');
h412=trace(U412*J4*U44')+trace(U512*J5*U54');
h413=trace(U413*J4*U44')+trace(U513*J5*U54');
h414=trace(U414*J4*U44')+trace(U514*J5*U54');
h415=trace(U515*J5*U54');

h421=trace(U421*J4*U44')+trace(U521*J5*U54');
h422=trace(U422*J4*U44')+trace(U522*J5*U54');
h423=trace(U423*J4*U44')+trace(U523*J5*U54');
h424=trace(U424*J4*U44')+trace(U524*J5*U54');
h425=trace(U525*J5*U54');

h431=trace(U431*J4*U44')+trace(U531*J5*U54');
h432=trace(U432*J4*U44')+trace(U532*J5*U54');
h433=trace(U433*J4*U44')+trace(U533*J5*U54');
h434=trace(U434*J4*U44')+trace(U534*J5*U54');
h435=trace(U535*J5*U54');

h441=trace(U441*J4*U44')+trace(U541*J5*U54');
h442=trace(U442*J4*U44')+trace(U542*J5*U54');
h443=trace(U443*J4*U44')+trace(U543*J5*U54');
h444=trace(U444*J4*U44')+trace(U544*J5*U54');
h445=trace(U545*J5*U54');

h451=trace(U551*J5*U54');
h452=trace(U552*J5*U54');
h453=trace(U553*J5*U54');
h454=trace(U554*J5*U54');
h455=trace(U555*J5*U54');

h511=trace(U511*J5*U55');
h512=trace(U512*J5*U55');
h513=trace(U513*J5*U55');
h514=trace(U514*J5*U55');
h515=trace(U515*J5*U55');

h521=trace(U521*J5*U55');
h522=trace(U522*J5*U55');
h523=trace(U523*J5*U55');
h524=trace(U524*J5*U55');
h525=trace(U525*J5*U55');

h531=trace(U531*J5*U55');
h532=trace(U532*J5*U55');
h533=trace(U533*J5*U55');
h534=trace(U534*J5*U55');
h535=trace(U535*J5*U55');

h541=trace(U541*J5*U55');
h542=trace(U542*J5*U55');
h543=trace(U543*J5*U55');
h544=trace(U544*J5*U55');
h545=trace(U545*J5*U55');

h551=trace(U551*J5*U55');
h552=trace(U552*J5*U55');
h553=trace(U553*J5*U55');
h554=trace(U554*J5*U55');
h555=trace(U555*J5*U55');
num2
%funcin num2.m desarrollada por Emmanuel Merchn
%para determinar los parmetros de la matriz [D]

D(1,1)=trace(U11*J1*U11')+trace(U21*J2*U21')+trace(U31*J3*U31')+trace(U41
*J4*U41')+trace(U51*J5*U51');
D(1,2)=trace(U22*J2*U21')+trace(U32*J3*U31')+trace(U42*J4*U41')+trace(U52
*J5*U51');
D(2,1)=D(1,2);
D(1,3)=trace(U33*J3*U31')+trace(U43*J4*U41')+trace(U53*J5*U51');
D(3,1)=D(1,3);
D(1,4)=trace(U44*J4*U41')+trace(U54*J5*U51');
D(4,1)=D(1,4);
D(1,5)=trace(U55*J5*U51');
D(5,1)=D(1,5);

D(2,2)=trace(U22*J2*U22')+trace(U32*J3*U32')+trace(U42*J4*U42')+trace(U52
*J5*U52');
D(2,3)=trace(U33*J3*U32')+trace(U43*J4*U42')+trace(U53*J5*U52');
D(2,4)=trace(U44*J4*U42')+trace(U54*J5*U52');
D(2,5)=trace(U55*J5*U52');
D(3,2)=D(2,3);
D(4,2)=D(2,4);
D(5,2)=D(2,5);

D(3,3)=trace(U33*J3*U33')+trace(U43*J4*U43')+trace(U53*J5*U53');
D(3,4)=trace(U44*J4*U43')+trace(U54*J5*U53');
D(3,5)=trace(U55*J5*U53');
D(4,3)=D(3,4);
D(5,3)=D(3,5);

D(4,4)=trace(U44*J4*U44')+trace(U54*J5*U54');
D(4,5)=trace(U55*J5*U54');
D(5,4)=D(4,5);

D(5,5)=trace(U55*J5*U55');
num3
%funcin num3.m desarrollada por Emmanuel Merchn
%que determina la matriz [h] y la matriz [c] a partir de los
%parmetros calculados por las funciones anteriores
%y resuelve de manera numrica la formulacin de Lagrange Euler
%para obtener el valor de las torcas 1..5

r11=[0; 0; -.150; 1];


r22=[-.125; 0; 0; 1];
r33=[-.080; 0; 0; 1];
r44=[0; 0; 0; 1];
r55=[0; 0; -0.036; 1];
grav=[0 0 -9.81 0];

h(1,1)=h111*(dt1^2)+h112*(dt1)*(dt2)+h113*(dt1)*(dt3)+h114*(dt1)*(dt4)+h1
15*dt1*dt5+h131*dt1*dt3+h132*dt2*dt3+h133*(dt3^2)+h134*dt3*dt4+h135*dt3*d
t5+h141*dt1*dt4+h142*dt2*dt4+h143*dt3*dt4+h144*(dt4^2)+h145*dt4*dt5+h151*
dt1*dt5+h152*dt2*dt5+h153*dt3*dt5+h154*dt4*dt5+h155*dt5^2;

h(2,1)=h211*(dt1^2)+h212*(dt1)*(dt2)+h213*(dt1)*(dt3)+h214*(dt1)*(dt4)+h2
15*dt1*dt5+h231*dt1*dt3+h232*dt2*dt3+h233*(dt3^2)+h234*dt3*dt4+h235*dt3*d
t5+h241*dt1*dt4+h242*dt2*dt4+h243*dt3*dt4+h244*(dt4^2)+h245*dt4*dt5+h251*
dt1*dt5+h252*dt2*dt5+h253*dt3*dt5+h254*dt4*dt5+h255*dt5^2;

h(3,1)=h311*(dt1^2)+h312*(dt1)*(dt2)+h313*(dt1)*(dt3)+h314*(dt1)*(dt4)+h3
15*dt1*dt5+h331*dt1*dt3+h332*dt2*dt3+h333*(dt3^2)+h334*dt3*dt4+h335*dt3*d
t5+h341*dt1*dt4+h342*dt2*dt4+h343*dt3*dt4+h344*(dt4^2)+h345*dt4*dt5+h351*
dt1*dt5+h352*dt2*dt5+h353*dt3*dt5+h354*dt4*dt5+h355*dt5^2;

h(4,1)=h411*(dt1^2)+h412*(dt1)*(dt2)+h413*(dt1)*(dt3)+h414*(dt1)*(dt4)+h4
15*dt1*dt5+h431*dt1*dt3+h432*dt2*dt3+h433*(dt3^2)+h434*dt3*dt4+h435*dt3*d
t5+h441*dt1*dt4+h442*dt2*dt4+h443*dt3*dt4+h444*(dt4^2)+h445*dt4*dt5+h451*
dt1*dt5+h452*dt2*dt5+h453*dt3*dt5+h454*dt4*dt5+h455*dt5^2;

h(5,1)=h511*(dt1^2)+h512*(dt1)*(dt2)+h513*(dt1)*(dt3)+h514*(dt1)*(dt4)+h5
15*dt1*dt5+h531*dt1*dt3+h532*dt2*dt3+h533*(dt3^2)+h534*dt3*dt4+h535*dt3*d
t5+h541*dt1*dt4+h542*dt2*dt4+h543*dt3*dt4+h544*(dt4^2)+h545*dt4*dt5+h551*
dt1*dt5+h552*dt2*dt5+h553*dt3*dt5+h554*dt4*dt5+h555*dt5^2;

cc(1,1)=-(m1*grav*U11*r11+m2*grav*U21*r22+m3*grav*U31*r33+
m4*grav*U41*r44+m5*grav*U51*r55);
cc(2,1)=-(m2*grav*U22*r22+m3*grav*U32*r33+m4*grav*U42*r44+
m5*grav*U52*r55);
cc(3,1)=-(m3*grav*U33*r33+m4*grav*U43*r44+m5*grav*U53*r55);
cc(4,1)=-(m4*grav*U44*r44+m5*grav*U54*r55);
cc(5,1)=-(m5*grav*U55*r55);

torque=D*acc+h+cc; %esta es la ecuacin matricial correspondiente a la


%formulacion de Lagrange-Euler

fprintf('TORQUES N-m\n')
fprintf('%12.10e\n', torque(1))
fprintf('%12.10e\n', torque(2))
fprintf('%12.10e\n', torque(3))
fprintf('%12.10e\n', torque(4))
fprintf('%12.10e\n', torque(5))
%Funcion Traycirc
%desarrollada por Emmanuel Merchn
%para la generacion de las matrices de tranformacin
%correspondientes a la trayectoria circular "bc"
for n=1:10
t=t+9;
a=[-sin(t*pi/180) -cos(t*pi/180) 0 -200-(50*sin(t*pi/180));-
cos(t*pi/180) sin(t*pi/180) 0 100+50-50*cos(t*pi/180);0 0 -1 150]
end
ANEXO 2. Listado para el Modelado en Realidad Virtual del Robot
Mitsubishi Movemaster.
#VRML V2.0 utf8
#
#
# Este archivo construye un robot Mitsubishi RV-M1 Movemaster EX
# en un modelo de realidad virtual

WorldInfo {
title "Robot Mitsubishi"
info "Emmanuel Merchn"
},
NavigationInfo {
type "EXAMINE"
headlight FALSE
},
Viewpoint {
position -30 35 25
orientation 1 1 0 -1.0
description "First view - From top left"
},
Viewpoint {
position -8 11 40
orientation 0 0 1 0
description "Second view - From Front"
},
Viewpoint {
position -30 11 30
orientation 0 1 0 -0.785
description "Third view - From left corner"
},
Viewpoint {
position -8 50 0
orientation 1 0 0 -1.57
description "Fourth view - From top"
},
Viewpoint {
position -8 11 -38
orientation 0 1 0 3.14
description "Fifth view - From Back"
},
Viewpoint {
position -50 11 0
orientation 0 1 0 -1.57
description "Sixth view - From left side"
},

PointLight {
location 250 400 1000
},
PointLight {
location 0 200 -500
},
PointLight {
location 0 100 0
},
PointLight {
location 0 -100 0
},
PointLight {
location 0 -200 -400
},
PointLight {
location -140 10 0
},
PointLight {
location -100 100 3000
},

# Axes
Shape {
appearance Appearance {
material Material {
emissiveColor 1.0 1.0 1.0
}
}
geometry IndexedLineSet {
coord Coordinate {
point [
0.0 0.0 0.0, 35.0 0.0 0.0, 0.0 35.0 0.0, 0.0 0.0 35.0,
-35.0 0.0 0.0, 0.0 -35.0 0.0, 0.0 0.0 -35.0 ]
}
coordIndex [
0, 1, -1, 0, 2, -1, 0, 3, -1, 0, 4, -1, 0, 5, -1, 0, 6, -1
]
}
},

Group {
children [
DEF Robot Transform {
translation 0 0 0
children [
#
# Robot Base
#

# Bottom Plate (1/6)


Group {
children [
Transform {
translation 2.5 0.0 0.0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.35 0.35 0.35
}
}
geometry Box {
size 9.75 0.5 7.5
}
},

# Front Base Cylinder (2/6)


Transform {
translation -2.2 2.875 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.35 0.35 0.35
}
}
geometry Cylinder {
height 5.25
radius 2.5
bottom FALSE
}
}
]
},
# Rear Base Cylinder (3/6)
Transform {
translation 2.2 2.875 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.35 0.35 0.35
}
}
geometry Cylinder {
height 5.25
radius 2.5
bottom FALSE
}
}
]
},

# Mid Base Cube (4/6)


Transform {
translation 0.25 2.875 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.35 0.35 0.35
}
}
geometry Box {
size 4.25 5.25 4.8
}
}
]
},

# Chrome Top Ring (4/6)


Transform {
translation -2.2 5.625 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.1
diffuseColor 0.8 0.8 0.8
}
}
geometry Cylinder {

height .25
radius 1.75
bottom FALSE
top FALSE
}
}
]
},

# Top Ring (4/6)


Transform {
translation -2.2 5.875 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.35 0.35 0.35
}
}
geometry Cylinder {
height .25
radius 1.75
bottom FALSE
top FALSE
}
}
]
}

]
}

#
# Moveable Sections
#

# Rotating section
DEF Waist Transform {
translation 0 0 0
rotation 0 1 0,-0.694738781
children [

# Shoulder Cradle
Transform {
translation -1.75 6 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.35 0.35 0.35 }
}
geometry IndexedFaceSet {
coord Coordinate {
point [
0 0 2.125,
4.25 0 2.125,
4.25 0 -2.125,
0 0 -2.125,
0 2.75 3,
4.25 2.75 3,
4.25 2.75 -3,
0 2.75 -3,
0 4.25 3,
4.25 4.25 3,
4.25 4.25 -3,
0 4.25 -3, ] }

coordIndex [ 0,1,2,3,-1,
0,4,5,1,-1,
1,5,6,2,-1,
2,6,7,3,-1,
3,7,4,0,-1,
4,8,9,5,-1,
5,9,10,6,-1,
6,10,11,7,-1,
7,11,8,4,-1, ]
normalPerVertex FALSE
solid FALSE
creaseAngle 0.5
}
}
]
},

# Wide Shoulder Cylinder


Transform {
translation 0 10.75 0
rotation 1 0 0 1.571
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Cylinder {
height 7
radius 2.5
}
}
]
},

# Narrow Shoulder Cylinder


Transform {
translation 0 10.75 0
rotation 1 0 0 1.571
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Cylinder {
height 9
radius 1.875
}
}
]
},

# Large Rear Shoulder Quarter


Transform {
translation 5 10.625 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Box {
size 8.5 3.25 7
}
}
]
},

# Thin Rear Shoulder Quarter


Transform {
translation 4.5 12.5 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Box {
size 8 0.6 5
}
}
]
},

# Upper Arm from shoulder to elbow


DEF Shoulder Transform {
translation 6 -1.25 0
rotation 0 0 1,-0.225878766
center -6 12 0
children [

# Cylindrical Rear Section (1/3)


Transform {
translation -6 12 0
rotation 1 0 0 1.571
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Cylinder {
height 4.25
radius 2.625
}
}
]
},

# Cylindrical Front Section (2/3)


Transform {
translation -16 12 0
rotation 1 0 0 1.571
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Cylinder {
height 4.25
radius 1.75
}
}
]
},

# Cube Mid Section (3/3)


Transform {
translation -11 12 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Box {
size 10 3.5 4.25
}
}
]
}

# Fore Arm from elbow to wrist


DEF Elbow Transform {
translation 11 0 0
rotation 0 0 1,2.374886966
center -27 12 0
children [

# Cylindrical Front Section (1/3)


Transform {
translation -33 12 0
rotation 1 0 0 1.571
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Cylinder {
height 2.75
radius 1.625
}
}
]
},

# Cylindrical Rear Section (2/3)


Transform {
translation -27 12 0
rotation 1 0 0 1.571
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Cylinder {
height 2.75
radius 1.625
}
}
]
},

# Cube Mid Section (3/3)


Transform {
translation -30 12 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Box {
size 6.45 3.25 2.75
}
}
]
}

# Arm from wrist to gripper


DEF Wrist Transform {
translation -15 0 0
rotation 0 0 1,-0.578211873
center -18 12 0
children [

# Cylindrical Hinge (1/2)


Transform {
translation -18 12 0
rotation 1 0 0, 1.571
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Cylinder {
height 1.25
radius 1.675
}
}
]
},

# Cube Extension Section (2/2)


Transform {
translation -19.25 12 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.57 0.53 0.5
}
}
geometry Box {
size 1.5 2 1.25
}
}
]
}

# Gripper
DEF Hand Transform {
translation -0.375 0 0
rotation 1 0 0,0.5
center 0 12 0
children [

# Cylindrical Cuff (1/4)


Transform {
translation -20 12 0
rotation 0 0 1 1.571
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.005
diffuseColor 0.15 0.15 0.15
}
}
geometry Cylinder {
height 1.25
radius 1.625
}
}
]
},

# Cube Hand Section (2/4)


Transform {
translation -21.5 12 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.005
diffuseColor 0.15 0.15 0.15
}
}
geometry Box {
size 2.5 3 2.25
}
}
]
}

# Cube Top Grip Finger (3/4)


DEF Top_Finger Transform {
translation 0 0 0
children [

Transform {
translation -23.5 13.25 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.005
diffuseColor 0.15 0.15 0.15
}
}
geometry Box {
size 2 0.5 0.75
}
}
]
}
]
}

# Cube Bottom Grip Finger (4/4)


DEF Bottom_Finger Transform {
translation 0 0 0
children [

Transform {
translation -23.5 10.75 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.005
diffuseColor 0.15 0.15 0.15
}
}
geometry Box {
size 2 0.5 0.75
}
}
]
}

]
}

]
}

]
}

]
}

]
}

]
}

]
}

#
# Trigger things on touch
#
DEF Touch TouchSensor {
}

]
}
ANEXO 3. Grficas correspondientes a las 21 posiciones que conforman la trayectoria abc.

VISTA FRONTAL
VISTA LATERAL DERECHA
VISTA SUPERIOR
ANEXO 4. Programas del proyecto de implementacin.

;************************************************************************
;* PROGRAMA QUE IMPLEMENTA EL CONTROL P, PI, PD Y PID PARA EL MOVIMIENTO*
;* DE UN MOTOR DE CD. *
;************************************************************************
;------------------------------------------------------------------------
;************************************************************************
;* INSTITUTO POLITECNICO NACIONAL *
;* ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA *
;* UNIDAD PROFESIONAL `ADOLFO LOPEZ MATEOS`(ZACATENCO) *
;* INGENIERIA EN CONTROL Y AUTOMATIZACION *
;* PROGRAMA DESARROLLADO POR: VELAZQUEZ SANCHEZ ALEJANDRO T. *
;* RAMIREZ GORDILLO JAVIER *
;************************************************************************

;*****************************************
;MENSAJE AL LOCALIZAR LA POSICION DESEADA
;*****************************************

MEN0 DB 0D,0D,'THETA=',04

;********************************
;MENSAJES DEL MOTOR
;********************************

MEN1 DB 'UP',04,0D
MEN2 DB 'DWN',04,0D

;*****************************
;REGISTROS PARA LOS SENSORES
;*****************************

ROP EQU $1039 ;REGISTRO DE CONFIGURACION DE OPCIONES DEL SISTEMA


RAD EQU $1030 ;CONTROL DEL CONVERTIDOR A/D
OSU EQU $FFC7 ;SALIDA DE UNA CADENA DE BYTES
UTA EQU $FFB8 ;SALIDA DEL ACUMULADOR A COMO CARACTER ASCII
ENT1 EQU $1032 ;RESULTADOS DEL CANAL 2 DEL CAD
OUR EQU $FFB5 ;REALIZA UNA CONVERSION EN ASCII Y LA SACA POR EL
PUERTO
PID EQU $B730 ;SUB RUTINA PARA EL CALCULO DEL CONTROL PID

;*****************************
;REGISTROS PARA EL MOTOR
;*****************************

RDDC EQU $1007 ;REGISTRO DE DIRECCION DE DATOS DEL PUERTO C


RPC EQU $1003 ;REGISTRO DEL PUERTO C
POS EQU $01F0 ;LOCALIDAD PARA ALMACENAR LA POSICION A BUSCAR
PWM EQU $01F4 ;LOCALIDAD QUE CONTIENE EL CICLO DE TRABAJO DEL PWM
ERROR EQU $01F6 ;LOCALIDAD QUE CONTIENE EL ERROR DEL SISTEMA
MERROR EQU $01F8 ;LOCALIDAD PARA ALMACENAR EL MARGEN DE ERROR
LIINF EQU $01FC ;LOCALIDAD QUE CONTIENE EL LIMITE INFERIOR
LISUP EQU $01FD ;LOCALIDAD QUE CONTIENE EL LIMITE SUPERIOR

;****************************
;INICIO DEL PROGRAMA
;****************************

ORG $100 ;LOCALIDAD INICIAL


LDAA #$FF ;{ SE CONFIGURAN LOS PINES DEL }
STAA RDDC ;{ PUERTO C COMO SALIDAS }

GO LDAA #$16 ;@ SE CONFIGURA Y @


STAA RAD ;@ ACTIVA EL CONVERTIDOR @
LDAA #$80 ;@ ANALOGICO/DIGITAL @
STAA ROP ;@ EN MODO MULTICANAL @
JSR DELAY1 ;RETARDO PARA ESTABILIZAR LA CONVERSION

LDAA POS ;{ SE CARGA LA POSICION A BUSCAR }


SUBA MERROR ;{ Y SE CALCULA EL MARGEN DE ERROR }
STAA LIINF ;{ PARA ESTABLECER EL LIMITE INFERIOR }
LDAA POS ;@ SE CARGA LA POSICION A BUSCAR @
ADDA MERROR ;@ Y SE CALCULA EL MARGEN DE ERROR @
STAA LISUP ;@ PARA ESTABLECER EL LIMITE SUPERIOR @
LDAA LIINF ;{ SE DETERMINA SI LA POSICION ACTUAL }
CMPA ENT1 ;{ ESTA DENTRO DE LOS LIMITES SUPERIOR }
BHI RECTSU ;{ E INFERIOR, POR LO QUE DE NO SER ASI }
LDAA LISUP ;{ SE CANALIZA A SUB RUTINAS PARA HACER}
CMPA ENT1 ;{ LOS CALCULOS NECESARIOS Y CORREGIR }
BLO RECTBA ;{ INMEDIATAMENTE HASTA ENCONTRARLA; }
LDX #MEN0 ;{ SI LA POSICION SE ENCUENTRA }
JSR OSU ;{ DENTRO DEL MARGEN SE ENVIA }
LDAA ENT1 ;{ EN MENSAJE DEL VALOR DE }
JSR UTA ;{ LA POSICION PREDETERMINADA. }
BRA GO

RECTSU LDAA POS ;{ AQUI SE HACE LA CORRECCION DE }


SUBA ENT1 ;{ LA POSICION DE ACUERDO AL VALOR DEL }
STAA ERROR ;{ ERROR GENERADO ENTRE LA POSICION }
JSR PID ;{ ACTUAL Y LA DE REFERENCIA, }
LDX #MEN1 ;{ ESTE ERROR ES EMPLEADO POR LA }
JSR OSU ;{ SUB RUTINA DEL PID PARA CALCULAR EL }
LDAA #$FB ;{ VALOR DEL PWM, NECESARIO PARA }
STAA RPC ;{ CORREGIR ESTE ERROR. }
JSR DELAY ;{ SE CARGA EL DATO QUE PROPORCIONA EL }
LDAA #$FF ;{ SENTIDO DE GIRO DEL MOTOR, }
STAA RPC ;{ EL CUAL ES ALMACENADO Y SACADO POR EL}
BRA GO ;{ PUERTO C. }

RECTBA LDAA ENT1 ;{ SE HACE EL CALCULO CORRESPONDIENTE }


SUBA POS ;{ AL ERROR PARA PROPORCIONARLO A LA }
STAA ERROR ;{ SUB RUTINA PID }
JSR PID ;{ ESTA SUB RUTINA HACE EL CALCULO DEL }
LDX #MEN2 ;{ PWM CORRESPONDIENTE PARA CORREGIR EL }
JSR OSU ;{ ERROR. }
LDAA #$F7 ;{ CARGA EL DATO QUE PROPORCIONA EL }
STAA RPC ;{ SENTIDO DE GIRO DEL MOTOR, }
JSR DELAY ;{ EL CUAL ES ALMACENADO SACADO POR EL }
LDAA #$FF ;{ PUERTO C }
STAA RPC
JMP GO

DELAY LDX PWM ;{ A QUI CARGAMOS EL DATO DEL PWM QUE }


UNO DEX ;{ ARROJO EL CONTROL PID PARA GENERAR }
BNE UNO ;{ EL TIEMPO DE ACTIVO ALTO. }
RTS ;{ REGRESO DE SUB RUTINA }

DELAY1 LDY #$000F ;{ RETARDO CORRESPONDIENTE A LA }


DOS DEY ;{ CONFIGURACION DEL DAC }
BNE DOS ;{ PARA ESTABILIZAR }
RTS ;{ LA CONVERSION}

FIN SWI ;{ FIN DE PROGRAMA }


;***********************************************************************
;* SUB PROGRAMA CORRESPONDIENTE A EL CALCULO DEL CONTROL PID PARA *
;* GENERAR EL PWM NECESARIO PARA CORREGIR EL ERROR *
;***********************************************************************
;-----------------------------------------------------------------------
;***********************************************************************
;* INSTITUTO POLITECNICO NACIONAL *
;* UNIDAD PROFESIONAL ADOLFO LOPEZ MATEOS *
;* ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA *
;* CONTROL Y AUTOMATIZACION *
;* PROGRAMA DESARROLLADO POR: RAMIREZ GORDILLO JAVIER *
;* VELAZQUEZ SANCHEZ ALEJANDRO T *
;***********************************************************************

;*********************************************************
; DECLARACION DE REGISTROS EMPLEADOS POR EL SUB PROGRAMA
;*********************************************************

CP EQU $01F1 ;CONSTANTE PROPORCIONAL


CI EQU $01F2 ;CONSTANTE INTEGRAL
CD EQU $01F3 ;CONSTANTE DIFERENCIAL
PWM EQU $01F4 ;VALOR DEL PWM
ERROR EQU $01F6 ;ERROR ACTUAL
ERROR1 EQU $01F7 ;ERROR ANTERIOR
WK EQU $01F9 ;RESULTADO DE LA PARTE INTEGRACION
VK EQU $01FA ;RESULTADO DE LA DIFERENCIACION
RESERR EQU $01FE ;LOCALIDAD RESERVADA PARA TRANSFERENCIA DE DATOS
RETRO EQU $01FF ;RESULTADO DE LA SECCION A RETRO ALIMENTAR
PRO EQU $01EA ;RESULTADO DEL CALCULO PROPORCIONAL
INT EQU $01EC :RESULTADO DEL CALCULO INTEGRAL
DER EQU $01EE ;RESULTADO DEL CALCULO DERIVATIVO
ENT1 EQU $1033 ;CANAL DEL CAD

ORG $B730 ;LA SUB RUTINA SE ENCUENTRA EN LA LOCALIDAD


$B730
PID LDAA CP ;CARGA LA CONSTANTE PROPORCIONAL Y AL
MULTIPLICA
LDAB ERROR ;POR EL ERROR DE LA SEAL Y EL RESULTADO LO
MUL ;COLOCA EN LA LOCALIDAD PRO, PARA SER EMPLEADA
STD PRO ;POSTERIORMENTE POR EL PROGRAMA.

LDAA ERROR ;SE HACE UN PROMEDIO ENTRE LOS ERRORES ACTUAL


ADDA ERROR1 ;Y ANTERIOR, SEGUN EL ALGORITMO DEL CONTROL.
ADDA WK ;ESTE RESULTADO ES SUMADO AL CALCULO INTEGRAL
STAA WK ;PREVIO A ESTE CICLO Y POSTERIORMENTE SE
LDAB CI ;ACTUALIZA Y SE ALMACENA EN WK; ESTE RESULTADO
MUL ;ES MULTIPLICADO POR LA CONSTANTE INTEGRAL
STD INT ;Y ALMACENADO EN INT

LDAA ERROR1 ;SE CARGA EL ERROR ACTUAL Y EL ANTERIOR Y


SUBA ERROR ;SE RESTAN PARA OBTENER EL ERROR PROMEDIO
STAA RESERR ;ESTA RESTA SE ALMACENA EN RESERR
LDD RESERR ;EL VALOR DEL ERROR PROMEDIO ES EMPLEADO
LDX #$0200 ;PARA CALCULAR EL TIEMPO DE MUESTREO DEL
IDIV ;ALGORITMO DE CONTROL.
STD VK ;ESTE VALOR SE ALMACENA EN VK Y ES
;MULTIPLICADO
LDAA CD ;POR LA CONSTANTE PROPORCIONAL Y COLOCANDO EL
LDAB VK ;RESULTADO EN VK.
MUL ;
STD DER ;

LDD PRO ;SE SUMAN LOS RESULTADOS CORRESPONDIENTES


ADDD INT ;A LA PARTE PROPORCIONAL, INTEGRAL Y
;DERIVATIVA
SUBD DER ;PARA QUE ESTE RESULTADO SE ALMACENE EN PWM
STD PWM ;

LDAA ERROR ;SE ACTUALIZA EL ERROR ANTERIOR Y EL ACTUAL.


STAA ERROR1 ;
LDAA ENT1 ;
STAA RETRO ;
RTS ;FIN DE LA SUB RUTINA

SWI ;
PROGRAMA DEL PWM

RDDC EQU $1007


RPC EQU $1003
DES EQU $FFC7
INP EQU $FFAC
POS EQU $01C0
NEG EQU $01C1

MEN0 DB 'ROTAR PRESIONE (L/R)',04,0D


MEN1 DB 'SALIR (E)',04,0D
MEN3 DB 'FUERA',04,0D

ORG $100
LDAA #$FF
STAA RDDC
CLR RPC
LDAA #$FF
STAA RPC
LDX #MEN0
JSR DES
LDX #MEN1
JSR DES

LDAA #$07
STAA POS
STAA NEG

MAS JSR PWM


JSR INP
CMPA #$4C
BNE MAS1
BRA LEFTH

MAS1 JSR PWM


JSR INP
CMPA #$52
BNE MAS2
BRA RIGHT

MAS2 JSR PWM


JSR INP
CMPA #$45

BNE MAS
BRA EXIT

PWM LDAA #$FE


STAA RPC
JSR DELAY
LDAA #$FF
STAA RPC
JSR DELAY2
RTS
LEFTH INC POS
DEC NEG
BRA MAS

RIGHT DEC POS


INC NEG
BRA MAS

EXIT LDX #MEN3


JSR DES
JSR DELAY3
SWI
END

DELAY LDY POS


UNO DEY
BNE UNO
RTS

DELAY2 LDY NEG


UNO2 DEY
BNE UNO2
RTS

DELAY3 LDX #$0005


DOS3 LDY #$FFFF
UNO3 DEY
BNE UNO3
DEX
BNE DOS3
RTS
ANEXO 5. Diagramas de conexin del manipulador robtico R3GL.

Puente H1
U?
8 31
7 XT PA3 30 12V CD
EX PA4 29
17 PA5 28
19 RESET PA6 27
18 IRQ PA7
XIRQ 42
2 PB0 41
MODB PB1
34 PB2
40
39 5V CD
33 PA0 PB3 38 Q?
32 PA1 PB4 37 Q? TIP120
PA2 PB5 TIP120 R?
36 R?
43 PB6 35
45 PE0 PB7
PE1 U? RESISTOR
47 9 RESISTOR
49 PE2 PC0 10 2 18
PE3 PC1 3 A1 B1 17
44 11 A2 B2
46 PE4 PC2 12 4 16
PE5 PC3 5 A3 B3 15
48 13 A4 B4
50 PE6 PC4 14 6 14 M?
PE7 PC5 7 A5 B5 13

A
15

-
52 PC6 16 8 A6 B6 12
51 VRH PC7 9 A7 B7 11
VRL 20 A8 B8
PD0 21 MOTOR SERVO
PD1
19
22 1 G
PD2 23 DIR
PD3 24 Q? Q?
PD4 74LS245 R? TIP31 R? TIP31
25
PD5
3
MODA RESISTOR RESISTOR
5
E 4
AS 6
R/W
MC68HC11E9
Hacia los Puentes
H2 y H3

GND

Diagrama de potencia para giro del motor


5V

31 8
30 PA3 XT 7
29 PA4 EX
28 PA5 17 R
27 PA6 RESET 19 1K
PA7 IRQ 18
42 XIRQ
41 PB0 2
40 PB1 MODB FLECHA
39 PB2 34
38 PB3 PA0 33
37 PB4 PA1 32
36 PB5 PA2
BUFFER 35 PB6 43 MORE BASE
PB7 PE0 45
2 18 9 PE1 47
3 A1 B1 17 10 PC0 PE2 49
HACIA PUENTES "H" 4 A2 B2 16 11 PC1 PE3 44 R
5 A3 B3 15 12 PC2 PE4 46 1K
6 A4 B4 14 13 PC3 PE5 48
7 A5 B5 13 14 PC4 PE6 50
8 A6 B6 12 15 PC5 PE7
9 A7 B7 11 16 PC6 52 FLECHA
A8 B8 PC7 VRH 51
19 20 VRL
1 G 21 PD0
DIR 22 PD1
23 PD2 MORE ANTEBRAZO
74LS245
24 PD3
25 PD4
PD5 R
3 1K
5V MODA
5
4 E
6 AS FLECHA
R/W

MC68HC11E9

MORE BRAZO

DIAGRAMA DE CONEXIN AL MICROPROCESADOR


ANEXO 6. Publicacin generada de sta tesis.

También podría gustarte