Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
CONSTRUCCIÓN DE ROBOTS MÓVILES PARA UN LABORATORIO DE INTELIGENCIA ARTIFICIAL Tesis presentada por María Guadalupe Alexandres García . . i ' Presentada ante la Dirección Académica de la Universidad Virtual del Instituto Tecnológico y de Estudios Superiores de Monterrey como requisito parcial para optar al título de MAESTRA EN CIENCIAS DE LA COMPUTACIÓN Diciembre de 1998 Maestría en Ciencias computacionales Especialización en Inteligencia Artificial RESUMEN CONSTRUCCIÓN DE ROBOTS MÓVILES PARA UN LABORATORIO DE INTELIGENCIA ARTIFICIAL DICIEMBRE DE 1998 MARÍA GUADALUPE ALEXANDRES GARCÍA INGENIERO INDUSRIAL EN ELECTRÓNICA INSTITUTO TECNOLÓGICO REGIONAL DE VERACRUZ Actualmente, en los centros de educación superior pública de nuestro país no se cuenta con bibliografia adecuada para la elaboración de robots, no hay suficientes prototipos y manuales para que los estudiantes practiquen en sus laboratorios de robótica. Por tal motivo, en este trabajo se describe de una manera muy sencilla como se construyen tres pequeños robots, a un costo relativamente bajo. Y logrando de esta forma uno de los objetivos mencionados en este trabajo: como guía a los alumnos para que puedan construir robots a costos bajos. En este trabajo también se describe el funcionamiento de los sensores, microcontroladores, motores de paso, medios de locomoción y tipos de energía que más se utilizan en la robótica. Para que al momento de la construcción del robot, se seleccionen los dispositivos más adecuados y acordes al propósito del robot. Se describe también, la creación de la interface entre los dispositivos y el microcontrolador. Esta interface es software que modela el comportamiento del robot para que actúe de forma adecuada, tal como su creador lo requiera. El trabajo además de incluir los fundamentos del funcionamiento del robot, también describe una breve historia acerca de los robots, donde se utilizan actualmente, sus ventajas y desventajas de los mismos. La robótica es una de las ramas de la inteligencia artificial, por lo que se incluye una introducción a este tema. Se explican, además, los algoritmos de planeación usados en el robot, que le permite tener un comportamiento para poder desenvolverse en su entorno. Como parte de aplicación e implementación de lo mencionado en este trabajo, se fabricaron dos prototipos de robots, donde se muestra el funcionamiento de cada una de las componentes. vi INDICE DE CONTENIDO Página Agradecimientos........ .......................................................... ................ .... ............... 1v Resumen................. ....... .......................................................................................... v Indice de tablas......................................................................................... .............. xiv Indice de figuras................................ ....... .... .......................... ........................... .... xv Capítulo I Introducción Capitulo U La Inteligencia Artificial 7 2.1 2.2 2.3 Q 1 . 1· . ºfi ·a1 " ¿ ue es a mte 1genc1a art1 c1 ........ ........ ........... ....... .... ................ . 7 2.1.1 Diferentes definiciones de inteligencia artificial........ . . . .. . ... . . . 8 2.1.2 Fundamentos de la inteligencia artificial................................ 9 Breve historia de la inteligencia artificial ........................................ . 10 2.2. l Cronología de los avances en la inteligencia artificial . . . .. ... . . .. 11 Clasificación de la inteligencia artificial. ......................................... . 2.3.1 2.3.2 2.3.3. 2.3.4 Sistemas expertos (S.E) ....................... .... ... .... ............... .. . . Procesamiento de lenguaje natural. .................................. .. . Reconocimiento de voz ..................... ................................. . Robótica ........................................................................... . 14 15 15 16 17 2.3.5 Visión por computadora.................................. .................... 18 2.3.6 Instrucción ayudada por computadora................................. 18 2.3. 7 Otras aplicaciones de inteligencia artificial........... ................ 19 2.4 La inteligencia artificial contra la inteligencia natural............................. 20 2.5 Diferencias entre software convencionales y s~ftware basado en I.A....... 21 2.6 Técnicas para resolver problemas con sistemas inteligentes................... 22 2.6.1 Tratamiento técnico del problema.................. .......................... 23 2.6.2 Como construir el modelo.................... ...................... .... .......... 24 2.7 El futuro de la inteligencia artificial. ............... .................. .... ....... .... . 33 \1Í 2.8 La inteligencia artificial en México .................................. ................ . 34 2.9 V . d 1 . r . 'fi 'al entaJas e a mte 1genc1a art1 1c1 ............. ..................................... . 35 Capítulo ID Los Robots 37 3.1 La importancia de los robots ...................................... ..................... . 40 3.2 Historia de los robots .................... .................................................. . 42 3.3 El desarrollo de la tecnología de la robótica ........................... .......... . 44 3.4 Clasificación de los robots .................................................... ........... . 47 3.4. l Robot en el espacio.................................................................. 47 3.4.2 Robots Submarinos......................................... ......................... 48 3.4.3 Robots Subterráneos................................................................ 49 3.4.4 Robots Militares.................. ............... ..................................... 50 3. 4. 5 Robots Móviles.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Capítulo IV Sensores para robots 63 4.1 La percepción ................................................................................. . 63 4.1.1 Definición de un sensor..................... ........... ............... ....... .. 64 4.2 Detección ......................... ........... .... .... ....... .... ... .... .... ........... .... ..... . 65 4.3 Alcance ...... ............................. ............ .......................................... . 66 4.4 Características de los sensores ....................................................... . 67 4.5 Clasificación general de los sensores ....... ....................................... . 68 4. 5. l Sensores táctiles.................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.5.1.1 Sensores de contacto......................... ................... ... 68 4.5.1.2 Sensores de fuerza................................................... 70 4.5.2 Sensores de proximidad y alcance................ .... ....... ............. 71 4.5.3 Sensores Diversos................................ .... ....... .... ............... 74 4. 5. 3. 1 Sensores de temperatura...... .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4 4.6 Sensores que más se usan en los robots móviles ..... .... .................... . 76 4.6.1 Sensores ultrasónicos....... ... ................................................ 76 \iii 4.7 4.6.2 Sensores de proximidad ópticos..................... ..... ............. 78 4.6.3 Fotoresistores... .......... ... . . ......... .. ...... .. .. .. . . ..... ... ..... ........... 79 4.6.3 .1 Controlador de software para fotoresistores. .. . . . . . . . . 81 4.6.4 4.6.5 Sensores piroelérctricos ................ ....... ............................ . Sensores de inclinación ....................... .... .......................... . Sensores utilizados en el robot11 ..... ........... .... ............................ . 87 88 88 Capítulo V Locomoción de los robots 94 5.1 Diferentes formas de hacer que el robot pueda ser móvil.................... 94 5. 1. 1 Adaptación de las ruedas al robot.................. .................... ... 98 5.1.2 Conducción de diferencial.................................................. 98 5. 1 . 3 Manejo de carros y triciclos.................................................. 100 5.1.4 La forma del robot................................................................ 100 5. 1. 5 Plataformas móviles............. ........... ........ .............................. 1 O 1 5. 1. 6 Modificaciones eléctricas.......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 O 1 5. l. 7 Locomoción de las patas en un robot móvil.................... ....... l 03 5.2 Sistema de construcción ....................... ........................................... . 104 5.2.1 Construcción personalizada.................... ............................... 105 5. 2. 2 Montaje de las ruedas..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.2.3 Cuerpo del robot............................ ........... ....... .................... 107 5.3 El motor .... .... .................................................................................. . 108 5.3.1 Motores de corriente e.e........................................................ 109 5.3.2 Como se debe seleccionar un motor para un robot................. 114 5.3.3 Engrane............................................................................................ 114 5.3.4 Motores que usa el robot 11......... ....... .... .... .... . .. ............ ......... 116 5. 4 Servo- motores........ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5 .4 .1 Motores Servidores Modificados....................................... ....... 121 5. 4. 2 Interfaces de motores.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.4.3 Puentes H.......................................................... .... ....... .... .................. 122 5. 5 Los circuitos integrados como controladores del motor............................. 124 5.6 Software para manejar motores ................ ....... .................................. . . 126 ix 5.6. l Registros de comparación de salida.................... ....... ............. 127 Capítulo VI Energía 134 6.1 6.2 6.3 6.4 6.5 La electricidad ................................................. .... .............................. . 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.1.6 Electricidad producida por fricción ................................ ......... . Electricidad producida por reacciones químicas ............... ....... . Electricidad producida por presión .......................................... . Electricidad producida por calor ......... .... ....................... .......... . Electricidad producida por luz ........................ ......................... . Electricidad producida por magnetismo ............ ....................... . Fuentes de energía .......... .... ............... : .......................... ...................... . 134 135 135 135 135 136 136 137 6.2. l Tipos de fuentes de energía..... .. .. .. ..... .. .. .. .......... ......................... 137 6.2.2 Baterías............................................................ ........................... 138 6.2.2.1 Voltaje....................................... ....... ............................ 139 6.2.2.2 Capacidad..................... ................... ........... .................. 139 6.2.2.3 Resistencia Interna....................... ........ ....................... .. 139 6.2.3 Recargando.................. ........ ........... .... ....... ...................... ........ 140 6.2.4 Funcionamiento........................................................................ 140 6.2.5 Batería de celda húmeda básica..................... ........................... 141 6.2.6 Batería de celda seca básica...................................................... 142 6. 2. 7 Baterías secundarias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3 6.2.8 Baterías de celdas múltiples..................... .. ..... .. ............. .. ....... .. 145 Regulación de voltaje ............ ..................................... ......................... . 145 6. 3 . 1 Reguladores de Línea... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.3.2 Convertidores DC-DC............................................ .................. 147 6.3.3 Aislamiento.............................................................................. 148 Energía solar ............................................................... .. .. .... ................ . 149 6.4.1 La radiación........ ... .... ... .. .. .. ............................ .. ..................... 149 6.4.2 Rayos solares............................ ............................................. 150 Características de la energía solar ........................................................ . 150 6.5.1 Captar la radiación...................................................................... 150 6. 5 .2 Colectores solares de placa plana................................. ............... 152 6. 5. 3 Colectores heliovoltaicos..................................................... ....... 15 5 6.6 La celda solar................... . .. .. ...... ........ ........... .. . . ... . . . . .. . . . . . .. . . . . . . . . ... . . . . 156 6 6.1 Funcionamiento. .......................................... .. ........ ............. ... 157 6.6.2 Módulos fotovoltaicos... ...... .. . . . ...... .. . . . ........ ... . .. . ... . . ... . . . . . . . . . ... . . 158 6.6.3 Accesorios para instalaciones fotovoltaicas.......... ....... ...... ... .. . .. 159 6.6.4 Regulador de carga.......................................................... ......... 159 6.6.5 Desconectador de carga....... ... ....................... ................... ......... 160 Capítulo VII Los Prototipos 162 7.1 L . d 1 . a esencia e prototipo ............ ...................................... ... .............. . 163 7.2 Diagrama del prototipo ................... ......................... ........... ............. . 163 7.3 Comportamiento del prototipo.................................. .................. .... . . 163 7.4 Como se construye este robot.......... .... ................... .................. ......... 165 7. 5 Construcción electrónica.................................................................... 169 7.6 Operación......... .... .... .... .. ... .... .... .. ........ ....................... ... .. ...... ...... .... 173 7. 7 El Robot 11. .. . . . .......... ..... ........ .... .. . . ............... .... ................ ... . .. ... . ..... 180 7.8 Estrategia de Diseño del Microprocesador en el Robot 11.. ... ........... .. 181 7.9 El lenguaje C Interactivo...... .... ............... .... ... .... .... ... ........ ..... .. .... ... . 183 7. 1 O Los microcontroladores............................. ............... ... ........ .... ... ....... 184 7.11 El MC68HC11..... ........... ................................................ .... ............. 185 7.11. 1 La función del MC68C 11 O ........ .................. .... . 186 7.11.2 El Bus......................................... ............................................. 187 7.11.3 Memoria........... ........... .... ....... ....... .... .... ....... ................ .... ....... 188 7.11.4 Lospuertos................................................................. .... .... .... 189 7 .12 Energía que requiere el MC68C 11........ .... ....... ...................................... . 192 7.12.lElreloj ............................. ....... .... .... ......................................... 192 7.12.2 Reinicio(RESE]).............................. .............................. .......... 193 7. 12 3 Selección del Modo............. .... ................... ............ .................. 193 7. 12.4 Inhibidor de Bajo Voltaje.................................. ....... ........ ....... . 193 7. 12. 5 La Línea Serial..................... .... ... .............................. ............... 194 7.12.6 Memoria Externa.............. ........................................ .... .... ....... 194 7. 12. 7 Batería de respaldo............. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 96 7.13 Interface entre el Hardware y los Programas.................... ........... ....... 197 XI 7.13.1 Ejemplo............................................. .............. ....................... 197 7. 13. 2 Registros del CPU.......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 7.13.3 Instrucciones y Operandos........................ ........................ ...... 200 7. 13. 4 Control y Estados de Registros..................................... .... .... .. 202 7.13.5 Jump y Branches.............................................................. ... ... 203 7.13.6 Subrrutinas........................................... .. . . . . . . . . ... . ... . .. . .. . . . . . . . . . .. 204 7.13.7 La Pila (stack)............................................... ............... .... .... .. 206 7.13.8 Como se pasan los argumentos...... ........................... ............. 207 7.14 Control de Tiempo Real.... ... .... .... ............... .... .... ....... ............ .... ........ 209 7.14.1 Polling................ ....... ........... .... .... .......................................... . 210 7. 14. 2 Interrupciones....................... .............................. ........ ........... . 21 1 7. 14. 3 Captura de Entrada........................................ ........ ........... ...... 214 7. 14 .4 Interrupciones por Programa o Traps.................................... .. 215 7.14.5 Butfers de E/S........................................................ ....... .... .... . 216 7. 15 Como se carga un Programa.............................................................. 217 7.15. l El Programa Ensamblador...................... ... .... .... .... ................. 217 7.15.2 Cargador Bootstrap.................................. .. .................. .......... 219 7. 16 Alternativas...... ....... .... ...................... .......................... ............... ........ ... 220 Capítulo VIII Conclusión 222 Anexo A Elementos requeridos para los prototipos...................... ............... .... ....... .. 224 Anexo B Software para manipular el robot 11........................................................... 227 Bibliografía.... ....... ................................................................................................... 236 xii INDICE DE TABLAS Tabla 2.1 Cronología de la Inteligencia Artificial... ......................................... .............. . xiii página 10 INDICE DE FIGURAS Figura 1.1 Robot Experimental de Georgia Tech ...................................... . 2.1 El cerebro humano ............................................................... .. . 2.2 Un robot jugando 2.3 Gráfica de espacio de estados para el problema 1.. ....... .. ......... .. 2.4 Gráfica de espacio de estados para el problema 2 ..................... . 3. 1 El robot ..................... ............................................. ... .... ....... .... . 3 .2 Robot estático ........... ........... ..................................................... . 3.3 Brazo de un robo ....................................................................... . 3 .4 Robot estático sobre una plataforma móvil .............................. .. 3. 5 Robot móvil con ruedas .... .... ............................................ ....... . 3 .6 Robot móvil con bandas ........ .. ...... .. .. .. ..... ... .. ..................... .... . 3. 7 Issac Asimov ..... ....... .... .... ... .... .... ....... ....... .... .......................... . 3.8 El Sojoumer .......................................................................... . 3. 9 Robot de exploración ................ ............................................ . 3. 1 O Robot submarino ............. .... ... .... .... . .. .... ........... ........ ....... .... . 3 . 1 1 Robot subterráneo ........................................ .............. ......... . 3 .12 Robot militar ............................................... ......................... . 3. 13 Robot móvil con patas ................................................. ....... . . 3.14 Telechir ................................ .................................... ............ . 3. 15 Construcción de un robot comercial... .................................. . 4.1 Diferentes tipos de sensores ............... .. ..... .. .. .. ..... .. ............... . 4.2 Sensor de presión para robots ................................ .. ... .. ... ... .... . XIV Página 7 10 29 31 37 38 39 40 40 40 44 46 48 49 50 52 56 59 61 65 70 4.3 Sensor de proximidad ........ ....... ..................................... ........ . 4.4 Sensor de temperatura .......... ........... ........... ............... ............ . 4.5 Sensores para pequeños robots ............................................... . 4.6 Sensor ultrasónico ............... .... ....... .... .... ... .... ........ ................. . 4. 7 Circuito de un fotoresistor FR. .... .... ........... .... ....... ........ ......... . 4.8 Conexión simple de un FR ................................. ................... .. . 4.9 Fotodiodos .................................................................... .... ..... . 4.10 Circuito amplificador para un sensor .... ................... .............. . 4.11 Sensor piroeléctrico ................................................... ........... . 4.12 Interface entre un sensor piroeléctrico y MC68HC11.. .. ........ . 4. 13 Sensor de inclinación ................................................. ........ ... . 4.14 Circuito amplificador LM386 ..................................... .... .... .. . 4.15 Sonar de Polaroid .......................................... ........... ............ . 4.16 Interface electrónica de un sensor sonar.. .. ... .... .... ............... .. . 4. 17 Microswitches ............................ ........... ....... ........................ . 4.18 Interface electrónica del switch con el MC68HC 11.. ............. . 4.19 Sensor de mercurio ................... ....... ....... ........... .... .... ........... . 4.20 Sensores que usa el Robot 11. ........................... .............. .... .... . 5.1 Robot fijo ............ ............ ....... ....... .... ..................................... . 5. 2 Robot móvil con 6 patas ............... ...................... ....... .... ........... . 5. 3 Vías actuales para robot móvil... ............................................... . 5.4 Vías para robot ....... ..................................... ....... .... .................. . 5. 5 Microrobot con 4 patas ....................................................... ..... . 73 75 76 77 80 80 80 83 88 88 88 89 90 90 91 91 92 93 95 95 95 95 96 5.6 Robot con ruedas ..... ... .... ............... .......... .......................... ...... . 5. 7 Track actuales para robot.. ................... .... ... ....... ........ ........ ... ... . 5. 8 Robot con ruedas en forma de esfera .......................... .............. . 5. 9 Robot con ruedas anchas ................................. ......................... . 5. 1 O Robot con 6 patas del MIT ........................... ............ .......... .... . 5. 11 Diferentes tipos de arreglos de llantas ..... .... .... ........................ . 5.12 Conducción de diferencial ....................... ............... ........ ... ...... . 5. 13 Robot tipo triciclo ....... ........... .................................. ............... . 5.14 Robot con cuerpo cuadrado ..... .... ... .... ........ ... ....... ........ .......... . 5.15 Robot con cuerpo cilíndrico .................... .............. .................. . 5. 16 Robot en forma de víbora ......................... ...................... ......... . 5. 17 Transmisión para ruedas en un robot. .......................... ........... . . 5.18 Robot semiensamblado ............................................................ . 5. 19 Robot móvíl que tiene su locomoción con patas .................... .. . 5 .20 Robot hecho con legos ...................................... ....................... . 5. 21 Robot hecho con legos y celdas solares ..... ............... ........... ..... . 5. 22 Robot hormiga .......................................................... ............... . 5. 23 Robot móvil en construcción ................................ ................... . 5.24 Robot con chasis de acrílico ................................. .................. .. . 5.25 Robot con chasis metálico ..................................... ....... .... ... ...... . 5.26 Motor típico de e.e ....................................... .... .... ..................... . 5.27 Estator de un motor de e.e ............................... ................... ....... . 5.28 Funcionamiento de un motor de paso ......................................... . 96 97 97 97 98 98 99 100 100 101 101 102 103 104 104 105 106 106 107 108 109 109 111 5.29 Engranes del motor ............................ .... ....... ............................. . 5.30 Motores de e.e. para robots ........................................................ . 5. 3 1 Servo motores ...................................................... ............... .... ... . 5.32 Servo motor ............................. .... ........... .... ............................... . 5.33 Motor de 8 mm. De diámetro piezoeléctrico ultrasónico ............ . 5.34 Engranes de espuela ...... ... ........................... .... ............................ . 5.35 Una vista de el Robot montado ya el motor.. .... ....... .... ........... .... . 5.36 Motores de paso usados en robótica .... .... ....... .... ............... .... ..... . 5.37 Manejadores de motores ........ ... .... .... ....... .... .... ............... ....... .... .. . 5. 3 8 Switches en un puente H. ....... . .. ...................... ........ ................... . 5.39 Modulación por ancho de pulso ....... .... ....... ... .... .... .... .... ....... .... ... . 6.1 Pilas alcalinas .......................... ... .... .... ....... .... .... ....... .... ... .... ........... . 6.2 Pilas secas ............... ....... .... ... ............................. ........ .... .... ... ....... .. . 6.3 Pequeñas baterías secas .................................................................. . 6.4 El sol ......... .............. ........... ............... ... .... .... ....... .......................... . 6.5 Los rayos solares ....... .................................................................... . 6.6 Colectores solares planos .............................................. .... .... ... .... .. . 6.7 Colector plano ........................................................ ........... .... ........ . 6. 8 Celdas solares ................................................................................ . 6.9 Colectores heliovoltaícos ........................... ....... ........... .................. . 6. 1 O El Silicio la base para las celdas solares ....................................... . 6. 11 Celdas solares ................. .... .... ..................................................... . 6.12 Un pequeño móvil. ...... ....... .... .... ............................................... ... . 11 1 112 113 113 114 115 118 119 120 123 124 138 143 145 149 150 153 154 154 155 156 156 157 6.13 Carro solar moderno ................................................ .................... . 6.14 La energía solar usada en una casa .......... .. ... ................................ . 7. 1 El motor y las llantas montadas en el robot ..................... ... .... .... ... . 7. 2 Ensamble del soporte en el robot ...... .... ....................... ............... . .. 7.3 Conectando la defensa en el robot ..... .... ............... ........... .... ....... .. . 7.4 Conectores para motores en robots .................................... ........... . . 7.5 Montaje de las baterias en el robot .................... ............................. . 7.6 Circuito del cerebro del robot ...................... ................................. . 7. 7 Tarjeta de Radio Shack ........ ............... ... .. ..................... ........ ........ . . 7.8 La tarjeta ya terminada ........................ .... .................. ........ ... .......... . 7.9 Voltaje a través de la red RD ........................... ............................... . 7. 1 O Un transistor se modela como un switch .................................... . 7. 11 Cantidad de corriente que fluye a través de la bobina ................... . . 7.12 Vista superior de un microprocesador ............. .................. ............ . 7.13 Esquema de hardware del microprocesador ....... .... ....... ............... . 7.14 Diagrama del MC68Cl 1.. ............... ................................. ............. .. 7. 15 Representación de la memoria .............. .... ....... ............... ................ . 7.16 Mapa de memoria de la pila ............................. ....... .... .... ........... ..... . 7.17 Puerto del MC68C 11.. ........ ....... .... .............................. ................. .. 7.18 Contador del programa (PC) ........ .... ....... ....................................... . 7. 19 Registros internos del MC68C 11 .................................................... . 7.20 Direcciones de memoria de los registros ......................................... . 7.21 La pila al agregarle un valor .................................................... .... .. .. .. 158 160 166 167 167 168 168 169 171 172 175 176 178 186 188 192 193 195 197 203 205 207 212 7.22 Secuencia de pasos de la pila............................ .. ............................... 212 7. 23 C_omo pasan los datos la a la subrutina vía la pila................................ 214 7.24 El tiempo de vuelo del eco de un sonar........................... .................. 216 7.25 Como se guardan y recuperan los estados el micro............................... . 220 7.26 El buffer............................................................................................ 222 x.ix Capítulo I Introducción A Jo largo de la historia los seres humanos han tratado de construir máquinas que les ayuden a realizar los trabajos más pesados o peligrosos, como son: La palanca, la rueda, el arco, a flecha. la pólvora, la máquina de vapor y la computadora. En cada uno de estos inventos aumentó la influencia de humanidad sobre su entorno. En este siglo aparece el microprocesador y con este aumenta la posibilidad de desarrollar programas que implementan las acciones del cerebro humano. La amplificación de la mente humana y de los músculos tiene comoefecto secundario la amplificación de su naturaleza interna. Es decir, que estos aparatos aumentan el poder para hacer bien y para también hacer el mal. En la actualidad, la humanidad se enfrenta al hecho de la realización de la amplificación más inteligente que jamás ha construido, el robot. Un robot es una máquina cuenta que cuenta conocimiento. Existe cierto sentimiento en la mayoría de las personas de que una máquina hecha a nuestra imagen y semejanza refleja nuestros vicios más que nuestras virtudes, y éste ha sido un tema recurrente en la reuniones de los investigadores en esta área. Sin embargo, no tiene porque ser así y se deben de tomar las aplicaciones benéficas de los robots para ayuda de la humanidad, y no las destructoras. Figura 1.1 Robot diseñado en Georgia Tech. Cuanto mayor sea la gente que comprenda a los robots, mayor será la oportunidad de que se mantenga el balance, ya que la ciencia más peligrosa es aquella que está restringida al dominio de los expertos. Afortunadamente la robótica es una disciplina que se puede comprender de una manera rápida por cualquier persona dispuesta a lograrlo, cualquier persona con estudios basados en las matemáticas y fisica puede construir un robot. En la actualidad la robótica ha tenido un gran desarrollo y se han construido con gran eficiencia un sin número de robots que están siendo utilizados en las áreas de agricultura, medicina, industria manufacturera, en el espacio, en la industria petrolera, en el área nuclear etc. actualmente en los países altamente desarrollados los alumnos en las carreras de ciencias computacionales construyen robots para uso comercial. Por tal motivo, se pretende que en este país se haga lo mismo para no depender de estas potencia. Y por lo tanto, se requiere tener información de como hacerlo. Los robot reales a diferencia de los de ficción han existido desde 1950 aproximadamente y sin embargo no fúe hasta mediados de la década de los 80's cuando tuvo mayor demanda debido a la aplicación de las nuevas tecnologías en los procesos de producción, siendo ésta un reto para las empresas en el mundo competitivo actual. La intensificación en Robótica surge de la necesidad de la industria de incorporar Ingenieros computacionales como 2 especialistas en los procesos automáticos de producción. El propósito global de la intensificación es la de introducir conceptos amplios y generales relacionados con la estructura, organización y funcionamiento de los sistemas automáticos de producción, con especial hincapié a los diferentes elementos como los sistemas de diseño y fabricación asistida por computadora, sistemas robotizados, sistemas de transporte, sistemas sensoriales y visión artificial. En los años noventa se intensifico aún más la aplicación de los robots y esto se debe a la aparición en el mercado del robot personal. Para mucha gente, el término robot personal es una contradicción, y muy pocos han identificado el significado real de la idea, la cual se comprende mejor comparándola con el microprocesador personal. Esto es que en la actualidad es más fácil construir un robot con los nuevos y cada vez más pequeños, componentes como son: • Sensores • Motores • Microprocesadores • Memorias RAM • Memorias ROM • Cuerpos para robots (LEGOS) Estos componentes anteriormente no estaban disponibles ni por su tamaño ni por su precio. Los grandes robots que existen actualmente en el comercio y sus distintas aplicaciones son: en la pintura con aspersión, soldadura, almacenaje de piezas, centinelas militares, misiles, espaciales, submarinos etc. En la actualidad existen una serie de compañías que fabrican pequeños robots para uso muy variado como son: los centinelas para cuidar la casa contra robo, destapadores de botellas, buscadores de objetos, pintores de paredes de una casa, cortadores de césped, 3 microrobots como son los arácnidos para localizar personas sepultadas en escombros, detectores de minas, detectores de bombas etc. También existen una gran variedad de robot que se encuentran disponibles comercialmente para uso educacional. Arquitectura de Robot Autónomos (AuRA) En la Arquitectura de Robot Autónomo (AuRA -Autonomous Robot Architecture) desarrollada en el Laboratorio de Robots Móviles de la Escuela de Computación en Georgia Tech, utiliza una arquitectura híbrida reactiva y planeada, donde esquemas motrices proveen el componente reactivo de navegación. En lugar de planear de antemano la ruta exacta a través del mundo y luego tratar de que el robot la siga, los esquemas motrices (comportamientos) son seleccionados de manera que permitan al robot interactuar de forma exitosa con eventos inesperados mientras trata de satisfacer sus metas de más alto nivel. Las salidas de los esquemas motrices son en cierta forma análogos a campos potenciales. Múltiples esquemas activos están usualmente presentes, cada uno produciendo un vector de velocidad dirigiendo al robot en respuesta a su estímulo perceptual. El robot necesita computar un sólo vector en su ubicación actual. Cada uno de los esquemas individuales otorga su contribución al movimiento del robot en una ubicación centralizada. Los vectores resultantes son sumados y normalizados para ajustarse a los límites del vehículo robótico, resultando una sola velocidad combinada para el robot. Estos vectores son actualizados continuamente según llega nueva información perceptual, con el resultado siendo una respuesta inmediata a cualquiera de los datos sensoriales. Las ventajas de esta forma de navegación son muchas. Incluyen computación rápida y la habilidad de poderse mapear a arquitecturas paralelas haciendo posible lograr respuestas en tiempo real. La construcción modular permite facilidad de integración de nuevos 4 comportamientos motrices simplificando el mantenimiento del sistema y la facilidad de transferencia a nuevos dominios de problema. Esquemas motrices reflejan la incertidumbre en la percepción, cuando tal medida existe, y también reaccionan inmediatamente a datos sensoriales del ambiente. Todos estos factores contribuyen a las necesidades de sistemas navegacionales que asistirán con éxito a las metas intencionales del robot. Mission Lab que está diseñado para apoyar tal sistema en un ambiente simulado. El objetivo general de este trabajo es elaborar un manual para que el alumno conozca y sea capaz de abordar, desde el punto de vista de un ingeniero en computación, todo el proceso de diseño y construcción de un pequeño robot móvil programable que contenga su parte sensorial para realizar un trabajo determinado con fines benéficos. Organización de este trabaio El capítulo I la Introducción. En el capítulo II se describen una breve historia de la inteligencia artificial, las bases matemáticas en las que se apoya esta ciencia, como es que se representa el conocimiento para resolver un problema y poderlo implementar en un lenguaje computacional para ser resuelto con la ayuda de una computadora. En el capítulo 111 se describe una breve historia de los robot, como es que han evolucionado a través del tiempo, sus ventajas con respecto a las máquinas convencionales y los diferentes tipos de robot que existen actualmente así como su uso. En el capítulo IV se describen los diferentes tipos de sensores, su uso y funcionamiento, principalmente los que se usan en los robots, su interface con el microprocesador para lograr simular parte sensitiva de esta máquina. 5 El capítulo V se presentan los diferentes tipos de locomoción que existen hasta la fecha para lograr que el robot se pueda desplazar en un entorno determinado, así como la forma de impulsarlos por medio de los motores de paso y como se realiza la interface con el microprocesador. En el capítulo VI se describen los principios de lo que es la energía, ya que ésta es necesaria para lograr que el robot se mueva, sedescriben los dos tipos de energía utilizada para lograr la potencia de los prototipos descritos en este trabajo como es la energía eléctrica. En el capítulo VII se describe como funciona el microcontrolador usado en el prototipo 11, y también se describe el software que sirve de interface entre la máquina y el microcontrolador. Capítulo VII las Conclusiones. Anexo A se listan todos los componentes fisicos requeridos para construir los prototipos descritos en este trabajo. Anexo B se describe el programa necesano que hace la interface entre el robot y el microprocesador del prototipo 11. 6 Capítulo II La Inteligencia Artificial En este capítulo se trata de explicar, de una manera muy breve, que es lo que considera como la inteligencia artificial, así como la historia a través de más de cuatro décadas de estudio, investigación y la relación que esta disciplina tiene con otras ciencias, los avances que en esta área se han tenido a través del tiempo, sus logros comerciales y como se representa el conocimiento para resolver un problema e implemetarlo en una computadora. Figura 2. I El cerebro Humano. 2.1 ¿Que es la inteligencia artificial ? La inteligencia artificial es la disciplina que estudia, diseña e implementa sistemas computacionales basados en los conceptos básicos de la inteligencia humana (razonamiento, aprendizaje, creación, y manipulación), con la invención de las computadoras en los años 50's los científicos estudiosos de esta área pudieron hacer que esta disciplina pasara de solo un marco teórico a un marco experimental. En los últimos años se ha tenido un gran incremento de aplicaciones de la inteligencia artificial en: la industria, medicina, finanzas, agricultura etc. Actualmente varias gerencias importantes, consultan a firmas que desarrollan sistemas basados en la inteligencia artificial, por tal 7 motivo la aplicación de la inteligencia artificial en sus diferentes ramas tiene un impacto significativo en muchas organizaciones tanto privadas como públicas en la forma como estas están siendo administradas. La inteligencia artificial es una de las disciplinas más nuevas, iniciada formalmente en 1950, cuando se registro el término, aunque ya para entonces se había estado trabajando en está área cinco años atrás, junto con lo que es la genética moderna. La inteligencia artificial ha resultado ser una disciplina más compleja de lo que sus iniciadores pensaron, ya que la mente humana es muy complicada. (Hunt E. 198./ The Robots Press N. Y.) 2.1.1 Diferentes definiciones de inteligencia A continuación se presentan varias definiciones de lo que es la inteligencia artificial, de acuerdo a ocho estudiosos de esta disciplina. Estas definiciones varían en tomo a dos dimensiones principales la definición uno, dos, tres y cuatro se refieren en base a procesos mentales y al razonamiento, en tanto que la definición cinco seis siete y ocho aluden a la conducta. Por otra parte las definiciones uno, dos, cinco y seis miden la condición deseable en función de eficiencia humana, mientras que las definiciones tres, cuatro, siete y ocho lo hacen en conformidad al concepto ideal, denominado racionalidad. Se considera que un sistema es racional si hace lo correcto. 1.- Inteligencia Artificial (1.A.) es la interesante tarea de lograr que las computadoras piensen máquinas con mente, en su amplio sentido literal. (Hauge/and 1985) 2.- Inteligencia Artificial es la automatización de actividades que se vinculan con procesos de pensamientos humanos, actividades tales como toma de decisiones, resolución de problemas, aprendizaje. (Bel/man 1978) 8 3. - Inteligencia Artificial es el estudio de las facultades mentales mediante el uso de modelos computacionales. (Charmiak y McDermott 1985) 4.- Inteligencia Artificial es el estudio de los cálculos que permiten percibir, razonar y actuar. ( Winston 1992) 5. - Inteligencia Artificial es el arte de crear máquinas con capacidad de realizar funciones que realizadas por personas requieren de la inteligencia. (Kurzweil 1990) 6.- Inteligencia Artificial es el estudio de cómo lograr que las computadoras resuelvan los problemas que por el momento los hombres lo hacen mejor. (Rich y Knight 1991) 7.- Inteligencia Artificial es un campo de estudio que se enfoca a la explicación y emulación de la conducta inteligente es función de los procesos computacionales. (Schalk~ff 1990) 8.- Inteligencia Artificial es la rama de la ciencia de la computación que se ocupa de la automatización de la conducta inteligente. (Luger y Stubble.field 1993) De acuerdo con las anteriores definiciones de la inteligencia artificial existen cuatro posibles objetivos por alcanzar que son: Sistemas que actúan como humanos, Sistemas que piensan como humanos, Sistemas que piensan racionalmente y sistemas que actúan racionalmente. 2.1.2 Fundamentos de la inteligencia artificial La inteligencia artificial es, una disciplina muy reciente que pertenece al área de las Ciencias Computacionales, pero es heredera de diversa ideas, puntos de vista y técnicas de otras disciplinas. Durante más de 2000 años en la filosofia, han surgido diversas teorías de lo que es el razonamiento y el aprendizaje, basándose fundamentalmente en que la mente humana se reduce solo al funcionamiento de un 9 sistema físico. Durante mas de 400 años del estudio de las matemáticas, han surgido temías formales relacionadas con la lógica, la probabilidad, toma de decisiones, y la computación. La psicología ofrece numerosas herramientas que permiten la investigación de la mente humana, así como, un lenguaje científico para expresar las teorías que se van obteniendo. La lingüística ofrece teorías sobre la estructura y el significado del lenguaje. Por último de las ciencias computacionales es donde la inteligencia artificial toma las herramientas necesarias que le permiten implementar y comprobar todo su marco teórico. (Daniel Creivier 1993, Artificial Intelligence) Figura 2.2 Robot jugando. 2.2 Breve historia de la inteligencia artificial A continuación se muestra una tabla en la que se describe la evolución de la Inteligencia Artificial a través del tiempo, desde el inicio en la década de los 50's hasta el presente: Décadas Etiquetas Principal interés. En los 50's El oscurantismo Redes neuronales. En los 60's La edad del Lógica. razonamiento automático. En los 70's Movimiento Ingenieria del conocimiento. Romántico En los 80's La Ilustración Aprendizaje máquina. En los 90's El despertar Redes neuronales, lógica difusa y gótico algoritmos genéticos. Tabla 2.1 Cronología de la Inteligencia Artificial. JO 2.2.1 Cronología de los avances en la inteligencia artificial El primer trabajo reconocido en Inteligencia Artificial fue realizado por Warren McCulloch y Walter Pitts (1943). Después viene Russell y Whitehead con su análisis fonnal de la lógica computacional y la teoría computacional de Turing, donde propusieron un modelo constituido por neuronas artificiales. Donald Hebb (1949) demostró una sencilla regla de actualización para modificar intensidades de las conexiones entre neurona, de tal manera que ocurriera el aprendizaje. Claude Shannon ( 1950) y Alan Turing (1953) escribieron programas de juegos de ajedrez para computadoras convencionales. Ma-rvin Minsky y Dean Edmonds estudiantes de maestría del departamento de matemáticas de Princeton, construyeron la primera computadora de red neuronal en 1951. Minsky hizo la demostración de teoremas que constituyeron a desechar buena parte de las investigaciones de redes neuronasles en la década de los 70's. John McCarthy organizó un taller en Dartmounth de LA. donde dividió en grupo a los investigadores en las siguientes áreas: Teoría de los Autómatas, redes neuronales y estudio de la inteligencia. Rochester y sus colegas produjeron los primeros programas de LA. Herbert Gelernter( 1959) construyó el demostrador de teoremas de geometría (DTG). Demostraba los teoremas utilizando axiomas explícitamente representados. John McCarthy en 1958 hizo tres contribuciones cruciales. En el laboratorio de I.A. del MIT, Definió el lenguaje de alto nivel LISP que se convirtió en el lenguaje de programación para LA. en 1963 se va a Stanford e inicia el laboratorio de l. A. investiga como usar la lógica en la construcción de una nueva versión del EC, usando el descubrimiento de J.A Robinson el método de resolución que es un algoritmo completo para la demostración de teoremas para lógica de primer orden. 11 En Stanf ord se ponía énfasis en los métodos de propósito general para el razonamiento lógico, entre las aplicaciones a la lógica figuran los sistemas de planificación y respuesta de preguntas de Cordell Green (1969), así como el proyecto de robótica de Shakey, que es el primero que demuestra la total integración del razonamiento lógico y las actividades fisicas. Minsky supervisa trabajos de estudiantes, quienes eligieron problemas limitados cuya solución parecía requerir de la inteligencia. Estos dominios limitados se les conoce como micromundos. El programa de SAINT de James Slage ( 1963) fue capaz de resolver problemas de integración de formas cerradas comunes en los cursos de cálculo de primer año de licenciatura. El programa ANLOGY de Tom Evans (1968) resolvía problemas de analogía geométrica que se aplicaban en las pruebas de medición de la inteligencia. (Stuart Russell 1996, Inteligencia artificial P.H) En 1969 el programa DENDRAL diseñado en Stanford, donde Ed Feigenbaum, Bruce Buchanan y Joshua Lenderberg (ganador del premio novel) colaboraron en la solución del problema de inferir una estructura molecular a partir de información proporcionada por un espectómetro de masas. El programa se alimentaba con una fórmula elemental de la molécula, el espectro de masas informaba sobre las masas de diversos fragmentos de la molécula que se producían después de ser bombardeadas con un haz de electrones. La trascendencia del DENDRAL fue la de ser el primer sistema de conocimiento intensivo que logra funcionar, su conocimiento está basado importantes cantidades de reglas para propósitos especiales. En Stanford Feigenbaum y otros, iniciaron el proyecto de programación heurística , dedicado a determinar el grado con que la nueva metodología de los SISTEMAS EXPERTOS podían aplicarse a otras áreas de la actividad humana. El programa MYCIN para diagnóstico de infecciones sanguíneas, diseñado por Feigenbaum, 12 Buchanan y el Dr Edward Shortliffe con un respaldo de 450 reglas, MYCIN era capaz de hacer diagnósticos tan buenos como los de un experto y, desde luego, mejores que los de un médico recién graduado. En 1977 Abe/so, en 1981 Schank y Riesheck y Dyer en 1983 diseñaron una serie de programas cuyo objetivo era comprensión del lenguaje natural. En 1981 los japoneses anunciaron el proyecto de la quinta generación un plan de 1 O años para construir computadoras inteligentes en los que se corrieran el lenguaje PROLOG, de manera idéntica como las computadoras comunes y corrientes corren en código máquina, la idea era de que con la capacidad para efectuar millones de inferencias por segundo, la computadora podría aprovechar las inmensas reservas de reglas. Entre las metas se tenía contemplado lograr la comprensión total del lenguaje natural. En 1982 se hace el primer Sistema Experto comercial R 1. El programa se utilizaba en la elaboración de pedidos de nuevos sistemas de computación para la Digital Equipment Corporation. En 1986 este sistema representaba para está compañía ahorros de más de 40 millones de dólares. En 1986 se retoma el estudio de redes neuronales, fisicos como Hopfield así como psicólogos como David Rumelhart y Ge(?ff Hinton estudiaban modelos de la memoria basado en redes neuronales. En 1988 el grupo de l.A. de DEC había distribuido ya 40 sistemas expertos y esperaba tener más, Du Pont utiliza par estas fechas 100 sistemas expertos y estaba en etapa de diseño de otros 500. En 1988 aparece Prohahilistic Reasoning and Inteligent System, donde Judea Pearl, da la bienvenida al uso de la probabilidad y la teoría de decisiones en l.A. En los años 90's se logra un gran avance en esta área principalmente en robótica de tal manera que existen en la actualidad robots que se utilizan en el campo de la manufactura, la medicina, ciencia espacial, las artes, la geología, la agricultura, la aviación y la milicia. Uno de tantos 13 sistemas de robótica actualmente utilizados por los conductores en los Estados Unidos de América, es un conductor que obtiene información de una cámara de video, de un sonar y de un telémetro de láser instalado en el automóvil, el sistema combina estas entradas con la experiencia obtenida durante el viajes de entrenamiento, y eficientemente determina cómo conducir el vehículo. En Sistemas expertos aparece MARVEL, es un programa en tiempo real que monitorea un copioso volumen de datos transmitido desde una nave espacial, manejando tareas de rutina y alertando a los analistas, sobre problemas serios que pudiera tener la nave. PEGASUS es un programa para comprensión del lenguaje, se utiliza en las aerolíneas para reservar y planear un determinado viaje. En esta década en las diferentes universidades tanto en latino América como Estados Unidos de Norteamérica, Japón, Europa, Asia y Afiica implementan en sus programas académicos de Ingenieria computacional e informática, la materias de inteligencia artificial I y 11, así como, han formado grupos de investigación en inteligencia artificial y cuentan con laboratorios muy completos. Una mejor comprensión de los problemas y de su complejidad, aunada a una mayor capacidad del manejo matemático, así como, un sistema de computo mas sofisticado ha favorecido a la investigación en está área, existe un gran futuro para el desarrollo de sistemas inteligentes, que sirvan al hombre en su tarea para tener mejores niveles de vida y, también se espera que esta nueva tecnología basada en la I.A. tenga un uso pacífico para la humanidad. (Stuart Russell 1996, Inteligencia artificial P.H) 2.3 Clasificación de la inteligencia artificial La Inteligencia Artificial no es en sí misma un campo comercial, es una ciencia y una tecnología. Es una colección de conceptos y de las ideas que son apropiados para la 14 investigación pero que no pueden ser comercializada, sus áreas principales son : 1. Sistemas Expertos. 2. Procesamiento de lenguaje natural. 3. Reconocimiento de voz. 4. Robótica. 5. Sistemas sensoriales. 6. Visión por computadora. 7. Instrucción ayudada por computadora. 2.3.1 Sistemas expertos (S.E) Los sistemas expertos resuelven un tipos específicos de problemas, y son de gran interés para las organizaciones debido a su potencial de diagnóstico basado en el conocimiento de uno ó mas expertos humanos. Estos sistemas son programas computacionales que intentan imitar los procesos de razonamiento y el conocimiento para mejorar la productividad y aumentar la fuerza de trabajo en ciertas áreas en donde los expertos humanos se están volviendo dificiles de encontrar y retener. Las aplicaciones actuales están restringidas a estrechas áreas del conocimiento. Los expertos humanos tienden a especializarse en áreas relativamente estrechas. (Horvitz, E. 1988 System Expert GC) 2.3.2 Procesamiento de lenguaje natural La tecnología del lenguaje natural da a los usuanos de computadoras, el poder comunicarse con sus máquinas en su lenguaje nativo. Esta tecnología permite, un interface del tipo conversacional, en contraste con la sintaxis, comandos y palabras reservadas de los lenguajes computacionales con los que nos comunicamos con las computadoras en la actualidad. El campo del lenguaje natural se divide en dos subcampos: * La comprensión del lenguajenatural, investiga los métodos que facilitarían a las 15 computadoras comprender las instrucciones proporcionadas de un lenguaje, de manera que puedan interpretar las instrucciones fácilmente. * La generación del lenguaje natural que se dedica a diseñar los procesos necesarios para que las computadoras puedan "hablar" en un lenguaje entendible al humano. (Gilmore P.C. 1981 Essential /.A. Kaujmann) 2.3.3 Reconocimiento de voz El reconocimiento de voz es la capacidad que puede tener una computadora para interpretar los sonidos y de esta manera, comprender de una manera aceptable el lenguaje hablado. El reconocimiento de voz es un proceso que permite comunicamos con una computadora solamente hablando con ella. El reconocimiento de voz abarca dos etapas: "' El reconocimiento de los sonidos por parte de la computadora y la interpretación de los mismos, de manera que tengan un significado en el lenguaje, de la misma manera en que los humanos escuchamos y posteriormente comprendemos el lenguaje hablado, ya que es posible que la computadora pueda reconocer todos los sonidos, pero es necesario que conozcan su significado para poder comprenderlos. • El procesamiento del lenguaje natural intenta permitir a las computadoras interpretar sentencias normales expresadas en el lenguaje natural humano, como el español o el inglés. El proceso de comprensión del lenguaje, en contraste, intenta traducir la voz humana a palabras individuales y sentencias entendibles por la computadora. Una compresión del lenguaje y del procesamiento del lenguaje natural es requerido para lograr que de la computadora puedan conversar de una manera normal con los humanos. 16 2.3.4 Robótica Los sistemas sensoriales, como sistemas de visión, sistemas táctiles y procesamiento de señales, cuando se combinan con la Inteligencia Artificial definen una amplia variedad de categorías y de sistemas referidos generalmente como robótica. Un robot es un aparato electromecánico que puede ser programado para desempeñar labores manuales. El Instituto de Robótica de Norteamérica formalmente define a un robot como "un manipulador programable multifuncional diseñado para mover materiales, partes, herramientas o aparatos especializados, mediante la utilización de movimientos programados con variables para el desempeño de una variedad de labores" No todas las áreas de la robótica son considerados como parte de la Inteligencia Artificial. Un robot que solo ejecuta las acciones con las que ha sido programado es considerado como un robot ''tonto", con una inteligencia no mayor a la de una lavadora. Un robot "inteligente" incluye algún tipo de aparato sensorial, como una cámara, que recolecta información acerca de la operación del robot y su medio ambiente. La parte inteligente del robot le permite responder y adaptarse a los cambios en su medio ambiente, en vez de seguir instrucciones secuencialmente. ( Gilmore P.C. 1981 Essential l. A. Kaufmann) Los robots combinan sistemas sensoriales con movimientos mecánicos para producir máquinas con una amplia inteligencia y habilidades. Las investigaciones y las áreas de aplicación sobre los sistemas sensoriales logran que las máquinas que sienten, se mueven, y manipulan su medio ambiente. La diferencia entre la máquina automática y el robot inteligente es que el robot capta su medio ambiente y modifica su comportamiento como resultado de la información obtenida. 17 2.3.5 Visión por computadora El reconocimiento visual ha sido definido como la adición de alguna forma de inteligencia computarizada y toma decisiones para digitalizar información visual recibida por un sensor. La información recibida es utilizada para ejecutar o controlar operaciones como los movimientos que realiza el robot. El objetivo básico de la visión por computadora es interpretar imágenes en vez de generarlas. Lo que se quiere decir con "interpretación de imágenes" difiere dependiendo de su aplicación. Por ejemplo, la interpretación de imágenes tomadas por satélite, en las que seria suficiente con solo interpretar áreas en especial. Por otro lado, sistemas de visión en robótica se diseñan para identificar con precisión componentes de ensamble para corregir un problema. (Gibson J 1995 The Perception Visual Houghton Mtffii, Boston Massachusetts) La investigación en visión por computadora aumenta las habilidades de los robots para manipular objetos en múltiples orientaciones, como formar los objetos en una mesa o acomodar partes de un ensamblado que están moviéndose a través de la línea de producción. Sistemas de reconocimiento óptico, por ejemplo, pueden interpretar datos escritos en una hoja e introducirlos a la máquina. 2.3.6 Instrucción ayudada por computadora La instrucción ayudada por computadora se refiere a máquinas que pueden enseñarle a humanos. En cierta manera, esta máquina pudiera ser vista como un sistema experto. Sin embargo el principal objetivo de un sistema experto es dar consejo, mientras que le propósito de la instrucción ayudada por computadora (IAPC) es de instruir. La instrucción ayudada por computadora (IAPC) que ha sido usada por muchos años, con sistemas gráficos convencionales. Ahora con los procesos de I.A. están siendo aplicados 18 para desarrollar sistemas de instrucción inteligentes en un intento por crear a maestros "computarizados". Aplicaciones de IAPC no están limitadas a las escuelas, de hecho, se ha encontrado un rico campo de aplicación en el área militar y corporativa. Los sistemas de la IAPC están siendo usada en varias labores como la resolución de problemas, simulación, descubrimiento, aprendizaje, juegos y pruebas. También están siendo utilizados para ayudar a personas discapacitadas. 2.3. 7 Otras aplicaciones de inteligencia artificial En términos sencillos, programación es el proceso mediante el cual se le dice a la computadora exactamente que es lo que se desea que haga. Desarrollar un programa de computadora frecuentemente requiere de una gran cantidad de tiempo. Ya que un programa o un sistema (un grupo de programas interelacionados) debe ser diseñado, escrito, probado, depurado y evaluado todo como parte del desarrollo de información. Programación automática. Donde la meta es crear programas especiales que actúen como herramientas "inteligentes" para asistir a los programadores y expedir cada frase del proceso de programación. La meta máxima de la programación automática es un sistema computacional que pueda desarrollar programas por si mismo, en respuesta a las especificaciones dadas por un programador experto. Las estaciones de trabajo inteligentes incrementan la productividad de ingenieros y de programadores de computadoras, ya que los provee con un ambiente computarizado que les ayuda a realizar su trabajo rápidamente y con calidad. Traducción de lenguajes. Programas de computadoras que son capaces de traducir palabras y sentencias simples de un lenguaje a otro. (lo hacen en contextos restringidos) 19 2.4 La inteligencia artificial contra la inteligencia natural La finalidad de la inteligencia artificial es crear programas computacionales que exhiban un comportamiento similar al de un humano cuando se enfrentan a un problema, actualmente se diseñan programas que aprenden basados en redes neuronales y algoritmos genéticos. La I.A. tiene importantes ventajas comerciales, tales como son: • Es más permanente. • Ofrece facilidad para duplicarse y diseminarse. • Puede ser menos cara que la inteligencia natural. • Siendo una tecnología computacional, es consistente y completa. • Puede ser documentada. La inteligencia natural (humana) es la capacidad para percibir hechos, proposiciones y sus relaciones y razonar sobre estos, esencialmente en este contexto significa pensar, y este es un grave problema, pues nadie sabe como piensa un ser humano, pero todos los seres humanos sabemos decirque pensamos. Una de las características de la inteligencia natural es el aprendizaje y este se refiere al cambio de conducta de un ser humano frente a una situación dada, ocasionada por una experiencia en dicha situación. ( esto es que se adquiere conocimiento) Hay dos mecanismos concretos que hacen posible que el aprendizaje ocurra y son: Aprendizaje de memoria y aprendizaje cognoscitivo. El primero se aprende a través de la memorización ó repetición, no solo se restringe a hechos sino también a tareas. El segundo es la forma más importante que un ser humano aprende y es dificil de implementar en una computadora mediante un programa, en esta forma se usa la razón para: Analizar, organizar y correlacionar. 20 La inteligencia natural tiene las siguientes ventajas con respecto a la I.A: • Es creativa. • Capacita a los humanos para beneficiarse y usar la experiencia sensitiva directamente, cuando los sistemas de I.A. deben trabajar con entradas simbólicas. El razonamiento humano es capaz de hacer uso en todo momento del contexto de su experiencia y sobrellevar los problemas individuales, en contraste con los sistemas de I.A. típicamente obtienen su poder con muy poco enfoque. (Gilmore P.C. 1981 Essential /. A. Km~fmann) 2.5 Diferencias entre software convencionales y software basado en I.A. En los s~ftwares convencionales se le dice a la computadora como debe de resolver el problema, la computadora recibe datos y un programa donde paso a paso se le especifica como los datos pueden ser usados para obtener una respuesta. El s~ftware basado en inteligencia artificial se basa en la representación y manipulación simbólica, en I.A. un símbolo es usado para representar objetos, procesos y sus relaciones. Los objetos pueden ser personas, cosas ideas, conceptos, eventos etc. El proceso basado en inteligencia artificial se basa mas en la calidad que la cantidad. Todo lo que la computadora realiza en aplicaciones de I.A. es traducir símbolos de entrada para proporcionar símbolos de salida acordes a reglas dadas en un programa. La computadora no entiende el conocimiento que tiene almacenado por lo tanto no piensa. El proceso simbólico es una característica de la I.A. en el ramo de la ciencia computacional tratando con métodos simbólicos y no algoritmos en la solución de los problemas. La I.A. trabaja con métodos de patrón de relaciones que prueban describir objetos, eventos ó procesos en términos de facetas cualitativas y relaciones lógicas y computacionales. La I.A. envuelve una prueba de máquina para exhibir capacidades del razonamiento; el 21 razonamiento consiste en deducir los hechos y reglas usando métodos heurísticos u otros métodos, por lo que la heurística es un elemento clave en la LA En el campo de los sistemas de información se acostumbra a distinguir entre dato, información y conocimiento, que se definen a continuación: Datos Se refiere a cadenas de caracteres o números que por si solos no tienen significado Información Son datos organizados de tal manera que es significativa para la per- sona que los recibe. Conocimiento Es una recepción clara y cierta de información organizada aplicable a la solución de un problema usando el razonamiento basado en esta información para resolver un problema determinado. Una colección de conocimiento relacionado a un problema, para ser usado en un sistema basado en la inteligencia artificial se le conoce como base de conocimiento. Actualmente la Inteligencia Artificial abarca una gran cantidad de subcampos, desde áreas de propósito general, como la percepción y del razonamiento lógico, hasta tareas muy específicas como el juego del ajedrez, la demostración de teoremas matemáticos, el diagnóstico de enfermedades, la poesía, las personas que trabajan en esta área tienen la opción de aplicar su metodología en cualquier área que tenga que ver con las tareas del intelecto humano, los científicos de otros campos han ido incursionando en esta disciplina pues les ha ayudado automatizar su trabajo intelectual. 2.6 Técnicas para resolver problemas con sistemas inteligentes En lo primero que se trabajó fue diseñar máquinas que jugaran juegos competitivos contra el hombre y que además estas le pudieran ganar, de esta manera parece que la máquina 22 piensa, porque resuelve el problema como lo hace un humano pensando. Decir que un programa es "inteligente" es muy subjetivo. Jugar al gato es objetivo pero hacer que la máquina pueda jugar gato con un humano y además le gane es subjetivo, existen métodos para enfocar un problema y resolverlo usando la inteligencia artificial como son: • Enfoque simbólico para la resolución del problema. • Enfoque no simbólico para la resolución del problema. En el mundo real se presenta un problema a resolver, entonces se debe hacer la abstracción para crear un modelo que permita hacer el tratamiento formal inteligente. Con este modelo normalmente en ciencias de la computación se recurre a un modelo matemático, porque este permite hacer la transferencia a una computadora y manejarlo como un sistema computacional, hay un isomorfismo entre el modelo matemático y el programa de computadora, para hablar de este modelo se requiere un lenguaje formal como son: El álgebra moderna, la lógica y la trigonometría. Todo este acervo matemático es el lenguaje formal. También se puede inventar un propio lenguaje formal que describa el modelo requerido para resolver el problema del mundo real. 2.6.1 Tratamiento técnico del problema Se tiene el problema ha resolver, por lo tanto se requiere hacer el modelo y tener un lenguaje formal para describir a éste modelo. Este a su vez se verifica de tal manera que el resultado corresponda a la realidad. Y a que se tiene el modelo verificado y el lenguaje formal, se pasa este a un lenguaje computacional. (lógico) 23 Se usan normalmente computadoras paralelas para el tratamiento de los programas que resuelven problemas usando la técnica de I.A. para que los procesos sean más rápidos y simulen mejor el procesamiento humano, porque nuestro cerebro funciona en paralelo. 2.6.2 Como construir el modelo Lo ideal es que cualquier problema que se trate con I.A. se haga a través de símbolos, esta transferencia mediante símbolos de un problema real a un modelo matemático se puede realizar con la lógica o las matemáticas, ya que esto se usa normalmente en las ciencias computacionales, un símbolo es algo que representa el mundo real, ejemplo: El concepto siete se representa matemáticamente con el símbolo 7, y siete cosas se representan con este símbolo, estos símbolos fisicos son esenciales para representar el conocimiento en nuestra mente y en una computadora. Para el manejo de símbolos hay reglas sintácticas para formar estructuras simbólicas y hay reglas de transformación que convierten estructuras simbólicas en otras. El cálculo proposicional y el de predicado son sistemas que tienen símbolos y reglas y son entidades ideales, lo que se tiene que hacer es utilizar esta herramienta que es la lógica matemática y aplicarla al mundo real. Se puede hacer la asociación de las proposiciones con planteamientos reales o se puede asignar a una letra un concepto por ejemplo: Esta nublado y lo igualamos al símbolo Q. Entonces el símbolo Q significa que el día está nublado, y si decimos que va a llover y esto lo igualamos a P podemos tener que: 24 si está nublado entonces va a llover. Q ---------~ p Estos símbolos nos representan algo del mundo real, entonces ya se puede hacer la asociación, y sirve para hacer cierto tipo de razonamiento. Algunos conceptos dados por Nt?l1ell nos dice que un sistema físico o de un símbolo es una máquina con los siguientes conceptos: • Una memoria que contiene estructuras de símbolos. • Un conjunto de operadores para manipular las estructuras de símbolos ( ejem. Para leer, para escribir,etc.). • Un control para la interpretación de las estructuras de símbolos corrientes. • Entradas y salidas. Estos conceptos han sido la base para el desarrollo de la Inteligencia Artificial, la hipótesis de Church (matemático especializado en lógica de principios de siglo) nos dice que si se tiene una máquina mas un software adecuado se puede hacer una descripción y resolución de un problema. Y que un sistema de símbolos físicos va a consistir de un conjunto de entidades llamados símbolos, los cuales son patrones físicos y son componentes de otro tipo de componentes llamados expresiones o estructuras, por lo que una estructura de símbolos se compone de cierto número de instancias, cadenas unidas de alguna manera física, que puede ser la concatenación de símbolos. Un sistema de símbolos es una máquina que produce estructuras que evolucionan. Entonces se debe tener una máquina y un software para procesar símbolos. El software puede ser un lenguaje como LISP o PROLOG, y con esto ya se puede resolver el problema, 25 usando como herramienta la computadora de una forma inteligente. Esto es, se hace a la máquina inteligente, la hipótesis de que si se tiene una máquina y un software que permite procesar símbolos es decir que se tiene una máquina inteligente es algo muy fuerte y, puede ser objetable y discutible y ha esta hipótesis se le conoce como la hipótesis de símbolos fisicos, y la modifican Newell y Simon donde dicen que un sistema fisicos de símbolos tiene un mecanismo necesario y suficiente para tener una acción inteligente. En resumen de lo expuesto anterior sobre las hipótesis, se trabaja con algo que sean símbolos letras griegas, letras arábigas etc. al formar el sistema de símbolos estos deben de corresponder de alguna manera con las ideas que se tienen del mundo real, además de este sistema de símbolos físicos, se debe tener una manera de unirlos, esto se hace con las operaciones como las transformaciones ya sea como copiar escribir etc. estas operaciones actúan sobre los símbolos y los transforman en otras cadenas, la hipótesis que se tiene es que cualquier conjunto de símbolos debe tener los medios necesarios y suficientes para mostrar comportamiento inteligente. Hay otros sistemas que no funcionan con símbolos, y que no tocan para nada la hipótesis anterior, y tratan de resolver los problemas de una manera inteligente y lo hacen usando técnicas como son: redes neuronales y los algoritmos genéticos que son ambos sistemas subsímbolicos. Esta idea de símbolos físicos conduce a pensar de manera discretisada, el sistema subsimbólico no funciona así, sus bases son continuas o analógicas tratan de simular el comportamiento de una neurona a través de variaciones de voltaje, lo hacen en una computadora digital pero la base es pensar analógicamente. 26 Dentro de las técnicas de inteligencia artificial para resolver problemas están básicamente tres: Control Conocimiento Abstracción Como se va buscar o controlar la búsqueda de las soluciones del problema. En estos sistemas se trabaja con conocimiento no con datos. Como representar el mundo real mediante modelos matemáticos, modelos formales que se describen con lenguajes formales. Los programas que se diseñan en inteligencia artificial aparentan la inteligencia basado en un sistema de símbolos fisicos, la idea de estos programas son para ayudar, pero la última decisión debe quedar en el ser humano ya que estos programas son artificiosos y pueden fallar por no tomar muchos aspectos. ¿Cómo se puede manejar el sistema de símbolos fisicos con un mecanismo o estructura que permite resolver cualquier problema usando la LA?, ¿cómo operar este sistema de símbolos?. Se tiene un mundo real con una serie de problemas y requiere un modelo, por otro lado se tiene la concepción de la hipótesis del sistema de símbolos fisicos, entonces ¿cómo va a modelar?, ¿cómo esos símbolos fisicos van a trabajar? El modelo van ha ser esos símbolos fisicos pero ¿cómo van ha trabajar?. Se va introducir una idea principal que es donde se basa todo el trabajo de la inteligencia artificial y el concepto de espacio de estados aunque también se le conoce como espacio de problemas, estos problemas se van ha representar ( este es el punto importante) como estados. Ejemplo, ¿cómo se puede describir un problema como el jugar ajedrez ,con el concepto de símbolos físicos?, esto se hace usando el espacio de estados, se tiene el tablero de 8 X 8 (se 27 puede describir con una matriz de 8 X 8 pero seria muy complicado) y se puede describir usando el espacio de estados constituido por: • Una situación inicial. • Varios estados permisibles. • Una situación final. Y por lo tanto una descripción final seria : • Tener un estado inicial o varios bien definidos del cual se parte . • El estado al que se quiere llegar que es el estado final o meta, puede haber un estado meta o varios. • El espacio de estados son todas la posiciones o estados por los que se pasa cada vez que se ejecuta una acción o transformación. • Conjunto de operaciones legales, que permiten pasar de un estado a otro de una manera bien definida y legal. A priori se puede decir cual es el espacio de estados, cada estado es una situación en el tablero del ajedrez, por lo que el juego tiene una gran cantidad de estados, y se puede pasar de un estado a otro siguiendo las reglas, porque hay estados a los cuales no se puede pasar ya que las reglas no lo permiten, cada estado se puede representar gráficamente por un círculo y se pueden enlazar, por lo que el espacio de estados se puede ver como una red, entonces el espacio de estados es la herramienta a utilizar para resolver cualquier problema usando la inteligencia artificial, mediante un sistema simbólico, no se van usar sistemas no simbólicos que pertenecen al área de redes neuronales o algoritmos genéticos dentro de la inteligencia artificial. 28 Problema 1 Transformar el 1 O a 40 utilizando las operaciones + 3, *2,-4. Se puede representar formalmente: Estado inicial 10 Espacio de estados intermedios conjunto de números enteros. Operaciones + 3, *2,-4 Estado final 40 ~ • 1 *2 "\4 ~[[] Figura 2.3 Gráfica de espacio de estados para el problema 1. Este es un árbol temario porque de cada nodo salen otros 3 nodos, esto se debe a que se tienen tres operaciones y se tarda una generación para tener la meta, si se continúa se pueden obtener otras metas. Como se puede ver esta es la base para el estudio de la inteligencia artificial, la trayectoria solución es 10, 20,40. Si se analiza la gráfica el problema principal es la búsqueda de la meta o la trayectoria que nos lleva a la meta, en este caso es un ejemplo muy corto pero si se quiere representar un problema mas complicado la meta puede estar en la generación número 100 o 1000, entonces encontrar la trayectoria que nos lleve a la meta, por lo tanto esta es una buena parte el problema a resolver para representar un problema usando la I.A. y es lo que se le llama problem solver o resultado del problema. 29 Problema 2 Reglas: El problema de las jarras, se tienen 2 jarras una de 4 litros y otra de 3 litros. Las jarras no tienen marcas, se puede echar el líquido a la jarra y este se puede desparramar, y se puede vaciar el contenido de una jarra en otra. Operaciones legales: Llenado y vaciado de las jarras. Ejemplo: (x, y)------~(4,y) (2, y)------~(O,y) X es el contenido de una jarra, aquí se implementa el modelo usando las matemáticas, y se representa la cantidad del líquido que tienen las jarras como X <4 esto nos dice que una jarra tiene menos de 4 litros. Si se suma el contenido de las 2 jarras este es >=3, y si una jarra tiene algo el líquido se puede vaciar a la otra jarra o tratar el contenido de una jarra con el contenido de la otra. Aquí en cierta forma se tiene un lenguaje para manejar el
Compartir