diseño y control en linea de robot 2g.d.l. con interfaz matlab-arduino
DESCRIPTION
arduino robot.TRANSCRIPT
Diseño y control en línea de robot 2 g.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
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
Í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
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
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
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?
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].
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
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].
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
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].
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.
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
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).
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).
Figura 3.Vista real del Robot 2 g.d.l.
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
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
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
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).
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
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].
Figura 4. Librería ARDUINO I/O desde MATLAB-SIMULINK.
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:
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 )
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
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).
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
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].
∝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
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:
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
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 ) )
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.
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²
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 )
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)
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)
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
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).
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.
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).
Figura 13.Respuesta a entrada escalón (controlador 1 y controlador 2, 44.36 y 60 respectivamente).
Figura 14.Respuesta a entrada rampa (controlador 1 y controlador 2, 20.25 y 32.33 respectivamente).
Figura 15.Respuesta a entrada rampa (controlador 1 y controlador 2, 44.36 y 60 respectivamente).
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).
Figura 17.Control Experimental (Entradas lecturas de sensores y Salidas escritura a servo-motores).
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
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
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
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
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.
Articulación 2
Articulación 1
10.2 Prueba 1
Figura 21.Grafica en MATLAB y diagrama a bloques SIMULINK (prueba 1).
Figura 22.Vista real del robot (prueba 1).
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
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 °
−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
Articulación 2
Articulación 1
10.3 Prueba 2
Figura 25.Grafica en MATLAB y diagrama a bloques SIMULINK (prueba 2).
Figura 26.Vista real del robot (prueba 2).
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
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 °
−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.
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.
[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.
Figura 29.Planos en SOLIDWORKS pieza base sensor (mm).
Figura 30.Planos en SOLIDWORKS pieza base eslabón (mm).
Figura 31.Planos en SOLIDWORKS pieza base servo (mm).
Figura 32.Planos en SOLIDWORKS pieza eje servo grande (mm).
Figura 33.Planos en SOLIDWORKS pieza eslabón (mm).
Figura 34.Planos en SOLIDWORKS pieza eje servo-eslabón (mm).