2010

Instituto Politécnico Nacional
Unidad Profesional Interdisciplinaria de Ingenierías y Tecnologías Avanzadas

Reporte final de la construcción de un robot tipo SCARA

Asignatura: Mecatrónica VI Alumnos: Álvarez Toledo Jorge Cortez Vázquez Ricardo García Facio David Morales Cabrera Gustavo Rabadán Ortiz Adrian Rodríguez Hernández Héctor Rodríguez Palomeque Yair Sánchez Chaparro Miguel Ángel San Miguel Rodríguez Josué Daniel

Carrera: Ingeniería en Mecatrónica Semestre: 8º 2009-2010 B Grupo: 8MM1

Índice 1. Campos de aplicación de un robot tipo SCARA 1.1 Objetivos generales 1.2 Objetivos Particulares 1.3 Justificación del uso de un robot tipo SCARA 1.4 Requerimientos necesarios para el uso de un robot tipo SCARA 2. Viabilidad económica 2.1 Beneficios esperados 2.1.1 A nivel macroeconómico 2.1.2 A nivel microeconómico 2.1.3 A nivel personal 2.2 Distribución de las labores dentro del equipo de trabajo 2.3 Análisis Costo Beneficio 2.3.1 Recursos Disponibles 2.3.2 Costos esperados 2.3.3 Costo de producción unitario 2.3.4 Fijación del precio de venta 2.3.5 Proyección económica a 5 años 3. Especificaciones técnicas del robot 4. Desarrollo técnico del robot 4.1 Validación mecánica del diseño 4.1.2 Análisis de eslabón 2 4.1.3 Análisis de eslabón 1 4.2 Adaptaciones y modificaciones finales al diseño 4.2.1 Rodamientos 4.2.2 Transmisión por cadena 4.2.3 Dimensiones finales de los eslabones 4.3 Control de posición de motores de CD 4.4 Diseño y control del actuador final (gripper) 4.5 Control por visión artificial 4.5.1 Área de Visión y Calibración de Cámara 4.5.2 Programación 4.6 Interfaz de Usuario 4.7 Modelo Dinámico del Robot Scara 5. Conclusiones 6. Referencias bibliográficas 7. Anexo A: Tablas sobre viabilidad económica 8. Anexo B: Validación del diseño mecánico 9. Anexo C: Planos del diseño mecánico 10. Anexo D: Desarrollo matemático para control de motores de CD 11. Anexo E: Programas para el control de posición en motores de CD

Diseño y Construcción de robot SCARA
1. Campos de aplicación de un robot tipo Scara 1.1 Objetivos Generales Crear un robot Scara que sea capaz de realizar movimientos con alto grado de precisión y repetitividad. 1.2 Objetivos Particulares  Aplicar los conceptos básicos de cinemática directa e inversa, así como la matriz jacobiana.  Diseñar y validar la estructura mecánica del robot.  Desarrollar un sistema de control PID para regular la posición motores de CD.  Implementar un sistema de control retroalimentado por visión artificial.  Construir un gripper que sea capaz de mantenerse a una altura constante respecto a una superficie. 1.3 Justificación Los robots de configuración SCARA son ideales para procesos en los que se manejan pequeños productos y al mismo tiempo se demanda velocidad y precisión en los movimientos. En industrias donde están presentes procesos de agarrar y posicionar (pick and place) los robots SCARA son ideales, pues su tamaño es sumamente reducido en comparación con manipuladores cartesianos, además que su mantenimiento es relativamente más barato y por su propia configuración presentan movimientos más limpios. Las tareas principales que desempeñan los robots SCARA dentro de la industria farmacéutica y alimenticia son las de separar objetos en las líneas de producción, ya sea por defecto o porque serán empacados, motivo por el cual los movimientos deben ser rápidos y precisos, tal como se puede observar en la figura 1. Una necesidad que suele presentarse es la de esquivar objetos que estén dentro de un rango de alturas, para ello el gripper del robot SCARA es capaz de adaptar su altura de forma automática sin dejar de sujetar el objeto transportado.

Figura 1.3a. Aplicaciones de los robots SCARA.

Figura 2.3b. Aplicaciones de los robots SCARA.

1.4 Requerimientos Los requerimientos básicos con los que debe de cumplir un Robot SCARA que tenga aplicaciones dentro de la industria farmacéutica o alimenticia, son los siguientes:  Dimensiones. Las dimensiones de la estructura del robot se muestran en la figura 2. Éstas están directamente relacionadas con el espacio de trabajo requerido para la aplicación.  Área de trabajo. El área de trabajo bajo la que está delimitado el robot se muestra en la figura 2.

pastillas en blíster o de alimentos empacados con un peso máximo de 500 gr.  Control por visión artificial. Para aplicaciones en las que se requiere que el robot distinga entre objetos con diversas características es necesario implementar un sistema de visión artificial que ayuda a la identificación de éstas y de esta forma usar esta información para trabajar con los distintos objetos.

2. Viabilidad económica
Figura 1.4a. Dimensiones de los robots SCARA.

2.1 Beneficios esperados 2.1.1 A nivel macroeconómico  Contribuir a la reducción de la fuga de capital.  Tener disponible tecnología nacional de buena calidad, comparable con la tecnología extranjera.  Lograr la apertura de fuentes de empleo.  Que las autoridades escolares y gubernamentales reconozcan que la inversión en tecnología es un negocio redituable.  Lograr un proyecto que sea energéticamente eficiente, contribuyendo de esta forma a disminuir la contaminación ambiental. 2.1.2 A nivel microeconómico  Poner a disposición de las industrias tecnología de calidad a un buen costo.  Lograr que las industrias tengan un mayor interés por la tecnología nacional.  Ahorrar tiempos muertos en las industrias cuando éstas requieren la reparación o mantenimiento de maquinaria, pues las refacciones se encuentran dentro del país.  Disminuir la perdida de ganancias de las empresas cuando éstas reparan o dan mantenimiento a su maquinaria.  Favorecer al ahorro de las industrias en el aspecto energético.  Contribuir a que las empresas logren procesos más limpios y precisos, obteniendo así productos de mayor calidad que se verán reflejados en mayores ganancias.

Figura 1.4b. Área de trabajo de los robots SCARA.

Parámetro H1 L1 L2 H2 Radio exterior Radio interior Ángulo de apertura

Longitud (mm) 265 222 220 180 400 230 216°

Tabla 1.4a. Dimensiones de los robots SCARA.

Velocidad. La velocidad a la que trabajara el robot será una velocidad constante de 240°/s, la cual es una velocidad suficiente para recorrer el área de trabajo en un tiempo óptimo. Carga. La capacidad de carga que se exige para el funcionamiento del robot es pequeña sin rebasar 1kg, pues los objetos que manejará son del tamaño y peso de

Poner a disposición de las empresas una variedad de opciones de pago en la compra de tecnología.

2.1.3 A nivel personal  Llevar a la práctica los conocimientos adquiridos en clase.  Resolver problemas prácticos que en el salón de clase no se presentan.  Tener la oportunidad de conocer la aplicación industrial del proyecto.  Tener la oportunidad de lograr introducir el proyecto dentro de una empresa.  Lograr que las empresas se interesen por los proyectos realizados dentro de la Escuela y del Instituto.  Comprender todos los procesos administrativos que dentro de una empresa se llevan a cabo para que ésta trabaje correctamente.  Obtener una visión más amplia de la situación económica y tecnológica del país.  Tener una alternativa para poder formar una empresa y lograr ser independientes.

2.3.2 Costos esperados En la tabla 4 del anexo A se muestra la duración de cada actividad, con su correspondiente responsable. Para determinar el costo de cada hora de trabajo se tomó como referencia un salario mínimo de $52.59 (que incluye 8 horas laborales), por lo que cada hora de trabajo tiene un costo de $7.323. Para la manufactura de las piezas se tiene un costo especial, pues se utilizó un centro de maquinado CNC y un torno convencional, el costo de manufactura se muestra en la tabla 5 del anexo A. Por lo que se tiene un costo total de mano de obra por $10,914.772 Los costos de los materiales que se utilizaron para la construcción del proyecto se muestran en la tabla 6 del anexo A. Dicha tabla de costos servirá para determinar el costo unitario y de venta del proyecto. La tabla 7 del anexo A muestra una relación de otros gastos que se tuvieron durante la construcción del proyecto. 2.3.3 Costo de producción unitario Es el costo que adquiere el producto terminado, consecuencia de la suma de todos los costos de los materiales utilizados en su fabricación. El costo de producción unitario se fija a partir de la siguiente fórmula:

2.2 Distribución de las labores dentro del equipo de trabajo Para la fabricación del robot se crearon cinco diferentes departamentos con tareas específicas con la finalidad de obtener un mejor desempeño en la elaboración del proyecto, estos departamentos se pueden observar en la tabla 1 mostrada en el anexo A. La asignación de los integrantes de cada departamento así como la distribución de las tareas se llevo a cabo con base a las habilidades de cada integrante del equipo. 2.3 Análisis Costo Beneficio 2.3.1 Recursos Disponibles En la tabla 2 del anexo A se muestran los recursos materiales con los que se contaba cuando se realizó la construcción del proyecto, en su mayoría son herramientas mecánicas y equipo de cómputo. Para el cargo de depreciación de los recursos con los que ya se contaban se tomo como referencia la Ley del Impuesto Sobre la Renta a partir de su artículo 40. La tabla 3 del anexo A muestra el porcentaje de depreciación de cada recurso con el que se cuenta.

Sustituyendo valores se tiene lo siguiente:

El costo unitario de producción para 100 unidades mensuales es de:

2.3.4 Fijación del precio de venta Para la fijación del precio de venta se toma en cuenta un 35% de ganancia, por lo que se tiene lo siguiente:

De lo anterior se puede deducir la ganancia mensual para la fabricación de 100 unidades mensuales, ésta se calcula como:

2.3.5 Proyección económica a 5 años Considerando la inversión inicial para la producción de robots SCARA se tiene en la tabla 8 del anexo A. Considerando un requerimiento mensual constante de 100 robots durante 5 años se tendrá una ganancia de:

Por lo que la inversión se recuperará en:

3. Especificaciones técnicas del robot Las especificaciones técnicas del funcionamiento del robot se muestran en la siguiente tabla: Tensión de alimentación de motores Corriente mínima de alimentación Corriente máxima de alimentación Velocidad de trabajo Carga de trabajo Apertura máxima de tenazas Peso del robot 25 Volts 0.50 Ampers 1.20 Ampers 240°/s (40 rpm) 0.50 Kg 0.05 m 5.00 kg

Tabla 3a. Especificaciones técnicas de robot SCARA.

4. Desarrollo técnico del robot 4.1 Validación mecánica del diseño Mediante al análisis de elemento finito se comprueba el diseño de cada una de las placas que integran los eslabones del robot. Dicho análisis se llevo a cabo en Autodesk Inventor 2010, el cual cuenta con un módulo de análisis de elemento finito. Recordando la distribución de cargas mostradas en la figura 3 se divide el análisis en cada eslabón del robot.

Motor para gripper (WMOT3) = (0.750 Kg) (9.81 m/s2) = 7.36 N  Rodamientos entre eslabón 2 y 1 (WROD) = (0.200 Kg) (9.81 m/s2) = 1.962 N  Peso del eslabón 1 (WE1) = (0.750 Kg) (9.81 m/s2) = 7.36 N  Mecanismo de eslabón 1 (WM1) = (1.0 Kg) (9.81 m/s2) = 9.81 N  Motor para eslabón 2 (WMOT2) = (0.750 Kg) (9.81 m/s2) = 7.36 N 4.1.2 Análisis para el eslabón 2 Las cargas a las que está sometido este eslabón son: WL, WMG, WE2, WM3, WMOT3. Se sabe que la resistencia del aluminio a la fluencia (σy) es de 255 MPa, mismo que es el esfuerzo de falla, y considerando un coeficiente de seguridad de 2, se obtiene lo siguiente:

Haciendo un análisis de esfuerzos en Autodesk Inventor 2010, se obtiene los resultados mostrados en la figura 1 del anexo B, donde se puede observar que el esfuerzo máximo al que está sometida la pieza es de 15.43 MPa, esfuerzo mucho menor al esfuerzo de trabajo, por lo que se asegura la durabilidad de éste. En la figura 2 del anexo B se puede observar la deformación que sufre la pieza debido a las fuerzas presentes en ésta, siendo la deformación máxima sufrida de 0.2205 mm. 4.1.3 Análisis para el eslabón 1 Las cargas a las que está sometido este eslabón son: WROD, WE1, WM1, WMOT2. Debido a las fuerzas de reacción que tiene el eslabón 2 sobre el eslabón 1 existe una carga de 39.245 N. Se sabe que la resistencia del aluminio a la fluencia (σy) es de 255 MPa, mismo que es el esfuerzo de falla, y considerando un coeficiente de seguridad de 2, se obtiene lo siguiente:

Figura 4.1a. Cargas a las que esta sometidas el robot.

La distribución de cargas enlista a continuación:  Carga máxima a levantar (WL) = (0.500 Kg) (9.81 m/s2) = 4.905 N  Mecanismo del gripper (WMG) = (1.0 Kg) (9.81 m/s2) = 9.81 N  Peso del eslabón 2 (WE2) = (0.750 Kg) (9.81 m/s2) = 7.36 N  Mecanismo de eslabón 2 (WM3) = (1.0 Kg) (9.81 m/s2) = 9.81 N

Haciendo un análisis de esfuerzos en Autodesk Inventor 2010, se obtiene los resultados mostrados en la figura 3 del anexo B, donde se puede observar que el esfuerzo máximo al que está sometida la pieza es de 53.75 MPa, esfuerzo mucho menor al esfuerzo de trabajo, por lo que se asegura la durabilidad de éste. En la figura 4 del anexo B se puede observar la deformación que sufre la pieza debido a las fuerzas presentes en ésta, siendo la deformación máxima sufrida de 2.282 mm.

4.2 Adaptaciones y modificaciones finales al diseño De acuerdo con el diseño mecánico planteado en un inicio existen variaciones respecto a la selección de rodamientos, transmisión por cadena y longitud de los eslabones. 4.2.1 Selección de rodamientos En el reporte anterior se desarrolló la selección de rodamientos con base a las tablas características de la marca SKF, dando como resultado un rodamiento 6201, pero debido al alto costo que éste presentaba y sobre todo que su espesor no correspondía con el esperado para el diseño se decidió buscar otras opciones. De la búsqueda se obtuvo como resultado un rodamiento de la marca URB modelo R8-2R5 cuyas características se muestran a continuación:

4.2.3 Reajuste de las dimensiones de los eslabones Como se menciono anteriormente, debido a la selección de la transmisión por cadena se tuvo que reajustar las longitudes de los eslabones, quedando como se muestra en el anexo C.

B D d

7.93 mm 28.575 mm 12.7 mm

Figura 4.2.1a. Cargas a las que esta sometidas el robot.

El rodamiento anterior soporta una velocidad angular máxima de 175 rpm y tiene una vida media de 7200 horas. 4.2.2 Transmisión por cadena Finalmente para la transmisión se selecciono una transmisión por cadena flexible del número 15 con paso de ¼” siendo capaz de soportar una potencia de 0.0402 hp, la cual es proporcionada por los motores. Debido a la selección de esta cadena se tuvo que rediseñar la distancia entre centros de los sprockets siendo de 142 mm.

4.3 ETAPA DE CONTROL DE MOTORES DE CD A. MÉTODO A EMPLEAR PARA CARACTERIZAR MOTORES. Se desarrolla un método de ajuste por mínimos cuadrados de los parámetros físicos de un motor de CD de imán permanente, aplicando el método de predicción corrección de Hamming para ecuaciones diferenciales ordinarias. La implementación se realizó usando lenguaje formal para Matlab. El método propone, que para el ajuste de los parámetros es necesario el muestreo de las siguientes señales: Corriente de armadura ( ), la velocidad angular ( ) y la tensión de alimentación ( ). Dichas señales deben ser necesariamente muestreadas durante el arranque del motor, ya que en este lapso de tiempo es donde se observa con mayor claridad el comportamiento dinámico del motor. 1. Metodología Para un motor de CD de imán permanente Tenemos las siguientes ecuaciones:

Sustituyendo a, b, c y d en (1) y (2).

Aplicando el método de Hamming a (3). Sea

Si expresamos las variables en diferencias como:

Sustituyendo en (5), obtenemos la ecuación (9)

Auxiliándonos del método de Hamming, que se estructura de la construcción de las aproximaciones a la solución de valor inicial:

Para la ecuación (4)

Usando el valor predictor:

Sustituyendo (6), (7) y (8) obtenemos (11).

Una modificación y el valor corrector:

Ahora si nosotros ya conocemos , pues ya no es necesario aplicar el predictor, basta con aplicar el corrector. Para simplificar los cálculos realizaremos algunos cambios de variable, sea:

Por otra parte lo que se pretende al aplicar este método es tener el comportamiento dinámico de las ecuaciones (3) y (4), pero lo que necesitaremos para poder obtener los parámetros, es minimizar el error que nos pueda generar el método de Hamming, dicho de otro modo debemos de obtener los valores óptimos de los parámetros para poder realizar un ajuste de las curvas obtenidas por el circuito electrónico, por lo tanto aplicaremos el método de mínimos cuadrados. Si empezamos con la curva descrita por (9), entonces la distancia vertical desde el punto

hasta el punto , de la curva:

2. PID Controlador del sistema a su entrada recibe el error generado por la diferencia entre las salidas deseadas de las variables articuladas y la medición directa de éstas mediante un sensor resistivo. Su función de transferencia obedece a la ecuación:

Se debe minimizar la suma de los cuadrados de las distancias verticales B. CONTROL DE LOS MOTORES DE CD PARA LOS PRIMEROS DOS GRADOS DE LIBERTAD. (PARTE TEÓRICA) La implementación de una etapa de control de posición de motores es de suma importancia para el correcto funcionamiento del robot, ya que ésta asegura que se alcanzan de manera confiable las posiciones de las variables articuladas deseadas por el robot SCARA, en la fig.4.3a se propone el diagrama de control en lazo cerrado del sistema robótico, ya que hay que ver a la planta como todo lo que comprende el robot y no solo los actuadores.

3. Los bloques D y C Son compensadores del sistema, donde D es una matriz donde sus elementos están conformados por las masas e inercias que al ser multiplicadas por la salida del controlador PID generan una estimación del par generado por la estructura debido a las variables articuladas y que afectan directamente, en este caso, a los motores generadores del par del sistema.

fig. 4.3a Diagrama de control del sistema robótico de los primeros dos grados de libertad

1. Cinemática Inversa Es el algoritmo que nos proporciona el valor de las variables articulares a los que deseamos rotar en este caso por simplicidad del control se indica qd como un vector el cual contiene todas las variables articuladas tanto de posición y velocidad angular de los eslabones .

C es una matriz de las componentes de las reacciones que existen en las uniones de los eslabones, de tal forma que estas reacciones al relacionarse con la geometría de la estructura también generan un par perturbador. 4. Motor 1 y Motor 2 Son nuestros generadores de par para poder

producir movimiento entre los eslabones de la estructura. Para ver a un motor como un generador de par se debe de analizar como un nuevo sistema de control, de tal forma que, el motor proporcione el par deseado en cada instante de tiempo en el que se le requiera. Se puede observar que en el diagrama de la fig.4.3b la mayoría de las constantes La, Ra, ke, J y b son los parámetros internos del motor, obtenidos mediante el método explicado en A. Método a emplear para caracterizar motores. Además que al igual que el seguimiento de trayectoria de las variables articuladas, también se hace el uso de un controlador PID para asegurar la respuesta inmediata del par requerido.

1. Computadora (Algoritmo de los valores de las variables articuladas) Para la posible implementación de este control en lazo cerrado será necesario de una computadora que nos proporcione los valores de las variables articuladas deseadas, a las que debe responder el sistema. Únicamente se procesará algún algoritmo para la decodificación de posición o velocidades deseadas en el efector final, en el caso de la cinemática inversa, de las variables articuladas. Y se realizará la misma, para el caso contrario, cinemática directa. De tal forma que a un microcontrolador, externo, se le proporcionen dichos valores que deben de entrar a nuestro proceso de control.

fig. 4.3b Diagrama del controlador de par

5. Estructura mecánica Es el conjunto de elementos que conforman al sistema articulado, donde ésta requiere de una entrada tipo par para poder generar movimiento y que genera una gran cantidad de interferencia en el proceso de control durante la dinámica del sistema.

2. Microcontrolador (Implementación de un PID de forma digital) Se implementará un controlador microchip matrícula PIC18F4550, del cual utilizaremos: • • • 1 puerto para comunicación USB. de 1.5 Mb/s -12 Mb/s. 64 bytes acceso dual para USB. 2 canales ADC, con 10 bits. 1 generador con 2 canales, PWM con resolución de 1 a 10 bits. Comunicación tipo bulk. Driver: Mpusbapi. Librerias: Mpusbapi.dll,mpusbapic.h. Cristal: 20 Mhz. Frecuencia de trabajo interna: 48Mhz

C. CONTROL DE LOS MOTORES DE CD PARA LOS PRIMEROS DOS GRADOS DE LIBERTAD. (PARTE PRÁCTICA)

• • •

Este sistema de control se implementará de forma digital, ya que en la actualidad es necesaria la implementación de controladores digitales, pues los analógicos ya están quedando obsoletos por la gran cantidad de limitantes y tamaño de componentes. Para nuestro sistema de control utilizaremos el siguiente hardware. digital

• • •

Donde la programación se llevará a alto nivel con el compilador PICC.

Para la implementación de la función de transferencia del PID se programará mediante una serie de ecuaciones en diferencias. Para garantizar el correcto funcionamiento el sistema se muestreará a una frecuencia de muestreo de 10Khz. Con la que se procura que dicha frecuencia sea mayor a la frecuencia del sistema de control. La señal PWM trabajará a una frecuencia de 3Khz. Se implementa un seguimiento de referencia (dato enviado por la computadora al microcontrolador) y una retroalimentación compuestas por 8 bits mediante la lectura de los canales ADC, con dicha resolución se logran 255 posiciones (suponiendo que todas sean alcanzables por el conjunto actuador / acondicionador / estructura mecánica). Para más información sobre la programación del controlador PID ver Anexo B.

3. Etapa de potencia Para esta etapa del sistema de control se implementaron puentes H con transistores tipo mosfet, controlados por cambio del giro y señal pwm, como se puede ver en la fig 4.3c.

Se implementaron los transistores canal p y n con las matriculas IRF640 e IRF9640, se optó por este tipo de material porque sus zona de trabajo es demasiado tolerante a cambios bruscos de demanda de corriente además de que se pueden energizar a tensiones altas y su rango de frecuencias de activación de compuerta soporta mayores frecuencias que un BJT. Para aislar al circuito digital de la etapa de potencia se utilizaron opto-acopladores 4n33.

fig. 4.3c Esquema del circuito de la etapa de potencia

4.4 Diseño y control del actuador final (gripper) Al robot se le implementara un efector final el cual debe ser capaz de sostener un bolígrafo o un plumón para pizarrón, con la característica principal de avanzar sobre una superficie irregular. El efector debe de tener un alcance de por lo menos 5 cm por encima de la superficie plana donde se trazara la trayectoria. El efector debe de lograr levantar por lo menos 300gr y a su vez lograr trazar sobre superficies irregulares. Este movimiento debe de ser lo suficientemente rápido, para evitar que el robot tenga que parar durante la trayectoria. Este bolígrafo debe trazar sobre papel la trayectoria deseada por el usuario. El censado debe ser lo suficientemente preciso para evitar que la línea no sea continua, es decir que la transmisión suba o baje afectando el trazo de la trayectoria. Lograr calibrar y aislar el censor de perturbaciones del área de trabajo (iluminación, ruido electromagnético, etc). A. Desarrollo Propuesta inicial Sensor En un inicio se propone un censor óptico del tipo QRD, ya que este tiene la cualidad de ser lineal, y de fácil manejo e implementación. Se obtuvo en un solo encapsulado tanto al emisor como al receptor, por lo que al siguiente paso a cubrir es el diseño del control y la electrónica necesaria para poder procesar la señal obtenida del sensor. Material para el diseño de la estructura Para este problema se pensó en algún polímero, ya que es fácil de manejarse y maquinarse, además de que al diseño siempre hay que realizarle ajustes, se opta por este tipo de materiales, ya que es muy fácil agregar o quitar piezas de la estructura. Estos cambios comenzaran a partir de las pruebas realizadas conforme se desarrolla el mismo. Sistemas de transmisión Para el efector se proponen dos diferentes sistemas de transmisión, uno de ellos para el gripper; para poder abrir y cerrar hasta el diámetro deseado al colocar el bolígrafo o plumón para la trayectoria.

El segundo es propuesto por un sistema de cremallera para poder transformar un movimiento rotacional a un longitudinal. Este sistema nos permitirá tener la posición del motor del sistema de transmisión se desea controlar la posición del mismo. Motores Para el gripper se necesita un motor de baja potencia ya que solo debe mantener el bolígrafo en posición. Si se consigue un motor que al estar sin corriente eléctrica mantenga el bolígrafo en la posición inicial se optara por este, en caso contrario se mantendrá energizado para poder asegurar el agarre del bolígrafo. Para el movimiento a lo largo del eje Z se necesitara un motor con un par adecuado para poder mover sin problema mas de 300gr además del peso de la estructura del gripper. Este motor será seleccionado de acuerdo a sus dimensiones y costo. Control Se diseño un simple ADC seguido de un micro controlador y un puente H para el motor de la transmisión vertical. Ya que simplemente comparando el sensor óptico con una referencia, se desea a la salida con dos bits la combinación adecuada para que el motor gire en diferente sentido a través del puente h. Para el gripper se implementara un microcontrolador de tal forma que con dos simples botones se pueda abrir y cerrar. Al cerrar y llegar al borde del bolígrafo el motor se mantendrá energizado ocasionando una fuerza necesaria para que el bolígrafo se mantenga en posición. Resultados preliminares Sensor Al realizar pruebas al censor se hizo notoria la gran cantidad de perturbaciones que tenemos del ambiente, ya que al variar la iluminación del entorno se tienen variaciones en la tensión de salida del sensor. Por lo que se necesita aislarlo del entorno y disminuir lo mayor posible las perturbaciones. Material para el diseño de la estructura Se comienza por utilizar la estructura de un lector de CD ya que al ser este un polímero cumple con las características deseadas, además de que este lector ya tiene diferentes sistemas de transmisión, los cuales podrían ser utilizados.

Sistemas de transmisión Se utilizaran los sistemas de transmisión del lector de CD ya que los engranes están fabricados de nylamid, este material tiene la capacidad de soportar grandes cargas en los dientes, por lo que es factible utilizarlos. Además de que en la charola cuenta con un sistema rotacionaltraslacional, el cual podría ser aplicado en el posicionamiento vertical del gripper. Motores En el mismo lector de CD se tienen diferentes motores ya que al ser de baja potencia tienen la capacidad de por lo menos soportar el peso del plumón, además de mantener la posición del mismo, por lo que es muy factible utilizarlos en el efector. Control Se utilizo un micro controlador AVR de la serie ATMEGA8535 el cual ya incluye un convertidor analógico digital. Por lo que la señal del sensor es procesada por el micro controlador y mediante su convertidor analógico digital compararlo con la referencia. Que en este caso se trata de la posición que se quiere mantener del gripper. Este control es de buena precisión, rapidez y buen funcionamiento. Pero el principal problema se presento en el sensor, debido a las perturbaciones del ambiente y los cambios de la iluminación. Por lo que se implementara una forma de aislarlo y reducir las perturbaciones. Debido a lao mencionado al ser desplazado el efector a lo largo de una superficie irregular este tiende a subir y bajar de forma errónea, por lo que se intentara solucionar el problema expuesto. Características finales del efector

Para el movimiento de las tenazas fue empleado el mecanismo de un lector laser de un DVD el cual se modificó a conveniencia para simular las tenazas del robot, para lograr este abrir y cerrar se utilizó el motor que viene con el mecanismo, el cual trabaja a 5v y tiene un consumo de 150 mA. La etapa electrónica correspondiente se muestra en la siguiente figura:

Fig.4.4b Mecanismo empleado y modificado a conveniencia.

Fig4.4c. Diseño electrónico para el movimiento de las tenazas. Donde se utilizó un PIC16F628A para mandar la secuencia correspondiente al puente H y así poder abrir o cerrar las tenazas, cuando se presiona el botón de abrir como se muestra en el diagrama simbólico, en los pines 9 y 10 se tiene a la salida 1-0 y cuando se presiona el botón de cerrar, en la salida del pin 9 y 10 se tiene 0-1, de esta manera se genera un cambio en el sentido del motor por medio del puente H, cabe mencionar que cuando se reinicia el PIC la salida en el Pin 9 y 10 es cero, Fig.4.4a Tenazas del robot.

por lo que los transistores NPN Q5 y Q6, no conmutan y de esta manera el motor queda si energía, y como se observa en el diagrama simbólico, los pines 9 y 10 nunca puede tener la combinación de 1-1 ya que eso generaría un corto circuito. Los transistores Q5 y Q6 son BC548C, los cuales son de baja potencia y sólo sirven para activar el puente H, para Q1 y Q2 se utilizaron TIP 31C y para Q3 y Q4 los complementarios TIP 32C, cabe mencionar que el puente se calculó de tal forma que los transistores entren siempre en saturación respectivamente, de esta manera se evita que se calienten por mala disipación de potencia, debida a un voltaje presente entre el colector y emisor. Programa para abrir y cerrar programada en el PIC16F628A:
processor 16F628A include <p16f628A.inc> __CONFIG 0x2170 num1 equ 0xFF var1 equ 0x22 num2 equ 0x01 var2 equ 0x23 org 0x00 goto inicio org 0x05 inicio: CLRF PORTA Movlw 0x07 movwf CMCON bsf STATUS,RP0 ;Cambia al banco 1 movlw b'00000011' ;Configura Puerto A como entrada/salida movwf TRISA movlw b'00000000' ;Configura puerto B como salida movwf TRISB bcf STATUS,RP0 ;Cambia al banco 0 clrf PORTB sensa: btfsc PORTA,0 ;Sensa push Botton de entrada goto abrir btfsc PORTA,1 goto cerrar goto sensa abrir: call t50ms btfss PORTA,0 goto sensa

spres: btfsc PORTA,0 goto spres movlw 0x08 movwf PORTB goto sensa cerrar: call t50ms

btfss PORTA,1 goto sensa spres1: btfsc PORTA,1 goto spres1 movlw 0x10 movwf PORTB goto sensa t50ms: carga: decre: movlw num2 movwf var2 movlw num1 movwf var1 nop nop nop nop nop decfsz var1,F goto decre decfsz var2,F goto carga return

las tenazas

end

Diseño electrónico para la etapa de sensado y movimiento del efector. Como se mencionó anteriormente, el efector debe ser capaz de cargar mínimo 300 g y controlar la altura de manera automática cuando la superficie cambie, para esto se utilizó inicialmente el sensor QRD114 y se diseñó su etapa electrónica como se muestra en la figura, pero este diseño no sirvió del todo, ya que los cambios de luz de una zona a otra o el simple hecho de movernos alrededor del efector produce variaciones indeseadas las cuales consideramos como ruido y nos afectan, ya que no se puede estabilizar el efector y alcanzar la altura deseada.

Fig4.4d. Diagrama simbólico de la primera etapa de sensado propuesta.

En este diseño, el emisor se conecta a una fuente de corriente directa y permanece siempre encendido, mientras que el fototransistor percibe los cambio de luz y a su salida tenemos una variación de corriente proporcional al cambio de luz, la cual entra a la base de un transistor NPN, la corriente de colector de este que depende de la que entra en su base, permite que exista un voltaje variable en las resistencias conectadas al colector y Vcc, de tal manera que esa variación de voltaje se puede enviar a un convertidor analógico-digital, para realizar el control de posición del motor. Como es un circuito muy básico y el emisor de luz está conectado a una fuente constante, el fototransistor es vulnerable a fluctuaciones de baja frecuencia, como movimientos generados alrededor del efector que producen variaciones de luz las cuales también generan variaciones en el sensor y producen que al querer alcanzar la referencia de altura deseada se tenga bastante error o que no se alcance nunca porque el fototransistor se haya saturado por un excedente de luz, como lo hace la luz del sol. Para evitar este problema y aislar el sensor de esas variaciones de luz externas al efector, se diseñó una segunda etapa de sensado en donde se acondicionó la señal del fototransistor, además de que se utilizó como sensor el PT113 como emisor-fototransistor, en vez del QRD114, ya que es más estable a los cambios de luz. Primero se cambió la alimentación del emisor infrarrojo como se muestra a continuación:

Fig.4.4e Diagrama simbólico de la segunda etapa de sensado propuesta.

Como se observa en este diagrama, la alimentación para el emisor ahora es pulsada a una frecuencia de 1 KHz, con la finalidad de evitar las frecuencias bajas que mencionamos anteriormente, por lo que el sensor ahora detectará estas pulsaciones de luz en vez de una fuente de luz constante como se tenía en la etapa anterior, pero como ahora la respuesta del fototransistor se espera que también sea pulsada a 1 kHz, se diseña un amplificador para aumentar más la señal que entrega este, como se muestra a continuación:

Fig.4.4f Diagrama simbólico para amplificar la señal del fototransistor. Ahora la salida de este amplificador posee componentes de baja frecuencia que se generan

por las variaciones aleatorias de luz exteriores por lo que se envía a un filtro pasa altas pasivo con frecuencia de corte de en 1 kHz, para que sólo se tomen las variaciones de luz provenientes del emisor las cuales están a 1kHz. Para el cálculo se propone un capacitor de 100 nF y se calcula la resistencia correspondiente mediante la fórmula para la frecuencia de corte: Fc = = 1000 Hz

Fig.4.4h Rectificador de onda completa con operacionales. La salida del rectificador de onda completa presenta todavía componentes de alta frecuencia, para esto se diseña ahora un filtro pasa bajas con frecuencia de corte en 8.8 Hz de igual manera que el filtro anterior:

Por lo tanto al despejar se tiene una resistencia de 1591.54 Ω por lo que utilizó una comercial de 1kΩ en serie con una de 580 Ω y la nueva frecuencia de corte da de 1.007 kHz lo cual es aceptable.

Fig. 4.4i Diagrama simbólico de la segunda etapa de sensado. Fig.4.4g Filtro pasa altas a 1 kHz. Posteriormente la salida del filtro se pasa por un seguidor de voltaje para evitar la impedancia del circuito RC y del seguidor de voltaje se rectifica la señal, ya que esta será enviada a un convertidor analógico-digital y tiene que ser una señal de DC pues si se convierte la señal alternante directamente del filtro, el efector comienza a oscilar y nunca alcanza la altura deseada, es por eso que se diseñó un rectificador de onda completa con amplificadores operacionales como se muestra a continuación: Como se ve en este diagrama, después del filtro pasa bajas pasivo, se conecta otro seguidor de voltaje para aislar la baja impedancia del circuito y pueda ser enviada al ADC para realizar el control de posición del motor. Finalmente esta es la segunda etapa de sensado, la cual funciona adecuadamente y ya no es vulnerable a los cambios externos de luz o a la saturación por un exceso de luz como la luz solar:

Etapa de control con micro controlador AVR ATMEGA8535

El puente H y el micro controlador se muestran a continuación, donde el puente H se calculó para un motor que se alimenta a 9v y tiene un consumo de corriente entre los 300 mA y 800 mA dependiendo de la carga a levantar.

Fig.4.4j Mecanismo a controlar para subir y bajar las tenazas. Después de tener acondicionada la señal del sensor, se procede a convertirla utilizando el convertidor analógico digital que tiene el micro controlador ATMEGA8535 el cual es de 10 bits y tiene una resolución de 1024, por lo que se toma como voltaje de referencia 5v y cada 4.88 mV el ADC incrementa o decrementa un bit, es entonces que fijamos una referencia en binario por medio de dos dip switch conectados en los puertos C y D del AVR, por ejemplo fijamos B’0011111111 que equivale a un voltaje de 1.21v y que es el voltaje que se tiene a una altura dada del efector medida desde la superficie hasta el sensor que es móvil y que está fijo en la parte de abajo de las tenazas, ahora sólo se programa el AVR para que mande a la salida del puerto B la combinación binaria B’00000010 si el voltaje de entrada al ADC es mayor a la referencia propuesta o la combinación binaria B’00000001 si el voltaje de entrada al ADC ahora es menor a la referencia dada, y finalmente cuando la referencia sea igual al valor de entrada en el ADC, la salida de puerto B será B’00000000. De esta forma estas combinaciones se mandan a un puente H de igual manera que se hizo para abrir y cerrar las tenazas del efector, y así se logra que las tenazas puedan subir y bajar para alcanzar la altura deseada.

Fig.4.4k Diagrama simbólico de la conexión del micro controlador ATME8535 y puente H del motor. La programación del AVR se llevó a cabo en el programa Bascom para microcontroladores AVR, ya que no es una programación en lenguaje ensamblador y por la facilidad de programación. Aquí se muestra el código del programa para el control de posición:
$regfile "m8535.dat" $crystal = 11059200 Dim W As Word , Ref As Word , Dmas As Word , Dmin As Word Ddra = 0 Porta = 0 Ddrb = 255 Portb = 0 Ddrc = 0 Ddrd = 0 Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Ref = 0

Inicio: Ref = Pinc Dmas = Pind.1 * 512 Dmin = Pind.0 * 256 Ref = Ref Or Dmas Ref = Ref Or Dmin W = Getadc(0) If W > Ref Then Portb = 2 Elseif W < Ref Then Portb = 1 Elseif W = Ref Then Portb = 0 End If Goto Inicio End

Finalmente aquí se tiene el diagrama completo para la etapa del control de posición del efector final:

Fig.4.4l Diagrama simbólico para la etapa de control de posición del efector final.

4.5 VISIÓN ARTIFICIAL Para la parte de visión artificial se tiene por objetivo seguir una trayectoria, dicha trayectoria será capturada mediante una cámara digital, al tomar la foto se tiene que identificar la forma de la trayectoria a seguir y subdividirla en puntos, dichos puntos serán coordenadas, las cuales serán enviadas a la sección de software correspondiente a cinemática inversa para así calcular los movimientos que se tienen que realizar en las articulaciones,

4.5.1

ÁREA DE TRABAJO Y CALIBRACIÓN DE CÁMARA

En el caso de la visión artificial el área de trabajo total del robot SCARA (ver figura x.x) quedo reducida a un rectángulo en la parte frontal de la misma, como se observa en la figura. Como podemos ver la selección de esta se debió a la propia forma del área de trabajo del robot, es decir, a los valores máximos y mínimos que el gripper puede alcanzar, además del área que la cámara puede ver a una distancia determinada. Para encontrar el área de visión, tuvimos que comenzar trazando el área de trabajo del robot, después acercamos la cámara al lugar donde trazamos la misma centrándola a la misma y posteriormente comenzamos a alejar la cámara, esto hasta un altura antes de que la cámara viera fuera del área de trabajo. Tomamos la medición de la altura a la que la cámara quedo, que en este caso es de 40 cm, finalmente medimos el área de visión, la cual tiene las siguientes medidas (figura x.x) 23.5 cm de largo por 29 cm de ancho.

Fig 4.5.1b.- Área de visión

Debido a las características antes descritas el origen del área de visión es relativo con respecto al origen del área de trabajo del robot, por lo que para llegar al origen del área de visión es necesario hacer un offset del área de visión, como se muestra en la siguiente figura.

Fig 4.5.1c.- Offset.

Fig 4.5.1a.- Área de trabajo del robot

Para poder tener una buena precisión en el seguimiento de trayectoria, se llevo a cabo la calibración de la cámara Acteck ATW820 a la altura determinada por el área de trabajo, en este caso requerimos saber cual es valor que un pixel nos representa en centímetros. Para determinar el valor de un pixel en centímetros procedimos a tomar fotografías a la distancia requerida, 40 cm, de objetos cuadrados

de diferentes dimensiones posiciones del área de visión.

y en diferentes

foto=getsnapshot(v); figure,imshow(foto) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% %Binarizar imagen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% % foto=imread('cinta.bmp'); foto=rgb2gray(foto); [fil,col]=size(foto); foto=foto>105; foto=1-foto; figure,imshow(foto) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% %Erosion de Imagen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% estructura=[1 0 0 0 0 0 1; 0 1 0 0 0 1 0; 0 0 1 0 1 0 0; 0 0 0 1 0 0 0; 0 0 1 0 1 0 0; 0 1 0 0 0 1 0; 1 0 0 0 0 0 1]; k=sum(sum(estructura)); erosion=zeros(fil,col); for i=4:fil-3 for j=4:col-3 if foto(i,j)==1 if (sum(sum(foto(i-3:i+3,j3:j+3).*estructura)))==k; erosion(i,j)=1; end end end end figure,imshow(erosion) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% %Calculo de bordes de la imagen Erosionada %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% bordes=edge(erosion) figure,imshow(bordes) salida=bordes; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% %Codigo de la cadena %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% for i=2:fil-1 for j=2:col-1 if salida(i,j)==1 paro=1; pixel=0; while (paro==1) if salida(i,j+1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i;

A continuación se presenta una tabla con las diferentes mediciones:

Tabla 4.5.1a.- Mediciones para calibración

Numero de medición 1 2 3 4 5 6 7 8

Distancia en cm 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

Numero de pixeles 3 5 8 11 14 16 19 21

Valor de un pixel en centímetros 0.1667 0.2000 0.1875 0.1818 0.1786 0.1875 0.1842 0.1905

Finalmente para tener un parámetro regular en toda la foto decidimos hacer un promedio de los valores obtenidos, así el valor regular de cada pixel en centímetros es: Con este parámetro somos capaces de proporcionarle, tanto a la cinemática directa como a la cinemática inversa los valores necesarios para el posicionamiento del gripper.

4.5.2

PROGRAMACIÓN

El cálculo de coordenadas se implemento mediante software en matlab, a continuación se presenta la sección de código escrito y posteriormente una explicación detallada de su funcionamiento.
%Vision para Robot SCARA close all, clear all, clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% %Captura de imagen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% v=videoinput('winvideo',2); set(v,'ReturnedColorSpace','rgb') preview(v) pause

j=j+1; elseif salida(i+1,j+1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i+1; j=j+1; elseif salida(i+1,j)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i+1; j=j; elseif salida(i+1,j-1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i+1; j=j-1; elseif salida(i,j-1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i; j=j-1; elseif salida(i-1,j-1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i-1; j=j-1; elseif salida(i-1,j)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i-1; j=j; elseif salida(i-1,j+1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i-1; j=j+1; else salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; paro=0; end imshow(salida) drawnow end end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% %Escala de vectores de Coordenadas en X e Y %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% tamX=length(coordx)

coordxn=coordx(1:tamX/2); coordyn=coordy(1:tamX/2); contador=1; for i=1:5:tamX/2 posRealX(contador)=coordxn(i); posRealY(contador)=coordyn(i); contador=contador+1; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%Transformacion de escala de pixeles a cm %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% posRealX=posRealX*0.1845; posRealY=posRealY*0.1845;

Ahora que conocemos el código explicaremos detalladamente cada sección del mismo: A. Captura de Imagen
v=videoinput('winvideo',2); set(v,'ReturnedColorSpace','rgb') preview(v) pause foto=getsnapshot(v); figure,imshow(foto)

En esta sección de código se llama a la herramienta de video de matlab, se abre una ventana con una vista previa del video capturado para después obtener una captura de imagen, por último se muestra en una ventana nueva la imagen capturada, un ejemplo de captura es el siguiente:

Fig. 4.5.2a. Imagen Capturada de la Trayectoria.

B. Binarización de Imagen
foto=rgb2gray(foto); [fil,col]=size(foto); foto=foto>105; foto=1-foto; figure,imshow(foto)

Para tratar una imagen es mucho más fácil tratarla si solo se compone de dos colores, es decir negro y blanco, la imagen original tomada esta en formato RGB es decir posee tres capas una con sus componentes en rojo, otra con sus componentes en azul y otra con sus componentes en verde, con el comando rgb2gray se transforma la imagen a una matriz de una sola capa en escala

de grises para así poder manejarla con mayor facilidad, con el comando siguiente se obtiene el tamaño de la foto en filas y columnas de pixeles, después se binariza la imagen dejando pasar solo los componentes cuyo tono de gris sea mayor a 105, este valor puede cambiar dependiendo del tipo de iluminación del lugar de trabajo, después para un tratamiento más simple se invierten colores dejando el fondo negro y la trayectoria en color blanco, por último se muestra la imagen binarizada.

Fig. 4.5.2c. Imagen Erosionada de la trayectoria

D. Bordes de la imagen
bordes=edge(erosion) figure,imshow(bordes) salida=bordes;

Fig. 4.5.2b. Imagen Binarizada de la trayectoria

C. Erosión de la Imagen
estructura=[1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1; 0; 0; 0; 0; 0; 1];

El código anterior muestra el cálculo de bordes de la imagen, es decir se selecciona solo el contorno de la figura en blanco y se elimina todo lo demás, dejando solo dibujada su forma básica, esto se realiza con el propósito de obtener la imagen definida solo por contornos de un pixel de grosor, esto nos ayudara a un correcto funcionamiento del código de la cadena explicado a continuación, se muestra una figura con los bordes de la imagen calculados

k=sum(sum(estructura)); erosion=zeros(fil,col); for i=4:fil-3 for j=4:col-3 if foto(i,j)==1 if (sum(sum(foto(i-3:i+3,j3:j+3).*estructura)))==k; erosion(i,j)=1; end end end end figure,imshow(erosion)

Fig. 4.5.2d. Bordes delgados de la trayectoria

Esta sección de código es la encargada de erosionar la imagen, es decir hacer la figura de trayectoria mas pequeña quitando las capas externas de la figura mediante la aplicación de una máscara o estructura, cabe mencionar que la estructura se puede seleccionar de acuerdo al tamaño que más convenga para la aplicación, en nuestro caso se intento con distintas estructuras pero la que mejor funciono para adelgazar las trayectorias de prueba fue una estructura en forma de X con dimensión de 7 filas por 7 columnas, por último se muestra una imagen con la trayectoria adelgazada o erosionada.

E. Código de la cadena
for i=2:fil-1 for j=2:col-1 if salida(i,j)==1 paro=1; pixel=0; while (paro==1) if salida(i,j+1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j;

i=i; j=j+1; elseif salida(i+1,j+1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i+1; j=j+1; elseif salida(i+1,j)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i+1; j=j; elseif salida(i+1,j-1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i+1; j=j-1; elseif salida(i,j-1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i; j=j-1; elseif salida(i-1,j-1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i-1; j=j-1; elseif salida(i-1,j)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i-1; j=j; elseif salida(i-1,j+1)==1 salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; i=i-1; j=j+1; else salida(i,j)=0; pixel=pixel+1; coordx(pixel)=i; coordy(pixel)=j; paro=0; end imshow(salida) drawnow end end end end

cada pixel que dibuja el contorno de la trayectoria, dichos vectores se construyen de la siguiente manera: Primero se recorre la imagen fila por fila hasta encontrar el primer pixel blanco, al encontrarlo guarda su posición en una entrada de los vectores XY para después borrarlo y buscar en los pixeles circundantes por la continuación de color, es decir el pixel contiguo que sea de color blanco.

Fig. 4.5.2e. Imagen siendo escaneada mediante código de la cadena

F. Recorte de Vector de Coordenadas
tamX=length(coordx) coordxn=coordx(1:tamX/2); coordyn=coordy(1:tamX/2); contador=1; for i=1:5:tamX/2 posRealX(contador)=coordxn(i); posRealY(contador)=coordyn(i); contador=contador+1; end

Es la parte fundamental del cálculo de la trayectoria ya que como resultado de la aplicación de esta sección de código se nos entrega un vector con las correspondientes coordenadas en X e Y de

Como se puede suponer al ver trabajar al código de la cadena este nos entrega todas las coordenadas correspondientes al circuito cerrado que compone el contorno de la trayectoria, al analizar vemos que la trayectoria se recorre satisfactoriamente tomando solo los pixeles que componen la trayectoria de inicio o solo los pixeles que constituyen el regreso del código de cadena, para esto seleccionamos solo la mitad del vector correspondiente a las coordenadas tanto en X como en Y, también se observa que es innecesario tomar todas las coordenadas que nos entrega el código, ya que al tratar de mover el robot de un punto a otro serian avances de resolución muy pequeña, teniendo para este caso en particular 125 movimientos para completar la trayectoria, para eso se implemento la sección de código que toma solo unos puntos, se proponen saltos de 5 posiciones para así completar la trayectoria con 25 movimientos punto a punto.

G. Escalamiento de Vector de Coordenadas
posRealX=posRealX*0.1845; posRealY=posRealY*0.1845;

Por último se realiza una transformación de unidades o cambio de escala es decir pixeles a centímetros, como la cinemática inversa de nuestro robot está definida en unidades de distancia es de suma importancia realizar este cambio de unidades, como se explico previamente el valor de un pixel en la imagen es equivalente a 0.1845 cm reales, así al dar la posición de un pixel blanco estaremos dando la posición de una coordenada en el área de trabajo con unidades de distancia.

4.6.

INTERFAZ DE USUARIO

El objetivo de la interfaz es hacer amigable el control del robot. Se utilizó la Interfaz Gráfica de Usuario de Matlab. La interfaz conjunta todos los programas de control implementados en el robot. Hace uso de estos programas como funciones, lo que hace más fácil el manejo. Se diseñó de tal manera que su uso sea intuitivo, permitiendo al usuario un manejo fácil. La interfaz se divide en tres secciones, la parte de control del robot por visión, el control de posición dando una función a trazar y el posicionamiento punto a punto. En la sección de visión se despliega la imagen que la cámara capta, mostrando así el área de trabajo del robot en el modo de visión artificial. La trayectoria a seguir en este modo debe verse completamente en la imagen, para que el cálculo de la trayectoria sea preciso. El primer botón sirve para tomar la imagen de la trayectoria, esta será mostrada. El segundo botón da la instrucción de procesar la imagen para calcular los puntos a los que se debe mover el robot, al terminar de calcular los puntos, se habilita el tercer botón, el cual permite el movimiento del robot a través de la trayectoria. La sección de Punto a punto, se utiliza para que el robot se mueva por puntos definidos directamente por el usuario. Los puntos que se van introduciendo se dibujan en el área de trabajo para que el usuario verifique que el punto corresponde a una coordenada alcanzable. Los puntos se van agregando y se cuando haya terminado de introducir todos, entonces se da la instrucción de que el robot se mueva hacia ellos. En la sección de Función, el robot se configura para trazar una función introducida por el usuario, al terminar de escribir la función el usuario debe dar clic en el botón comprobar, para que la función sea evaluada en el área de trabajo. Se graficarán los puntos que coincidan en el área de trabajo. La función se puede borrar y escribir una nueva hasta que el usuario este conforme con los puntos. Para trazar la trayectoria se da clic en el botón Trazar Función.

El botón posición inicial configura al robot para entrar en cualquiera de los tres modos de funcionamiento. Al dar clic, el robot se va a la posición que tiene como referencia, esto al iniciar la interfaz, si al utilizar el robot en cualquiera de los modos se da clic en el botón, el robot sale del modo y se va a su posición inicial.

Fig. 4.6a. Vista de la Interfaz Grafica de Usuario

4.7 MODELO DINÁMICO DEL ROBOT SCARA En este avance se muestra paso a paso la metodología para obtener el modelo dinámico de un Sistema robótico usando como herramienta los parámetros y matrices de transformación calculados mediante matrices de rotación y traslación.

A. Parametrización del Sistema Suponga el sistema robótico mostrado en la Figura 4.7a. El primer paso que se debe realizar para poder calcular el modelo dinámico de dicho robot es definir los ejes de movimiento del sistema y los parámetros de los eslabones, como se muestra en las figuras 13 y 14, respectivamente. Fig. 4.7b Ejes de Rotación y Traslación Una vez definidos los ejes de movimiento definiremos la pose (posición y orientación) de los marcos coordenados con = 0, 1, 2, 3. Tomando en cuenta las anteriores restricciones, los marcos coordenados tienen la siguiente disposición

Fig. 4.7a Robot SCARA En la imagen anterior se puede observar la disposición de los eslabones que conforman la arquitectura SCARA. El sistema cuenta con 3 grados de libertad, de tipo R-R-P. En la figura 4.7b se muestran los ejes de movimiento de los eslabones, los cuales son muy importantes de definir, ya que, con ellos, se establecerán los ejes del sistema, ya sea para el análisis rotacional y traslacional así como el análisis mediante el algoritmo de DenavitHartenberg.

Fig. 4.7c Marcos Coordenados En la figura se observa finalmente la disposición de los marcos coordenados que definen los eslabones del sistema robótico, así como el movimiento que realizan. La base del sistema está definida como O0. La definición de cada marco de referencia es la siguiente:

B. Cinemática Directa Tanto la cinemática Directa como la cinemática Inversa fueron programadas en Mathematica, haciendo uso de vectores auxiliares para poder definir cada vector y punto del eslabón con el fin de graficarlo. Para la Cinemática Directa se piden como valores de entrada la longitud de los eslabones la distancia de separación y la distancia que bajara el efector final y el ángulo que rotaran las variables articulares . Y se obtendrá la posición del Efector Final.

Fig. 4.7d Bloques de la Cinemática Directa En el siguiente fragmento de código es donde se toman en cuenta los datos de entrada, de tal manera que son propuestos los siguientes valores:

Transformaciones Homogéneas A partir de esto se puede calcular cualquier transformación a cualquier punto, en resumen tenemos las siguientes matrices de Transformación.

Para la ubicación de cada eslabón, se definen puntos que viven sobre los marcos de referencia de forma que definan por su posición el inicio de cada eslabón, cada punto vive en el eje x del marco de referencia.

En este fragmento de código es localizada la declaración de estos desplazamientos:

Posteriormente, se multiplica la matriz de transformación desde el marco origen al punto que se va a referir, por su traslación para obtener el punto siguiente, en el código se muestra, que además de realizar la multiplicación, se reasignan los valores en vectores de 3 dimensiones que pueden ser graficables:

Fig. 4.7e Resultados de Cinemática Directa

C. Cinemática Inversa Para la Cinemática Inversa se piden como valores de entrada la longitud de los eslabones la distancia de separación y la distancia que bajara el efector final.

Una vez obtenidas las posiciones que serán a graficadas, se dibujan las líneas y articulaciones respectivas, para dar una similitud al robot SCARA. De tal manera que al ejecutar el programa, se obtiene el siguiente resultado:

Fig. 4.7f Bloques de la Cinemática Inversa En el siguiente fragmento de código es donde se toman los datos de entrada, de tal manera que son propuestos los siguientes valores:

Donde el sistema de ecuaciones vendrá en la fila 1 y la fila 2 del vector resultante de las operaciones anteriores.

De igual manera que la cinemática directa para la ubicación de cada eslabón, se definen puntos que viven sobre los marcos de referencia de forma que definan por su posición el inicio de cada eslabón, cada punto vive en el eje x del marco de referencia.

Quedando el siguiente sistema de ecuaciones:

En este fragmento de código se logra localizar la declaración de estos desplazamientos:

Donde sí se resuelve el sistema se obtendrán 2 soluciones, la cuales dan a entender las 2 maneras en las cuales es posible llegar al mismo punto, lo que se conoce como Codo abajo y Codo Arriba; para este caso se obtuvieron 2 soluciones:

Y aplicando de la misma manera la obtención de vectores de posición para graficar, para ambas soluciones, se aplica un ciclo For; primero se multiplica la matriz de transformación desde el marco origen al punto que se va a referir por su traslación para obtener el punto siguiente, en el código se muestra que además de realizar la multiplicación se reasignan los valores en vectores de 3 dimensiones que pueden ser graficables, y calcular las 2 soluciones, quedando el código de la siguiente manera: Si se multiplica la Matriz Homogénea por el Vector de diferencia de Alturas y a la matriz resultante le restamos el punto original. Se obtendrá el sistema de ecuaciones que definirá el eslabón 2 el marco 1 y la del eslabón 3 en el marco 2, y transformarlo respecto al marco 0. En el siguiente fragmento de código queda especificado:

Solución 1

Y dentro del mismo ciclo, realizar los gráficos pertinentes y almacenarlos en una matriz de gráficos, para después mediante un manipulador, mostrar ambas soluciones:

Fig. 4.7g Cinemática Inversa Solución 1 Solución 2

De tal manera que los resultados obtenidos son: Fig. 4.7h Cinemática Inversa Solución 2

D. Modelo Cinemático Una vez conocida la cinemática tanto directa como inversa, puede hacerse una generalización de, las soluciones e incluso simular los eslabones en sus movimientos, restricciones de giro, sin considerarse ningún efecto físico que pueda contemplarse para su real manipulación. Se puede observar en los gráficos que ambos puntos, llegan al efector deseado: Para realizar esto se utilizo nuevamente el software de mathematica, debido a su rapidez y fácil procesamiento, así como la herramienta directa de simulación en base a las soluciones almacenadas en vectores y un corrimiento a través de ellas.

Para simulación tomamos en base a la cinemática directa, es decir mover las variables articulares, para obtener la posición final. Quedando la interfaz grafica como se muestra en la figura.

Del mismo modo tendremos que para teta 2 el rango de giro que tendrá, esto debido a que pueden colisionar los eslabones será de -20° a 196°. En las figuras, mostramos su simulación

Fig. 4.7i Modelo Cinemático De la siguiente figura observaremos, una vista superior y una vez dados los datos del fabricante o delimitada el área como ya se explico, para el eslabón 1, tendremos un giro de -18° a 198°, respecto a la base.

Fig. 4.7k Restricción de giro inferior para teta 2

Fig. 4.7l Restricción de giro superior para teta 2 Estos resultados idealmente sin haber considerado, la longitud del griper, pues realizamos básicamente un control sobre los 2 grados de libertad principales. Así mismo comprobamos que el área de trabajo mencionada, al incluir el largo de 3 cm del gripper, coincide con la simulación de acuerdo a los parámetros de cinemática dados. Diámetro Exterior de 40 cm, Diámetro Interior de 23 cm.

Fig. 4.7j Restricción de giro inferior para teta 1

El Jacobiano nos permite expresar la relación entre las velocidades de las variables articulares y las velocidades en el espacio cartesiano. El Jacobiano depende del sistema de referencia en el que se exprese. La definición de Jacobiano se puede expresar mediante la siguiente ecuación:

Fig. 4.7m Diámetro exterior de área de trabajo

Donde, Jv (q) ∈ ℜ3×n representa el Jacobiano de velocidades lineales y Jw(q) ∈ ℜ3×n es el Jacobiano de velocidades angulares. En otras palabras, el Jacobiano J (q) ∈ ℜ6×n es una transformación que relaciona el espacio de velocidades articulares ∈ ℜn con el espacio de velocidades operacionales (o cartesianas) ∈ ℜ3. Para poder calcular el Jacobiano de cada centro de masa del robot manipulador SCARA diseñado, debemos definir las siguientes variables:  Ejes de movimiento de cada centro de masa

Fig. 4.7n Diámetro interior de área de trabajo Uniendo ambas trayectorias, obtenemos el área de trabajo ya mencionada

Posición de cada centro de masa respecto a la base

Fig. 4.7o Área de trabajo obtenida de la cinemática E. Modelo Dinámico Ahora bien, para comenzar a modelar la dinámica del robot SCARA, necesitamos calcular los Jacobianos de cada centro de masa.

Calculando El jacobiano de velocidades angulares y velocidades lineales:

Revoluta No afecta

Revoluta Prismátic o Prismátic o

Suponiendo el mismo caso que se manejo en la Cinemática Directa para:

Obtendríamos el siguiente jacobiano:

5. Conclusiones Sánchez Chaparro Miguel Angel Rodríguez Hernández Héctor Alfonso. En el presente proyecto, pudimos encontrar diversas dificultadas a la hora de diseñar los sistemas y partes que constituyen el robot, pero sobre todo, pudimos ver que la dificultad más grande la encontramos en el momento en que comenzamos a intentar controlar los motores ya montados en la estructura. Porque como se puede observar en las anotaciones del control, cada eslabón junto con el motor debe ser tratado como un sistema diferente a controlar, y no tomar el control solo del motor, sino como un conjunto. De tal forma que al percatarnos de que aun cuando el diseño de la estructura fue el correcto, existía un juego en los motores y aun mas las flechas, piñones, etc., tendían a desajustarse debido al propio movimiento de los motores, lo cual a su vez hacia que tuviéramos señales de interferencia (ruido) que provocaban oscilaciones en el control. En cuanto a la cinemática directa e inversa (ver sección de cinemática directa e inversa), fue necesaria la adición de algunos marcos para la simulación cinemática directa, ya que con los marcos mínimos no se podía hacer la simulación de la misma en 3D. Y con respeto a la cinemática inversa, la selección de las ecuaciones que nos permiten definir las variables articulares correctamente. Otro punto importante en el cual tuvimos dificultades fue la parte de visión artificial, y esto básicamente por el proceso de la obtención de la trayectoria, ya que como se puede leer en la sección de visión artificial, al obtener el vector que contiene la trayectoria debido al algoritmo que utilizamos, este rotaba 90°. La implementación de un nuevo algoritmo que permitiera poner en el orden correcto el vector. Por último en el diseño del efector final, existieron dos dificultades básicas, la primera fue la adaptación que se tuvo que hacer a un sistema prediseñado para que pudiera soportar los requerimientos en peso que fueron estipulados en el proyecto. Y el segundo, el diseño de un sensor que nos proporcionara el funcionamiento del tercer frado de libertad, que como podemos ver en la sección de gripper, tuvo como ultima y mejor implementación el de un sensor ultrasónico, pero que sin embargo paso por varias otras implementaciones y configuraciones. Al enfrentarse a un diseño desde cero y ser novatos en esta área se presentan muchas dificultades en la realización de cualquier proyecto, por fácil o difícil que este sea, en el caso de nuestro diseño y construcción de un robot scara se presentaron una serie de inconvenientes, los cuales nos hicieron adquirir experiencia tanto en diseño mecánico como en implementación de control. Lo primero que se presento en el diseño fue en que basarse, debido a que ya se disponía de algunos motores los cuales podían haber sido controlados y mediante el torque de salida de estos hacer el diseño mecánico de la estructura, otra opción fue realizar el diseño mecánico proponiendo dimensiones y de acuerdo a la dimensión de eslabones y al par necesario para el movimiento de estos adquirir los actuadores ideales. Esta segunda opción fue la adoptada. Otra característica difícil de resolver fue el diseño del gripper con variación de altura, ya que se implementaron varias soluciones con distintos tipos de sensores, el resultado final fue la implementación del variador mediante sensores ópticos. Uno de los puntos fundamentales del diseño del robot fue el control de posición así como la visión artificial y la conjunción de estos, ya que de acuerdo al control de motores y su restricción de movimientos nos dieron las dimensiones del área de trabajo, también, con la cámara empleada solo se pudo cubrir cierta sección del área de trabajo teniendo que limitar el seguimiento de trayectorias a un área pequeña, en la programación de visión artificial se optó por varias soluciones siendo la más fácil mediante dilatación, bordes y regla de la cadena. En general el diseño y construcción de un prototipo interdisciplinario (es decir que conjunta varias disciplinas como la mecánica, electrónica, control, robótica y visión artificial) siempre será más complicado que enfocarse en un área particular pero el desempeño de un prototipo de esta naturaleza será mas completo y hará al diseñador adquirir más experiencia y versatilidad para futuras ocasiones.

Morales Cabrera Gustavo Sin duda alguna cualquier proyecto que involucre la aplicación real de los conceptos vistos en clase, no es trabajo fácil, y peor en un materia en la cual

se juntan asignaturas que van desde el análisis matemático hasta el análisis estructural y económico. A pesar de las limitantes por la que ha pasado el curso se ha logrado desarrollar un prototipo de cumple con las características propuestas desde un principio, es decir, diseñar una estructura óptima para soportar una carga establecida y por otro lado la creación de control de posición para motores de CD. Durante la fabricación de este prototipo se han tenido diversas complicaciones, por ejemplo el crear un ajuste adecuado para los rodamientos entre los eslabones y hasta el mismo ensamble, hablando de la parte de control las mayores complicaciones fueron al momento de integrar este sistema a la estructura pues no se contemplo la inercia de los eslabones y esto provoca que el control sufra perturbaciones al ajustar la posición del motor; todo lo anterior en buena parte es provocado a la inexperiencia práctica que tenemos en cada una de las materias, pues solemos quedarnos con los conceptos que se ven en clases y muy rara vez buscamos una aplicación práctica. Este prototipo está muy lejos de ser una aproximación a los robots empelados industrialmente, pues éstos últimos utilizan técnicas más avanzadas de control y mecanismos más complejos, ejemplo de ello son los servomotores de AC que emplean comparados con los motores de CD utilizados en el prototipo, pero la idea principal de fabricar el prototipo no es competir contra los robots industriales, si no dar una noción del proceso que se debe de cumplir si es que requiere diseñar y construir un robot manipulador y sobre todo comprobar que los conceptos vistos en clase en verdad se aplican de una u otra forma. Rodrìguez Palomeque Yair Enrique Es muy complejo poder desarrollar un prototipo de un robot, ya que se necesitan considerar muchos parámetros para su desarrollo. En un principio se visualiza como un proyecto relativamente sencillo pero conforme se va desarrollando el mismo comienzan a aparecer problemas que no habían sido considerados. Por ejemplificar en el desarrollo del efector no se había considerado las perturbaciones por el entorno, es decir la iluminación, ruido electromagnético, etc. Por lo que el desarrollo de esta parte del prototipo se complico en gran medida.

Con este tipo de aplicaciones prácticas de conocimientos en clase se crea una gran atmosfera de aprendizaje y experiencia en el ambiente ingenieril, ya que como se menciono anteriormente comienzan a aparecer problemas que en la parte teórica no se consideran en la mayoría de los casos. La entrega de este reporte se considera algo temprana, ya que aun no ha sido suficiente el tiempo como para poder realizar pruebas al robot y visualizar si cumple los objetivos planteados en este prototipo, por lo que me parece adecuado que el día de la presentación del prototipo sea entregado el reporte del mismo. Finalmente se obtuvo desde el punto de vista personal una gran experiencia en el desarrollo del prototipo, ya que necesitamos de software y diseño para cumplir con los lineamientos del prototipo. Rabadán Ortiz Adrian Cuando se propuso el proyecto de llevar a cabo un robot, nunca me imagine que el diseño de este fuera a depender de tantos campos de conocimiento ya que uno piensa que sólo es cortar eslabones de algún material como aluminio o nailamit, y colocar los motores y realizar un controlador, pero a la hora de llevar a cabo un buen diseño, resulta que se tienen que aprender muchas más cosas que serán tomadas en cuenta a la hora de realizar el diseño, como lo es la parte de la mecánica del robot, la cual es indispensable ya que si no se diseñan bien las transmisiones, el movimiento del robot no será el deseado, o simplemente afectará con el control de los motores del robot, por otra parte están los análisis de resistencia y desgaste para la misma parte mecánica, ya que si los eslabones no se diseñan de las dimensiones correctas pueden sufrir deformaciones o simplemente no levantar la carga propuesta para el robot, por otra parte cabe mencionar que es muy importante el diseño electrónico, ya que durante la realización del control de los motores de DC, se observó que si se colocan los cables de manera aleatoria, se induce demasiado ruido que afecta al convertidor analógico-digital, por lo que para solucionar esto se enrollaron los cables y se metieron dentro de una manguera, así como también realizar filtros para eliminar frecuencias indeseadas que están presentes en el medio de trabajo del robot y que si se desprecian puede ocasionar grandes problemas, con esto finalmente se redujo demasiado el ruido, además de que se recomienda tener una buena fuente de alimentación, la cual mantenga un voltaje y corriente constante, ya que hay que

recordar que se están utilizando actuadores de potencia, los cuales producen muchas perturbaciones a los circuitos electrónicos. En conclusión puedo decir que llevar a cabo este diseño permitió que pudiera aprender nuevos conocimientos y reforzar más los que ya tenía, así como poder juntarlos todos y realizar cosas más complejas, como fue el diseño del efector final, el cual parece ser fácil y lo primero que se nos ocurre es utilizar algún amplificador operacional y ya, pero la realidad es que a la hora de hacerlo se deben de tomar en cuenta factores como el tipo de motor y el ruido que este produce, así como el tipo de sensor y lo más importante la forma de acondicionar la señal de tal manera que no se afecte por variaciones exteriores de luz como nos pasaba, en fin realizar un robot es una tarea complicada, pero me agrado hacerlo, pues siento que hicimos un buen trabajo como equipo. Cortez Vázquez Oscar Ricardo La elaboración y el diseño de un robot scara permitió que el equipo obtuviera experiencia significativa en el desarrollo del mismo. Inicialmente se tenía la disyuntiva del tipo de material a usar, de la forma que tendrían los eslabones, además del tipo de transmisión que llevaría el robot y por último que tipo de motores se utilizarían. Por lo tanto la forma de resolver dichos problemas se basó específicamente en la búsqueda de información en la red y en libros. El equipo tomó en cuenta diferentes factores de diseño que permitieran tener un robot robusto y por lo tanto más efectivo en cuanto a su implementación en algún proceso en específico, sin embargo se tuvo conciencia que se verían afectados otros aspectos, entre los cuales resaltan la inversión económica en su desarrollo así como el ensamblaje del robot. Una vez realizado el diseño de todos los sistemas que abarca el robot scara se comenzó con una de las partes más importantes, la cual corresponde al control digital de los motores de CD que conforman al robot. En esta parte se tuvieron demasiados problemas ya que se generaba mucho ruido por diversos factores, tales como fallas en el ensamblaje de la parte física del robot así como en el trabajo en conjunto con los sistemas electrónicos involucrados en el mismo. Por último puede concluirse que en cada parte se presentaron problemas que no se habían tomado en cuenta, lo cual fue la principal fuente

generadora de fallas, sin embargo si se hubiera analizado más a fondo cada parte se hubieran podido evitar muchos problemas que retrasaron el término del desarrollo del robot scara. García Facio David En el desarrollo del sistema robótico se puedo observar algunas deficiencias que como estudiantes de ingeniería se tienen al momento de diseñar algún proyecto. Además de que se debe de tener una visión muy fija y no tan general del sistema a diseñar, es decir conocer la mayoría de los aspectos que uno puede manipular y controlar para poder obtener los resultados deseados tanto en el diseño mecánico y como en el eléctrico. Para el desarrollo del controlador se optó por la implementación de actuadores, motores de CD, ya que al implementar servomotores lo que uno realmente controla es la posición de la flecha del servomotor y no la posición de las articulaciones, además de que en el diseño del controlador del motor de DC se puede saber en algún instante de tiempo requerido la posición actual de la articulación. Durante el ensamble de las distintas tareas a realizar por el sistema se debe de considerar las distintas utilidades que puedan aportar una de la otra, ya que se pueden realizar algunas tareas imprentando una u otra tarea por separado o al mismo tiempo varias. Se puede decir que este proyecto deja algunas experiencias para el posterior mejoramiento de algunas aplicaciones a fin. Josué Daniel San Miguel Rodríguez El desarrollo de este tipo de proyectos en este momentos, no sirve de mucho a vísperas de lo que nos espera en el trabajo terminal; con esto nos damos cuenta de la importancia del diseño de tus propias piezas, pues en base a cálculos podemos determinar el comportamiento de los materiales ante la aplicaciones de cargas, sus deformaciones, así como poder encontrar las dimensiones optimas y normalizadas para la construcción y diseño. Aunque se nos vino el tiempo encima considero que este proyecto tendrá gran importancia para generar nuevas ideas y experiencias que nos conllevaran a un buen

desarrollo del TT, más que nada diseño, robótica y visión artificial, estos módulos en conjunto para robots, nos dan un campo más conocimiento.

en el área de pues al incluir el control de amplio en el

La parte que considero fue de mayor dificultad, fue el diseño mecánico, pues aunque se hicieron muchas consideraciones teóricas, al finalizar el ensamble y comenzar a realizar pruebas, surgieron mas imprevistos de los que se habían considerado, dejándonos hacer uso de la mente ingenieril que tenemos cada uno para poder solucionar estas deficiencias. La parte de control de posición de los motores, también es un factor importante, pues de este depende la precisión del robot, por lo cual creo que es la base de tal. Los módulos de visión artificial son un plus que nos ayudara a entender este amplio campo en la industrias tanto para la detección de trayectorias, piezas formas e incluso objetos con algunas dimensiones determinadas dentro de un área de trabajo. Álvarez Toledo Jorge Al diseñar un prototipo nos enfrentamos a la cuestión de cómo empezar a definirlo. Los distintos parámetros que influyen en el diseño hacen difícil el inicio de este; al ser principiantes en diseñar, nos vemos caer varias veces en problemas. Un problema medular del control del robot, es el sensado de la posición, el cual debe ser preciso ya que de esto depende la funcionalidad del robot. Las vibraciones en el prototipo influyen en el desplazamiento lineal de los sensores (potenciómetros). Otro problema es el inicio de configuración del robot, para calibrarlo en los desplazamientos, ya que la estructura se ve sometida a movimientos bruscos, porque el control todavía no se implementa. Al hacer pruebas de desplazamiento, comienzan a salir problemas sobre las condiciones de la estructura y sobre el manejo de información en el sensado de posición. Las variaciones de la señal censada afectan de manera importante el control de posición, se montaron filtros y el cableado de los sensores se hizo lo mejor posible. La conjunción de los distintos programas de control del robot fue complicada ya que al ser programados por distintas personas la compatibilidad se vuelve compleja. Una manera de solucionarlo fue implementando cada programa como una función

que se llama cada vez que se necesita, sólo fue necesario ponernos de acuerdo sobre las variables de salida y entrada y el formato de estas. Al montar la estructura nos enfrentamos a problemas de ensamble de piezas ya que a pesar de que se tiene un diseño, este se idealiza un poco y al momento de armar los detalles se hacen presentes, la manera de solucionar los problemas cuando ya tenemos eslabones y parámetros definidos no es más que el ingenio.

6. Referencia Bibliográfica [1] P. M. Gonzalo, “Visión por Computador, Imágenes Digitales y Aplicaciones”, 2da ed. , Ed. México: Alfaomega Grupo Editor, Junio 2006. [2] G.Woods, “Digital Image Processing”, 3ra ed., Ed. USA:Prentice Hall, 2008. [3] Hibbeler R. C., “Mecánica de materiales”, 6ta ed., Ed. México:Prentice Hall, 2006 [4] Kelly Rafael, “Control de movimiento de robots manipuladores”, 1ra ed, Ed. España: Prentice Hall, 2003 [5] Spong W. Mark, “Robot modeling and control”, 1ra. ed, Ed EU: Prentice Hall, 1989 [6] Siciliano Bruno, “Robotics modelling, planning and control”, 1ra ed, Ed. Inglaterra: Springer-Verlag, 2009 [7] G. B. Eduardo, “Compilador C CCS y simulador PROTEUS para microcontroladores PIC”, 1ra ed. , Ed. México: Alfaomega Grupo Editor, Junio 2008. [8] (Página web Microchip). http://www.microchip.com/wwwproducts/De vices.aspx?dDocName=en010300 [9] Gabriel Jesús Pool Balam,” Transferencia y procesamiento de datos a alta velocidad, mediante el uso de MATLAB, el puerto USB 2.0 y PIC18F2455 de Microchip™”. pp 2. Julio 2009.

Anexo A: Tablas sobre viabilidad económica No. Departamento
 1 Diseño mecánico y manufactura  

Ocupaciones

Integrantes

Diseñar la estructura mecánica que cumpla con los requerimientos dinámicos. Validar el diseño mecánico. Fabricar y ensamblar las piezas necesarias para el robot.

Morales Cabrera Gustavo Sánchez Chaparro Miguel Ángel San Miguel Rodríguez Josué Daniel Rabadán Ortiz Adrián

Cinemática directa e inversa 2

Con base al diseño mecánico generar las ecuaciones necesarias de la cinemática directa e inversa. Diseñar y construir controladores aplicados a motores de CD usados en el robot. Crear un control de movimientos basado e visión artificial.

Álvarez Toledo Jorge San Miguel Rodríguez Josué Daniel

 Control eléctrico y visión artificial

3

Álvarez Toledo Jorge Cortez Vázquez Oscar Ricardo García Facio David Rodríguez Hernández Héctor Sánchez Chaparro Miguel Ángel

 Alimentación y electrónica

4

Fabricar fuentes de alimentación que cumplan con el consumo energético del robot. Crear los diferentes circuitos requeridos en para el control del robot.

Álvarez Toledo Jorge Rabadán Ortiz Adrián Rodríguez Palomeque Yair

5

Administración de recursos económicos y materiales

Distribuir de forma óptima los recursos económicos y materiales indispensables en la fabricación del robot. Realizar la repartición de labores para cada departamento.
Tabla 1. Distribución del trabajo.

Sánchez Chaparro Miguel Ángel Morales Cabrea Gustavo

Recurso Humano 9 Técnicos 1 1 1 1 1 1 1 2 1 1 1 1 1 3 Total

Recursos Materiales minidrill vernier digital juego de brocas machuelo 3/16" machuelo 5/32" cortador fresadora pinzas de presión prensa en C rotomartillo juego de desarmadores cautin pinzas pelacables multímetros digital Laptop Dell

Costo $760.00 $320.00 $530.00 $84.00 $46.00 $230.00 $52.00 $30.00 $660.00 $480.00 $130.00 $200.00 $400.00 $42,000.00 $45,922.00

Recurso Económico $2,700.00

Otros

$2,700.00

Tabla 2. Recursos disponibles.

Recursos Materiales 1 1 1 1 1 1 1 2 1 1 1 1 1 3 minidrill vernier digital juego de brocas machuelo 3/16" machuelo 5/32" cortador fresadora pinzas de presión prensa en C rotomartillo juego de desarmadores cautin pinzas pelacables multímetro digital

Costo $760.00 $320.00 $530.00 $84.00 $46.00 $230.00 $52.00 $60.00 $660.00 $480.00 $130.00 $200.00 $400.00

Taza de Depreciación depreciación anual 35% $266.00 35% $112.00 35% $185.50 35% $29.40 35% $16.10 35% $80.50 35% $18.20 35% $21.00 35% $231.00 35% $168.00 35% 35% 35% $45.50 $70.00 $140.00 $12,600.00 $13,983.20

Laptop Dell $42,000.00 30% Total $45,922.00 Tabla 3. Depreciación de los materiales.

Actividad Diseño mecánico Ensamblado Diseño, manufactura y ensamble de gripper Control eléctrico de gripper Caracterización de motores Control motor de CD Caracterización de sensores Diseño e implementación de algoritmos de control por visión artificial Diseño y fabricación de fuentes Programación y comunicación con PC Planeación Organización Control Dirección

Departamento Horas/Hombre Costo/Hora responsable 1 37 $7.323 1 9 $7.323 1 4 3 3 3 8 21 3 27 10 $7.323 $7.323 $7.323 $7.323 $7.323

Total $270.951 $65.907 $58.584 $153.783 $21.969 $197.721 $73.230

3

21

$7.323

$153.783

4 3 5 5 5 5 Total

21 7 120 120 240 120

$7.323 $7.323 $7.323 $7.323 $7.323 $7.323

$153.783 $51.261 $878.760 $878.760 $1757.520 $878.760 $5594.772

Tabla 4. Costos esperados.

Actividad Manufactura de eslabones en CNC Manufactura de ejes Costo total

Departamento Horas/Hombre Costo/Hora responsable 1 1 6 2 $845.000 $125.000

Total $5070.000 $250.00 $5320.000

Tabla 5. Costos esperados de manufactura.

Cantidad 1 4 6 2 2 1 1 1 1 1 1

Parte Material de aluminio Ejes de flecha Baleros 1 1/8” Motor reductor Sprocket Cadena paso de ½” Pegamento a base de catalizador Tornillería y machuelos Nylamid Material Gripper Material electrónica Total

Precio Unitario $250.000 $220.000 $25.000 $100.000 $30.000 $30.000 $63.000 $231.000 $60.000 $400.000 $521.000

Total $250.000 $220.000 $150.000 $200.000 $60.000 $30.000 $63.000 $231.000 $60.000 $400.000 $521.000 $2185.000

Tabla 6. Costos de materiales.

Concepto Transporte Total
Tabla 7. Otros gastos.

Gasto $610.00 $610.00

Inversión inicial Recursos materiales Recursos económicos Recursos mano de obra Materiales de construcción Total de inversión
Tabla 8. Total de inversión por robot.

Costo
$45,922.000

$2,700.000 $10,914.772 $2,185.000 $61,721.772

Anexo B: Validación del diseño mecánico

Figura B1. Análisis de esfuerzos en eslabón 2.

Figura B2. Análisis de deformación en eslabón 2.

Figura B3. Análisis de esfuerzos en eslabón 1.

Figura B4. Análisis de deformación en eslabón 1.

Anexo C: Planos del diseño mecánico

Figura C1. Reajuste de dimensiones para el eslabón 1.

Figura C2. Reajuste de dimensiones para el eslabón 2.

Figura C3. Reajuste de dimensiones para el eslabón sujetador.

Figura C4. Ejes de acoplamiento entre base y eslabón 1.

Figura C5. Ejes de acoplamiento entre eslabón 1 y eslabón 2.

Figura C6. Diseño CAD en 3D del actuador Final

Anexo D: Desarrollo matemático para Control de Motores

El valor mínimo de la función se determina igualando a cero las derivadas parciales resolviendo las ecuaciones que resultan en A y B. Para A:

y

, y

Para B:

Utilizando la propiedad distributiva de la suma, obtenemos de (13) y (14):

Llevando esto a un sistema de ecuaciones matricial tenemos:

Aplicando mínimos cuadrados para (11)

Anexo E: Código del controlador digital PIC18F4550

Sign up to vote on this title
UsefulNot useful