universidad politÉcnica salesianadspace.ups.edu.ec/bitstream/123456789/1109/14/ups-ct002210.pdf ·...
Post on 27-Mar-2020
6 Views
Preview:
TRANSCRIPT
UNIVERSIDAD POLITÉCNICA
SALESIANA
SEDE CUENCA
FACULTAD DE INGENIERÍAS
CARRERA DE INGENIERÍA ELECTRÓNICA
Tesis previa a la obtención del Título de Ingeniero Electrónico
“AUTOMATIZACIÓN DE UN SISTEMA DE
CENTRADO DE COMPONENTES UTILIZANDO
VISIÓN ARTIFICIAL”
Autores:
Martín Fernando Cárdenas Vera.
Tcnlgo. Omar Rosendo Llerena Pizarro
Director:
Ing. Eduardo Calle O.
Cuenca – Ecuador
2012
Agradecimientos
Agradezco a todas las personas que aportaron directamente o indirectamente en la realización de
esta tesis, como es el caso de mis padres. Gracias por la paciencia y por todo el apoyo brindado.
Martín Cárdenas
Agradezco a Dios por darme unos Padres que siempre estuvieron apoyándome.
Omar Llerena.
Declaratoria de Responsabilidad
Nosotros, Martín Fernando Cárdenas Vera y Omar Rosendo Llerena Pizarro, declaramos bajo
juramento que el trabajo aquí desarrollado es de nuestra autoría, que éste no ha sido previamente
presentado en ninguna tesis de grado y que el diseño, investigación construcción y pruebas, así
como las conclusiones y recomendaciones son de nuestra exclusiva responsabilidad. Cuenca, 3
de Enero del 2012.
Fernando Cárdenas Vera Omar Llerena Pizarro
CERTIFICACIÓN
Yo, Ing. Eduardo Calle Ortiz certifico que el presente documento fue desarrollado por los Sres.
Martín Fernando Cárdenas Vera y Omar Rosendo Llerena Pizarro bajo mi supervisión.
Ing. Eduardo Calle O.
Índice
Agradecimientos v
Declaratoria de Responsabilidad vii
CERTIFICACIÓN viii
1. Estudio de la Visión por Computador 1
1.1. Antecedentes........................... 1
1.2. Elementos de un Sistema de Visión Artificial. . . . . . . . . . 2
1.2.1. Fuente de luz....................... 2
1.2.1.1. Iluminación Frontal.............. 3
1.2.1.2. Retroiluminación................ 4
1.2.2. Sensor de Imagen..................... 5
1.2.3. Sistema de adquisición.................. 5
1.2.4. Procesamiento digital.................. 5
1.3. Fundamentos de la Visión Artificial............... 6
1.3.1. Adquisición de las imágenes. . . . . . . . . . . . . . . 6
1.3.2. Preprocesamiento..................... 6
1.3.2.1. Conversión de una imagen en color (RGB) a escala de grises................. 7
1.3.2.2. Binarización de una imagen. . . . . . . . . . 7
1.3.2.3. Mejoramiento del histograma. . . . . . . . . 8
1.3.2.4. Desplazamiento del Histograma. . . . . . . . 9
1.3.2.5. Expansión del Histograma. . . . . . . . . . . 10
1.3.2.6. Uso de filtros para el mejoramiento de la imagen....................... 10
1.3.2.6.1. Filtros de suavizado.................... 11
1.3.2.6.1.1. Filtro de la media................ 12
1.3.2.6.1.2. Filtro mediana.................... 32
1.3.5. Reconocimiento...................... 32
1.3.5.1. Correlación cruzada. . . . . . . . . . . . . . 32
1.3.5.2. Localización piramidal. . . . . . . . . . . . 33
1.3.5.3. Localización Invariante a la Escala. . . . . 33
1.3.6. Interpretación....................... 33
1.4. Aplicaciones............................ 33
1.4.1. Fotometría........................ 34
1.4.2. Rectificación métrica................... 34
1.4.3. Computación gráfica................... 34
1.4.4. Estimación de movimiento................ 34
1.4.5. Sectores industriales................... 34
2. Diseño del Sistema para el Centrado de Componentes 35
2.1. Diseño funcional y definición de parámetros generales del Sistema para el Centrado de
Componentes. . . . . . . . . . . . 35
2.1.1. DescripciónydiseñofuncionaldelSistemaparaelCen-tradodeComponentes.................. 35
2.1.1.1. Elementos para la manipulación y señalización 35
2.1.1.2. Características funcionales. . . . . . . . . . 36
2.1.1.3. Características mecánicas. . . . . . . . . . . 37
2.1.1.4. Sensores Incluidos............... 37
2.1.1.5. Elementos para el procesamiento. . . . . . . 37
2.2. Dimensionamiento de actuadores, sensores y elementos para el control............................. 37
2.2.1. Motores.......................... 38
2.2.2. Fuente de Tensión.................... 38
2.2.3. Convertidor DC-DC................... 39
2.2.4. ConvertidorUSBaRS485................ 40
2.2.5. Arduino.......................... 40
2.2.6. Husillo de bolas...................... 41
2.2.7. Tuerca para el husillo de bolas. . . . . . . . . . . . . . 41
2.2.8. Brida........................... 42
2.2.9. Acople de ejes....................... 42
2.2.10. Rodamiento lineal.................... 43
2.2.11. Rodamientos....................... 44
2.2.12. Eje............................. 44
2.2.13. Fin carrera........................ 44
2.3. Diseño del sistema mecánico................... 44
2.3.1. Diseño de la base..................... 45
2.3.2. Diseño de los husillos de bolas. . . . . . . . . . . . . . 45
2.3.3. Diseño de los ejes..................... 45
2.3.4. Diseño de los acoples del motor. . . . . . . . . . . . . 45
2.3.5. Diseño del Brazo Vertical................ 46
2.3.5.1. Acople izquierdo................ 46
2.3.5.2. Acople derecho................. 46
2.3.5.3. Carro...................... 47
2.3.5.4. Acople al pick&place............. 47
2.3.5.5. Diseño final del brazo vertical. . . . . . . . . 48
2.3.6. Diseño del brazo horizontal. . . . . . . . . . . . . . . 48
2.3.6.1. Acople izquierdo................ 48
2.3.6.2. Acople derecho................. 49
2.3.6.3. Carro...................... 49
2.3.6.4. Acople al pick&place............. 50
2.3.6.5. Diseño final del brazo horizontal. . . . . . . 50
2.3.7. Acople de brazos..................... 51
2.3.8. Diseño final........................ 51
2.3.9. Diseño de todo el sistema mecánico montado sobre el pick&place........................ 52
2.4. Diseño Electrónico........................ 52
2.4.1. Diseño del PCB...................... 52
2.4.1.1. Diseño electrónico del acople al arduino. . . 53
2.4.2. Diseño electrónico para la comunicación serial. . . . . 53
2.4.2.1. Diseño electrónico para el fin carrera. . . . . 53
2.4.2.2. PCB....................... 54
2.5. Diseño de la caja de acrílico................... 54
2.5.1. Diseño de la base..................... 55
2.5.2. Diseño de la parte frontal y trasera........... 55
2.5.3. Diseño de las caras laterales y superiores. . . . . . . . 56
2.6. Cinemática de Robot....................... 56
2.6.1. Cinemática Directa.................... 56
3. Construcción del Sistema para el Centrado de Componentes 59
3.1. Construcción de la estructura mecánica. . . . . . . . . . . . 59
3.1.1. Construcción de la base................. 59
3.1.2. Corte de los husillos de bolas. . . . . . . . . . . . . . 59
3.1.3. Corte de los ejes..................... 60
3.1.4. Obtención del aluminio.................. 60
3.1.4.1. Moldes de madera............... 61
3.1.4.2. Aluminio fundido............... 61
3.1.5. Construcción de las piezas de aluminio. . . . . . . . . 62
3.1.5.1. Construcción de los acople del motor. . . . . 62
3.1.5.2. Construcción del brazo vertical. . . . . . . . 62
3.1.5.3. Construcción del brazo horizontal. . . . . . 64
3.2. Ensamblaje de las partes del robot. . . . . . . . . . . . . . . 65
3.2.1. Ensamble del brazo vertical. . . . . . . . . . . . . . . 65
3.2.2. Ensamble del brazo horizontal. . . . . . . . . . . . . . 67
3.2.3. Ensamble de los 2 brazos................ 68
3.2.4. Ensamble final...................... 68
3.3. Desarrollo del sistema de control. . . . . . . . . . . . . . . . 69
3.3.1. Construcción del software en LABVIEW. . . . . . . . 69
3.3.1.1. Lectura de Archivos.txt. . . . . . . . . . . . 69
3.3.1.2. Separación y conversión en pasos. . . . . . . 70
3.3.1.3. Interpretación del número de elementos. . . 71
3.3.1.4. Convertir a variable chart la variable numérica y concatenarla............... 72
3.3.1.5. Transmisión y recepción serial. . . . . . . . 72
3.3.1.6. Desarrollo del algoritmo de Visión Artificial para el Sistema de Centrado de
Componentes 73
3.3.2. Construcción del software para el arduino. . . . . . . 75
3.3.2.1. Transmisión y recepción serial. . . . . . . . 75
3.3.2.2. Conversión de chart a numérico. . . . . . . . 75
3.3.2.3. Generación de los pasos. . . . . . . . . . . . 76
3.3.2.3.1. Generando el tren de pulsos.................... 76
3.3.2.3.2. Variación de la frecuencia.................... 76
3.3.2.3.3. Generación de la dirección de los motores.................... 77
3.3.2.3.4. Testeo de los fin de carrera.................... 77
3.4. Construcción del PCB...................... 78
3.4.1. PCB construido...................... 78
3.4.1.1. Elementos necesarios para el ensamble de la placa...................... 78
3.4.1.2. Colocación de los elementos. . . . . . . . . . 79
3.5. Ensamble del hardware de control a la parte mecánica. . . . 80
3.5.1. Colocación del cable track. . . . . . . . . . . . . . . . . 80
3.5.2. Colocación del arduino.................. 81
3.5.3. Cables para el envío y recepción de datos. . . . . . . 84
3.5.4. Sistema completo..................... 84
3.5.5. Interface Humano-Maquina. . . . . . . . . . . . . . . 85
4. Pruebas y Resultados 86
4.1. Pruebas de funcionamiento de sensores y actuadores. . . . . 86
4.1.1. Prueba de funcionamiento de los motores. . . . . . . 86
4.1.2. Pruebas de conjunto mecánico. . . . . . . . . . . . . . 88
4.1.2.1. Configuración full del motor. . . . . . . . . 88
4.1.2.2. Configuración máximo microstep del motor. 89
4.2. Pruebas de Control........................ 90
4.2.1. Software en labview................... 90
4.2.2. Software en el arduino.................. 94
5. Conclusiones y Recomendaciones 96
A. Características SILVERPAK 34D 101
A.1.Características Eléctricas. . . . . . . . . . . . . . . . . . . . . 101
A.2.Pines de conexión........................102
A.3.Dimensiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
A.4.Curva de torque. . . . . . . . . . . . . . . . . . . . . . . . . . 104
A.5. Configuración del motor.....................104
B. Planos 105
C. Presupuesto 127
C.1. Descripción............................127
D. Programa del Arduino 129
E. Descripción de los conectores 137
E.1. ConectoresdelaPCBparalacomunicaciónysalidadeseñales137
E.1.1. Borneras “Conexión de los FIN CARRERA” . . . . . . 137
E.1.2. Borneras “Alimentación”.................138
E.1.3.Borneras”Enable”....................138
E.1.4. Borneras “Datos Dirección”. . . . . . . . . . . . . . 138
E.1.5. Conexión del cable USB a serial. . . . . . . . . . . . . 138
F. Planos de la Caja acrílica con Impresiones 139
Índice de figuras
1.1. Elementos de un sistema de Visión Artificial. . . . . . . . . . 2
1.2. Tipos de iluminación frontal. .................. 3
1.3. Retroiluminación......................... 4
1.4. Dispositivo de acoplamiento de carga. . . . . . . . . . . . . . 5
1.5. Diagrama de bloques de las etapas de un sistema de Visión Artificial. ............................. 6
1.6. Conversión de una imagen a color a escala de grises. . . . . . 7
1.7. Binarización de una imagen................... 8
1.8. Histograma de una imagen.................... 8
1.9. Tipos de histogramas....................... 8
1.10. Ecualización del histograma................... 9
1.11. Imagen original.......................... 9
1.12. Imagen e histograma con un desplazamiento de 75 unidades ala derecha. ............................
10
1.13. Efecto de la expansión del histograma. . . . . . . . . . . . . 11
1.14. Proceso de filtrado. ....................... 11
1.15. Máscara de 3x3.......................... 12
1.16. Conjunto de coordenadas de una máscarade3x3paraelpunto p(x,y). .............................. 12
1.17. Aplicación del filtro de la media................. 13
1.18. Aplicación del filtro mediana. . . . . . . . . . . . . . . . . . 13
1.19. Aplicación del filtro máximo................... 13
1.20. Aplicación del filtro mínimo................... 14
1.21. Obtención de bordes usando la máscara de Sobel. . . . . . . 16
1.22. Obtención de bordes usando la máscara de Prewitt. . . . . . 16
1.23. Obtención de bordes usando la máscara de Roberts...... 17
1.24. Obtención de bordes usando la máscara Canny. . . . . . . . 17
1.25. Coordenadas de un punto p(x, y) y sus vecinos........ 18
1.26. Eliminación de pequeños huecos. . . . . . . . . . . . . . . . . 18
1.27. Eliminación de pequeñas protuberancias............. 19
1.28. Aplicación de operaciones lógicas binarias. . . . . . . . . . . 19
1.29. Suma de imágenes........................ 20
1.30. Resta de imágenes........................ 21
1.31. Elemento estructural N4...................... 22
1.32. Elemento estructural N8...................... 22
1.33. Dilatación............................. 23
1.34. Erosión.............................. 23
1.35. Apertura.............................. 24
1.36. Cerradura............................. 24
1.37. Segmentación mediante umbral global. . . . . . . . . . . . . 25
1.38. Segmentación mediante Density Slicing............. 25
1.39. Segmentación mediante umbral adaptativo........... 26
1.40. Segmentación mediante umbral óptimo............. 26
1.41. Segmentación mediante crecimiento de regiones. . . . . . . . 27
1.42. Direcciones posibles en los códigos de cadena para vecindad a 4ya8............................... 28
1.43. Codificación de cadenas con vecindad. . . . . . . . . . . . . 29
1.44. Representación mediante el polígono de menor perímetro... 29
1.45. Aproximación poligonal por técnicas de fusión......... 30
1.46. Aproximación mediante lados del polígono. . . . . . . . . . . 30
1.47. Aproximación mediante lados del polígono. . . . . . . . . . . 31
1.48. Esqueleto de la región...................... 31
2.1. Diseño funcional del sistema de centrado de componentes. . 36
2.2. SILVERPAK 34D INTEGRATED MOTOR + DRIVER . . . 38
2.3. MastechPowerSupplyHY7520EX. . . . . . . . . . . . . . . 39
2.4. DC/DC Power Supply Single Output 5 Volt 20A 100W 7-Pins 39
2.5. USB485CONVERTERCARD................. 40
2.6. ArduinoBoardMega2560..................... 41
2.7. THOMSON Ball Screw...................... 41
2.8. THOMSON Ball Nut....................... 42
2.9. THOMSON Ball Screw Flange................. 42
2.10. Coupling, One-piece, BoreDia12mm. 43
2.11. KH1026PP10mmLinearMotionSealedBushing10x17x26. . 43
2.12. Rodamiento............................ 44
2.13. THOMSON shaft......................... 44
2.14. Base................................ 45
2.15. Husillo de Bolas.......................... 45
2.16. Eje................................. 46
2.17. Acople del motor......................... 46
2.18. Acople Izquierdo del brazo vertical. . . . . . . . . . . . . . . 47
2.19. Acople Derecho del brazo vertical. . . . . . . . . . . . . . . . 47
2.20. Carro del brazo Vertical..................... 47
2.21. Acople al pick&place brazo vertical.............. 48
2.22. Brazo vertical........................... 48
2.23. Acople Izquierdo Brazo horizontal. . . . . . . . . . . . . . . . 49
2.24. Acople Derecho Brazo horizontal. . . . . . . . . . . . . . . . 49
2.25. Carro............................... 49
2.26. Acople al pick&place....................... 50
2.27. Brazo horizontal......................... 50
2.28. Plancha de acople......................... 51
2.29. Diseño Final............................ 51
2.30. Diseño Final montado en el pick&place............. 52
2.31. Diseño Electrónico del Acople al arduino............ 53
2.32. Diseño Electrónico para la comunicación serial. . . . . . . . . 53
2.33. Diseño Electrónico para los fin carrera. . . . . . . . . . 54
2.34. PCB................................ 54
2.35. Base de la caja acrílica...................... 55
2.36. Caras de la Caja......................... 55
2.37. Caras de la Caja......................... 56
2.38. Esquema del robot cartesiano y notación DH. . . . . . . . . 57
3.1. Base del Sistema......................... 59
3.2. Husillos.............................. 60
3.3. Ejes................................ 60
3.4. Moldes de Madera........................ 61
3.5. Aluminio fundido......................... 61
3.6. Acople del motor......................... 62
3.7. Acople Izquierdo......................... 63
3.8. Acople Derecho.......................... 63
3.9. Carro............................... 63
3.10. Acople al pick&place...................... 64
3.11. Acople Izquierdo......................... 64
3.12. Acople Derecho.......................... 65
3.13. Carro............................... 65
3.14. Colocación de la tuerca de bolas. . . . . . . . . . . . . . . . 66
3.15. Colocación del husillo y ejes................... 66
3.16. Colocación del carro....................... 66
3.17. Colocación del motor....................... 67
3.18. Brazo vertical completamente montado............. 67
3.19. Brazo Horizontal completamente ensamblado. . . . . . . . . 67
3.20. Plancha de acople......................... 68
3.21. Robot Cartesiano......................... 68
3.22. Sistema montado en el pick&place . . . . . . . . . . . . . . . 68
3.23. Archivo.txt. ........................... 70
3.24. LecturadelArchivo.txt...................... 70
3.25. Generación de la Matriz..................... 70
3.26. Separación de los valores..................... 71
3.27. Conversión a pasos........................ 71
3.28. Interpretación del número de elementos. . . . . . . . . . . . 72
3.29. Conversión de numérico a chart. . . . . . . . . . . . . . . . . 72
3.30. Transmisión recepción serial. . . . . . . . . . . . . . . . . . . 73
3.31. Adquisición de imágenes..................... 73
3.32. Conversión a escala de grises. . . . . . . . . . . . . . . . . . 74
3.33. Filtrado de la imagen....................... 74
3.34. Binarización de la Imagen.................... 74
3.35. Funciones............................. 75
3.36. Conversión de chart a numérico. . . . . . . . . . . . . . . . . 76
3.37. Generación del tren de pulsos. . . . . . . . . . . . . . . . . . 76
3.38. Variación de la frecuencia.................... 77
3.39. Dirección de los motores..................... 77
3.40. Testeo de los fin carrera. . . . . . . . . . . . . . . . . . 78
3.41. PCB construido.......................... 78
3.42. Colocación de las resistencias y capacitores. . . . . . . . . . 79
3.43. Colocación del db9 socket y borneras. . . . . . . . . . . . . . 79
3.44. PCB ensamblado......................... 80
3.45. Sujeción a la base de un extremo del cable track. . . . . . . . 80
3.46. Cable track colocado....................... 81
3.47. Tarjetas de control y Configuración. . . . . . . . . . . . . . . 81
3.48. PCB de la parte frontal..................... 82
3.49. PCB completamente montados. . . . . . . . . . . . . . . . . 82
3.50. Parte frontal de la caja...................... 83
3.51. Parte posterior de la caja.................... 83
3.52. Cables necesarios para él envió de datos. . . . . . . . . . . . 84
3.53. Sistema al 100%......................... 84
3.54. Interface Humano-Maquina................... 85
4.1. Pruebas de Funcionamientos Motor eje X. . . . . . . . . . . 87
4.2. Brazo vertical de 378mm..................... 88
4.3. Brazo horizontal de 600mm.................... 89
4.4. Archivo con distancias en milímetros. . . . . . . . . . . . . . 90
4.5. Diagrama de flujo de la visión Artificial............. 91
4.6. Diagrama de flujo de la apertura y conversión de datos. . . . 92
4.7. .Apertura y lectura del archivo de texto. . . . . . . . . . . . 93
4.8. Conversión del elemento a número de pasos. . . . . . . . . . 93
4.9. Imágenes adquiridas....................... 93
4.10. Coordenadas del centro del componente. . . . . . . . . . . . 94
4.11. Diagrama de flujo del software en arduino. . . . . . . . . . . 94
4.12. Recepción de datos en arduino. . . . . . . . . . . . . . . . . 95
4.13. DAQ Assistant para controlar los pulsos. . . . . . . . . . . . 95
4.14. Conteo de número de pasos................... 95
A.1.ConectoresSilverpak34D....................102
A.2.DimensionesSilverpak34D...................103
A.3. Curva de Torque Silverpak 34D (DO-8718S). . . . . . . . . . 104
A.4.LINDRIVERGUIINTERFACE. . . . . . . . . . . . . . . . 104
E.1.Disposicióndeconectores....................137
Índice de Tablas
2.1. Parámetros DH para el robot cartesiano. . . . . . . . . . . . . 57
4.1. Pruebas de Funcionamiento Motor eje X. . . . . . . . . . . . 86
4.2. Pruebas de Funcionamiento Motor eje Y. . . . . . . . . . . . 87
A.1.Configuraciones nominales. 101
A.2.P3CONNECTORPINOUTS. . . . . . . . . . . . . . . . . . 102
A.3.P2CONNECTORPINOUTS. . . . . . . . . . . . . . . . . . 103
C.1. Presupuesto. . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Capítulo 1. Estudio de la Visión por Computador
1
Capítulo 1
Estudio de la Visión por
Computador
1.1. Introducción
En este capítulo de nominado “Estudio de la Visión por Computador”, se
presenta una compilación de información de varios autores sobre diferentes temas
relacionados con las Visión por Computador, a fin de obtener la información
necesaria para el diseño del sistema de Visión Artificial que se va a utilizar. Se inicia
con una definición de la visión artificial, a continuación se realiza una breve
descripción del avance que han logrado estos sistemas en el transcurso del tiempo.
Posteriormente se expone los elementos que conforman un sistema de visión
artificial, fuente de luz, sensor de imagen, sistema de adquisición y procesamiento
digital. Luego se detalla cada una de las etapas que forman un sistema de visión
artificial y también los algoritmos usados en dichas etapas, adquisición de las
imágenes, preprocesamiento, representación y descripción, reconocimiento e
interpretación. Finalmente se mencionan algunas de las aplicaciones de los sistemas
de visión artificial tanto a nivel empresarial como a nivel industrial.
1.2. Antecedentes
La visión es uno de los mecanismos de percepción más importantes que poseen la
mayoría de los organismos biológicos [1], la utilizamos para desenvolvernos en el
área que nos rodea y detectar objetos que son de nuestro interés por medio de
Capítulo 1. Estudio de la Visión por Computador
2
características como: su forma, color, dimensiones, etc. Según Aristóteles “Visión es
saber que hay y dónde mediante la vista” [2].
La visión humana es el sentido más desarrollado y del que se tiene menos
conocimiento debido a su gran complejidad [2]. Es una actividad inconsciente y
difícil de saber cómo se produce. Hasta la actualidad no se posee una teoría que
explique cómo los seres humanos perciben el exterior por medio de la vista [2].
La visión artificial es la capacidad de la computadora para identificar la estructura
y las propiedades del mundo tridimensional por medio de varias imágenes
bidimensionales.
La visión artificial es un problema abierto para el cual no existe un algoritmo
determinado que pueda ser aplicado a todo tipo de ambiente.
La primera fotografía fue llevada a cabo por el químico francés Niepce en el año
de 1826, colocando una superficie fotosensible dentro de una cámara oscura para
fijar la imagen [3]. Años después en 1838 Daguerre (1787-1851), químico francés,
utilizando una placa fotográfica que era revelada con vapor de mercurio y fijada con
trisulfato de sodio obtuvo el primer proceso fotográfico practico [4].
La revolución de la Electrónica, con las cámaras de video CCD (Dispositivo de
Carga Acoplada), los microprocesadores y la computación hicieron posible aplicar la
visión artificial [3].
Las técnicas usadas en visión artificial se han desarrollado a gran velocidad en las
últimas dos décadas. Los primeros sistemas de visión artificial se basaron en
imágenes binarias que se procesaban en bloques, ventanas o píxeles. Gracias al
desarrollo de nuevos algoritmos de visión artificial se logró reconocer el contorno del
objeto y su posición dentro de la imagen, a pesar de este avance estos algoritmos no
podían ser implementados dentro de la industria ya que ésta demandaba sistemas
capaces de operar por tiempo indefinido, en condiciones variables del luz y textura
del objeto, sin la necesidad de ser modificados y a una velocidad alta de
funcionamiento [5].
Capítulo 1. Estudio de la Visión por Computador
3
Posteriormente se introdujeron los sistemas de intensidad de gris. En esta
tecnología cada píxel de la imagen es representado con un número proporcional a la
intensidad de gris de dicho elemento. Gracias a esta técnica se puede corregir las
variaciones locales de iluminación, pudiendo operar en diferentes tipos de
iluminación, ya que pueden encontrar el borde de los objetos utilizando los cambios
en los valores de intensidad de los píxeles [5].
Los sistemas de visión actuales operan sobre estructuras en lugar de píxeles.
Dichos sistemas necesitan procesadores de alta velocidad para poder procesar la gran
cantidad de datos recibidos a la entrada del sistema y la calidad digital de las
imágenes [5].
1.3. Elementos de un sistema de visión artificial
En la Figura 1.1 podemos observar un diagrama de bloques de los principales
elementos de un sistema de visión artificial.
CámaraFuente de Luz
Objeto
Tarjeta deAdquisición
Algoritmo deprocesamiento
InterfazActuadores
externos
Figura 1.1 Elementos de un sistema de visión artificial. Fuente: elaboración propia.
Capítulo 1. Estudio de la Visión por Computador
4
1.3.1. Fuente de luz
Uno de los aspectos de mayor importancia en un sistema de visión artificial es
conseguir una correcta iluminación, se debe brindar una iluminación uniforme e
independiente del entorno, con el fin de extraer los rasgos de interés.
Fundamentalmente existen dos tipos de iluminación:
- Iluminación frontal.
- Iluminación trasera o retroiluminación.
1.3.1.1. Iluminación frontal
La luz incide directamente sobre el objeto, en forma vertical, horizontal,
oblicua o difusa, como se observa en la figura 1.2.
Figura 1.2 Tipos de iluminación frontal. a) iluminación vertical, b) iluminación horizontal, c) iluminación oblicua, d)
iluminación difusa. Fuente: Elaboración propia.
Capítulo 1. Estudio de la Visión por Computador
5
Este tipo de iluminación permite distinguir claramente los detalles del objeto,
así como su forma, color, detalles internos, etc.; que permiten una mejor
segmentación, pero también produce fenómenos contraproducentes como: creación
de sombras y reflejos.
El inconveniente de la iluminación oblicua es que crea sombras, lo que
interfiere en la detección correcta de la forma de los objetos, en mayor proporción
cuando estos son oscuros, debido a esto, siempre se trata de evitar las sombras. Al
iluminar objetos brillantes se producen brillos que también son adversos
perjudicando al momento de realizar la detección de los contornos y detalle de los
objetos [6].
La forma más idónea para evitar estos dos efectos, consiste en utilizar luz
difusa ya sea con fuentes especiales que generan luz difusa o también usando
lámparas circulares que iluminen de forma homogénea o mediante el empleo de luz
indirecta.
1.3.1.2. Retroiluminación
En este caso se ilumina una pantalla. Este tipo de iluminación solo sirve para
la detección de contornos.
La retroiluminación se puede realizar de dos formas: colocando el objeto
entre la pantalla y la fuente de luz, de forma que lo que la cámara captura es la
sombra proyectada sombre la pantalla; o situando el objeto entre la cámara y la
pantalla de forma que lo que se ilumina es el fondo de la escena, como muestra la
figura 1.3 [6].
Capítulo 1. Estudio de la Visión por Computador
6
Figura 1.3 Retroiluminación: a) proyección sobre la pantalla, b) iluminación del fondo de la escena. Fuente: Elaboración
propia.
En este caso la iluminación debe estar perpendicular a la pantalla, con el fin
de no deformar la sombra del objeto. La iluminación del fondo de la pantalla, como
se ilustra en la figura 1.3.b, se realiza con el fin de poder diferenciarlo del objeto.
Para lo cual se suele utilizar una pantalla blanca que dispersa la luz trasera
produciendo un fuerte fondo blanco iluminado. También, como consecuencia de una
iluminación más fuerte, se elimina las sombras que pueden producir la iluminación
ambiental consiguiendo un fuerte contraste entre objeto y el fondo [6].
1.3.2. Sensor de Imagen
Es un componente sensible a la luz, que tiene la función de obtener las
características del objeto en estudio. La señal eléctrica que éste sensor produce varía
de acuerdo a la intensidad de luz que reciba [7].
El mejor ejemplo de un sensor de imagen es una cámara, en la actualidad el
mercado ofrece una gran variedad de cámaras, las más comunes son las basadas en
Capítulo 1. Estudio de la Visión por Computador
7
dispositivos de acoplamiento de cargar (CCD), como se ilustra en la figura 1.4, que
poseen muchas características como: un bajo costo, bajo consumo de energía, buena
resolución, durabilidad y facilidad de manejo [7].
Figura 1.4 Dispositivo de acoplamiento de carga. Fuente: http://fondosdibujosanimados.com.es/wallpaper/Ccd/.
En este tipo de dispositivos, la señal eléctrica transmitida por los fotodiodos
está en función de varios parámetros como son: la intensidad de luz que perciben, su
espectro y el tiempo de integración [1].
1.3.3. Sistema de adquisición
Toma la información capturada por la cámara, la cual es convertida a una
señal digital que pueda ser procesada en un computador. Para la elección de la tarjeta
de adquisición de debe tomar en cuenta los siguientes parámetros: velocidad de
transmisión, formato de los datos, profundidad del pixel, capacidad de captura por
disparo, velocidad de transferencia desde la memoria de la tarjeta a la memoria del
computador, cantidad de cámaras a emplear [7].
1.3.4. Procesamiento digital
Posteriormente a la adquisición de la imagen, se aplica el algoritmo de
procesamiento para extraer la información necesaria de la misma. El algoritmo a
emplear depende del tipo de análisis a realizar [7].
Capítulo 1. Estudio de la Visión por Computador
8
1.4. Fundamentos de la visión artificial.
En la Figura 1.5 se observan los pasos fundamentales asociados a un proceso de
visión artificial [8].
ESCENA
ADQUISICIÓN DEIMÁGENES
TRANSFORMACIONES YFILTRADO DE IMÁGENES
AISLAMIENTO DE LOSOBJETOS DE LA IMAGEN
CÁLCULO DECARACTERÍSTICAS
RECONOCIMIENTO
INTERPRETACIÓN DELA ESCENA
Etapa sensorial
Etapa de preprocesado
Etapa de segmentación
Etapa de parametrización
Etapa de clasificación
Actuación segun resultados
Figura 1.5. Diagrama de bloques de las etapas de un sistema de visión artificial. Fuente: Elaboración propia.
1.4.1. Adquisición de las imágenes
Este proceso es uno de los más importantes, su finalidad es adquirir la imagen
que determinará el éxito o fracaso del sistema, por lo que es necesario obtener una
imagen de buena calidad para usar el menor número de algoritmos para mejorarla
[8].
1.4.2. Preprocesamiento
Cuando se emplea un sistema con visión artificial la imagen capturada no es
utilizada directamente por el sistema de visión, es necesario llevar un proceso de
restauración de la imagen, con el fin de corregir las distorsiones que posee la imagen
Capítulo 1. Estudio de la Visión por Computador
9
capturada, además de realzar las características que se desee extraer de las mismas,
todo esto con el fin de facilitar los procesos posteriores [8]. Esta operación tiene
como finalidad:
- Eliminar el ruido que producen los dispositivos electrónicos.
- Realzar las características de una imagen como: bordes o límites.
- Contrastar la imagen para que sea más útil la visualización gráfica y el
análisis de la misma.
- Mejorar la calidad de algunas partes de la imagen.
- Transformar la imagen a otro espacio de representación.
1.4.2.1. Conversión de una imagen RGB a escala de grises
El sentido de la vista percibe diferentes intensidades de luz en función del
color que observe como consecuencia de la respuesta del ojo al espectro visible.
Debido a esto para la conversión de una imagen en color a escala de grises, debe
realizarse por medio de una media ponderada de los componentes de color de cada
pixel. Los pesos de ponderación de cada color indican la sensibilidad del ojo a cada
color [9].
BGRI *11.0*5.0*3.0
(1.1)
El valor de intensidad puede ir desde 0 hasta 255; el cero representa el negro
absoluto y 255 el blanco absoluto.
En la figura 1.6 se puede observar el resultado de la conversión de una
imagen en color a escala de grises.
Capítulo 1. Estudio de la Visión por Computador
10
Figura 1.6 Imagen a colores e imagen en escala de grises. Fuente: Elaboración propia.
1.4.2.2. Binarización de una imagen
Permite la conversión de una imagen es escala de grises a una imagen en
blanco y negro (0 y 1) dependiendo del umbral establecido, como muestra la figura
1.7 [10].
Figura 1.7 Imagen a escala de grises e imagen en blanco y negro. Fuente: Elaboración propia.
1.4.2.3. Mejoramiento del histograma
El histograma de una imagen muestra el número de pixeles existentes de cada
valor de la escala de grises, como se muestra en la figura 1.8 [1].
Capítulo 1. Estudio de la Visión por Computador
11
Figura 1.8 Imagen original y su histograma. Fuente: Elaboración propia.
Una imagen muy oscura tendrá un histograma con una gráfica hacia la
izquierda, véase la figura 1.9 (a), mientras que el de una imagen con mucho brillo
estará hacia la derecha, como nos muestra la figura 1.9 (b). El histograma ideal sería
una recta horizontal, ya que nos indicaría que todos los valores posibles de grises
están distribuidos de manera uniforme en una imagen, como se observa en la figura
1.10 [11].
(a) (b)
Figura 1.9 Diferentes tipos de histogramas: a) imagen muy oscura, b) imagen muy clara. Fuente: Elaboración propia.
La ecualización del histograma es una técnica que busca redistribuir los
valores del mismo en nuevas clases que contengan el mismo nuero de pixeles con el
fin de obtener una distribución uniforme de los niveles de grises de la imagen [12].
Figura 1.10 Imagen ecualizada y su histograma. Fuente: Elaboración propia.
0
0.5
1
1.5
2
2.5
x 104
0 50 100 150 200 250
0
100
200
300
400
500
600
700
800
900
0 50 100 150 200 250
0
50
100
150
200
250
300
350
400
450
500
0 50 100 150 200 250
0
0.5
1
1.5
2
2.5
3
3.5
x 104
0 50 100 150 200 250
Capítulo 1. Estudio de la Visión por Computador
12
1.4.2.4. Desplazamiento del Histograma.
El desplazamiento del histograma consiste en sumar o restar un número fijo a
cada uno de los pixeles de la imagen en escala de grises, con el fin de aclarar u
obscurecer la misma [1].
entodesplazamiyxfyxg ),(),( (1.3)
En la figura 1.11 se puede observar la imagen original con su histograma,
Figura 1.11 Imagen original con histograma su histograma. Fuente: Elaboración propia.
En la figura 1.12 se observa el efecto del desplazamiento de la imagen hacia
la derecha, también podemos notar como todo el histograma se desplaza el número
de unidades que se haya seleccionado.
Figura 1.12 Imagen e histograma con un desplazamiento de 75 unidades a la derecha. Fuente: Elaboración propia.
0
1
2
3
4
5
6
x 104
0 50 100 150 200 250
0
5
10
15
x 104
0 50 100 150 200 250
Capítulo 1. Estudio de la Visión por Computador
13
1.4.2.5 Expansión del Histograma
Esta técnica consiste en tomar un punto máximo y un punto mínimo del
histograma de la imagen y hacerlos corresponder a los valores máximo y mínimo de
los valores de la escala de grises, teniendo como resultado una expansión del
histograma a lo largo de los valores seleccionados como límites, como se muestra en
la figura 1.13 [13].
(a)
(b)
Figura 1.13: a) Imagen original y su histograma, b) imagen e histograma correspondiente a la ampliación del histograma.
Fuente: Elaboración propia.
1.4.2.5. Uso de filtros para el mejoramiento de la imagen
Son utilizados para reducir el ruido producido por la iluminación, sombras
del mismo objetos y cualquier efecto que se presente en la imagen digitalizada como
consecuencia del muestreo, cuantización, transmisión o por otras perturbaciones
presentes en el sistema como puede ser partículas de polvo en el sistema óptico [1].
0
1
2
3
4
5
6
7
8
x 104
0 50 100 150 200 250
0
1
2
3
4
5
6
7
8
x 104
0 50 100 150 200 250
Capítulo 1. Estudio de la Visión por Computador
14
Filtrar una imagen, consisten en atenuar o realzar determinadas características
de ésta por medio de una trasformación de la misma [1].
)],([),( yxfTyxg (1.4)
El proceso consiste en ingresar la señal (imagen) a un filtro para obtener
como respuesta la imagen filtrada, como se observa en la figura 1.14.
hf (x,y) g (x,y)
Figura 1.14 Proceso de filtrado. Fuente: Elaboración propia.
La salida es el resultado de la convolución de la señal de entrada con la
función de transferencia del filtro, siempre que se trate de un sistema lineal.
),(),(),( yxfyxhyxg (1.5)
Los filtros de domino espacial trabajan sobre el valor de cada pixel a través
de una máscara que puede ser de forma cuadrada o rectangular. Una máscara es una
pequeña imagen que contiene un coeficiente (w) predeterminado para cada posición,
como se observa en la figura 1.15. Esta máscara es centrada en cada pixel de interés,
de modo que el nuevo valor del pixel está en función de los pixeles que cubre la
máscara y será la sumatoria del producto de los pixeles vecinos con el coeficiente
correspondiente de la máscara [1].
w1,1 w2,1 w3,1
w2,1 w2,2 w3,1
w3,1 w2,3 w3,3
Figura 1.15 Ejemplo de una máscara de 3x3. Fuente: Elaboración propia.
yx
yxwyxfyxg ),(),(),(
(1.6)
Capítulo 1. Estudio de la Visión por Computador
15
1.4.2.6.1 Filtros de suavizado
La finalidad de estos filtros es reducir el ruido que se produce al momento de
la captura, digitalización y transmisión de las imágenes. Es necesaria su aplicación
antes de realizar cualquier proceso de detección de bordes [1].
La característica común de estos filtros es disminuir las diferencias de los
valores de cada pixel respecto a sus vecinos [14].
1.4.2.6.1.1. Filtro de la media
Teniendo un conjunto de coordenadas de una ventana de tamaño n2 en la cual
su punto central es el punto p(x,y), véase la figura 1.16, el nuevo valor para la
imagen filtrada en el punto p(x,y) es el promedio aritmético calculado en esa
vecindad [1].
x-1,y-,1 x,y-,1 x+1,y-,1
x-1,y x,y x+1,y
x-1,y+1 x,y+1 x+1,y+1
Figura 1.16 Conjunto de coordenadas de una máscara de 3x3 para el punto p(x,y) . Fuente: Elaboración propia.
xywyx
yxfn
yxg),(
2),(
1),(
(1.7)
La matriz de coeficientes de un filtro de la media se representa con una matriz
de NxN, en la cual todos los elementos son unos [14].
111
111
111
p
(1.8)
El resultado de aplicar el filtro promedio asimétrico se puede ver en la figura
1.17.
Capítulo 1. Estudio de la Visión por Computador
16
(a) (b)
Figura 1.17 a) imagen original, b) imagen resultado al aplicar un filtro de la medio con una máscara de 5x5. Fuente:
Elaboración propia.
El resultado de aplicar un filtro de la media a una imagen es que los puntos
muy claros se oscurecen.
1.4.2.6.1.2. Filtro mediana
Este filtro se basa en sustituir el valor del pixel por el de la mediana del
conjunto formado por el mismo y sus otros vecinos, logrando con esto homogenizar
los pixeles de la imagen, se lo utiliza cuando existe la presencia de ruido aleatorio [1].
La figura 1 .18 muestra un ejemplo del uso de este filtro.
(a) (b)
Figura 1.18 a) imagen original, b) imagen resultado al aplicar un filtro mediana. Fuente: Elaboración propia.
Capítulo 1. Estudio de la Visión por Computador
17
1.4.2.6.1.3. Filtro máximo
En este caso el nuevo valor del pixel de referencia será el valor más alto de
los encontrados en la máscara, teniendo como efecto ensanchar y adelgazar las zonas
claras y oscuras respectivamente, como se observa en la figura 1.19 [1].
nfffp ,...,,max 21max (1.9)
(a) (b)
Figura 1.19 a) imagen original, b) imagen resultado al aplicar un filtro máximo. Fuente: Elaboración propia.
1.4.2.6.1.4. Filtro mínimo
El nuevo valor del pixel de referencia será el valor más de los encontrados en
la máscara, como se muestra en la figura 1.20
nfffp ,...,,min 21min (1.10)
(a) (b)
Figura 1.20 a) imagen original, b) imagen resultado al aplicar un filtro mínimo. Fuente: Elaboración propia.
Capítulo 1. Estudio de la Visión por Computador
18
1.4.2.6.2. Filtros de obtención de bordes
Una de las técnicas para poder identificar la discontinuidad de la intensidad
en los pixeles de una imagen es la detección de bordes, un borde es conocido como
un cambio significativo en el valor en la escala de grises entre los pixeles vecinos de
la imagen [15].
La intensidad del borde es afectada por la iluminación, si ésta es baja la
intensidad del borde es pequeño lo que lo hace difícil de detectar, otro de los factores
que afectan es la presencia de objetos brillantes ya que gracias a estos los otros
objetos aparecen en la imagen con poca intensidad [15].
La derivada es uno de los métodos más comunes para la detección de
contornos ya que esta permite calcular la variación entre un punto y los vecinos, si
asemejamos la imagen a una función el contorno no es más que la discontinuidad de
la función [1].
Partiendo del operador gradiente:
yx uy
Iu
x
IyxI
,
(1.11)
Se definen los filtrados de convolución Gx y Gy:
yxhyxIx
IGx ,, 1
yxhyxIy
IGy ,, 2
(1.12)
Si aproximamos la derivada a una resta y considerando los pixeles de la
siguiente manera:
z1 z2 z3
z4 z5 z6
z7 z8 z9
Los resultados de las derivadas serían:
Capítulo 1. Estudio de la Visión por Computador
19
65 zzx
I
85 zzy
I
(1.13)
Obteniendo:
010
010
000
000
110
000
21 hh
(1.14)
Al realizarse un cambio de claro a oscuro se marca un valor positivo,
mientras que un cambio de oscuro a claro con un valor negativo, en cambio, si dos
pixeles adyacentes tienen el mismo valor el resultado en ese punto es cero [16].
Si no deseamos considerar la dirección del vector gradiente, podemos utilizar:
yxGyxGyxI yx ,,, 22 (1.15)
Para reducir el trabajo del computador la expresión anterior puede ser
sustituida por la siguiente, produciendo el mismo resultado:
yxGyxGyxI yx ,,
2
1,
(1.16)
1.4.2.6.2.1. Operadores de Sobel
La desventaja de los operadores de gradiente es que pueden aumentar el ruido
en la imagen, en este caso el operador de Sobel tiene la propiedad de suavizar la
misma y con ello evitar la aparición del falsos bordes [1].
Las siguientes expresiones están basadas en los operadores de Sobel:
741963 22 zzzzzzGx
321987 22 zzzzzzGy
(1.17)
Capítulo 1. Estudio de la Visión por Computador
20
Teniendo como resultado las siguientes matrices h1 y h2, que necesitan la
adición de un factor de división y uno de suma con el fin de evitar que el resultado
este fuera del rango [1].
121
000
121
101
202
101
21 hh
(1.18)
(a) (b)
Figura 1.21 a) imagen original, b) imagen resultado de aplicar la máscara de Sobel. Fuente: Elaboración propia.
1.4.2.6.2.2. Operadores Prewitt
Este operador es muy similar al de Sobel, nada más con una variación en el
valor de los coeficientes de la máscara [1].
111
000
111
101
101
101
21 hh
(1.19)
(a) (b)
Figura 1.22 a) imagen original, b) imagen resultado de aplicar la máscara de Prewitt. Fuente: Elaboración propia.
Capítulo 1. Estudio de la Visión por Computador
21
1.4.2.6.2.3. Operadores de Roberts
Es un operador muy simple que trabaja de muy bien sobre imágenes en
blanco y negro [1].
Existen dos fórmulas para calcular el operador de Roberts:
yxfyxfyxfyxf
yxfyxfyxfyxf
,,,,
,,,,
1111
2
11
2
11
(1.20)
La más usada es la segunda por ser más simple y utilizar menos costo de cómputo.
(a) (b)
Figura 1.23 a) imagen original, b) imagen resultado de aplicar la máscara de Roberts. Fuente: Elaboración propia.
1.4.2.5.2.4. Operadores de Canny
Es considerado por muchos como el mejor método existente para la detección de
bordes, este algoritmo fue diseñado con el objetivo de:
- Minimizar la probabilidad de múltiples respuestas ante un borde único.
- Minimizar la probabilidad de dejar bordes sin detectar.
- Minimizar la distancia entre el borde encontrado y el borde verdadero.
El proceso de detección de bordes usando el operador de Canny sigue los
siguientes procedimientos:
- Suavizar la imagen por medio de un filtro gaussiano, con el objetivo de
minimizar el ruido de la imagen.
- Aplicar una derivada de primer orden a toda la imagen para poder determinar
los bordes y la dirección de éstos.
- Eliminar bordes que no tengan la suficiente fuerza [17].
Capítulo 1. Estudio de la Visión por Computador
22
La figura 1.24 muestra un ejemplo del uso de este operador.
(a) (b)
Figura 1.24 a) imagen original, b) imagen resultado de aplicar la máscara de Canny. Fuente: Elaboración propia.
1.4.2.7. Suavizado binario
Este método busca encontrar ecuaciones que centradas en un entorno de
vecindad permitan reparar cada una de las imperfecciones que se producen en el
proceso de binarizar la imagen, estas imperfecciones pueden ser: pequeños huecos,
esquinas perdidas, puntos aislados y contornos irregulares [1].
Para reducir este tipo de ruido se utiliza una expresión booleana específica
sobre una máscara centrada en un punto p, como se muestra en la figura 1.15, y
dependiendo de la configuración espacial y los valores espaciales de sus vecinos se le
asigna al pixel el valor de 0 o un 1 [1].
x-1,y-,1 x,y-,1 x+1,y-,1
x-1,y x,y x+1,y
x-1,y+1 x,y+1 x+1,y+1
Figura 1.25 Coordenadas del punto p(x,y) y sus vecinos.
Con el fin de eliminar los pequeños huecos en zonas oscuras y eliminar
pequeños cortes y muescas en lados rectos, se utiliza la siguiente expresión booleana
[1].
111111111 ,,*,*,,,*,*,, yxyxyxyxyxyxyxyxyxx
(1.21)
Capítulo 1. Estudio de la Visión por Computador
23
Los signos + y * representan las operaciones OR y AND respectivamente. Si
x1 es igual a 1, el punto (x,y) toma el valor de 1 en caso contrario éste será 0, como
podemos observar en la figura 1.26.
Figura 1.26 Eliminación de pequeños huecos. Fuente: Elaboración propia.
Para eliminar los unos aislados y las pequeñas protuberancias a lo largo de
los segmentos de lados rectos, se utiliza:
11111111111111111 ,,,*,,,,,,*,,,*, yxyxyxyxyxyxyxyxyxyxyxyxyxx
(1.22)
La figura 1.27 muestra la eliminación de unos aislados.
Figura 1.27 Eliminación de pequeñas protuberancias. Fuente: Elaboración propia.
1.4.2.8. Operaciones lógicas sobre imágenes binarizadas
Con el fin de detectar rasgos y analizar imágenes la visión por computadora hace
uso de operaciones lógicas entre imágenes binarias, entre las importantes tenemos
[1]:
- AND.
- OR.
- NOT.
Estas operaciones se realizan entre los pixeles de las imágenes, la figura 1.28
muestra el uso de estas operaciones:
Capítulo 1. Estudio de la Visión por Computador
24
(a) (b)
(c) (d) (e)
Figura 1.28 Aplicación de operaciones binarias: a) imagen a, b) imagen b.
c) c= a or b, d) d= a and b, d) d= not (a or b). Fuente: Elaboración propia.
1.4.2.9 Operaciones aritméticas sobre imágenes en escala de grises
En él procesamiento digital de imágenes son frecuentemente usadas las
operaciones aritméticas entre imágenes, entre las más usadas tenemos:
- Suma.
- Resta.
- Multiplicación.
- División.
Cada una de estas operaciones se realiza entre pixeles de imágenes distintas.
1.4.2.9.1. Suma
Esta operación puede usarse en el caso de que se quiera combinar dos
imágenes, como muestra la figura 1.29, o también para reducir el ruido en las
imágenes [1].
21 pp (1.23)
Capítulo 1. Estudio de la Visión por Computador
25
(a) (b) (c)
Figura 1.29 a) imagen a, b) imagen b. c) Suma de la imagen a más imagen b. Fuente: Elaboración propia.
1.4.2.9.2. Resta
Esta operación es usada para detectar el movimiento entre dos imágenes en
instantes de tiempo sucesivo, véase figura 1.30 [1].
)( 21 ppabs (1.24)
(a) (b) (c)
Figura 1.30 a) imagen “a”, b) imagen “b”. c) Resta de la imagen a menos imagen b. Fuente: Elaboración propia.
1.4.2.9.3. Multiplicación
En esta operación se multiplica una imagen en grises por una máscara binaria
con el fin de aislar regiones de interés [1].
21 * pp (1.25)
Capítulo 1. Estudio de la Visión por Computador
26
1.4.2.9.4. División
Es aplicada para ajustar el brillo, corregir sombras causadas por la
iluminación no uniforme durante el proceso de adquisición de las imágenes [1].
2
1
p
p
(1.26)
1.4.2.10. Operaciones morfológicas
Son usadas con el fin de eliminar puntos aislados que no pertenecen a nuestro
objeto analizado. Las principales técnicas de morfología matemática son:
- Dilatación.
- Erosión.
- Apertura.
- Cerradura.
1.4.2.10.1. Dilatación
La dilatación tiene como fin el aumento de una fila de pixeles en el entorno
de los objetos presentes en una imagen binaria produciéndose así el aumento del área
de la misma, se aplica para rellenar zonas incompletas de la imagen o eliminar
detalles no deseados [14], el tamaño y forma de la máscara determinan el número de
pixeles que se aumentaran en la imagen. Las figuras 1.31 y 1.32 muestran ejemplos
de máscaras que pueden usarse.
0 1 0
1 1 1
0 1 0
Figura 1.31 Elemento estructural N4. Fuente: Elaboración propia.
Capítulo 1. Estudio de la Visión por Computador
27
1 1 1
1 1 1
1 1 1
Figura 1.32 Elemento estructural N8. Fuente: Elaboración propia.
La siguiente figura muestra un ejemplo del uso de esta técnica.
(a) (b)
Figura 1.33 Dilatación: a) imagen original, b)imagen dilatada. Fuente: Elaboración propia.
1.4.2.10.2. Erosión
Es una operación complementaria a la dilatación y tiene como fin la
reducción de una fila de pixeles del entorno de un objeto produciendo así la
reducción del área del mismo se basa en reducir el nivel de los pixeles del entorno
de un objeto [14]. La máscara usada determina el número de pixeles a reducirse, en la
siguiente figura podemos observar un ejemplo del uso de esta operación.
La siguiente figura muestra un ejemplo del uso de esta técnica.
Capítulo 1. Estudio de la Visión por Computador
28
(a) (b)
Figura 1.34 Erosión: a) imagen original, b) imagen erosionada. Fuente: Elaboración propia.
1.4.2.10.3. Apertura
La apertura es la realización de una erosión seguida de una dilatación
utilizando la misma máscara en ambas operaciones [14]. Esta operación es utilizada
cuando se desea realzar el contorno de un objeto y eliminar los objetos que tengan un
tamaño inferior al de la máscara [1]. La figura 1.35 muestra un ejemplo del uso de
esta operación.
(a) (b)
Figura 1.35 Apertura: a) imagen original, b) imagen resultante de aplicar la apertura. Fuente: Elaboración propia.
Capítulo 1. Estudio de la Visión por Computador
29
1.4.2.10.4. Cerradura
Consiste en una dilatación seguida de una erosión, usando la misma máscara en
las dos operaciones, es usada con el fin de rellenar pequeños huecos (puntos negros)
y conectar objetos que están próximos entre sí [1], como nos muestra la figura 1.36.
(a) (b)
Figura 1.36 Cerradura: a) imagen original, b) imagen resultante de aplicar la cerradura. Fuente: Elaboración
propia.
1.4.3. Segmentación
La segmentación es el proceso mediante el cual se divide la imagen en sus
componentes u objetos de interés [1].
Los pasos a seguir para lograr una buena segmentación son los siguientes:
- Mejorar la imagen, en donde se elimina la información perjudicial para la
segmentación [18].
- Discriminar objetos, en donde se agrupan los objetos con características
similares [18].
- Pulir los bordes, en donde los bordes entre objetos se reducen al valor de un
pixel, este paso puede realizarse por medio de la erosión [18].
Existen dos clases de segmentaciones:
Capítulo 1. Estudio de la Visión por Computador
30
- Orientada a regiones: donde existen pixeles con características similares de
intensidad o de color dentro del área de la imagen [1].
- Orientada a bordes: dos regiones separadas mediante líneas [1].
Las dos clases de segmentación antes mencionadas implican una
manipulación de la imagen original, donde los valores originales de los pixeles
son modificados mediante ciertas operaciones y trasformaciones [1].
1.4.3.1. Detección de regiones basada en umbrales
Estas técnicas son unas de las más utilizadas en la segmentación de imágenes,
cuyo objetivo es separar la imagen en dos segmentos; en donde el primero es el
objeto y el segundo es el fondo. La manera más sencilla es oponiéndose un umbral T
sobre el histograma de la imagen, en donde, a cualquier punto (x,y) que sea mayor a
T se lo considera como un objeto como objeto caso contrario como fondo [17].
Las técnicas de segmentación basadas en umbralización que más se usan son las que
se detallan a continuación:
- Umbral global.
- Umbral adaptativo.
- Umbral óptimo.
1.4.3.1.1. Umbral Global
Uno de los métodos más sencillos para la segmentación es el uso de un único
umbral T, como puede observase en la figura 1.37, en donde se hace un recorrido
pixel a pixel y se los va etiquetando como fondo a los pixeles que no superen el
umbral y como objeto a los que sí lo hagan. Esta técnica se utiliza en entornos donde
se controle la iluminación, logrando que le histograma de la imagen sea lo más
simple posible [17].
Capítulo 1. Estudio de la Visión por Computador
31
(a) (b) (c)
Figura 1.38 a) imagen es escala de grises, b) segmentación con un umbral =50, c) segmentación con umbral = 100. Fuente:
Elaboración propia.
En este tipo de umbralización tenemos una técnica llamada Density Slicing,
la cual usa dos umbrales en lugar de uno solo, logrando así la separación de pixeles
que se encuentren dentro de una banda de intensidades de gris, con esta técnica se
puede dividir la imagen en varias capas, de esta manera es más sencillo identificar
los elementos de interés [17].
En la siguiente figura podemos observar un ejemplo de aplicación de Density
Slicing, con un umbral inferior igual a 55 y el superior igual a 90.
(a) (b)
Figura 1.39. a) imagen original, b) imagen resultado de aplicar Density Slicing. Fuente: Elaboración propia.
1.4.3.1.2. Umbral Adaptativo
La principal diferencia con la técnica de umbral global radica en que ésta
técnica cambia el umbral dinámicamente a lo largo de toda la imagen, en donde se
calcula un umbral para cada pixel de la imagen lo que permite umbralizar imágenes
en condiciones de iluminación con problemas tales como: sombras o gradientes [17].
Capítulo 1. Estudio de la Visión por Computador
32
Los resultados de este método son mejores por el hecho de que calcula
umbrales basados en subregiones de la imagen, basándose en la hipótesis de que hay
una probabilidad más alta que la iluminación sea más uniforme en pequeñas regiones
que en la imagen completa [17].
(a) (b)
Figura 1.40. a) imagen original, b) imagen resultado de aplicar umbral adaptativo. Fuente: Elaboración propia.
1.4.3.1.3. Umbral Óptimo
En el caso de que la imagen tenga dos niveles de grises que predominan, el
histograma de esta imagen se le puede considerar como una estimación de la función
densidad de probabilidad del nivel de gris, en donde dicha función está compuesta
por dos funciones, una para la región oscura y la segunda para la clara en donde los
pesos de estas densidades va a depender del área de cada uno de las regiones [17]. En
la siguiente imagen podemos observar un ejemplo de segmentación por medio de
umbral óptimo.
(a) (b)
Figura 1.41. a) imagen original, b) segmentación con un umbral optimo =85. Fuente: Elaboración propia.
Capítulo 1. Estudio de la Visión por Computador
33
1.4.3.2. Segmentación basada en regiones
Si representamos como R la región completa de una imagen. La segmentación
puede decirse que es el proceso de división de R en n subregiones R1, R2,…Rn, de tal
forma que:
- la segmentación debe set total, es decir, cada pixel de la imagen debe
pertenecer a una determinada región.
- todos los puntos de una región deben estar agrupados.
- cada región debe presentar un límite totalmente definido.
- cada uno de los pixeles de una región debe tener valores similares para alguna
propiedad.
- cada región se diferencia de las demás por alguna propiedad [11].
1.4.3.2.1. Crecimiento de regiones
Esta técnica tiene como base el principio de vecindad en donde el área de la
región va creciendo en cada iteración siempre y cuando se cumpla con la condición,
caso contrario se elige otro punto de partida [14].
Se elige un punto de inicio al cual se lo denomina pixel semilla, la condición
es que este pixel debe pertenecer al objeto que se desea aislar, a partir de esto se le
agregan los pixeles vecinos que cumplan con la propiedad que la distancia del nivel
de gris entre los 2 es menor o igual a un valor predeterminado [14]. La siguiente
figura muestra un ejemplo del uso de este método para la segmentación de la imagen.
Capítulo 1. Estudio de la Visión por Computador
34
(a) (b)
Figura 1.41. a) imagen original, b) imagen segmentada mediante crecimiento de regiones. Fuente: Elaboración propia.
1.4.3.2.2. División y unión de regiones
Este método se basa en la división y análisis, es decir, como punto de partida
tenemos la división de la región donde se encuentra el objeto, para luego analizar
cada subregión en donde se calcula la dispersión de niveles de gris y el valor medio
[14].
Posteriormente al este cálculo, las regiones con valores próximos a los del
objeto en interés son nuevamente un punto de partida para el nuevo análisis, en
cambio las que no tengan proximidad al objeto se las descarta, con esto se va
dividiendo paso a paso la imagen y a la misma vez se va uniendo las regiones
vecinas que cumplieron con la condición [14].
1.4.4. Representación y descripción.
1.4.4.1. Representación
La representación de regiones tiene como objetivo representar al objeto de la
manera más sencilla, únicamente con los parámetros necesarios para su posterior
procesado [19].
La representación se puede realizar de dos formas: por las características
externas o internas de los objetos, la representación por medio de las características
externas se utiliza cuando se tiene como principal objetivo centrarse en la forma del
Capítulo 1. Estudio de la Visión por Computador
35
objeto y la representación por medio de las características internas cuando se centra
en la reflectividad ya sea el color o la textura [14].
A continuación se detallan algunos de los métodos de representación más
importantes.
1.4.4.1.1. Códigos de cadenas
Son utilizados para la representación de fronteras mediante una secuencia de
segmentos rectilíneos conectados en direcciones específicas [19].
Como podemos observar en la siguiente figura el número de direcciones está
en función del tipo de vecindad.
0
1
2
3
Vecindad 4
0
2
4
6
1
75
3
Vecindad 8
Figura 1.42.Direcciones posibles en los códigos de cadena para vecindad a 4 y a 8. Fuente: Elaboración propia.
Para empezar con la codificación debemos fijar un punto de inicio y realizar
el recorrido en la dirección de las manecillas del reloj hasta poder obtener el
contorno y con esto obtener el código de cadena [19].
En la figura 1.43 podemos observar un ejemplo de codificación de cadenas
con vecindad 8, partiendo del pixel en rojo y el sentido de las manecillas del reloj, se
tendrá el siguiente código para la figura mostrada:
Capítulo 1. Estudio de la Visión por Computador
36
6 6 5 5 4 3 1 1 3 1 0 7
Figura 1.43. Codificación de cadenas con vecindad 8. Fuente: Elaboración propia.
Este método presenta dos desventajas [14]:
- la cadena de código que se obtiene regularmente es sumamente larga.
- cualquier perturbación en el contorno de la imagen originada por una
segmentación imperfecta origina cambios en el código.
Estos dos problemas pueden ser solucionados muestreando nuevamente el
contorno de la imagen mediante un aumento de la cuadricula de la imagen [14].
1.4.4.1.2 Aproximaciones poligonales
Un contorno puede ser aproximado con una exactitud arbitraria por medio de
un polígono, el objetivo es representar la frontera del objeto con un mínimo número
de segmentos de polígono [14].
1.4.4.1.2.1. Polígono de menor perímetro
Consiste en colocar el contorno dentro de un conjunto de celdas enlazadas,
con esto podemos recorrer el contorno por los limites internos o externos del
conjunto de celdas. De esta manera obtenemos un polígono con el menor perímetro
que se ajusta al conjunto de celdas, como podemos observar en la figura 1.44 [8].
Capítulo 1. Estudio de la Visión por Computador
37
(a) (b)
Figura 1.44. a) contorno de un objeto encerrado por células, b) polígono de menor perímetro. Fuente: PERTUSA, José.
Técnicas de análisis de imagen: Aplicadas en Biología.
1.4.4.1.2.2. Técnicas de fusión
Esta técnica se basa en unir puntos del contorno hasta que el error que se
obtiene al ajustar la línea que pase por estos puntos mediante mínimos cuadráticos
llegue a un determinado umbral [19].
En las figura 1.45 se muestran un ejemplo del uso de esta técnica.
Figura 1.45. Aproximación poligonal por técnicas de fusión. Fuente: Elaboración propia.
1.4.4.1.2.3. Lados del contorno
Muchas ocasiones con el fin de reducir la complejidad del contorno de un
objeto y también para simplificar la descripción del mismo se puede descomponer el
contorno en lados, este proceso puede aplicarse cuando el contorno del objeto
presente concavidades. Es aquí donde el uso del cerco convexo de la región que
Capítulo 1. Estudio de la Visión por Computador
38
contiene el contorno es una herramienta poderosa para una correcta descomposición
del contorno.
En las siguientes figuras podemos observar el empleo de esta técnica.
Figura 1.46. Ejemplo de aproximación poligonal por técnicas de fusión. Fuente: Elaboración propia.
Figura 1.47. Ejemplo de aproximación poligonal por técnicas de fusión. Fuente: Elaboración propia.
1.4.4.1.2.4. Esqueleto de una región
Una aproximación para representar una imagen por medio de un grafo, véase
figura 1.48, es la utilización del esqueleto de la misma. Este grafo puede obtenerse
mediante morfología matemática, aunque esta técnica no siempre genera buenos
resultados [19].
Una alternativa es usar la transformación del medio: sea R una región y B su
frontera, para cada punto p en R, encuentra su vecino más próximo en B. Si p tiene
más de un vecino próximo, entonces pertenece al esqueleto [19].
Capítulo 1. Estudio de la Visión por Computador
39
(a) (b)
Figura 1.44. a) Imagen original, b) esqueleto de la imagen. Fuente: Elaboración propia.
1.4.4.2. Descripción
La descripción es el proceso de extracción de las principales características de
los objetos para su posterior reconocimiento, estos deben tener independencia del
tamaño, localización y orientación del objeto [8].
Los descriptores utilizados en este proceso deben tener las siguientes propiedades
[1]:
- Adecuada discriminación: asignación de un valor numérico diferente para
objetos de clases distintas.
- Fiables: en objetos de la misma clase los cambios numéricos no deben ser
notorios.
- Rapidez: número de descriptores mínimo y su cálculo se debe realizar en
tiempos aceptables.
1.4.4.2.1. Descriptores de frontera
Para describir la frontera se utilizan varias técnicas que se enuncian a
continuación [19]:
- Simples: diámetro, curvatura y longitud.
- Fourier: la precisión de la frontera depende del número de coeficientes.
- Momentos estadísticos: se los obtiene para una representación
unidimensional de la imagen.
Capítulo 1. Estudio de la Visión por Computador
40
1.4.4.2.2. Descriptores de región
Entre los más importantes tenemos [19]:
- Simples: perímetro, área, media y mediana de los niveles de gris.
- Topológicos: estudia las propiedades invariantes frente a deformaciones que
no alteren las relaciones vecinas.
- Texturas: estos tienen información de la suavidad, tosquedad y regularidad.
1.4.5. Reconocimiento
Es uno de los puntos importantes y en aquí en donde se asigna una etiqueta a
un determinado objeto basado en la información que aportan los descriptores [15].
Las técnicas que se usan para el reconocimiento de patrones son:
- Correlación Cruzada.
- Localización Piramidal.
- Localización Invariante a la Escala.
1.4.5.1. Correlación Cruzada (Cross Correlation)
La correlación cruzada es una de las técnicas que más se emplean para el
reconocimiento de protones, consistes en una serie de multiplicaciones como se
puede observar en la ecuación 1.27, en donde w(x,y) representa una subimagen de
tamaño KxL dentro de la imagen representada por f(w,y) de tamaño MxN, donde
K≤M y L≤N .Considerando estas condiciones la correlación cruzada de w(x,y) con
f(w,y), se expresa de la siguiente forma:
1
0
1
0),(),(),(
L
x
k
yjyixfyxwjiC
(1.27)
Capítulo 1. Estudio de la Visión por Computador
41
La subimagen w(x,y) realiza un recorrido en toda la región de búsqueda,
mientras que C(i,j) es un indicador de posición, su valor máximo indica la posición
que mejor se ajusta a la imagen patrón [15].
Este método no es una de los mejores ya que no satisface las necesidades de
velocidad, aunque se puede reducir el tiempo de búsqueda si se reduce el tamaño de
la imagen de búsqueda o el área de búsqueda, logrando así más velocidad perno la
requerida en algunas aplicación [15].
1.4.5.2. Localización Piramidal (Piramidal Matching)
Como uno de los problemas es la velocidad, este método logra una mayor
velocidad creando versiones comprimidas de patrón y el área de búsqueda, esta
compresión puede llegar a reducir la imagen esta cuatro veces [15].
Posteriormente la correlación se realiza en las imágenes reducidas, y luego en
la imagen original en donde la correlación cruzada encontró un máximo [15].
1.4.5.3. Localización Invariante a la Escala (Scale Invariant
Matching)
Esta técnica identifica escalas y ángulos en una imagen, y se la creo por la
necesidad de analizar imágenes escaladas en tamaño [15].
En donde se prueba cada tamaño y cada ángulo del patrón para hacer la
correlación cruzada, claro está que al no tener pistas de la forma en que el patrón fue
rotado se busca exhaustivamente en cada ángulo y tamaño, lo que hace que esta
técnica requiera mucho tiempo y no sea muy aplicable [15].
Capítulo 1. Estudio de la Visión por Computador
42
1.4.6. Interpretación
Da un significado a cada una de los objetos reconocidos.
1.5. Aplicaciones
Las aplicaciones de la visión artificial en la industria se basan en la
adquisición y análisis de imágenes totalmente con un sistema totalmente autónomo,
con el objetivo de extraer la información que nos permita controlar un determinado
proceso [20].
La imagen para dicho sistema puede ser capturada por cualquier sensor que
sea capaz de observar artificialmente el entorno de trabajo [20].
A continuación se detallan alguna de las principales aplicaciones de la visión
artificial.
1.5.1. Fotometría
Destinado a la medición de espacios en 3D a partir de fotografías, con lo que
se podría llegar a medir superficies, construcciones y otros objetos, también se puede
obtener la topología de un terreno [4].
1.5.2. Rectificación métrica
Con esta aplicación se pueden hacer correcciones de las perspectivas y de las
distorsiones creadas por el lente de una cámara [4].
Capítulo 1. Estudio de la Visión por Computador
43
1.5.3. Reconstrucción 3D
Con las vistas y la técnica de triangulación se puede generar el modelo de un
objeto 3D [4].
1.5.4. Computación gráfica
Se puede simular las vistas bidimensionales que se obtienen de un objeto en
3D, en una de las aplicaciones en las que se utiliza este principio es en la realidad
virtual [4].
1.5.5. Estimación de movimiento
Al tomar una ráfaga de imágenes de un objeto en movimiento, se puede
determinar la trayectoria del movimiento del objeto por medio de los puntos de
correspondencia en la secuencia de imágenes [4].
1.5.6. Sectores industriales
La visión artificial tiene un gran campo de aplicación, el cual puede agruparse en
cinco áreas principales que son [20]:
- Control de calidad.
- Clasificación por calidades.
- Manipulación de materiales.
- Test y calificación de aparatos.
- Monitorización de procesos.
Capítulo 1. Estudio de la Visión por Computador
44
Los beneficios que ofrece el uso de la visión artificial en la industria son:
- Reducción de costos.
- Mejoramiento en la calidad de los productos.
- Aceleramiento de los procesos.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
45
Capítulo 2
Diseño del Sistema para el Centrado
de Componentes
2.1. Diseño funcional y definición de parámetros generales del
sistema para el centrado de componentes.
Con el diseño funcional se lograra estructurar el sistema cartesiano para el
centrado de componentes, con ello obtendremos los parámetros necesarios para
poder realizar el diseño del mismo.
2.1.1. Descripción y diseño funcional del sistema para el centrado
de componentes.
El sistema de centrado de componentes se moverá mediante tornillos de alta
precisión que serán controladas con motores de pasos. En donde el área en la que se
desplazara es limitada a las dimensiones del sistema pick & place que se encuentra
en los laboratorios de la UPS-Cuenca que es de 670mm x 480mm. Este sistema será
diseñado para trabajar únicamente en el centrado de componentes, donde a lo único
que se acoplara en forma autónoma es al tamaño de la placa perforada lista para el
centrado de componentes.
El sistema entrara en funcionamiento una vez que se le envié un pulso de
INICIO mediante software siempre y cuando la placa perforada y todos sus
elementos estén en la posición de inicio. Este sistema interactuará con su entorno y
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
46
principalmente con la placa mediante la cámara propia del sistema pick & place y se
desplazara dentro del área de trabajo. Se lo podrá parar al sistema mediante un pulso
de STOP.
Este sistema como va a capturar imágenes constantemente, para poder tomar
una decisión es necesario que tenga la capacidad de procesar grandes flujos de
información en tiempos cortos.
En la figura 2.1 se observa el diseño funcional del sistema.
CámaraSistema de
procesamiento
Modulo paracontrol de
movimineto
MotoresSistema deiluminación
Figura 2.1 Diseño funcional del sistema de centrado de componentes
2.1.2. Elementos para la manipulación y señalización.
Es de mucha importancia los elementos que permitan activar y desactivar el
sistema, estos serán mediante software, así como elementos de señalización que
indiquen los estados de encendido o apagado y también el de procesamiento que es
muy importante para poder saber si el sistema está operando o sí se encuentre en una
posición estática. A continuación se indican los elementos que tendrá el sistema:
Pulsante SET UP. Es el primer pulsante que observaremos en nuestra interfaz
gráfica y es para poder posicionar al sistema en las coordenadas de inicio, se
lo utilizara en caso de que el sistema este descentrado, o porque ocurrió
alguna interrupción externa y el sistema se quedó en una coordenada
cualquiera.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
47
Pulsante GO. Sera el segundo pulsante que veremos, este es para poder
arrancar el sistema, se lo utilizara en el caso de que el sistema esté
completamente centrado, es decir en la posición de inicio.
Aviso de centrado. El aviso de centrado es mediante la visión artificial que
únicamente nos dejara tomar y dejar el elemento solo si este nos da un aviso
de OK, caso contrario debemos centrar el elemento hasta que este quede
exactamente en la posición asignada.
Pulsante BACK. Este pulsante es el tercero que veremos en nuestro panel, y
es aquel que luego del mensaje de OK que nos dará el aviso de centrado,
podemos pulsarlo para poder regresar a tomar nuestro siguiente elemento.
Pulsante NEXT. Luego de haber retornado y estar en la posición del siguiente
elemento y con elemento pegado a la aguja del pick & place procedemos a
presionar NEXT para ir a la posición del siguiente elemente, luego de este el
proceso es solo aplastar BACK y NEXT hasta que se terminen de colocar los
elementos.
2.1.3. Características funcionales.
Para que el sistema pueda desplazarse en forma autónoma debe tener ciertas
características que le permitan moverse libremente, este sistema se acoplara a las
placas en tamaño por lo que no podrá haber ningún agente externo físicamente solo
mediante software que le permita cumplir con su tarea.
Como el sistema va a actuar con un computador se ve la necesidad de la
comunicación bidireccional entre los mismos.
A continuación se mencionaran algunas características del sistema:
Capacidad de desplazarse sobre toda el área de trabajo de manera eficiente.
Regulación de la velocidad de los motores.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
48
Memorización de placas para poder luego solo hacerlo de manera secuencial
en caso de que la placa sea la misma.
Capacidad de comunicación con la PC en forma bidireccional.
2.1.4 Características mecánicas.
A continuación de mencionaran las características mecánicas:
Estructura de un robot cartesiano. Se la emplea para poder desplazarnos en
las dimensiones necesarias (x, y).
Dos motores y dos tornillos de bolas para el desplazamiento. Para poder
realizar los movimientos de forma autónoma.
Soportes para poder colocar los dispositivos electrónicos. Para poder sujetar
todas las placas y demás dispositivos electrónicos que sean necesarios para
poder realizar el sistema.
Acoples. Para poder acoplar nuestro sistema mecánico con el sistema pick &
place.
2.1.5. Sensores Incluidos.
Se emplean 3 sensores.
- Cámara: será usada para poder ver artificialmente el área de trabajo.
- Fines de carrera: para prevenir golpes en el sistema.
-
2.1.6. Elementos para el procesamiento.
El elemento para el procesamiento será el computador con ayuda de algún
microcontrolador (arduino), los que le darán ciertos grados de inteligencia a nuestro
sistema, siendo los encargados de enviar las señales a los actuadores y procesar las
señales que vienen de los sensores.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
49
Con esto los elementos que se utilizaran deberán cumplir con las siguientes
condiciones:
PC: La Pc puede ser de cualquier tipo ya sea de escritorio o portátil que tenga
como sistema operativo Windows XP SP2.
Arduino. Es el encargado de procesar cierta información pequeña y de poder
comunicarse con la Pc.
2.2. Dimensionamiento de actuadores, sensores y elementos para
el control.
Como anteriormente se mencionó las condiciones de nuestro sistema, ahora
ya podemos definir cada uno de los actuadores, sensores y elementos que nuestro
sistema necesita.
A continuación definiremos cada uno de ellos:
Dos motores de pasos.- Son necesarios para poder mover a los tornillos de
precisión, el tipo de motor que se pueden usar es el SILVERPAK 34D
INTEGRATED MOTOR + DRIVER, como se puede ver en la figura 2.2.
Figura 2.2. Motor de pasos. Fuente: www.rmsmotion.com.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
50
Características principales del motor [21].
Tamaño NEMA 24.
1.8° por paso.
Opera desde 24VDC hasta 75VDC.
Corriente de 0.5A a 7.0A.
Resolución, 2x, 4x, 8x, 16x, 32x, 64x, 128x, y 256x.
Frecuencia máxima: 5MHz
Duty Cycle de 100% solo si la temperatura no excede a 90° la carcasa del
motor.
Fuente de alimentación.- Es necesario para poder energizar a todo nuestro
sistema, la tensión mínima que se necesita es de 75V a 7A para poder alimentar a los
motores, la fuente que se puede utilizar es la Mastech Power Supply HY7520EX
75V 20ª, como se puede ver en la figura 2.3.
Figura 2.3. Fuente de Alimentación. Fuente: www.mastechpowersupply.com.
Características principales de la fuente [22]:
Salida de voltaje de 0 a 75V.
Salida de corriente de 0 a 20 A.
Voltaje de ingreso 110V 60 Hz.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
51
Estabilización de tensión: <= 0,2%
Estabilización de corriente: <= 0,5%
Tamaño 304.8 mm x 254 mm x 152,4 mm
Convertidor DC – DC.- Es necesario para alimentar toda la circuitería de control,
con ello podremos bajar la tensión de 75VDC a 5VDC, el que se puede usar es el
DC/DC Power Supply Single Output 5 Volt 20A 100W 7-Pin, como se lo puede ver
en la figura 2.4.
Figura 2.4. Convertidor Dc-Dc. Fuente: www.jameco.com.
Características principales del convertidor [23].
- Salida de 5V / 20A.
- Entrada de 72 a 144VDC.
- Protección contra cortocircuito, sobrecarga y sobre voltaje.
- Eficiencia 76%.
- Tamaño: 198.88 mm x 98,04 mm x 38.1 mm
Una tarjeta de inicialización de motores.- Es necesaria para poder inicializar los
motores según la conveniencia que nosotros tengamos, la que se puede usar es
USB485 CONVERTER CARD, como se ve en la figura 2.5, que es la asignada para
el tipo de motor que mencionamos arriba.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
52
Figura 2.5. Tarjeta de Inicialización. Fuente: www.rmsmotion.com.
Características principales de la tarjeta de inicialización [21].
- Permite al usuario conectar su dispositivo RS485 a un PC mediante un puerto
USB estándar.
- La velocidad de datos aproximado 250K baudios.
- USB 1.1 y compatible con USB 2.0.
- Compatible Windows 98/98SE/ME/2000/XP.
Arduino.- Es necesario esta tarjeta electrónica para poder realizar el control de
los motores y la comunicación con la PC, esta tarjeta es de software y hadware libre
y que facilita el control de los motores gracias a sus librerías, la tarjeta se puede ver
en la figura 2.6.
Figura 2.6. Arduino. Fuente: www.arduino.cc.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
53
Características principales del arduino [24].
Es una plataforma de código abierto.
Fácil uso del software y hadware.
Programación del microcontrolador con lenguaje propio (Arduino lenguaje).
Flexibilidad en librerías para facilitar la programación.
Dos Husillos de bolas: Son necesarios para poder lograr una alta precisión en el
desplazamiento, el que se puede usar es el THOMSON Ball Screw como el que se
ve en la figura 2.7.
Figura 2.7. Husillo de bolas. Fuente: www.grainger.com.
Las características principales del husillo [25]:
Diámetro nominal: 16,03 mm
Paso: 5 mm
Longitud:
1.- 750 mm
2.- 500 mm
Material: Acero.
Dos tuercas para el husillo de bolas: Es la tuerca que complementa al husillo de
bolas para poder realizar el desplazamiento, se puede usar la tuerca THOMSON Ball
Nut que es propia del husillo antes mencionado, como se ve en la figura 2.8.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
54
Figura 2.8. Tuerca para el husillo de bolas. Fuente: www.grainger.com.
Las características principales de las tuercas son [25]:
Diámetro nominal: 16,03 mm
Paso: 5 mm
Capacidad de carga 150 Lb.
Material: Acero.
Dos bridas: Son necesarias para poder acoplar a la tuerca del husillo de bolas las
placas necesarias para poder adaptarnos al pick & place, se pueden usar las
THOMSON Ball Screw Flange como se ve en la figura 2.9.
Figura 2.9. Bridas. Fuente: www.grainger.com.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
55
Las características principales de la brida son [25].
Diámetro: 66.04mm
Espesor: 13,6 mm
Material: Acero
Dos acoples de ejes: son necesarios para poder acoplar el eje del motor al husillo
de bolas, el que se puede utilizar es el Coupling, One Piece, Bore Dia 12 mm y se lo
puede ver en la figura 2.10.
Figura 2.10. Acople de ejes. Fuente: www.grainger.com.
Las características principales del acople de ejes son [25]:
Diámetro interno: 12mm
Diámetro externo: 29 mm
Largo: 45 mm
Material: Acero Negro
Diez rodamientos lineales: Son necesarios para colocar en los ejes que ayudaran
al desplazamiento, los que se pueden usar son KH1026PP 10mm Linear Motion
Sealed Bushing 10x17x26 y se lo puede ver en la figura 2.11.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
56
Figura 2.11. Rodamiento lineal. Fuente: www.vxb.com.
Las características principales del rodamiento lineal son [26]:
Diámetro interior: 10 mm
Diámetro exterior: 17mm
Largo: 26 mm
Cuatro rodamientos: son necesarios para poder acoplar los extremos de cada
motor para que pueda girar con facilidad, se los puede ver en la figura 2.12.
Figura 2.12. Rodamiento. Fuente: www.google.com.ec.
Tres ejes: Estos son necesarios para poder colocar los rodamientos lineales,
en donde todo el conjunto ayudara a que la tuerca del husillo de bolas se desplace
con mayor facilidad y también sirvan de guía, el que se puede usar es el THOMSON
shaft se lo puede ver en la figura 2.13.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
57
Figura 2.13. Eje. Fuente: www.graingier.com.
Las características de los ejes son las siguientes [25].
Diámetro: 10 mm
Largo:
1.- 80 cm Cantidad: Dos.
2.- 90 cm Cantidad: Una.
Material: Acero.
Cuatro fines de carrera. Son necesarios para ponerles fin a las trayectorias en el
caso de que se llegue a desplazar por error fuera del área de trabajo especificada
anteriormente.
Aluminio: Es necesario para realizar las placas en las cuales se soportaran los
extremos de casa husillo, y también serán parte de los acoples al pick & place.
Las características del aluminio son las siguientes:
Como no necesitamos dureza es suficiente un aluminio suave, a su vez como son
varias placas de diferentes dimensiones lo más recomendable es que sea aluminio
fundido a las dimensiones que sea necesario, mismas que se llegaran a determinar
más adelante.
2.3. Diseño del sistema mecánico
La base del sistema será el brazo vertical de precisión de 550 mm empotrado
a una base de madera, y sobre esté el brazo horizontal de 700 mm, los acoples
necesarios se los fabricaran en aluminio.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
58
2.3.1. Diseño de la base
La función de la base será de sujetar al primer brazo y también al pick &
place, esta es de madera, las dimensiones de esta son de 1m x 1.50m con un espesor
de 18mm como se ve en la figura 2.14.
Figura 2.14. Base. Fuente: elaboración propia.
2.3.2. Diseño de los husillos de bolas
Los husillos de bolas se los debe acoplar a la distancia que necesitamos que
se desplace cada uno de los carros, y también los extremos se deben acoplar de tal
manera que los rodamientos entren de forma exacta, en la figura 2.15 se puede ver el
husillo de bolas.
Figura 2.15.Husillo de Bolas. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
59
2.3.3. Diseño de los ejes
De igual forma que los husillos de bolas los ejes tienen que ser acoplados a
las distancias de cada uno de los brazos, y también con un agujero en el centro de
cada extremo del eje con una rosca M6 para poder ajustar los mismos a sus
respectivas bases, en la figura 2.16 se puede ver el diseño del eje.
Figura 2.16.Eje. Fuente: elaboración propia.
2.3.4. Diseño de los acople del motor
Los motores estarán empotrados en cada uno de los extremos de su respectivo
brazo, es por ello la necesidad de hacer una pieza en la que se puede acoplar los
motores con pernos, esta pieza será de aluminio y en total se necesita 2 por cada
motor, en la figura 2.17 se puede ver el acople del motor.
Figura 2.17.Diseño de acople del motor. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
60
2.3.5 Diseño del Brazo Vertical
El Brazo horizontal es el brazo de menor longitud y es el que ayudara a
desplazarse al pick & place en forma vertical, para el diseño de este brazo se ve la
necesidad de ciertos elementos que se les menciona a continuación junto con el
diseño de cada uno.
2.3.5.1. Acople izquierdo
El acople izquierdo es uno de los elementos del brazo vertical y es en donde
se acoplara el motor, un rodamiento y dentro de este un extremo del tornillo de
precisión, será también uno de los 2 acoples que se empotraran al tablero, este acople
será de aluminio. En la figura 2.18 se puede apreciar la forma del acople.
Figura 2.18. Acople Izquierdo del brazo vertical. Fuente: elaboración propia.
2.3.5.2. Acople derecho
El acople derecho es similar al izquierdo con la diferencia de que acá no se
acoplara un motor si no solo el rodamiento y dentro de este el husillo de bolas, este
será el segundo y último acople que se empotre al tablero de madera, también será de
aluminio. En la figura 2.19 se puede apreciar la forma del acople.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
61
Figura 2.19. Acople derecho del brazo vertical. Fuente: elaboración propia.
2.3.5.3. Carro
Es una de las partes más importantes del brazo y del sistema ya que en este es
en donde se montara la tuerca del tornillo de precisión así como los 4 rodamientos
lineales para poder lograr el movimiento lineal, y finalmente sobre esta pieza se
montara la base para el brazo horizontal. Esta pieza se la realizara de aluminio como
se la puede ver en la figura 2.20.
Figura 2.20. Carro del brazo Vertical. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
62
2.3.5.4. Acople al pick & place
Uno de las partes en donde nos vamos a acoplar para el movimiento del pick
& place es su brazo horizontal, es por ello la necesidad de una pieza que se adapte a
este sin causarle ningún daño, la pieza que se ha diseñado para acoplar al pick &
place debe ser muy exacta y se la puede ver en la figura 2.21.
Figura 2.21. Acople al pick & place brazo vertical. Fuente: elaboración propia.
2.3.5.5. Diseño final del brazo vertical.
A continuación veremos el diseño final del brazo, acoplando cada una de las
partes, diseñadas y adquiridas en las tiendas, véase figura 2.22.
Figura 2.22. Brazo vertical. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
63
2.3.6. Diseño del brazo horizontal
De igual manera que el brazo vertical se procederá con este brazo con la
diferencia de que en este los acoples finales y el carro tendrán las respectivas
variaciones para poder acoplar al pick & place.
2.3.6.1. Acople izquierdo
Este acople se lo debe hacer en forma de “L” para poder alcanzar la altura que
necesitamos sin excedernos en peso, en este acople estarán los acoples del motor así
como el rodamiento para el tornillo de precisión, este acople será de aluminio y se lo
puede ver en la figura 2.23.
Figura 2.23. Acople Izquierdo del brazo horizontal. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
64
2.3.6.2. Acople derecho
Este acople estará en el extremo del brazo y solo estará el rodamiento para el
tornillo de precisión y el agujero para el eje, será de aluminio y se lo puede ver en la
figura 2.24.
Figura 2.24. Acople Derecho del brazo horizontal. Fuente: elaboración propia.
2.3.6.3. Carro
El carro solo cambia en forma con lo que es el carro del brazo vertical, y se lo
puede ver en la figura 2.25.
Figura 2.25. Carro. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
65
2.3.6.4. Acople pick& place
Finalmente debemos acoplarnos al pick & place para poderlo desplazar en
forma horizontal y para ello se necesita del acople que se puede ver en la figura 2.26.
Figura 2.26. Acople pick & place. Fuente: elaboración propia.
2.3.6.5. Diseño final del brazo horizontal
A continuación veremos las vistas del diseño final del brazo horizontal,
acoplando cada una de las partes, diseñadas y adquiridas en las tiendas, véase figura
2.27.
Figura 2.27. Brazo horizontal. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
66
2.3.7. Acople de brazos
Es necesario una pieza para poder realizar el acople de los 2 brazos, esta pieza
tiene que ser empotrada en el brazo vertical y acoplar al brazo horizontal, el diseño
de la pieza selo puede ver en la siguiente figura 2.28.
Figura 2.28. Plancha de acople. Fuente: elaboración propia.
2.3.8. Soporte del brazo horizontal.
Un soporte en el extremo del brazo horizontal es necesario para poder causar
más estabilidad al sistema, en la figura 2.29 podemos ver el soporte, en este caso
tiene 4 agujeros que son los que le ayudaran a sujetarse a la base.
Figura 2.29. Soporte del brazo horizontal. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
67
2.3.9. Diseño final
A continuación veremos las vistas del diseño final, uniendo cada una de los
brazos con su respectivo acople, el diseño final se lo puede ver en la figura 2.30.
Figura 2.30. Diseño Final. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
68
2.3.10. Diseño de todo el sistema mecánico montado sobre el pick
& place.
Finalmente como era el objetivo le montamos el robot cartesiano al pick &
place el cual será sujetado en sus extremo el brazo vertical y en su parte media el
brazo horizontal, en la figura 2.31 se puede observar el diseño final en su totalidad.
\
Figura 2.31. Diseño Fina montado en el pick & place. Fuente: elaboración propia.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
69
2.4. Análisis de la precisión del sistema
Como bien sabemos este sistema tiene que ser de alta precisión ya que debe
tener la capacidad de colocar componentes electrónicos en donde la distancia entre
pitas es inferior a los 0,2mm, en este caso la precisión con la que nos podamos
desplazar va a depender del husillo de bolas y del motor de pasos, en este caso se
hará un análisis de la mínima y máxima precisión que se lograra alcanzar con los
elementos antes mencionados.
2.4.1. Análisis del tornillo
El tornillo que se adquirió tiene un paso de 5mm y el uno tiene una carrera
útil de 570mm y el otro de 820mm, en este caso debemos considerar que el carro que
ira en cada uno de estos es de 70mm, con esta consideración lo que nos demos
desplazar es:
carro del Ancjo - útil Carrera :real útil Carrera
Para el brazo vertical tenemos:
500mm 70mm-570mm :real útil Carrera (2.1)
Finalmente para el brazo horizontal tenemos:
700mm 70mm-770mm :real útil Carrera (2.2)
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
70
2.4.1.1. Análisis del Motor
En este caso debemos hacer un análisis de cuantos pasos nos van a dar una
revolución para luego en conjunto con el tornillo podemos ver cuánto nos podemos
desplazar por cada revolución.
Este motor tiene varias configuraciones arrancaremos con la configuración
full para hacer el análisis.
En la configuración full tenemos que por cada paso el motor se mueve 1.8°.
1 revolución es 360°.
pasospasos 2008,1
360#
(2.3)
En este caso necesitamos 200 pasos para poder dar una revolución por lo que
ahora debemos ver cuánto nos estamos desplazando por cada paso.
Paso del husillo 5mm.
200 pasos son 5mm.
mmmm
pasoporciaDis 025,0200
5tan
(2.4)
Esto quiere decir que por cada paso podemos desplazarnos 0,025mm, con
todo esto entonces ahora podemos realizar el cálculo para poder ver las revoluciones
necesarias para poder cumplir un ciclo con el brazo.
Brazo vertical.
Longitud del brazo 500mm como estamos haciendo el análisis para 1 ciclo
son 1000 mm ida y vuelta.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
71
pasosmm
mmpasosde 40000
025,0
1000#
(2.5)
revesrevolucion 200200
40000# (2.6)
Con ello tenemos que es necesario 200 revoluciones para poder cumplir un
ciclo completo del brazo vertical.
Ahora la velocidad con la que podemos cumplir este ciclo dependerá de la
frecuencia del tren de pulsos, en las pruebas se hará un análisis de cada una de las
posibilidades con frecuencias máximas y mínimas que soporte el motor.
Para el segundo brazo el análisis es el mismo solo cambia la distancia por lo
que consideramos no necesario realizarlo.
En la configuración del microstep más alto tenemos que por cada paso el
motor se mueve 0,00703125°.
En este caso aplicaremos el mismo proceso para poder llegar a determinar
cada uno de los parámetros necesarios.
1 revolución es 360°.
pasospasos 512000,00703125
360#
(2.7)
nmmm
pasoporciaDis 65625,9751200
5tan
(2.8)
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
72
Para poder ver cuantos pasos cubre un ciclo.
pasosmm
mmpasosde 01024000000
65625,97
1000#
(2.9)
revesrevolucion 200000200
01024000000# (2.10)
Podemos hacer una comparación de las 2 opciones y nos damos cuenta que en
uno de los casos con tan solo 200rev podemos cumplir el ciclo mientras que el otro
es demasiado grande el número de revoluciones para poder cumplir el ciclo.
La ventaja que tiene la configuración full con el mayor microstep es que nos
podemos desplazar la misma distancia con menos revoluciones.
La ventaja que tiene la configuración microstep sobre la full es que podemos
ser mucho más precisos ya que nos podemos desplazar aproximadamente 100nm por
cada paso.
Luego de hacer este análisis la elección es utilizar las 2 configuraciones en
ocasiones diferentes, es decir cuando se quiera desplazar grandes distancias sin
mucha precisión utilizaríamos el full y en el caso de solo sea necesario precisión y
por ende no necesitemos desplazarnos grandes distancias podemos configurar el
motor al mayor microstep.
En este caso se analizó el funcionamiento del motor en sus configuraciones
extremas, pero el motor tiene muchas más configuraciones que nos pueden ayudar,
en el capítulo de las pruebas se detallaran en que configuraciones quedara trabajando
el sistema, para el análisis se puede seguir el mismo proceso realizado.
La ventaja de los motores adquiridos es que la configuración se la hace
mediante software y no manualmente por lo que la configuración del motor también
será autónoma.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
73
2.5. Diseño Electrónico
La tarjeta electrónica será la encargada junto con el arduino de la
comunicación con la PC y del control de los motores, así como de los fines de
carrera. Continuación mostramos el circuito que se construirá.
2.5.1. Diseño del PCB
El PCB se montara sobre el arduino y constara de un MAX 232 para la
comunicación serial, así como de borneras para poder conectar los motores a los
pines de control, es necesaria que dicha tarjera se acople en un 100% a la del arduino
para que estas puedan trabajar en conjunto, por lo que lo primeo que debemos hacer
es el diseño del de la huella del arduino más conocido como footprint.
2.5.1.1. Diseño electrónico del acople al arduino
En la figura 2.32, se puede observar la parte del diseño del arduino, en donde
tenemos 3 borneras que son necesarias para poder colocar los cables de control de los
motores, así como para poder tomar la alimentación de 5V que provee el arduino,
misma alimentación que es tomada de la PC.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
74
Figura 2.32. Diseño Electrónico del Acople al arduino. Fuente: elaboración propia.
2.5.1.2. Diseño electrónico para la comunicación serial.
A continuación en la figura 2.33, observaremos la parte del diseño de la
comunicación serial, en donde tenemos un MAX232, con sus respectivos
capacitores, así como un DB9 hembra.
Figura 2.33. Diseño Electrónico para la comunicación serial. Fuente: elaboración propia.
USB-RX0
0
USB-TX0
1
INT0/PWM2
2
INT1/PWM3
3
PWM4
4
PWM5
5
PWM6
6
PWM7
7
PWM8
8
PWM9
9
PWM10
1 0
PWM11
1 1
PWM12
1 2
LED/PWM13
1 3
T X 3
1 4
R X 3
1 5
T X 2
1 6
R X 2
1 7
INT5/TX1
1 8
INT4/RX1
1 9
INT3/SDA
2 0
INT2/SCL
2 1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
MISO
5
0
MOSI
5
1
S
C
K
5
2
S
S
5
3
RESET
5 4
3.3V
5 5
5 V
5 6
G N D
5 7
G N D
5 8
Vin
5 9
A 0
6 0
A 1
6 1
A 2
6 2
A 3
6 3
A 4
6 4
A 5
6 5
A 6
6 6
A 7
6 7
A 8
6 8
A 9
6 9
A10
7 0
A11
7 1
A12
7 2
A13
7 3
A14
7 4
A15
7 5
G N D
7 6
A R E F
7 7
G
N
D
7
8
G
N
D
7
9
5
V
8
0
5
V
8
1
A R D 1
Arduino
1
2
3
4
5
6
7
8
P 5
Header 8
1
2
3
4
5
6
P 6
Header 6
V C C
G N D
1
2
3
4
P 7
Header 4
C1+
1
VS+
2
C1-
3
C2+
4
C2-
5
VS-
6
T2OUT
7
R2IN
8
R2OUT
9
T2IN
1 0
T1IN
1 1
R1OUT
1 2
R1IN
1 3
T1OUT
1 4
G N D
1 5
V C C
1 6
U 1
MAX232N
12345 6789
1
1
1
0
J 1
D Connector 9
1 0 u F C 3 Cap2
1 0 u F
C 1
Cap2 V C C
G N D
1 0 u F C 2 Cap2 V C C
1 0 u FC 4Cap2
G N D
G N D
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
75
2.5.1.2. Diseño electrónico para el fin carrera.
En la imagen 2.34, finalmente se observa el diseño de la parte de los fines de
carrera que nos ayudaran a tener una referencia en algún error del sistema, constan de
una resistencia y tienen el funcionamiento de darnos 0V en abierto y 5V en cerrado,
por lo que con estos datos nosotros podemos saber que decisiones tomar en caso de
que cualquier fin carrera se cierre.
Figura 2.34. Diseño Electrónico para los fines de carrera. Fuente: elaboración propia.
2.5.1.3. PCB
La Forma y tamaño del PCB están limitados a los de la placa del arduino, y la
distribución de los elementos se la debe hacer dentro de las limitaciones de la huella
del arduino como se puede ver en la figura 2.35.
a)
1 K
R 1
Res Semi
1 K
R 3
Res Semi 1 K
R 4
Res Semi
1 K
R 2
Res Semi
V C C V C C V C C V C C
G N D G N D G N D G N D
1
2
P 1
Header 2
1
2
P 2
Header 2
1
2
P 3
Header 2
1
2
P 4
Header 2
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
76
b)
Figura 2.35. a) PCB TOP LAYER b) PCB BOTTOM LAYER. Fuente: elaboración propia.
2.7. Cinemática del Robot
Mediante el estudio de la cinemática podemos determinar la posición y
orientación final de nuestro robot, con respecto a un sistema de coordenadas que se
utiliza como referencia, conociendo los valores de las articulaciones y los parámetros
geométricos de los elementos que conforman nuestro robot.
2.7.1. Cinemática Directa
En este caso nos ayudamos de algoritmo de Denavit-Hartenberg (DH), para
obtener las matrices que permitan indicar la posición de los eslabones.
En la figura 2.36 podemos observar en forma esquemática nuestro robot Cartesiano
así como también los sistemas de los ejes coordenados, distancias y giros según el
algoritmo DH.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
77
Figura 2.36. Esquema del robot cartesiano y notación DH Fuente: elaboración propia.
La Tabla 2.1 muestra los parámetros DH para nuestro robot cartesiano.
Articulación d a
1 0 1d 0 0
2
2
2d 0
2
Tabla 2.1: Parámetros DH para el robot cartesiano.
Dónde:
– Articulación: es la ubicación de nuestro sistema coordenado.
– : es el ángulo que gira el sistema coordenado alrededor del eje z.
– d: es la distancia que se desplaza el sistema en la dirección z.
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
78
– a: es la distancia que se desplaza el sistema en la dirección x.
– : es el ángulo que gira el sistema coordenado alrededor del eje x.
Luego de haber determinado los parámetros DH se procede a calcular las
matrices A (matriz de transformación homogénea) para cada una de las
articulaciones, esto se realiza reemplazando los parámetros en la matriz A, que
relaciona las rotaciones y traslaciones que ha efectuado el sistema. La matriz A es la
siguiente:
1000
)cos()(0
)()cos()()cos()cos()(
)cos()()()()cos()cos(
1
iii
iiiiiii
iiiiiii
idsen
senasensen
asensensen
Ai
(2.11)
Para la primera articulación tenemos:
0)0(1)0cos(0
0)0(1)0cos(0
sen
sen
(2.12)
1000
0100
0010
0001
1
0 A (2.13)
Para la segunda articulación tenemos:
02
12
cos2
02
12
cos2
sen
sen
(2.14)
Capítulo 2. Diseño del Sistema para el Centrado de Componentes
79
1000
0100
0010
0001
1
0 A (2.15)
La matriz de transformación es el resultado del producto de las matrices
anteriores.
2
1
1
0 AAT (2.16)
1000
010
0001
0100
1000
100
0010
0001
21 ddT (2.17)
1000
100
010
0001
2
1
d
dT (2.18)
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
80
Capítulo 3
Construcción del Sistema para el
Centrado de Componentes
3.1. Construcción de la estructura mecánica
En el capítulo anterior se realizó el diseño (Inventor) de cada una de las
piezas mecánicas que tendrá el sistema, luego del diseño se realiza la fabricación de
cada una de las piezas y el acoplamiento hasta obtener el sistema montado en su
totalidad.
3.1.1. Construcción de la base
La base en donde se montara el robot fue cortada en las medias a las cuales se
diseñó, es decir se cortó un pedazo de madera de 1m x 1.50m con un espesor de
18mm, que es el necesario para poder acoplar los pernos que sujetaran al brazo,
finalmente la base del sistema se puede observar en la figura 3.1.
Figura 3.1. Base.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
81
3.1.2. Corte de los husillos de bolas
Los husillos de bolas que se adquirió son de 1.50m y es con rosca en toda su
longitud por lo que hay que realizar un corte a la longitud que necesitamos y también
un maquinado en los extremos para poder acoplar los rodamientos, en este caso los 2
tornillos tienen la misma forma solamente que son de longitud diferente, en la figura
3.2 se puede ver finalmente como quedo el tornillo.
Figura 3.2. Husillos.
3.1.3. Corte de los ejes
Este proceso es similar al de los tornillos pero en este caso necesitamos hacer
un agujero roscado M6 en cada uno de los extremos de los ejes para poder empotrar
a sus respectivas bases, se necesitó construir 3 de estos ejes con la misma forma pero
de longitud diferente, en la figura 3.3 se puede observar finalmente el eje coartado y
mecanizado.
Figura 3.3. Ejes.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
82
3.2. Obtención de aluminio
Para la construcción de las piezas de aluminio se procedió primeramente a
unir cada una de las piezas diseñadas para poder sacar el volumen de aluminio que
debemos mandar a fundir, luego se procedió hacer los moldes de madera para poder
mandar a fundir el aluminio.
3.2.1. Moldes de madera
Se puede hacer un molde para cada pieza considerando un 20% a las
dimensiones reales por el rechupe del aluminio fundido, pero en este caso se
procedió a unir todas las piezas para sacar bloques grandes y luego cortarlos como se
mencionó en el punto anterior, en este caso se sacó 2 moldes y se los puede ver en la
figura 3.4.
Figura 3.4. Moldes de madera.
3.2.2. Aluminio fundido
Luego de tener los moldes de madera se realiza la fundición del aluminio de
forma artesanal, en este caso con el aluminio fundido el problema que se tiene es que
es poroso, cosa que no nos interesa mucho para este prototipo, en la figura 3.5 se
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
83
puede observar los bloques de aluminio que pesan aproximadamente 30 libras cada
uno.
Figura 3.5. Aluminio fundido.
3.3. Contrición de las piezas de aluminio
Con los bloques de aluminio listo se puede proceder a la construcción de cada
una de las piezas diseñadas en el capito II, en este caso lo que se debe hacer es cortar
el cubo de aluminio en las dimensiones de cada una de las piezas para posteriormente
ser mecanizadas en el CNC.
3.3.1. Construcción de los acople del motor
Esta pieza se la construyó 4 veces como se especificó en el diseño, y es la que
se encargara de sujetar al motor a cada uno de los brazos, en la figura se puede
observar la pieza finalmente construida.
3.3.2. Construir del brazo vertical
En este caso se debe tomar en cuenta que todas las dimensiones estén
exactamente con las diseñadas ya que este brazo se debe acoplar al pick & place y
debe ser exacta tanto en altura como en cada uno de los agujeros de cada pieza.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
84
3.3.2.1 Contrición de las piezas
En este caso se procedió a la construcción de 5 piezas que son las necesarias
para poder ensamblar el brazo vertical, se las construyo tal y como están diseñadas,
se las maquino en la CNC y se las puede ver en las siguientes imagines cada una de
ellas como finalmente quedaron, el único defecto de la pieza no es en construcción si
no en material y es que está bastante poroso, lo cual no afecta en el funcionamiento
del sistema.
Acople izquierdo construido, en la figura 3.6 se puede apreciar la parte frontal
del acople con los 3 agujeros, los de los lados para poder poner los ejes y el del
medio para el husillo de precisión.
Figura 3.6. Acople Izquierdo.
Acople derecho construido, en este caso de manera similar que el anterior esta
con los tres agujeros, igualmente para 2 para los ejes y el del centro para el husillo de
precisión, en la figura 3.7 se puede observar el acople construido.
Figura 3.7. Acople Derecho.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
85
Carro, en la figura 3.8 podemos ver el carro construido en donde consta con 3
agujeros, en donde los 2 de los extremos son para los rodamientos lineales, y el del
centro es para la tuerca de bolas con su respectivo flange, además en al agujero del
centro tenemos 4 agujeros roscados M6 para poder sujetar el flange al carro.
Figura 3.8. Carro.
Acople pick & place, para poder finalizar la construcción del brazo vertical se
construyó el acople del pick & place el cual consta de cuatro agujeros, los 2 de la
parte superior son para empotrar al carro con pernos rosca M6, y los 2 de la parte
frontal son para poder acoplar al pick & place con pernos M4, en la figura 3.9 se
puede ver la pieza terminada.
Figura 3.9. Acople pick & place.
Acople del motor, se construyó 4 de estas piezas ya que se necesitan 2 para
cada brazo, esta pieza consta de dos agujeros para pernos M6 para poder sujetar los
motores, en la figura 3.10 se puede ver la pieza construida.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
86
Figura 3.10. Acople del motor.
3.3.2.2. Ensamble del brazo vertical
El proceso para el ensamble del brazo es el siguiente.
Primeramente colocar los rodamientos en los acoples de los extremos, esto se
debe realizar con una prensa y hay que probarlos que no queden
sobrecargados, ya que esto podría afectar en el funcionamiento.
Luego debemos colocar los rodamientos lineales en el carro, de igual manera
se debe poner estos rodamientos con la prensa.
Procedemos a colocar la turca de bolas al husillo, esto se debe realizar con
mucho cuidado ya que las bolas se nos pueden caer, en la figura 3.11 se
puede ver la colocación de la tuerca de bolas.
Figura 3.11. Colocación de la turca de bolas.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
87
Después podemos colocar el husillo ya en los bloques de los extremos al
igual que las varillas quedando como se muestra en la figura 3.12.
Figura 3.12. Colocación del husillo y ejes.
Ahora nos faltaría colocar el carro, en la figura 3.13 podemos observar cómo
queda una vez montado el carro, auqui también podemos observar también
como queda montado el acople del pick & place al carro.
Figura 3.13. Colocación del carro.
Finalmente necesitamos colocar el motor con sus dos acoples, en la figura
3.14 podemos ver la manera en que se debe quedar el motor.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
88
Figura 3.14. Colocación del motor.
Una vez colocadas cada una de las partes construidas podemos ver en la
figura 3.14 finalmente el brazo vertical totalmente armado.
Figura 3.15.Brazo vertical completamente montado.
3.3.3. Construir del brazo horizontal
De la misma manera que se procedió con la construcción de las piezas y el
ensamblaje de las mismas en el brazo vertical se debe procedes para poder obtener el
brazo horizontal por lo que solo se mostrara las figuras con los resultados finales.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
89
Acople izquierdo.
Figura 3.16.Acople izquierdo.
Acople derecho.
Figura 3.17.Acople derecho.
Carro.
Figura 3.18.Carro.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
90
Brazo vertical completamente ensamblado.
Una vez fabricadas las piezas necesarias se proceder a ensamblar el brazo
horizontal de igual manera que el brazo vertical, se recalca que los 2 brazos
funcionan de la misma manera, pero su construcción es diferente debido a que
debemos acoplarnos al pick & place, en la figura 3.19 se puede observar el brazo
vertical completamente ensamblado.
Figura 3.19.Brazo Horizontal.
3.3.4. Ensamble de los 2 brazos
Para poder ensamblar los dos brazos es necesario la construcción de la
plancha que nos ayudara a unirlos en la figura 3.20 se puede observar la plancha.
Imagen 3.20.Plancha de acople.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
91
Finalmente se puede proceder a montar los dos brazos para poder tener todo
el conjunto mecánico completamente ensamblando quedando solo acoplarle al pick
& place, en la figura 3.21 podemos observar tanto el brazo vertical como el
horizontal formando todo el sistema cartesiano.
Figura 3.21.Sistema completo.
En la figura 3.22 podemos ver el sistema mecánico montado al pick & place,
haciendo falta únicamente la etapa de control.
Figura 3.22.Sistema montado al pick & place.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
92
3.4. Construcción del software de control
La parte de control tiene la misma importancia que la parte mecánica debido
a que los dos en conjunto harán que el sistema tenga un correcto funcionamiento, la
construcción del software de control se lo dividirá en 2 partes que son: el software de
control en la plataforma LABVIEW y la segunda construiremos un software para el
arduino, los 2 en conjunto conforman el software de control.
3.4.1. Construcción del software en LABVIEW
La parte que se encargara LABVIEW es muy importante ya que en este se
procederá a generar el 60% del control total, a continuación se mencionaran cada
cosa que haremos con LABVIEW.
- Lectura de Archivos .txt que contienen las coordenadas de cada uno de los
elementos, este archivo es generado al momento de diseñar nuestro PCB
en cualquier versión de ALTIUM.
- Separación y conversión en pasos de cada uno de los elementos que
contienen el archivo .txt.
- Interpretación de cuantos elementos contienen el diseño para no finalizar
el proceso hasta que este se haya finalizado.
- Convertir la variable numérica a una variable chart, y concatenar los datos
necesarios como son dirección.
- Realizar una transmisión y recepción serial.
- Mediante visión artificial comprobar si el elemento se lo coloco
correctamente y dar paso al siguiente elemento.
En conjunto con cada una de estas características y necesidades podemos
realizar nuestro software a nuestra conveniencia, a continuación se irán detallando
cada una de las partes mencionadas anteriormente.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
93
3.4.1.1. Lectura de Archivos .txt
En el momento en que nosotros diseñamos una PCB altium tienen la opción
de generar un archivo .txt en donde tenemos los datos de cada uno de los elementos
que contiene la placa, el archivo se lo puede ver en la figura 3.23.
Figura 3.23. Archivo .txt.
Una vez que tenemos el archivo lo que tenemos que hacer es leerlo, la parte de
construcción del software para la lectura se la puede observar en la figura 3.24.
Figura 3.24. Lectura del Archivo .txt.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
94
Con esto se nos abrirá una ventana en la cual debemos escoger el archivo que
necesitemos, es decir el de la placa que estemos construyendo.
3.4.1.2. Separación y conversión en pasos
Como se puede apreciar la figura 3.23, vemos que tenemos varias distancias
en milímetros, por lo que es necesario convertirlas a números de pasos para poder
enviar esos datos a los motores, para la conversión son necesarios varios pasos los
cuales se detallaran a continuación.
3.4.1.2.1. Generación de una matriz con los datos
La generación de la matriz es necesaria para tener distribuidos cada uno de
los datos y tener la dirección de ubicación, en la figura 3.25, podemos observar la
construcción del software que realizara la generación de la matriz.
Figura 3.25. Generación de la Matriz.
Teniendo la matriz de datos, procedemos a separar cada uno de los valores, en
la figura 3.26 podemos observar dicha parte.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
95
Figura 3.26. Separación de los valores.
Finalmente procedemos a la conversión de los valores, en este caso se genera
un número de pasos, tomando en cuenta que 200 pasos es una revolución en el
motor, en la figura 3.27 podemos observar la conversión de los valores en milímetros
a número de pasos.
Figura 3.27. Conversión de los valores.
3.4.1.3. Interpretación del número de elementos
Es necesario para poder darnos cuenta de cuantos elementos tenemos que
colocar y con ello no terminar el proceso antes de haber colocado el 100% de los
elementos, para ello nos ayudamos también del archivo que nos generó el altium es
decir el .txt.
La construcción del software de esta parte se basa en crear un bucle “For” que
va a seguir generando datos hasta el momento que se termine los datos en el archivo
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
96
.txt. A su vez va visualizando en que elemento se encuentra, en la figura 3.28 que se
muestra a continuación se puede observar la estructura.
Figura 3.28. Interpretación del número de elementos.
3.4.1.4. Convertir a variable chart la variable numérica y
concatenarla
Antes de la transmisión es necesario realizar la conversión de variable
numérica a variable chart, así mismo debemos ir concatenando cada una de los datos
necesarios antes de la transmisión, en la figura 3.29 podemos observar la conversión
de numérico a chart.
Figura 3.29. Conversión de numérico a chart.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
97
3.4.1.5. Transmisión y recepción serial
Una vez que se tiene los datos listos es decir en forma chart y concatenados
cada una de las variables que necesitamos, como son la dirección, procedemos
hacer el envió de este chart en forma serial.
El proceso consta en enviar tanto los pasos en x y en y luego esperar un dato
de finalización para poder finalizar el proceso, es decir al momento de enviar los
datos, el sistema pasa a un estado de espera de que el elemento llegue a la posición
indicada para poder proceder con la ubicación. El proceso de la transmisión y
recepción se lo puede observar en la figura 3.30.
Figura 3.30. Transmisión recepción serial.
3.4.1.6. Centrado del componente mediante visión artificial
¡En construcción!
3.4.2. Construcción del software para el arduino
Continuando con el resto de la construcción del software, necesitamos
programar el arduino para poder realizar el control total del sistema.
A continuación detallaremos cada uno de los procesos que realizara el arduino.
Transmisión y recepción serial.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
98
Conversión de chart a numérico.
Generación de pulsos para los motores.
Generación de la dirección de los motores.
Testeo de los fines de carrera.
3.4.2.1. Transmisión y recepción serial
Los datos que serán enviados mediante LABVIEW debemos recibirlos y
luego separarlos para poder saber cuál es la dirección y cuantos pasos tenemos que
dar, así como después de finalizar el proceso este tendrá que transmitir un mensaje de
finalización mismo que está esperando la PC para poder continuar con el siguiente
elemento, en la figura 3.31 se muestra las funciones necesarias para poder realizar la
tx y rx, y sus configuraciones en arduino.
a)
b)
c)
Figura 3.31. Funciones a) Configuraciones b) Recepción y c) Transmisión.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
99
3.4.2.2. Conversión de chart a numérico
Es necesario volver a pasar el dato a numérico para poder realizar el conteo
de los pasaos, el proceso para la conversión se lo puede observar en la figura 3.32.
En este caso también asignamos el valor recibido a la variable “pasos1” haciendo lo
mismo con la variable “pasos 2”, logrando así tener los dos valores cargados, es decir
pasos x es igual a pasos1 y pasos y es igual a pasos 2.
Figura 3.32. Conversión de chart a numérico.
3.4.2.3. Generación de los pasos
Para poder mover el motor necesitamos generar un tren de pulsos con una
frecuencia de inicio y terminar en la misma frecuencia, pero en el transcurso debe
haber un incremento de esta frecuencia para poder desplazarnos con mayor rapidez,
es decir arrancamos de forma lenta aumentamos la frecuencia para ir más rápido y
cuando estemos llegando disminuimos la frecuencia para llegar al punto despacio,
todos estos incrementos y decrementos se los hace paulatinamente, a continuación se
describen cada uno de los bloques y funciones necesarias para poder lograr la
generación de los pasos.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
100
3.4.2.3.1. Generando el tren de pulsos
Para la generación de el tren de pulsos lo que hacemos es prender y apagar un
puerto digital del arduino, en la figura 3.33 se puede ver el bloque de programación.
Figura 3.33. Generación del tren de pulsos.
3.4.2.3.2. Variación de la frecuencia
Como podemos observar en la figura 3.33 vemos que tenemos una función
que se llama “delayMicroseconds” y que esta depende de “a” es decir que para
nosotros poder variar la frecuencia se nos hace suficiente con la variación de “a”, en
la imagen 3.34 observamos el decremento e incremento de la variable a para poder
variar la frecuencia.
a) b)
Figura 3.34.Variacion de la frecuencia. a) Decremento b) Incremento.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
101
3.4.2.4. Generación de la dirección de los motores
Para la generación de la dirección de los motores necesitamos el ultimo byte
de nuestra cadena chart que recibimos, con esta lo que hacemos es dependiendo del
dato que nos envié poner un puerto en alto o en bajo, el bloque de programación se lo
ve en la figura 3.35.
Figura 3.35.Dirección delos motores.
La variable “VAR [7]” fue recibida mediante el puerto serial y es la que nos dará la
dirección en caso de ser 1 pondremos nuestros pines en alto caso contrario en bajo.
3.4.2.5. Testeo de los fines de carrera
Nuestro sistema por seguridades consta de 4 fines de carrera los cuales causan
una interrupción inmediata en caso de que estos sean presionados, logrando así dar
un aviso para poder corregir el error producido, el bloque de programación consta
solamente de testear cada uno de los pines en donde está conectado los fines carreras
y mandar hacer la orden inmediatamente, el testeo se lo puede observar en la figura
3.36.
Figura 3.36. Testeo de los fines de carrera.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
102
3.5. Construcción del PCB
La construcción del PCB es bastante sencilla ya que pos cuestiones de
estética se lo mando a construir y lo único que se debe hacer es montar cada uno de
los elementos que esta necesita.
3.5.1. PCB construido
En la figura 3.37 podemos observar el PCB construido el cual consta de dos
capas y en cada una de ellas esta con la capa protectora.
3.5.1.1. Elementos necesarios para el ensamble de la placa
Los elementos necesarios para el ensamble del PCB se detallan a
continuación.
- Socket de 16 pines para el MAX232.
- Un MAX232.
- Condensadores.
- Resistencias.
- DB9 Hembra.
- Los fines de carrera.
- Peinetas.
- Borneras.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
103
3.5.1.2. Colocación de los elementos.
La colocación de los elementos es un proceso repetitivo, el cual lo
detallaremos a continuación.
En la figura 3.38 podemos ver la vista inferior de la colocación de las
resistencias y de los capacitores en el PCB.
Figura 3.38. Colocación de las resistencias y capacitores.
En la figura 3.39 se puede observar la vista superior de la colocación de las
resistencias y capacitores y también la colocación de borneras, db9 y el socket para
el MAX232.
Figura 3.39. Colocación del db9 socket y borneras.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
104
Finalmente siguiendo con el mismo proceso repetitivo con cada uno de los
elementos, se llegara a tener el PCB completamente ensamblado y se lo puede
observar en la figura 3.40.
a)
b)
Figura 3.40. PCB ensamblado. a) Vista Superior. b) Vista Inferior.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
105
3.6. Ensamble del hardware de control a la parte mecánica.
Para poder poner en marcha nuestro sistema necesitamos acoplar la parte del
hardware control la parte mecánica.
3.6.1. Colocación el cable track.
El cable track más conocido como cadena de cables es necesario para poder
introducir en el los cables que se van a estar desplazando, con la ayuda del cable
track lo que lograremos es que los cables se desplacen de forma ordenada logrando
así una apariencia estéticamente buena.
Lo primero que debemos hacer para la colocación del cable track es la
sujeción a la base de uno de sus extremos, este extremo tiene que ser fijado
justamente en donde va a estar colocado el arduino que es el destino final de los
cables, en la figura 3.41 podemos observar la sujeción de uno de los extremos del
cable track.
Figura 3.41. Sujeción a la base de un extremo del cable track.
Luego de sujetar uno delos extremos procedemos a poner el resto de la cadena y
dentro de ella los cables que se van a desplazar en este caso son los cables de datos
del motor y su alimentación, el otro extremo del cable track se lo sujetar de igual
manera pero bajo la base del brazo horizontal, quedando el cable track con su
respectivos cables como se muestra en la figura 3.42.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
106
Figura 3.42. Cable track colocado.
3.6.2. Colocación del arduino
La colocación el arduino se la hace en una parte de la base, a la cual se la
sujeta con unos pernos para que esta quede completamente segura.
El arduino ira colocado en el extremo donde termina y llegan los cables del
motor del brazo horizontal, dando lógica al por que se coloca en ese lugar al cable
track, en la figura 3.43 podemos observar la sujeción del arduino a la base y también
el extremo del cable track.
Figura 3.43. Arduino colocado.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
107
Para complementar el hardware de control necesitamos colocar nuestro PCB
en el arduino y así mismo colocar todos los cables en las respectivas borneras
quedando así nuestro hardware de control como se puede ver en la figura 3.34.
Figura 3.43. Hardware de control colocado.
3.6.3. Cables para el envió y recepción de datos.
Como sabemos nuestro hardware de control necesita comunicarse con la PC
para poder trabajar.
Por lo que es necesario 2 cables, uno USB para poder cargar el software al
arduino y el otro un cable USB to Serial, y para poder enviar los datos.
En la figura 3.44 podemos observar los cables utilizados.
3.6.3 Sistema completo.
El objetivo de este capítulo es llegar a tener nuestro sistema listo para poder
hacer las respectivas pruebas, listo en todas sus partes es decir que nuestro sistema
tienen que estar con un software control, con un hardware control y su parte
mecánica.
En la figura 3.45 tenemos nuestro sistema en un 100% listo para proceder a
realizar las respectivas pruebas que se las harán en el siguiente capítulo.
Capítulo 3. Construcción del Sistema para el Centrado de Componentes
108
Figura 3.45. Sistema al 100%.
Capítulo 4. Pruebas y Resultados
109
Capítulo 4
Pruebas y Resultados
4.1. Pruebas de funcionamiento de sensores y actuadores.
A continuación se realiza las pruebas de funcionamiento a todos los sensores
y actuadores disponibles en el sistema, así como al sistema en conjunto con cada uno
de sus elementos. Además se exponen los resultados obtenidos en cada prueba.
4.1.1. Prueba de funcionamiento de los motores
La prueba de funcionamiento de los motores se realizaron sin carga con una
alimentación de 75VDC, utilizamos un generador de funciones para entregar los
pulsos hacia los motores, entonces con un tacómetro medimos el número de
revoluciones y también se midió el consumo de corriente en cada valor de frecuencia
entregado.
En tabla 4.1 se exponen los valores medidos en el motor del eje X.
Tabla 4.1: Pruebas de Funcionamientos Motor eje X
Capítulo 4. Pruebas y Resultados
110
La figura 4.1 muestra las imágenes de los valores obtenidos en las mediciones
del motor del eje X a una frecuencia de 100Hz.
Figura 4.1: Pruebas de Funcionamientos Motor eje X.
Realizando el mismo procedimiento que en el motor del eje X se obtienen la
tabla 4.2 la cual expone los valores medidos en el motor del eje Y.
Capítulo 4. Pruebas y Resultados
111
Tabla 4.2: Pruebas de Funcionamientos Motor eje Y.
4.1.2. Pruebas de conjunto mecánico.
Estas pruebas son necesarias para poder observar el comportamiento de
nuestro sistema mecánico, y ver si se esta cumpliendo el tiempo de desplazamiento
que debería tener cada brazo para cumplir su ciclo.
4.1.2.1. Configuración full del motor.
En este caso se arrancó con una frecuencia del tren de pulsos de 100 Hz y
terminando con aproximadamente 5.5KHz, con estas frecuencias tenemos los
siguientes resultados.
En el brazo vertical que se lo ve en la figura 4.2, la distancia a desplazarse es
378mm, en la figura también podemos observar el valor del cronometro.
En un semiciclo tenemos aproximadamente 3.9 segundos.
En un ciclo completo tenemos un poco más de 9 segundos
debido a los tiempos de frenado e inversión de giro que se le
debe hacer al motor.
a)
Capítulo 4. Pruebas y Resultados
112
b) c)
Figura 4.2: Brazo vertical de 378mm.
En el brazo horizontal que se lo ve en la figura 4.3, la distancia a desplazarse
es 600mm.
En un semiciclo tenemos aproximadamente 6,2 segundos.
En un ciclo completo tenemos un poco más de 12,4 segundos
debido a los tiempos de frenado e inversión de giro que se le
debe hacer al motor.
a)
Capítulo 4. Pruebas y Resultados
113
b) c)
Figura 4.3: Brazo horizontal de 600mm.
4.1.2.2. Configuración máximo microstep del motor.
En este caso arrancando con 30KHz y terminando con 1,5MHz tenemos los
siguientes resultados.
En el brazo vertical que la distancia a desplazarse es 378mm.
En un semiciclo tenemos aproximadamente 8 segundos.
En un ciclo completo tenemos un poco más de 16 segundos
debido a los tiempos de frenado e inversión de giro que se le
debe hacer al motor.
En el brazo Horizontal que la distancia a desplazarse es 600mm.
En un semiciclo tenemos aproximadamente 12.7 segundos.
Capítulo 4. Pruebas y Resultados
114
En un ciclo completo tenemos un poco más 25 segundos
debido a los tiempos de frenado e inversión de giro que se le
debe hacer al motor.
Como podemos ver en los dos casos tenemos unos tiempos que no se
diferencian mucho y eso que sus configuraciones son muy diferentes, esto es debido
a la frecuencia que alcanza cada uno de sus configuraciones, es decir mientras que
con la configuración full alcanzamos casi 6kHz con la configuración máximo
microstep alcanzamos una frecuencia por el orden de los MHz.
En este caso se utiliza las 2 configuraciones ya que si utilizamos el microstep
siempre estaríamos forzándole mucho al motor para desplazarnos grandes distancias,
entonces con la configuración full nos podemos desplazar con menos revoluciones
más rápidamente pero con menos precisión, y cuando lleguemos al punto del
centrado del componente nos podemos cambiar a configuración microstep
desplazándonos distancias cortas con más precisión.
4.2. Pruebas de Control.
Finalmente las pruebas de control son igual de importantes que las anteriores
ya que todo en conjunto nos debe dar los resultados esperados, como la precisión
necesaria para poder desplazarnos con nuestro sistema al punto que nosotros
queramos, para las pruebas de control se utilizaron un software en Labview y un
software en arduino.
4.2.1. Software en labview.
Capítulo 4. Pruebas y Resultados
115
Es necesario este software para poder leer un archivo formato texto (Véase
figura 4.4) en donde están cada una de las coordenadas (x, y) a donde nos queremos
desplazar, estas posiciones están en milímetros por lo que es necesario convertirlas a
número de pasos para poder saber cuánto se tienen que mover cada uno de los
motores.
Figura 4.5. Archivo con distancias en milímetros.
Además de esta parte el software en labview lo que hace es una vez
convertido las distancias en milímetros a pasos, es enviar este dato al arduino de
forma serial para que este sepa cuantos pulsos debe sacar para que el motor se mueva
la distancia que queremos.
Capítulo 4. Pruebas y Resultados
116
Para poder comprender de mejor manera la parte del software que se
desarrollo en Labview se puede observar la figura 4.6 y 4.7, que son los diagramas
de flujo del software desarrollado en esta plataforma.
Capítulo 4. Pruebas y Resultados
117
Inicio
Leer datos
puerto
serie.
If
Dato == Iniciar
Abrir archivo de
texto
Aux = 0
Posición de chip
con la visión
artificial.
Conversión de
distancia a número
de pasos del Aux.
Envió datos por el
puerto serial.
Dato = 0
If
Aux == max
Envió datos por el
puerto serial.
Leer puerto
Serie
If
Dato == FIN
Aux = Aux +1
FIN
si
No
si
si
No
No
Capítulo 4. Pruebas y Resultados
118
Figura 4.6. Diagrama de flujo de la apertura y conversión de datos.
INICIO
Adquisición de
la imagen.
Conversión a
escala de grises.
Filtrado.
Binarización.
Segmentación.
Cálculo del
centro del
componente.
FIN
Figura 4.7. Diagrama de flujo de la visión artificial.
Capítulo 4. Pruebas y Resultados
119
A continuación se presentan los resultados de las pruebas del software en
labview.
En la figura 4.8 podemos observar la apertura del archivo que tiene formato
de texto, y en la figura 4.9 se puede ver ya la conversión a número de pasos del
elemento C8 que seria nuestro tercer componente.
Figura 4.8. Apertura y lectura del archivo de texto.
Figura 4.9. Conversión del elemento a número de pasos.
Con estas distancias en pasos ya sabemos cuánto debemos desplazarnos con
cada brazo para poder llegar al punto deseado.
En la parte de visión artificial como primera parte se realizo la adquisición de
imágenes de diferentes componentes de montaje superficial, con el objetivo de poder
probar que la cámara puede captar los elementos con los que vamos a trabajar, en
esta parte tenemos los siguientes resultados, que se pueden observar en la imagen
4.10.
Capítulo 4. Pruebas y Resultados
120
Figura 4.10. Imágenes adquiridas.
Luego de adquirir las imágenes debemos probar nuestro software de visión
que nos va a ayudar a calcular el centro de cada componente, y nos dará las
coordenadas en milímetros para poder desplazarnos al centro de este, en la imagen 4.
11 podemos observar los elementos que la cámara captura y sus coordenadas.
a)
b) c)
Capítulo 4. Pruebas y Resultados
121
d)
Figura 4.11. Coordenadas del centro del componente.
4.2.2. Software en el arduino.
Este microcontrolador interpretara los datos enviados por labview y
generara la misma cantidad de pulsos para poder movernos la distancia deseada.
Para poder interpretar de mejor manera que es lo que estamos haciendo con
el software de arduino podemos observar el diagrama de flujo de la siguiente figura.
Capítulo 4. Pruebas y Resultados
122
Inicio
Lectura de los
FIN CARRERA.
IF
FC1 == 0 or
FC2 == 0
Envió dato por
el puerto serial.
Dato = Iniciar
While
FC1 = 0 or
FC2 = 0
IF
FC1 =/ 0
IF
FC2 =/ 0
Dirección M1 = 1
Tren_pulsoM1 = 1
Dirección M2 = 1
Tren_pulsoM2 = 1
Lectura de datos
Puerto Serie.
Datos1 = Motor 1
Datos2 = Motor 2
Aux = 1
Tren_pulsoM1 = 1
Dirección M1 = 0
Motor1=Motor1-1
Tren_pulsoM2 = 1
Dirección M2 = 0
Motor2=Motor2-1
If
Aux == 1
If
Motor1 == 0 &
Motor2 == 0
Envio de datos de
Fin de proceso.
Dato=FIN
If
Motor1 == 0
If
Motor2 == 0
Aux = 0
FIN
If dato =/ 0FIN DEL
PROCESO
AUX2 = 1
If
AUX2 == 1
Si
No
No
No
No
No
No
No
No
No
Si
Si
Si
Si
Si
Si
Si
Si
Capítulo 4. Pruebas y Resultados
123
Figura 4.12. Diagrama de flujo del software en arduino.
Una de las pruebas importantes que se debe hacer en esta parte es la
transmisión de los datos, ya que si estos no se están transmitiendo de maneta
correcta, el sistema no se nos desplazara al lugar exacto, para poder comprobar esto
utilizamos un emulador de un hyper terminal que trae el entorno de programación de
arduino.
Figura 4.13. Recepción de datos en arduino.
Como podemos ver en la figura anterior los mismos datos generados por
labview, le están llegando al arduino, por lo que hace falta ahora ver que el arduino
genere el mismo numero de pasos.
La manera de poder comprobar los pulsos es mediante la tarjeta de
adquisición de datos de la National Instrumet, con el contador de pulsos que se lo
puede configurar en el DAQ Assitant, como se puede ver en la figura 4.14.
Figura 4.14. DAQ Assistant para controlar los pulsos.
Una vez realizado esto podemos ver que los pulsos que genera el arduino son
los igual al número de pasos cargados véase figura 4.15.
Capítulo 4. Pruebas y Resultados
124
Figura 4.15: Conteo de número de pasos.
Capítulo 5. Conclusiones y Recomendaciones.
125
Capítulo 5
Conclusiones y Recomendaciones. En este “Capítulo 1”, se presentó una compilación de información de varios autores
sobre diferentes temas relacionados con las Visión por Computador, a fin de
obtener la información necesaria para el diseño del sistema de Visión Artificial que
se va a utilizar. Se inicia con una definición de la visión artificial, a continuación se
realiza una breve descripción del avance que han logrado estos sistemas en el
transcurso del tiempo. Posteriormente se expone los elementos que conforman un
sistema de visión artificial, fuente de luz, sensor de imagen, sistema de adquisición
y procesamiento digital. Luego se detalla cada una de las etapas que forman un
sistema de visión artificial y también los algoritmos usados en dichas etapas,
adquisición de las imágenes, preprocesamiento, representación y descripción,
reconocimiento e interpretación. Finalmente se mencionan algunas de las
aplicaciones de los sistemas de visión artificial tanto a nivel empresarial como a
nivel industrial. Las conclusiones del capitulo 1 son:
- Las aplicaciones que puede tener la Visión Artificial son innumerables, lo
que se debe tener en cuenta es seleccionar un buen sistema de iluminación
junto con un sistema de adquisición de imágenes acorde al sistema que
estemos planteando, para de esta forma poder obtener los resultados
esperados,los cuales dependen principalmente de la calidad de la imagen
adquirida, debido al hecho de que si la imagen adquirida contiene mucho
ruido, va a requerir de muchas operaciones para poder ser utilizada por el
sistema, lo que provocara más tiempo de procesamiento y un retardo en el
sistema.
- La resolución de la imagen obtenida por el sistema de adquisición de
imágenes debe ser lo suficientemente alta, para que la imagen obtenida
muestre cada uno de los detalles que se necesitan para que el sistema de
Visión Artificial opere correctamente
Capítulo 5. Conclusiones y Recomendaciones.
126
En el “Capítulo 2”, se realizó el diseño del robot, para ello se detalló la funcionalidad
del mismo, también se establecieron los parámetros que servirán durante el
diseño, se procedió a seleccionar el tipo de robot a emplear para adaptarse de
mejor manera al sistema pick & place que posee la Universidad. A continuación se
eligió el tipo de motores a emplear en el robot, la fuente de alimentación del sistema
y el sistema para el control del movimiento de los motores, optamos por el sistema
Arduino para esta finalidad, ya que nos presenta un entorno de programación
amigable idéntico a lenguaje C y lo mas importante que es software y hardware
libre. Posteriormente se realizó el diseño de cada una de las partes mecánicas que
conformaran el robot cartesiano, para culminar se realizó el estudio de la cinemática
del mismo. Las conclusiones del capitulo 2 son:
- El robot fue diseñado de tal manera que minimice las vibraciones en el
mismo, ampliando la vida útil de los rodamientos y elementos de acople
empleados en el robot.
- La precisión de nuestro sistema depende de dos elementos que lo
conforman y estos son el motor y los husillos, estos fueron elegidos de
manera que como mínimo podemos movernos distancias en nanómetros
(97.65625nm/paso) y como máximo en milímetros (0.025mm/paso),
logrando así una precisión suficiente para la aplicación que se implementó.
En “Capítulo 3”, se construyeron todas las partes que formaran el robot
partiendo del diseño realizado en el “Capítulo 2”, teniendo en cuenta todas las
medidas establecidas en el diseño del robot. La construcción empezó por la
base, corte y maquinado de los husillos, corte de los ejes, obtención del
aluminio fundido, construcción de los acoples para los motores y finalmente la
construcción de cada una de las piezas que conformaran tanto el brazo
horizontal como el brazo vertical del robot. Teniendo ya todas las partes
construidas se procedió al ensamble de las mismas, se construyó una caja
plástica para la colocación del Arduino y de los cables para él envió y recepción
de datos desde y hacia el computador. También se realizó la programación del
algoritmo en el Arduino para el control de la velocidad de los motores, la
comunicación serial con el computador. Finalmente se programó el algoritmo en
Capítulo 5. Conclusiones y Recomendaciones.
127
el computador para el control del proceso, y el algoritmo de Visión Artificial para
localizar el centro de cada componente en el dispensador. Las conclusiones del
capitulo 3 son:
- La elección de aluminio fundido, limita y retrasa el proceso de construcción
ya que al fundir en un solo bloque todas las dimensiones en bruto, se
presentan los problemas de rechupe y porosidad los cuales causan que las
piezas cortadas en un 20% ya no sirvan, teniendo así que fundir más
aluminio nuevamente.
- El construir las piezas en un CNC y proceder al ensamble con las
herramientas adecuadas es lo másóptimo en este tipo de sistemas, ya que
con ello se logró ensamblar nuestro sistema de manera fácil y sin
problemas de que las piezas, rodamientos y demás accesorios no coincidan
y necesitemos hacer reajustes.
- El usar una tarjeta electrónica de hardware y software libre facilito la parte
de control, ya que no se tuvo que construir todo el hardware, y también
ayudo en la programación ya que se tiene funciones que nos facilitan las
cosas, funciones como “step” la cual solo se le da el número y genera los
pasos para un motor.
Las recomendaciones para éste capitulo son:
- Implementar el sistema en una plataforma de software libre (para la visión
artificial OpenCV), con el fin de reducir los costos en la en el caso de que se
desee comercializar el producto.
- Trabajar con aluminio de mejor calidad, ya que el aluminio fundido con el
tiempo tiende a aflojar los rodamientos que están metidos a presión
causando así problemas de precisión y velocidad, en este caso se hizo con
aluminio fundido por ser un prototipo y por cuestiones de presupuesto.
- Se recomiendo partes estándares para la construcción del robot ya que de
esta forma será fácil remplazar alguna pieza en caso de necesitarlo y no
estaremos sujetos a las exigencias del constructor.
En “Capítulo 4”, se realizaron las pruebas al sistema, empezando por comprobar el
funcionamiento de los sensores y actuadores presentes en el robot, posteriormente
Capítulo 5. Conclusiones y Recomendaciones.
128
se desarrolló una aplicación para comprobar el movimiento de los motores,
realizando el conteo de los pasos que son enviados a los mismos y comprobando si
corresponden a los pasos envidados desde el computador. Las conclusiones del
capitulo 4 son:
- Con las pruebas realizadas en la parte mecánica y de control se apreció
queel sistema tiene sus parámetros establecidos y es demasiado complejo
ya que nos obliga en nuestro diseño mecánico a adaptarnos a los
parámetros de la máquina, llegando así a sobredimensionar nuestros
diseños en tamaño y por ende en costos en el momento de la construcción,
la solución es hacer un sistema mecánico independiente de cualquier otra
máquina.
- Se opto por no usar un sistema de visión en vuelo ya que la visión
únicamente será utilizada para la localización del centro de cada
componente en el dispensador, también como podemos observar en los
resultados obtenidos la precisión del centro de componentes esta en
milésimas de milímetros lo que nos garantizara un excelente
posicionamiento de la máquina para tomar el componente.
- El trabajar en una base de madera que no nos garantice que es
completamente plana, las vibraciones en el sistema van a estar presentes,
ya que al acoplar nuestras brazos a la madera, podemos apretar un perno
un poco mas que el otro, causando así un desequilibrio que finalmente nos
lleva a producir vibraciones en el sistema, también desgaste en los
componentes.
- El utilizar acoples de ejes completamente rígidos, no nos permite tener la
facilidad de acoplarnos fácilmente, lo que hace que una mínima falla de
fabricación genere problemas de acople de ejes y con ello traer vibraciones
al sistema.
- La transmisión y recepción serial de los datos siempre y cuando no se
superen los 3 metros de distancia serán enviados y recibidos correctamente.
- La generación del tren de pulsos tiene que ser en una forma trapezoidal, con
el objetivo de poder arrancar el motor de manera suave, alcanzar la
velocidad máxima, y cuando se esté llegando a las coordenadas deseadas
disminuir la velocidad para que este no de algunos pasos más por
Capítulo 5. Conclusiones y Recomendaciones.
129
cuestiones de la inercia, ya que si frenamos bruscamente al motor en la
velocidad máxima, se genera daños al motor así como un desplazamiento
extra al deseado, llegando así a tener imprecisión en nuestro sistema.
- Es necesario elegir la configuración del motor dependiendo de la aplicación
con la que se vaya a trabajar, esto dependerá de la velocidad y precisión
que necesitemos en la aplicación, ya que si cambiamos automáticamente de
configuración esto nos toma alrededor de 4 segundos por motor, lo que no
nos conviene ya que se pierde demasiado tiempo.
- El trabajar con los cables de potencia y de datos en una misma cadena
guía, trae problemas ya que los cables de potencia en algunos casos
generan una interferencia en el tren de pulsos, llegando así a causar
imprecisión en el desplazamiento.
Las recomendaciones para éste capitulo son:
- Se recomienda utilizar un acelerómetro para la medición de las vibraciones,
y con esta medida tener con exactitud donde se esta produciendo la
vibración para poder mejorar el sistema.
- Se recomienda montar el robot en una base completamente plana, que sea
de algún tipo de metal la cual le garantice al robot que a poder estar en
paralelo con las guías de cada uno de los brazos.
- En la parte mecánica se recomienda mantener lubricados los tornillos así
como sus rodamientos para que no presente defectos de funcionamiento y
desgastes en tiempos cortos.
- La forma en la que se debe dar la frecuencia del tren de pulsos del motor
deber ser la más cercana a la de la curva que nos presenta en el Apéndice
A, ya que con esto podemos llegar a alcanzar frecuencias un poco más
altas.
- Se recomienda separa los cables de potencia de los cables de datos para
poder prevenir cualquier tipo de interferencia.
BIBLIOGRAFIA
[1] GARCÍA SANTILLÁN, Elías. Detección y clasificación de objetos dentro de un salón
de clases empleando técnicas de procesamiento digital de imágenes. Trabajo de titulación
(Maestría en Ciencias de la Computación). México, Universidad Autónoma Metropolitana,
2008. 136 p.
[2] MACHUCA ARIAS, Sebastián. Uso de Técnicas Avanzadas de Visión Artificial
Aplicado a la Industria Frutícola. Trabajo de titulación (Ingeniero Civil en Computación
Mención Informática). Santiago, Universidad Tecnológica Metropolitana, Escuela de
Informática, 2009.
[3] MARTÍNEZ M, Luis y ZAPATA, José. Desarrollo de una Aplicación para el
reconocimiento automático de placas a partir de la imagen de un vehículo. Trabajo de
titulación (Ingeniero en Computación). Barcelona, Universidad de Oriente, Núcleo de
Anzoátegui, Escuela de Ingeniería y Ciencias Aplicadas, 2009. 200 p.
[4] MERY, Domingo. Visión Artificial. Santiago de Chile: Universidad Santiago de Chile,
Departamento de Ingeniería Informática. 2002. 107 p.
[5] MENDIETA D, Denise. Reconocimiento de Objetos Bidimensionales en Imágenes
mediante la Transformada de Distancia utilizando Matlab. Trabajo de titulación
(Licenciatura en Ingeniería en Electrónica y Comunicaciones). Puebla, Universidad de las
Américas Puebla, Escuela de Ingeniería, Departamento de Ingeniería Electrónica, 2003. 84
p.
[6] GONZÁLEZ M, Ana y ALBA E, Fernando. Técnicas y Algoritmos Básicos de Visión
Artificial. 24a. ed. Logroño: Universidad de la Rioja. 2006. 90 p.
[7] GORDILLO E, Lenin y YÁNEZ R, Jorge. Aplicación de visión con LabVIEW para la
detección de frascos con turbiedades. Trabajo de titulación (Ingeniero en Electrónica y
Telecomunicaciones). Guayaquil, Escuela Superior Politécnica del Litoral, Facultad de
Ingeniería en Electricidad y Computación. 2009. 311 p.
[8] OVALLE C, Demetrio y CAÑÓN R, Jairo. Sistemas Inteligentes Artificiales y su
aplicación en Ingeniería. 1ra. Ed. Medellín: Imprenta Universal Nacional. 1997. 152 p.
[9] SOBRNDO M, Eddie. Sistema de Visión Artificial para el reconocimiento y
manipulación de objetos utilizando un brazo robótico. Trabajo de titulación (Magister en
Ingeniería de Control y Automatización). Lima, Pontificia Universidad Católica del Perú.
2009. 130 p.
[10] PASSARIELLO, Gianfranco y MORA, Fernando. Imágenes Médicas: Adquisición,
Análisis, Procesamiento e Implementación. 1ra. ed. Venezuela: Ediciones de la Universidad
Simón Bolívar. 1995. 302 p.
[11] GONZÁLES, Rafael y WOOSDS, Richard. Tratamiento digital de imágenes. Edición
en español. Wilmington, Delaware: Addison-Wesley Iberoamericana, S.A. 1996. 709 p.
[12] GANDÍA, Soledad y MELIÁ, Joaquín. La teledetección en el seguimiento de los
fenómenos naturales. Recursos renovables: Agrícolas. Curso de Postgrado. Valencia:
Universitat de Valéncia, Estudi General, Departamento de Termoniámica, Unidad de
investigación de Teledetección. 1991. 409 p.
[13] ESQUEDA, Jaime y PALAFOX, Luis. Fundamentos de Procesamiento de imágenes.
Universidad Autónoma de Baja California: Departamento de Editorial Universitaria. 2005.
420 p.
[14] PERTUSA, José. Técnicas de análisis de imagen: Aplicadas en Biología. Valencia:
Maile Simon. 2003. 348 p.
[15] RAMÍREZ R, José. Generación de fuentes virtuales de sonido en audífonos. Trabajo
de titulación (Licenciatura en Ingeniería en Electrónica y Comunicaciones). Cholula,
Puebla, Universidad de las Américas Puebla, Escuela de Ingeniería, Departamento de
Ingeniería Electrónica, 2005. 86 p.
[16] VÉLEZ S, José. Visión por computador. Madrid: Universidad Rey Juan Carlos,
Servicio de Publicaciones. 2003. 232 p.
[17] GONZÁLEZ B, Santiago. Segmentación de secuencias de imágenes estereoscópicas
mediante competición de regiones para el modelado 3D de músculos artificiales. Trabajo de
titulación (Ingeniero de Telecomunicación). Cartagena, Universidad Politécnica de
Cartagena. 2005. 121 p.
[18] DÍAZ G, César y DE HARO, Francisco. Técnicas de exploración en Medicina
Nuclear. Ciclo Formativo Imagen para el Diagnóstico. 1ra ed. Madrid: Masson, 2004. 464
p.
[19] GARCÍA F, Javier. Reconocimiento de objetos en una cocina con una webcam.
Trabajo de titulación (Ingeniería Técnica en Sonido e Imagen).Madrid, Universidad Carlos
III de Madrid, Departamento de Informática. 2009. 122 p.
[20] ESCRIBANO S, Isabel. Desarrollo de un Sistema de Visión Artificial para el Control
Eficiente de Pulverizadores de Cera en el Tratamiento Post-Cosecha de la Fruta.
Universidad Politécnica de Valencia. 2005. 8 p.
[21] Step Motor manufacturing firm. LIN ENGINEERING. Disponible en:
<http://www.linengineering.com>. Fecha de consulta 28 de marzo del 2011.
[22] Características de la fuente de alimentación. Disponible en:
<http://www.mastechpowersupply.com>. Fecha de consulta 5 de Julio del 2011.
[23] Características del convertido Dc-Dc. Disponible en: <http://www.jameco.com>.
Fecha de consulta 5 de Julio del 2011.
[24] Características del arduino. Disponible en: <http://www.arduino.cc>. Fecha de
consulta 12 de Julio del 2011.
[25] Características de los husillos de bolas y accesorios Disponible en:
<http://www.grainger.com>. Fecha de consulta 24 de junio del 2011.
[26] Características de los rodamientos lineales Disponible en: <http://www.vxb.com>.
Fecha de consulta 12 de julio del 2011.
Apéndice A
Características SILVERPAK
34D
A.1. Características Eléctricas
A continuación se detalla las características eléctricas del motor[21]:
-Funciona desde +24 a 75VDC.
-Corriente de fase seleccionable desde 0.5 a 7A pico con incrementos de
0.1A. -Entradas aisladas: pasos, dirección y enable. -Frecuencias de pasos
(max): 5MHz. -Pasos por revolución (1.8◦
Motor): 200, 400, 800, 1600, 3200,
6400,
12800, 25600 y 51200. -Resolución microstep: Full step 2x, 4x, 8x, 16x,
32x, 64x, 128x y 256x.
Tabla A.1: Configuraciones nominales
Sentido de giro Antihorario
Resolución microstep 8x (3200 pasos/revolución)
Corriente de funcionamiento 7A
Corriente de retención 0.5A/fase
Detección de la señal del paso Deteccion de flanco ascendente
A.2. Pines de conexión
A.2. Pines de conexión
El Silverpak 34D posee 3 conectores, mirando el motor con el eje hacia
arriba, el conector izquierdo es para la comunicación RS485, el conectador
central para las funciones de control y el conector derecho para la alimenta-
ción principal. En la figura A.1 se muestra los conectores del Silverpak 34D.
Figura A.1: Conectores Silverpak 34D
Las tablas A.2 y A.3 muestran una descripción de los pines de cada uno de
los conectores del Silverpak 34D.
Tabla A.2: P3 CONNECTOR PINOUTS
A.3. Dimensiones
La longitud del cuerpo del motor esta disponible en varias longitudes
(dimensión A). En la figura A.2 se muestra las dimensiones del Silverpak 34D
(DO-8718S-XX (4,44��
)).
Pin Function Description
1 RS485A (-ve) RS485 communication (A-)
2 Ground (GND) Ground connection (must connect to power supply ground)
3 RS485B (+ve) RS485 communication (B-)
A.3. Dimensiones
Tabla A.3: P2 CONNECTOR PINOUTS
Figura A.2: Dimensiones Silverpak 34D
Pin Function Description
1 No Connection The pin is not used
2 Opto supply input This pin requires 5VDC to supply the optically isolated inputs
3 Disable/ Enable input
This input is used to enable/disable the driver/motor. By default, the unit is enabled. Tie to ground in order to disable unit
4 Internal 5V supply (output)
The 34D has an internal 5V supply. To use this as your opto supply, connect pins 2 and 4 together. By doing so, the inputs are no longer optically isolated
5 Ground Same as main ground
6 Internal use Internal use
7 No connection This pin is not used
8 Step Pulse Input
This pin takes in step pulses from a controller, PLC, or signal generator. The step pulse must be a clean TTL squarewave signal, max of 10 mAmps current
9 Direction Input
This input is used to change the direction of rotation. By default, it rotates counterclockwise (CCW). By tying this pin to ground, the motor should rotate CW
10 Internal use Internal use
11 Internal use Internal use
12 Internal use Internal use
Apéndice B
Planos
Apéndice C
Presupuesto
C.1. Descripción
La siguiente tabla muestra los valores de cada uno de los componentes del
proyecto.
C.1. Descripción
Presupuesto para el sistema de centrado de componentes
Cantidad Descripción Precio Unitario Total
2
Motor + Driver IMD 34D Pole Damping Technology 499.50 999
1 Conversor USB-RS-485 KIT-USB-03
99 99
10 Rodamientos Lineales 10x14x12
Needle Bearings 9.95 99.5
4
Rodamientos Self-Aligning Bearing 12x32x10 Ball 4.95 19.8
2
Husillo de precisión Ball Screw,0.631 In Dia,48 In L Steel 82.550 165.1
3 Guías de 1.50m Hardened Rod Linear
Motion 24.99 74.97
2 Accesorio para tuerca de bolas Ball Screw Flange,Flange Dia 3.250 In 57.40 114.80
2 Tuerca de bolas Ball Nut, Ball Circle
Dia 0.631 In 77.05 154.1
2 Acople de ejes Coupling,Rigid Stell
12mm 39.80 79.60
1 Fuente de alimentación regulable
75VDC 20A 469.95 469.95
2 Cadena para guía de cables Cable
track 149.99 299.98
1
Driver para IMD 34D Pole Damping Technology 250 250
1 Arduino MEGA 2560 67 67
1 Transporte en el extranjero 163.42 163.42
1 Importación 914.06 914.06
1 Divulgación 106.4 106.4
2 Aluminio fundido artesanalmente 33 66
1 Fabricación de partes en CNC 728 728
1 Tornillos, pernos, tuercas y arandelas 23.67 23.67
1 Construcción del PCB 46.99 46.99
1 Componentes para el PCB 23.45 23.45
1 Caja acrílica con impresiones 48.76 48.76
Total 5083.35
top related