UNIVERSIDAD NACIONAL DEL CALLAO - unac.edu.pe · ejes de cada articulación lo ... como cantidad y...

94
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 EXACTAAutor: 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

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

73

Articulacion_02

Figura 6.6 Ventana Rule Viewer de la articulación 02

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

93

5 3, 3 (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