a mis padres - tesis.ipn.mx
TRANSCRIPT
Instituto Politécnico NacionalESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
SECCIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN
METODOLOGÍA PARA
GENERACIÓN DE TRAYECTORIAS
DE MANIPULADORES
ROBÓTICOS, SU CINEMÁTICA Y DINÁMICA
T E S I S QUE PARA OBTENER EL GRADO DEMAESTRO EN CIENCIASCON ESPECIALIDAD ENINGENIERÍA MECÁNICA P R E S E N T A :
ING. EMMANUEL ALEJANDRO MERCHÁN CRUZ
DIRIGIDA POR: DR. GUILLERMO URRIOLAGOITIA CALDERÓN
MÉXICO, D.F. 2000
“La imaginación es más importante que el conocimiento” Albert Einstein
a mis padres
Índice Índice........................................................................................................................ i
Índice de Tablas y Figuras ..................................................................................... iv
Simbología. ...........................................................................................................viii
Resumen. ................................................................................................................ x
Abstract. ................................................................................................................. xi
Justificación............................................................................................................xii
Objetivo. .................................................................................................................xii
Introducción...........................................................................................................xiii
1. Estado del Arte.................................................................................................... 2
1.1 Antecedentes Generales ............................................................................... 2
1.2 Antecedentes Específicos.............................................................................. 9
2. Fundamentos Teóricos...................................................................................... 16
2.1 Cinemática de Manipuladores Robóticos..................................................... 16
2.1.1 Representación de la Orientación entre Sistemas de
Coordenadas......................................................................................... 16
2.1.1.1 Matrices de Rotación. ..................................................................... 17
2.1.1.2 Otros Métodos para Representar la Orientación de
Sistemas de Coordenadas. ........................................................... 22
2.1.2 Matrices de Transformación Homogénea. ............................................ 23
2.1.3 Asignación de Sistemas de Coordenadas a Manipuladores
Robóticos (Parametrización de Manipuladores Robóticos)................... 26
2.1.4 Representación de Denavit y Hartenberg. ............................................ 27
2.2 Dinámica de Manipuladores Robóticos........................................................ 32
2.2.1 Formulación de Básica. ......................................................................... 34
2.2.2 Formulación de Lagrange. .................................................................... 37
2.2.2.1 Dinámica Lagrangiana de un Manipulador de dos
grados de Libertad. ....................................................................... 38
2.3 Control de Manipuladores Robóticos. .......................................................... 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 robóticos. ................. 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 Descripción del Manipulador Robótico Mitsubishi........................................ 55
3.1.1 Sistemas de Coordenadas sobre los que se desplaza el
robot Mitsubishi Movemaster................................................................. 57
3.2 Planteamiento del problema cinemático. ..................................................... 57
3.2.1. Obtención de las ecuaciones de diseño del Manipulador. ................... 57
3.2.2. Planteamiento de la Solución a la Cinemática Directa e
Inversa del Manipulador. ....................................................................... 61
3.2.2.1 Cinemática Directa. ........................................................................ 61
3.2.2.2 Cinemática Inversa. ........................................................................ 63
3.3 Planteamiento del Problema Dinámico. ....................................................... 67
3.3.1 Obtención del Modelo Dinámico del Manipulador. ................................ 68
3.3.2 Planteamiento de la solución a la Dinámica del
Manipulador........................................................................................... 72
4. Generación de Trayectorias. ............................................................................. 75
4.1 Metodología para la generación de trayectorias. ......................................... 76
4.2 Parametrización de Trayectorias. ................................................................ 77
4.3 Cinemática de la generación de trayectorias. .............................................. 86
4.4 Dinámica en la generación de trayectorias. ................................................. 91
5. Desarrollo Experimental Derivado de este Trabajo. ........................................ 106
5.1 Proyecto de “Implementación de las Técnicas de Control PID
en un Manipulador Robótico de Tres Grados de Libertad” ....................... 106
5.1.1 Descripción física ................................................................................ 108
5.1.2 Modelado Matemático y Solución a la Cinemática Directa e
Inversa. ............................................................................................... 111
5.1.3 Implementación de Técnicas de Control para el robot
R3GL................................................................................................... 117
5.1.3.1 Acción de control Proporcional ..................................................... 117
5.1.3.2 Acción de control Integral ............................................................. 118
5.1.3.3 Acción de control Proporcional-Integral ........................................ 118
5.1.3.4 Acción de control Proporcional-Derivativo .................................... 119
5.1.3.5 Acción de control Proporcional Integral Derivativo ....................... 120
5.1.4 Función de Transferencia de un Controlador PID Digital .................... 120
5.1.5 Descripción del Sistema de Control del Manipulador
Robótico R3GL.................................................................................... 126
5.1.6 Estado actual del Proyecto de Investigación. ...................................... 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. Gráficas correspondientes a las 21 posiciones que
conforman la trayectoria abc..........................................................A24
ANEXO 4. Programas del proyecto de implementación. .................................A32
ANEXO 5. Diagramas de conexión del manipulador robótico
R3GL. ............................................................................................A39
ANEXO 6. Publicación generada de ésta tesis................................................A41
Índice de Tablas y Figuras FIGURA 1.1 TELAR AUTOMÁTICO DE JACUARD................................................ 2
FIGURA 1.2 CONFIGURACIÓN CARTESIANA O PRISMÁTICA ........................... 5
FIGURA 1.3 CONFIGURACIÓN CILÍNDRICA. ....................................................... 6
FIGURA 1.4 CONFIGURACIÓN ESFÉRICA O POLAR.......................................... 6
FIGURA 1.5 CONFIGURACIÓN DE BRAZO ARTICULADO. ................................. 7
FIGURA 1.6 CONFIGURACIÓN SCARA ................................................................ 7
FIGURA 1.7 POSICIONAMIENTO Y ORIENTACIÓN DEL EFECTOR
FINAL. .................................................................................................. 8
FIGURA 1.8 ORIENTACIÓN DEL EFECTOR FINAL.............................................. 8
FIGURA 2.1.- REPRESENTACIÓN DE SISTEMAS DE
COORDENADAS................................................................................ 17
FIGURA 2.2.- (A) ROTACIÓN ALREDEDOR DEL EJE X, ∝ GRADOS;
(B) ROTACIÓN ALREDEDOR DEL EJE Y, ϕ GRADOS;
(C) ROTACIÓN ALREDEDOR DEL EJE Z θ GRADOS. .................... 18
FIGURA 2.3.- OBTENCIÓN DE LA MATRIZ DE ROTACIÓN
RESULTANTE.................................................................................... 20
FIGURA 2.4.- MATRIZ DE TRANSFORMACIÓN HOMOGÉNEA......................... 24
FIGURA 2.5.- MATRICES DE BÁSICAS DE ROTACIÓN
HOMOGÉNEAS ................................................................................. 25
FIGURA 2.6.- MATRIZ DE TRASLACIÓN HOMOGÉNEA BÁSICA...................... 25
FIGURA 2.7 DIFERENTES CONVENCIONES PARA LA
ASIGNACIÓN ..................................................................................... 27
DE SISTEMAS DE COORDENADAS ................................................................... 27
FIGURA 2.8 PARÁMETROS 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
DINÁMICO.......................................................................................... 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 BÁSICA DE CONTROL DE POSICIÓN ................ 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 POSICIÓN INICIAL PARA LA ASIGNACIÓN DE
SISTEMAS DE COORDENADAS ...................................................... 58
FIGURA 3.6 SISTEMAS DE COORDENADAS PARA EL ROBOT ....................... 58
TABLA 3.1 PARÁMETROS DE D-H...................................................................... 59
FIGURA 3.7 DIAGRAMA DE FLUJO DE LA FUNCIÓN CDMOVER..................... 62
FIGURA 3.8 DIAGRAMA DE FLUJO DE LA FUNCIÓN NEWTON. ...................... 67
FIGURA 3.9 PUNTO ii r EN EL SISTEMA DE COORDENADAS DE LA
ARTICULACIÓN................................................................................. 68
FIGURA 3.10 DIAGRAMA DE FLUJO PARA LA FUNCIÓN 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 DEFINICIÓN DE LAS LIGADURAS DE CAMINO............................. 79
FIGURA 4.5 ESTABLECIMIENTO DE LA ORIENTACIÓN DESEADA
DURANTE LA TRAYECTORIA. ......................................................... 80
FIGURA 4.6 IDENTIFICACIÓN DE LAS ORIENTACIONES
DESEADAS. ....................................................................................... 81
FIGURA 4.7 ANÁLISIS DE LA TRAYECTORIA PARCIAL BC.............................. 84
FIGURA 4.8 ANÁLISIS DE VARIACIÓN ANGULAR EN LA
ORIENTACIÓN................................................................................... 84
FIGURA 4.9 ANÁLISIS CINEMÁTICO TRAYECTORIA “ABC” ............................ 88
FIGURA 4.10 CONFIGURACIÓN RESULTANTE
CORRESPONDIENTE AL PUNTO A. ................................................ 89
FIGURA 4.11 CONFIGURACIÓN RESULTANTE
CORRESPONDIENTE AL PUNTO A1. ............................................... 90
FIGURA 4.12 CONFIGURACIÓN RESULTANTE
CORRESPONDIENTE AL PUNTO B9. ............................................... 90
FIGURA 4.13 CONFIGURACIÓN 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 ARTICULACIÓN 1 .......................................................... 98
FIGURA 4.17 TORQUE ARTICULACIÓN 2 ......................................................... 98
FIGURA 4.18 TORQUE ARTICULACIÓN 3 ........................................................ 99
FIGURA 4.19 TORQUE ARTICULACIÓN 4 ........................................................ 99
FIGURA 4.20 TORQUE ARTICULACIÓN 5 ....................................................... 100
TABLA 4.4.- TORQUES CONSIDERANDO UNA CARGA DE 1.5 K.G
EN EL EFECTOR FINAL (N-M)........................................................ 101
FIGURA 4.21 COMPARACIÓN T1 VS T1”......................................................... 102
FIGURA 4.22 COMPARACIÓN T2 VS T2”.......................................................... 102
FIGURA 4.23 COMPARACIÓN T3 VS T3”......................................................... 103
FIGURA 4.24 COMPARACIÓN DE T4 VS T4”................................................... 103
FIGURA 4.25 COMPARACIÓN 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 POSICIÓN DE SISTEMA DE COORDENADAS CERO. ................ 111
FIGURA 5.5 ASIGNACIÓN DE SISTEMAS DE COORDENADAS. .................... 111
TABLA 5.1 PARAMETROS DE D-H PARA EL ROBOT R3GL............................ 111
FIGURA 5.6 POSICIÓN INICIAL (0 0 0 90 0)...................................................... 113
FIGURA 5.7 POSICIÓN1 (90 0 0 90 0) ............................................................... 113
FIGURA 5.8 POSICIÓN 2 (0 –45 45 180 0) ........................................................ 114
FIGURA 5.9 POSICIÓN 3 (0 –90 90 180 0) ........................................................ 115
FIGURA 5.10 POSICIÓN 4 (45 –90 90 180 0) .................................................... 116
FIGURA 5.11 POSICIÓN 5 (0 45 –90 135 0) ...................................................... 117
FIGURA 5.12 ANÁLISIS DEL COMPORTAMIENTO DEL ERROR
E(T), Y COMPORTAMIENTO DE LA SEÑAL
MANIPULADA U(T) PARA UN CONTROL PI .................................. 119
FIGURA 5.13 ANÁLISIS DEL COMPORTAMIENTO DEL ERROR
E(T), Y COMPORTAMIENTO DE LA SEÑAL
MANIPULADA U(T) PARA UN CONTROL PD................................. 119
FIGURA 5.14 ANÁLISIS DEL COMPORTAMIENTO DEL ERROR
E(T), Y COMPORTAMIENTO DE LA SEÑAL
MANIPULADA U(T) PARA UN CONTROL PID................................ 120
FIGURA 5.15 DIAGRAMA DE FLUJO PARA LA IMPLEMENTACIÓN
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 ESQUEMÁTICO DEL SISTEMA DE
CONTROL DEL MANIPULADOR ROBÓTICO R3GL....................... 126
Simbología. x y z - 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
u v w - sistema de coordenadas fijo
[ ]RR, - matriz de rotación 3 x 3
[ ]TT , - matriz de transformación homogénea 4 x 4
3I - matriz identidad 3 x 3
4I - matriz identidad 4 x 4
kji ˆ ˆ - vectores unitarios
φαθ - desplazamientos angulares
iθ - ángulo entre eslabones
iiii da θα ,,, - parámetros de Denavit y Hartenberg
axyz - vector de posición respecto al sistema de coordenadas xyz
auvw - vector de posición respecto al sistema de coordenadas uvw
[ ]TA - matriz transpuesta
)ˆ,( , 0 qqQ - cuaternion
ii A1−
- matriz de transformación homogénea para los sistemas de
coordenadas i e 1−i .
nT0 - matriz del robot
n - grados de libertad
F - fuerza
m - masa
ir - vector de posición
vri ,& - vector de velocidad lineal
a ,ir&& - vector de aceleración lineal
jg - restricciones del sistema
iq - coordenada generalizada
iτ - fuerza generalizada
L - Lagrangiano del manipulador
K - energía cinética
P - energía potencial ϖ - velocidad angular α - aceleración angular
J - matriz Jacobiana
V - voltaje
I - corriente eléctrica
E - fuerza electromotriz
dθ - posición angular deseada
dθ& - velocidad angular deseada
dθ&& - aceleración angular deseada
vv - vector variable
vc - vector constante
Resumen.
En este trabajo se presenta una metodología que permite obtener los parámetros
necesarios para la generación de trayectorias de manipuladores robóticos fuera de
línea, como son: los vectores de posición angular que resulten en la configuración
espacial del manipulador que se requiere durante la trayectoria deseada, y los
vectores de fuerza o torque necesarios para que se cumplan las condiciones
dinámicas de movimiento. Partiendo de un análisis cinemático y dinámico del
manipulador y de la tarea a desempeñar por este. Desarrollando también, las
herramientas de cómputo necesarias para este fin.
Se presenta también el trabajo experimental desarrollado, que contempla el diseño
y construcción de un manipulador de 3 grados de libertad y la implementación de
técnicas de control para este.
En la versión en disco compacto (en formato HTML), se incluye la animación del
manipulador generando la trayectoria deseada, los listados de los programas
necesarios para la implementación del control PID (Proporcional–Integral–
Derivativo), el listado para el modelado virtual del manipulador y los listados
necesarios para la solución a la Cinemática y Dinámica en MATLab®, para su uso
posterior.
Este trabajo esta disponible en Internet en las direcciones electrónicas
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.
Justificación.
Actualmente, uno de los principales problemas que presentan las industrias que
tienen implementadas en su línea de producción células de manufactura robóticas,
son los denominados tiempos muertos derivados de la reprogramación de un
manipulador robótico. Esta, en el contexto de la industria nacional, es en su
mayoría gestual y textual, lo que obliga a detener la línea de producción por
espacio de muchas horas, periodo en el cual, los técnicos identifican en un modelo
físico, los puntos que habrán de definir la trayectoria a seguir por el robot, para
posteriormente programar la secuencia de movimientos del mismo.
El estudio de la generación de trayectorias de un manipulador robótico, es de gran
utilidad para la determinación de los parámetros necesarios que definan la
trayectoria a seguir por el robot, sin necesidad de detener la línea de producción,
permitiendo así realizar una programación fuera de línea, reduciendo así los
tiempos de reprogramación de manera significativa.
Objetivo.
El objetivo del presente trabajo, es plantear una metodología de análisis que
permita la determinación de los parámetros cinemáticos y dinámicos de control
necesarios para la generación de trayectorias en un manipulador robótico.
Introducción.
El estudio de la robótica 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 ingeniería eléctrica, ingeniería
mecánica, ingeniería electrónica, ingeniería de manufactura, y ciencias de la
computación, con el fin de poder ver los problemas que representan el estudio de
la robótica desde un punto de vista integral.
Hoy en día, 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 técnico necesario para poder
llevar a cabo la integración e implementación de esta tecnología en la planta
manufacturera nacional.
Un aspecto de gran interés es el que representa la generación de trayectorias de
manipuladores robóticos para el desarrollo de una tarea, la cual comprende la
definición de los puntos que habrán 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 posición y orientación deseada para su efector final, ya que
esto representa el tener que detener la línea de producción, de la cual forma parte
el robot, para que un grupo de técnicos realice esta nueva definición de puntos de
una trayectoria, lo que se traduce en tiempo en el que el robot no es productivo,
además de que la definición de los puntos de esta manera no son del todo
precisos.
Un segundo método para definir los puntos que conforman a una trayectoria es en
el que, para definirlos, solo es necesario contar con información básica del
manipulador robótico, como lo son sus dimensiones y grados de libertad.
Obteniendo así la información necesaria para generar una trayectoria “fuera de
línea”, es decir, sin interrumpir la línea de producción para poder hacerlo.
La generación de trayectorias es, sin duda, uno de los principales problemas de
análisis en el área de la robótica. Esta incluye el estudio de la cinemática y
dinámica del manipulador, el control del sistema y la parametrización de la tarea a
desempeñar para definir la trayectoria a seguir por el manipulador.
El objetivo de este trabajo es el de plantear una metodología de análisis para la
generación de trayectorias de manipuladores robóticos, tomando en cuenta la
cinemática y dinámica que tiene que ver con el manipulador y la tarea a
desempeñar. Para lo cual esta tesis se divide de la siguiente manera:
En el primer capítulo, Estado del Arte, se exponen los antecedentes generales de
la robótica, desde su primera concepción hasta la descripción de los
manipuladores robóticos actuales. Así como también los antecedentes específicos
que tienen que ver con el estudio de la robótica en sus diversos aspectos, como lo
son la cinemática, la dinámica, el control, entre otros.
En el segundo capítulo, Fundamentos Teóricos, se presentan los fundamentos
necesarios para realizar un estudio cinemático y dinámico de un manipulador
robótico. En este capítulo también se incluyen aspectos básicos de control de
manipuladores robóticos, pues es, en la opinión del que escribe, necesario
establecer desde un principio, la relación de un estudio dinámico de un sistema
físico con su modelo de control correspondiente y no tratarlo como dos temas
independientes.
En el tercer capítulo, El manipulador robótico de 5 grados de Libertad
Mitsubishi Movemaster como Caso de Estudio, se toma el manipulador
mencionado para ejemplificar el establecimiento de los parámetros necesarios
para realizar un estudio cinemático y dinámico de un robot. En este capítulo, se
plantean los problemas cinemático y dinámico con el objeto de desarrollar las
herramientas de cómputo necesarias para su solución y posterior aplicación en el
estudio de trayectorias. Es importante mencionar que se utilizó el robot Mitsubishi
Movemaster como espécimen de estudio, ya que el IPN cuenta con tres
manipuladores de este tipo en las escuelas de nivel superior ESIME Azcapotzalco,
ESIME Culhuacán, y UPIICSA, por lo que el acceso a estos equipos es
relativamente sencillo.
En el cuarto capítulo, Generación de Trayectorias, se presenta la metodología
para el estudio de la generación de trayectorias. Para la ilustración de esta
metodología se propone una tarea a desempeñar por el manipulador, para la cual
se llevan a cabo los siguientes pasos: parametrización de la trayectoria y análisis
cinemático y dinámico de la trayectoria. En este capítulo se obtienen los vectores
de posiciones, velocidades y aceleraciones angulares que corresponden a la
trayectoria deseada a partir del análisis cinemático y los vectores de torque
necesarios en las articulaciones, para satisfacer las condiciones dinámicas de la
trayectoria a partir del análisis dinámico.
En el quinto capítulo, 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 más ha
avanzado y que lleva como título “Proyecto de implementación de técnicas de
control PID en un manipulador robótico de 3 grados de libertad” y que comprende
el diseño y construcción del manipulador, el modelado matemático y solución a la
cinemática directa e inversa para este manipulador, siguiendo la metodología que
se presenta en esta tesis y con las herramientas que se han desarrollado en
Matlab®. Por último, la implementación de técnicas de control PID (Proporcional –
Integral – Derivativo) en el manipulador robótico 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. Además 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 representación gráfica de 21 posiciones que conforman
la trayectoria de estudio, los programas de implementación del algoritmo de
control PID en un manipulador de 3 grados de libertad, los diagramas de conexión
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 través del Programa Institucional de Formación de Investigadores, pues sin
este, hubiese sido muy difícil el desarrollo de este trabajo, así como la
construcción del prototipo de manipulador robótico, 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 robótica, inevitablemente pensamos en un proceso
automático, y como la robótica es hoy en día sinónimo de automatización, nos
referiremos a Joseph Jacquard como el primer pionero de la automatización
industrial que, en el año de 1801, inventó una máquina textil operada por tarjetas
perforadas conocida como telar programable, dando lugar a la producción en
masa [1,3].
Figura 1.1 Telar automático de Jacuard.
No es sino hasta más de un siglo después, en el año de 1921, que el término
robot, derivado del vocablo checo robota, cuyo significado es sirviente o esclavo,
es utilizado por primera vez por el Doctor en filosofía Karel Capek en una obra de
teatro en la que describe sirvientes mecánicos llamados robots [2].
Para el año de 1938, los americanos Williard Pollard y Harold Roselund diseñan
un mecanismo programable para el pintado por aspersión para la compañía
DeVilbiss [3].
George Devol, en el año de 1946, diseñó una máquina programable capaz de
almacenar y reprogramar información [1,4]. En el mismo año, los científicos
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
matemático [5,6].
Norbert Wiener, profesor del M.I.T., en 1948 publica el libro “Cibernética”, en el
cual describe conceptos de comunicaciones y control en sistemas electrónicos,
mecánicos y biológicos [1,5].
En el año de 1951, Raymond Goertz diseña un brazo articulado el cual es
teleoperado para la manipulación de materiales radioactivos, a petición de la
Comisión de Energía Atómica [1,5].
George Devol, en el año de 1954, registra bajo la patente número 2,988,237 de
EUA al primer robot [1]. Este estaba diseñado para la transferencia de materiales
en una fabrica [5]. Más adelante, en el año 1956, Joseph Engelberger y Devol
conforman la que a la postre sería una de las más exitosas compañías de robots,
Unimation, Inc. [1,4,5], construyendo el primer robot Unimation en 1958. Pero no
fue sino hasta el año de 1962 cuando se instaló por primera vez un robot industrial
en una línea de producción en una armadora propiedad de General Motors [1],
cuya tarea era el tomar piezas calientes de una forja y empaquetarlas [5].
En Japón, Kawasaki Heavy Industries importó su primer robot en el año de 1967
[5], obteniendo la licencia para la manufactura de robots Unimation en 1968 [1,4].
En el año de 1970, la Universidad de Stanford diseña un brazo robot que se
convierte en el estándar en proyectos de investigación [1]. Este brazo utiliza
motores eléctricos como actuadores y se le conoce como robot Stanford [5]. Al
año siguiente, 1971, en Japón se conforma la primera asociación de robótica en el
mundo, la Asociación de Robots Industriales de Japón (JIRA) [1].
En 1973, se utiliza por primera vez una microcomputadora para controlar un brazo
robótico, desarrollado por Richard Horn para Cincinati Milacron Corporation [1,5].
En el año de 1974, el creador del robot Stanford, Profesor Sheinman, funda
Vicarm Inc., con el propósito de comercializar una versión para aplicaciones
industriales del robot Stanford original [1].
La Asociación Industrias Robóticas es establecida en 1975 [1], dando, por primera
vez, una definición para robot industrial: “Un robot industrial es un manipulador
multifuncional programable, diseñado para mover, materiales, herramientas o
dispositivos especializados; por medio de movimientos programados para la
realización de varias tareas” [1,7].
En 1977, ASEA (ahora ABB), compañía europea, ofrece comercialmente dos
modelos de robots industriales con actuadores eléctricos conocidos como Irb6.
Ambos utilizan microcomputadoras como controlador para su programación y
operación [1,8]. Durante el mismo año, Vicarm Inc. es adquirido por Unimation Co.
[1]. Como resultado de esta fusión, uno de los mayores éxitos de Unimation se
obtiene el robot PUMA (Programable Universal Machine for Assembly). Por otra
parte, el ingeniero mecánico 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 orientación en un lugar deseado que estuviera a su
alcance [10]. El concepto básico multiarticulado del PUMA es la base de la
mayoría de los robots actuales, es diseñado utilizando las técnicas de control de
Vicarm y bajo patrocinio de General Motors [1,5].
FANUC Robotics, compañía japonesa, es introducida al mercado americano en
1981, siendo General Motors el principal accionista [1]. En este mismo año, un
nuevo concepto en robots de ensamble es traido desde Japón, 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 año, ASEA presenta una
nueva configuración de robot con 6 grados de libertad tipo péndulo, para tareas de
ensamble [8].
En 1986, la instalación y aplicación de robots continua creciendo pero desde un
punto de vista integral, aumentando el interés en Celdas de Manufactura,
Sistemas Flexibles de Manufactura y sistemas CIM [1].
Durante este tiempo, los tipos de configuraciones básicas 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 Configuración Cartesiana o prismática
- - Cilíndrico: Con movimiento a lo largo de Z y Y, alrededor de Z.
Figura 1.3 Configuración Cilíndrica.
- - Esférico o polar: con dos articulaciones de revolución y una prismática.
Figura 1.4 Configuración Esférica o Polar.
- - Brazo articulado o de revolución: únicamente conformado por
articulaciones de revolución.
Figura 1.5 Configuración de Brazo Articulado.
- - SCARA: Con dos pares de revolución y uno prismático, pero dispuestos
en una configuración diferente a la de la configuración esférica.
Figura 1.6 Configuración SCARA
Todas estas configuraciones, en un principio, consideran únicamente tres grados
de libertad en su representación, 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 orientación deseada o
necesaria, de acuerdo con la tarea a desempeñar, como se muestra en la figura
1.7.
Figura 1.7 Posicionamiento y orientación del efector final.
Figura 1.8 Orientación del efector final.
1.2 Antecedentes Específicos.
Debido a que la robótica es interdisciplinaria, en la que intervienen la ingeniería
mecánica, eléctrica, electrónica, ciencias de la computación y manufactura, se han
conformado diversas líneas de investigación bajo esta área.
En un panorama global, esta líneas comprenden: el diseño de los mecanismos
que conforman el manipulador, consideración de eslabones rígidos y flexibles,
configuraciones de manipuladores de cadena abierta y manipuladores paralelos;
desarrollo de nuevas técnicas de control de manipuladores robóticos, control
adaptivo, difuso, etc; desarrollo de diversos algoritmos y técnicas de programación
en línea y fuera de línea, dentro de este panorama global pueden identificarse los
algoritmos de visión artificial y algoritmos para robots cooperativos.
Como ejemplo de lo anterior podemos citar los siguientes casos:
En el área de ingeniería mecánica hoy en día no solo se analizan robots de
cadena abierta, sino también robots paralelos, en los cuales el principal problema
es determinar el modelo cinemático que rige el movimiento del sistema,
concentrándose el análisis en la determinación de este modelo. En la Universidad
de Victoria, Carretero, Nahon y otros trabajan, en 1997, en el análisis cinemático
de un mecanismo de manipulador paralelo de 3 grados de libertad, para su uso en
foco de un lente de telescopio. Proponen la solución directa e inversa de la
cinemática del manipulador [11]. Para 1998, Podohorosdeski presenta el estudio
de optimización en la arquitectura de este mecanismo [12]. En tanto que en la
Universidad de Queen’s, actualmente se trabaja en el diseño de nuevas
configuraciones de robots paralelos bajo la supervisión de la Profesora Leila
Notash [13].
En lo que respecta a los manipuladores articulados de cadena abierta,
actualmente se desarrollan diversas metodologías para la solución de la
cinemática de dichos robots, o bien el planteamiento del modelo cinemático de
este, siendo común encontrar trabajos como el desarrollado por Doty, 1992, para
la NASA, en el cual se establece la solución a la cinemática directa e inversa de
un manipulador desarrollado para esta agencia [14].
Para la solución a la cinemática directa de manipuladores robóticos, se emplea un
método sistemático y generalizado que utiliza el álgebra matricial como
herramienta, este método describe la geometría espacial de los elementos de un
brazo manipulador con respecto a un sistema de referencia fijo, método propuesto
para el análisis de mecanismos por Denavit y Hartenberg en 1955 [15] que se
aplica a la robótica.
En lo referente a la solución de la cinemática inversa (CI), se reconocen, en
diversos textos, dos estrategias para la solución de esta, las soluciones de “forma
cerrada” y las soluciones numéricas.
En un principio se optaba por las soluciones “cerradas” derivadas de un análisis
del problema algebraico o geométrico [15,16], ya que las herramientas de cómputo
disponibles no contaban con la velocidad suficiente para resolverlos en un tiempo
conveniente, con esto, se buscaba simplificar la solución del problema, pues las
soluciones obtenidas, por la aplicación de este método no eran siempre la mejor
de las soluciones, y además, considerando la naturaleza del problema que se
deriva del análisis de un mecanismo eslabonado de cadena abierta, es evidente
que pueden existir múltiples soluciones para una condición deseada.
Parkin [21], señala que la solución a la CI no se puede obtener de manera
algebraica, lo que significa que una solución de forma “cerrada” no existe y que es
necesaria una solución 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],
señalan que un par de métodos para la solución a la CI consisten en utilizar
métodos numéricos para resolverla calculando el error cuadrático mínimo, o bien,
agregar restricciones algebraicas en la solución a la CI para manipuladores
redundantes. Posteriormente demuestran la aplicación del método de Moore-
Penrose en la solución a esta y proponen un método llamado “Teoría Inversa
Generalizada”, que se basa en la generalización del método antes mencionado
[37] y más adelante presentan la aplicación de la metodología propuesta para la
solución a la CI en velocidades [38].
Trabajos más avanzados en cuanto a propuestas de solución a la CI, tienen que
ver con la aplicación de la lógica difusa para la solución a esta. Tal como lo
presentan Xu y Nechyba en [39], bajo el argumento de que la solución a la CI
requiere de muchos recursos computacionales, lo que puede resultar en retrasos
significativos en el control en tiempo real y, basándose 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 números duales para
el análisis y síntesis de mecanismos, tal como lo describe Cheng en [41] y [43];
llevando este análisis hasta los mecanismos de cadena abierta de manipuladores
robóticos, a partir de los parámetros de Denavit y Hartenberg [42].
En lo que se refiere a la dinámica de manipuladores robóticos, también se plantea
el uso de números duales para describir la dinámica del cuerpo rígido [45]. O bien,
el uso de multiplicadores de Lagrange en sistemas de simulación de la dinámica
de manipuladores, utilizando estos para establecer las restricciones en el modelo
a simular [18]. Algunos análisis de la dinámica 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 Robótica de Carnegie-Mellon se desarrollan técnicas de control
adaptivo de manipuladores, así como el uso de bi-cuaterniones para establecer los
algoritmos de control de robots cooperativos [28], además de algoritmos de control
para la determinación de la fuerza de apriete óptima en mecanismos de aprensión
de manipuladores robóticos [48]. En el Instituto Tecnológico de California trabajan
en el diseño de un control adaptivo para sistemas físicos con dinámica cambiante
[49] y en análisis de la dinámica de robots móviles para el establecimiento de un
control óptimo [50]. En la Universidad de Ámsterdam, trabajan en aspectos de
control como el diseño de un modelo de control para el uso de sistemas de visión
artificial, como guía para el movimiento de un brazo robot usando redes
neuronales.
En el ámbito nacional, la robótica no ha crecido aún de manera notable, ya que
son pocos los centros educativos en donde se aborda este tema con fines de
investigación y desarrollo, destacándose el CINVESTAV, el IPN, la UNAM y el
ITESM.
Es importante hacer notar que, debido a la importancia de este tema, en el año de
1991, en ESIME Azcapotzalco, se crea la carrera de Ingeniería en Robótica
Industrial, cuyo enfoque, lamentablemente, es una automatización “empírica” de
procesos industriales, sin conocer los fundamentos básicos de la manipulación
robótica, ni los aspectos básicos de control de procesos.
Dentro de la currícula de diversas carreras en ingeniería del IPN, se imparten
materias relacionadas con la robótica, tal es el caso de la carrera de Ingeniería en
Control y Automatización de la ESIME Zacatenco y de Ingeniería en Mecatrónica
de la UPITA.
En estos diversos centros, se llevan a cabo actividades de investigación y
desarrollo sobre estas tecnologías 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 años de iniciado, no ha llegado a resultados tangibles. En el
CINVESTAV han diseñado un robot tipo SCARA, proyecto que ha evolucionado de
manera notable.
Dentro de esta Sección de Estudios de Posgrado e Investigación, se han
desarrollado pocos trabajos referentes al tema, como la propuesta de una
“Metodología para el Diseño de un Robot Manipulador Industrial” en 1993 por Díaz
de León [54]. En el mismo año, López [55] presenta el “Análisis Cinemático y
Dinámico de un Manipulador Robótico con tres Grados de Libertad”.
Después de este año, es hasta 1997 cuando Rojas Garnica [56] presenta el
“Diseño de un Mecanismo Atornillador para un Brazo Manipulador Robótico”,
trabajo que no aporta conocimiento a la línea de investigación de robótica.
Los dos trabajos más recientes sobre el tema son, en 1997, el “Desarrollo de un
Simulador para el Control de un Brazo Robótico”, por González Sánchez [57], en
donde se plantea el desarrollo de un simulador para el control, sin definir los
conceptos de dinámica directa y dinámica inversa, aun cuando la dinámica directa
es la que tiene que ver con el diseño de simuladores dinámicos, tal como lo
señalan Craig [17], Baraff [18] y Murray [19]. Además, se menciona como objetivo
el control de un brazo robótico, cuando, dentro del texto no se hace un solo
planteamiento ni consideración de las técnicas ni modelos de control que se
emplean en manipuladores robóticos, lo cual es señalado ampliamente en
diversos textos como [9], [15], [17], [19] y [21]. El mencionado trabajo presenta
también errores en la obtención del modelo matemático del manipulador
analizado. Por lo que no se recomienda la lectura de este trabajo.
El segundo trabajo más reciente dentro de la sección, es la “Modelación y
Simulación de Sistemas Electromecánicos Bajo Control”, por Domínguez Aguirre
en 1998 [20], en donde se hacen consideraciones importantes en cuanto al
modelado de sistemas físicos para su análisis.
Como se puede observar, en 7 años, en el departamento de Ingeniería Mecánica
de la SEPI-ESIME se han desarrollado un total de 6 trabajos, incluyendo el
presente, relacionados con la robótica. Lo que no corresponde con la demanda de
recursos humanos, con la preparación necesaria, que demanda la industria
nacional.
Fundamentos
Teóricos
E
n
e
s
t
e
c
a
p
ít
2. Fundamentos Teóricos.
2.1 Cinemática de Manipuladores Robóticos.
La cinemática es el estudio del movimiento sin tomar en cuenta las fuerzas que lo
producen; esta estudia la posición, la velocidad y la aceleración del sistema [22].
De esta forma, la cinemática de un manipulador robótico describe la relación entre
el movimiento de las articulaciones del manipulador y el movimiento resultante de
los cuerpos rígidos que conforman al robot [19]. Esta comprende dos problemas:
El primero consiste en determinar la posición y orientación del efector final del
manipulador, derivada de un cambio en la configuración del sistema de eslabones
que conforman la cadena cinemática de este (Cinemática Directa) y el segundo
problema consiste en definir los valores de las posiciones de las articulaciones,
para que la configuración del sistema resulte en una orientación y posición
deseadas del efector final, dentro de su espacio de trabajo (Cinemática Inversa).
Para plantear y dar solución al modelo cinemático del sistema, es necesario
establecer una relación geométrica entre los elementos que conforman la cadena
cinemática. Para lo cual, se propone la asignación de sistemas de coordenadas
que sirvan como referencia para poder establecer dicha relación. Es entonces
necesario representar, mediante el uso de expresiones matemáticas, la
orientación y posición relativa entre sistemas de coordenadas asignados a los
elementos del manipulador.
2.1.1 Representación de la Orientación entre Sistemas de Coordenadas.
Para poder representar la orientación de un sistema de coordenadas móvil, con
respecto a otro sistema de referencia, se emplean matrices de rotación.
Básicamente, estas representan las proyecciones de los vectores unitarios de un
sistema móvil, en un sistema fijo.
2.1.1.1 Matrices de Rotación. La matriz de rotación en su forma general es la siguiente:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⋅⋅⋅⋅⋅⋅⋅⋅⋅
=
wzvzuz
wyvyuy
wxvxux
kkjkikkjjjijkijiii
Rˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ
Entonces, si tenemos dos sistemas de coordenadas que coinciden en su origen y
su orientación, tal como se ve en la figura 2.1, la matriz de rotación
correspondiente que represente la orientación del sistema de coordenadas
OUVW, respecto del sistema de coordenadas OXYZ, es:
3
100010001
IR =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
O
X,U
Y, V
Z,W
uixi ˆ,ˆ
vjyj ˆ,ˆwz kk ˆ,ˆ
......................(2.1)
......................(2.2)
Figura 2.1.- Representación de sistemas de coordenadas.
Lo cual es fácil de comprobar, ya que debido a que ambos sistemas son
ortonormales y coinciden en su orientación, los vectores unitarios xi e ui son
vectores paralelos, para los que, por definición, el producto punto entre ellos es 1;
mientras que ui es normal a yj y zk , cuyo producto punto es cero. Cumpliéndose
lo anterior para las demás relaciones.
En segunda instancia tenemos el sistema de coordenadas móvil OUVW, que
puede ser rotado alrededor de cualquiera de los ejes del sistema de coordenadas
OXYZ, como se ve en la figura 2.2.
O
X,U
Y
Z
uixi ˆ,ˆ
kw
w v
jvO
X
Y, V
Z
jyj ˆ,ˆ
w
u
O
X
Y
Z,W
wz kk ˆ,ˆ
u
v
(a) (b) (c)
Figura 2.2.- (a) Rotación alrededor del eje X, ∝ grados; (b) rotación alrededor del eje Y, ϕ grados; (c) rotación alrededor del eje Z θ grados.
Entonces, para determinar la matriz de rotación que represente la orientación para
el caso que ilustra la figura 2.2(a), partiremos del hecho que ui es paralelo a xi y
tienen el mismo sentido, por lo que, siendo sistemas ortonormales, ui no tiene
proyección en los vectores unitarios yj y zk ; en tanto que, vj y wk siguen siendo
normales a xi , pero ambos tienen proyección en yj y zk . La matriz de rotación
R3, que representa la orientación resultante de una rotación respecto al eje X, α
grados es:
(2.3) . . . . . . . . . . .. . . . . . . . . . . . . . cos0
cos0001
,
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−=
ααααα
sensenRx
haciendo ahora un análisis similar para los casos de las figuras 2.2(b) y (c),
obtenemos:
(2.4) . . . . . . . . . . .. . . . . . . . . . . . . . cos0
0100cos
,
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=
ϕϕ
ϕϕ
ϕ
sen
senRy
(2.5) . . . . . . . . . . .. . . . . . . . . . . . . . 1000cos0cos
,
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −= θθ
θθ
θ sensen
Rz
Supóngase ahora que es necesario conocer el nuevo vector de posición de un
punto cuyas coordenadas están descritas en el sistema de coordenadas móvil
OUVW y el punto es auvw, con respecto al sistema de coordenadas de referencia
OXYZ. Una vez que el sistema móvil ha sido afectado por una rotación alrededor
del eje Y, por ejemplo 25°. El nuevo vector perteneciente al punto axyz, estaría
dado por:
si auvw = [3,2,5]T
axyz estará dado por:
axyz = [ R ] [auvw]
axyz = ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
°°−
°°
3.2637 2.0000 4.8320
523
25cos02501025025cos
sen
sen
En un sistema real, la orientación final de un sistema de coordenadas móvil no
estará dada por una simple rotación 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. También
estará en función de rotaciones alrededor de los ejes UVW del sistema móvil, de
manera tal que se obtiene una matriz resultante. La cual estará dada de acuerdo a
la siguiente convención, descrita en [9],[15],[19]:
Partiendo del hecho que, en un principio ambos sistemas de coordenadas
coinciden en el origen y en su orientación, condición que está descrita por una
matriz 3I , a partir de esta y de acuerdo a la secuencia de rotaciones que afecten
al sistema, habrán de ordenarse de manera tal que: las rotaciones respecto a XYZ
se escribirán a la izquierda de la matriz 3I , en tanto que las rotaciones respecto a
UVW, se escriben a la derecha de esta, obteniéndose así la secuencia correcta de
multiplicación para la obtención de la matriz resultante, tal como se ilustra en la
figura 2.3.
3 I = R Rotaciones y/o traslaciones respecto a XYZ
Rotaciones y/o traslaciones respecto a UVW
Figura 2.3.- Obtención de la matriz de rotación resultante.
Para ilustrar el procedimiento anterior, habrá de obtenerse enseguida la matriz de
rotación resultante para la siguiente secuencia de rotaciones: Rx,30°; Ry,45°; Rw,10°;
Ru,-35°; estaría dada por:
R = Ry,45° Rx,30° 3I Rw,10° Rv,-35°
=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
− 4504501045045
cs
sc
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
3030030300
001
cssc
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100010001
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −
1000101001010
cssc
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−−
)35()35(0)35()35(0
001
cssc
como multiplicar por 3I es multiplicar por 1, entonces:
=⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
− 4504501045045
cs
sc
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
3030030300
001
cssc
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −
1000101001010
cssc
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−−
)35()35(0)35()35(0
001
cssc
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
0.7718 0.0346 0.6350- 0.0796 0.9854 0.1504 0.6309 0.1666- 0.7578
R
Puede ahora calcularse también el nuevo punto axyz para el punto dado auvw, de la
manera en que se explicó anteriormente:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
2.02302.82005.0946
523
0.7718 0.0346 0.6350- 0.0796 0.9854 0.1504 0.6309 0.1666- 0.7578
xyza
Ahora bien, si es necesario calcular el vector de posición de un punto dado en
coordenadas para XYZ con respecto al sistema móvil UVW a partir de la solución
encontrada, puede hacerse de la siguiente manera:
[ ] [ ]xyzT
uvw bRb =
si xyzb es [5,3,2]T, el nuevo punto uvwb estará dado por:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
4.93692.19232.9700
235
0.7718 0.0346 0.6350- 0.0796 0.9854 0.1504 0.6309 0.1666- 0.7578 T
uvwb
2.1.1.2 Otros Métodos para Representar la Orientación de Sistemas de Coordenadas.
Otra forma popular de especificar la orientación entre sistemas de coordenadas,
es haciendo uso de los ángulos de Euler. Estos describen cualquier posible
orientación en términos de una rotación con respecto del eje Z, seguida por una
rotación respecto al nuevo eje rotado Y y por último, seguida por una rotación
respecto al nuevo eje rotado Z [9].
Representando lo anterior como:
Euler(φ,θ,ψ) = Rz,φ Ry,θ Rz,ψ
La orientación entre sistemas de coordenadas puede definirse también haciendo
uso de cuaterniones.
Los cuaterniones generalizan a los números complejos y pueden ser utilizados
para representar rotaciones, de la misma manera en que los números complejos,
en el circulo unitario, se usan para representar rotaciones planas [9], [19] y [23].
Formalmente un cuaternion es un número hipercomplejo de la siguiente forma
[24], [28], [29], [30]:
kqjqiqqQ ˆˆˆ 3210 +++= ...................................(2.6)
donde:
0q = componente escalar de Q , y
q = ( 321 ,, qqq ) = componente vectorial
por lo que es común que Q se escriba también como:
( )qqQ ˆ,0= ...................................(2.7)
De aquí podemos anticipar que, al momento de realizar operaciones con
cuaterniones, podemos estar manipulando operadores de traslación y de rotación
que pudiesen afectar al sistema móvil.
Para mayor información al respecto del tema, se recomienda la lectura de
[24],[25],[26] y [27].
2.1.2 Matrices de Transformación Homogénea.
Para poder describir completamente la relación espacial entre sistemas de
coordenadas, es necesario incluir también dentro de la representación, un
componente que relacione el vector de posición entre los orígenes de los sistemas
de coordenadas, ya que es común que el sistema móvil se encuentre descentrado
respecto al sistema de referencia.
Como una matriz de rotación 3 x 3 no nos da ninguna posibilidad para incluir la
traslación y el escalado, se introduce un cuarto componente al vector de posición
( )Tzyx pppP ,,= en un espacio tridimensional, que lo transforma en
( )Tzyx wwpwpwpP ,,,ˆ = , entonces decimos que el vector P está representado en
coordenadas homogéneas, pues se le ha incluido un componente de escala w
[9],[19].
El concepto de una representación homogénea en un espacio euclidiano
tridimensional, es útil para desarrollar transformaciones matriciales que incluyen:
rotación, traslación, escalado y perspectiva [15].
Entonces, una matriz de transformación homogénea, puede considerarse como
que está conformada por cuatro submatrices, como se ilustra el la figura 2.4:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
EscalaaPerspectivdeciónTransformaPosiciónRotación
dedeVectorMatriz
EP
PRT
xx
xx
1131
1333
Figura 2.4.- Matriz de transformación homogénea.
en donde:
• • La matriz de rotación representa la orientación del sistema de
coordenadas del sistema móvil, con respecto del sistema de referencia.
• • El vector de posición representa el descentramiento entre los orígenes
de los sistemas de coordenadas.
• • La matriz de perspectiva se refiere a la perspectiva de análisis, que para
el caso de la robótica es siempre [0 0 0].
• • El factor de escala, que nos indica el escalado de la magnitud del vector
de posición, que para el caso de la robótica es [1].
Por lo que podemos escribir ahora, la matriz de transformación homogénea en su
forma general:
)8.2(
1000
ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ
ΛΛΛΛΛ
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅⋅⋅⋅⋅⋅⋅⋅⋅
=zwzvzuz
ywyvyuy
xwxvxux
pkkjkikpkjjjijpkijiii
T
de donde se pueden derivar fácilmente las matrices básicas de rotación
homogénea que se ilustran en la figura 2.5.
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡−
=
100000000001
, αααα
α cssc
Tx
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−=
100000001000
, φφ
φφ
φ cs
sc
Ty
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ −
=
100001000000
,
φφφθ
θ
cssc
Tz
Figura 2.5.- Matrices de Básicas de Rotación Homogéneas
Así como también la matriz de traslación homogénea básica, 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, según
sea el caso.
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
∆∆∆
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
∆∆∆
=
1000000000000
ó
1000000000000
wvu
zyx
Ttr
Figura 2.6.- Matriz de Traslación Homogénea Básica.
Generalizando ahora lo antes dicho para el caso de las matrices de rotación, una
matriz de transformación homogénea resultante no estará dada únicamente por
operaciones unitarias de rotación y/o traslación, sino por una secuencia de estas,
por lo que, para obtener la matriz de transformación homogénea resultante,
aplicaremos la misma metodología que para el caso de matrices de rotación R3.
De manera tal que:
4 I = T Rotaciones y/o traslaciones respecto a XYZ
Rotaciones y/o traslaciones respecto a UVW
Tomando ahora como base a I4, ya que representa la condición inicial en la que
ambos sistemas de coordenadas, móvil y referencia, coinciden en su posición y
orientación.
2.1.3 Asignación de Sistemas de Coordenadas a Manipuladores Robóticos (Parametrización de Manipuladores Robóticos)
Para poder aplicar las herramientas antes descritas en el estudio de
manipuladores robóticos, es necesario asignar sistemas de coordenadas a los
componentes básicos de un robot, i.e. eslabones y articulaciones. Esto es con la
finalidad de describir la relación espacial entre estos elementos, por medio de la
obtención de una matriz de transformación homogénea que relacione al sistema
de coordenadas asignado al efector final, con el sistema de coordenadas de
referencia fijo en la base del manipulador; matriz comúnmente conocida como,
matriz de robot.
La localización de los sistemas de coordenadas que permitan la obtención de
parámetros cinemáticos de un manipulador serán en: la base del robot, las
articulaciones y el efector final.
Con el propósito de que se estableciera una metodología estándar para la
asignación de sistemas de coordenadas, y por consiguiente, en la obtención de las
matrices de transformación homogénea que describen la cinemática del
manipulador, se ha aceptado la representación de Denavit y Hartenberg como lo
establecen [9], [14], [15] y [19].
2.1.4 Representación de Denavit y Hartenberg.
Para poder describir la relación traslacional y rotacional entre los elementos de
una cadena cinemática, Denavit y Hartenberg propusieron, en 1955, un método
matricial para establecer de forma sistemática un sistema de coordenadas ligado
al cuerpo para cada elemento de una cadena articulada [15].
La representación de Denavit y Hartenberg ha dado lugar a dos metodologías para
la asignación de los sistemas de coordenadas; cada una de ellas permite ciertas
libertades en el establecimiento de estos sistemas de coordenadas [16], [22].
Estándar
Modificada Figura 2.7 Diferentes convenciones para la asignación
de sistemas de coordenadas
En la primera, el sistema de coordenadas i tiene su origen a lo largo del eje de la
articulación 1+i , como lo describe Lee [15]. En la segunda, el sistema de
coordenadas i tiene su origen a lo largo de la articulación i . Esta segunda
convención es frecuentemente referida como “convención modificada de Denavit y
Hartenberg”, como lo describe Craig [17]. La figura 2.7 muestra la diferencia entre
ambas convenciones.
La convención que a lo largo de este trabajo se utiliza corresponde a aquella
descrita por Lee [15], que es la que se emplea de manera común [9], [14], [19],
[22]. Y que llevada al área de manipuladores robóticos es como sigue [16]:
1. 1. Se lleva al manipulador a una posición 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 articulación y n para la última; donde n = número de grados de
libertad.
4. 4. Los sistemas de coordenadas se asignarán en donde se intersecan el
eslabón 1−i con la articulación i con base en lo siguiente:
a. a. Los ejes Z estarán ubicados a lo largo del eje de movimiento de
la articulación. Para el caso de articulaciones de revolución será a lo
largo del eje de rotación; en tanto que para las articulaciones
prismáticas, 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 línea con la orientación del brazo de robot; numerando a este
sistema de coordenadas como sistema cero.
c. c.Los ejes ix se asignarán de manera tal que estos sean normales a
los ejes 1−iz .
d. d. Los ejes iy complementarán los sistemas de coordenadas para
formar sistemas dextrógiros.
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 orientación del
sistema de coordenadas 1−n .
f. f. Se identifica el sentido positivo en el desplazamiento de las
articulaciones, de acuerdo a la regla de la mano derecha.
Un eslabón puede ser considerado como un cuerpo rígido, el cual puede ser
descrito por dos parámetros, la longitud del eslabón y el giro del eslabón. Estos
parámetros definen la localización relativa de los ejes de articulaciones vecinas en
el espacio.
Asimismo, las articulaciones pueden ser descritas también por dos parámetros, el
descentramiento del eslabón, que es la distancia de un eslabón a otro próximo, a
lo largo del eje de la articulación; y el ángulo de la articulación, que es la rotación
de un eslabón con respecto al próximo, alrededor del eje de la articulación.
La representación de Denavit y Hartenberg de un cuerpo rígido depende entonces,
de cuatro parámetros geométricos asociados a cada elemento, estos describen
completamente la relación espacial entre sistemas de coordenadas. Estos
parámetros pueden resumirse como:
• • Longitud del eslabón ia : distancia desde el origen del sistema de
coordenadas i hasta la intersección de los ejes ix y 1−iz , a lo largo del
eje ix ;
• • Giro del eslabón iα : ángulo formado entre el eje 1−iz al eje iz alrededor
del eje ix ;
• • Descentramiento del eslabón id : distancia desde el origen del sistema
de coordenadas 1−i hasta la intersección de los ejes ix y 1−iz , a lo largo
del eje 1−iz .
• • Ángulo de la articulación iθ : ángulo de la articulación del eje 1−ix al eje
ix respecto al eje 1−iz .
De esta forma, para una articulación de revolución, id , ia y iα son los parámetros
de la articulación y permanecen constantes, mientras que iθ es la variable de la
articulación. Para una articulación prismática, la variable será id .
1 − i z
1 − i z
1 − i y
1 − i y 1 − i x
i d
i a
iz
iy
ix
1 − i z
ix
1−ix i θ
1 − i z
iz
i x iα
Figura 2.8 Parámetros de D-H.
De acuerdo con [15], [17] y [22], la representación de D-H resulta en una matriz de
transformación homogénea 4 x 4, i-1Ai:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡−
−
=−
1000cossen0
sensencoscoscossencossensencossencos
1
iii
iiiiiii
iiiiiii
ii
daa
Aαα
θαθαθθθαθαθθ
que describe la relación entre el sistema de coordenadas de cada eslabón con
respecto al sistema de coordenadas previo [22],
ii
ii ATT 11
00 −−=
donde iT0es la transformación homogénea que describe la posición del sistema de
coordenadas i con respecto al sistema de coordenadas de la base.
De manera tal que si tenemos un robot con 3 grados de libertad, la matriz 30T
estará dada por:
32
21
10
30 AAAT =
La matriz de transformación homogénea [T]= nT0, que especifica la posición y
orientación del efector final del manipulador con respecto al sistema de
coordenadas de la base, es tan frecuentemente utilizada en la cinemática de los
manipuladores robóticos que se conoce como “matriz del robot”, y es común
escribir la siguiente forma:
...............(2.9)
..........................(2.10)
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
1000zzzz
yyyy
xxxx
pasnpasnpasn
T
donde [n,s,a] nos representa la orientación del sistema de coordenadas del efector
final con respecto al sistema de coordenadas de la base y [p] la posición de este
con respecto a la base. De esta matriz se obtienen las ecuaciones de diseño del
manipulador, las cuales sirven como base para la solución a la cinemática inversa.
2.2 Dinámica de Manipuladores Robóticos.
La dinámica es la rama de la mecánica que trata el movimiento de los cuerpos
bajo la acción de fuerzas. Esta incluye a la cinemática, que es el estudio del
movimiento sin tomar en cuenta las causas que lo producen, y la cinética, 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 definición, el
comportamiento dinámico de un manipulador robótico es descrito en términos de
la relación de tiempo con el de cambio de la configuración del brazo y con el
torque dado por sus actuadores.
La dinámica del robot trata con las formulaciones matemáticas de las ecuaciones
de movimiento del brazo, estableciendo un conjunto de ecuaciones que describen
su comportamiento dinámico. Estas ecuaciones son útiles para la simulación en
computadora del movimiento del robot, el diseño de leyes de control adecuadas y
para la evaluación del diseño y estructura del brazo [15].
La mayoría de los manipuladores robóticos son animados por actuadores
eléctricos, pneumáticos o hidráulicos, 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
aplicación de dichas fuerzas.
El modelo dinámico del robot se puede obtener a partir de leyes físicas conocidas,
tales como la mecánica newtoniana y lagrangiana, estas conducen al desarrollo de
ecuaciones de movimiento dinámico para las diversas articulaciones del
manipulador, en términos de los parámetros geométricos e inerciales de los
elementos.
De manera similar al caso de la cinemática, la dinámica de un manipulador
comprende el análisis de dos problemas: el problema de la dinámica 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 dinámica
inversa es modelada de manera exacta, el controlador podrá predecir el torque
adicional requerido para seguir una trayectoria durante la aceleración y/o
desaceleración. Con dicho controlador, el robot puede incrementar la velocidad en
el efector final y, por tanto, reducir el tiempo para la ejecución de una tarea.
Un segundo problema, de importancia en estudios de simulación, es el problema
de la dinámica 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 dinámico,
derivado del movimiento; torque estático, debido a la fricción en el mecanismo, los
torques por gravedad, derivados por la acción de la gravedad sobre cada eslabón,
y fuerzas y torques externos que actúan en el efector final. Tres tipos de torques
dinámicos se derivan del movimiento del manipulador: inercial, centrípeto y de
Coriolis [9].
• Torque inercial que, de acuerdo a la segunda ley de Newton, es
proporcional a la aceleración de la articulación, 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 centrípeto, se deriva de las fuerzas centrípetas 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 articulación.
• Torque de Coriolis derivado de las fuerzas de vórtice generadas por la
interacción de dos eslabones rotantes, siendo estas proporcionales al
producto de las velocidades angulares de dichos eslabones, debido al
movimiento relativo entre estos.
Las leyes básicas de la dinámica del manipulador pueden obtenerse a partir de las
leyes de Newton en conjunto con conceptos como el principio del trabajo virtual de
D’Alembert, ecuaciones de Lagrange, y ecuaciones de Hamilton [15], [17]. En la
robótica, las dos formulaciones que comúnmente se tratan son: la formulación de
Newton-Euler, y la formulación de Lagrange [9].
La dinámica de un manipulador robótico se describe por medio de un conjunto de
ecuaciones diferenciales ordinarias no lineales de segundo orden, que dependen
de las propiedades cinemáticas e inerciales del robot.
Para la solución a la dinámica del manipulador habremos de basarnos en la
derivación Lagrangiana de la dinámica. Esta técnica tiene la ventaja de requerir
únicamente de las energías cinéticas y potenciales del sistema para su cálculo.
2.2.1 Formulación de Básica.
Si se considera un sistema de n partículas que obedecen la segunda ley de
Newton, en la que la razón de cambio en el momento de una partícula es igual a la
fuerza aplicada a esta. Siendo iF la fuerza aplicada en la i -ésima partícula, im la
masa de esta y ir su vector de posición, entonces la segunda ley de Newton se
escribe como:
nirmF iii ,...,2,1 == && . . . . . . . . . . . . (2.11)
pero, ya que el interés de este estudio no es sobre una partícula independiente,
sino sobre un conjunto de partículas que están fijas a otras y tienen grados de
libertad limitados [19]. Es entonces, necesario describir estas interconexiones
introduciendo restricciones entre las posiciones de las partículas. Cada restricción
es representada por una función jg :
nesrestricciodeno.
,...,1 0),,( 1
=
==
k
kjrrg nj Κ
..................... (2.12)
Una restricción que puede ser escrita en esta forma, como una relación algebraica
entre las posiciones de las partículas, es conocida como restricción holonómica
[19], [20].
Una restricción actúa en un sistema por la acción de una fuerza de restricción,
dicha fuerza es determinada de manera tal que la ecuación de restricción (2.12) es
siempre satisfecha. Si vemos a las restricciones como una superficie plana, las
fuerzas de restricción 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 dinámico dado por (2.11) puede ser reescrito cómo una ecuación vectorial
de la siguiente manera:
∑=
Γ+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
k
jjj
nn r
r
Im
ImF
1
11
0
0λΜ
&&Ο
. . . . . . . . . .. . . . (2.13)
donde los vectores 1Γ ,..., nΓ son las bases para las fuerzas de restricción, 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
ecuación (2.13), jΓ puede tomarse como el gradiente de jg , que es perpendicular
al nivel establecido por 0)( =rg j .
Los escalares 1λ ,..., nλ son conocidos como los multiplicadores de Lagrange, cuyos
valores dan únicamente magnitudes relativas de las fuerzas de restricción, 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 cómputo, ya que es necesario mantener la
atención en el estado de todas las partículas en el sistema, aún cuando estas no
sean capaces de movimiento independiente [19].
Un acercamiento más atractivo consiste en describir el movimiento del sistema en
términos de un conjunto más pequeño de variables, que describan completamente
la configuración del sistema [20]. Para un sistema de n partículas con k
restricciones, se busca obtener un conjunto de knm −= 3 variables, nqq ,...,1 , y
funciones de igualdad nff ,...,1 , de manera que:
( )kj
rrgni
qqfr njnii
,...,10,...,
,...,1
),...,( 11
==
⇔=
=
Siendo las sqi ' el conjunto de coordenadas generalizadas para el sistema. En un
manipulador robótico compuesto por eslabones rígidos, estas coordenadas
generalizadas corresponden a las variables de las articulaciones, siendo:
⎩⎨⎧
= sprismática onesarticulaci para
revolución de onesarticulaci para
i
ii d
qθ
Dado que los valores de las coordenadas generalizadas son suficientes para
especificar la posición de las partículas que conforman al robot, podemos
reescribir las ecuaciones de movimiento del sistema en términos de éstas, para
componentes en coordenadas generalizadas se hace referencia a estas fuerzas
como fuerzas generalizadas [16].
2.2.2 Formulación de Lagrange.
La dinámica lagrangiana se basa en la determinación de la energía contenida en
el sistema [21], definiendo al Lagrangiano L como la diferencia entre la energía
cinética y la energía potencial, de manera tal, que las ecuaciones para un sistema
mecánico expresado en coordenadas generalizadas iq , están dadas por:
niqL
qL
dtd
iii
,...,2,1 ==∂∂
−⎟⎟⎠
⎞⎜⎜⎝
⎛∂∂ τ& ........(2.14)
donde:
L = Función Lagrangiana = energía cinética K – energía potencial P,
qi = Coordenada generalizada del brazo
τi = Fuerza o par generalizado aplicado al sistema en la articulación.
Por lo que es necesaria la comprensión de la matriz de transformación de
coordenadas homogéneas ii A1−
, que describe la relación espacial entre los
sistemas de coordenadas del i -ésimo elemento con el )1( −i -ésimo elemento.
Relacionando un punto fijado en el elemento i, expresado en coordenadas
homogéneas, con respecto al sistema de coordenadas i-ésimo en el sistema
de coordenadas (i-1)-ésimo [15].
Nótese que si no hay restricciones en el sistema, entonces se puede hacer a
q componente de r , resultando en 2
21
ii rmK &∑=, así la ecuación (2.14) se
reduce a la ecuación (2.11). De hecho, reordenando la ecuación (2.14), se
puede representar como:
τ+∂∂
=∂∂
qL
qL
dtd
& . . . . . . . . . . . . . . . . . .(2.15)
Que es un replanteamiento de la ley de Newton en coordenadas generalizadas
[19].
2.2.2.1 Dinámica 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 término de velocidad
lineal en la ecuación de la energía cinética sea cero, en tanto que la energía
potencial del eslabón permanece constante.
Figura 2.9 Manipulador de dos grados de libertad.
Par efectos de ilustrar la derivación de las ecuaciones dinámicas de Lagrange, se
modelarán a los eslabones como elementos unifilares con concentración de masa
(m) en el extremo distal de estos. Ya que la energía cinética es independiente del
sistema de coordenadas en el cual se evalúa, el cálculo de la energía cinética,
debida a la velocidad angular, se hace en el sistema de coordenadas del eslabón,
de esta manera, el tensor de inercia no tiene que ser transformado al sistema de
coordenadas de la base.
Partiendo de la matriz 20T que corresponde a la solución a la cinemática directa de
este manipulador, se obtienen las expresiones para determinar las velocidades del
sistema, como se muestra a continuación:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
+−−
−
=
10000
22122
21212121
21212121
20
SldCSCSlCSSCSCClSSCCC
T
y como 010 =V , se puede derivar fácilmente el vector de posición en la matriz
anterior para obtener
2
22
221121
221121
20 l
CSSCCSCCS
V⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−−−
=θ
θθθθ
&&&&&
las velocidades angulares
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
0
0
101 θω &
y
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−+
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
2
12
12
122
22
2
02
0
0
10000
00
θθθ
θθ
ω&&&
&&
SC
CSSC
se calcula ahora la energía cinética para cada eslabón mediante:
021 2
11 == θ&mK
ya que el eje de rotación pasa a través del centro de masa, entonces
22
21
22
21
22
21
222
02
022
022
02
22
022
21
21 θθθθθωωωω &&&&& +=++==∴+= CSmVmK T
como el eje de rotación pasa a través del centro de masa (siendo la velocidad
angular expresada en el sistema de coordenadas de la articulación), la inercia no
tiene contribución en la energía cinética de sistema (cuando este no es el caso, el
segundo término existe y es de la forma ⎥⎦⎤
⎢⎣⎡+ TJ 0
220
2
21 ωω
).
( ) ( )[ ][ ] [ ]
22
22
21
22
22
22
22
22
21
22
21
22
21
22
21
22
21
22
22
22
2221121
2221121
222
02
022
0
θθ
θθ
θθθθθ
lCl
CSSSClCCCSl
CSSCCSCCSlVVV T
+=
++++=
+−+−−== &&&&&
entonces:
( )22
21
22
2222 2
1 θθ && += ClmK
y las energías potenciales para cada eslabón están dadas como:
( )22122
111
SllgmPglmP
+==
por lo que el Lagrangiano del manipulador es:
( ) ( )
( ) ( )22121122
21
22
222
2121
210 SllgmglmClm
PPKKL
+−−++=
+−+=
θθ &&
de donde se obtienen los siguientes componentes correspondientes a la
formulación dinámica de Lagrange.
( )2122122
222
1
1
122
222
21
22
222
11
2
0
21
θθθθ
θ
θθθθ
&&&&&
&&&&
SCClmLdtd
L
ClmClmL
−=⎟⎟⎠
⎞⎜⎜⎝
⎛∂∂
=∂∂
=⎟⎠⎞
⎜⎝⎛
∂∂
=∂∂
y
2222
2
2222
122222
2222
122
222
22
1222
22
222
22
2121
θθ
θ
θθθ
θθθθ
&&&
&
&
&&&&
lmLdtd
CglmCSlm
SglmClmL
lmlmL
=⎟⎟⎠
⎞⎜⎜⎝
⎛∂∂
−−=
⎥⎦⎤
⎢⎣⎡ −
∂∂
=∂∂
=⎟⎠⎞
⎜⎝⎛
∂∂
=∂∂
lo que determina las ecuaciones de los torques a partir de la formulación de
Lagrange, como:
21222221
22
222
111 2 θθθ
θθτ &&&& SClmClmLL
dtd
−=∂∂
−⎟⎟⎠
⎞⎜⎜⎝
⎛∂∂
=
2222
1222222
222
222 CglmCSlmlmLL
dtd
++=∂∂
−⎟⎟⎠
⎞⎜⎜⎝
⎛∂∂
= θθθθ
τ &&&
que son las ecuaciones diferenciales que gobiernan el movimiento del
manipulador, expresando lo anterior en notación matricial:
⎥⎦
⎤⎢⎣
⎡+⎥
⎦
⎤⎢⎣
⎡−⎥
⎦
⎤⎢⎣
⎡+⎥
⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡
22221
22222
21
22
222
2
1222
222
1 00
20
100
ClmSC
lmCS
lmC
lm θθθθθ
ττ &&&
&&&&
que de forma general puede escribirse como [15], [17]:
( ) ( ) ( )θθθθθθθτ &&&&& ,, NCM ++= . . ...... . . . .. . ............. (2.16)
2.3 Control de Manipuladores Robóticos.
El primer paso cuando se diseña un sistema de control es el determinar la función
de transferencia, o modelo de la planta del proceso que se trata de controlar. Un
modelo estático de la planta describe la salida como función de la entrada,
excluyendo los efectos dinámicos. En un sistema lineal, un modelo estático es la
relación de la salida con respecto de la entrada. Por ejemplo, la relación de
revoluciones a la salida de una caja de engranes que es constante. La mayoría de
los sistemas físicos son lineales únicamente dentro de un rango de las variables
[31], razón por la cual se diseñan 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 estático es una función no lineal para una o más
variables [32].
Por otra parte, las funciones de transferencia son modelos de planta que incluyen
tanto los efectos dinámicos del sistema, como la relación estática entre la entrada
y la salida. Dichos efectos hacen que la relación entre la entrada y la salida varíen
durante la transición de un estado a otro. El principal efecto dinámico, 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 perturbación no
deseada. Una entrada que varia de manera continua, como la senoidal, es usada
para medir la función de transferencia. La mayoría de las entradas a un sistema
son del tipo rampa, las cuales varían en un rango fijo [33].
Los efectos dinámicos dependen de la frecuencia y no solo retrazan el cambio en
la salida en respuesta de la excitación presente en la entrada, sino también,
limitan el rango en el cual la salida puede responder. Este límite es conocido como
relación de desviación (figura 2.11) del sistema. Si la rampa es más rápida que la
relación de desviación, 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
mínimo.
Figura 2.11 Error de seguimiento debido al efecto dinámico
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 fricción (f) por un cable de constante
elástica (k) (Figura 2.12), el modelo dinámico para este sistema puede derivarse
de la segunda ley de Newton. Cuando un vector F(t) es aplicado, una fuerza de
reacción, compuesta por una fuerza inercial proporcional a la aceleración de la
masa, una fuerza de fricción proporcional a la velocidad de la masa y una fuerza
elástica proporcional a la tensión del cable, deben ser consideradas.
Figura 2.12 Sistema masa-resorte-amortiguador.
)(tFxkxfxm =++ &&&& . . . . . . . . . . . . . . . . . . . . (2.17)
La función de transferencia es la relación entre la transformada de Laplace de la
salida y la transformada de Laplace de la entrada.
))((11)( 2 bSaSkfSmS
sGentradasalida
++=
++==
. . . . . . . . . . (2.18)
El polinomio en el denominador, cuando este se iguala a cero, se conoce como
ecuación característica, dado que las raíces de esta ecuación caracterizan el
tiempo de respuesta del sistema. Las raices de esta ecuación 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 robótica, funciones de transferencia son requeridas para los eslabones y los
actuadores. Por ejemplo, un eslabón puede ser modelado como un péndulo con la
masa concentrada en el extremo distal de este. El torque aplicado a la flecha de la
articulación es entonces, función de la inercia, la fricción en la articulación y la
gravedad.
θθθτ mglfm ++= &&& . . . . . . . . . . . . . . . . . . . . (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 aceleración del actuador, que en este caso es un
motor de c.d., se presentan las técnicas 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 dinámico tiene que
considerar el efecto de la inductancia en la armadura y la carga por inercia
(incluyendo la inercia de la armadura, y la fricción). Como la corriente en la
armadura es constante, no existe efecto dinámico en el campo. La corriente en la
armadura )(I es función del voltaje aplicado )(V , la resistencia de la armadura
)( aR , la inductancia de la armadura )(L y la fuerza electromotriz en retorno )(E .
( ) )()()( sEsILSRsV a ++= . . . . . . . . . . . . . . . . . . . . (2.20)
El torque ( )aτ , producido por el motor, es función de la fuerza del campo ( )φ y de
la corriente de la armadura.
)()()( sIKsIKs maa == φτ . . . . . . . . . . . . . . . . . . . . (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 fricción.
)()( sfsJSL ϖωτ += . . . . . . . . . . . . . . . . . . . . (2.22)
La rotación de la armadura produce una fuerza electromotriz de retorno que es
proporcional a la velocidad de esta )(ω .
)()()( sKsKsE ma ϖφϖ == . . . . . . . . . . . . . . . . . . . . (2.23)
Entre más grande sea la carga, más 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 función de transferencia del motor, se obtiene:
( )( ) ( )[ ]21
ma
m
KFJSLSRSK
V +++=
θ
. . . . . . . . . . . . . . . . (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 posición
de este, se utiliza una función de transferencia de corriente a torque.
))(())((
2 FJSLSRKFJSLSRK
I am
am
+++++
=τ
. . . . . . . . . . . . . (2.25)
La técnica 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 día, dos tipos de amplificadores son utilizados, el amplificador de potencia
de c.d. y amplificadores con modulación por ancho de pulso (PWM por sus siglas
en inglés).
El amplificador de potencia de c.d. magnifica un pequeño 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 analógicos. La ganancia en voltaje es normalmente
pequeña, pero la ganancia en potencia puede ser muy grande. De esta forma, la
corriente de salida es función de la resistencia de la carga. Estos amplificadores
usualmente incluyen una retroalimentación interna, de manera tal que poseen una
función de transferencia lineal en voltaje, así que estos pueden ser modelados
como una ganancia constante.
0 == ai
KVV
ganancia del amplificador
El segundo tipo de amplificador es el que utiliza la modulación 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.
⎟⎟⎠
⎞⎜⎜⎝
⎛+
=21
11 tt
tVVpromedio
. . . . . . . . . . . . . . . . . . . . (2.26)
Este tipo de amplificadores presentan dos ventajas: control electrónico sencillo y
buen desempeño en operación a bajo voltaje. El control electrónico puede ser
simplificado mediante interruptores de energía (transistores) con la temporización
hecha por programación. 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 fricción
estática. Como la modulación 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 modulación 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 también se modela como uno con ganancia constante.
No obstante, si un control electrónico simple es usado, una retroalimentación 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 dinámica 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 eslabón es acelerado, el actuador habrá de proveer el torque
necesario para contrarrestar la inercia. Si el robot utiliza únicamente control de
retroalimentación de posición o velocidad, la dinámica del sistema provocará que
el efector final se atrase con relación a la trayectoria deseada durante la
aceleración 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; críticamente 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 solución a la cinemática inversa para
calcular los ángulos que habrán de posicionar al efector final en la posición y
orientación deseada en el espacio. Las articulaciones se desplazan a esas
posiciones angulares y se asume que el manipulador se encuentra en la posición
cartesiana correcta, si no existe algún elemento que permita cuantificar el
desplazamiento en las articulaciones, no habrá certeza de si el manipulador se
encuentra en la posición 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
mecánicas y/o del entorno, pueden causar errores en la posición del efector final,
pues el modelo de control no es capaz de detectar ni corregir dicho error.
Cuando el resultado de una acción 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
dinámica del sistema. Por ejemplo, cuando un lanzador suelta la pelota, este ya no
tiene más 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 acción tomar sobre la cantidad de energía
en uso, se conoce como control prealimentado o control predictivo. Este tipo de
control se utiliza para realizar ajustes en el sistema si la señal de retroalimentación
esta retrasada y es necesario tomar una acción para mantener la respuesta del
sistema dentro de los límites deseados.
Figura 2.14 Estructura básica de control de posición
Para obtener un modelo de control preciso de la planta durante la ejecución de
una acción, se utiliza el control con retroalimentación. Bajo este modelo de control,
el parámetro a ser controlado es continuamente medido (retroalimentación), y
comparado con una referencia (cálculo del error).
Cuando se controla un manipulador robótico, el control predictivo se usa para
calcular las referencias de las articulaciones a partir del espacio cartesiano,
utilizando la solución a la cinemática inversa. Por otra parte, para controlar una
articulación individual (Fig. 2.14), el control de retroalimentación es utilizado para
comparar el ángulo medido con el ángulo de referencia. Cualquier error entre la
señal de retroalimentación y la de referencia es amplificado para proveer la
energía necesaria al actuador.
2.3.2 Ley de control en lazo abierto de manipuladores robóticos.
Como se acordó anteriormente, la dinámica de un manipulador está descrita por la
ecuación (2.16), en donde [θ ] es el conjunto de variables que definen la
configuración del manipulador y τ representa el torque aplicado en las
articulaciones. Se denota aquí, por medio de dθ , la trayectoria o posición deseada
de la articulación, 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 ( ) ( ) ( ) ( )00 ,00 dd θθθθ && == , entonces,
podemos modelar al torque necesario como:
( ) ( ) ( )ddddddd NCM θθθθθθθτ &&&&& ,, ++= . . . . . . . . . . . . . . (2.27)
Dado que tanto θ como dθ satisfacen la misma ecuación diferencial y tienen las
mismas condiciones iniciales, se puede tomar que ( ) ( )tt dθθ = para toda 0≥t .
Esta estrategia de control no es muy robusta, ya que si ( ) ( )00 dθθ ≠ , entonces la
ley de control en lazo abierto nunca habrá de corregir el error. Esto claramente no
es deseable, pues nunca se sabría con certeza la posición real del robot. Por esta
razón, se introduce la retroalimentación en la ley de control. Esta retro
alimentación 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 posición 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:
( ) ( ) ( )θθθθθθθτ &&&&& ,, NCM d ++= . . . . . . . . . . . . . . . . (2.28)
Al sustituir esta ley de control en la ecuación dinámica del manipulador, se
observa que:
( ) ( ) dMM θθθθ &&&&= . . . . . . . . . . . . . . . . . . . . (2.29)
y dado que ( )θM está completamente definida en ( )θ , tenemos:
dθθ &&&&= . . . . . . . . . . . . . . . . . . . . (2.30)
De aquí, que si la posición y velocidad iniciales del manipulador coinciden con
aquellas deseadas, el manipulador habrá de seguir la trayectoria deseada. Pero
también, esta ley de control no corrige ninguna condición de error que se
encuentre presente, pues aún es una ley de control en lazo abierto.
Las propiedades de esta ley de control pueden mejorarse al incluir un término de
realimentación en ésta, la condición de linealidad (2.30) sugiere la siguiente ley de
control:
( )( ) ( ) ( )θθθθθθθτ &&&&&& ,, NCeKeKM pvd ++−−= . . . . . . . . . (2.31)
donde de θθ −= , y vK y pK son las constantes de ganancia. Al sustituir en la
ecuación (2.28), el error dinámico puede ser escrito como:
( )( ) 0=++ eKeKeM pv &&&θ . . . . . . . . . . . . . . . . . . . . (2.32)
como ( )θM es siempre positivo y definido, se tiene:
0=++ eKeKe pv &&& . . .. . . . . . . . (2.33)
Esta es la ecuación diferencial lineal que gobierna el error entre las trayectorias
real y deseada. La ecuación (2.31) es conocida como la ley de control del torque
calculado [19], que puede ser reescrita como:
( ) ( )( )444 3444 21 &444 3444 21
&&&
fbff
eKeKMNCM pvd
ττ
θθθθτ −−+++=
. . . . . . . . . (2.34)
El término ffτ es el componente de prealimentación 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 término fbτ es el parámetro de retroalimentación, que
provee el torque de corrección para reducir los errores en la trayectoria del
manipulador.
De manera general, en éste capítulo se han presentado los fundamentos básicos
para el modelado matemático de manipuladores robóticos, en lo que corresponde
a la cinemática, dinámica y control de estos. En el siguiente capítulo, se obtiene el
modelo matemático que gobierna el movimiento del manipulador de análisis.
El Manipulador Robótico 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 Descripción del Manipulador Robótico Mitsubishi.
El Mitsubishi Movemaster EX es un robot articulado con cinco grados de libertad,
figura 3.1, con una capacidad de carga máxima de 1.5 Kg. Para que el robot
Mitsubishi realice la secuencia de movimientos es indispensable que estén activos
en la memoria, tanto el archivo de puntos, como el programa, el cual describirá la
secuencia de puntos y la interacción con otros elementos.
Figura 3.1 Robot Mitsubishi Movemaster
Las dimensiones físicas 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
continuación 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 continuación se describen los diversos modos en los que se pueden realizar los
movimientos del robot MITSUBISHI, para facilitar la localización de un punto en
especial.
Modo PTP: este modo permite mover, articulación por articulación,
los elementos del robot para modificar su configuración 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 configuración del brazo, el eje Z, corresponde a un
acercamiento o distanciamiento del objetivo.
3.2 Planteamiento del problema cinemático.
El problema cinemático 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 diseño del manipulador.
3.2.1. Obtención de las ecuaciones de diseño del Manipulador.
Para poder dar solución tanto a la cinemática directa como a la inversa, es
necesario establecer un conjunto de ecuaciones que describan el movimiento del
efector final en el espacio cartesiano, en función de los desplazamientos angulares
o lineales de los eslabones que lo componen. Estas ecuaciones se obtienen de la
convención 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 incógnitas, en donde por lo general, n<12. Estas ecuaciones representan la
posición y orientación del efector final en coordenadas cartesianas, en función de
los desplazamientos de las articulaciones.
Para el manipulador de 5 grados de libertad, siguiendo la metodología descrita en
el capítulo 2, se tiene:
a) a) El manipulador en una posición inicial conveniente para asignar los
sistemas de coordenadas (Figura 3.5).
Figura 3.5 Posición inicial para la asignación de sistemas de coordenadas
b) b) Asignación de los sistemas de coordenadas (Figura 3.6), de donde se
deriva la matriz de parámetros de Denavit-Hartenberg (Tabla 3.1):
Figura 3.6 Sistemas de coordenadas para el robot
Tabla 3.1 Parámetros de D-H
Arti culación θ i α i ai di
1 θ 1 90 0 3002 θ 2 0 250 03 θ 3 0 160 04 θ 4 -90 0 05 θ 5 0 0 72
De la cual se obtienen las matrices de transformación homogénea ii A1−
:
0A1=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1000300010
0000
11
11
θθθθ
CSSC
1A2=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ −
10000100
25002500
222
222
θθθθθθ
SCSCSC
2A3=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ −
10000100
16001600
333
333
θθθθθθ
SCSCSC
3A4=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−
−
100000100000
44
44
θθθθ
CSSC
4A5=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ −
1000721000000
55
55
θθθθ
CSSC
y la matriz de transformación correspondiente al efector final con relación a la base
50T .
0T5=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
+++++−−+−+++−−−−−
100030025016072
2501607225016072
22323423452345234
2123412341234151523415152341
2123412341234151523415152341
SSCCSSCSCSCSSSSSCCSCSSCCCSCCCCSCSCCSSCCSSCCC
donde )cos( 432234 θθθ ++=C y )( 432234 θθθ ++= senS
igualando miembro a miembro con la ecuación (2.10), se tiene:
)1.3...(....................
300250160cos72
cos250cos16072coscos250coscos160cos72
cos
cos
coscoscoscoscos
cos
coscoscoscoscoscos
223234
2123412341
2123412341
234
2341
2341
5234
5152341
5152341
5234
5152341
5152341
⎪⎪⎪⎪⎪⎪⎪⎪⎪
⎭
⎪⎪⎪⎪⎪⎪⎪⎪⎪
⎬
⎫
+++=
++−=++−=
=
−=−=
=
+−=−−=
=
+=−=
θθθ
θθθθθθθθθθθθ
θ
θθθθθθ
θθθθθθθθθ
θθ
θθθθθθθθθθ
sensenp
sensensensenpsenp
a
sensenasenasensens
senCsenssensens
senn
sensennsensenn
z
y
x
z
y
x
z
y
x
z
y
x
Al conjunto de ecuaciones conformado por (3.1) se le conoce como “las
ecuaciones de diseño del manipulador” [18]. En general, se trata de un conjunto
de ecuaciones no lineales sobredeterminado, de 12 ecuaciones con n incógnitas,
que describen el movimiento del efector final en el espacio cartesiano, en función
de la posición angular, o desplazamiento angular de las articulaciones. Para este
caso se trata de un sistema de 12 ecuaciones con 5 incógnitas, ya que es un
sistema de 5 grados de libertad.
Como la cinemática no solo es el estudio de la posición, sino también de la
velocidad y aceleración, las expresiones que definen dichas relaciones de cambio
se obtienen fácilmente al derivar las ecuaciones de diseño con respecto al tiempo,
asumiendo que θ es función de t y que esta puede derivarse.
3.2.2. Planteamiento de la Solución a la Cinemática Directa e Inversa del Manipulador.
3.2.2.1 Cinemática Directa.
La solución a la cinemática directa a partir de las ecuaciones de diseño del
manipulador es relativamente sencilla, ya que estas expresan la relación espacial
entre los elementos en función de los valores de entrada en las articulaciones del
manipulador. Para conocer la posición y orientación 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 diseño, en la matriz del
robot, obteniendo como resultado el vector de posición de la base al efector final y
la matriz de orientación [n, s, a] de este con respecto al sistema de coordenadas
de la base. Y para conocer la velocidad y aceleración 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 diseño. Resolviendo con esto, de manera
completa, lo referente a cinemática directa.
Para la solución numérica a la Cinemática Directa se desarrolló la función
Cdmover (Anexo1) bajo el programa Matlab®, los elementos de la matriz de
transformación homogénea para el robot Movemaster que se utilizan en esta
función para determinar la posición y orientación del efector final son los que se
obtuvieron en (3.1).
La función Cdmover resuelve la cinemática 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 posición y
orientación del efector final especificada por los ángulos de entrada. En la figura
3.7 se muestra el diagrama de flujo de la función.
Figura 3.7 Diagrama de Flujo de la Función Cdmover.
Como ejemplo, la matriz [M] que se obtiene para ángulos de entrada θ1... θ5 = [π /2
0 0 π /2 0], que corresponden a la posición 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 posición y orientación del efector final obtenidas
corresponden a aquellas que coinciden con la posición inicial considerada para
establecer los sistemas de coordenadas del manipulador.
3.2.2.2 Cinemática Inversa.
Como se explicó anteriormente, existen diversos métodos para la solución a la
cinemática inversa. El que aquí se plantea se basa en la comprensión de que hoy
en día las herramientas de computo con las que se cuenta, poseen una velocidad
de procesamiento que permite realizar el cálculo de la solución al problema
planteado en poco tiempo, permitiendo así su implementación.
La cinemática inversa consiste en determinar los valores de las articulaciones que
satisfagan condiciones deseadas de posición, velocidad o aceleración en el
espacio cartesiano. De lo anterior, podemos identificar tres problemas a resolver,
cinemática inversa para posiciones, cinemática inversa para velocidades y
cinemática inversa para aceleraciones.
Para el primer problema, se parte de las ecuaciones de diseño, las cuales
representan un sistema de ecuaciones no lineales sobredeterminado, de 12
ecuaciones por n incógnitas. Aquí, se especifican los valores deseados para
[ ]pasn ,,, para los que se resolverán los valores de s'θ .
Como el sistema de ecuaciones es no lineal, el primer paso es linealizar el sistema
aplicando algún método iterativo como es el método de Newton, que hace uso de
la expansión de Taylor[34]. El modelo matemático del método de Newton es el
siguiente:
nixnxxfi ,...,2,1,0),...,2,1( == ....................(3.2)
donde fi es una función no lineal de las xj. Si tenemos una estimación inicial de la
solución, esta puede escribirse como sigue:
ˆ xjjxxj ∆+= ..............................................(3.3)
donde xj es la estimación inicial y xj∆ es una corrección desconocida. Si
expandimos la ecuación 3.2 para obtener un polinomio de Taylor truncado de
primer orden alrededor de jx obtenemos:
∑ −=∆∂∂
jnxxxfixj
xjfi )ˆ,...,2ˆ,1ˆ(
.........................(3.4)
donde las derivadas parciales se evalúan con las condiciones iniciales. La
ecuación 3.4 puede escribirse en forma de matriz como:
J =∆x -f .....................................................(3.5)
Donde J es la matriz Jacobiana dada por
J⎥⎦
⎤⎢⎣
⎡∂∂
=xjfi
.....................................................(3.6)
y,
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
∆
∆∆
=∆
xn
xx
xΜ
21
....................................................(3.7)
f⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
)ˆ,,2ˆ,1ˆ(
)ˆ,,2ˆ,1ˆ(2)ˆ,,2ˆ,1ˆ(
nxxxfn
nxxxfnxxxfi
ΚΜ
ΚΚ
..........................................(3.8)
Las derivadas parciales pueden evaluarse con una aproximación de diferencia, de
la forma siguiente:
xjnxjxxfinxxjjxxfi
xjfi
σσ )ˆ,ˆ,,1()ˆ,,ˆ,,1( ΚΚΚΚ −+
≈∂∂
................................(3.9)
donde xjσ es un valor pequeño elegido arbitrariamente.
Una vez linealizado el sistema de ecuaciones, queda por resolver el sistema de
ecuaciones sobredeterminado, para esto se utiliza algún método iterativo como es
el método 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 método de Moore-Penrose sobre otros, es que este
derivará en la solución que signifique la menor de la norma de las posibles
soluciones [37], [40].
La solución que se obtiene depende de la correcta implementación de ambos
métodos y de la aproximación inicial que se determine para su solución, esto para
la cinemática inversa de posición.
Para el caso del manipulador robótico Movemaster, las ecuaciones de diseño a
linealizar se plantean de la siguiente manera:
⎪⎪⎪⎪⎪⎪⎪⎪⎪
⎭
⎪⎪⎪⎪⎪⎪⎪⎪⎪
⎬
⎫
−+++=
−++−=−++−=
−=
−−=−−=
−=
−+−=−−−=
−=
−+=−−=
z
y
x
z
y
x
z
y
x
z
y
x
psensenF
psensensensenFpsenF
aF
asensenFasenF
ssensenFssenCsenF
ssensenFnsenF
nsensenFnsensenF
300250160cos72
cos250cos16072coscos250coscos160cos72
cos
cos
coscoscoscoscos
cos
coscoscoscoscoscos
22323412
212341234111
212341234110
2349
23418
23417
52346
51523415
51523414
52343
51523412
51523411
θθθ
θθθθθθθθθθθθ
θ
θθθθθθ
θθθθθθθθθ
θθ
θθθθθθθθθθ
...... (3.10)
Para las derivadas parciales que se indican en la ecuación 3.9, el valor de xjσ es
un pequeño incremento elegido arbitrariamente, que en la función 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 método de Moore-Penrose .
Considerando lo anterior, el listado del programa para resolver el problema
cinemático inverso, haciendo uso del método de Newton, queda como se muestra
en la función Newton en el Anexo 1, dicha función resuelve la cinemática inversa
a partir de una matriz de entrada [M], que contiene la posición y orientación
deseados del efector final y de valores iniciales para las incógnitas θ1...θ5, de
donde comenzará la función en el método 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, numéricamente resolvemos el sistema
sobredeterminado obteniendo los valores de los ángulos de las articulaciones para
la posición deseada en el vector de salida [t]. El diagrama de flujo de la función
Newton se muestra en la Figura 3.8.
Figura 3.8 Diagrama de Flujo de la Función Newton.
3.3 Planteamiento del Problema Dinámico.
La obtención del modelo dinámico de un manipulador robótico proveerá de las
expresiones suficientes para establecer las leyes de control del sistema, así como
para el cálculo del torque requerido para que el manipulador cumpla con las
condiciones de movimiento deseadas. A partir de la solución a la cinemática
inversa para posiciones, velocidades y aceleraciones, se obtienen los parámetros
necesarios para evaluar el comportamiento dinámico de este.
3.3.1 Obtención del Modelo Dinámico del Manipulador.
Para la obtención del modelo dinámico del manipulador se utiliza la formulación de
Lagrange. La aplicación de esta, en conjunto con la representación de
coordenadas de elementos de Denavit y Hartenberg, resulta en una descripción
algorítmica conveniente y compacta de las ecuaciones de movimiento del
manipulador [15].
Como se estableció previamente, la formulación de Lagrange requiere del
conocimiento de la energía cinética del sistema físico, lo que a su vez requiere del
conocimiento de la velocidad de cada articulación con respecto a la base del
manipulador.
Para manipuladores de más de dos grados de libertad, resulta un tanto difícil
establecer el modelo dinámico como se planteó en el capítulo anterior. Se
recomienda aquí el utilizar la derivación de la formulación de Lagrange como lo
sugieren (Fu et al.) en [15], que se presenta a continuación. Ya que la
implementación de esta en Matlab® resulta de manera natural.
Figura 3.9 Punto ii r en el sistema de coordenadas de la articulación.
Si establecemos un punto cuyo vector de posición, expresado en el sistema de
coordenadas de la articulación ii r (como se muestra en la figura 3.9) y como el
interés se concentra en el sistema de coordenadas de la base, se establece que:
( ) ( ) ===≡ ii
iio
ii rAdtdr
dtdvv 00
ii
ii
ii
ii
ii
ii
ii
ii rAArAArAAArAAA &&&& 1
101
101
21
101
21
10 ............... −−−− ++++=
0 que ya 1
0
=⎟⎟⎠
⎞⎜⎜⎝
⎛
∂∂
= ∑=
ii
ii
j
i
j j
i rrqqA
&& ................................................(3.11)
La derivada parcial de iA0 con respecto a jq se calcula fácilmente con la ayuda de
la matriz iQ , que para una articulación de revolución se define como:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ −
=
0000000000010010
iQ
..................................................(3.12)
y para una articulación prismática, como:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
0000100000000000
iQ
..................................................(3.13)
de manera que:
ii
ii
ii
AQqA 1
1−
−
=∂∂
..................................................(3.14)
de aquí que, para ni ..., ,2 ,1= .
⎩⎨⎧
>≤
=∂∂ −−
−−
ij para 0ij para . . . ...... 11
12
21
100
ii
jj
jjj
j
i AAQAAAqA
. . . . . (3.15)
La ecuación (3.15) se puede interpretar como el efecto del movimiento de la
articulación j , sobre todos los puntos del elemento i . Con el fin de establecer una
notación simplificada y compacta se define,
⎩⎨⎧
>≤
=∂∂
≡−
−
ij para 0ij para . . . 1
100
ij
jj
jij
AQAqAiU
....................(3.16)
Entonces, la expresión correspondiente para la velocidad en el elemento i , se
puede expresar como:
ii
i
jji rqUijv ⎟⎟⎠
⎞⎜⎜⎝
⎛= ∑
=1&
..................................................(3.17)
Lo anterior es válido ú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 interacción de las articulaciones, de la siguiente manera:
⎪⎩
⎪⎨
⎧
<<≥≥≥≥
=≡∂
∂ −−
−−
−−
−−
kijikjAQAQAjkiAQAQA
UqU
ij
jjk
kk
ik
kkj
jj
ijkk
ij
ó 0 i
1
11
10
11
11
0
.......(3.18)
Una vez planteada la formulación para velocidades en el sistema, es necesario
calcular la energía cinética total del manipulador, la cual esta dada por la siguiente
expresión:
( )[ ]∑∑∑
∑ ∑ ∑∑
= = =
= = = =
=
⎟⎟⎠
⎞⎜⎜⎝
⎛==
n
i
i
p
i
rrp
Tirjip
n
i
n
i
i
p
i
rrp
Tirjipi
qqUJUTraza
qqUJUTrazaKK
1 1 1
1 1 1 1
21
21
&&
&&
...........................(3.19)
en donde jJ es la matriz correspondiente a los momentos de inercia de las
secciones de los eslabones del manipulador.
La energía potencial total del manipulador estará dada por:
( )[ ]∑∑ ==−==
n
i ii
iin
i i rAgmPP1
01 ˆ ..........................(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 energías cinética y potencial del sistema, se pueden
establecer las ecuaciones de movimiento del manipulador.
Ya que la función Lagrangiana del sistema está dada por PKL −= , tenemos
( )[ ] ( )[ ]∑∑∑∑== = =
−+=n
ii
iii
n
i
i
p
i
rrp
Tirjip rAgmqqUJUTrazaL
1
0
1 1 1ˆ2
1 && .....(3.21)
de manera tal que el par generalizado iτ dado por la formulación de Lagrange es:
iii q
LqL
dtd
∂∂
−⎟⎟⎠
⎞⎜⎜⎝
⎛∂∂
=&
τ
( ) ( )∑∑ ∑∑∑∑= = === =
−+=n
ij
j
k
n
jj
jijjq
j
mmk
Tjijjkm
n
ij
j
kk
Tjijjk rUmqqUJUTrqUJUTr
1 111ˆ &&&&
......(3.22)
para ni ., . . 2, ,1= . La Ecuación anterior se puede expresar en notación matricial
como:
nicqqhqDn
k
n
mi
j
mmkikm
n
kkiki , . . . 2, 1,
1 1 11
=++= ∑∑∑∑= = ==
&&&&τ........(3.23)
o de forma matricial como:
( ) ( ) ( ))()(),()()()( tqctqtqhtqtqDt ++= &&&τ ...........................(3.24)
3.3.2 Planteamiento de la solución a la Dinámica del Manipulador.
Una vez conocidos los valores de posición, velocidad y aceleración del sistema,
estos se sustituyen en la formulación dinámica del manipulador. Para esto se
desarrollaron los listados num1, num2 y num3 (ver Anexo 1) que emplean los
datos derivados de la solución a la cinemática inversa, para la solución numérica
de la dinámica 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 Función num1.
Han sido definidos, hasta este punto, los modelos matemáticos que gobiernan el
movimiento del manipulador Mitsubishi Movemaster y se han desarrollado las
herramientas de cómputo necesarias para la solución de estas en MATlab®. En el
siguiente capítulo se plantea el uso de estos modelos matemáticos en la
generación de trayectorias de manipuladores robóticos, con el objeto de poder
obtener la información necesaria que permita realizar una programación fuera de
línea.
Generación de Trayectorias.
E
n
é
s
t
e
c
a
p
4. Generación de Trayectorias. De manera general, el objetivo de un manipulador robótico es que siga una
trayectoria deseada, con la finalidad de realizar una tarea determinada. Para esto
se habrán de definir los puntos que conforman dicha trayectoria. Hoy en día, la
mayoría 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 línea de producción, para que un grupo de técnicos
localicen los puntos de manera gestual sobre una plantilla de tamaño real, o sobre
un prototipo. Lo anterior se puede aceptar y no sería un problema si:
a) a) La trayectoria pudiera definirse con pocos puntos, y
b) b) Si no se requiere de una gran precisión 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 localización de estos.
Lo que se propone en este trabajo, es un método para poder obtener los
parámetros necesarios que permitan realizar una programación fuera de línea. A
partir de la solución a la cinemática inversa (para un robot comercial) y de la
solución a la dinámica (c.i. y dinámica para prototipos de manipuladores), se podrá
contar con la información necesaria para definir la orientación y posición 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 parámetros:
posición, orientación, velocidad y aceleración del efector final.
Si se desea que el manipulador pase de un punto A a un punto B dentro de una
trayectoria, no existe ningún elemento que asegure que la trayectoria descrita por
el efector final sea una línea recta, ya que por la configuración de cadena abierta
del manipulador y por la naturaleza del control, las diferentes articulaciones de
este, se moverán de manera tal que estas converjan en la posición angular
deseada, lo que da como resultado la posición y orientación 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
línea 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 interés, pero si existe algún objeto u obstáculo con el que el
manipulador pudiese colisionar, o bien, el proceso que realiza este, exige que la
trayectoria a seguir sea una línea determinada, entonces se definirán 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
también tendremos que especificar un número suficiente de puntos que, al
momento de unirlos por la trayectoria que describa el efector final, correspondan a
la circunferencia deseada.
4.1 Metodología para la generación de trayectorias.
Los pasos a seguir para la generación de trayectorias son los siguientes:
1. 1. Parametrizar la trayectoria. Identificar los puntos donde exista un
cambio de dirección en la trayectoria a seguir (ligaduras de camino) y
establecer las orientaciones del efector final que se desean durante esta.
2. 2. Realizar el análisis cinemático de la trayectoria para obtener los
vectores de posiciones angulares que satisfacen las condiciones
establecidas por las ligaduras de camino.
3. 3. Realizar el análisis dinámico, que incluye el determinar los vectores de
velocidades y aceleraciones angulares correspondientes a las condiciones
de movimiento deseadas para la trayectoria, con el propósito de determinar
los vectores de torque en las articulaciones, que satisfacen la dinámica de
la trayectoria.
Para lograr lo anterior, en el tercer capítulo, ya fueron definidos los modelos
cinemáticos que gobiernan el movimiento del manipulador, así, habrán de definirse
las orientaciones y posiciones que conformarán la trayectoria a describir y por
medio de la solución a la cinemática inversa del manipulador, se calculan los
vectores de posiciones angulares para las articulaciones que habrán de
satisfacerlos. Por lo cual se requiere realizar una parametrización de trayectoria.
4.2 Parametrización de Trayectorias.
El establecimiento de parámetros que definen la trayectoria a seguir por un
manipulador, contempla:
(1) (1) La identificación de aquellos puntos en donde existe un cambio de
dirección en la trayectoria a seguir por el manipulador, referidas como
ligaduras de camino [9], [15], [35]; y
(2) (2) La orientación del efector final, que se desea mantener a lo largo de la
trayectoria. Para lo anterior, es necesario conocer con precisión la
ubicación de los elementos que constituyen el entorno de trabajo del robot,
con el fin de poder relacionar directamente, la tarea a desempeñar 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 información que se derive de la definición de los puntos y orientaciones
deseadas para el efector final que conformarán la trayectoria, será utilizada
posteriormente, como valores de entrada a los programas de solución de la
Cinemática Inversa y Dinámica 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
dinámicas de movimiento de la trayectoria.
Con el objeto de ilustrar lo anterior, supóngase que la tarea a desempeñar por el
manipulador robótico consiste en colocar un cordón de soldadura sobre el
contorno marcado en la figura 4.3 por la línea punteada.
Figura 4.3 Ruta a seguir por el manipulador.
El primer paso es determinar las ligaduras de camino que habrán de definir.,de
manera general, los puntos que conforman a la trayectoria a seguir (Figura 4.4).
Figura 4.4 Definición 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 suposición que el vector de
posición de a, respecto al sistema de coordenadas 0 de la base del manipulador,
es a=[200, 100, 150, 1]T. Así, que las demás ligaduras de camino estarán
definidas por:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡−
=
1150150250
h ,
1150250250
g ,
1150300200
f
,
1150250200-
e ,
1150250250-
d ,
1150150250
,
1150100200
cb
Una vez determinados los vectores de posición de las ligaduras de camino, el
tercer paso consiste en establecer la orientación deseada del efector final durante
la trayectoria a seguir, Figura 4.5.
Figura 4.5 Establecimiento de la orientación deseada durante la trayectoria.
Como al efector final le corresponde un sistema de coordenadas que determina su
orientación con respecto a la base del robot, se definen las matrices de
transformación homogénea que corresponden a la trayectoria (posición de las
ligaduras de camino y orientación del efector final en estas), Figura 4.6.
Figura 4.6 Identificación de las orientaciones deseadas.
,
1000150100300001200010
f ,
1000150100300001200010
e ,
1000150100250010250-001
d
,
1000150100150010250001
,
1000150100100001200010
,
1000150100100001200010
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−
−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−
−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−
= cba
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
=
1000150100150010250001
h ,
1000150100250010250001
g
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 análisis, al segmento
de trayectoria abc.
Para que la trayectoria parcial de ab sea efectivamente una línea recta, es
necesario definir un numero suficiente de puntos intermedios (el número de puntos
depende de la precisión que se requiera dependiendo de la tarea a desempeñar),
para que la trayectoria parcial ab del efector final describa la línea 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
estarían definidos por:
,
1000150100100001120010
A ,
1000150100100001160010
A ,
1000150100100001200010
21
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−
=A
,
1000150100100001200010
B ,
1000150100100001160010
A
,
1000150100100001120010
A ,
1000150100100001
80010
A ,
1000150100100001
40010
,
1000150100100001
0010
A ,
100015010010000140010
A ,
100015010010000180010
9
876
543
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−
=
A
A
Como se observa, la orientación del efector se mantiene en todo momento, en
tanto que, la magnitud en x se incrementa, satisfaciendo la ecuación 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 habrán
de definir un mayor número de puntos para describir una trayectoria circular), se
hace el siguiente análisis:
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 Análisis de la Trayectoria Parcial bc.
En donde:
θsenrX −=∆ y
θcos rrY −=∆
Se determina la variación angular en la orientación, para el sistema de
coordenadas de efector final durante la trayectoria parcial, haciendo el análisis que
se muestra en la figura 4.8.
Figura 4.8 Análisis de variación angular en la orientación.
De donde se obtiene la matriz de variación en coordenadas homogéneas:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−+−−−−−
=
1000150100
cosr -r1000cossen 2000cos
θθθθθθ
senrsen
bn
Con esta relación se pueden determinar tantos puntos como se desee para definir
la trayectoria parcial. Para este caso, se establecen 10 puntos para la definición de
la trayectoria, los cuales se generan de manera automática con la función traycirc
(Anexo1) desarrollada en Matlab®, de donde se obtienen los siguientes puntos:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
1000150100100001200010
b
, ⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−−
=
10000000.1501006156.10001564.009877.8217.20709877.01564.0
1b
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−−
=
10000000.1501004472.10203090.09511.04508.21509511.03090.0
2b
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−−
=
10000000.1501004497.10504540.08910.06995.22208910.04540.0
3b
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−−
=
10000000.1501005492.10905878.08090.03893.22908090.05878.0
4b
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−−
=
10000000.1501006447.11407071.07071.03553.23507071.07071.0
5b
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−−
=
10000000.1501006107.12008090.05878.04508.24005878.08090.0
6b
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−−
=
10000000.1501003005.12708910.04540.05503.24404540.08910.0
7b
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−−
=
10000000.1501005492.13409511.03090.05528.24703090.09511.0
8b
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−−
=
10000000.1501001783.14209877.01564.03844.24901564.09877.0
9b
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−
−−
=
1000150100150010250001
c
Como se observa, los desplazamientos del vector de posición satisfacen la
ecuación de una circunferencia, en tanto que en el componente de orientación,
esta se define para cada una de las posición, de manera tal que el efector realiza
una trayectoria suave a lo largo de un cuarto de circunferencia.
4.3 Cinemática de la generación de trayectorias.
Una vez obtenida la información necesaria que define la trayectoria, se realiza el
análisis cinemático de la trayectoria, en este, se calculan los vectores de
posiciones angulares que satisfagan las condiciones determinadas por las
matrices de transformación homogéneas, que corresponden a las posiciones que
definen la trayectoria. Estas matrices, se alimentan como valor de entrada al
programa Newton para resolver la cinemática inversa para cada una de las
posiciones.
Para la trayectoria abc de la figura 4.4, que ha sido definida por 21 matrices de
transformación homogénea, se obtienen los siguientes vectores de posición
angular en grados a partir de la solución a la cinemática inversa del manipulador:
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
109.028798.9722-99.701-
18.6731154.0287
100.473696.3505-102.559-
18.9094154.4723
91.662893.6275-105.4422-
19.0697154.6621
82.567190.8566-108.2865-
19.1431154.5688
73.164388.1006-111.0255-
19.1261154.1663
63.434985.4336-113.5907-
19.0243153.4349
57.994671.7391-125.4646-
17.2037147.9946
50.194456.8709-136.071-
12.9419140.1944
38.659841.1713-145.1048-
6.2761128.6598
21.801427.2432-151.6665-1.0903-
111.8014
0 21.1872-154.1844-4.6284-
90
21.8014-27.2432-151.6665-1.0903-68.1986
38.6598-41.1713-145.1048-
6.276151.3402
50.1944-56.8709-136.071-
12.941939.8056
57.9946-71.7391-125.4646-
17.203732.0054
63.4349-85.4336-113.5907-19.0243
1 26.565
5432
198
7654
321
bbbb
bbaa
aaaa
aaaa
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
149.0362109.1503-87.8624-
17.0127149.0362
141.3139107.6168-89.7198-
17.3366150.3118
b
133.4769105.8026-91.884-
17.6867151.4752
b
125.5001103.7356-94.3053-
18.041152.5008
b
117.3603101.4471-96.93-
18.3771153.3615
9876
c
b
Estos vectores representan las posiciones angulares que satisfacen las
condiciones de posición y orientación del efector final para la trayectoria abc.
Figura 4.9 Análisis cinemático trayectoria “abc”
Con el propósito de comprobar los resultados derivados del análisis cinemático, se
modeló el manipulador robótico 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 gráficos correspondientes a las
configuraciones del brazo, como resultado de las posiciones angulares que
satisfacen la posición y orientación 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
gráficos 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 Configuración resultante correspondiente al punto a.
Figura 4.11 Configuración resultante correspondiente al punto a1.
Figura 4.12 Configuración resultante correspondiente al punto b9.
Figura 4.13 Configuración resultante correspondiente al punto b.
Para las demás trayectorias parciales, se hace un análisis 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 Dinámica en la generación de trayectorias.
Cuando un manipulador describe una trayectoria, es importante el considerar el
comportamiento dinámico que se desea presente el manipulador. Este
comportamiento estará definido por los vectores de velocidad y aceleración que
afectarán el movimiento del efector final a lo largo de su trayectoria, además de las
características 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 análisis 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 tomaría 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 habrán 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
información es posible establecer una relación 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:
g120.7345se2.0122minx
x 00.400min3 35.596
==∴
→→
mmmm
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
razón de cambio de posición 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 razón 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 gráficamente el comportamiento de estos
parámetros 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.007864460.01127591 -0.00616083 -0.01533254 0.02149336 0.011275910.01667433 -0.00963603 -0.01305920 0.02269523 0.016674330.02437038 -0.01064881 -0.00948555 0.02013436 0.024370380.03151595 -0.00511465 -0.00363986 0.00875451 0.031515950.03151595 0.00511465 0.00363986 -0.00875451 0.031515950.02437038 0.01064881 0.00948555 -0.02013436 0.024370380.01667433 0.00963603 0.01305920 -0.02269523 0.016674330.01127591 0.00616083 0.01533254 -0.02149336 0.011275910.00786446 0.00263185 0.01716482 -0.01979667 0.007864460.00236922 0.00032976 0.00830943 -0.00863919 0.031516340.00130381 5.5068E-05 0.00887241 -0.00892748 0.030458390.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 información 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 solución a la dinámica del manipulador se
utilizan los listados num1, num2 y num3 descritos en el capítulo 3. Para la
solución numérica empleando estos listados, es necesario indicar como valores de
entrada los datos correspondientes para las posiciones, velocidades y
aceleraciones angulares para el instante de interés.
Los torques necesarios para que el manipulador describa la trayectoria abc se
tabulan en la tabla 4.3 y se muestran gráficamente 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 articulación 1
Figura 4.17 Torque articulación 2
Figura 4.18 Torque articulación 3
Figura 4.19 Torque articulación 4
Figura 4.20 Torque articulación 5
Con este análisis se puede determinar el valor nominal máximo del torque
necesario en las articulaciones, para que el manipulador siga la trayectoria
deseada. Sobre la base de este análisis y modificando las condiciones de
movimiento, es posible determinar el valor de torque máximo para la selección de
los elementos actuadores, que habrán de animar al manipulador.
Derivado del análisis 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, además de que por la configuración espacial del
mecanismo del manipulador, son los nodos en donde existe una mayor reacción
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 comparación con
los dos mencionados.
Es también de interés 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 posición, por lo que se observa
una correspondencia con los picos que se observan en las gráficas 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 patrón 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 formulación 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 posición del centro de masa de este.
A continuación se realiza un análisis 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 Comparación t1 vs t1”
Figura 4.22 Comparación t2 vs t2”
Figura 4.23 Comparación t3 vs t3”
Figura 4.24 Comparación de t4 vs t4”
Figura 4.25 Comparación t5 vs t5”
De las gráficas 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 metodología presentada en
este capítulo, se obtiene claramente la información necesaria para la generación
de trayectorias de manipuladores robóticos y, es posible pensar en la
implementación de ésta en un prototipo real, desde el punto de vista experimental,
como se presenta en el siguiente capítulo.
Desarrollo experimental derivado de este trabajo.
En
éste
capít
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 diseño
de prototipos de manipuladores robóticos para diversas aplicaciones,
buscando con esto alentar la investigación sobre este tema en jóvenes ingenieros
y como parte del trabajo desarrollado como profesor de las materias Sistemas
Digitales II (Microprocesadores) y Sistemas Digitales III (Robótica) a nivel
licenciatura en la carrera de Ingeniería en Control y Automatización de la ESIME -
Zacatenco. De estos, el que más avance presenta es el proyecto de
“Implementación de las Técnicas de Control PID en un Manipulador Robótico de
Tres Grados de Libertad”, que a continuación se describe de manera más 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 “Implementación de las Técnicas de Control PID en un Manipulador Robótico de Tres Grados de Libertad” Los objetivos de este proyecto son:
• • Diseño y construcción de un manipulador robótico de 3 grados de
libertad
• • Solución al modelo matemático del manipulador
• • Implementación de la técnica de control PID para comprobar el modelo
matemático del manipulador
• • Identificación y análisis 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:
• • Diseño y desarrollo mecánico.
• • Modelado matemático y solución de las ecuaciones.
• • Programación fuera de línea.
• • Circuito de potencia.
• • Control.
El manipulador robótico consta de tres movimientos (grados de libertad) en una
configuración 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 posición de un eslabón con respecto al eslabón
anterior.
La función a desempeñar 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 técnica PID e identificando las
diferentes respuestas que presenta esta técnica. En tanto que los parámetros para
la generación de trayectorias se obtienen de la solución a la cinemática inversa,
comprobando dichos parámetros 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 matemático correspondiente al
manipulador, partiendo de la obtención de los parámetros de Denavit y Hartenberg
necesarios para definir la posición y orientación del efector final del manipulador
con respecto a la base.
Ya que se tiene el modelo matemático del manipulador, se resuelven las
ecuaciones de diseño del manipulador para dar solución a la cinemática directa.
Posteriormente, las ecuaciones de diseño son linealizadas por medio del método
de Newton, para obtener la solución a la cinemática inversa de este manipulador,
lo cual conduce a encontrar los ángulos que satisfacen una posición y orientación
final deseada.
La solución a la Cinemática Directa e Inversa corresponde a la programación fuera
de línea, es decir, se realiza con ayuda de una PC para resolver las ecuaciones y
obtener los ángulos de cada articulación que describen una trayectoria deseada.
Los ángulos obtenidos en la programación fuera de línea, 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 posición deseada.
El algoritmo de control PID es parte del desarrollo de este proyecto, este control
precisa de la información que otorga la retro-alimentación, para poder determinar
la posición angular de cada articulación.
Una vez que el Micro Controlador ha realizado los cálculos necesarios del control,
este nos arroja señales (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 señales 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 configuración tipo H para controlar el giro del
motor, así como la velocidad del mismo.
5.1.1 Descripción física
El material que conforma la estructura del manipulador es perfil rectangular de
aluminio, las guardas o fundas están hechas con lamina de aluminio de 2mm de
espesor; el manipulador cuenta con 4 moto reductores, los cuales le dan
movimiento a cada articulación. 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 máxima 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 eslabón. El GRIPER o efector final
tiene una capacidad de movimiento de 180º; este, no es gobernado por ningún
motor, sino por medio de la gravedad, es decir, con su mismo peso se alinea
verticalmente.
Las características 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 Matemático y Solución a la Cinemática Directa e Inversa.
Tomando en cuenta las características físicas del manipulador robótico, se
establecen los sistemas de coordenadas correspondientes a cada articulación, de
la manera en que se explicó en el capítulo 2, definiendo para esto una posición
inicial para la asignación de los sistemas de coordenadas (Figura 5.4).
Figura 5.4 Posición de sistema de coordenadas cero.
Figura 5.5 Asignación de sistemas de coordenadas.
Una vez que se han determinado los sistemas de coordenadas para cada
articulación (Figura 5.5), se obtienen los parámetros 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:
0A1=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−
−
1000010
00
111
11
BASCSACSC S
θθθθθθ
1A2=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ −
10000100
00
222
222
θθθθθθ
CSCSCCSC
2A3=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ −
10000100
00
333
333
θθθθθθ
DSCSDCSC
3A4=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡−
100000100000
44
44
θθθθCS
SC
4A5=⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ −
1000100
0000
55
55
ECSSCθθθθ
de donde se deriva la matriz 0A5, que corresponde a la matriz del manipulador.
0A5=
( )( )( )
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
+−−−++++−++++−−−
100022323423452345234
12232341234151523415152341
12232341234151523415152341
BCSDSECCSSCSASCCDCESSSSCCSCSSCCCSACCCDCESCSCCSSCCSSCCC
Una vez obtenida esta matriz, se puede dar solución tanto a la cinemática directa
como a la inversa.
Ejemplos de solución de la cinemática directa.
Posición inicial
Valores del Vector Variable en grados:
VV=[0 0 0 90 0]
Para el que le corresponde la matriz [M] de orientación y posición del efector final:
M =⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1 0 0 0148 0 0 1-0 0 1 0
593 1 0 0
Figura 5.6 Posición inicial (0 0 0 90 0)
Primera posición.
Valores del Vector Variable
VV=[90 0 0 90 0]
Para el que le corresponde la matriz [M] de orientación y posición del efector final:
M = ⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1 0 0 0148 0 0 1-593 1 0 0
0 0 1- 0
Figura 5.7 Posición1 (90 0 0 90 0)
Segunda posición.
Valores del Vector Variable:
VV=[0 –45 45 180 0]
Para el que le corresponde la matriz [M] de orientación y posición del efector final:
M =⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1.0000 0 0 0 208.9188 1- 0 0 0 0 1 0
383.9188 0 0 1-
Figura 5.8 Posición 2 (0 –45 45 180 0)
Tercera posición.
Valores del Vector Variable:
VV=[0 –90 90 180 0]
Para el que le corresponde la matriz [M] de orientación y posición del efector final:
M =⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1 0 0 0 288 1- 0 0 0 0 1 0
193 0 0 1-
Figura 5.9 Posición 3 (0 –90 90 180 0)
Cuarta Posición. Valores del Vector Variable:
VV=[45 –90 90 180 0]
Para el que le corresponde la matriz [M] de orientación y posición del efector final:
M =⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1 0 0 0 288 1- 0 0
136.4716 0 0.7071 0.7071-136.4716 0 0.7071- 0.7071-
Figura 5.10 Posición 4 (45 –90 90 180 0)
Quinta posición.
Valores del Vector Variable:
VV=[0 45 –90 135 0]
Para el que le corresponde la matriz [M] de orientación y posición del efector final:
M =⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1 0 0 0 70.2183 0 0 1-0 0 1 0
467.0559 1 0 0
Figura 5.11 Posición 5 (0 45 –90 135 0)
5.1.3 Implementación de Técnicas de Control para el robot R3GL. A continuación se describen las técnicas de control que se implementan en el
manipulador robótico R3GL.
5.1.3.1 Acción de control Proporcional
Para un controlador con acción de control proporcional, la relación entre la salida
del controlador y la señal del error es:
Salida del controlador = Kp * Error
Nota: La salida del controlador y la señal del error están en función del tiempo.
Cualquiera que sea el mecanismo real y la forma de la potencia de operación, el
controlador proporcional es, en esencia, un amplificador con ganancia ajustable.
5.1.3.2 Acción de control Integral
En un controlador de acción de control Integral, el valor de la salida del controlador
se cambia a una razón proporcional a la señal de error.
e(t)dt Kiu(t) 0∫=t
........................... (5.1)
Si se duplica el valor del error, el valor de la salida del controlador varia dos veces
más rápido. Para un error de cero, el valor de la salida del controlador permanece
estacionario. En ocasiones, la acción del control integral se denomina control de
reajuste (reset).
5.1.3.3 Acción de control Proporcional-Integral
La acción de control de un controlador Proporcional-Integral (PI) se define
mediante:
∫+=t
i
pp dtte
TK
teKtu0
)()()( ........................... (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 acción de control integral,
mientras que un cambio en el valor de Kp afecta las partes integral y proporcional
de la acción 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 acción de control. La velocidad de reajuste se mide en términos
de repeticiones por minuto.
Figura 5.12 Análisis del comportamiento del error e(t), y comportamiento de la señal manipulada
u(t) para un control PI
5.1.3.4 Acción de control Proporcional-Derivativo
La acción de control de un controlador Proporcional-Derivativo (PD) se define
mediante:
⎟⎠⎞
⎜⎝⎛+= )()()( te
dtdTKteKtu dpp
........................... (5.3)
Donde Td es una constante denominada tiempo derivativo. Tanto Kp como Td son
ajustables. Esta acción es denominada control de velocidad, ocurre donde la
magnitud de la salida del controlador es proporcional a la velocidad de cambio de
la señal de error. El tiempo derivativo Td es el intervalo de tiempo durante el cual
la acción de la velocidad hace avanzar el efecto de la acción de control
proporcional; Por lo que el control derivativo tiene un carácter de previsión pero
tiene la desventaja de que amplifica la señales de ruido y puede provocar un
efecto de saturación en el actuador.
Figura 5.13 Análisis del comportamiento del error e(t), y comportamiento de la señal manipulada
u(t) para un control PD
5.1.3.5 Acción de control Proporcional Integral Derivativo
La combinación de una actuación de control Proporcional, una acción de control
Integral, y una acción de control Derivativo se denomina control Proporcional
Integral Derivativo (PID). Esta acción combinada tiene las ventajas de cada una de
las tres acciones de control individuales. La ecuación del controlador con esta
acción combinada se obtiene mediante:
)()()()(0
tedtdTKdtte
TK
teKtu dp
t
i
pp ++= ∫
........................... (5.4)
Figura 5.14 Análisis del comportamiento del error e(t), y comportamiento de la señal manipulada
u(t) para un control PID
5.1.4 Función de Transferencia de un Controlador PID Digital
El principio básico del esquema de control PID es que actúa sobre la variable
manipulada a través de una apropiada combinación de las tres acciones de
control.
En situaciones donde muchas plantas se controlan directamente mediante una
sola computadora digital, la mayoría de los lazos de control se pueden manipular
mediante esquemas de control PID.
La acción del control PID en controladores analógicos esta dada por la ecuación
5.4, en donde e(t) es la entrada al controlador (señal del error actuante), u(t)es la
salida del controlador (señal 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 Función de Transferencia al pulso del controlador PID digital se
aplica la transformada de Laplace a la ecuación 5.4, obteniendo:
( ) ⎥⎦
⎤⎢⎣
⎡+⎟⎟
⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛+= )(
)( 11)( sET
sEsTsEKsU d
ip
.......................... (5.5)
Aplicando a su vez la transformada Z a U(s) tenemos
( )⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−+⎟⎠⎞
⎜⎝⎛−
+= −
−
1
1
1)(
1)(
1)()( zzET
zzET
zEKzU d
i
p
.......................... (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=señal de referencia – señal de salida
La ecuación 5.7 se toma como base para el desarrollo de los programas de
implementación del algoritmo de control PID digital, con el microcontrolador
MC68HC11. A continuación se presentan los diagramas de flujo para la
implementación del PID.
Figura 5.15 Diagrama de Flujo para la Implementación 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) - TBajo
(PWM) - TAlto
#$FE - PC
PC
STALTO
STBAJO
#$FF - PC
PC
I
Configuracion del puerto C como salidas
Carga un dato de 0 –FFFF en la localidad PWM.
(PWM) - TBajo
(PWM) - TAlto
#$FE - PC
PC
STALTO
STBAJO
#$FF - PC
PC
ST ALTO
(T ALTO) IX
(IX)-1
=0?
R
NO
SI
ST BAJO
(T BAJO) IX
(IX)-1
=0?
R
NO
SI
ST ALTO
(T ALTO) IX
(IX)-1
=0?
R
NO
SI
ST ALTO
(T ALTO) IX
(IX)-1
=0?
R
NO
SI
ST BAJO
(T BAJO) IX
(IX)-1
=0?
R
NO
SI
ST BAJO
(T BAJO) IX
(IX)-1
=0?
R
NO
SI
Figura 5.17 Diagramas de Flujo para la Generación del PWM
5.1.5 Descripción del Sistema de Control del Manipulador Robótico 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 articulación (los
programas de implementación se incluyen en el Anexo 4).
El sistema de control está compuesto por 4 microprocesadores, los tres para las
articulaciones, que trabajan bajo la configuración de esclavos y uno principal que
trabaja en configuración de Maestro, el cual habrá de indicar a los esclavos las
posiciones deseadas para cada articulación, de acuerdo al vector de posición que
corresponda a una orientación y posición deseadas del efector final.
Una vez que las tres articulaciones han llegado a la posición deseada, estas
mandan una señal de confirmación al Maestro, para que se proceda con la carga
de datos de la nueva posición que se desea del manipulador. En la figura 5.18 se
muestra, de manera esquemática, el sistema de control del manipulador robótico,
en esta se incluye una computadora que tiene como función en el sistema el
cálculo de parámetros fuera de línea (Los diagramas de conexión se incluyen en el
Anexo 5).
MCS
68HC11
FA
BUS
BH M
MCM
68HC11
BUS
MCS
68HC11
T A
BUS
BH M
MCS
68HC11
SA
BUS
BH M
GP
GP
GP
NP
SP
SP
SP
MCS
68HC11
FA
BUS
BH M
MCM
68HC11
BUS
MCS
68HC11
T A
BUS
BH M
MCS
68HC11
T A
BUS
BH M
MCS
68HC11
SA
BUS
BH M
MCS
68HC11
SA
BUS
BH M
GP
GP
GP
NP
SP
SP
SP
Figura 5.18 Diagrama esquemático del sistema de control del manipulador robótico R3GL
5.1.6 Estado actual del Proyecto de Investigación.
Actualmente, el manipulador robótico R3GL, puede generar trayectorias que han
sido calculadas fuera de línea, alimentando al sistema de control únicamente la
base de datos que conforma la trayectoria deseada (vectores de posición angular
para la generación de la trayectoria). Hasta este punto, es posible pensar en incluir
dentro del control del sistema, la técnica de control por par calculado, para poder
comprobar los resultados derivados del análisis dinámico de la trayectoria (los
torques calculados para condiciones dinámicas de movimiento). En tanto que lo
referente a la solución a la cinemática directa e inversa ha sido plenamente
resuelta y se puede comenzar a generar trayectorias especificas para éste
manipulador.
CONCLUSIONES
CONCLUSIONES. La metodología para la generación de trayectorias que aquí se presenta, ha
demostrado, hasta el momento, ser adecuada para el propósito que se persigue,
que es su aplicación en la programación fuera de línea de manipuladores
robóticos.
Los resultados del análisis cinemático, que derivan en la determinación de los
vectores de posición angular, a partir de la solución a la cinemática inversa, han
demostrado ser correctos; toda vez que, en la simulación virtual del manipulador
se observa que, efectivamente, éste genera la trayectoria deseada.
En cuanto a los resultados derivados del análisis dinámico, estos muestran, para
una misma trayectoria de análisis 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
consideración de que la masa a manipular es mayor.
Para un manipulador robótico comercial, basta con realizar un análisis cinemático
de la trayectoria, puesto que es muy difícil que se pueda manipular el torque
entregado a las articulaciones por los motores, debido a la configuración del
sistema de control del propio manipulador. Por lo que, solo basta el conocer las
dimensiones físicas de este, así como sus capacidades de movimiento, para
establecer el modelo matemático que gobierna el movimiento del manipulador y, a
partir de esto y de la tarea a desempeñar por este, obtener la información
necesaria para la generación de la trayectoria deseada, sin necesidad de detener
la línea de producción dentro de la cual se encuentre instalado el manipulador,
reduciendo con esto, los tiempos muertos que se derivan de la programación de
un robot en línea.
En el área experimental, la metodología que aquí se presenta, puede aplicarse de
manera completa, ya que la información derivada del análisis dinámico se emplea
para el diseño y verificación de las técnicas de control bajo las cuales habrá de
regirse el comportamiento dinámico del manipulador.
El trabajo experimental que se ha desarrollado hasta el momento, ha permitido
verificar hasta ahora, lo correspondiente al análisis cinemático en un prototipo real.
Pues las técnicas de control utilizadas en este, contemplan solamente un control
por posición, en donde las variables velocidad, aceleración y, por consiguiente,
torque, tienen el carácter de variables secundarias. Ahora, una vez que ya se
puede obtener la información derivada del análisis dinámico, que es el
comportamiento del torque aplicado en una articulación a lo largo del tiempo, es
posible pensar en migrar a esta variable, el torque aplicado, a la categoría de
variable principal a controlar.
Dado que la información que se deriva de un análisis dinámico de un manipulador
robótico, es de gran interés para los diferentes actores que intervienen en el
diseño de un robot, como son:
El ingeniero mecánico, para el cual la magnitud de los torques que actúan en las
articulaciones del robot, le permitirá evaluar el diseño estructural de este, así como
de los elementos considerados para la transmisión de potencia mecánica, 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 electrónico, que derivado del análisis dinámico, podrá
implementar técnicas de control adecuadas para que el actuador pueda
contrarrestar la inercia de los elementos en movimiento para que se presente el
comportamiento dinámico del robot que se requiere durante una tarea específica.
Como trabajo futuro se recomienda realizar:
• El modelado de un manipulador en ANSYS®, con objeto de optimizar el
diseño estructural de este,
• El modelado en ADAMS® para comparar los resultados de una simulación
dinámica con aquellos que se obtienen a partir de los listados que aquí se
presentan para la solución a la dinámica en MATlab®,
• La generalización de la solución que aquí se presenta para manipuladores
de 6 grados de libertad, la cual solamente consiste en agregar algunos
términos a las ecuaciones que aquí se presentan,
• La optimización a los listados de solución a la Cinemática y Dinámica para
poder obtener resultados para diferentes manipuladores a partir de los
parámetros de Denavit y Hartenberg,
• El implementar un control por torque para manipuladores robóticos a partir
de la información que se obtiene del análisis dinámico para la generación
de trayectorias.
Es importante señalar que, el tema que aquí se aborda, ha demostrado ser de
gran interés, puesto que los avances de este trabajo se han estado publicando en
la dirección http://pathfinder.esimez.ipn.mx o bien, http://robotica.mexico.com.mx
de la Internet; página que ha sido consultada hasta el momento, desde su fecha
de publicación en el mes de abril de este año, en más 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” Queen’s 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.; “Robótica: Control, Detección, Visión
e Inteligencia” McGraw Hill, 1990 [16] Palacios Montufar, C. Merchán 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.; “Modelación y Simulación de Sistemas Electromecánicos 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 Clifford’s Derivation of Bi-quaternions” Tenth World Congress on the Theory of machine and Mechanisms June, 1999
[31] Ogata, K. “Ingeniería 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. “Análisis Numérico y Visualización Gráfica 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 Robótica” Gaceta Politécnica IPN 15 de Marzo, 2000 [53] Secretaria de Comercio y Fomento Industrial www.secofi.gob.mx [54] Díaz de León, V.M.;“Metodología para el Diseño de un Robot Manipulador
Industrial” Tesis de Maestría SEPI-ESIME-IPN 1993 [55] Ramiro López, A.;“Análisis Cinemático y Dinámico de un Manipulador
Robótico con Tres Grados de Libertad” Tesis de Maestría SEPI-ESIME-IPN 1993 [56] Rojas Garnica, J.C.;“Diseño de un Mecanismo Atornillador para un Brazo
Manipulador Robótico” Tesis de Maestría SEPI-ESIME-IPN 1997 [57] Gonzáles Sánchez, A. “Desarrollo de un Simulador para el Control de un
Brazo Robótico” Tesis de Maestría SEPI-ESIME-IPN 1993
ANEXOS
ANEXO 1. Programas en Matlab® function [M]=CDmov(VV,VC) % función desarrollada por Emmanuel Merchán % 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) %Función desarrollada por Emmanuel Merchán %Resuelve el problema cinemático inverso a partir de la matriz de entrada [M] %que contiene la orientación del efector final con repecto a la base nx...az %y la posición 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
%Función num1.m desarrollada por Emmanuel Merchán %determinación de los parámetros necesarios en la formulación %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(U411*J4*U41')+trace(U511*J5*U51'); h112=trace(U212*J2*U21')+trace(U312*J3*U31')+trace(U412*J4*U41')+trace(U512*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(U521*J5*U51'); h122=trace(U222*J2*U21')+trace(U322*J3*U31')+trace(U422*J4*U41')+trace(U522*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(U511*J5*U52'); h212=trace(U212*J2*U22')+trace(U312*J3*U32')+trace(U412*J4*U42')+trace(U512*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(U521*J5*U52');
h222=trace(U222*J2*U22')+trace(U322*J3*U32')+trace(U422*J4*U42')+trace(U522*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
%función num2.m desarrollada por Emmanuel Merchán %para determinar los parámetros 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
%función num3.m desarrollada por Emmanuel Merchán %que determina la matriz [h] y la matriz [c] a partir de los %parámetros calculados por las funciones anteriores %y resuelve de manera numérica la formulación 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)+h115*dt1*dt5+h131*dt1*dt3+h132*dt2*dt3+h133*(dt3^2)+h134*dt3*dt4+h135*dt3*dt5+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)+h215*dt1*dt5+h231*dt1*dt3+h232*dt2*dt3+h233*(dt3^2)+h234*dt3*dt4+h235*dt3*dt5+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)+h315*dt1*dt5+h331*dt1*dt3+h332*dt2*dt3+h333*(dt3^2)+h334*dt3*dt4+h335*dt3*dt5+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)+h415*dt1*dt5+h431*dt1*dt3+h432*dt2*dt3+h433*(dt3^2)+h434*dt3*dt4+h435*dt3*dt5+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)+h515*dt1*dt5+h531*dt1*dt3+h532*dt2*dt3+h533*(dt3^2)+h534*dt3*dt4+h535*dt3*dt5+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 ecuación 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 Merchán %para la generacion de las matrices de tranformación %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 Merchán" }, 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. Gráficas correspondientes a las 21 posiciones que conforman la trayectoria abc.
VISTA FRONTAL
VISTA LATERAL DERECHA
VISTA SUPERIOR
ANEXO 4. Programas del proyecto de implementación. ;************************************************************************ ;* 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 SEÑAL 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 conexión del manipulador robótico R3GL.
Q?TIP120
Q?TIP31
Q?TIP120
Q?TIP31R?
RESISTOR
R?
RESISTOR
R?
RESISTOR
R?
RESISTOR
12V CD
GND
A -+
M?
MOTOR SERVO
U?
74LS245
A12
A23
A34
A45
A56
A67
A78
A89
G19
DIR1
B118
B2 17
B316
B415
B514
B6 13
B712
B811
5V CD
U?
MC68HC11E9
XT8
EX7
RESET17
IRQ19
XIRQ18
MODB2
PA034
PA133
PA232
PE043
PE145
PE247
PE349
PE444
PE546
PE648
PE750
VRH52
VRL51
PA331
PA430
PA529
PA628
PA727
PB042
PB141
PB240
PB339
PB438
PB537
PB636
PB735
PC09
PC110
PC211
PC312
PC413
PC514
PC615
PC716
PD020
PD121
PD222
PD323
PD424
PD525
MODA3
E5
AS4
R/W6
Diagrama de potencia para giro del motor
Puente H1
Hacia los Puentes H2 y H3
Q?TIP120
Q?TIP31
Q?TIP120
Q?TIP31R?
RESISTOR
R?
RESISTOR
R?
RESISTOR
R?
RESISTOR
12V CD
GND
A -+
M?
MOTOR SERVO
U?
74LS245
A12
A23
A34
A45
A56
A67
A78
A89
G19
DIR1
B118
B2 17
B316
B415
B514
B6 13
B712
B811
5V CD
U?
MC68HC11E9
XT8
EX7
RESET17
IRQ19
XIRQ18
MODB2
PA034
PA133
PA232
PE043
PE145
PE247
PE349
PE444
PE546
PE648
PE750
VRH52
VRL51
PA331
PA430
PA529
PA628
PA727
PB042
PB141
PB240
PB339
PB438
PB537
PB636
PB735
PC09
PC110
PC211
PC312
PC413
PC514
PC615
PC716
PD020
PD121
PD222
PD323
PD424
PD525
MODA3
E5
AS4
R/W6
Q?TIP120
Q?TIP31
Q?TIP120
Q?TIP31R?
RESISTOR
R?
RESISTOR
R?
RESISTOR
R?
RESISTOR
12V CD
GND
A -+
M?
MOTOR SERVO
U?
74LS245
A12
A23
A34
A45
A56
A67
A78
A89
G19
DIR1
B118
B2 17
B316
B415
B514
B6 13
B712
B811
5V CD
U?
MC68HC11E9
XT8
EX7
RESET17
IRQ19
XIRQ18
MODB2
PA034
PA133
PA232
PE043
PE145
PE247
PE349
PE444
PE546
PE648
PE750
VRH52
VRL51
PA331
PA430
PA529
PA628
PA727
PB042
PB141
PB240
PB339
PB438
PB537
PB636
PB735
PC09
PC110
PC211
PC312
PC413
PC514
PC615
PC716
PD020
PD121
PD222
PD323
PD424
PD525
MODA3
E5
AS4
R/W6
Diagrama de potencia para giro del motor
Puente H1
Hacia los Puentes H2 y H3
5V
5V
FLECHA
FLECHA
FLECHA
BUFFER
HACIA PUENTES "H"
R1K
R1K
R1K
MC68HC11E9
XT8
EX7
RESET17
IRQ19
XIRQ18
MODB 2
PA0 34
PA133
PA232
PE043
PE145
PE247
PE349
PE444
PE546
PE648
PE750
VRH 52
VRL 51
PA331
PA430
PA529
PA628
PA727
PB042
PB141
PB240
PB339
PB438
PB537
PB636
PB735
PC09
PC110
PC211
PC312
PC413
PC514
PC615
PC716
PD020
PD121
PD222
PD323
PD424
PD525
MODA3
E5
AS4
R/W6
74LS245
A12
A23
A34
A45
A56
A67
A78
A89
G19
DIR1
B118
B217
B316
B415
B514
B613
B7 12
B8 11
MORE ANTEBRAZO
MORE BASE
MORE BRAZO
5V
5V
FLECHA
FLECHA
FLECHA
BUFFER
HACIA PUENTES "H"
R1K
R1K
R1K
MC68HC11E9
XT8
EX7
RESET17
IRQ19
XIRQ18
MODB 2
PA0 34
PA133
PA232
PE043
PE145
PE247
PE349
PE444
PE546
PE648
PE750
VRH 52
VRL 51
PA331
PA430
PA529
PA628
PA727
PB042
PB141
PB240
PB339
PB438
PB537
PB636
PB735
PC09
PC110
PC211
PC312
PC413
PC514
PC615
PC716
PD020
PD121
PD222
PD323
PD424
PD525
MODA3
E5
AS4
R/W6
74LS245
A12
A23
A34
A45
A56
A67
A78
A89
G19
DIR1
B118
B217
B316
B415
B514
B613
B7 12
B8 11
MORE ANTEBRAZO
MORE BASE
MORE BRAZO
DIAGRAMA DE CONEXIÓN AL MICROPROCESADOR
ANEXO 6. Publicación generada de ésta tesis.