UNIVERSIDAD NACIONAL DEL CALLAO - unac.edu.pe · ejes de cada articulación lo ... como cantidad y...
Transcript of UNIVERSIDAD NACIONAL DEL CALLAO - unac.edu.pe · ejes de cada articulación lo ... como cantidad y...
0
UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
Informe Final de trabajo
De investigación
“CONTROL NO LINEAL DE UN ROBOT ESFÉRICO DE 3GL CON
TÉCNICAS DE CONTROL DE LINEALIZACIÓN EXACTA”
Autor:
Ing. ARMANDO PEDRO CRUZ RAMIREZ
PERIODO DE EJECUCION
(01 de agosto de 2010 al 31 de julio de 2011)
RESOLUCION DE APROBACION
(Resolución Rectoral Nº 960-2010-R, Callao, 27 de agosto de 2010)
Callao -2011
1
“CONTROL NO LINEAL DE UN ROBOT ESFÉRICO DE 3GL CON TÉCNICAS DE CONTROL DE LINEALIZACIÓN EXACTA”
I.- INDICE 1
II.- RESUMEN 3
III.- INTRODUCCION 4
3.1 Planteamiento del problema de investigación 6
3.2 Objetivos y alcances de la investigación 9
3.2.1 Objetivos generales 9
3.2.2 Objetivos específicos 9
3.3 Alcances de la investigación 10
3.4 Importancia y justificación de la investigación 10
3.5 Formulación de la hipótesis 11
IV.-MARCO TEÓRICO 12
4.1 Introducción 12
4.2. Antecedentes del estudio 12
4.3. Bases teóricas 13
4.4 Linealización por realimentación de estados 13
4.4.1 Linealización entrada-estado SISO 15
4.4.2 Linealización por realimentación MIMO 18
4.5 Control con Lógica Difusa 22
4.6 El manipulador robótico 24
4.6.1 Estructuras de los robots manipuladores 25
4.7 Modelado de robot 28
4.7.1 Cinemática del robot 28
4.7.2 Modelado cinemático directo 29
4.7.3 Matriz de rotación 30
4.7.4 Transformación homogénea 31
4.7.5 Convención Denavit-Hartemberg 35
4.8 Dinámica del robot 41
4.8.1 Modelado mediante la formulación Lagrange-Euler 41
4.9 Modelo cinemático inverso 43
4.9.1 Modelo cinemático inverso del manipulador robótico 44
V. MATERIALES Y MÉTODO 47
5.1 Relaciones entre las variables de la investigación 47
5.2 Descripción del sistema 48
2
5.3 Modelamiento de la planta 49
5.4 El modelo dinámico 50
5.5 El procedimiento Denavit-Hartemberg 50
5.6 Problema cinemático inverso Toolbox Hemero 57
5.7 Modelo dinámico del manipulador 57
5.8 Diseño del Controlador Difuso 61
5.9 ¿En que situaciones es útil aplicar la lógica difusa? 62
5.10 Fuzzy Logic Toolbox 62
5.11 Configuración y programación del controlador difuso 63
5.12 Definición de las variables 63
5.13 Configuración del controlador difuso en Fuzzy Logic Toolbox 65
VI RESULTADOS 68
6.1 Determinación de las matrices homogéneas 68
6.2 Creación del robot 68
6.3 Control de posición del efector final 69
6.4 Grafica del movimiento del robot 70
6.5 Programa de la cinemática inversa 70
6.6 Trayectoria de las articulaciones 71
6.7 Configuración de los controladores Fuzzy 72
VII DISCUSIONES Y RECOMENDACIONES 75
7.1 Discusiones 75
7.2 Recomendaciones 76
7.3 Contrastación de la hipótesis con los resultados 76
VIII. REFERENCIALES 79
IX. APÉNDICE 81
Apéndice A Programa que determina las matrices de transformación
homogéneas 81
Apéndice B Programa para crear un robot de 3 Grados de Libertad 81
Apéndice C Programa que nos da una posición estática del robot 83
Apéndice D Posición del robot para diferentes posiciones de q 83
Apéndice E Programa para crear la cinemática inversa 84
Apéndice F Programa que determina la trayectoria de las articulaciones 85
Apéndice G Configuración del controlador difuso 86
3
II. RESUMEN
Este trabajo de investigación muestra en forma detallada el modelado, análisis
y diseño del Controlador de un manipulador esférico de tres grados de libertad
utilizando la Técnica de Control por Linealización Exacta basado en la
determinación de la posición de cada una de las junturas para una determinada
trayectoria del efector final deseada, para lo cual aplicamos la cinemática
inversa del Toolbox de Hemero de Matlab.
Una parte importante de este trabajo es la obtención del modelo matemático
del sistema que se obtiene a través de las ecuaciones de Lagrange-Euler, lo
que permite tener en cuenta incertidumbres en los valores de los parámetros
del manipulador.
En este trabajo de investigación se ha diseñado un controlador basado en el
método de Control no Lineal por linealización exacta, para cumplir el objetivo
del presente trabajo de investigación y adicionalmente se diseña un control
Fuzzy para efectos de comparación.
Las simulaciones realizadas mediante Matlab, permiten valorar las respuestas
del controlador en trayectorias deseadas, que son muy comunes en los
procesos de manufactura y han demostrado que el sistema de control diseñado
es válido y cumple con las condiciones de diseño impuestas.
4
III. INTRODUCCIÓN
Este trabajo tiene como propósito determinar los valores que deben de adoptar
las coordenadas articulares del robot , para que su extremo o
efector final se posicione y oriente según una determinada localización
espacial, aplicando la teoría de la Cinemática Inversa. Se plantearan las
ecuaciones del movimiento usando la cinemática del cuerpo rígido y se usará el
método de Lagrange-Euler para la solución numérica de las ecuaciones
cinemáticas no lineales.
Se resuelve el problema cinemático inverso mediante la matriz homogénea, el
principio es obtener el modelo cinemática inverso de un robot a partir del
conocimiento de su modelo directo, es decir, conocidas las relaciones que
expresan el valor de la posición y orientación del extremo del robot en función
de sus coordenadas articulares.
Dada la importancia y la cobertura de la robótica, surgió la necesidad de
desarrollar esta tecnología, con el diseño de un sistema que emula el
movimiento articulado de una mano, brazo y antebrazo, para asimilar y crear
conocimientos en este ramo de la investigación científica.
Es conocido que las técnicas de control lineal de manipuladores son
aproximaciones a un problema de control que en realidad es no lineal. La
aproximación lineal de un manipulador con “ ” grados de libertad parte de un
modelo formado por “ ” ecuaciones diferenciales lineales de segundo orden
5
desacopladas, de forma que es posible diseñar de forma independiente el
control para cada juntura.
El sistema tratado se dice que es completamente actuado porque el número de
grados de libertad coincide con el número de señales de control disponibles. En
caso contrario es subactuado.
El sistema de control tiene en cuenta las posibles incertidumbres en las masas
y longitudes de los elementos mecánicos del manipulador, así como la
presencia de pares de perturbación en las juntas rotacionales.
Manipulador
El manipulador es un ensamblaje concatenado de eslabones y articulaciones
que permiten la rotación o traslación entre dos de los eslabones. Estos
eslabones son sólidos y son sostenidos por una base (horizontal, vertical o
suspendida), con una articulación entre la base y el primer eslabón. El
movimiento y las articulaciones definen los “grados de libertad” del robot. Una
configuración típica de un brazo robot es la de tres grados de libertad.
Un robot se compone principalmente de tres partes: parte mecánica (forma y
tamaño de la carcasa), parte electrónica (compuesta por el circuito de control y
la sensórica del robot) y la parte de potencia (control de los servomotores de
Corriente Directa (DC) del robot). La carcasa constituye la parte mecánica, la
forma de esta es uno de los factores determinantes en el éxito del desarrollo de
una determinada tarea. La parte electrónica está constituida por el circuito de
control que a su vez contiene un microcontrolador el cual se programa
6
empleando un determinado algoritmo, en dicho algoritmo radica todas las
decisiones que va a efectuar el robot ante determinados casos dados de
acuerdo al problema.
La estructura a utilizar se basa en un robot de 3 grados de libertad rotacionales,
pero también un manipulador de este tipo puede ser logrado con dos
articulaciones rotacionales y una prismática donde se tendría el efector final, de
modo que el modelo dinámico del robot resulte más sencillo y manipulable para
efectuar el control y se evite redundancia en la medida de lo posible.
3.1 PLANTEAMIENTO DEL PROBLEMA DE INVESTIGACIÓN
¿Cómo controlar que el efector final de un manipulador robótico se ubique en la
posición deseada?
El diseño de estos robots manipuladores obedece a la tarea específica de
resolver el problema de ubicar el efector final en la posición deseada.
Por lo que sin duda que uno de los accesorios de mayor importancia para un
robot es el manipulador, el cual es un brazo mecánico articulado formado de
eslabones conectados a través de uniones o articulaciones que permiten un
movimiento relativo entre dos eslabones consecutivos.
Para el desarrollo de este trabajo, el manipulador utilizado obedecerá a uno
especializado donde su diseño corresponde al dominio de la tarea a realizar la
cual será: ubicarse en la posición deseada.
7
El robot manipulador esférico contará con tres articulaciones de tipo revoluta
cada una de un grado de libertad una para la base el cual tiene un movimiento
horizontal y la otras dos, de un grado de libertad cada una, para el “hombro” y
el “codo” haciendo una emulación con el cuerpo humano, tal como se indica en
la figura 3.1 .
Esta es un sistema que simula el movimiento articulado de la cintura, hombro y
codo capaz de reproducir algunos de los movimientos del brazo humano, a
base de motores de DC que emulan los músculos para los movimientos del
brazo y antebrazo.
Figura 3.1.- Emulación del brazo robótico con el cuerpo humano
El manipulador poseerá dos eslabones, los que unen las articulaciones y el
efector final. Los actuadores seleccionados son servomotores eléctricos de
Corriente Directa (DC), dada su facilidad de control con sensores incorporados
para determinar su posición. Los cuales se deben instalar directamente en los
ejes de cada articulación lo que se muestra en la figura 3.2 y 3.3, lo que se
conoce como control directo.
8
Figura 3.2.- Esquema del Robot Esférico de 3 Grados de Libertad
Figura 3.3.- Se indica el movimiento de los actuadores
Para este trabajo se ha diseñado un controlador no lineal de 3 entradas que
corresponden a la posición del efector final y 3 salidas que indican la posición
de las articulaciones (servomotores) basado en el método de Control no Lineal
por linealización exacta, de tal manera que el efector final del manipulador se
ubique en la posición deseada y la comparación se hace con respecto a un
controlador Fuzzy.
9
3.2 OBJETIVOS DE LA INVESTIGACIÓN
El objetivo de este trabajo es elaborar un modelo de sistema de control del
manipulador de un brazo robótico, el cual permita resolver el problema que
presenta el determinar la posición final del efector.
Para esto, en base a tres tareas principales, se describirán las características
que deba poseer el brazo, como cantidad y tipo de articulaciones y cantidad de
grados de libertad, entre otros, para finalmente describir el método de control a
utilizar y elaborar su diseño. Para lograr el resultado requerido se han
considerado los siguientes objetivos:
3.2.1 Objetivo General
Diseñar y Simular un sistema de Control no lineal de un robot esférico de 3
grados de libertad mediante la técnica de control por linealización exacta para
mantener el efector final del manipulador robótico en la posición requerida
actuando para lograrlo sobre los servomotores y los parámetros de las
articulaciones que hay entre cada uno de los eslabones que componen el
manipulador robótico.
3.2.2 Objetivo específico
Diseñar un Controlador no Lineal por Linealización Exacta aplicado a un
Manipulador Esférico de 3 grados de libertad y luego para efectos de
comparación se diseña un controlador empleando la técnica de Control Fuzzy,
utilizando MATLAB como herramienta computacional de programación para
efectos de simulación.
10
De los resultados de la simulación se podrá comparar las respuestas de las dos
técnicas utilizadas para luego determinar cuál será la más apropiada. .
3.3 ALCANCES DE LA INVESTIGACIÓN
En este proyecto de investigación, se aplicara la técnica y teoría
que se desarrolla en las asignaturas de la especialidad de
Ingeniería de Control y Automatización que se imparte en nuestra
facultad tales como en Ingeniería de Control I y II, Control Digital y
Control Avanzado.
Proporcionar a los alumnos de la Facultad de Ingeniería Eléctrica
y Electrónica consideraciones de diseño que pueden utilizar para
resolver problemas similares.
Que los alumnos entiendan que la teoría y prácticas que se
realizan en los laboratorios de las asignaturas de Electrónica y
Control y Automatización los capaciten para resolver problemas
de este tipo.
3.4 IMPORTANCIA Y JUSTIFICACIÓN DE LA INVESTIGACIÓN
La ejecución del presente trabajo, es un aporte más a otros trabajos que se
desarrollan en la Dirección de Investigación de la Facultad de Ingeniería
Eléctrica y Electrónica de la Universidad Nacional del Callao, debido a la
aplicación de estrategias o técnicas de control, tales como las indicadas.
Con este trabajo se busca incrementar dicho conocimiento en esta línea de
investigación. Su beneficio es aportar diferentes alternativas de solución para
11
problemas específicos que involucran la integración de las áreas de
Electrónica, Mecánica y Computación desde un punto de vista Mecatrónico.
3.5 FORMULACION DE LA HIPÓTESIS
Considerando el problema de controlar la posición de las articulaciones para
una determinada ubicación del efector final del manipulador, así como del
objetivo general y específico presentes en este trabajo de investigación se
plantea la siguiente hipótesis.
“El diseño de controladores mediante las técnicas de control avanzado tales
como control no lineal por realimentación de estado y la técnica de control
Fuzzy, permitirán controlar con precisión razonable la posición del efector final
del Manipulador Esférico de 3 grados de libertad.
Los cálculos estructurales se realizaron en forma estática, ya que se
consideraron bajas velocidades en el movimiento del brazo robótico, por lo que
se desprecian las dinámicas asociadas.
12
IV. MARCO TEORICO
4.1 Introducción
La robótica es una ciencia o rama de la tecnología, que estudia el diseño y
construcción de máquinas capaces de desempeñar tareas realizadas por el ser
humano o que requieren del uso de inteligencia. La robótica es esencialmente
multidisciplinaria y se apoya en gran medida en los progresos de la electrónica,
del control y automatización, de la mecánica y de la informática y, así como en
los de nuevas disciplinas tales como el reconocimiento de patrones y de
inteligencia artificial
4.2 Antecedentes del estudio
En un esfuerzo por encontrar soluciones a los problemas relacionados a
mejorar el rendimiento de controladores para la determinación de la posición y
orientación del efector final del manipulador, se han propuesto una gran
variedad de algoritmos y métodos de control. En general estos han sido
clasificados en dos categorías:
Métodos de control convencionales: Proporcional Derivativo,
Proporcional Integral Derivativo, Control de Torque Computado.
Métodos avanzados de control: Control Inteligente, Control Adaptivo,
Control, Control Robusto, Control Robusto Adaptivo
A continuación se presentan algunos antecedentes relacionados al Robot
Manipulador Esférico de 3 Grados de Libertad realizados:
En el Instituto Politécnico de Setúbal, Portugal se diseñó un robot
antropomórfico denominado IROS, que combina una cabeza binocular,
brazo y una mano, para investigación en coordinación de un
“visuomotor” y aprendizaje por imitación. El objetivo producir un sistema
13
semejante a la cinemática del brazo y mano. Los movimientos del
hombro de este robot fueron modelados a base de tres grados de
libertad, el codo con dos grados de libertad y la muñeca del brazo tiene
un grado de libertad. La cinemática inversa de este robot fue realizada
en dos partes: posición de la muñeca y orientación de la mano, los tres
primeros grados de libertad sirven para posicionar la muñeca y los otros
tres para orientar la mano.
Control por linealización exacta entrada salida de un manipulador plano
subactuado de los autores: Manuel Pérez Polo, José Vicente
Rocamora, José Ángel Berná Galiano, Javier Gil Chica del
Departamento de Física, Ingeniería de Sistemas y Teoría de la Señal.
Universidad de Alicante. Escuela Politécnica Superior, España. El
manipulador está formado por dos juntas rotacionales y una prismática,
que permite al conjunto seguir trayectorias definidas en el plano. El
modelo matemático del sistema se obtiene a través de las ecuaciones
de Lagrange-Euler. Se comprueba que el sistema tiene una dinámica
interna estable, lo que permite diseñar una ley de control PID
4.3 Bases teóricas
4.4 Linealización por Realimentación de Estados
La idea de la Linealización por Realimentación es el de cancelar los términos
no lineales, y obtener una dinámica lineal deseada. La teoría de la
Linealización por Realimentación es aplicable a una gran clase de sistemas
multivariables que sean descritos mediante una ecuación de estado de la
forma:
(4.1)
14
donde es el vector de estado del sistema y las funciones vectoriales y
describen la dinámica del sistema.
Derivadas y Corchetes de Lie
Derivada de Lie
Se define la derivada de Lie de una función en la dirección de como:
(4.2)
Las derivadas direccionales múltiples pueden definirse recursivamente según:
;
para (4.3)
Del mismo modo, si es un campo vectorial entonces, la función escalar
doble derivada direccional de respecto de y viene dada por:
(4.4)
Corchete de Lie
El corchete de Lie de dos campos vectoriales y es otro campo , definido
como:
(4.5)
La notación es frecuentemente usado en vez de . Los corchetes de
Lie repetidos pueden ser formulados en forma recursiva:
para (4.6)
Si , , , , , , son campos vectoriales suaves, y constantes y es
una función escalar suave de , se enuncian las propiedades del corchete de
Lie:
1) Bilinealidad:
(4.7)
2) Anti-conmutatividad:
(4.8)
15
3) Identidad de Jacoby:
(4.9)
4.4.1 Linealización entrada-estado SISO
Un sistema SISO no lineal, descrito por las ecuaciones:
(4.10)
se dice que es linealizable entrada-estado se existe una región Ω en , un
difeomorfismo y una ley de control no lineal
(4.11)
tales que las nuevas variables de estado y la nueva entrada
satisfagan la siguiente relación lineal invariante en el tiempo:
(4.12)
donde y vienen definidos por:
(4.13)
El estado se denomina estado linealizante, y la ley de control
se denomina ley de control linealizante
Grado Relativo del Proceso
Diferenciando la salida :
(4.14)
Si para algún entonces la siguiente transformación de
entrada:
(4.15)
genera una relación diferencial lineal entre la salida y la nueva entrada de
la forma:
16
(4.16)
Caso contrario si para todo , la diferenciación de resulta:
(4.17)
Si para todo , necesitamos diferenciar y así sucesivamente
, como sigue:
(4.18)
hasta que para algún entero y para algún
En esta situación, sustituyendo la ley de control:
(4.19)
en:
(4.20)
genera una relación diferencial lineal entre la salida y la nueva entrada de
la forma:
(4.21)
Por lo tanto, un proceso SISO posee un grado relativo en un punto de una
región , si para todo x ∈ :
(4.22)
(4.23)
Observe que es el número de diferenciaciones ejecutadas en la salida . En
general (donde es el orden del proceso). Si , la linealización
entrada-salida se denomina exacta.
Ley de Control SISO para Linealización Exacta
Consideremos la siguiente ley de control linealizada:
17
(4.24)
donde es una nueva entrada a ser determinada, y son dadas por
(4.24), y es el estado linealizado. Por lo que la función lineal invariante en el
tiempo es:
(4.25) donde:
La función de transferencia del proceso linealizado es:
(4.26)
La entrada puede ser diseñada empleando la técnica por ubicación de polos
en el sistema lineal equivalente dado en (4.26).
El sistema lineal equivalente se puede describir como:
(4.27)
donde es la trayectoria deseada e es la señal de error
de seguimiento. La ecuación característica del sistema lineal equivalente es
hallada de:
(4.28)
Para un comportamiento asintóticamente estable, con para
, todas las raíces de (4.28) debe ser localizada en el lado izquierdo del
plano , incluyendo el eje imaginario. Los parámetros del controlador
son seleccionados para encontrar tales requerimientos. La entrada
toma la forma (tener presente que ):
18
(4.29)
donde:
(4.30)
4.4.2 Linealización por Realimentación MIMO
Un proceso no lineal MIMO es llamado cuadrado si el número de entradas es
igual al número de salidas. El proceso cuadrado se describe como:
(4.31)
Donde son campos vectoriales suaves, y
son funciones suaves definidas en un conjunto abierto de . Se dice que este
sistema tiene grado relativo en el punto con respecto a las salidas
si:
1) y para
todo en un entorno de
2) La matriz
(4.32)
es no singular en
Observando las filas de la matriz , representa el grado relativo respecto de
la salida , el cual se define como el número de veces que se ha
19
de derivar en para que aparezca en forma explícita al menos una
componente del vector de entrada .
Linealización Entrada-Estado MIMO
Sea un sistema MIMO descrito por las ecuaciones
(4.33)
o de forma compacta
(4.34)
donde
se dice que es linealizable entrada-estado si dado un estado inicial existe
un entorno de , una transformación de coordenadas definida en Ω.
La técnica de linealización entrada-estado resuelve este problema en dos
etapas:
1. Encontrar una transformación de estado y una transformación
de entrada , tal que la dinámica del sistema no lineal se
transforma en una dinámica equivalente lineal invariante en el tiempo, en
la forma:
(4.35)
2. Usar técnicas de control lineal, como por ejemplo la técnica de
localización de polos, para diseñar
Linealización Exacta de sistemas en la Forma Canónica Controlable
La clase de sistemas no lineales representables en la forma
(4.36)
20
son exactamente linealizables mediante una redefinición de la variable de
control en términos del estado y de una entrada auxiliar externa .
La ecuación (4.36) exhibe una cadena de integración pura y, además, todas
sus no linealidades, así como la variable de control, están adscritas a la última
ecuación diferencial. Un sistema con tal estructura es llamado sistema no lineal
en la forma canónica controlable. En la figura 4.1 se muestra la estructura de
este sistema.
Figura 4.1.- Diagrama de bloques no lineal del sistema en forma canónica
Veamos el procedimiento de linealización:
1. Considerando la última línea de la ecuación (4.36), podemos definir la
entrada auxiliar equivalente como:
(4.37)
Entonces, reemplazando (4.37) en (4.36) se obtiene un sistema
perfectamente lineal, que exhibe una estructura de cadena de
integración pura:
(4.38)
21
2. La variable auxiliar de control puede entonces sintetizarse como una
ley de control que realimenta linealmente las variables de estado.
(4.39)
De esta manera el sistema lineal en lazo cerrado esta
dado por:
(4.40)
donde los coeficientes son los elementos de ganancia del
regulador, tal que el sistema en lazo cerrado es estable, debido a que la
estabilidad del sistema lineal (4.40) está determinada por la ubicación de
las raíces del polinomio característico:
Para estabilidad, todas las raíces del polinomio característico deben
ubicarse en el semiplano izquierdo del plano complejo, entonces diremos
que el polinomio es Hurwitz.
3. Comparando (4.38) con (4.41) nos permite establecer la siguiente
relación:
de la que se deduce la ley de control no lineal
g (4.41)
La linealización exacta obtenida será válida y útil, solamente en dos
circunstancias
22
1. La linealización es válida en todo el ambiente del espacio de estado
donde se cumpla:
(4.42)
2. La linealización es útil en la medida en que el sistema lineal en lazo
cerrado sea asintóticamente estable a cero.
4.5 CONTROL CON LÓGICA DIFUSA
Este modelamiento de control de posición y velocidad se desarrolla bajo
variables lingüísticas las cuales actúan de acuerdo con decisiones basadas en
unas reglas lingüísticas, esta teoría de control se fundamenta en las
operaciones booleanas de and, or y not, adicionalmente a la teoría de
conjuntos con el complemento, estas operaciones permiten el desarrollo de las
reglas lingüísticas.
Un conjunto en el universo es, desde el punto vista intuitivo, una colección de
objetos en el discurso tal que es posible decidir cuando un objeto del universo
está o no en esa colección. Abstrayendo la noción de conjunto, se puede
considerar que un conjunto es exactamente una función del universo en el
conjunto de valores [0,1] que asocia precisamente el valor 1 a los objetos que
estén en el conjunto y el valor de 0 a los que no. Un conjunto difuso es también
una función que asocia a cada objeto del universo un valor en el intervalo [0,1],
si es objeto en el universo y es el valor asociado a se dice que
es el grado de pertenencia del objeto al conjunto difuso .
En lógica borrosa, las operaciones entre conjuntos se plantean en forma de
operaciones borrosas entre sus funciones de pertenencia. La más utilizadas
son la Unión (), intersección (∩) y complemento (¬) para los conjuntos, y las
23
correspondientes suma lógica borrosa (), el producto lógico borroso () y
negación borrosa (~) para las funciones de pertenencia. Así, estas operaciones
aplicadas sobre conjuntos borrosos y con sendas funciones de pertenencia
y serian:
(4.43)
para la unión
Figura 4.2.- Operación Difusa de Unión
(4.44)
para la intersección
Figura 4.3.- Operación Difusa de Intersección
(4.45)
para el complemento
Figura 4.4.- Operación difusa de Complemento
24
El modelo de control no se basa en el modelo dinámico sino en las variables
lingüísticas haciendo más sencillo la implementación, para cada articulación es
necesario el desarrollo de un sistema de control y tiene el siguiente diagrama.
Figura 4.5.- Metodología en la Lógica Difusa
La salida del sistema se hace sobre los motores y del par a desarrollar para
lograr que alcance la posición deseada, esto se hace bajo el sistema de
retroalimentación con la ayuda de la sensorica que permite detectar la posición
angular de cada articulación.
Este modelamiento se puede realizar para casos MIMO, en los cuales un solo
sistema de reglas permite el control de los diferentes motores de las
articulaciones. El modelamiento se hace en menos tiempo y permite que el
sistema tenga autonomía de decisión para corregir el error de acuerdo con los
anteriores eventos, esto muestra la capacidad de aprendizaje o principios de
Inteligencia Artificial (I.A.) que son los modelos que actualmente se están
investigando.
4.6 El manipulador robótico
Para determinar con precisión las ecuaciones matemáticas que determinan la
dinámica del manipulador, es necesario saber cómo es la estructura del
manipulador robótico así como también si el sistema es o no lineal.
25
4.6.1 Estructura de los robots manipuladores.
Los manipuladores son, esencialmente una cadena cinemática abierta formada
por un conjunto de eslabones interrelacionados entre sí mediante
articulaciones. Las articulaciones permiten el movimiento relativo entre los
sucesivos eslabones.
Figura 4.6.- Cadena cinemática abierta.
Definición de grados de libertad.
Se define Grado de Libertad a cada uno de los movimientos básicos que se
deben realizar para generar una secuencia entre 2 puntos del espacio
tridimensional.
Tipos de articulaciones
Articulación de rotación: Suministra un grado de libertad, consistente en una
rotación alrededor del eje de la articulación (es la más empleada).
Esquema Articulación Grados de libertad
Figura 4.7.- Articulación Revoluta
26
Articulación prismática: El grado de libertad consiste en una traslación a lo
largo del eje de la articulación
Esquema Articulación Grados de libertad
Figura 4.8.- Articulación Prismática
Articulación cilíndrica: Existen 2 grados de libertad que son: 1 es rotación y el
otro es traslación.
Esquema Articulación Grados de libertad
Figura 4.9.- Articulación Cilíndrica
Articulación esférica: Combinan 3 giros en 3 direcciones perpendiculares al
espacio.
Esquema Articulación Grados de libertad
Figura 4.10.- Articulación Esférica
27
Estructura y configuraciones básicas
La estructura típica de un manipulador robótico consiste en un brazo
compuesto por elementos con articulaciones entre ellos. En el último se coloca
un elemento terminal tal como una pinza o un dispositivo especial para realizar
operaciones.
Configuración cartesiana: Tiene 3 articulaciones prismáticas, es bastante
usual en estructuras industriales, como pórticos, empleados para transportar
cargas voluminosas. Las especificaciones de la posición de un punto se
efectúa mediante coordenadas cartesianas (X, Y, Z).
Figura 4.11.- Configuración cartesiana
Configuración cilíndrica: Tiene 2 articulaciones prismáticas y una de rotación,
la primera articulación es normalmente de rotación, la posición se especifica de
forma natural en coordenadas cilíndricas.
Figura 4.12.- Configuración cilíndrica
28
Configuración polar: Esta configuración se caracteriza por 2 articulaciones de
rotación y una prismática, en este caso, las variables articulares expresan la
posición del extremo del tercer enlace en coordenadas polares.
Figura 4.13.- Configuración polar
Configuración angular: Es una estructura con 3 articulaciones de rotación. La
posición del extremo final se especifica con coordenadas angulares.
Este tipo de estructura tiene mejor acceso a espacios cerrados y es fácil desde
el punto de vista constructivo. Se utiliza en procesos donde se requiera cierta
complejidad.
Figura 4.14.- Configuración angular
Es esta última configuración la base para la construcción del robot esférico de
tres grados de libertad
4.7 Modelado de robot
4.7.1 Cinemática del robot
La cinemática estudia el movimiento del manipulador robótico con respecto a
un sistema de referencia seleccionado. El estudio que realiza la cinemática se
29
interesa por la descripción analítica del movimiento espacial del robot, y en
particular en las relaciones existentes entre la posición y orientación del
extremo final y los valores que toman sus coordenadas articulares.
La cinemática busca resolver dos problemas fundamentales:
1. El problema cinemático directo: que busca conocer la posición y
orientación del extremo final del robot conociendo los valores de las
coordenadas articulares y los parámetros estructurales del manipulador
robótico.
2. El problema cinemático inverso: el cual consiste en la búsqueda de los
valores que deben tomar las coordenadas articulares, conociendo los
parámetros estructurales del robot, para alcanzar una posición y
orientación deseadas del efector final del manipulador robótico.
4.7.2 Modelado cinemático directo
Para obtener el modelo cinemático directo se cuenta con diferentes medios,
como lo son:
Método geométrico: con este método se buscan tantas relaciones como
sean necesarios con las cuales se pueda obtener la ubicación y la
posición del efector final.
Matrices de transformación homogéneas: por medio de matrices se
representan las rotaciones y traslaciones que existen a lo largo de la
cadena cinemática completa.
Método de cuaterniones: en este método las rotaciones y traslaciones
existentes en la cadena cinemática son representados por los
cuaterniones.
30
En el presente trabajo de investigación abordaremos el método de las matrices
homogéneas debido a las siguientes razones:
1. Representa un método sistemático para obtener el modelo cinemático
directo de cualquier manipulador robótico.
2. Desde un punto de vista computacional es fácil implementar, sin
embargo se sacrifica el costo computacional que representa las
multiplicaciones de matrices.
A partir de un mismo desarrollo es posible determinar la posición y orientación
del efector final
Dado que un robot se puede considerar como una cadena cinemática formada
por objetos rígidos o eslabones unidos entre sí mediante articulaciones, se
puede establecer un sistema de referencia fijo situado en la base del robot y
describir la localización de cada uno de los eslabones con respecto a dicho
sistema de referencia. De esta forma, el problema de la cinemática directa se
reduce a encontrar una matriz homogénea de transformación en función de
las coordenadas articulares que relacione la posición del extremo del robot
respecto del sistema de referencia fijo.
4.7.3 Matriz de rotación.
Una matriz de rotación de se puede definir como una matriz de
transformación que opera sobre un vector de posición en su espacio euclideo
tridimensional y transforma sus coordenadas expresadas en un sistema de
coordenadas rotado , a un sistema de coordenadas de referencia
teniendo sus orígenes coincidentes en el punto . El sistema está fijo en
el espacio tridimensional y se considera como el sistema de referencia.
4.7.4 Transformación homogénea.
31
Una extensa parte del estudio de la cinemática trata de establecer la relación
que existe entre un sistema de coordenadas y otro marco de referencia. La
relación que existe entre ambos sistemas se llama transformación homogénea,
la cual involucra a la geometría en tres dimensiones, por lo tanto, este
esquema permite analizar las operaciones de rotación de un sistema de
coordenadas a otro, así como las operaciones de translación en la que se
conocen las coordenadas de un vector que se desplaza en algunos de los tres
ejes del marco de referencia.
Rotación
Si se tiene un marco de referencia fija y otro
que está rotado un ángulo con respecto al primero como se muestra en la
siguiente figura.
Figura 4.15.- Rotación de un sistema de coordenadas alrededor de eje
La rotación del marco , está hecho tomando como base el eje , por lo
tanto, cualquier vector representando en el eje , tendrá el mismo componente
en el eje ; esto no sucede para los ejes y . Para poder representar un
vector que se encuentra en el marco , en el marco , es
necesario hacer una transformación de coordenadas, y el procedimiento es el
siguiente:
Se busca la proyección del vector unitario , (del eje ), en (del eje ), el
valor de esta proyección es .
32
Posteriormente se busca la proyección de , en el mismo y , con el mismo
procedimiento entonces se tiene que la proyección de , en es igual a
y la proyección en es .
Con estos resultados se obtiene los tres primeros elementos de la matriz de
transformación la cual tiene la siguiente estructura:
(4.46)
Donde:
El paso siguiente es encontrar las proyecciones restantes, las cuales son:
Finalmente la matriz de transformación resulta:
(4.47)
Como conclusión de lo anterior, se puede decir de la matriz lo siguiente:
Es útil para conocer la orientación de un vector, que está vinculado a un
marco de referencia en otro marco de referencia.
El marco de referencia dos está rotado radianes con respecto al marco
de referencia uno, tomando como pivote el eje .
El marco de referencia uno es denominado marco fijo y el dos es
variable con respecto al primero.
Cada eslabón de un robot manipulador se considera idealmente rígido, con una
longitud conocida, de esta forma el motor que mueve a cada eslabón hará que
33
el robot manipulador tenga una dirección y sentido, por lo tanto, cada una de
las articulaciones puede ser representada en forma vectorial.
La transformación de rotación
es la matriz de transformación asociada a
cada eslabón en otro marco de referencia rotado radianes, es decir, es la
representación del eslabón uno (sistema de referencia uno), respecto al
sistema del eslabón cero (sistema de referencia base).
Sin embargo, por ser en un espacio de tres dimensiones, las rotaciones puedan
presentarse para cualquiera de los tres ejes, por lo que al aplicar el mismo
análisis presentado en el primer caso, se obtienen los siguientes resultados:
Para el caso de la rotación respecto al eje :
(4.48)
y para la rotación respecto al eje :
(4.49)
Estas tres transformaciones permiten describir un vector en un marco que rota
un ángulo alrededor de los ejes respectivamente, es decir, sólo
se tienen que multiplicar las matrices en el orden adecuado,
puesto que en la multiplicación de matrices no existe la propiedad de
conmutación.
El análisis anterior solo define la matriz rotación en los tres ejes, y debido a que
algunos robots manipuladores poseen articulaciones prismáticas que se
mueven linealmente, por tanto, se tiene que definir ahora la matriz
transformación de translación, la cual permitirá describir un vector asociado a
34
un marco de referencia que se traslada una distancia lineal con respecto a otro
sistema de referencia.
Así, tomando un marco de referencia fijo con respecto a otro
que se mueve como se observa en la figura 4.15, se requiere representar un
vector asociado al marco móvil respecto al marco fijo, es decir, se desea
conocer la orientación y dirección de un vector asociado al sistema que
se mueve linealmente con respecto a los ejes del sistema .
Figura 4.16.- Un sistema de referencia desplazado con respecto a otro.
Entonces, un punto se representa tanto en .como en .
Puesto que los ejes coordenados respectivos de los dos sistemas son
paralelos, los vectores del sistema .y los del sistema están
relacionados por:
o también
Como se puede observar, a cada uno de los ejes del sistema móvil se le suma
la distancia que existe entre el marco móvil y fijo con respecto a cada eje del
sistema fijo. Una relación más general entre los sistemas de coordenadas
y puede ser expresada como una combinación de una
rotación pura y una traslación pura, es decir;
(4.50)
35
Por lo tanto, la transformación homogénea puede ser expresada como:
(4.51)
En robótica generalmente interesa conocer el valor de , que es una matriz
y de , que es una matriz considerándose la componente de
perspectiva nula y la de escalado la unidad.
Así, para el primer caso, que representa un movimiento de traslación respecto
al eje , se tiene una matriz de traslación en representación homogénea es:
(4.52)
Siguiendo con el mismo análisis, las matrices de traslación para el eje y
resultan:
(4.53)
La representación homogénea de las matrices de rotación, está dada por:
4.7.5 CONVENCIÓN DENAVIT- HARTENBERG (D-H).
En general, un robot de grados de libertad formado por eslabones unidos
por articulaciones, de forma que cada par articulación-eslabón constituye un
grado de libertad.
36
A cada eslabón se le asocia un sistema de referencia solidario a él y, utilizando
las transformaciones homogéneas, es posible representar las rotaciones y
traslaciones relativas entre los distintos eslabones que componen el robot.
Cuando se consideran todos los grados de libertad, a la matriz se le suele
denominar . Así, dado un robot de tres grados de libertad, se tiene que la
posición y orientación del eslabón final vendrá dada por la matriz :
(4.54)
Según la representación D-H, escogiendo adecuadamente los sistemas de
coordenadas asociados para cada eslabón, será posible pasar de uno al
siguiente mediante 4 transformaciones básicas que dependen
exclusivamente de las características geométricas del eslabón.
Figura 4.17.- Convención de parámetros para la representación D-H para un
eslabón giratorio.
Estas transformaciones básicas consisten en una sucesión de rotaciones y
traslaciones que permitan relacionar el sistema de referencia del elemento
con el sistema del elemento . Las transformaciones en cuestión son las
siguientes:
1. Rotación alrededor del eje un ángulo .
37
2. Traslación a lo largo de una distancia ; vector .
3. Traslación a lo largo de una distancia ; vector .
4. Rotación alrededor del eje , un ángulo .
Donde:
Es el ángulo que forman los ejes y medido en un plano
perpendicular al eje , usando la regla de la mano derecha. Se trata
de un parámetro variable en articulaciones giratorias.
Es la distancia a lo largo de desde el origen de sistema de
coordenadas , hasta la intersección del eje con el eje
. Se trata de un parámetro variable en articulaciones prismáticas.
Es la distancia a lo largo del eje que va desde la intersección del eje
con el eje hasta el origen del sistema en el caso de
articulaciones giratorias. En el caso de articulaciones prismáticas, se
calcula como la distancia más corta entre los ejes y .
Es el ángulo de separación entre el eje y el eje medido en un
plano perpendicular al eje , utilizando la regla de la mano derecha.
Los cuatro parámetros de D-H ( , , , ) dependen únicamente de las
características geométricas de cada eslabón y de las articulaciones que le unen
con el anterior y siguiente.
Algoritmo de Denavit- Hartenberg para la obtención del modelo.
DH1. Numerar los eslabones comenzando con (primer eslabón móvil de la
cadena) y acabando con (último eslabón móvil). Se numerara como eslabón
0 a la base fija del robot.
38
DH2. Numerar cada articulación comenzando por 1 (la correspondiente al
primer grado de libertad y acabando en ).
DH3. Localizar el eje de cada articulación. Si esta es rotativa, el eje será su
propio eje de giro. Si es prismática, será el eje a lo largo del cual se produce el
desplazamiento.
DH4. Para de a , situar el eje , sobre el eje de la articulación .
DH5. Situar el origen del sistema de la base ( ) en cualquier punto del eje .
Los ejes e se situaran dé modo que formen un sistema dextrógiro con .
DH6. Para de 1 a , situar el sistema ( ) (solidario al eslabón ) en la
intersección del eje con la línea normal común a y i. Si ambos ejes se
cortasen se situaría ( ) en el punto de corte. Si fuesen paralelos ( ) se situaría
en la articulación .
DH7. Situar en la línea normal común a y .
DH8. Situar de modo que forme un sistema dextrógiro con y .
DH9. Situar el sistema ( ) en el extremo del robot de modo que coincida
con la dirección de y sea normal a y .
DH10. Obtener como el ángulo que hay que girar en torno a para que
y queden paralelos.
DH11. Obtener como la distancia, medida a lo largo de , que habría que
desplazar ( ) para que y quedasen alineados.
DH12. Obtener ; distancia medida a lo largo de (que ahora coincidiría con
) que habría que desplazar el nuevo ( ) para que su origen coincidiese
con ( ).
DH13. Obtener como el ángulo que habría que girar en torno a (que ahora
coincidiría con ), para que el nuevo ( ) coincidiese totalmente con ( ).
39
DH14. Obtener las matrices de transformación .
DH15.Obtener la matriz de transformación que relaciona el sistema de la base
con el del extremo del robot
.
DH16. La matriz define la orientación (submatriz de rotación) y posición
(submatriz de traslación) del extremo referido a la base en función de las
coordenadas articulares.
Una vez obtenidos los parámetros D-H, el cálculo de las relaciones entre los
eslabones consecutivos viene dado por la matriz que se obtiene como
producto de un conjunto de matrices .
Figura 4.18.- Figura utilizada para determinar los parámetros D-H
1
2
3
Tabla 4.1.- Valores de la tabla de parámetros D-H de la figura 4.18
40
De la tabla anterior
Eslabón 1
: Posición y orientación del sistema de referencia de la base con
respecto al sistema de referencia base
Eslabón 2
: Posición y orientación del sistema de referencia de la primera varilla
con respecto al sistema de referencia :
Eslabón 3
: Posición y orientación del sistema de referencia de la segunda varilla
con respecto al sistema de referencia :
Donde
Con las matrices anteriores se pude obtener la matriz de transformación total
del robot manipulador
Substituyendo las matrices de los eslabones en l ecuación anterior se tiene:
Desarrollando obtenemos:
41
Comparando con la forma general de la matriz transpuesta ecuación (1),
observa que las coordenadas del efector final estarán dadas por:
a
Obtenemos:
Ecuaciones que forman el modelo cinemático directo del robot manipulador.
Se determina mediante matemática simbólica de MATLAB, y el programa se
muestra en el anexo A.
4.8 Dinámica del robot.
4.8.1 Modelado mediante la formulación de Lagrange-Euler.
Este planteamiento utiliza, las matrices que relacionan el sistema de
coordenadas de referencia del elemento con el elemento .
Se presenta a continuación al algoritmo a seguir para obtener el modelo
dinámico del robot por el procedimiento de Lagrange-Euler (L-E).
Algoritmo computacional para el modelado dinámico por Lagrange-Euler.
L-E 1.Asignar a cada eslabón un sistema de referencia de acuerdo a las
normas de D-H.
L-E 2.Obtener las matrices de transformación para cada elemento .
L-E 3.Obtener las matrices definidas por:
42
(4.55)
L-E 4.Obtener las matrices definidas por:
(4.56)
L-E 5.Obtener las matrices de pseudo inercias para cada elemento, que
vienen definidas por:
Integral de cada uno de los elementos que componen la matriz:
(4.57)
Donde las integrales están extendidas al elemento considerado, y
son las coordenadas del diferencial de masa respecto al sistema de
coordenadas del elemento.
L-E 6.Obtener la matriz de inercias cuyos elementos vienen definidos
por:
(4.58)
donde es la traza y es el numero de grados de libertad
L-E 7.Obtener los términos definidos por:
(4.59)
L-E 8.Obtener la matriz columna de fuerzas de Coriolis y centrípeta cuyos
elementos vienen definidos por:
(4.60)
L-E 9.Obtener la matriz de fuerzas de gravedad cuyos elementos están
definidos por:
(4.61)
43
: Es el vector de gravedad expresado en el sistema de la base y viene
expresado por y : Es el vector de
coordenadas homogéneas del centro de masas del elemento expresado en el
sistema de referencia del elemento .
L-E 10.Finalmente la ecuación dinámica del sistema será:
(4.62)
Donde t es el vector de fuerzas y pares motores efectivos aplicados sobre cada
coordenada .
4.9 Modelo cinemático inverso
Figura 4.19.- Manipulador indicando sus dimensiones y posición del Centro de
Gravedad
El problema cinemático inverso consiste en obtener el valor de las coordenadas
articulares para llegar a un punto determinado, para ello existen diferentes
métodos, entre los cuales se encuentran:
Método geométrico: por medio de la geometría se deben buscar tantas
relaciones como sean necesarias para definir los valores de las
44
coordenadas articulares a partir de la ubicación deseada del efector
final.
Método de las matrices de transformación inversa: a partir de las
matrices de transformación de toda la cadena cinemática y de cada uno
de los eslabones del robot manipulador se obtienen relaciones que
definan los valores de las coordenadas articulares a partir de la
ubicación deseada del efector final.
Método de desacoplo cinemático: consiste en separar el problema de la
posición y de la orientación del efector final y después resolver el
problema cinemático inverso con alguno de los dos métodos anteriores.
Seleccionamos el método geométrico debido a la facilidad de aplicación
cuando se trabaja con el problema de la posición del efector final.
4.9.1 Modelo cinemático inverso del manipulador robótico
Por comodidad repetimos la figura 4.18 para la determinación de la cinemática
directa en la figura 4.20 para el análisis de la cinemática inversa.
Figura 4.20.- Esquema utilizado para el análisis de la cinemática inversa
Para aplicar el método geométrico presentamos el siguiente esquema:
45
Eje Y
Eje X
q1
r
Py
Px P
Figura 4.21.- Vista superior del manipulador robótico
De la figura podemos obtener fácilmente la siguiente relación:
(4.63)
A continuación se muestra un esquema de la vista lateral del robot de donde se
obtendrán los valores que determinan las otras dos coordenadas articulares.
Eje X-Y
Eje Z
Pz
r
b
a
q2
q3
d2
d3
P
Figura 4.22.- Vista lateral del robot manipulador
De la figura por ley de cosenos:
Despejando , se tiene
Por identidad trigonométrica:
Despejando , y dividiendo ambos miembros por
obtenemos:
46
Donde como ya se definió previamente
La diferencia del cálculo de radica en que, para la configuración codo arriba
tiene el signo negativo para el resultado de la raíz cuadrada y la configuración
codo abajo tiene el signo positivo para el resultado de la raíz cuadrada.
Regresando a la figura anterior se ve que
Sustituyendo las ecuaciones en la ecuación de , obtenemos
Las ecuaciones de forman el modelo cinemático inverso del
manipulador robótico y son la solución del problema.
V MATERIALES Y METODOS
47
METODOLOGÍA
De la teoría expuesta anteriormente resolveremos el problema mediante
cinemática inversa del manipulador de 3 grados de libertad cuya configuración
geométrica es del tipo RRR o articulado horizontal, en el que las articulaciones
son todas de revolución o revoluta tal como se muestra en la figura 5.2
5.1. Relaciones entre las variables de la investigación
Como estamos aplicando la cinemática inversa las variables independientes
son las coordenadas de posición del efector final las cuales determinan los
voltajes de control aplicados a los servomotores del manipulador y las salidas
la ubicación de los servomotores que determinan las posiciones articulares del
robot.
Figura 5.1.- Relaciones de las variables
Variables independientes (variables de entrada):
Son los voltajes de control de entrada aplicada a los motores que conforman
las articulaciones del robot y que proporcionan los torques correspondientes.
= voltaje aplicado al servomotor 1
= voltaje aplicado al servomotor 2
= voltaje aplicado al servomotor 3
Variables dependientes (variables de salida):
48
Son las posiciones articulares del robot y que nos determinan la posición del
efector final.
Posición de la articulación DC1 Posición de la articulación DC2
Posición de la articulación DC3
5.2. Descripción del Sistema
El Sistema Robot Manipulador Esférico de 3 Grados de Libertad es mostrado
en la Figura 5.2.
Figura 5.2.- Esquema del Robot Manipulador Esférico de 3GL
A continuación se describe los tres grados de libertad usados en el proceso:
1. Primer Grado de Libertad: Está compuesto por un servomotor DC1 en
posición vertical con sensor incorporado, y altura , a su vez en la parte
superior de dicho cilindro de área , irá el otro servomotor en posición
horizontal que corresponde al segundo grado de libertad.
2. Segundo Grado de Libertad: compuesto por un servomotor DC2 con
sensor incorporado, y una varilla rígida, de tal manera que en el eje de
49
dicho servomotor, en posición horizontal, irá acoplado con dicha varilla
de longitud , en el extremo de dicha varilla irá el otro servomotor en
posición horizontal que corresponde al tercer grado de libertad.
3. Tercer Grado de Libertad: compuesto por otro servomotor DC3 con
sensor incorporado, y una varilla rígida, de tal manera que en el eje de
dicho servomotor, en posición horizontal, irá acoplado con dicha varilla
de longitud , en el extremo de dicha varilla podrá ir un efector final.
Figura 5.3.- Esquema con las medidas del Manipulador, sistemas de
referencias y posición de los centros de gravedad del Manipulador
5.3. Modelamiento de la Planta
El modelado de la planta consiste en determinar la descripción matemática
(usualmente un conjunto de ecuaciones diferenciales). Tal modelado describe
la dinámica del proceso y tiene por objetivo conocer la relación entre el
50
movimiento del robot y las fuerzas implicadas en el mismo. Para determinar las
ecuaciones del modelo usaremos el algoritmo de Lagrange-Euler.
5.4. El Modelo Dinámico
Para determinar la ecuación dinámica del manipulador existen varios métodos
tales como el método de Newton-Euler, el método de Lagrange-Euler, entre
otros.
Para el manipulador en estudio usaremos el método de Lagrange-Euler que
emplea la fórmula Lagraniana conjuntamente con la representación de Denavit-
Hartenberg (D-H). En la Figura 5.3 se muestra los sistemas de referencias
usados para la representación D-H.
Los centros de gravedad (CG), se encuentran en los puntos medios de los
eslabones
Con esta información se procede a calcular los parámetros necesarios para
obtener la dinámica directa, es decir obtener las matrices de transformación
homogénea
5.5. El Procedimiento Denavit-Hartemberg
Estableciendo el Sistema de Coordenadas D-H
Un manipulador robótico consiste de una secuencia de cuerpos rígidos (los
eslabones) articulados por junturas rotacionales o prismáticas. Cada par de
articulación-eslabón representa un grado de libertad (GL).
Para resolver su cinemática directa aplicaremos cada uno de los pasos del
algoritmo D-H para la asignación sistemática de un sistema de coordenadas en
cada elemento de este robot.
51
Comenzamos por fijar el sistema de coordenadas ubicado en la base del
robot y respecto al cual se calcula la posición y orientación del efector final.
Para establecer este sistemas de coordenadas solo tendremos en cuenta que
el eje este alineado con el eje de la primera articulación (servomotor DC1) y
que sea dextrógiro.
A partir de aquí comenzaremos a aplicar los pasos del algoritmo que
sistemáticamente va estableciendo un sistema de coordenadas a cada
elemento. Así, para el sistema de coordenadas colocaremos en primer
lugar el eje (servomotor DC2) que debe estar alineado con el eje de
movimiento de la siguiente articulación, en este caso con el sistema de
coordenadas . Para establecer el origen trazaremos la normal común
entre los ejes y y situaremos el origen en el punto donde esta normal corte
al eje . Pero en este caso los ejes y se intersectan por lo que el origen lo
colocaremos justo en el punto de intersección. A continuación colocaremos el
eje , que debe estar sobre la normal común entre los ejes y . Dado que
dichos ejes se intersectan, una dirección perpendicular a ambos seria la que
resulte del producto vectorial de y quedando el eje como se muestra
en la figura 5.3. El sistema de coordenadas se completa asignando el eje
para formar un sistema dextrógiro.
Continuamos con la asignación del sistema de coordenadas (servomotor
DC3). De acuerdo al algoritmo D-H establecemos en primer lugar el eje que
debe estar alineado con el eje de movimiento de la siguiente articulación, es
decir la articulación 3. Para colocar el origen trazaremos la normal común
entre los ejes y . Como estos ejes son paralelos, habrá infinitas normales
por lo que se escoge justo a al que pasa por la articulación y donde fijaremos el
52
origen del sistema de coordenadas. El eje se establecerá sobre la normal
común entre los ejes y . El sistema de coordenadas se completa
asignando el eje para formar un sistema dextrógiro.
Finamente, establecemos el sistema de coordenadas , por ser el último
elemento y al no tener el efector final una pinza no es practicable el algoritmo
D-H.
Por tanto, tomamos la solución de replicar el sistema de coordenadas del
sistema anterior.
Una vez establecido los sistemas de coordenadas de cada elemento
procederemos con el cálculo de la tabla de parámetros D-H como paso previo a
la obtención de las matrices . Para ello planteamos una tabla como la que
se muestra a continuación y rellenamos sus celdas de acuerdo al significado de
los parámetros D-H.
Articulación
1
2
3
Tabla 5.1.- Tabla de parámetros D-H
Determinación de los parámetros del sistema
Parámetros D-H
Para cada articulación se definen cuatro parámetros, tres de ellos constantes y
uno variable.
53
Los cuatro parámetros geométricos del manipulador se determinan de la
siguiente forma:
La primera fila corresponde a los parámetros cinemáticos del elemento 1. El
ángulo es el ángulo que tenemos que girar respecto al eje para alinear el
eje con el eje . Como se aprecia depende del giro de la articulación
siendo por tanto la variable de articulación. El resto de parámetros permanecen
constantes. es la distancia desde el origen hasta el punto de intersección del
eje con el eje . En nuestro caso el parámetro coincide con la longitud
del elemento . Como la distancia medida sobre la perpendicular común entre
y cero, también lo será el parámetro . El último parámetro es el
ángulo que hay que girar con respecto al eje para hacer coincidir el eje
con el eje . De la figura 5.3 se deduce que el ángulo a girar es de 90º.
Del mismo modo que en la articulación 1, calcularemos el valor de los
parámetros para los elementos 2 y 3. Los parámetros y se corresponden
con las longitudes de los eslabones, y , mientras que los valores de y
son nulos. Como los ejes , y están alineados no será necesario el
último paso correspondiente al giro respecto de los ejes y para traer en
coincidencia los ejes y y los ejes y por tanto los parámetros y
serán ambos nulos. La tabla resultante queda, pues, de la siguiente forma:
Articulación
1 0 90º
2 0º 0
54
3 0º 0
Tabla 5.2.- Valores de la tabla de parámetros D-H
Matriz de Transformación Homogénea D-H
Una vez calculada la tabla de parámetros estamos en disposición para calcular
las matrices de transformación homogéneas que nos relacionan elementos
adyacentes, es decir, las matrices .
Utilizando el valor de los parámetros de cada una de las filas de la tabla 4.2,
obtendremos las matrices ,
y que mostramos seguidamente,
: Posición y orientación del sistema de referencia de la base con
respecto al sistema de referencia base
: Posición y orientación del sistema de referencia de la primera varilla
con respecto al sistema de referencia
: Posición y orientación del sistema de referencia de la segunda varilla
con respecto al sistema de referencia
55
Simplificando las notaciones de funciones y de acuerdo a las
siguientes expresiones,
Ahora multiplicamos las matrices de transformación homogénea para calcular
la matriz esto nos dará la orientación y posición del sistema de coordenadas
del efector final, , respecto del sistema de coordenadas ubicado en la
base del robot en función de las variables de la articulación. La matriz
resultante es:
: Posición y orientación del sistema de referencia 1 de la base con
respecto al sistema de referencia base
: Posición y orientación del sistema de referencia 2 de la primera varilla
con respecto al sistema de referencia 1 :
: Posición y orientación del sistema de referencia 3 de la segunda varilla
con respecto al sistema de referencia 2 :
56
: Posición y orientación del sistema de referencia 3 de la segunda varilla
con respecto al sistema de referencia base :
Las matrices se determinan mediante matemática simbólica de MATLAB, y el
programa se muestra en el apéndice A.
Programación del Algoritmo Lagrange-Euler
El programa de cálculo de la ecuación dinámica del robot manipulador esférico
de tres grados de libertad (3GL) se determina aplicando el Toolbox de
Matemática Simbólica de. La ecuación dinámica obtenida para los tres grados
de libertad es:
Primer grado de libertad:
(5.1)
Segundo grado de libertad:
(5.2)
Tercer grado de libertad:
(5.3)
que son los elementos del torque , aplicados a las articulaciones.
5.6. Problema cinemático inverso Toolbox Hemero
La solución del problema cinemático inverso para un robot de 3 grados de
libertad es demasiado complicada para resolverlo manualmente.
57
Para solucionar este problema recurrimos al uso del Toolbox Hemero de
Matlab. En un archivo .m se almacena el algoritmo que permitirá encontrar una
solución a la cinemática inversa de nuestro manipulador a partir de los
parámetros Denavit-Hartemberg obtenidos de la cinemática directa. Esta rutina
y su explicación se incluyen en el apéndice E.
5.7. Modelo dinámico del manipulador
Para resolver el modelo dinámico del manipulador mediante la ecuación de
movimiento de Lagrange debemos construir un diagrama de cuerpo libre del
manipulador.
Descomponemos cada elemento que conforma el manipulador robótico,
calculando su energía cinética (traslacional y rotacional) y energía potencial
gravitacional.
Primer eslabón (base)
Energía cinética
Se determina considerando la masa del cuerpo en cuestión (base), el radio de
giro se mide desde el eje de rotación (línea punteada en la figura 5.4) hasta la
superficie exterior del cuerpo y la velocidad angular del eslabón base.
(5.4)
58
Figura 5.4.- Diagrama de cuerpo libre del primer eslabón (base)
La energía cinética traslacional no existe en la base ya que esta solo rota y no
se traslada.
Segundo eslabón
Energía cinética:
Figura 5.5.- Diagrama de cuerpo libre del segundo eslabón
(5.5)
Energía potencial:
(5.6)
Tercer eslabón
59
Figura 5.6.- Diagrama de cuerpo libre del tercer eslabón
Energía cinética:
(5.7)
Donde es la velocidad que el segundo eslabón transmite al tercero cuando el
segundo se mueve, donde:
g
gbsin
Calculamos el Lagraniano haciendo la sumatoria de energías cinéticas y
restando la sumatoria de energías potenciales gravitacionales:
Encontramos los pares o torques cinemáticos para cada actuador mediante la
siguiente ecuación:
60
g cos g cos
g
g
Combinando estas ecuaciones en:
Para encontrar la matriz de los pares aplicado a los actuadores.
En el apéndice se encuentran los programas realizados en Matlab y también
con el Toolbox de Hemero de Matlab para en análisis de la cinemática inversa.
5.8 Diseño del Controlador Difuso
61
La lógica difusa es una lógica alternativa a la lógica clásica que pretende
introducir un grado de vaguedad en las cosas que evalúa ya que en el mundo
en que nos desarrollamos existe mucho conocimiento ambiguo e impreciso, por
lo que la lógica difusa fue diseñada para imitar el comportamiento del ser
humano.
La lógica difusa en comparación con la lógica convencional permite trabajar
con información que no es exacta, en oposición de la lógica convencional que
permite trabajar con información exacta y precisa.
5.9 ¿En qué situaciones es útil aplicar la lógica difusa?
La lógica difusa se puede aplicar en procesos demasiados complejos, cuando
no existe un modelo matemático preciso. También se puede aplicar cuando
ciertas partes del sistema a controlar son desconocidas y no pueden medirse
en forma confiable y cuando el ajuste de una variable puede producir el
desajuste de otras.
5.10 Fuzzy Logic Toolbox
Es una herramienta de Matlab que permite simular el comportamiento de un
controlador difuso mediante un Fuzzy Inference Sistem (FIS) o sistema difuso
de inferencia. La interfaz gráfica de un FIS hace que la programación de un
controlador difuso sea muy sencilla y amigable.
Para utilizar esta herramienta se teclea la palabra fuzzy en la ventana de
comandos de Matlab, la cual abrirá la ventana FIS Editor, la cual se muestra en
la figura 5.7
62
Figura 5.7 Ventana FIS Editor
El método de inferencia que se aplicar es de Mandani y después definimos las
variables de entrada y salida que se utilizara en el controlador, es decir
configuramos el FIS
5.11 Configuración y programación del controlador difuso
La programación y configuración del controlador se realizo utilizando Fuzzy
Logic Toolbox, herramienta que permitió elegir el método de inferencia, el
método de defusificación, editar las variables y los conjuntos difusos, asi como
las reglas que describirán el comportamiento de los controladores.
5.12 Definición de las variables
Las variables utilizadas son el error generado por el ángulo deseado de la
articulación y el ángulo actual de la articulación y el cambio en el error que es
la velocidad a la que se mueve la articulación. A la salida del controlador se
debe de generar el torque que moverá a las articulaciones.
63
Figura 5.8 Diagrama de bloques del control
Articulación 01 (de la base).- Las variables de entrada y de salida para
controlar el movimiento de la primera articulación, se conforman por cinco
conjuntos difusos tal como se muestra en la figura 5.9.
Figura 5.9 Conjuntos difusos de la variable error
El rango de valores para esta articulación se ha considerado de 120º.
Los conjuntos difusos para la variable velocidad, así como las etiquetas
lingüísticas se muestran en la figura 5.10
Figura 5.10 Conjuntos difusos de la variable velocidad de error
Consideramos que la articulación 1 se mueve a una velocidad máxima de 50
grados por segunda para un torque de 2N.m, las etiquetas lingüísticas se
muestran en la figura 5.11
64
Figura 5.11 Conjunto difusos de la variable Torque, salida
Luego de determinar las variables de entrada con sus correspondientes
conjuntos difusos, determinaremos las reglas para conformar la base de
conocimiento que regirán el comportamiento del controlador. La tabla 5.3
muestra la tabla de inferencia generada para la articulación 1.
Tabla 5.3 Tabla de inferencia para la articulación_01
5.13 Configuración del controlador difuso en Fuzzy Logic Toolbox
Definidas las variables de entrada y salida, definido las reglas de la base de
conocimiento así como el método de inferencia y defusificación que se
utilizaran, solo queda introducir esta información en el sistema de inferencia
difuso (FIS). La configuración se muestra en el Apéndice G
Primero definimos el método de inferencia que utilizara el FIS y crear las
variables que se definieron anteriormente como se muestra en la figura 5.12
65
Figura 5.12 Definición de las variables en la ventana FIS Editor
La ventana de edición del FIS muestra las variables de entrada y salida así
como el método de inferencia que es el Mandani. En la misma ventana se
selecciono el método de defusificación que es el método del Centroide.
El segundo paso es definir los conjuntos difusos de las variables de entrada y
salida lo que se muestra en la figura 5.13. En esta ventana se define la forma
de los conjuntos difusos, así como los parámetros que marcaran los limites de
los conjuntos y las etiquetas lingüísticas.
66
Figura 5.13 Definición de los conjuntos difusos de la variable error
Ahora tenemos que definir las reglas que harán funcionar el sistema. La edición
de las reglas se realiza en la ventana que se muestra en la figura 5.14 la cual
se ha realizado con ayuda de la tabla 5.1 de inferencia de la base de
conocimiento.
67
Figura 5.14 Ventana Rule Editor
Procedimiento similar se ha realizado para las articulaciones_02 y la
articulación_03, la cual se encuentra desarrollada en el Apéndice G.
68
VI RESULTADOS
Los resultados de la simulación se hacen en referencia a los apéndices donde
están los programas y configuraciones.
6.1 Determinación de matrices homogéneas
La determinación de las matrices de transformación homogénea que definen a
las coordenadas del manipulador se obtienen mediante el programa
desarrollado en el apéndice A
>> A01
A01 =
[ cos(q1), 0, sin(q1), 0]
[ sin(q1), 0, -cos(q1), 0]
[ 0, 1, 0, L1]
[ 0, 0, 0, 1]
>> A12
A12 =
[ cos(q2), -sin(q2), 0, L2*cos(q2)]
[ sin(q2), cos(q2), 0, L2*sin(q2)]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
>> A23
A23 =
[ cos(q3), -sin(q3), 0, L3*cos(q3)]
[ sin(q3), cos(q3), 0, L3*sin(q3)]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
6.2 Creación del robot Al ser este presente trabajo un tema que nos de libertad para elegir y poder
diseñar un robot a las consideraciones de nuestro requerimiento es que en el
apéndice B esta un programa para crear un robot
69
Figura 6.1 Brazo del robot en una posición particular
6.3 Control de posición del efector final
En la cual se observa el control de la posición del efector final para diversas
posiciones de las articulaciones que son debidas al servomotor. Programa
realizado por el autor y esta el apéndice C
Figura 6.2 Posición estática del robot a partir del programa del Apéndice C
-0.5
0
0.5
-0.5
0
0.5-0.5
0
0.5
XY
Z
RRR
x yz
-2
-1
0
1
2-2
-1
0
1
2-5
0
5
XY
Z
XY
Z
X
Y Z
X
Y
Z
XY
Z
X
Y Z
XY
Z
70
6.4 Grafica del movimiento del robot
Representación grafica del robot en la que se muestra las coordenadas de una
posición del efector final cuyo programa está desarrollado por el autor en el
apéndice D
Figura 6.3 Grafica del movimiento del efector final
Al observar los resultados que se obtienen de la respuesta a los programas de
Matlab nos confirma que la cinemática Inversa con el invalorable apoyo del
Toolbox de Hemero de Matlab simplifica enormemente el análisis y nos da
como resultado que podemos controlar la trayectoria del efector final del
manipulador robótico con las condiciones de requerimiento deseados.
6.5 Programa de la cinemática inversa
Programa para crear la cinemática inversa, determinación de las posiciones de
las articulaciones desarrollada por el autor y está en el apéndice E
-100 -80 -60 -40 -20 0 20 40 60 80 100
-100
-80
-60
-40
-20
0
20
40
60
80
100
X
YZ
X
Y
Z XYZ
X
Y
X
Y Z
X
YZ
X
Y
Z
X
Y Z
X
YZ
X
Y
Z
X
YZ
X
YZ
X
Y
Z
XY
Z
X
YZ
X
Y
Z
XY
Z
X
YZ
X
Y
Z
XYZ
X
YZ
XY
Z
XY
Z
XYZ
XY
Z
XY
Z
XYZ
XY
Z
XY
Z
XYZ
XY
Z
XY
Z
XYZ X
YZ
X
Y
Z XYZ
X
YZ
X: 97.2
Y: 0.1082
Z: 0.9489
71
% q % % q = % % 1.3894 0.5076 0.6332 % 1.2892 0.5076 0.7333 % 1.1880 0.5076 0.8345 % 1.0847 0.5076 0.9379 % 0.9779 0.5076 1.0447 % 0.8658 0.5076 1.1568 % 0.7459 0.5076 1.2767 % 0.6140 0.5076 1.4086 % 0.4621 0.5076 1.5605 % 0.2696 0.5076 1.7529 % -0.1814 0.5076 2.2040
En los programas se deja abierta la posibilidad para que el lector pueda
introducir trayectorias que desean y realizar las pruebas convenientes ya que el
modelo se puede utilizar en los procesos industriales con los cambios
adecuados.
6.6 Trayectoria de las articulaciones
La figura 6.4 nos da las trayectorias seguidas por cada una de las tres
articulaciones para lograr la posición deseada del efector final del manipulador
robótico. El programa se encuentra en el Apéndice F
Figura 6.4 Trayectorias de las articulaciones
6.7 Configuración de los controladores Fuzzy
0 1 2 3 4 5 6 7 8 9 10-2
0
2Trayectoria de la primera articulacion
tiempo
q1
0 1 2 3 4 5 6 7 8 9 10-2
0
2Trayectoria de la segunda articulacion
tiempo
q2
0 1 2 3 4 5 6 7 8 9 100
2
4Trayectoria de la tercera articulacion
tiempo
q3
72
La configuración de cada uno de los controladores Fuzzy para las
articulaciones se encuentra en el apéndice G
Articulacion_01
Una vez finalizada la configuración del controlador es posible observar las
reglas que se generaron en el editor de reglas y como se activan cuando se
ingresan valores de entrada. Figura 6.5, 6.6 y 6.7
Figura 6.5 Ventana Rule Viewer de la articulación 01
74
Articulacion_03
Figura 6.7 Ventana Rule Viewer de la articulación 03
En la ventana se observan las variables de entrada así como los conjuntos que
lo conforman en color amarillo. Las líneas rojas representan los valores de
entrada que se ingresan al controlador. La variable de salida con sus conjuntos
difusos en color azul muestra las reglas que se cumplieron y en la parte inferior
de la columna se puede observar el polígono generado por la inferencia. El
valor de salida que produce la defusificación es un valor crisp que se puede
observar en la parte superior de la columna.
75
VII DISCUSIONES Y RECOMENDACIONES 7.1 Discusiones
El desarrollo de nuevas estrategias de control ha evolucionado desde el
modelamiento matemático basado en modelos en ecuaciones diferenciales y
funciones de transferencia los cuales tiene sus limitaciones de tipo
computacional.
Los modelos de espacio de estados los cuales permiten conocer el
comportamiento del sistema a partir de los estados intermedios. Los cuales se
fundamentan en modelos dinámicos del robot, haciendo que sea compleja su
solución al no tener en cuenta las perturbaciones del medio u otras alteraciones
del modelo.
Los modelos de control de última generación los cuales se fundamentan en la
programación de variables lingüísticas buscando en estas soluciones que no
tienen mecanismos sencillos de modelamiento y que su solución es compleja
de desarrollar basada en modelos matemáticos.
Los modelos de control fundados en la Inteligencia Artificial o modelos
biológicos que permiten el aprendizaje de tareas especificas, pero que permiten
la solución de problemas basados en la historia o recuerdos de eventos
anteriores como el de las redes neuronales y sus posibles combinaciones con
otros modelos como lógica difusa entre otros.
La última parte de estos desarrollos que se encuentran en investigación son los
basados en algoritmos genéticos y todas las posibles formas, estos desarrollos
76
permiten una amplia gama de estrategias de control para la robótica en
general.
7.2 Recomendaciones
Aunque este trabajo se limita al análisis dinámico del manipulador, se
recomienda realizar un análisis cinemático que permita entre otras cosas,
evaluar el nivel de precisión de los movimientos y compararlos con estándares
de tolerancia en aplicaciones industriales.
7.3 Contrastación de la hipótesis con los resultados
De los resultados que se han obtenido en el Capítulo VI observamos que el
control no lineal mediante la cinemática inversa aplicando el Toolbox de
Hemero de Matlab nos permite determinar la posición que deben de adoptar las
articulaciones para una trayectoria del efector final del manipulador robótico, lo
cual se observa en el subcapítulo 6.4 en la cual se observa el movimiento del
efector final para una trayectoria determinada, en el subcapítulo 6.5 en cual se
ha aplicado el Toolbox de Hemero para la obtención de las posiciones de las
articulaciones para la trayectoria seguida por el efector final del subcapítulo 6.4
y en el subcapítulo vemos la grafica de la trayectoria de las tres articulaciones
que de manera suave llegan a la posición deseada.
Al observar los resultados que se obtienen de la respuesta a los programas de
Matlab nos confirma que la cinemática Inversa con el invalorable apoyo del
Toolbox de Hemero de Matlab simplifica enormemente el análisis y nos da
como resultado que podemos controlar la trayectoria del efector final del
manipulador robótico con las condiciones de requerimiento deseados.
77
En el subcapítulo 6.7. tenemos la configuración del controlador difuso para las
tres articulaciones en cuyas ventanas correspondientes de las reglas se
observan las variables de entrada así como los conjuntos que lo conforman en
color amarillo. Las líneas rojas representan los valores de entrada que se
ingresan al controlador. La variable de salida con sus conjuntos difusos en
color azul muestra las reglas que se cumplieron y en la parte inferior de la
columna se puede observar el polígono generado por la inferencia. El valor de
salida que produce la defusificación es un valor crisp que se puede observar en
la parte superior de la columna. En los controladores difusos
El diseño de controladores mediante las técnicas de control avanzado tales
como control no lineal por realimentación de estado y la técnica de control
Fuzzy, permitirán controlar con precisión razonable la posición del efector final
del Manipulador Esférico de 3 grados de libertad
Una gran ventaja de los controladores difusos es que definen justamente estas
ambigüedades, y son una extensión de la teoría clásica de conjuntos, donde un
elemento pertenece o no a un conjunto, tal elemento tiene solo 2 posibilidades,
pertenecer o no, un elemento es bi-valuado y no se definen ambigüedades.
Con conjuntos difusos se intenta modelar la ambigüedad con la que se percibe
una variable. Los conjuntos difusos son la base para la lógica difusa, del mismo
modo que la teoría clásica de conjuntos es la base para la lógica Booleana.
Con los conjuntos difusos se realizan afirmaciones lógicas del tipo si-entonces,
definiéndose estas con Lógica Difusa. Este tema es propio de inteligencia
artificial, donde se intenta emular en pensamiento humano. Nuestro campo de
estudio es el control industrial, debemos tener en cuenta la experiencia o base
de conocimiento del operario, esto será útil para emular el comportamiento
humano con una máquina, a pesar de ser esta muy limitada.
78
Se debe tener en cuenta que los sistemas con controladores difusos son
naturalmente no lineales, se los puede configurar para ajustarse a cualquier
función, es decir que pueden emular funciones lineales pero en general se
trabaja con configuraciones no lineales. En general, pues, se trabaja con
configuraciones no lineales, por lo que las herramientas de diseño y análisis de
control lineal no serán útiles en estos sistemas borrosos, de todos modos se
hacen aproximaciones lineales para utilizar en alguna medida las herramientas
bien conocidas del control lineal, se puede recurrir a esto ya que aún están en
desarrollo las herramientas de diseño y análisis de sistemas borrosos.
REFERENCIALES
79
[1] ANGULO, JOSÉ. Robótica Práctica (Cuarta Edición). Editorial Paraninfo,
2000.
[2] BARRIENTOS A., L. PEÑÍN, C. BALAGUER R. ARACIL. Fundamentos
de
Robótica. Mc- Graw Hill, 1997.
[3] FERDINAND P. BERR, E. RUSSELL JOHNSTON. Dinámica. McGraw
Hill, 1996.
[4] GONZÁLES K.S. FU, C.S.G. LEE. Robótica, Control, Detección, Visión,
Inteligencia. McGraw Hill, 1990.
[5] KHALIL, HASSAN K. NonLinear Systems. Prentice Hall, 1996.
[6] M. J. DÍAZ. Mecánica Racional Estática. Editorial Universo, 1993.
[7] MOSHEN, SHAHINPOOR. A Robot Engineering Textbook. Harper-Row
Publisher, 1987.
[8] NAKAMURA, SHOICHIRO. Análisis Numérico y Visualización Gráfica.
Prentice Hall, 1997.
[9] PART ENANDER, EVA AND ANDERS SJOBERG. The Matlab 5
Handbook. Addison Wesley, 1999.
[10] ROJAS, ARTURO. Control Avanzado. Publicación Independiente, 2001.
[11] ROJAS, ARTURO. Applied MIMO Nonlinear Control Real Time
Implementations. En construcción, 2002.
[12] SLOTINE, JEAN-JACQUES E. Applied Nonlinear Control. Prentice Hall,
1991.
80
[13] TORRES F., J. POMARES, P. GIL S. PUENTE R. ARACIL. Robot y
Sistemas Sensoriales. Prentice Hall, 2002.
IX APENDICE
81
Los datos y los programas realizados para demostrar la hipótesis de que se
puede realizar un controlador utilizando la cinemática inversa se muestran a
continuación los cuales son de autoría propia.
Apéndice A
Programa que determina las Matrices de Transformación Homogénea
% matrices.m clear all, close all, clc
% Cálculo de las matrices de transformación homogénea del Robot % Manipulador Esférico de 3GL aplicando el Algoritmo % Lagrange-Euler con Matemática Simbólica de MATLAB. syms q1 q2 q3 L1 L2 L3
% A. Datos de los parámetros D-H teta1=q1; teta2=q2; teta3=q3; d1=L1; d2=0; d3=0; a1=0; a2=L2; a3=L3; alfa1=90; alfa2=0; alfa3=0;
% B. Cálculo de las matrices de transformación: Aij A01=[cos(q1) 0 sin(q1) 0 sin(q1) 0 -cos(q1) 0 0 1 0 L1 0 0 0 1]; A12=[cos(q2) -sin(q2) 0 L2*cos(q2) sin(q2) cos(q2) 0 L2*sin(q2) 0 0 1 0 0 0 0 1]; A02=A01*A12; A23=[cos(q3) -sin(q3) 0 L3*cos(q3) sin(q3) cos(q3) 0 L3*sin(q3) 0 0 1 0 0 0 0 1];
A03=A02*A23;
Apéndice B Programa para crear un robot de 3 Grados de Libertad % programa de creación de robot de 3GL clear all, close all, clc path(path,'C:\Users\Armando Cruz Ramirez\Documents\MATLAB\Corke')
% Recibe el vector de 3 coordenadas articulares
% L2 L3 % <----------><----> % | q3 % q2 O==========O=====O % | ^ % | | % q1 | L1 % | | |zo % --+-- v |___ x0
82
% %Asignando valores a las Longitudes de los eslabones l1=0.30; l2=0.20; l3=0.10; %coordenadas q=[0 0 0] clear L % % Parámetros Denavit-Hartenberg % ----------------------------------------------------------- % alpha a theta d sigma offset convencion % ----------------------------------------------------------- L1 = link([ pi/2 0 pi/2 l1 0 pi/2 ]); L2 = link([ 0 l2 0 0 0 0 ]); L3 = link([ 0 l3 0 0 0 0 ]); % % % Masa de las barras L1.m = 0.30; L2.m = 0.20; L3.m = 0.10; % % % Centro de gravedad de las barras L1.r = [ 0 0 l1/2 ]; L2.r = [ l2/2 0 0 ]; L3.r = [ l3/2 0 0 ]; % % % Matriz de inercia (solo se dan 6 elementos) L1.I = [ 0 0 2000 0 0 0 ]; L2.I = [ 0 0 0 0 0 0 ]; L3.I = [ 0 0 2000 0 0 0 ]; % % % Inercia de los motores L1.Jm = 0; L2.Jm = 0; L3.Jm = 0; % % % Factor de reducción L1.G = 1; L2.G = 1; L3.G = 1; % % % Friccion viscosa (referido al motor) L1.B = 0; L2.B = 0; L3.B = 0; % % % Friccion de Coulomb (referido al motor) L1.Tc = [ 0 0 ]; L2.Tc = [ 0 0 ]; L3.Tc = [ 0 0 ]; % R3 = robot(L,'RRR','UNAC','Robot 3DOF (RRR)'); R3.name = 'RRR'; R3.manuf = 'UNAC';
83
R3.plotopt = 'workspace',[-0.5 0.5 -0.5 0.5 -0.5 0.5]; R3.lineopt = 'color','blue','linewidth',4; R3.shadowopt = 'color','black','linewidth',1; % % Una vez definido el robot se puede usar con él diferentes funciones % del Toolbox como FKINE que resuelve el modelo cinemático directo % para una configuración determinada. % Ploteo directo %figure(1) drivebot(R3) % % Posiciones qz = [0 0 0]; T=fkine(R3,qz); % Este valor coincide con el resultado de mcdr5j.m
% T = % % 0.0000 -0.0000 1.0000 0.0000 % 1.0000 0.0000 -0.0000 0.3000 % 0 1.0000 0.0000 0.3000 % 0 0 0 1.0000
Apéndice C
Programa que nos da una posición estática del robot.
close all,clear all clc path(path,'E:\Programa_D\Mis Documentos\MATLAB\Hemero') %definimos los parametros d-h syms q1 q2 q3 son las variables articulares syms d1 d2 d3 reales q1=pi/2; q2=pi/2; q3=pi/2; d1=10; d2=63; d3=63; % se introduce la matriz con los parametros d-h dh=[ -pi/2 0 q1 d1 0; 0 d2 q2 0 0; 0 d3 q3 0 0]; %inicial q0=[0 0 0] % t1=pi/2; t2=pi/2; t3=pi/2; % a1=10; a3=63; a4=63; d2=10;
q=[0 -pi/2 -pi/4]; plotbot(dh,q,'lfdw')l
Apéndice D Posiciones del robot para diferentes posiciones de q
%programa del apéndice D
%representación de las posiciones del robot para
%diferentes posiciones de las articulaciones q %Determinación de los valores de las articulaciones q %programa que nos da la Cinemática Inversa %representación de las posiciones del robot para diferentes posiciones
de q close all,clear all clc %Representacion grafica del robot path(path,'E:\Programa_D\Mis Documentos\MATLAB\Hemero')
84
q1=pi/2; q2=pi/2; q3=pi/2; L1=20; L2=25; L3=20; dh=[0 0 q1 20 0; -pi/4 50 q2 0 0; -pi/2 50 q3 0 0];
%estableciendo la tolerancia y el número de iteraciones stol=1e-6; ilimit=1000; %se introduce la trayectoria deseada x=[0:10:100]; y=sqrt(10000-x.^2); phi=zeros(1,length(x)); %se crea la trayectoria de transformaciones for k=1:length(x) TG(:,:,k)=[cos(phi(k)) -sin(phi(k)) 0 x(k); sin(phi(k)) cos(phi(k)) 0 y(k); 0 0 1 0; 0 0 0 1]; end
Apéndice E Programa para crear la cinemática inversa,
%se calcula el modelo inverso para cada una de las trayectorias usando %un vector inicial de q0=[0 0 0] y una máscara [1 1 0 0 1] q=ikine(dh,stol,ilimit,TG,[0 0 pi/4],[1 1 1 0 0 1]); plotbot(dh,q,'fldw') %inicial de q0=[0 0 0] y una máscara [1 1 0 0 1]
%valores de las posiciones de las articulaciones que nos dan la salida %deseada trayectoria y posición
% q % % q = % % 1.3894 0.5076 0.6332 % 1.2892 0.5076 0.7333 % 1.1880 0.5076 0.8345 % 1.0847 0.5076 0.9379 % 0.9779 0.5076 1.0447 % 0.8658 0.5076 1.1568 % 0.7459 0.5076 1.2767 % 0.6140 0.5076 1.4086 % 0.4621 0.5076 1.5605 % 0.2696 0.5076 1.7529 % -0.1814 0.5076 2.2040
85
Apéndice F Programa que determina la trayectoria de las tres articulaciones del manipulador robótico
%determinación de las trayectorias de cada una de las articulaciones %trayectoria de q1 q0=1.3894; q1=-0.1814; t=(0:0.1:10); [q1]=jtraj(q0,q1,t); subplot(311) plot(t,q1); title('Trayectoria de la primera articulación'); xlabel('tiempo'); ylabel('q1'); %trayectoria de q2 q0=0.5076; q2=0.5076; t=(0:0.1:10); [q2]=jtraj(q0,q2,t); subplot(312) plot(t,q2); title('Trayectoria de la segunda articulación'); xlabel('tiempo'); ylabel('q2');
%trayectoria de q3 q0=0.6332; q3=2.2040; t=(0:0.1:10); [q3]=jtraj(q0,q3,t); subplot(313) plot(t,q3); title('Trayectoria de la tercera articulación'); xlabel('tiempo'); ylabel('q3');
86
Apéndice G Configuración del controlador difuso de la articulación_01, en Fuzzy Logic
Toolbox
Figura G-1.- Definición de las variables de la articulación_01
Figura G-2.- Ventana Rule Editor de la articulación_01
87
[System] Name='Articulacion_01' Type='mamdani' Version=2.0 NumInputs=2 NumOutputs=1 NumRules=25 AndMethod='min' OrMethod='max' ImpMethod='min' AggMethod='max' DefuzzMethod='centroid'
[Input1] Name='Error' Range=[-120 120] NumMFs=5 MF1='MuyPos':'trapmf',[50 90 120 120] MF2='MuyNeg':'trapmf',[-120 -120 -90 -50] MF3='Negativo':'trimf',[-90 -45 0] MF4='Cero':'trimf',[-20 0 20] MF5='Positivo':'trimf',[0 45 90]
[Input2] Name='Velocidad' Range=[-50 50] NumMFs=5 MF1='RapidoDer':'trapmf',[-50 -50 -35 -22] MF2='RapidoIzq':'trapmf',[22 36 50 50] MF3='Cero':'trimf',[-14 0 14] MF4='Der':'trapmf',[-38 -24 -14 0] MF5='Izq':'trapmf',[0 14 24 38]
[Output1] Name='Torque' Range=[-2 2] NumMFs=5 MF1='MuchoDer':'trapmf',[-2 -2 -1 -0.5] MF2='Cero':'trimf',[-0.5 0 0.5] MF3='MuchoIzq':'trapmf',[0.5 1 2 2] MF4='Der':'trimf',[-1 -0.5 0] MF5='Izq':'trimf',[0 0.5 1]
[Rules] 2 1, 2 (1) : 1 2 4, 4 (1) : 1 2 3, 1 (1) : 1 2 5, 1 (1) : 1 2 2, 1 (1) : 1 3 1, 4 (1) : 1 3 4, 2 (1) : 1 3 3, 4 (1) : 1 3 5, 1 (1) : 1 3 2, 3 (1) : 1 4 1, 3 (1) : 1 4 4, 5 (1) : 1 4 3, 2 (1) : 1 4 5, 4 (1) : 1 4 2, 1 (1) : 1 5 1, 3 (1) : 1 5 4, 3 (1) : 1
88
5 3, 5 (1) : 1 5 5, 2 (1) : 1 5 2, 5 (1) : 1 1 1, 3 (1) : 1 1 4, 3 (1) : 1 1 3, 3 (1) : 1 1 5, 5 (1) : 1 1 2, 2 (1) : 1
Configuración del controlador difuso de la articulación_02, en Fuzzy Logic
Toolbox
Figura G-3.- Definición de las variables de la articulación_02
89
Figura G-4.- Ventana Rule Editor de la articulación_02
[System] Name='Articulacion_02' Type='mamdani' Version=2.0 NumInputs=2 NumOutputs=1 NumRules=25 AndMethod='min' OrMethod='max' ImpMethod='min' AggMethod='max' DefuzzMethod='centroid'
[Input1] Name='Error' Range=[-100 100] NumMFs=5 MF1='MuyPos':'trapmf',[40 75 100 100] MF2='MuyNeg':'trapmf',[-100 -100 -75 -40] MF3='Negativo':'trimf',[-75 -37.5 0] MF4='Cero':'trimf',[-16 0 16] MF5='Positivo':'trimf',[0 37.5 75]
[Input2] Name='Velocidad' Range=[-50 50] NumMFs=5 MF1='RapidoDer':'trapmf',[-50 -50 -35 -22] MF2='RapidoIzq':'trapmf',[22 36 50 50] MF3='Cero':'trimf',[-14 0 14] MF4='Der':'trapmf',[-38 -24 -14 0] MF5='Izq':'trapmf',[0 14 24 38] [Output1]
90
Name='Torque' Range=[-6 6] NumMFs=5 MF1='MuchoDer':'trapmf',[-6 -6 -3 -1.5] MF2='Cero':'trimf',[-1.5 0 1.5] MF3='MuchoIzq':'trapmf',[1.5 3 6 6] MF4='Der':'trimf',[-3 -1.5 0] MF5='Izq':'trimf',[0 1.5 3]
[Rules] 2 1, 2 (1) : 1 2 4, 4 (1) : 1 2 3, 1 (1) : 1 2 5, 1 (1) : 1 2 2, 1 (1) : 1 3 1, 4 (1) : 1 3 4, 2 (1) : 1 3 3, 4 (1) : 1 3 5, 1 (1) : 1 3 2, 3 (1) : 1 4 1, 3 (1) : 1 4 4, 5 (1) : 1 4 3, 2 (1) : 1 4 5, 4 (1) : 1 4 2, 1 (1) : 1 5 1, 3 (1) : 1 5 4, 3 (1) : 1 5 3, 5 (1) : 1 5 5, 2 (1) : 1 5 2, 5 (1) : 1 1 1, 3 (1) : 1 1 4, 3 (1) : 1 1 3, 3 (1) : 1 1 5, 5 (1) : 1 1 2, 2 (1) :
91
Configuración del controlador difuso de la articulación_03, en Fuzzy Logic
Toolbox
Figura G-5.- Definición de las variables de la articulación_03
Figura G-6.- Ventana Rule Editor de la articulación_03
92
[System] Name='Articulacion_03' Type='mamdani' Version=2.0 NumInputs=2 NumOutputs=1 NumRules=25 AndMethod='min' OrMethod='max' ImpMethod='min' AggMethod='max' DefuzzMethod='centroid'
[Input1] Name='Error' Range=[-120 120] NumMFs=5 MF1='MuyPos':'trapmf',[48 90 120 120] MF2='MuyNeg':'trapmf',[-120 -120 -90 -48] MF3='Negativo':'trimf',[-90 -45 0] MF4='Cero':'trimf',[-19 0 19] MF5='Positivo':'trimf',[0 45 90]
[Input2] Name='Velocidad' Range=[-50 50] NumMFs=5 MF1='RapidoAtras':'trapmf',[-50 -50 -35 -22] MF2='RapidoAdelante':'trapmf',[22 36 50 50] MF3='Cero':'trimf',[-14 0 14] MF4='Atras':'trapmf',[-38 -24 -14 0] MF5='Adelante':'trapmf',[0 14 24 38]
[Output1] Name='Torque' Range=[-2 2] NumMFs=5 MF1='MuchoAtras':'trapmf',[-2 -2 -1 -0.5] MF2='Cero':'trimf',[-0.5 0 0.5] MF3='MuchoAdelante':'trapmf',[0.5 1 2 2] MF4='Atras':'trimf',[-1 -0.5 0] MF5='Adelante':'trimf',[0 0.5 1]
[Rules] 2 1, 2 (1) : 1 2 4, 4 (1) : 1 2 3, 1 (1) : 1 2 5, 1 (1) : 1 2 2, 1 (1) : 1 3 1, 4 (1) : 1 3 4, 2 (1) : 1 3 3, 1 (1) : 1 3 5, 1 (1) : 1 3 2, 1 (1) : 1 4 1, 3 (1) : 1 4 4, 3 (1) : 1 4 3, 2 (1) : 1 4 5, 4 (1) : 1 4 2, 1 (1) : 1 5 1, 3 (1) : 1 5 4, 3 (1) : 1