diseño y control en linea de robot 2g.d.l. con interfaz matlab-arduino

91
Diseño y control en línea de robot 2 g.d.l. con interfaz MATLAB-ARDUINO.

Upload: jared-luna

Post on 09-Jul-2016

13 views

Category:

Documents


5 download

DESCRIPTION

arduino robot.

TRANSCRIPT

Page 1: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Diseño y control en línea de robot 2 g.d.l. con interfaz MATLAB-ARDUINO.

Page 2: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

ContenidoI. Introducción...............................................................................................................1

1.1 Justificación...............................................................................................................2

1.2 Planteamiento del problema...................................................................................2

1.3 Objetivo......................................................................................................................3

II. Fundamentos Teóricos............................................................................................3

III. Diseño del Robot 2 g.d.l......................................................................................8

3.1 Ácido Poliláctico.......................................................................................................9

3.2 Impresión 3D.............................................................................................................9

IV. Características de tarjeta adquisidora, motores y sensores utilizados.13

4.1 Arduino.....................................................................................................................13

4.2 Sensor de distancia SHARP GP2Y0A21YK.......................................................14

4.3 Sensor QRD1114...................................................................................................15

4.4 Servomotor MG996R.............................................................................................16

4.5 Servomotor SG90 Micro-Servo............................................................................17

V. Comunicación Puerto Serial (USB).....................................................................17

VI. Análisis estático del robot................................................................................20

6.1 Principio de transmisibilidad. Fuerzas equivalentes..........................................20

VII. Análisis de Cinemática: Análisis de la posición directa............................25

7.1 Parámetros Denavit y Hartenberg (DH)..............................................................25

VIII. Modelo dinámico.................................................................................................29

8.1 Ecuaciones de movimiento de Lagrange............................................................29

IX. Simulación de Modelo Dinámico y Aplicación de Control PID................35

X. Resultados................................................................................................................41

10.1 Control PID Experimental...................................................................................41

10.2 Prueba 1................................................................................................................50

10.2.1 Comprobación de análisis de cinemática: Posición directa (prueba 1). 52

10.2.3 Reacción en el punto A (prueba 1).............................................................53

10.3 Prueba 2................................................................................................................55

Page 3: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

10.3.1 Comprobación de análisis de cinemática: Posición directa (prueba 2). 57

10.3.2 Reacción en el punto A (prueba 2).............................................................58

XI. Conclusiones........................................................................................................60

XII. Referencias Bibliográficas y virtuales...........................................................61

XIII. Anexos Apéndice A. Planos de piezas del Robot 2 g.d.l. por SOLIDWORKS.................................................................................................................62

Page 4: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Índice de figuras

FIGURA 1. IMPRESORA 3D..........................................................................................9FIGURA 2. BASE DEL ROBOT (1), ARTICULACIÓN 2 (2), EJE DE ARTICULACIÓN 1 (3),

BASE SERVO MOTOR 1 (4), ADAPTADOR EJE SERVO-MOTOR 1 (5), ARTICULACIÓN 1 (6) Y ENSAMBLAJE (7)........................................................................................11

FIGURA 3.VISTA REAL DEL ROBOT 2 G.D.L.................................................................12FIGURA 4. LIBRERÍA ARDUINO I/O DESDE MATLAB-SIMULINK..............................19FIGURA 5.DIAGRAMA DE CUERPO LIBRE.....................................................................20FIGURA 6.DIAGRAMA DE CUERPO LIBRE (REACCIONES EN EL ESLABÓN 2)...................23FIGURA 7.ASIGNACIÓN DE MARCOS...........................................................................26FIGURA 8.POSICIÓN DEL EFECTOR FINAL...................................................................28FIGURA 9.ROBOT 2 G.D.L.........................................................................................30FIGURA 10.CONTROL TEÓRICO, BLOQUE DE MATLAB FUNCTION Y CONTROL 1

(ECUACIONES EN VARIABLES DE ESTADO, OBTENIDAS POR EL MODELO DINÁMICO, DENTRO DE UN BLOQUE MATLAB FUNCTION)..................................................35

FIGURA 11.CONTROL TEÓRICO, CONTROL 2..............................................................36FIGURA 12.RESPUESTA A ENTRADA ESCALÓN (CONTROLADOR 1 Y CONTROLADOR 2,

20.25 Y 32.33 RESPECTIVAMENTE).....................................................................37FIGURA 13.RESPUESTA A ENTRADA ESCALÓN (CONTROLADOR 1 Y CONTROLADOR 2,

44.36 Y 60 RESPECTIVAMENTE)..........................................................................38FIGURA 14.RESPUESTA A ENTRADA RAMPA (CONTROLADOR 1 Y CONTROLADOR 2, 20.25

Y 32.33 RESPECTIVAMENTE)..............................................................................39FIGURA 15.RESPUESTA A ENTRADA RAMPA (CONTROLADOR 1 Y CONTROLADOR 2, 44.36

Y 60 RESPECTIVAMENTE)...................................................................................40FIGURA 16.CONTROL EXPERIMENTAL (GANANCIAS DE CONTROLADOR 1 Y 2 OBTENIDAS

A PARTIR DEL MODELO DINÁMICO TEÓRICO)........................................................41FIGURA 17.CONTROL EXPERIMENTAL (ENTRADAS LECTURAS DE SENSORES Y SALIDAS

ESCRITURA A SERVO-MOTORES).........................................................................42FIGURA 18.BLOQUES DE CONMUTACIÓN A REFERENCIA..............................................43FIGURA 19.RESPUESTA DE CONTROL EXPERIMENTAL CONTRA RESPUESTA DE CONTROL

TEÓRICO (PRUEBA 1)..........................................................................................46FIGURA 20.RESPUESTA DE CONTROL EXPERIMENTAL CONTRA RESPUESTA DE CONTROL

TEÓRICO (PRUEBA 2)..........................................................................................48FIGURA 21.GRAFICA EN MATLAB Y DIAGRAMA A BLOQUES SIMULINK (PRUEBA 1).. .50FIGURA 22.VISTA REAL DEL ROBOT (PRUEBA 1).........................................................51FIGURA 23. POSICIÓN DEL EFECTOR FINAL (PRUEBA 1)..............................................53FIGURA 24.DIAGRAMA DE CUERPO LIBRE (PRUEBA 1).................................................53FIGURA 25.GRAFICA EN MATLAB Y DIAGRAMA A BLOQUES SIMULINK (PRUEBA 2).. .55FIGURA 26.VISTA REAL DEL ROBOT (PRUEBA 2).........................................................56FIGURA 27.POSICIÓN DEL EFECTOR FINAL (PRUEBA 2)...............................................58

Page 5: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

FIGURA 28.DIAGRAMA DE CUERPO LIBRE (PRUEBA 2).................................................58FIGURA 29.PLANOS EN SOLIDWORKS PIEZA BASE SENSOR (MM)............................62FIGURA 30.PLANOS EN SOLIDWORKS PIEZA BASE ESLABÓN (MM)...........................63FIGURA 31.PLANOS EN SOLIDWORKS PIEZA BASE SERVO (MM)...............................64FIGURA 32.PLANOS EN SOLIDWORKS PIEZA EJE SERVO GRANDE (MM)....................65FIGURA 33.PLANOS EN SOLIDWORKS PIEZA ESLABÓN (MM)....................................66FIGURA 34.PLANOS EN SOLIDWORKS PIEZA EJE SERVO-ESLABÓN (MM)..................67

Page 6: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

I. Introducción

El siguiente proyecto se centra en el diseño de un robot de 2 g.d.l. el diseño

mecánico al igual que el diseño del controlador, se realizó a partir del modelado de

dicho robot. Para el modelado se parte de las ecuaciones de movimiento de

Lagrange, y posteriormente con ayuda del software MATLAB se realizan las

respectivas simulaciones. Las constantes de dicho robot como la longitud de

eslabones, masas, momentos de inercia, etc., se obtienen mediante la creación en

SOLIDWORKS de las respectivas piezas del robot. La creación de piezas se llevo

a cabo mediante la técnica denominada como Impresión 3D. La impresión 3D,

consiste en la creación de piezas, en los tres ejes x, y & z, utilizando la extensión

de archivos .STL. Dicha extensión puede ser creada por software de dibujo en 3D,

como AUTO-CAD, SOLIDWORKS, etc. El material empleado se denomina como

PLA (ácido poliláctico), es un polímero, el cual resulta ser muy eficiente de utilizar

en prototipos. El análisis estático, de cinemática (posición directa) y el modelado

dinámico del robot se plantea en el capítulo de Análisis, de una manera teórica, y

posteriormente en el capítulo de Resultados se comprueban dichas ecuaciones de

una manera práctica.

Los servo-motores utilizados, son controlados por posición, su consigna se

obtiene mediante la salida de su respectivo controlador. En este caso no se tiene

una retroalimentación de posición en cada una de las articulaciones. Los servo-

motores cuentan con un sistema de decodificación interno, por lo tanto se opta por

dejar el sistema en lazo abierto. El sensor principal se encuentra en la segunda

articulación del robot, este es el centro de control de movimiento de ambas

articulaciones. El movimiento del robot, consiste en evadir objetos altos que

impiden su movimiento, por medio de la inclinación de dicho robot. Mientras una

articulación se mueve en sentido a las manecillas del reloj, la otra se mueve en un

sentido contrario a estas. Es decir, la segunda articulación siempre se debe de

mantener a un ángulo de 90º con respecto a la vertical. Una vez que la variable

Page 7: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

censada (distancia) es mayor a la referencia, el robot deja de inclinarse pero

mantiene la posición.

1.1 JustificaciónEl robot de 2 g.d.l. desarrollado, pretende ser la base de varias aplicaciones

a futuro. Las aplicaciones pueden variar según la necesidad del problema, en este

caso, solo se pretende determinar un prototipo capaz de moverse dentro de un

espacio con objetos que pudieran interferir en su movimiento. Las aplicaciones

reales, a futuro, propuestas por el investigador recaen en las siguientes áreas.

Seguridad. Monitoreo-cámara móvil. El sistema puede desempeñarse

como un sistema de monitoreo o de control. Dentro de un espacio donde

se requiera tener una visión completa del lugar, el sistema podría instalarse

sobre un riel, en una parte alta, eliminando el problema de colisión que

podría tener la cámara con objetos como vigas, lámparas, etc., ya que el

movimiento del robot estará garantizado a ser óptimo. Gracias a su

detección de obstáculos se pueden evitar estas colisiones.

Exploración o rescate. Sistema de grúa móvil. El sistema puede emplearse

como grúa auxiliar, por ejemplo en caso de terremotos, es necesario mover

escombros o rescatar cuerpos debajo de estos. El sistema estaría

trabajando en conjunto con una grúa estándar. Es decir, mientras la grúa

estándar mueve los objetos más grandes, esta puede ayudar a desplazar

los más pequeños. Dichos objetos normalmente suelen ser removidos por

seres humanos (rescatistas), sin embargo, el peligro de estar dentro de

estas estructuras, en las cuales una parte de ellas ha colapsado es

inminente, por lo cual la ayuda de un robot pudiera reducir el riesgo de

muerte de algún rescatista.

1.2 Planteamiento del problemaSe plantea en forma de pregunta:

¿Cómo controlar el movimiento de un robot de 2 g.d.l. ante la presencia de

obstáculos superiores?

Page 8: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

1.3 ObjetivoDiseñar y controlar el movimiento de un robot de 2 g.d.l. por medio de la

interfaz MATLAB-ARDUINO.

II. Fundamentos Teóricos

Cinemática: La cinemática, la cual corresponde al estudio de la geometría del

movimiento. Se utiliza para relacionar el desplazamiento, la velocidad, la

aceleración y el tiempo, sin referencia a la causa del movimiento [1].

Sistemas de control realimentados. Un sistema que mantiene una relación

determinada entre la salida y entrada de referencia, comparándolas y usando la

diferencia como medio de control, se denomina sistema de control retroalimentado

[2].

Sistemas de control en lazo cerrado. Los sistemas de control retroalimentados se

denominan también sistemas de control en lazo cerrado. En un sistema de control

en lazo cerrado, se alimenta al controlador la señal de error de actuación, que es

la diferencia entre la señal de entrada y la señal de realimentación, con el fin de

reducir el error y llevar la salida del sistema a un valor deseado [2].

Sistema de control en lazo abierto. Los sistemas en los cuales la salida no tiene

efecto sobre la acción de control se denominan sistemas de control en lazo

abierto. En otras palabras, en un sistema de control en lazo abierto no se mide la

salida ni se realimenta para compararla con la entrada. Así, a cada entrada de

referencia le corresponde una condición de operación fija; como resultado de ello,

la precisión del sistema depende de la calibración. En la práctica, el control en lazo

abierto sólo se usa si se conoce la relación entre la entrada y la salida y si no hay

perturbaciones externas e internas [2].

Page 9: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Clasificación de controladores industriales. Los controladores industriales se

clasifican, de acuerdo a sus acciones de control, como [2]:

1. De dos posiciones o controladores ON-OFF

2. Controladores proporcionales

3. Controladores integrales

4. Controladores proporcionales-integrales

5. Controladores proporcionales-derivativos

6. Controladores proporcionales-integrales-derivativos

Acción de control de dos posiciones o de encendido y apagado (ON-OFF). En un

sistema de control de dos posiciones, el elemento de actuación solo tiene dos

posiciones fijas, que, en muchos casos, son simplemente encendido y apagado

[2].

Acción de control proporcional. Para un controlador con acción de control

proporcional, la relación entre la salida del controlador u(t ) y la señal de error e (t )

es [2]:

u ( t )=K p e (t )

O bien en cantidades transformadas por el método de Laplace,

U (s)E(s)

=K p

Acción de control integral. En un controlador con acción de control integral, el valor

de la salida del controlador u(t ) se cambia a una razón proporcional a la señal del

error e (t) [2]. Es decir,

u (t )=K i∫0

t

e ( t )dt

La función de transferencia del controlador integral es:

U (s)E(s)

=K i

s

Page 10: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Acción de control proporcional-integral-derivativa. La combinación de la acción de

control proporcional, de la acción de control integral y de la acción de control

derivativa se denomina acción de control proporcional-integral-derivativa. Esta

acción combinada tienen las ventajas de cada una de las tres acciones de control

individuales. La ecuación de un controlador con esta acción combinada está dada

por [2]:

u (t )=K p e (t )+K i∫0

t

e (t )dt+K pTdde ( t )dt

O la función de transferencia es

U (s )E (s )

=K p(1+ 1T i s

+T d s)Variable controlada y señal de control o variable manipulada. La variable

controlada es la cantidad o condición que se mide y controla. La señal de control o

variable manipulada es la cantidad o condición que el controlador modifica para

afectar el valor de la variable controlada. Controlar significa medir el valor de la

variable controlada del sistema y aplicar la variable manipulada al sistema para

corregir o limitar la desviación del valor medido respecto del valor deseado [2].

Plantas. Una planta puede ser una parte del equipo, tal vez un conjunto de los

elementos de una máquina que funcionan juntos, y cuyo objetivo es efectuar una

operación en particular [2].

Procesos. El Diccionario Merriam-Webster define un proceso como una operación

o un desarrollo natural progresivamente continuo, marcado por una serie de

cambios graduales que suceden unos a otros de una forma relativamente fija y

que conducen a un resultado o propósito determinados; una operación artificial o

voluntaria que se hace de forma progresiva y que consta de una serie de acciones

o movimientos controlados, sistemáticamente dirigidos hacia un resultado o

propósito determinado [2].

Page 11: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Sistemas. Un sistema es una combinación de componentes que actúan juntos y

realizan un objetivo determinado. Un sistema no está necesariamente limitado a

los sistemas físicos. El concepto de sistema se puede aplicar a fenómenos

abstractos y dinámicos, como los que se encuentran en economía [2].

Diagramas de bloque. Un diagrama de bloques de un sistema es una

representación gráfica de las funciones que lleva a cabo cada componente y el

flujo se señales. Tales diagramas muestran las relaciones existentes entre los

diversos componentes. A diferencia de una representación matemáticamente

puramente abstracta, un diagrama de bloques tienen la ventaja de indicar de

forma más realista el flujo de las señales del sistema real [2].

Estado. El estado de un sistema dinámico es el conjunto de variables más

pequeño (llamadas variables de estado), de forma que el conocimiento de estas

variables en t=t 0, junto con el conocimiento de la entrada para t ≥ t 0, determina

completamente el comportamiento del sistema en cualquier t ≥ t 0 [2].

Variables de estado. Las variables de un sistema dinámico son las variables que

constituyen el menor conjunto de variables que determinan el estado del sistema

dinámico [2].

Vector de estado. Si se necesitan n variables de estado para describir el

completamente el comportamiento de un sistema dado, entonces esas n variables

se pueden considerar como las n componentes de un vector x. Esto se denomina

vector de estado [2].

Espacio de estados. El espacio n-dimensional cuyos ejes de coordenadas están

formados por el eje x1, eje x2,…, eje xn, donde x1 , x2 ,…, xn son las variables de

estado, se denomina espacio de estados. Cualquier estado se puede representar

como un punto en el espacio de estados [2].

Grados de libertad (g.d.l.). Formalmente, el grado de libertad (DOF por sus siglas

en ingles) de un sistema mecánico se define como el número de coordenadas

Page 12: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

independientes o coordenadas mínimas necesarias para describir perfectamente

su posición o configuración [3].

Modelo dinámico. Etapa en la cual se procede a determinar la regla matemática

que vincula las variables de entrada y salida del sistema. Generalmente, dicha

caracterización matemática se manifiesta por medio de ecuaciones diferenciales.

El modelo matemático del sistema a controlar se obtiene tradicionalmente por una

de las dos técnicas siguientes [4] [5]:

Analítica. Este procedimiento se basa en las ecuaciones de la física que

rigen el comportamiento del sistema. Esta metodología puede proporcionar

un modelo matemático preciso a condición de dominar las leyes de la física

que están involucradas en el sistema.

Experimental. Este procedimiento requiere una serie de datos

experimentales del sistema. Frecuentemente se trata de examinar el

comportamiento del sistema ante entradas específicas. El modelo obtenido

a partir de este procedimiento es, en general más impreciso que el

conseguido a partir del modelo analítico. No obstante, su principal ventaja

radica en la facilidad y el corto espacio de tiempo requerido para disponer

del modelo.

Manipulador. Mecánicamente, un robot manipulador –o simplemente manipulador-

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. El movimiento de cada articulación puede ser traslacional, rotacional

o una combinación. Bajo consideraciones razonables, el número de articulaciones

en un manipulador determina su número de grados de libertad (g.d.l.) [4] [5].

Robot. El origen de la palabra robot puede ser encontrado en la palabra checa

robota, que significa “trabajo forzado” u “obligatorio” [4] [5].

Leyes de la Robótica [3].

Page 13: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

1. Un robot no debe dañar a un ser humano ni, por su inacción, dejar que un

ser humano sufra daño.

2. Un robot debe de obedecer las órdenes que le son dadas por un ser

humano, excepto si éstas entran en conflicto con la primera ley.

3. Un robot debe proteger su propia existencia, a menos que estas entren en

conflicto con las dos primeras leyes.

4. Un robot podrá tomar el trabajo de un ser humano, pero no debe de dejar a

esta persona sin empleo.

III. Diseño del Robot 2 g.d.l.

El diseño del robot se desarrolló con ayuda del software SOLIDWORKS.

Las dimensiones de cada una de las piezas, se realizaron en base a la medida de

cada uno de los instrumentos, sensores y/o motores a montar en cada una de

estas. El material empleado fue un polímero, PLA (ácido poliláctico). El diseño

dentro del software mencionado, ayudó a obtener parámetros de las piezas, como

la masa, momentos de inercia, centro de masa, longitudes, etc. La impresión 3D

fue realizada por la empresa AUTOMATICS FL. A continuación en la figura se

muestra la impresora 3D.

Page 14: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 1. Impresora 3D.

3.1 Ácido PolilácticoEl ácido poliláctico (PLA), es un bio-polímero termoplástico cuya molécula

precursora es el ácido láctico. Debido a su biodegradabilidad, propiedades de

barrera y bio-compatibilidad, éste bio-polímero ha encontrado numerosas

aplicaciones ya que presenta un amplio rango inusual de propiedades, desde el

estado amorfo hasta el estado cristalino [6].

El ácido láctico (ácido 2-hidroxipropanoico, CH- 3 CHOH-COOH), contiene

un átomo de carbono asimétrico y es el hidroxiácido más sencillo que existe. Hay

dos isómeros ópticos, el D (-) láctico y L (+) láctico y una modificación racémica

constituida por fracciones equimolares de las formas L (+) y D (-). A diferencia del

isómero D (-), la configuración L (+) es metabolizada por el organismo humano.

Fue descubierto en 1780 por el químico sueco Scheele, quien lo aisló de leche

agria. Posteriormente se encontró este mismo ácido en la sangre [6].

Características del material [6]:

Polímero

Fuerza de

Tensión (Mpa)

Módulo de Tensión (Gpa)

Temperatura Máx. Usada

( C)

PLA 40 a 60 3 a 4 50 a 60

3.2 Impresión 3DLa impresión 3D es un grupo de tecnologías de fabricación por adición

donde un objeto tridimensional es creado mediante la superposición de capas

Page 15: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

sucesivas de material. Las impresoras 3D son por lo general más rápidas, más

baratas y más fáciles de usar que otras tecnologías de fabricación por adición,

aunque como cualquier proceso industrial, estarán sometidas a un compromiso

entre su precio de adquisición y la tolerancia en las medidas de los objetos

producidos. Las impresoras 3D ofrecen a los desarrolladores de producto, la

capacidad para imprimir partes y montajes hechos de diferentes materiales con

diferentes propiedades físicas y mecánicas, a menudo con un simple proceso de

montaje. Las tecnologías avanzadas de impresión 3D, pueden incluso ofrecer

modelos que pueden servir como prototipos de producto [7].

Los filamentos se caracterizan por el diámetro. Los materiales empleados

en la impresión 3D son los siguientes [7]:

Acido Poliláctico (PLA).

Acrilonitrilo Butadieno Estireno (ABS).

Page 16: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

1 2

3 4

5 6

7

Figura 2. Base del Robot (1), Articulación 2 (2), eje de articulación 1 (3), Base servo motor 1 (4), Adaptador eje servo-motor 1 (5), Articulación 1 (6) y Ensamblaje

(7).

Page 17: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 3.Vista real del Robot 2 g.d.l.

Page 18: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

IV. Características de tarjeta adquisidora, motores y sensores utilizados

4.1 ArduinoArduino es una plataforma de prototipos electrónica de código abierto

(open-source) basada en hardware y software flexibles y fáciles de usar. Arduino

puede sentir el entorno mediante la recepción de entradas desde una variedad de

sensores y puede afectar a su alrededor mediante el control de luces, motores y

otros artefactos. El microcontrolador de la placa se programa usando el Arduino

Programming Language (basado en Wiring) y el Arduino Development

Environment (basado en Processing). Los proyectos de Arduino pueden ser

autónomos o se pueden comunicar con software en ejecución en un ordenador

(por ejemplo con Flash, Processing, MaxMSP, etc.).

Características del Arduino UNO [8].

Microcontrolador ATmega328P

Voltaje de operación 5V

Voltaje de entrada (recomendado) 7-12V

Voltaje de entrada (limite) 6-20V

Pines Digitales I/O 14 (de las cuales 6 son salidas PWM)

Pines PWM Digitales I/O 6

Pines de entrada analógicos 6

Corriente de DC por cada I/O Pin 20 mA

Corriente de DC por cada 3.3V Pin 50 mA

Memoria FLASH32 KB (ATmega328P)de los cuales 0.5 KB

usados por bootloader

Page 19: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

SRAM 2 KB (ATmega328P)

EEPROM 1 KB (ATmega328P)

Velocidad del reloj 16 Mhz

Longitud 68.6 mm

Ancho 53.4 mm

Peso 25 g

4.2 Sensor de distancia SHARP GP2Y0A21YKInformación de hoja de datos [9].

Es un sensor de distancia con un amplio ángulo de medición.

Componentes:

Salida digital.

Duración de ciclo de pulso LED: 32ms.

Rango: 10 a 80 centímetros.

Tiempo típico de respuesta: 39ms.

Delay típico de arranque: 44ms.

Corriente promedio de consumo: 30mA.

Diámetro de área de detección a 80cm: 12cm.

Fuente de voltaje de operación [9]:

Parámetro Símbolo Rango Unidad

Fuente de voltaje para

operaciónVcc 4.5 A 5.5 V

Parámetro Condiciones Min. Típicas Max. Unidades

Rango de medida de

distancia 10 80 cm

Page 20: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Voltaje de terminal

de salidaL=80cm

0.25 0.4 0.55 V

Diferencia de voltaje

de salida

La salida cambia de

(80cm - 10cm)

1.65 1.9 2.15 V

Corriente promedio

de fuenteL=80cm

30 40 mA

Notas [9]:

Mantener los lentes del sensor limpios. Polvo, agua, aceite y otros

contaminantes pueden deteriorar las características del dispositivo.

Los objetos en proximidad al sensor que causan reflexión, pueden afectar la

operación del sensor (vidrios, espejos, etc.).

Un capacitor de 10uf (o mayor) entre Vcc y tierra debe ser usado.

4.3 Sensor QRD1114Información de hoja de datos [10].

Es un sensor reflexivo, que consiste de un diodo emisor infrarrojo y un

fototransistor de silicio NPN, montado lado a lado en una caseta de plástico negra.

El fototransistor responde a la radiación emitida desde el diodo, solo cuando un

objeto reflexivo o superficie se encuentran dentro del campo de visión del detector.

Componentes:

Salida fototransistor.

Superficie de censado No-Contacto.

Sin enfoque para censar superficies difusas.

Paquete compacto.

Filtro de luz de día en el sensor.

Rangos máximos absolutos [10]:

Parámetro Rango Unidades

Page 21: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Temperatura de

operación menos 40 a 85

Grados

Celsius

Emisor

Corriente directa

continua 50 mA

Voltaje de reversa 5 V

Sensor

Voltaje colector-

emisor 30 V

Voltaje emisor-

colector V

Notas [10]:

Rango de operación óptimo: 1-10mm.

Alcohol isopropílico o metanol son recomendables como agentes

limpiadores.

4.4 Servomotor MG996REs un servo que proporciona un alto torque. Se compone de engranes de

metal, cuenta con un rediseño de sistema de control PCB y IC que lo hace más

preciso. Este servo digital puede rotar 120 grados (60 grados en cada dirección)

[11].

Especificaciones [11].

Peso: 55g.

Dimensiones: 40.7 x 19.7 x 42.9 mm.

Torque de paro: 9.4 kgf-cm (4.8V), 11 kgf-cm (6V).

Velocidad de operación: 0.17 s/60 (4.8V), 0.14 s/60 (6V).

Voltaje de operación: 4.8 a 7.2 V.

Corriente de corrida: 500 mA – 900 mA.

Corriente de paro: 2.5 A (6 V).

Page 22: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

4.5 Servomotor SG90 Micro-ServoEs un servo ligero y delgado con un poder de salida alto. Cuenta con un

rediseño de sistema de control PCB e IC que lo hace más preciso. El servo puede

rotar aproximadamente 180 grados (90 en cada dirección) [12].

Especificaciones [12]:

Peso: 9 gramos.

Dimensiones: 22.2 x 11.8 x 31 mm.

Torque de paro: 1.8 kgf-cm.

Velocidad de operación: 0.1 s/60 grados.

Voltaje de operación: 4.8 V (-5V).

V. Comunicación Puerto Serial (USB)

El USB es un bus punto a punto: dado que el lugar de partida es el host (PC

o hub), el destino es un periférico u otro hub. No hay más que un único host (PC)

en una arquitectura USB. Los periféricos comparten la banda de paso del USB. El

protocolo se basa en el llamado paso de testigo (token). El ordenador

proporciona el testigo al periférico seleccionado y seguidamente, éste le devuelve

el testigo en su respuesta. Este bus permite la conexión y la des-conexión en

cualquier momento sin necesidad de apagar el equipo [13].

A nivel de alimentación. El cable proporciona la tensión nominal de 5 V. Es

necesario definir correctamente el diámetro del hilo con el fin de que no se

produzca una caída de tensión demasiado importante en el cable. Una resistencia

de terminación instalada en la línea de datos permite detectar el puerto y conocer

su configuración (1,5 o 12 Mbits/s) [13].

A nivel de señal. Se trata de un par trenzado con una impedancia

característica de 90 Ω. La velocidad puede ser tanto de 12 Mbits/s como de 1,5

Mbits/s. La sensibilidad del receptor puede ser de, al menos, 200mV y debe poder

admitir un buen factor de rechazo de tensión en modo común. El reloj se transmite

en el flow de datos, la codificación es de tipo NRZI, existiendo un dispositivo que

genera un bit de relleno (bit stuffing) que garantiza que la frecuencia de reloj

Page 23: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

permanezca constante. Cada paquete va precedido por un campo de sincronismo

[13].

Consumo. Cada sección puede proporcionar una determinada potencia

máxima siendo el PC el encargado de suministrar la energía. Además, el periférico

puede estar autoalimentado (self powered) [13].

Control de consumo. El ordenador gestiona el consumo, teniendo

capacidad de poner en reposo (suspend) o en marcha a un periférico USB. En

reposo, este reduce su consumo (si puede), quedándose la parte USB funcional.

Esta gestión está orientada especialmente a los equipos portátiles [13].

Para la comunicación ARDUINO-MATLAB, se utilizó la librería ARDUINO

I/O. Dicha librería, permite crear simulaciones en línea, en conjunto con la librería

SIMULINK de MATLAB. Una vez cargada la librería, se crean una nueva carpeta

de bloques denominada ARDUINO I/O. Dentro de la carpeta se puede tener

acceso a tutoriales y ejemplos básicos de cómo iniciar una simulación en línea por

medio del puerto serial [14].

Page 24: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 4. Librería ARDUINO I/O desde MATLAB-SIMULINK.

Page 25: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

VI. Análisis estático del robot

El análisis estático determinó las fuerzas concurrentes que actúan sobre el

robot mientras esta en reposo, por lo tanto se considera el sistema como un

cuerpo rígido, es decir, que no se deforma. Es decir, cuando la fuerza y el par son

iguales a cero, las fuerzas externas forman un sistema equivalente a cero y se

dice que el cuerpo rígido se encuentra en equilibrio. Este análisis, además, está

basado en la suposición fundamental de que el efecto de una fuerza dada sobre

un cuerpo rígido permanecerá inalterado si dicha fuerza se mueve a lo largo de su

línea de acción (Principio de transmisibilidad) [15].

6.1 Principio de transmisibilidad. Fuerzas equivalentesEl principio de transmisibilidad establece que las condiciones de equilibrio o

de movimiento de un cuerpo rígido permanecerán inalteradas si una fuerza F que

actúa en un punto dado de ese cuerpo se reemplaza por una fuerza F’ que tiene

la misma magnitud y dirección, pero que actúa en un punto distinto, siempre y

cuando las dos fuerzas tengan la misma línea de acción. Las dos fuerzas, F y F’ tienen el mismo efecto sobre el cuerpo rígido y se dice que son equivalentes [15].

Figura 5.Diagrama de cuerpo libre.

Datos:

Page 26: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

m1=0.07582 kg

m2=0.1268 kg

W sm=9 grf

W si=4 grf

W sr=4 grf

l1=0.12m

l2=0.04m

lc 1=0.06628m

lc 2=0.00667m

Donde:

m1=masadel eslabón1

m2=masadel eslabón2

W sm=peso del servomotor (sg90)

W si=peso del sensor infrarrojo

W sr=pesodel sensor reflexivo

l1=longitud del eslabón1

l2=longitud del esla bón2

lc 1=distancia al centrodemasa(eslabón1)

lc 2=distancia al centrodemasa (eslabón 2 )

N=Newton (unidad de fuerza )

grf=gramos fuerza (unidad de fuerza )

Page 27: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

g=aceleraciónde gravedad

El cuerpo esta en equilibrio por lo tanto ∑M=0 , ∑ F=0

↑+∑ F y=0 ;

RAy−W 1−W 2−W 3=0

Donde:

W 3=W sm=9grf ; si1 grf=0.00980665 N ;9 grf=0.0883N

W 1=m1 g=(0.07582kg )(9.81 ms2 )=0.7438 NW 2=W si+W sr+m2g

W si=4 grf ; si1grf=0.00980665 N ;4 grf=0.03923N

W sr=4 grf ; si1grf=0.00980665N ;4 grf=0.03923N

m2g=(0.01268 kg )(9.81ms2 )=0.1244 NW 2=0.2029N

RAy−W 1−W 2−W 3=0 ; RAy=1.035N ↑

+∑M A=0 ; si α=30 °

−M A+M B+W 3 (0.12cos30 ° )+W 1 (lc 1cos30 ° )=0 ;

MB=W 2 ( lc2 )=0.2029N (0.00667m )=1.3533×10−3N ∙m;

W 3 (0.12 cos30 ° )=9.1764×10−3N ∙m

Page 28: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

B C

W 1 (lc 1cos30 ° )=0.0427N ∙m

M A=0.05323N ∙m

Si el torque del servo-motor (eslabón 1) es de 15kgf ∙ cm.

M A=0.05323N ∙m∨ 1kgf9.8067 N

∨100cm1m

∨¿0.5428kgf ∙ cm

0.5428 kgf ∙ cm<15kgf ∙ cm

Figura 6.Diagrama de cuerpo libre (reacciones en el eslabón 2).

Page 29: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

W E2=m2g=(0.01268 kg )(9.81 ms2 )=0.1244 NW S=W si+W sr=0.07846N

Donde:

W E2=pesodel eslabon 2

W S=pesode sensores

↑+∑ F y=0 ;

RBY−W S−WE 2=0 ; RBY=0.20286N ↑

+∑M B=0 ;

−MB+W E2 (lc 2)+W S (l2 )=0 ;

W E2 ( lc2 )=8.2975×10−3 N ∙m

W S ( l2 )=3.1384×10−3N ∙m

MB=0.01144N ∙m

Si el torque del servo-motor (eslabón 2) es de 1.8kgf ∙ cm.

MB=0.01144N ∙m∨ 1kgf9.8067N

∨100 cm1m

∨¿0.1167 kgf ∙ cm

0.1167 kgf ∙m<1.8kgf ∙ cm

Los resultados en ambos casos, reacciones en los puntos A y B, indican

que una vez que el robot llega a la posición deseada, los servo-motores son

capaces de mantener la posición. Las reacciones en los puntos A y B se

encuentran por debajo del límite máximo de torque que pueden ofrecer cada uno

de los servo-motores. En el punto A se requiere de una par menor ó igual a los

0.5428kgf ∙ cm, mientras que en el punto B se requiere uno menor ó igual a los

Page 30: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

0.1167 kgf ∙m (para valores de 0º a 60º con respecto al eje y). El análisis estático se

planteo con una posición de 30º con respecto a la horizontal (eje x). Al ser 60º la

posición máxima de inclinación, con respecto al eje y, se analiza esta posición,

siendo esta la más crítica para los motores. Como resultado, cualquier valor de

ángulo de inclinación menor ó igual a 60º, con respecto al eje y, la fuerza-par en el

eslabón 1(punto A), tendrá una reacción igual ó menor a 0.5428kgf ∙ cm (par) y

1.035N (fuerza).

VII. Análisis de Cinemática: Análisis de la posición directa

En la cinemática directa para posición, las posiciones de las articulaciones,

es decir, los ángulos de las articulaciones de revoluta y el desplazamiento de las

articulaciones prismáticas se conocen. La tarea es encontrar la configuración del

efector final, es decir, su posición y orientación [3].

7.1 Parámetros Denavit y Hartenberg (DH)b i (Desplazamiento de la articulación) Longitud de las intersecciones de las

perpendiculares comunes en el eje de articulación Zi, es decir, Oi y O 'i. Esta es la

posición relativa de los eslabones i−1 e i. Esto se mide como la distancia entre X i

y X i+1 a lo largo de Zi [3].

θi (Ángulo de la articulación) Es el ángulo entre las proyecciones

ortogonales de las perpendiculares normales X i y X i+1 a un plano perpendicular del

eje de la articulación Zi. Es el ángulo relativo entre los eslabones i−1 e i. Esto se

mide como el ángulo entre X i y X i+1 alrededor de Zi. La rotación es positiva cuando

se realiza en el sentido contrario a las manecillas del reloj [3].

a i (Longitud del eslabón) La longitud entre O 'i y Oi+1. Esto se mide como la

distancia entre las perpendiculares comunes a los ejes Zi y Zi+1 a lo largo de X i+1

[3].

Page 31: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

∝i (Ángulo de torsión) El ángulo entre las proyecciones ortogonales de los

ejes de articulación Zi y Zi+1 sobre un plano perpendicular a la perpendicular

común. Esto se mide como el ángulo entre los ejes Zi y Zi+1 alrededor de X i+1. La

rotación es positiva cuando se realiza en el sentido contrario a las manecillas del

reloj [3].

θi Es variable si la articulación i es rotacional; y

b i Es variable si la articulación i es prismática.

Figura 7.Asignación de marcos.

Tabla de Parámetros Denavit y Hartenberg (DH):

Eslabón b i θi a i ∝i

1 0 θ1 a1 0

2 0 θ2 a2 0

Page 32: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Matriz de transformación entre sistemas DH:

T i=[Cθi −SθiCα i SθiSα i aiCθiSθi CθiCα i −CθiSα i ai Sθ i0 Sαi Cα i bi0 0 0 1

]Observe que la matriz de transformación del sistema i al sistema i+1 es una

función de únicamente la i-ésima variable de articulación de potencia, es decir, θi

para una articulación revoluta o rotacional, y b i para una articulación prismática,

porque los otros tres parámetros DH son constantes.

T 1=[Cθ1 −Sθ1 0 a1Cθ1Sθ1 Cθ1 0 a1Sθ10 0 1 00 0 0 1 ]

T 2=[Cθ2 −Sθ2 0 a2Cθ2Sθ2 Cθ2 0 a2Sθ20 0 1 00 0 0 1 ]

T=T 1T 2=[Cθ1 −Sθ1 0 a1Cθ1Sθ1 Cθ1 0 a1Sθ10 0 1 00 0 0 1 ] ∙[Cθ2 −Sθ2 0 a2Cθ2

Sθ2 Cθ2 0 a2Sθ20 0 1 00 0 0 1 ]

T=[Cθ1Cθ2−Sθ1Sθ2 −Cθ1Sθ2−Sθ1Cθ2 0 Cθ1a2Cθ2−Sθ1a2Sθ2+a1Cθ1Sθ1Cθ2+Cθ1Sθ2 −Sθ1Sθ2+Cθ1Cθ2 0 Sθ1a2Cθ2+Cθ1a2Sθ2+a1Sθ1

0 0 1 00 0 0 1 ]

Identidades suma y resta de ángulos:

Page 33: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

sin (θ1+θ2 )=sin (θ1 )cos (θ2 )+cos (θ1 ) sin (θ2 )=s12

cos (θ1+θ2)=cos (θ1 )cos (θ2 )−sin (θ1 ) sin (θ2 )=c12

sin (θ1−θ2 )=sin (θ1 )cos (θ2 )−cos (θ1) sin (θ2)

cos (θ1−θ2)=cos (θ1 )cos (θ2 )+sin (θ1 ) sin (θ2)

Simplificando la matriz T con las identidades previas:

T=[C12 −S12 0 a2C12+a1C1S12 C12 0 a2S12+a1S10 0 1 00 0 0 1 ]px=a2C12+a1C1

py=a2S12+a1S1

Donde

px=posición delefector finalen eleje x

py=posicióndel efector final enel eje y

Page 34: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 8.Posición del efector final

VIII. Modelo dinámico

8.1 Ecuaciones de movimiento de LagrangeLa energía total E de un robot manipulador de n g.d.l (grados de libertad) es

la suma sus energías cinética K y potencial U [4] [5]:

E (q ( t ) , q ( t ))=K (q (t ) ,q ( t ) )+U (q (t ) )

Donde q ( t )=[ q1 ( t ) ,⋯ ,qn(t)]T .

El lagrangiano L(q ,q ) de un robot manipulador de n g.d.l es la diferencia

entre su energía cinética K y potencial U [4] [5]:

L (q ( t ) , q (t ) )=K (q ( t ) , q ( t ) )−U (q (t ) )

Page 35: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Las ecuaciones de movimiento de Lagrange para un manipulador de n g.d.l,

vienen dadas por [4] [5]:

ddt [ ∂L (q , q )

∂q ]−∂L (q ,q )∂q

O de forma equivalente

ddt [ ∂L (q , q )

∂ qi ]−∂L (q ,q )∂q i

=τ i i=1 ,⋯ , n

Nota: El robot desarrollado no es un manipulador, sin embargo se utiliza las

Ecuaciones de movimiento de Lagrange con el único fin de obtener un modelo

matemático del robot. El modelo dinámico se implementó dentro de la librería de

MATLAB “SIMULINK”; utilizando el bloque MATLAB function. Apartir de los valores

obtenidos, de nuestras ganancias k p , k i , kd, en el modelado por MATLAB, se crea

una referencia de valores (k p , k i , kd) para la sintonización adecuada de nuestro

controlador en tiempo real. El fin último de este modelo dinámico es crear un punto

de partida, es decir, valores de referencia de k p , k i , kd.

Page 36: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 9.Robot 2 g.d.l.

Parametros del robot 2 g.d.l. (obtenidos por SOLIDWORKS)

Descripción Notación Valor Unidades

Longitud eslabón 1 l1 0.12 m

Longitud eslabón 2 l2 0.04 m

Distancia al centro de masa(eslabón 1) lc 1 0.06628 m

Distancia al centro de masa(eslabón 2) lc 2 0.00667 m

Masa del eslabón 1 m1 0.07582 kg

Masa del eslabón 2 m2 0.01268 kg

Inercia con respecto al centro de masa(eslabón

1) I 1 0.0004693 kg m²

Inercia con respecto al centro de masa(eslabón

2) I 2 0.000002185 kg m²

Aceleración de Gravedad g 9.81 m/s²

Page 37: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Las coordenadas del centro de masa del eslabón 1 expresadas en el plano x-y

son:

x1=lc 1sin (q1 )

y1=lc 1cos (q1 )

El vector velocidad v1 del centro de masa de dicho eslabón es en consecuencia:

v1=[ x1y1]=[ lc1 cos (q1 ) q1−lc1 sin (q1) q1]

Por lo tanto, la rapidez al cuadrado v1T v1 del centro de masa resulta ser:

v1T v1=lc 1

2 q12

Finalmente la energía cinética correspondiente al movimiento del eslabón 1 se

obtiene como:

K1 (q , q )=12m1 lc 1

2 q12+ 12I 1 q1

2

Por otro lado las coordenadas del centro de masa del eslabón 2 expresadas en el

plano x-y son:

x2=l1sin (q1)+lc2 sin (q1+q2 )

y2=l1 cos (q1 )+ lc2 cos (q1+q2 )

El vector velocidad v2 del centro de masa de dicho eslabón es en consecuencia:

v2=[ x2y2]=[ l1cos (q1 ) q1+lc 2cos (q1+q2 ) (q1+q2 )−l1sin (q1 ) q1−lc 2 sin (q1+q2 ) ( q1+q2 )]

Por lo tanto, la rapidez al cuadrado v2T v2 del centro de masa resulta ser:

v2T v2=l1

2 q12+lc 2

2 [q12+2 q1 q2+q22 ]+2l1l c2 [ q12+q1 q2 ]cos (q2 )

Page 38: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Finalmente la energía cinética correspondiente al movimiento del eslabón 2 se

obtiene como:

K2 (q , q )=12m2l1

2 q12+12m2lc 2

2 [q12+2 q1 q2+q2

2]+m2 l1lc 2[ q12+q1q2]cos (q2)+

12I 2 [ q1+ q2 ]2

La energía potencial puede descomponerse como la suma de 2 partes:

U (q )=U1 (q ) +U2(q) donde U1 (q ) y U 2 (q ) son las energías potenciales asociadas a

las masas m1 y m2 respectivamente.

U1 (q )=m1g lc1 cos (q1 )

U2 (q )=m2g¿¿

Por lo tanto el Lagrangiano es igual:

L (q , q )=K (q , q )−U (q )=K1 (q , q )+K2 (q , q )−U1 (q )−U 2 (q )

L (q , q )=12m1 lc 1

2 q12+ 12I 1q1

2+12m2 l1

2 q12+12m2 lc 2

2 [q12+2q1 q2+q2

2]+m2 l1lc 2cos (q2 ) [q12+ q1 q2]+

12I 2 [ q1+q2 ]2−m1g lc 1cos (q1)−m2g¿¿

∂L∂ q1

=m1lc 12 q1+ I1 q1+m2 l1

2 q1+m2 lc22 q1+m2 lc2

2 q2+2m2l1lc 2 q1cos (q2 )+m2l1lc 2 q2 cos (q2 )+ I2 [ q1+q2 ]

ddt [ ∂L∂ q1 ]=m1lc 12 q1+ I 1q1+m2 l12q1+m2 lc 22 q1+m2 lc22 q2−2m2 l1lc 2sin (q2 ) q1 q2+2m2l1 lc 2cos (q2) q1−m2l1 lc2 sin (q2) q2

2+m2l1lc 2 cos (q2 ) q2+ I 2 [ q1+q2 ]

−∂ L∂q1

=−m1g lc1 sin (q1)−m2g l1sin (q1 )−m2 gl c2 sin (q1+q2 )

∂L∂ q2

=m2lc 22 q1+m2lc 2

2 q2+m2l1lc 2 cos (q2 )q1+ I2 [ q1+q2 ]

ddt [ ∂L∂ q2 ]=m2l c2

2 q1+m2lc 22 q2+m2l1 lc2cos (q2 ) q1−m2 l1 lc 2sin(q2)q2 q1+ I2[ q1+ q2]

−∂ L∂q2

=m2 l1lc 2sin (q2)[ q12+q1q2 ]−m2g lc 2 sin(q1+q2)

Page 39: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

ddt [ ∂L (q , q )

∂ qi ]−∂L (q ,q )∂q i

=τ i

τ1=m1lc 12 q1+ I 1 q1+m2l1

2 q1+m2lc 22 q1+m2lc 2

2 q2−2m2l1 lc2 sin (q2 ) q1 q2+2m2 l1 lc 2cos (q2 ) q1−m2l1lc 2sin (q2 ) q22+m2 l1 lc 2cos (q2 ) q2+ I 2 [ q1+ q2 ]−m1 g lc1 sin (q1 )−m2g l1sin (q1 )−m2g lc 2 sin (q1+q2 )

τ 2=m2lc 22 q1+m2lc 2

2 q2+m2 l1lc 2cos (q2 ) q1−m2l1l c2 sin (q2) q2 q1+ I 2 [ q1+q2 ]+m2 l1 lc 2sin(q2)[ q12+q1 q2 ]−m2g lc 2sin(q1+q2)

τ 2=m2lc 22 q1+m2lc 2

2 q2+m2 l1lc 2cos (q2 ) q1+ I 2 [ q1+q2 ]+m2 l1lc 2sin(q2) q12−m2g lc 2sin (q1+q2)

Para introducir el modelo dinámico del robot, dentro de MATLAB, se utiliza

la siguiente ecuación en forma matricial o variables de estado.

Modelo en forma compacta [4] [5]:

[M 11 (q ) M 12 (q )M 21 (q ) M 22 (q )] q+[C11 (q , q ) C12 (q , q )

C21 (q ,q ) C22 (q ,q )] q+[g1 (q )g2 (q )]=τ

Donde:

M 11 (q )=m1lc 12 + I 1+m2l1

2+m2lc 22 +2m2 l1lc 2cos (q2 )+ I 2

M 12 (q )=m2lc 22 +m2l1l c2 cos (q2 )+ I2

M 21 (q )=m2l c22 +m2l1 lc2 cos (q2 )+ I2

M 22 (q )=m2l c22 + I 2

C11 (q , q )=−2m2 l1lc 2sin (q2 ) q2

C12 (q , q )=−2m2l1lc 2 sin (q2 ) q1−m2l1lc 2 sin (q2 ) q2

C21 (q , q )=m2l1 lc2 sin(q2) q12

C22 (q , q )=0

g1 (q )=−m1g lc1 sin (q1)−m2g l1 sin (q1 )−m2 g lc2 sin (q1+q2 )

g2 (q )=−m2g lc 2sin(q1+q2)

Page 40: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Vectores:

q=[ q1q2]; q=[ q1q2];τ=[τ1τ2]q=vector de aceleraciones.

q=vectorde velocidades .

τ=vector de torques .

Matrices:

M (q )=Matriz inercial .

C (q , q )=Matriz de fuerzascentrifuga y Coriolis .

g (q )=Matriz de gravedad .

IX. Simulación de Modelo Dinámico y Aplicación de Control PID

Page 41: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 10.Control Teórico, Bloque de MATLAB FUNCTION y Control 1 (Ecuaciones en variables de estado, obtenidas por el modelo dinámico, dentro de

un bloque MATLAB FUNCTION).

Page 42: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 11.Control Teórico, Control 2.

Los valores para las ganancias del controlador teórico 1 y 2 se muestran a

continuación:

K PT 1=1.1 ;K DT 1=0.1; K ¿1=0.69

K PT 2=0.9 ; K DT 2=0.05 ; K ¿2=0.26

Los valores anteriores de ganancias se obtuvieron de manera experimental.

Es decir, la sintonización se realizó en base a la respuesta de cada excitación. No

se siguió un método teórico para la determinación de estas ganancias. Sin

embargo, a continuación se demuestra que, la respuesta de cada controlador a

cada una de las excitaciones fue adecuada. (Ver figuras 12 y 13)

Para una entrada escalón el controlador 1, dentro de la parte transitoria,

obtuvo una sobreelongación del 5%, es decir, para una entrada igual a 20 se tuvo

un pico de 21. Mientras que para el controlador 2, se obtuvo una sobreelongación

del 1.5%. Dentro de la parte estacionaria, ambos controladores presentaron un

error menor al 0.001.

Page 43: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Para una excitación rampa se puede observar que la respuesta del

controlador 1, sin importar la excitación, genera más oscilaciones en comparación

a la respuesta del controlador 2. Sin embargo, dichas oscilaciones son muy

despreciables y como resultado su efecto es mínimo. Dentro de la parte

estacionaria, ambos controladores presentaron un error menor al 0.001.

Figura 12.Respuesta a entrada escalón (controlador 1 y controlador 2, 20.25 y 32.33 respectivamente).

Page 44: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 13.Respuesta a entrada escalón (controlador 1 y controlador 2, 44.36 y 60 respectivamente).

Page 45: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 14.Respuesta a entrada rampa (controlador 1 y controlador 2, 20.25 y 32.33 respectivamente).

Page 46: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 15.Respuesta a entrada rampa (controlador 1 y controlador 2, 44.36 y 60 respectivamente).

Page 47: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

X. Resultados

10.1 Control PID Experimental

Figura 16.Control Experimental (Ganancias de controlador 1 y 2 obtenidas a partir del modelo dinámico Teórico).

Page 48: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 17.Control Experimental (Entradas lecturas de sensores y Salidas escritura a servo-motores).

Page 49: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 18.Bloques de conmutación a referencia.

La parte de conmutación de referencia, funciona con un bloque lógico de

conmutación. Es un bloque “switch”, el cual tiene tres entradas. La ruta de señal 1,

“threshold” (umbral) y la ruta de señal 2. El bloque permanecerá en la ruta de

señal 1, si y solo si, el “threshold” es mayor o igual a la señal recibida (en este

caso la lectura del sensor). En este caso la rampa permanecerá comparándose

con esta misma, por lo tanto nuestro error a la salida de nuestro bloque de resta

será igual a 0. No hay movimiento del robot.

Si y solo si, el “threshold” no es mayor o igual a la lectura del sensor, la

rampa empezara a compararse con 0. Creará un error en nuestro bloque de resta,

el valor de la rampa menos 0, dando como resultado el inicio del movimiento del

Page 50: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

robot. Este se detendrá una vez la lectura del sensor sea mayor o igual al

“threshold”. La rampa crece en un tiempo de 0.012 y 0.029 grados por segundo,

para el controlador 1 y 2 respectivamente, por lo que no generará una

inestabilidad en el sistema.

La selección de un control PID se debió a las características de nuestro

sistema. Es decir, se debía buscar una posición en la cual el robot pudiera pasar

por debajo del obstáculo, además de mantener dicha posición una vez

encontrada. Las ganancias proporcionales y derivativas nos ayudaron a encontrar

un valor de posición, una vez el error fuera distinto de 0. Mientras que las

ganancias integrales nos ayudaron a mantener dicha posición una vez el erro

fuera igual a 0. En otras palabras si no se tuviera ganancias integrales la posición

del robot se perdería, y este siempre trataría de regresar a su posición de HOME.

Los servo-motores funcionan, de tal modo que su consigna, sea un valor entre 0 y

180, además de que esta se envíe de manera constante.

La respuesta del robot fue algo retardada, sin embargo, el robot fue capaz

de realizar la función especificada. Una sintonización más óptima, al igual que un

sensor de mejor calidad, sin duda alguna puede mejorar la respuesta del sistema.

Las distintas oscilaciones que presentaba el sensor de distancia, a lo largo del

tiempo, provocaron una respuesta lenta en el robot. La simulación teórica de la

planta, consistió en introducir el modelo dinámico del sistema, en forma de

variables de estado, dentro de un bloque MATLAB-FUNCTION. Dicha simulación,

demostró ser estable ante entradas escalón y rampa. La respuesta del controlador

tuvo un error de igual a 0, ante cada una de las excitaciones mencionadas. A

partir de aquí, se obtuvieron las ganancias experimentales, cuyos valores se

muestran a continuación:

K PE1=1.25 ;K DE1=0.35; K IE1=2.21

K PE2=0.85 ; KDE 2=0.1 ;K IE2=1.46

Page 51: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino
Page 52: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 19.Respuesta de control experimental contra Respuesta de control teórico (prueba 1).

Comparación de tiempo de respuesta Control Experimental-Teórico.

Porcentaje derelación de tiempode respuesta ExperimentalTeórica ( prueba1 )

Teórica :

θ1=20.25° ; tθ1T=20 seg

θ2=32.33° ; tθ 2T=32 seg

Experimental :

θ1=20.25° ; tθ 1 E=75 seg

θ2=32.33° ; tθ 2 E=75 seg

relación de tiempoExperimental−Teórica y porcentaje :

Rtθ1ET=154t θ1T=3.75 tθ1T=375%

Rtθ2ET=7532t θ2T=2.34375 t θ2T=234.375%

Donde:

t θ1T=tiempo de theta1teórica

t θ2T=tiempo de theta2teórica

t θ1E=tiempode theta1experimental

t θ2E= tiempode theta2experimental

Rtθ1ET=relación de tiempo entℜel tiempode theta1 experimental y eltiempo de theta1teórica

Rtθ2ET=relación de tiempo entreel tiempo de theta2experimental y el tiempo de theta2 teórica

Page 53: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino
Page 54: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 20.Respuesta de control experimental contra Respuesta de control teórico (prueba 2).

Porcentaje de relación de tiempode respue sta ExperimentalTeórica (prueba2 )

Teórica :

θ1=44.36 °; t θ1T=44.36 seg

θ2=60° ; t θ2T=60 seg

Experimental :

θ1=44.36 °; t θ1E=165 seg

θ2=60° ; t θ2E=165 seg

relación de tiempoExperimental−Teórica y porcentaje :

Rtθ1ET=16544.36

tθ1T=3.72t θ1T=372%

Rtθ2ET=16560

t θ2T=2.75 t θ2T=275%

Donde:

t θ1T=tiempo de theta1teórica

t θ2T=tiempo de theta2teórica

t θ1E=tiempode theta1experimental

t θ2E= tiempode theta2experimental

Rtθ1ET=relación de tiemp oentreel tiempo de theta1 experimental y eltiempo de theta1 teórica

Rtθ2ET=relación de tiempo entreel tiempo de theta2experimental y elt iempo de theta2teórica

Se puede observar que la respuesta del controlador teórico es mejor que la

del controlador experimental. Sin embargo, hay que mencionar que el “slope” de

Page 55: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

las rampas en la simulación teórica es de igual a 1; mientras el “slope” de las

rampas en la simulación en línea, experimental, es de 0.012 y 0.029 para el

controlador 1 y 2 respectivamente.

Un “slope” igual a 1 en la simulación experimental resulta en una

respuesta caótica, es decir el sistema tiende a una inestabilidad. Como resultado

se tiene que disminuir el “slope”, una vez se simula el sistema en línea. El sistema

en línea puede funcionar con un “slope” igual 1. Dentro de los primeros instantes

de tiempo, este permanecerá estable, sin embargo, mientras el tiempo en línea se

incrementa, este tenderá a una inestabilidad. En otras palabras el sistema perderá

precisión y siempre llegará a una misma posición. Posición que quedará definida

por el bloque de saturación (en este caso a un valor de 60º para cada

articulación), el cual está ubicado a la salida del controlador.

Los experimentos en línea, ayudaron a detectar las fallas que tenía el

sistema con un “slope” igual a 1. Sin embargo, estos mismos también ayudaron a

obtener los valores estables previamente mencionados.

El sistema utiliza una entrada rampa debido a que se desconoce el ángulo

al que tiene que llegar el robot. La única manera de conocer este ángulo es

utilizando una rampa, con un “slope” adecuado, como entrada. La rampa irá

creciendo, de una manera constante, al igual que el controlador ira buscando un

ángulo. Una vez el robot llegue a una posición en donde el sensor detecte que no

hay un objeto obstruyendo su paso, el robot se detendrá. Es decir, el controlador

dejará de escribir, pero mantendrá el último valor enviado.

Page 56: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Articulación 2

Articulación 1

10.2 Prueba 1

Figura 21.Grafica en MATLAB y diagrama a bloques SIMULINK (prueba 1).

Page 57: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 22.Vista real del robot (prueba 1).

Page 58: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

10.2.1 Comprobación de análisis de cinemática: Posición directa (prueba 1)De acuerdo con la matriz que define la posición del efector final del Robot y

a los valores de ángulos obtenidos por la grafica de MATLAB (prueba 1) se

obtiene que:

T=[C12 −S12 0 a2C12+a1C1S12 C12 0 a2S12+a1S10 0 1 00 0 0 1 ]px=a2C12+a1C1

py=a2S12+a1S1

Donde

px=posición delefector finalen eleje x

py=posicióndel efector finalenel eje y

a1=longitud del eslabón1 ;a2=longitud del eslabón2

Siθ1=90°−20.25 °=69.75 °θ2=32.33 °

px=a2C12+a1C1= (0.04m )cos (69.75+32.33 )+(0.12m )cos (69.75 )=0.0337m=3.37cm

py=a2S12+a1S1=(0.04m )sin (69.75+32.33 )+(0.12m ) sin (69.75 )=0.1517m=15.17 cm

Page 59: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 23. Posición del efector final (prueba 1).

10.2.3 Reacción en el punto A (prueba 1)

Figura 24.Diagrama de cuerpo libre (prueba 1).

+∑M A=0 ; si α=90°−20.25 °=69.75 °

Page 60: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

−M A+M B+W 3 ( 0.12cos69.75 ° )+W 1 (lc 1cos69.75 ° )=0 ;

MB=W 2 ( lc2 )=0.2029N (0.00667m )=1.3533×10−3N ∙m;

W 3 (0.12cos69.75 )=3.6674×10−3 N ∙m

W 1 (lc 1cos69.75 )=0.01706N ∙m

M A=0.0221N ∙m

Si el torque del servo-motor (eslabón 1) es de 15kgf ∙ cm.

M A=0.0221N ∙m∨ 1kgf9.8067N

∨100 cm1m

∨¿0.2253 kgf ∙ cm

0.2253 kgf ∙ cm<15kgf ∙ cm

Page 61: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Articulación 2

Articulación 1

10.3 Prueba 2

Figura 25.Grafica en MATLAB y diagrama a bloques SIMULINK (prueba 2).

Page 62: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 26.Vista real del robot (prueba 2).

Page 63: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

10.3.1 Comprobación de análisis de cinemática: Posición directa (prueba 2)De acuerdo con la matriz que define la posición del efector final del Robot y

a los valores de ángulos obtenidos por la grafica de MATLAB (prueba 2) se

obtiene que:

T=[C12 −S12 0 a2C12+a1C1S12 C12 0 a2S12+a1S10 0 1 00 0 0 1 ]px=a2C12+a1C1

py=a2S12+a1S1

Donde

px=posición delefector finalen eleje x

py=posicióndel efector finalenel eje y

a1=longitud del eslabón1 ;a2=lon gitud del eslabón2

Siθ1=90°−44.36 °=45.64θ2=60.00°

px=a2C12+a1C1= (0.04m )cos (45.64+60 )+(0.12m) cos (45.64 )=0.0731m=7.31cm

py=a2S12+a1S1=(0.04m )sin (45.64+60 )+ (0.12m ) sin (45.64 )=0.1243m=12.43 cm

Page 64: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 27.Posición del efector final (prueba 2).

10.3.2 Reacción en el punto A (prueba 2)

Figura 28.Diagrama de cuerpo libre (prueba 2).

+∑M A=0 ; si α=90°−44.36 °=45.64 °

Page 65: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

−M A+M B+W 3 (0.12cos 45.64 ° )+W 1 (lc1 cos45.64 ° )=0 ;

MB=W 2 ( lc2 )=0.2029N (0.00667m )=1.3533×10−3N ∙m;

W 3 (0.12cos45.64 )=7.4083×10−3N ∙m

W 1 (lc 1cos 45.64 )=0.03447 N ∙m

M A=0.0432N ∙m

Si el torque del servo-motor (eslabón 1) es de 15kgf ∙ cm.

M A=0.0432N ∙m∨ 1kgf9.8067N

∨100 cm1m

∨¿0.4408 kgf ∙ cm

0.4408 kgf ∙ cm<15kgf ∙ cm

XI. Conclusiones

De acuerdo con los resultados, se proponen las siguientes opciones para

mejorar el sistema, con fin de implementaciones futuras y/o aplicaciones distintas.

Page 66: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Mejorar el sistema de reconocimiento de entorno. El sistema puede

funcionar de una manera más óptima si se cambia el sensor de distancia

por una cámara. Es decir, la cámara determinará primero los ángulos

necesarios para evadir el objeto, para luego mandar esta consigna a las

articulaciones.

Cambiar el sistema de lazo abierto a lazo cerrado. Colocar “encoders” en

cada una de las articulaciones. Ayudara a mejorar la precisión.

Si se cambia de tipo de actuadores, hay que tener en cuenta el

funcionamiento de estos. Es decir, un control PID funciona para motores en

los cuales su consigna debe mantenerse en escritura constante. Para otro

tipo de funcionamiento se puede requerir cambiar el control PID por un PD.

El objetivo del proyecto, diseñar y controlar el movimiento de un robot de 2

g.d.l. con interfaz MATLAB-ARDUINO se alcanzó. Los resultados experimentales y

teóricos lo han fundamentado y comprobado. El análisis previo puede innovar,

ayudar, y/o mejorar el funcionamiento de este mismo prototipo.

XII. Referencias Bibliográficas y virtuales[1] Beer, Johnston, Cornwell. “Mecánica vectorial para ingenieros, Dinámica”, Mc

Graw Hill, México, 10ma Edición, 2013.

Page 67: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

[2] Katsuhiko Ogata.”Ingeniería de control moderna”, Pearson, España, 5 ta

Edición, 2010.

[3] Subir Kumar Saha. “Introducción a la robótica”, Mc Graw Hill, México, 1 ra

Edición, 2010.

[4] R. Kelly, V. Santibáñez and A. Loría. “Control of Robot Manipulators in Joint

Space”, Springer, London, 2005.

[5] Rafael Kelly.”Control de movimiento de robots manipuladores”, Pearson,

España, 1ra Edición, 2003.

[6] C. Serna Liliana. Revista Ingeniería “Ácido Poliláctico (PLA): Propiedades y

aplicaciones”, Volumen 5, No.1, 2003.

[7] http://www.ideaz3d.com/

[8] ARDUINO CORPORATION, “ARDUINO BOARD UNO”

https://www.arduino.cc/en/Main/ArduinoBoardUno, 2015.

[9] Hoja de datos “SHARP GP2Y0A21YK”, SHARP CORPORATION, Reference

Code SMA05008, 2005.

[10] Hoja de datos “QRD1114”, FAIRCHILD SEMICONDUCTOR CORPORATION,

Rev. 1.2.0, 2005.

[11] Hoja de datos “MG996R HIGH TORQUE”.

[12] Hoja de datos “SG90 MICRO SERVO”.

[13] Eric López Pérez, “El protocolo USB”, Ingeniería en Micro-controladores,

México D.F

[14] http://www.mathworks.com/matlabcentral/fileexchange/47057-arduinoio-zip

[15] Beer, Johnston, Mazurek, Eisenberg. “Mecánica vectorial para ingenieros,

Estática”, Mc Graw Hill, México, 9na Edición, 2010.

[16] Real Academia Española.”Diccionario de la lengua española”, Real academia

española, 22a edición, 2001.

[17] Francisco A. Candelas Herías, “Servomotores”, Grupo de Automática,

Robótica y visión artificial, Publicación interna 9, 20-09-2007.

XIII. Anexos Apéndice A. Planos de piezas del Robot 2 g.d.l. por SOLIDWORKS.

Page 68: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 29.Planos en SOLIDWORKS pieza base sensor (mm).

Page 69: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 30.Planos en SOLIDWORKS pieza base eslabón (mm).

Page 70: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 31.Planos en SOLIDWORKS pieza base servo (mm).

Page 71: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 32.Planos en SOLIDWORKS pieza eje servo grande (mm).

Page 72: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 33.Planos en SOLIDWORKS pieza eslabón (mm).

Page 73: Diseño y Control en Linea de Robot 2g.d.l. Con Interfaz Matlab-Arduino

Figura 34.Planos en SOLIDWORKS pieza eje servo-eslabón (mm).