Trabajo de Fin de Máster en Investigación en Ingeniería Eléctrica
Transcripción
Trabajo de Fin de Máster en Investigación en Ingeniería Eléctrica
Trabajo de Fin de Máster en Investigación en Ingeniería Eléctrica Electrónica y Control Industrial INVESTIGACIÓN EN LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Y SU APLICACIÓN EN: INDUSTRIA, ENFERMOS, ANCIANOS, NIÑOS, ENTRETENIMIENTO Y EN EL SECTOR MILITAR ---------------------------------------------------------------------------INVESTIGATION IN SOCIAL INTERACTION BETWEEN HUMANS AND ROBOTS AND IT APLICATION TO: INDUSTRY, ILL AND ELDERLY, CHILDREN, ENTERTAINMENT AND IN THE MILITARY SECTOR Autor JAVIER NÚÑEZ LÓPEZ Directores Dra. CLARA PÉREZ MOLINA Dr. SERGIO MARTÍN GUTIÉRREZ Trabajo presentado en el DEPARTAMENTO DE INGENIERÍA ELÉCTRICA, ELECTRÓNICA Y DE CONTROL ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA como parte de los requerimientos para la obtención del Grado de Máster Universitario en Investigación en Ingeniería Eléctrica, Electrónica y Control Industrial 2014 Itinerario en Control Industrial Trabajo de Fin de Máster en Investigación en Ingeniería Eléctrica Electrónica y Control Industrial INVESTIGACIÓN EN LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Y SU APLICACIÓN EN: INDUSTRIA, ENFERMOS, ANCIANOS, NIÑOS, ENTRETENIMIENTO Y EN EL SECTOR MILITAR ---------------------------------------------------------------------------INVESTIGATION IN SOCIAL INTERACTION BETWEEN HUMANS AND ROBOTS AND IT APLICATION TO: INDUSTRY, ILL AND ELDERLY, CHILDREN, ENTERTAINMENT AND IN THE MILITARY SECTOR Autor JAVIER NÚÑEZ LÓPEZ Directores Dra. CLARA PÉREZ MOLINA Dr. SERGIO MARTÍN GUTIÉRREZ Trabajo presentado en el DEPARTAMENTO DE INGENIERÍA ELÉCTRICA, ELECTRÓNICA Y DE CONTROL ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA como parte de los requerimientos para la obtención del Grado de Máster Universitario en Investigación en Ingeniería Eléctrica, Electrónica y Control Industrial 2014 Itinerario en Control Industrial DEPARTAMENTO DE INGENIERÍA ELÉCTRICA, ELECTRÓNICA Y DE CONTROL ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Trabajo Fin De Máster INVESTIGACIÓN EN LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Y SU APLICACIÓN EN: INDUSTRIA, ENFERMOS, ANCIANOS, NIÑOS, ENTRETENIMIENTO Y EN EL SECTOR MILITAR ---------------------------------------------------------------------------INVESTIGATION IN SOCIAL INTERACTION BETWEEN HUMANS AND ROBOTS AND IT APLICATION TO: INDUSTRY, ILL AND AGED PEOPLE, CHILDREN, ENTERTAINMENT AND IN THE MILITARY SECTOR Autor: JAVIER NÚÑEZ LÓPEZ Directores: Dra. CLARA PÉREZ MOLINA Dr. SERGIO MARTÍN GUTIÉRREZ Comisión Evaluadora: Presidente: Secretario: Vocal: Fecha defensa: Calificación: Código UNESCO: Resumen La robótica es un sector con numerosas posibilidades y con mucha aplicación de futuro como apoyo a los humanos. Factores como el abaratamiento de la tecnología y la aparición de hardware y software libre, con el respaldo de una comunidad muy numerosa y activa, hace que este sector esté en un punto de inflexión que vale la pena analizar. En este trabajo se expone el estado del arte en robótica, profundizando en la interacción social entre robots y humanos. También se analizan las herramientas software y hardware abiertos utilizadas en el diseño de robots. Desde este punto de partida, se propone el modelado hardware y software para un hipotético robot a desarrollar en el entorno industrial, en el apoyo a enfermos o ancianos, en educación, en entretenimiento y en el entorno militar. Summary Robotics is a potential sector with many possibilities and a thriving future supporting humans. Many factors as technology low prices and the rise of open-source hardware and software, with a large and active community behind them, makes robotics present as an inflexion point that is worth reviewing. In this work, the state of the art in robotics, going deep in social interaction between human and robots, is developed. It also analyses open-software and open-hardware tools for designing robots. With these two points settled, a software and hardware modeling is proposed to design a hypothetical robot in the following environments: industrial, ill and aged people, education, entertainment and in the military sector. CONTENIDO Contenido Índice de figuras .................................................................................................... 13 Índice de tablas ..................................................................................................... 17 1. Introducción ...................................................................................................... 19 1.1. Motivación........................................................................................................... 19 1.2. Propósito ............................................................................................................. 19 1.3. Organización del documento .............................................................................. 19 2. Estado del Arte de la robótica ............................................................................. 21 2.1. Clasificación ......................................................................................................... 21 2.2. Factores que promueven el avance .................................................................... 21 2.3. Los robots que vienen ......................................................................................... 22 2.4. Robótica en España ............................................................................................. 32 2.5. Normalización...................................................................................................... 40 2.6. Instituciones de referencia en investigación en robótica ................................... 44 3. Estado del Arte de la interacción social de robots con humanos .......................... 49 3.1. Sector industrial .................................................................................................. 49 3.2. Educación ............................................................................................................ 56 3.3. Entretenimiento .................................................................................................. 59 3.4. Ancianos y enfermos ........................................................................................... 61 3.5. Tareas domésticas ............................................................................................... 64 3.6. Entorno militar .................................................................................................... 68 3.7. Computación Ubicua y Sistemas Robóticos en la Nube ...................................... 73 4. Soluciones hardware/software libre. .................................................................. 79 4.1. Arduino ................................................................................................................ 79 4.2. Arduino en la robótica ......................................................................................... 81 4.3. Raspberry Pi......................................................................................................... 90 4.3. Raspberry Pi en la robótica.................................................................................. 93 5. Modelado de las principales características hardware y software que debe presentar un robot................................................................................................. 99 5.1. Sector industrial ................................................................................................ 107 5.2. Educación .......................................................................................................... 111 5.3. Entretenimiento ................................................................................................ 113 5.4. Ancianos y enfermos ......................................................................................... 115 Página 11 de 143 CONTENIDO 5.5. Tareas domésticas ............................................................................................. 120 5.6. Entorno militar .................................................................................................. 122 6. Conclusiones y trabajo futuro ........................................................................... 127 6.1. Resumen de investigación ................................................................................. 127 6.2. Contribuciones .................................................................................................. 128 6.3. Problemas encontrados .................................................................................... 128 6.4. Trabajos futuros y mejoras ................................................................................ 128 7. Bibliografía ...................................................................................................... 131 8. Anexos............................................................................................................. 143 8.1. Curriculum Vitae ................................................................................................ 143 Página 12 de 143 ÍNDICE DE FIGURAS Índice de figuras Figura 1: Robot LS3 de Boston Dynamics[26]................................................................. 22 Figura 2: Robot LS3 demostración de fuerza[26]. .......................................................... 22 Figura 3: Husky, robot detector de minas [14]............................................................... 23 Figura 4: Robot musaraña con bigotes sensores[15] ..................................................... 24 Figura 5: Detección de muy pequeñas presiones con bigotes sensores basados en nanotecnología[16] . ...................................................................................................... 24 Figura 6: Típico Robot Industrial [4] ............................................................................... 25 Figura 7: Robot industrial interactivo [4] ....................................................................... 25 Figura 8: Brazos robóticos para producción flexible [18] . ............................................. 26 Figura 9: Robot MSR05, esterilizable con VHP [19] . ...................................................... 26 Figura 10: Placa Arduino [20] ......................................................................................... 27 Figura 11: Mapa conceptual del sistema PAMM [42]. ................................................... 27 Figura 12: Paro el robot terapéutico [29] . ..................................................................... 28 Figura 13. Exoesqueleto integral de Cyberdyne [21] . .................................................. 29 Figura 14: Telemedicina [22]. ......................................................................................... 29 Figura 15: Manifiesto robot del siglo 21 [23] . ............................................................... 30 Figura 16: Robot humanoide iCub [24] . ........................................................................ 31 Figura 17: Robot humanoide iCub [24] . ........................................................................ 31 Figura 18: ASIMO un robot sociable[48]. ....................................................................... 31 Figura 19: Maggie Universidad Carlos III ........................................................................ 32 Figura 20: ASIBOT montado en una silla de ruedas[31] [31] ......................................... 33 Figura 21: Dispositivo de sujeción de ASIBOT[31] .......................................................... 33 Figura 22: ASIBOT en acción[31] .................................................................................... 33 Figura 23: UC3M interior[32] . ....................................................................................... 34 Figura 24: UC3M exterior[32] . ....................................................................................... 34 Figura 25: Microrrobot[34]............................................................................................. 35 Figura 26: Microrrobots colaborando[34]. ..................................................................... 35 Figura 27: Alacrane. Desarrollado en la Universidad de Málaga [38]. ........................... 36 Figura 28: REEM-C características [35]. .......................................................................... 36 Figura 29: Guardian de Robotnik, arquitectura ROS [36]............................................... 37 Figura 30: Guardian de Robotnik. Detalle de su modularidad [36]................................ 37 Figura 31: Kit de montaje de Aisoy 1[46]. ...................................................................... 38 Figura 32: Robot Aisoy 1 [46]. ........................................................................................ 38 Figura 33: Robot mOway equipado con una cámara[40]. ............................................. 39 Figura 34: Robot mOway en movimiento[41]. ............................................................... 39 Figura 35: Cámara robotizada utilizando RTM[43]. ....................................................... 42 Figura 36: Ejemplo de aplicación de RTC en el funcionamiento de la cámara[43]. ....... 42 Figura 37: Teleoperación utilizando Robot Service Network Protocol. ......................... 43 Figura 38: Sistema robótico modular colaborativo, basado en RTM y RSNP[43]. ......... 43 Figura 39: Interacción robot-humano en el entorno industrial. .................................... 50 Página 13 de 143 ÍNDICE DE FIGURAS Figura 40: Entusiasma a los jóvenes por la tecnología de forma divertida: RobotinoXt[55]. ........................................................................................................... 51 Figura 41: Biomechatronic Footprint: partiendo del modelo natural, al objetivo de la aplicación industrial[55]. ................................................................................................ 51 Figura 42: Los AquaJellies demuestran como las acciones autónomas de los individuos pueden construir un comportamiento colectivo[55]. .................................................... 52 Figura 43: El proyecto TERMES, "swarm intelligence"[79]. ........................................... 53 Figura 44: Estructuras y su "camino de construcción" correspondiente[80]................. 54 Figura 45: M-Block, robot cubo desarrollado en el MIT [81]. ........................................ 55 Figura 46: El robot Thymio II [6] . ................................................................................... 56 Figura 47: Kit práctico de robótica: Pistola de encolar, barras de cola, placa electrónica EmbedIT con una batería LiPo y dos servomotores, bridas largas y cortas, cinta aislante y tijeras [7] . .................................................................................................................... 57 Figura 48: Las morfologías mostradas se pueden clasificar en tres grupos: con ruedas (a, b), barras con una masa frontal (c, d, f, g), sin miembros (e, h) [7] . ........................ 58 Figura 49: Tercera generación de sumo. Diseño con cuatro motores [116]. ................. 58 Figura 50: AIBO de Sony, especificaciones del modelo ERS-110[117]. .......................... 59 Figura 51: Especificaciones básicas de QRIO[117]. ........................................................ 60 Figura 52: Furbies [119]. ................................................................................................. 61 Figura 53: (a) MIT exoesqueleto; (b) MindWalker; (c) Austin Exoesqueleto; (d) AlterG Pierna Biónica; (e) Dispositivo de ayuda para caminar de Honda [1] . .......................... 62 Figura 54: NAO en el tratamiento del autismo [25] . ..................................................... 63 Figura 55: Roomba, robot aspirador[156]. ..................................................................... 64 Figura 56: Clasificación de objetos basada en sus propiedades.[5] ............................... 65 Figura 57: Clasificación de tipos de objetos basada en ConceptNet4 [5] . .................... 66 Figura 58: Construcción de la relación objeto-lugar[5] .................................................. 66 Figura 59: XM1216 SUGV de iRobot[93]. ....................................................................... 69 Figura 60: XM1216, el SUGV ligero[95]. ......................................................................... 69 Figura 61: Microsoft Xbox 360 GamePad [95]. .............................................................. 70 Figura 62: Harm's Way Controller[94]............................................................................ 70 Figura 63: Sistema de monitorización Tac-Eye[95]. ....................................................... 70 Figura 64: Control de un dron [109]. .............................................................................. 72 Figura 65: Las múltiples cara de Rity el robot software[74]........................................... 75 Figura 66: Kit de LightUp[73]. ......................................................................................... 75 Figura 67: Interfaz de trabajo de AppInventor[75]. ....................................................... 76 Figura 68: Infraestructura de los recursos en Cloud Robotics[82]. ................................ 77 Figura 69: Dibujo de la placa Arduino uno[49]............................................................... 80 Figura 70: Robot Bioloid con sensores en los pies y Arduino Mega para el control de los servos[50]. ...................................................................................................................... 81 Figura 71: Esquema de la conexión serie de los servomotores a la placa Arduino Mega[50]. ....................................................................................................................... 82 Figura 72: Conexión de los sensores de fuerza al ordenador a través del puerto serie del Arduino[50]. ............................................................................................................. 82 Figura 73: Lazo de control utilizando la comunicación serie de MATLAB para mover el robot y recibir la retroalimentación de los sensores[50]. .............................................. 83 Página 14 de 143 ÍNDICE DE FIGURAS Figura 74: Detalle del circuito de conexión con el guante NED[51]. .............................. 84 Figura 75: Detalle del guante NED (NeuroErgoDesign) [51]. ......................................... 85 Figura 76: Juego controlado con el guante NED [51]. .................................................... 85 Figura 77: Quadrotor con Arduino[53]. .......................................................................... 86 Figura 78: Flujo de datos en el software ROS[53]. ......................................................... 87 Figura 79: Flujo de información entre Matlab y ROS[53]. .............................................. 87 Figura 80: Máquina de estados del nodo de control [53]. ............................................. 88 Figura 81: El prototipo Nose Strip para la detección de concentraciones de gases peligrosas[56]. ............................................................................................................. 89 Figura 82: Prototipo "Guide Buddy"[56]. ....................................................................... 90 Figura 83: Esquema de la interfaz hardware del Raspberry Pi[58]. ............................... 91 Figura 84: Conexiones externas del Raspberry Pi[58]. ................................................... 92 Figura 85: Arquitectura CLEM[60]. ................................................................................. 94 Figura 86: Arquitectura del sistema[61]. ........................................................................ 94 Figura 87: Componentes del dispositivo guía, de izquierda a derecha, el receptor GPS Bluetooth, Raspberry Pi y la botonera de control[61]................................................. 95 Figura 88: Interfaz humano-ordenador basada en electroencefalogramas[70]. ........... 96 Figura 89: Primer prototipo de la RoboHand. Utilizada como prótesis sin control electrónico[72]............................................................................................................. 96 Figura 90: Robohand impresa con impresora 3D, en el laboratorio de la Universidad Galileo, en fase de desarrollo de su robotización[70]. ................................................ 97 Figura 91: Ejemplo del funcionamiento del servicio "master" ROS [92]. ..................... 100 Figura 92: Esquema genérico de software basado en ROS. ......................................... 101 Figura 93: Sistema de navegación automático para una silla de ruedas[83]. .............. 102 Figura 94: NAO en ROS [101] ....................................................................................... 104 Figura 95: Ejecución directa de una máquina de estados en el robot. ........................ 104 Figura 96: Ejemplo de información publicada por un sensor en ROS[160]. ................ 106 Página 15 de 143 ÍNDICE DE FIGURAS Página 16 de 143 ÍNDICE DE TABLAS Índice de tablas Tabla 1: Comparativa entre tipos de robots industriales. .............................................. 25 Tabla 2: Datos de relaciones obtenidos de ConceptNet4[5] . ........................................ 66 Tabla 3: Comparación de lo obtenido en la clasificación "Tipo de Objeto". .................. 67 Tabla 4: Detalles del resultado de la clasificación "tipo de objeto". .............................. 68 Tabla 5: Comparativa entre robótica personal y robótica ubicua[73]. .......................... 74 Tabla 6: Comparativa entre el guante NED y otras opciones comerciales[51]. ............. 84 Tabla 7: Indicación de los cinco LEDs de estado[58]. ..................................................... 91 Página 17 de 143 ÍNDICE DE TABLAS Página 18 de 143 INTRODUCCIÓN 1. Introducción 1.1. Motivación La motivación del presente "Trabajo Fin de Máster" es la investigación en la interacción social de robots con humanos y su aplicación en el sector industrial, en el cuidado y mejora del bienestar de enfermos y ancianos, en la educación y atención a niños, en el entretenimiento en general y en el sector militar. El estudio de la interacción social entre robots y humanos es fundamental para el diseño de nuevos robots o sistemas robotizados, más flexibles, que hagan que el potencial que suponen, se ponga al servicio de los humanos. 1.2. Propósito El propósito de este TFM consiste en la presentación de los últimos avances en robótica, particularizando en la forma en que se relacionan los humanos y los robots. Las áreas analizadas serán: industria, enfermos, ancianos, niños, entretenimiento, sector militar. Fruto de este estudio de los últimos avances en robótica, se propondrán las características que debería tener un sistema robótico nuevo, tanto desde un punto de vista general, como si se ha de desarrollar concretamente en cualquiera de las áreas nombradas. También se pretende estudiar las posibilidades de las plataformas Open-Source, software y hardware, para su aplicación a la robótica, por sus interesantes características de bajo coste y de la numerosa comunidad que las apoya y promueve. 1.3. Organización del documento Primero se describirá del estado del arte en robótica. De una manera eminentemente visual, se hará un recorrido por los últimos robots desarrollados en laboratorios y los últimos diseños presentes en el mercado. Como un apartado independiente se considerarán los diseños realizados en España que, como se verá, tienen su germen en las universidades. También se hablará algo de las denominadas plataformas "middleware" para robótica, es decir: software, metodología y herramientas ya desarrolladas por expertos que permiten su reutilización y adaptación para nuevos diseños, por su naturaleza Open-Source. A continuación se concretará la exposición del estado del arte en la interacción social de robots con humanos. Para ello se cambiará un poco la metodología utilizada en el apartado anterior y los datos se centrarán en experiencias más concretas y en resultados de experimentos. En este apartado se hablará también de los conceptos de robótica ubicua, redes de sensores y robótica colaborativa, factores que se consideran importantes para un desarrollo exponencial en los paradigmas de interacción entre robots y humanos. Seguidamente se analizarán algunas de las plataformas Open-Source que han surgido en los últimos años. Aunque existen otras, esta parte se centrará en la placa microcontroladora Arduino y en el denominado ordenador de un placa Raspberry Pi. En su presentación, además de una descripción de sus características, se darán algunos ejemplos de su utilización en la robótica. Página 19 de 143 INTRODUCCIÓN En el siguiente apartado se resumirán las características hardware y software deseables para el desarrollo de un robot en distintos ámbitos: industrial, para la ayuda de ancianos, para cuidado de enfermos, para interacción con niños, para tareas domésticas, para entretenimiento y finalmente en el sector militar. Para terminar se expondrán las conclusiones y los trabajos futuros a realizar en base a dichas conclusiones. Página 20 de 143 ESTADO DEL ARTE DE LA ROBÓTICA 2. Estado del Arte de la robótica En este apartado se tratará de mostrar las nuevas tendencias en el desarrollo de la robótica en base a artículos publicados en los últimos congresos internacionales del sector y a diversas revistas especializadas. 2.1. Clasificación De entre todas las posibles clasificaciones de robots que existen y se han tenido en cuenta en diversas publicaciones, a continuación se introduce una que no tiene pretensión de ser exhaustiva, pero sí de ayudar en la exposición y en los objetivos del presente trabajo: - Robots industriales. Robots en educación. Robots de entretenimiento. Robots para el cuidado de ancianos y enfermos. Robots para tareas domésticas. Robots militares. 2.2. Factores que promueven el avance Antes de citar con ejemplos los últimos diseños en robótica se enumerarán algunos de los factores determinantes que los han condicionado. Factores socio-económicos: - - eliminación de mano de obra en los procesos productivos[4] , tanto desde el punto de vista de abaratamiento de costes de producción como para la realización de trabajos con riesgo. Este factor incluiría algún tipo de robot militar[13] , como se indicará en el siguiente apartado, el envejecimiento de la población. Este factor es determinante al menos en los países industrializados y precisamente en los países más avanzados en robótica como Japón, Alemania, Italia, ... El desarrollo de robots para la asistencia de ancianos es crucial para estas sociedades envejecidas([1] [8] [9] [12]) . Factores tecnológicos: - - - avances en inteligencia artificial, sobre todo basándose en el gran crecimiento que ha habido en los últimos años en la creación de grandes volúmenes de información, en la interconectividad y en las iniciativas "Open-Source"([17] [20] [44] [57]), desarrollos en nanotecnología, que permiten la investigación en nuevos elementos sensores que potencian la aparición de diseños basados en la naturaleza ([15] [16] [26] [55]), avances en neurociencia, abriendo un camino directo en la interfaz de comunicación entre humanos y robots ([39] [70] [71]), impresión 3D, este factor unido a iniciativas "Open-Source", puede favorecer el despegue en el número de robots presentes en la sociedad. El hecho de poder Página 21 de 143 ESTADO DEL ARTE DE LA ROBÓTICA imprimirse un robot propio basado en diseños abiertos y luego la personalización de los servicios que prestará este robot, plantea una perspectiva presente, hasta ahora, solo en las novelas de ciencia ficción([72] [120]). Otros: - - - el accidente en la central nuclear de Fukushima en Japón, país más desarrollado en lo que a robótica se refiere, demostró como la aplicación de la robótica en la realización de tareas clave en situaciones de emergencia y en entornos tan peligrosos para los humanos, todavía está lejos de ser prioritaria, frente a su utilización en otros campos. Esto supuso una dura crítica para la industria japonesa, de hecho los primeros robots en explorar la zona contaminada fueron de fabricación estadounidense. Sin embargo, esta calamidad ha servido de acicate para acelerar las actividades de investigación y desarrollo de las que han surgido fabricantes y empresas fruto de la investigación ([3]), relacionado con lo anterior, asistencia de los robots en situaciones de emergencia, también existen competiciones de robots que fomentan la innovación, como por ejemplo DARPA Robotics Challenge, de gran prestigio y con un cuantioso premio y a la que optan tanto empresas consolidadas como nuevas surgidas de grupos investigadores de universidades ([111]); también es de destacar el interés de algunas empresas tecnológicas como Google en la adquisición de empresas dedicadas a la robótica (ya van ocho en la actualidad). Uno de los últimos ejemplos es la empresa SCHAFT(una empresa surgida de la universidad de Tokio para poder presentarse al concurso), que ganó la primera fase del DARPA Robotics Challenge en la última edición de 2013 ([111]). 2.3. Los robots que vienen Aunando dos de los factores anteriormente mencionados de ahorro en mano de obra y de trabajos penosos o que precisan un esfuerzo desproporcionado se puede citar el "LS3" (robot mula) desarrollado por Boston Dynamics [13] . Figura 1: Robot LS3 de Boston Dynamics[26]. Figura 2: Robot LS3 demostración de fuerza[26]. El objetivo del ejército americano es reducir el ratio denominado "tooth-to-tail" que relaciona los miembros operativos con los miembros de apoyo. Una forma de ganar eficiencia Página 22 de 143 ESTADO DEL ARTE DE LA ROBÓTICA y reducir el ratio consiste en utilizar robots de apoyo. El robot mula citado, sería un ejemplo, así como otros tipos de vehículos autónomos para el transporte de suministros. Otro ejemplo de cómo nuevas tecnologías se incluyen en los nuevos diseños es el robot detector de minas desarrollado por la "Universidade de Coimbra"[14] . Los números relacionados con los accidentes y las muertes producidos por las minas, así como la magnitud de minas existentes son sobrecogedores. Según el autor, se estima que más de 20.000 personas mueren en accidentes relacionados con minas cada año. De las 110.000.000 millones de minas activas actualmente, 100.000 explotan cada año, por humanos y ratas. A este ritmo se tardaría como 1.000 años en deshacerse de ellas. El uso de robots para este trabajo es idóneo. Figura 3: Husky, robot detector de minas [14] El trabajo realizado por el "Departamento de ingeniería eléctrica y computación" de la Universidad de Coimbra, para conseguir las características deseadas de su robot, está enfocado en las siguientes tres tareas: - Detección de las características del terreno (obstáculos y orografía). Movimiento a través del terreno. Utilización del vehículo para moverse dentro de la zona sospechosa con un equipamiento de sensores para localizar las minas. Husky, que así se llama el robot, es ideal para moverse en terrenos irregulares. Está provisto de sensores de navegación y localización, de un brazo robotizado "2DOF" con un detector de metales y un radar de penetración en la tierra. Además incluye sensores complementarios que permiten una detección precisa de minas y un ratio muy bajo de errores de detección. También se utiliza un sofisticado sistema de visión basado en la última generación de algoritmos de percepción de nubes de puntos. Otra de las características mencionadas como factores que caracterizan los nuevos sistemas robóticos, también se ha tenido en cuenta en el diseño de Husky, la compatibilidad con sistemas "open-source". Husky trabaja con ROS [17] , lo que le permite integrarse con otros sensores y actuadores en el acto. En palabras de uno de los miembros: "Treinta minutos después de sacar a Husky de su embalaje, ya puede ser "telemandado" desde el laboratorio". Página 23 de 143 ESTADO DEL ARTE DE LA ROBÓTICA La naturaleza sigue siendo inspiración para nuevas generaciones de robots. Un ejemplo es el robot basado en una musaraña realizado por el Laboratorio de Robótica de Bristol[15] . Figura 4: Robot musaraña con bigotes sensores[15] Exclusivamente con el tacto es capaz de orientarse, pudiéndose utilizar para casos de incendios donde el humo impide la visión, con objeto de diseñar rutas de escape para los posibles humanos atrapados. Este diseño en particular es de hace algunos años y tiene el inconveniente de que la mayor complejidad reside en la programación de los bigotes sensibles. Estos inconvenientes se pueden subsanar con diseños que se están actualmente desarrollando[16] . Basándose en nanotecnología se han conseguido desarrollar unos bigotes sensores con una sensibilidad extrema. Según sus desarrolladores presentan grandes deformaciones en respuesta a muy pequeñas presiones. Como prueba de lo dicho este grupo de investigadores, monitorizaron de una forma exacta tanto en 2D como en 3D un flujo de viento. Figura 5: Detección de muy pequeñas presiones con bigotes sensores basados en nanotecnología[16] . Página 24 de 143 ESTADO DEL ARTE DE LA ROBÓTICA En referencia a los robots industriales las nuevas tendencias apuntan a la flexibilidad en la fabricación y el abaratamiento de los equipos. Los nuevo robots deben adaptarse y, de alguna forma, colaborar con los humanos, haciendo que las parcelas de trabajo de unos y otros coincidan. Un ejemplo de este tipo de robot flexible, colaborador y con la habilidad de aprender es "Baxter" de Rethink Robotics. A continuación se muestra una comparativa obtenida de la página web del producto [4] donde se muestran las características diferenciadoras de Baxter frente al robot industrial típico: Figura 6: Típico Robot Industrial [4] Robot industrial típico Ultra-rápido con cargas pesadas Diseñado para reemplazar a las personas Bueno para volúmenes grandes, pequeña variación en la fabricación Caro Peligroso Difícil de programar e integrar Figura 7: Robot industrial interactivo [4] Baxter, el robot de producción interactivo Cadencia humana, cargas ligeras Diseñado para reemplazar tareas repetitivas Buenos para volúmenes menores, gran flexibilidad en la fabricación Asequible Seguro para trabajar cerca de las personas Entrenamiento simple, integración limitada Tabla 1: Comparativa entre tipos de robots industriales. Otro ejemplo similar serían los modelos "UR5" y "UR10" de Universal Robots [18] . Se trata de unos brazos robot capaces de levantar pesos de hasta 10 kg, lo cual los hace adecuados para realizar tareas industriales con cierto requerimiento de potencia y fuerza. Sin embargo, también son capaces de realizar tareas de gran precisión. Por ejemplo, en una fábrica de motores de Wolkswagen en Alemania, un UR5 coloca las bujías de precalentamiento (un elemento bastante delicado) en unos agujeros taladrados, en un lugar de difícil acceso. Posteriormente un operario los apretará, mostrando otro caso de colaboración robot-humano. Página 25 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Figura 8: Brazos robóticos para producción flexible [18] . En el manual de seguridad de este equipo se indica que es conforme con el estándar EN ISO 10218-1:2006, lo cual indica que el robot puede trabajar como un robot de colaboración (por ejemplo sin barreras entre el robot y el operario). Otro ejemplo destacable es el robot MSR05 de Kawasaki [19] . Se trata de un brazo robótico con siete grados de libertad, totalmente realizado en acero inoxidable. El hecho de estar realizado en acero inoxidable permite su esterilización con vapor de peróxido de hidrógeno (VHP resistant), haciéndolo idóneo para el desarrollo de medicamentos. Este diseño permite a los laboratorios farmacéuticos realizar experimentos con elementos químicos peligrosos en el descubrimiento de nuevos productos. Figura 9: Robot MSR05, esterilizable con VHP [19] . Página 26 de 143 ESTADO DEL ARTE DE LA ROBÓTICA El "Open-Source" es otra tendencia que está marcando diferencias. Ejemplos muy populares de software serían Linux o Android. Lo que no es tan común, es el hardware "OpenSource". Actualmente y desde hace ya algunos años Arduino [20] está cambiando esta situación de una forma muy simple: tarjetas baratas y accesibles, ya montadas o en kit de montaje, con toda la especificación de su diseño. Arduino permite, a casi cualquiera, desarrollar objetos y entornos interactivos. La comunidad de desarrolladores es muy grande, estos colaboradores a su vez elaboran ejemplos, instrucciones, consejos, etc. con una filosofía igualmente "Open-Source". Figura 10: Placa Arduino [20] El envejecimiento de la población es un hecho, más acentuado en los países industrializados, se puede decir que los servicios robotizados para este sector de la población jugarán un papel importante como apoyo a las tareas cotidianas. Figura 11: Mapa conceptual del sistema PAMM [42]. Página 27 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Muchos investigadores han desarrollado sistemas para apoyo de mayores desde puntos de vista físicos y mentales. Por ejemplo, desde el punto de vista de asistencia "Dubowsky et al." han desarrollado un sistema de ayuda robotizado que permite la mobilidad de mayores así como de su monitorización PAMM (A Personal Aid for Mobility and Health Monitoring)[42]. Desde el punto de vista del cuidado mental, un ejemplo es Paro, un robot utilizado en residencias de ancianos, del que se darán más detalles más adelante. Figura 12: Paro el robot terapéutico [29] . No solo para mayores sino para minusválidos, sistemas como HAL de Cyberdyne [21] , pueden ser la solución para la movilidad. HAL es el primer robot "ponible" que recibe el marcado CE. El nombre es el acrónimo de "Hybrid Assistive Limb" (Miembro híbrido de apoyo) y se trata de una prótesis que reacciona a las necesidades del que la lleva puesta a través de sensores capaces de detectar la señales enviadas por el cerebro al cuerpo y viceversa. Un ordenador interpreta las intenciones de movimiento de la persona y, en función de éstas, mueve las articulaciones del exoesqueleto en consecuencia. Este robot está disponible en dos versiones: para todo el cuerpo y para la extremidades inferiores, su peso es de 23 y 15 kg respectivamente. Este robot no solo está pensado para su uso médico y para rehabilitación, también se encuentra en fase de investigación y desarrollo su utilización para potenciar la fuerza realizada por el cuerpo. Esta última funcionalidad podría utilizarse en trabajos que requieran mucha fuerza física (como puede verse en la figura). Página 28 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Figura 13. Exoesqueleto integral de Cyberdyne [21] . Siguiendo con los robots en medicina se puede citar el RP-VITA, es un robot para presencia remota, que se está utilizando actualmente, en hospitales de Estados Unidos y México. En la página web del fabricante [22] se pueden encontrar las características más destacables del producto: - Capacidad para moverse autónomamente. Un control rápido, fácil y remoto a través de la app "ControlStation App for iPad". El sistema, basado en la nube, SureCONNECT, permite una conectividad fiable en condiciones de red muy variables. Cumple con las normas americanas relacionadas con artículos para el sector de la salud (FDA y HIPAA). Es escalable y actualizable, hace que la inversión sea segura como tecnología para la telemedicina. Figura 14: Telemedicina [22]. Página 29 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Anteriormente se nombró Arduino como ejemplo de las iniciativas "Open-Source", pero no es la única. Intel con su "21st Century Robot", de Brian David Jonhson, añade a la iniciativa "Open-Source", la impresión en 3D. Jimmy, que así se llama el robot, ee espera que esté disponible en Mayo de 2014, tanto el software como los archivos necesarios para la impresión 3D serán "Open-Source", de este modo según el creador, todas las posibilidades del robot estarán al alcance de quienquiera. También el "cerebro del robot" está basado en una app, de modo que cualquiera podrá escribir nuevas funcionalidades o "bajárselas" al suyo. Figura 15: Manifiesto robot del siglo 21 [23] . Otro humanoide basado en "Open-Source" es iCub [24] . Este robot se ha desarrollado para conseguir una única meta: la investigación en el conocimiento humano y en la inteligencia artificial. Esta plataforma de conocimiento ha sido fundada por la Comisión Europea dentro del programa "Sistemas de conocimientos y Robótica"(Cognitive Systems and Robotics program). El planteamiento de la investigación en conocimiento de este robot, es totalmente interactiva con humanos, como lo haría un bebé. Para ello incluye 53 motores, tiene la capacidad de detectar la posición del cuerpo y el movimiento, utilizando acelerómetros y giroscopios y está desarrollando capacidades táctiles. Actualmente, iCub puede gatear, resolver puzzles 3D, disparar flechas, coger pequeños objetos y más. También sus progresos en su cerebro artificial le permiten progresar en su lenguaje y mejorar su percepción visual. Página 30 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Figura 16: Robot humanoide iCub [24] . Figura 17: Robot humanoide iCub [24] . Para finalizar esta enumeración de robots habría que nombrar al, posiblemente, más avanzado y mediático: ASIMO de Honda. Este robot surgió en el 2000 y desde este año viene creciendo y sofisticándose, siendo ahora el robot humanoide más parecido a un ser humano, no tanto en lo físico, si nos referimos a su apariencia, como en su comportamiento, autonomía de acción y capacidad de aprendizaje. Para resumir solo algunas de sus características más destacables se mencionarán las siguientes, aunque en su portal de internet se puede consultar todo lo relativo a ASIMO, así como su evolución desde su nacimiento [48]: - - una capacidad de equilibrio sobresaliente para mantener la postura, que reacciona ante cualquier desequilibrio instantáneamente; reconocimiento de su entorno, lo cual le permite integrar gran cantidad de información, como los movimientos de la personas a su alrededor, a través de múltiples sensores, con lo cual es capaz de percibir cualquier cambio que ocurra; tiene la capacidad de generar un comportamiento autónomo, lo cual le permite actuar sin ser controlado por un operador, haciendo predicciones y gestionando la información que haya adquirido Figura 18: ASIMO un robot sociable[48]. Página 31 de 143 ESTADO DEL ARTE DE LA ROBÓTICA 2.4. Robótica en España Puede decirse que España se encuentra en el ranking de países destacados en el desarrollo de la robótica, en particular en Europa estaría detrás de Alemania, Italia y Francia. Sin embargo, y como se pondrá de manifiesto en este apartado, la faceta más sobresaliente es la investigación, con numerosos proyectos de I+D. Por contra en la industria, salvo los robots clásicos de producción masiva de las grandes, como la automovilística, no hay el mismo interés. Esta falta de interés se manifiesta también en los inversores privados, con lo cual la comercialización de otro tipo de robots fruto de la investigación también es baja. A continuación se presentarán ejemplos de robots desarrollados en España, primero los desarrollados en universidades y luego ejemplos de algunas empresas españolas, que como se verá, la mayoría, también son spin-offs de determinados departamentos de universidad. En el ámbito universitario se puede citar la Universidad Carlos III de Madrid con desarrollos como los humanoides "Maggie" y "UC3M" o el brazo mecánico "Asibot" para asistencia a personas discapacitadas. "Maggie" es un robot social personal que forma parte de una plataforma de investigación que estudia la interacción entre humanos y robots además de la inteligencia robótica y la autonomía. Figura 19: Maggie Universidad Carlos III "Maggie" mide 1,4 m, puede mover el cuerpo, los brazos, la cabeza y los ojos; puede hablar y reconocer la voz. Tiene una gran variedad de sensores: Infrarrojos, US y laser range finders, cámaras de televisión y sensores táctiles en el cuerpo. Este robot permite comunicarse con él mediante la voz, a través de gestos o tocándolo. Además tiene una pantalla táctil en el pecho. Es capaz, a través de su conexión a internet, de dar las últimas noticias, informar sobre el tiempo, o distinguir, mediante un lector de infrarrojos, los distintos medicamentos y su composición y uso [30] . "Asibot" es otro robot desarrollado por la Universidad Carlos III. Se trata de un brazo robot portátil para ayudar a personas mayores o con discapacidad en tareas diarias como: Página 32 de 143 ESTADO DEL ARTE DE LA ROBÓTICA comer, beber, afeitarse, maquillarse, lavarse los dientes, ... Este robot está siendo probado en el Hospital Nacional de Parapléjicos de Toledo. Sus características técnicas resumidas son: cinco grados de libertad, cerca de 10 kg de peso, 1,3 metros de alcance y 2 kg de capacidad de carga. Una característica que lo hace único es que todo el sistema de control está integrado en el robot. Necesita solamente una fuente de alimentación externa de 24V para empezar a funcionar. Esta es la razón por la cual el robot es totalmente portátil con un peso y unas dimensiones (después de embalado) que permite que sea transportado, por ejemplo, en una maleta de mano en un avión. A continuación se muestran tres imágenes del brazo robotizado, indicando cómo puede ser montado en una silla de ruedas, un detalle del dispositivo de sujeción del extremo y su interacción con un paciente [31] . Figura 20: ASIBOT montado en una silla de ruedas[31] [31] Figura 21: Dispositivo de sujeción de ASIBOT[31] Figura 22: ASIBOT en acción[31] Para terminar con la Universidad Carlos III, se hará referencia a otro robot humanoide, el "UC3M". Se trata de un robot con 21 grados de libertad, capaz de caminar en distintos entornos, interiores y exteriores y también capaz de cooperar con humanos y otros robots en entornos de trabajo reales [32] . Página 33 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Figura 23: UC3M interior[32] . Figura 24: UC3M exterior[32] . Otra universidad española con proyectos de desarrollo de servicios robotizados es la Universidad Politécnica de Cataluña de la cual solamente se citará el proyecto europeo URUS coordinado por dicha universidad. "URUS" es el acrónimo de UBIQUITOUS NETWORKING ROBOTICS IN URBAN SETTINGS, cuyo objetivo es la implantación de redes de robots para la mejora de la seguridad y el tráfico en las ciudades [33] . Con este proyecto se pretende desarrollar nuevos medios de cooperación entre redes de robots y humanos y con el entorno en áreas urbanas, para acometer tareas que, de otro modo, serían muy complejas, llevarían mucho tiempo o serían muy costosas. Por ejemplo, la cooperación entre robots y cámaras de video pueden solucionar problemas de vigilancia o la cooperación entre robots y dispositivos de comunicación wireless pueden ayudar a las personas de múltiples formas. En la página web del proyecto [33] se resumen así los objetivos: - - Un objetivo tecnológico y científico: desarrollar una arquitectura de red de robots que aprenda y se adapte y que integre las siguientes funcionalidades: Localización y navegación cooperativa. Percepción del entorno cooperativa. Creación y actualización de mapas cooperativa. Interacción entre humanos y robots. Negociación multi-tarea. Comunicación Wireless con dispositivos portátiles, sensores en diversas ubicaciones y otros robots Un objetivo experimental: chequear la arquitectura de red de robots en dos tareas a realizar en un entorno urbano: Guía y transporte de personas y mercancías. Vigilancia. Página 34 de 143 ESTADO DEL ARTE DE LA ROBÓTICA En la Universidad de Barcelona se está desarrollando el proyecto en microrrobótica ISWARM. En este proyecto se pretende hacer que más de 100 microrrobots autónomos sean capaces de realizar colectivamente diferentes tareas. Este objetivo pretende conseguirse con: - - la aplicación de la inteligencia colectiva de dichos robots en términos de cooperación y percepción colectiva utilizando conocimiento y métodos de inteligencia pre-racional, aprendizaje automático, inteligencia de enjambres y sistemas clásicos multi-agente el desarrollo de hardware avanzado de micro-robots siendo extremadamente pequeños (el tamaño de cada robot: 3x3x2 mm3) integrando nuevos actuadores para el movimiento, alimentados por microcélulas solares y comunicación wireless miniaturizada con circuitos integrados para incorporar la inteligencia en el robot y con sensores y herramientas integradas para la manipulación de su entorno La aplicación prevista de estos microrrobots sería en el campo de la cirugía, la medicina en general o la nanotecnología[34]. Figura 25: Microrrobot[34]. Figura 26: Microrrobots colaborando[34]. En el Departamento de Ingeniería de Sistemas y Automática de la Universidad de Málaga se ha desarrollado el proyecto "ALACRANE", con el objeto de desarrollar nuevos métodos y técnicas de asistencia en misiones de exploración, búsqueda y rescate con robots móviles[38]. Página 35 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Figura 27: Alacrane. Desarrollado en la Universidad de Málaga [38]. En cuanto a empresas en el sector de la robótica se puede citar PAL Robotics de Barcelona. Tal y como puede leerse en la página web de la empresa, su objeto es la fabricación de robots humanoides de servicios, para su integración en el día a día de los humanos [35]. El modelo REEM-C, que se muestra en la siguiente figura, donde aparecen también algunas de sus especificaciones, sería un ejemplo de los productos desarrollados por esta empresa. Figura 28: REEM-C características [35]. Página 36 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Robotnik es una empresa con sede en Valencia dedicada a robots móviles, brazos robóticos y manipuladores. Esta empresa ha creado "Rescuer" y "Guardian", con fines de seguridad, investigación y protección civil. Pueden subir y bajar escaleras, orientarse mediante GPS y sortear objetos con sensores láser. Figura 29: Guardian de Robotnik, arquitectura ROS [36]. Figura 30: Guardian de Robotnik. Detalle de su modularidad [36]. "Guardian" es un robot móvil con arquitectura modular, sus aplicaciones se pueden resumir en [36]: - - - Científicas: Navegación en interiores y exteriores. Localización. Arquitecturas de software de control. Swarming. Seguridad: Vigilancia. Medición remota. Desactivación de explosivos: Búsqueda y desactivación de explosivos improvisados (IEDD). Desactivación de explosivos armamentísticos (EOD). Cognitive Robots [37] es una spin-off de la Universidad Jaume I de Castellón. Esta empresa ha conseguido incorporar un cerebro a vehículos conducidos manualmente. En base a sistemas software, sensores y equipamiento adicional, esperan transformar fregadoras industriales, aspiradoras domésticas y cortadoras de césped en robots completamente autónomos. BitBrain Technologies es otra spin-off, en este caso de la Universidad de Zaragoza centrada en el desarrollo y comercialización de la tecnología de interfaz cerebro-computador. Actualmente se podría decir que no está relacionada directamente con la robótica, sin Página 37 de 143 ESTADO DEL ARTE DE LA ROBÓTICA embargo el producto en el que investigan y con el que trabajan tiene un gran potencial de aplicación[39]. Básicamente BitBrain se dedica a las siguientes tres labores: - - Desarrollo de hardware para recoger la actividad cerebral en forma de señales eléctricas. Tratar esa señal para extraer información cognitiva, motora y emocional, por ejemplo: si se está prestando atención a algo, si se activa la memoria, si un estímulo es positivo y negativo, si se quiere mover un brazo o una pierna,... Desarrollo de software para la monitorización de la información obtenida. Otra empresa española cuyo producto incide en la inteligencia artificial y en la adquisición de conocimiento de los robots es Aisoy Robotics [46]. Uno de sus productos es "Aisoy 1", diseñado para tener diálogos relativamente fluidos y coherentes tanto con personas como con otros robots. Este robot tiene capacidad de aprendizaje y no actúa de la misma forma con dos personas con las que ha tenido un trato previo, por ejemplo, cuando se le ha tratado con cariño y cuando no, tomando decisiones de forma semejante a como lo haría un ser humano[47]. "Aisoy 1" está basado en Raspberry Pi y ROS, y se presenta como la plataforma educativa para robótica social e inteligencia artificial más asequible del mercado. Figura 31: Kit de montaje de Aisoy 1[46]. Figura 32: Robot Aisoy 1 [46]. Para finalizar con las empresas españolas de robots citar a Minirobots S.L., una empresa fundada en 2008 en Bilbao. Su producto es el robot "mOway", diseñado para aprender programación en el aula, para alumnos a partir de los 10 años. Las características del robot se indican a continuación[40]: - PIC18F86J50 como microcontrolador principal. Grupo motor con control de trayectoria comandado por I2C. Sensores infrarrojos anticolisión. Sensor de intensidad de luz direccional. Sensores optorreflectivos infrarrojos para el suelo. Indicador luminoso superior bicolor. Led frontal. Leds rojos traseros. Página 38 de 143 ESTADO DEL ARTE DE LA ROBÓTICA - Sensor de temperatura. Acelerómetro de 3 ejes. Micrófono. Altavoz. Bus de expansión SPI/I2C para tarjetas electrónicas. Módulo de radiofrecuencia para comunicación inalámbrica. Batería LI-PO recargable por USB. Autonomía de 2 horas. Preparado para robótica colaborativa. Permite la programación gráfica basada en diagramas de flujo y también es programable con Scratch. Figura 33: Robot mOway equipado con una cámara[40]. Figura 34: Robot mOway en movimiento[41]. Página 39 de 143 ESTADO DEL ARTE DE LA ROBÓTICA 2.5. Normalización El escribir código para dar funcionalidades a un robot es una tarea compleja, un planteamiento en el cual uno pretenda aprovecharse del trabajo ya hecho es algo que tiene mucho sentido. Además una de las características de la robótica es la cantidad de disciplinas distintas que aúna, por un lado software de alto nivel, mecánica, sensores, ... está claro que una única entidad domine todas las facetas es algo muy difícil. Para salvar estas complicaciones existen los denominados middlewares que proveen herramientas y utilidades enfocadas a modelar y desarrollar entornos robotizados. A continuación se presentarán dos de dichas plataformas y se nombrará una tercera que tiene la particularidad de estar desarrollada en España por la Universidad Rey Juan Carlos. ROS, acrónimo de Robot Operating System, es una infraestructura flexible para escribir software para robots. Se trata de una colección de herramientas, bibliotecas y normas que pretenden simplificar la tarea de crear software complejo y robusto para una gran variedad de plataformas robóticas [17] . La justificación de la aparición de ROS descansa en el hecho de que la creación de software de propósito general para robots es una tarea costosa. Desde la perspectiva de un robot, los problemas triviales para un humano se convierten en una maraña de instancias a tareas y entornos variados. El manejar estas variaciones es tan complejo que una persona sola , un laboratorio o una institución no puede hacerlo por sí mismos. En consecuencia, ROS fomenta la creación de software para robots de una forma colaborativa. Por ejemplo, un laboratorio puede tener expertos en mapear entornos dentro de edificios, pudiendo contribuir a la creación de un sistema global de generar mapas. Otro grupo puede tener expertos en la utilización de mapas para navegar y otro diferente puede haber desarrollado un sistema de visión artificial para la identificación de pequeños objetos. ROS ha sido específicamente desarrollado para que grupos como estos, colaboren y basen sus trabajos en los trabajos de los otros. A continuación, se indicarán algunos de los componentes del núcleo de ROS para dar una idea de lo que se puede hacer con esta herramienta. Componentes principales: - - Infraestructura de comunicaciones. En el nivel más bajo de software, ROS ofrece una interfaz para el intercambio de mensajes entre procesos. Comúnmente esta interfaz de conoce como middleware. Dicho middleware ofrece las siguientes funcionalidades: Publicación/subscripción anónima al envío de mensajes. Grabación y reproducción de mensajes. Solicitud/respuesta a llamadas a procedimientos remotos. Sistema distribuido de parámetros. Características específicas para robótica. Definición de mensajes estándar para robots. Biblioteca de geometría de robots. Página 40 de 143 ESTADO DEL ARTE DE LA ROBÓTICA - Lenguaje de descripción de robots. Llamadas a procedimientos remotos anticipables. Diagnóstico. Estimación de postura, localización, mapeado y navegación. Herramientas. Herramientas para procesado de comandos. Rviz. Herramienta de propósito general para la visualización en 3-D de datos obtenidos de sensores, descripción de robots, ... rqt. Una infraestructura para el desarrollo de interfaces gráficas personalizadas para robots. Para continuar con esta breve descripción del estándar ROS se nombrarán algunas de las empresas e instituciones que han aceptado y utilizan este estándar: - Universidades americanas como: UC Berkeley, UT Austin, Oregon State, Stantford (donde se gestó ROS), ... Empresas. Algunas ya citadas en este trabajo como Rethink Robotics y Robotnik. Centros de desarrollo y tecnología como el de Bosch. Para terminar, se puede destacar el último libro publicado en el entorno de ROS: "Learning ROS for Robotics Programming", de los españoles Aaron Martínez y Enrique Fernández. Este último trabaja en Pal-Robotics otra empresa citada en este trabajo. Con un sitio web un poco menos amigable, está RTM, "Middleware for Robot Technology". Esta plataforma está promovida por organizaciones oficiales de Japón como NEDO (New Energy and Industrial Development Organization). Por resumir sería la plataforma equivalente a ROS pero en Japón. En el artículo "Prototype development of robot system using RT middleware and RSNP network protocol"[43], se hace una exposición de la utilidad de RTM, que se aprovechará en este trabajo para presentar dicha plataforma. Como se ha dicho RTM fue desarrollado, como un proyecto nacional en Japón hace 10 años, con el objetivo de facilitar la construcción de sistemas robóticos y de reutilizar el software para otros desarrolladores y usuarios de robots. Una vez que dicho proyecto se finalizó, todo el material y la plataforma se ha abierto para cualquier usuario y puede descargarse y consultarse en la web[44]. Siguiendo con el ejemplo de aplicación, se mostrará como se ha podido desarrollar un sistema robotizado, consistente en una cámara motorizada para el seguimiento y reconocimiento facial. Dicho proyecto se ha llevado a cabo de una forma sencilla por un alumno recién graduado en un plazo de dos meses. El sistema está compuesto por los motores de movimiento de la cámara, un sensor laser (LRF, laser range finder) y una cámara. El alumno hizo la programación en el entorno de RTM y reutilizó el software realizado por otro instituto para el reconocimiento facial. El laboratorio en el que se realizó la experiencia está especializado en sistemas mecánicos, por lo cual el desarrollo del software específico para el Página 41 de 143 ESTADO DEL ARTE DE LA ROBÓTICA reconocimiento facial es una tarea ardua y difícil. Por ello, la posibilidad de reutilización de software es vital. Como resultado se obtuvo un robot cámara, capaz de seguir a las personas y detectar la cara a través de la cámara. En las siguientes figuras se muestra el robot y el esquema del sistema. Figura 35: Cámara robotizada utilizando RTM[43]. Figura 36: Ejemplo de aplicación de RTC en el funcionamiento de la cámara[43]. Para redondear el proyecto y darle la característica de servicio al robot desarrollado, se utilizó RSNP (Robot Service Network Protocol), para dotarlo de la posibilidad de teleoperación. En la siguiente figura se muestra esquemáticamente el sistema desarrollado. Página 42 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Figura 37: Teleoperación utilizando Robot Service Network Protocol. Para finalizar, en la siguiente figura, se muestra esquemáticamente la composición de un robot, especificando sus módulos tomados del RTM y su capacidad comunicativa a través de RSNP, dando lugar a un sistema completo con características colaborativas. Figura 38: Sistema robótico modular colaborativo, basado en RTM y RSNP[43]. Como se ha dicho en la presentación de este apartado existe una plataforma desarrollada en España, para el desarrollo de aplicaciones en robótica, visión por ordenador, automatización del hogar o domótica y, en general, software relacionado con sensores, actuadores y otros dispositivos inteligentes. Esta plataforma es JdeRobot, una iniciativa OpenSource. Página 43 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Al igual que los dos ejemplos anteriores, se pretende facilitar y simplificar el acceso a dispositivos hardware para la creación de sus programas de control. Obtener la medida de un sensor es tan simple como la llamada a una función e, igualmente, actuar sobre un motor se conseguiría con la llamada a otra función. La plataforma se encargaría de que dichas llamadas actúen remotamente sobre los componentes a los que estarían conectados el sensor o el motor . Además la plataforma permite la simulación. En la actualidad según la información de su sitio web, el sistemas es compatible con los siguientes robots y servicios[78]: - Sensores RGBD: Kinect de Microsoft, Asus Xtion. El robot Pioneer de MobileRobotics Inc. El robot Kobuki (TurtleBot) de Yujin Robot. El robot humanoide Nao de Aldebaran. El quadrotor ArDrone de Parrot. Cámaras Firewire, USB, IP (como Axis). La unidad Pantilt PTU-D46 de Directed Perception Inc. Escáneres láser: LMS de SICK y URG de Hokuyo. La cámara EVI PTZ de Sony. Los simuladores Gazebo y Stage. Wiimote. Dispositivos domóticos basados en el estándar X10. En concreto en robótica incluye varias herramientas de programación y bibliotecas: - Sistemas de monitorización y teleoperación para varios robots, sus sensores y motores. Un componente para la calibración de cámaras y una herramienta de sintonización de filtros de color. La herramienta "VisualHFSM" para la programación del comportamiento de robots utilizando máquinas jerárquicas de estados finitos. 2.6. Instituciones de referencia en investigación en robótica A continuación y para finalizar el estado del arte de la robótica, se dará un breve repaso a algunas de las instituciones de referencia en proyectos de robótica, indicando los proyectos en desarrollo. Japón: Es el país que ocupa el primer puesto en investigación en robótica del mundo, lo cual viene demostrado por la cantidad de instituciones de prestigio que se dedican a la investigación en robótica. En “Robotics Research in Japan” [136], puede consultarse un directorio de estas instituciones. A continuación se citan algunas de ellas: La universidad de Tokio [137], con los siguientes laboratorios: - Ikuta: dedicado a la investigación en robótica médica. Arai [138]: dedicado a la investigación en programación estratégica de múltiples robots móviles, innovación en celdas de producción, servicio de diseño en robótica. Página 44 de 143 ESTADO DEL ARTE DE LA ROBÓTICA - - - Ota [139]: dedicado a la investigación en sistemas de múltiples robots móviles, diseño de sistemas para la manipulación en producción a gran escala, análisis de la conducta humana. Research Center for Advanced Science and Technology: dedicado a los robots en el espacio, aprendizaje en robots móviles Ishikawa Watanabe [140]: investigación en la teoría de fusión de sensores (Sensor Fusion), en control dinámico de imágenes, en arquitectura de visión y meta percepción. nakamura-okada [141]: investigación en emulación del cerebro en el procesado de información, robots médicos. ura [142]: dedicado a la investigación en robots submarinos. La universidad de Waseda, con los siguientes laboratorios: - Matsumaru [143]: investigación en bio-robótica y mecatrónica humana. Takanishi [144]: investigación en robots humanoides. Sugano [145]: investigación en comunicación humano-robot, creación de inteligencia y emociones en robots. Shuji Hashimoto [146]: investigación en procesado de imágenes, redes neuronales, robótica química. El instituto de Robots Humanoides (Humanoid Robotics Institute)[147], dedicado a la investigación en creación de emociones en robots humanoides, tele-robótica, comunicación no verbal con robots, integración de mecanismos físicos y psicológicos. La universidad de Nagoya, con los siguientes laboratorios: - - Ohka [162]: dedicado a la investigación en sensores táctiles, en tres áreas: sensores para robots, realidad virtual y psicofísica. Doki [163]: sus áreas de desarrollo en el entorno de la coexistencia entre robots y humanos son: movimiento, análisis del movimiento de sistema controlado y desarrollo de las técnicas de control más adecuadas para él; emoción, desarrollo de técnicas para entender las intenciones y emociones de los humanos y la forma en que los robots demuestran las intenciones y emociones a los humanos; procesado de señales y símbolos, como base de la tecnología para el control de movimientos y emociones. Fukuda-Vachkov [164] : sus áreas de investigación son el los micronano robots, en sistemas de inteligencia y en sistemas autónomos distribuidos. Estados Unidos: Se trata de otro de los países puntero en la investigación en robótica, a continuación se nombran algunas de las instituciones destacadas en este sector: - MIT [148]: En este enlace se puede consultar el boletín de proyectos de varios de los laboratorios del MIT, en total son 388 proyectos. Estos proyectos se financian y organizan de diversos modos: mediante patrocinadores, Página 45 de 143 ESTADO DEL ARTE DE LA ROBÓTICA - - - - cooperación interdisciplinaria entre laboratorios, programas de investigación comunes y iniciativas en general. Carnegie Mellon [149]: En la actualidad se están desarrollando muchos proyectos, que se pueden consultar en la referencia anterior, a continuación se enumerará alguno de ellos: Mejoras en los sistemas de navegación de vehículos terrestres de exploración espacial. Organización y adaptación de equipos formados por humanos y robots para la realización de tareas conjuntas. Sistemas para evitar colisiones en robot aéreos. Sense and avoid for unmanned aerial vehicles. Universidad de Pennsylvania [150]: En esta universidad está el laboratorio GRASP (General Robotics, Automation, Sensing and Perception), alguno de los proyectos que se están desarrollando actualmente son: Vehículos aéreos autónomos. Este estudio se realiza en colaboración entre alumnos de la universidad y expertos de empresas. Percepción, planificación, movilidad e interacción para la nueva generación de robots. Financiado por la National Science Foundation (NSF). Planificación del movimiento para plataformas móviles con capacidad de manipular objetos. Este proyecto se realiza en colaboración con la empresa Willow Garage y pretende mejorar la autonomía de robots móviles en espacios con muchos objetos y con puertas. Cámaras inteligentes. Desarrollo de redes de cámaras inteligentes para modelado de entornos, construcción de modelos 3D y vigilancia. Universidad de Texas [151]: En la escuela de ingeniería Cockrell de esta universidad, en el departamento de ingeniería mecánica, se desarrollan varios proyectos en el campo de la robótica. En particular: Estudios en biomecánica, diseño y fabricación de prótesis robóticas y de sistemas para amplificar la fuerza humana. El laboratorio "The Human Centered Robotics Lab" colabora con otras instituciones como NASA y DARPA (ya nombrada en este trabajo), en el desarrollo de robots semiautónomos, para apoyo a humanos con discapacidades. También se investiga en mejora de robots móviles en la búsqueda de la movilidad en todas las direcciones. Willow Garage [152]: Esta institución se encarga de desarrollar hardware y software libre para aplicaciones en robótica personal. En este trabajo, en el apartado de normalización, ya se ha hablado del middleware ROS (y se hablará en apartados posteriores), esta institución es la responsable del desarrollo y mantenimiento de esta plataforma. Las áreas de investigación son: Sujeción y manipulación de objetos por robots. Uno de los factores que diferencia a un robot de un dispositivo basado en un ordenador es la capacidad de interacción con el entorno, que puede suponer: coger objetos, colocarlos, ensamblarlos, abrir puertas, llamar a un ascensor, etc. Página 46 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Interacción robot humano. En esta interacción existen muchos retos y oportunidades para que sea segura, efectiva, aceptable e incluso divertida. Planificación de movimiento. En los entornos reales en los que debe moverse un robot existen numerosos obstáculos. El robot debe ser capaz de moverse por caminos que eviten colisiones. Percepción en los robots. El comportamiento adecuado de un robot en un determinado entorno y situación depende críticamente de una percepción robusta, exacta y sincronizada. Planificación de tareas. Se analizan las pautas para realizar tareas desde la percepción del mundo y la manipulación de objetos. Suiza: El "National Centre of Competence in Research (NCCR) Robotics"[130], es una institución nacional que está compuesta de varios grupos de desarrollo a lo largo de Suiza con el objetivo común de desarrollar nueva tecnología de robótica para apoyo a humanos. Su slogan es "Intelligent Robots for Improving the Quality of Life". Como instituciones punteras de desarrollo que forman los grupos de desarrollo están EPLF (École polytechnique fédérale de Lausanne)[131], ETH Zurich[132], University of Zurich[133] y Dalle Molle Institute for Artificial Intelligence[134]. En las últimas publicaciones de este centro de investigación están: - Investigación en la generación de mapas por robots móviles autónomos. Incremento en la motivación para la rehabilitación con robots, basada en juegos de competición y colaborativos. Aprendizaje de programación a través de la robótica. Página 47 de 143 ESTADO DEL ARTE DE LA ROBÓTICA Página 48 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS 3. Estado del Arte de la interacción social de robots con humanos En el siguiente apartado se particularizará en el estado actual de la interacción social entre robots y humanos. Para ello, se presentarán experimentos realizados en diversos ámbitos, que han sido expuestos en conferencias internacionales recientes. También se hará referencia a diversos productos comerciales que basan la interfaz de comunicación entre robots y humanos en una interacción social. 3.1. Sector industrial El sector industrial es el sector donde, históricamente más se ha hecho uso de los robots. El común denominador de este tipo de robots es el de un robot confinado en una zona exclusiva, realizando tareas repetitivas a gran velocidad, generalmente en procesos productivos de gran volumen. Anteriormente, en el apartado 2.3, se hizo una pequeña comparativa entre los robots convencionales y los nuevos diseños, dando algunos ejemplos. A continuación se darán algunas de las tendencias en los robots industriales modernos y de futuro: - - - - - Precios más competitivos: actualmente los robots industriales son más asequibles que en ningún momento pasado. Se han estandarizado y, fruto de la producción a gran escala, han bajado de precio, con lo cual, a pesar de que su demanda suba, el precio se puede mantener. La integración de los robots es sencilla, con una tendencia absoluta a una instalación "plug and play". Los accesorios, los modelos de robots y los controladores están diseñados para comunicarse fácilmente entre ellos. Esta compatibilidad hace que sea muy sencilla la creación de células de trabajo o fabricación, flexibles y fiables. Como ya se ha dicho, la estandarización, el hecho de que los diseños de robots se hagan sobre una misma base, afecta positivamente al mercado, al tener la posibilidad de acceder a series de robots (incluso de diferentes fabricantes) prácticamente intercambiables. Se ha incrementado notablemente la flexibilidad. Mejora de la versatilidad con la posibilidad de intercambio de las herramientas montadas en el extremo del brazo robotizado. Esta funcionalidad permite la consolidación de la realización de tareas simultáneamente o progresivamente a través de la posibilidad de utilizar herramientas muy especializadas como: sistemas de sujeción, sistemas de vacío, husillos de alta velocidad de giro, cilindros o taladros. Tecnología de dos brazos. Un ejemplo de este tipo de equipos se ha dado en el apartado anterior. Esta tecnología permite trabajar en escenarios de producción donde se precise gran nivel de destreza y agilidad. La posibilidad de programación dual para, por un lado trabajo colaborativo o, por otro, de forma separada, hace que el rango de aplicación sea muy amplio en, por ejemplo, líneas de ensamblaje, picking y carga. Página 49 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS - Visión artificial. La utilización de cámaras para guiado de robots a través de visión artificial hace que las tareas de recoger y colocar distintos componentes de diferente geometría, sea posible sin la necesidad de un cuidado especial en la orientación de los componentes en los dispositivos de alimentación. Además, en el caso de que en una misma línea de producción salgan diferentes productos, la modificación del software (al cambiar de producto) puede hacerse rápidamente, sin necesidad de ningún ajuste mecánico. Figura 39: Interacción robot-humano en el entorno industrial. Según lo expuesto, desde el punto de vista de la interacción social, habría que resaltar el hecho de que estos robots están pensados para un trabajo en un entorno colaborativo y cambiante. Esto obliga a modificaciones en los diseños como: mejoras en la percepción, modificación de su infraestructura, trabajan al lado de los humanos, la posibilidad de impacto es un riesgo grave que no se puede producir. El hecho de que la tarea cambie obliga a que las interfaces de programación deban ser sencillas y asequibles, y no necesitar de un experto. Otro punto de vista en el futuro de la robótica industrial es el aportado por la biónica, aprender de la naturaleza. Festo una empresa puntera en automatización, tanto en el ámbito industrial como en el de desarrollo de equipos didácticos, cuenta con una red de investigación en la que participan universidades e institutos de investigación, así como empresas dedicadas al desarrollo de nuevas tecnologías e inventores privados: la Bionic Learning Network[55]. Con esta organización Festo pretende: - Establecer redes y motivar a personas de distintos sectores para que desarrollen sus ideas con Festo. Aprovechar las tendencias más actuales en investigación y desarrollo, y probar nuevas tecnologías y métodos de fabricación con ellas. Fomentar la creatividad en los procesos de búsqueda de soluciones e impulsar el desarrollo previo de productos mediante la construcción de prototipos. Página 50 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS - Establecer un diálogo con los clientes y socios sobre las soluciones ofrecidas y consultar la opinión del cliente sobre temas de innovación. Visualizar de forma sencilla la competencia en materia de soluciones por parte de Festo con el fin de entusiasmar a los jóvenes por la tecnología y encontrar nuevos talentos. Figura 40: Entusiasma a los jóvenes por la tecnología de forma divertida: RobotinoXt[55]. El planteamiento de Festo es directo: ya sea por eficiencia energética, construcción ligera o integración de funciones: con el paso del tiempo, la naturaleza ha desarrollado estrategias de optimización diferentes para la adaptación a su entorno que se pueden aplicar al mundo de la tecnología. De ahí que la Bionic Learning Network, desarrolle, pruebe y mejore productos, sistemas y tecnologías mecatrónicos aprovechando las posibilidades que ofrece la biónica. Biomechatronic Footprint documenta esta evolución: del modelo natural al principio técnico básico a través de la adaptación biónica, llegando hasta la aplicación industrial. Figura 41: Biomechatronic Footprint: partiendo del modelo natural, al objetivo de la aplicación industrial[55]. Página 51 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Otro de los conceptos que vale la pena destacar en los nuevos diseños de robot, es el de la conducta colectiva, en concreto Festo en sus diseños también tiene en cuenta este factor, como ejemplo está el AquaJelly 2.0. Figura 42: Los AquaJellies demuestran como las acciones autónomas de los individuos pueden construir un comportamiento colectivo[55]. Los AquaJellies están dotados de tres tipos diferentes sensores: de presión, radio e infrarrojos. El medio de comunicación más utilizado entre ellos es el sistema basado en infrarrojos. Cada AquaJelly tiene once diodos emisores de infrarrojos sujetos a un anillo en el interior de su cabeza. Utilizando estas señales infrarrojas, hasta una distancia de 80 centímetro, los AquaJellies pueden, por ejemplo, maniobras evasivas efectivas si recibe la señal de otro que se aproxima. Para la comunicación con el usuario, los AquaJellies utilizan el sistema ZigBee[77], un sistema eficiente desde el punto de vista energético. Este sistema envía la información en tiempo real a través de un ordenador externo, que la publica en una WLAN utilizando una app para androids. Además de los sensores que recogen información del entorno, este robot tiene un sensor interno que monitoriza el consumo de energía y la que le resta. El sensor de presión permite su posicionamiento en una zona específica de presión. Cada AquaJelly decide de forma autónoma cual es su siguiente acción a realizar en función del estado de su batería, de la orientación de su sistema de propulsión y, además, de su proximidad a otro. La conducta general de un grupo de AquaJellies es contructiva, en el sentido de que, sin un control sobre el grupo en general, a través de las acciones individuales, surge un comportamiento global. Esto plantea un punto de partida y una inspiración para otros desarrollos, como podría ser el estudio de los patrones de comportamiento de grupos. Aplicando este principio al campo de la automatización, varios sistemas autónomos, descentralizados podrían comunicarse para un propósito específico y juntos resolver tareas complejas. Página 52 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS En el apartado de la robótica en España ya se introdujo el concepto de "SWARM", cuando se habló de los microrrobots, este concepto de inteligencia colectiva, descentralización, sistemas auto-organizados, también se podría aplicar a lo que se acaba de exponer de los AquaJellies de Festo. Se trata por tanto un término que designa un paradigma novedoso de interacción social entre robots y humanos, y entre robots y otros robots. Seguidamente se citarán otros dos proyectos que desarrollan e investigan en esta inteligencia colectiva. El primero de ellos es el proyecto TERMES desarrollado por Harvard[79]. Se trata de la construcción de estructuras 3D por un colectivo de robots, con la capacidad de escalar, inspirados en las termitas. Como se ve la inspiración en la naturaleza también está presente en este proyecto. Figura 43: El proyecto TERMES, "swarm intelligence"[79]. Este tipo de sistemas robotizado puede permitir la construcción de determinadas estructuras en zonas donde pueda existir peligro o sean problemáticas para los humanos, por ejemplo, zonas catastróficas o incluso entornos extraterrestres. Página 53 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS En este proyecto se trata de poner de manifiesto como robots simples, independientes con capacidades limitadas son capaces de hacer construcciones grandes y complejas utilizando un tipo simple de estructura prefabricada (algo así como un ladrillo). Las capacidades que tiene el robot son las siguientes: moverse hacia delante, hacia atrás, girar sobre sí mismo; subir y bajar un escalón de la altura de un ladrillo; y coger un ladrillo, moverse con él y depositarlo en frente a su misma altura. Pueden construir escaleras de ladrillos para acceder a niveles superiores. Su capacidad sensorial está limitada a percibir ladrillos y otros robots que están a su lado. Carece de información sobre el estado actual de la construcción y de lo que están haciendo otros robots más distantes[80]. Para garantizar que se consigue el propósito deseado, las reglas que sigue el robot se basan en la detección de ladrillos, como se ha explicado antes, y de una representación estática interna de la estructura final deseada. En una compilación offline, esta información se convierte en una serie de estructuras de caminos que van a seguir los robots. La única referencia fija para los robots será un ladrillo considerado como semilla. En la siguiente figura se muestran ejemplos de estructuras deseadas y su correspondientes "caminos de construcción". Figura 44: Estructuras y su "camino de construcción" correspondiente[80]. Página 54 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Cada robot repetirá la siguiente rutina: con un ladrillo, rodeará la estructura buscando el ladrillo semilla, subirá a la estructura siguiendo uno de los caminos permitidos, manteniendo la orientación respecto al ladrillo semilla, soltará el ladrillo en una posición vacía en función de los requisitos geométricos de la estructura; seguirá el camino para salir de la estructura; recogerá un nuevo ladrillo. Para más detalles de los algoritmos se pueden consultar el material adicional disponible a partir de [80]. En resumen en esta experiencia se muestra un sistema de construcción por múltiples robots donde se resuelve el problema de encontrar reglas de bajo nivel y simples que lleven a la consecución de objetivos más complejos de alto nivel. El segundo de los proyectos en la línea de la "swarm intelligence" es el desarrollado por el MIT consistente en robots con forma de cubo que se auto-ensamblan. En este caso no hay un ladrillo o estructura prefabricada que utilice el robot, sino que el mismo robot es parte de la estructura. Figura 45: M-Block, robot cubo desarrollado en el MIT [81]. La visión de los desarrolladores es conseguir que "enjambres" de robots puedan reparar temporalmente puentes u otras estructuras dañadas en situaciones de emergencia o que puedan construir y reestructurar andamios para proyectos de edificación. También podrían configurar distintos tipos de mobiliario o equipamiento pesado cuando se necesite. Y podrían, como en el caso de TERMES, ser utilizados en entornos hostiles o inaccesibles para los humanos[81]. Para terminar exponer someramente el novedoso sistema de movimiento y ensamblaje que tienen estos robots. Dentro de cada uno está montado un volante de inercia que puede girar a 20.000 revoluciones por minuto, cuando este volante se frena, aplica un momento angular al cubo. En los lados de los cubos y en sus caras, hay imanes permanentes que permiten que un cubo quede unido solidariamente a otro. En la referencia [81] pueden verse interesantes videos que muestran su funcionamiento. Página 55 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS 3.2. Educación Los robots están considerados como una herramienta muy prometedora para su utilización en educación. Es común, en enseñanzas básicamente técnicas, la utilización de robots para reforzar el interés de los más jóvenes en la tecnología. Las cualidades más destacables de los robots en este campo son: la fascinación que producen en los niños, atraen su atención y los motivan y también permiten el desarrollo, de una forma eminentemente práctica, de numerosas disciplinas [6] Ejemplos comerciales de este tipo de robots pueden ser: - - - Bee-bot, para niños muy pequeños con una interfaz de control minimalista. LEGO Mindstorms. Tiene una interfaz gráfica de programación, pero es necesario que el niño sepa leer. Según la web de LEGO estaría indicado para alumnos de ESO y Bachillerato [27]. LEGO WeDo, una versión más simple. Tiene unas posibilidades más limitadas y está orientado a niños de entre 7 y 12 años [28] La plataforma Arduino, presenta mucha flexibilidad, pero sería más adecuada para bachillerato o la universidad. Es complejo y no estaría muy adaptada para niños pequeños, salvo desarrollando unos ejercicios muy específicos [20] Thymio II es un pequeño robot móvil cuyo diseñado para niños. El robot tiene comportamientos pre-programados para iniciarse y para usuarios avanzados puede programarse con un lenguaje visual o incluso mediante scripts. En [6] puede consultarse el resultado de un interesante taller realizado con niños de diversas edades desde 4 hasta 18, donde se muestra como con un único robot: Thymio II, se desarrollan diversas actividades en función de distintas franjas de edad. Para ello se aprovechan las distintas posibilidades de interacción con el robot: observación de sus comportamientos preprogramados, interacción con la interfaz gráfica para realización de ejercicios más complejos y, por último, el acceso a todas las funcionalidades del robot, para realizar tareas más ambiciosas, a través de la programación por medio de scripts. Figura 46: El robot Thymio II [6] . Página 56 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Otra variante de la utilización de la robótica en educación es la experiencia descrita en [7] . Frente a lo comentado anteriormente, en este caso se plantea el aprendizaje desde la primera fase, es decir, el diseño de la propia morfología del robot. La pretensión es conseguir que el diseño de la morfología del robot sea la que propicie la consecución de la tarea frente a la programación. Esta experiencia está enfocada a estudiantes de nivel de estudios elevado: universitarios, doctorandos, profesores,... Huyendo de los kits disponibles en el mercado, como los mencionados antes, por diversos motivos: alto precio del kit, deterioro de los componentes al montar y desmontar varias veces, poca flexibilidad para incluir componentes que no sean del propio kit, ..., se utilizaron los componentes mostrados en la figura. Figura 47: Kit práctico de robótica: Pistola de encolar, barras de cola, placa electrónica EmbedIT con una batería LiPo y dos servomotores, bridas largas y cortas, cinta aislante y tijeras [7] . La utilización de los elementos descritos, además de ser de bajo coste, permiten que de una forma igualmente barata, se sustituyan e incluso se reutilicen sin ninguna pérdida de funcionalidad. Además el hecho de utilizar barras de cola, hacen que la infraestructura del robot sea blanda, otro de los objetivos del curriculum, que se podría resumir como un aprendizaje en el movimiento de robots de cuerpo blando. En la siguiente figura se muestran alguno de los resultados obtenidos en el curso. Página 57 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Figura 48: Las morfologías mostradas se pueden clasificar en tres grupos: con ruedas (a, b), barras con una masa frontal (c, d, f, g), sin miembros (e, h) [7] . En la línea de estas experiencias, en las que se plantea rivalidad y pruebas a superar para fomentar el aprendizaje basándose en la competitividad, están los robots utilizados en competiciones como las de sigue-líneas, sumo (sumo-bots), ligas de fútbol. En cuanto a los robots sigue-líneas se podría nombrar Thymio comentado en este mismo apartado y mOway mostrado en el apartado de los diseños de robots hechos en España. El principio de funcionamiento de estos robots sigue-líneas, suele ser el que son capaces de diferenciar líneas de color sobre fondo blanco por contraste, basándose en sensores ópticos infrarrojos (optoreflectivos infrarrojos) instalados en la parte inferior. Hay varias universidades e instituciones que fomentan este tipo de competiciones, en [115] pueden encontrarse numerosos vínculos a competiciones internacionales. En este tipo de encuentros se fomenta la divulgación de la ciencia y la tecnología. Suelen ir acompañados de la organización de conferencias y talleres, enfocados a que los asistentes tengan la posibilidad de construir y programar su propio robot. En la siguiente figura se muestra una imagen de un sumo-bot, perteneciente al equipo campeón, en el momento en que se escribe, en la liga nacional de robótica. Figura 49: Tercera generación de sumo. Diseño con cuatro motores [116]. Página 58 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS 3.3. Entretenimiento El uso de robots para el entretenimiento ha demostrado su popularidad en los últimos años, desde la aparición del primer robot de entretenimiento para el hogar en 1999: AIBO de Sony [117]. En la siguiente figura se muestra el modelo ERS-110. Figura 50: AIBO de Sony, especificaciones del modelo ERS-110[117]. Este tipo de robots presenta las siguientes características generales: - - - - Una arquitectura basada en el comportamiento. Para evitar que el usuario se aburra rápidamente del robot, presenta numerosas pautas de comportamiento distintas. Estas pautas o módulos de comportamiento son desencadenados por distintas acciones realizadas sobre el robot, detectadas por sus sensores. Aleatoriedad. Cada módulo de comportamiento consta de una máquina de estados finita, para ejecutar la acción en su contexto. Esta máquina de estados finitos se implementa de forma, que se puede añadir cierta aleatoriedad a la acción generada. Por ejemplo, si el robot se encuentra con una pelota rosa, la máquina de estados puede determinar con una probabilidad de 0,4 el darle una patada y con una probabilidad de 0,6, empujarla simplemente. De este modo se generan distintos comportamientos ante un mismo estímulo. Instintos y emociones. La simulación de instintos y emociones genera motivaciones para los módulos de comportamiento. Un ejemplo de distintas emociones, basadas en el estudio de las expresiones faciales, son: felicidad, aburrimiento, enfado, disgusto, sorpresa y miedo. Estas emociones se asignan a ecuaciones que gobiernan sus cambios, cambios motivados por los estímulos externos y por los instintos. Capacidad de aprendizaje. Se suele implementar la capacidad de aprendizaje por refuerzo. Por ejemplo, si una respuesta a un estímulo, se refuerza con una conducta positiva (una caricia), esta respuesta sube su probabilidad de ocurrencia frente a otras. Página 59 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS - - Progreso. El progreso puede definirse como el cambio lento de las tendencias en la conducta del robot. Dado que la conducta se representa como una máquina de estados finitos, con una probabilidad cambiante asociada a las transiciones entre estados, es directa su traducción a una estructura en forma de grafo. Cambiando la estructura del grafo, se pueden desencadenar cambios en las respuestas. De este modo, en la vida del robot se pueden observar cambios discontinuos en su conducta. Variedad de movimientos. El robot puede responder con una gran variedad de movimientos, sonidos, leds, para enriquecer y dar variedad a sus comportamientos. Otro ejemplo en la línea de AIBO y también de Sony es QRIO. Del cual se darán algunas características, pero hay que tener en cuenta que nunca llegó a comercializarse y se quedó en el estado de prototipo. En este caso se trata de un robot humanoide. QRIO está compuesto por 3 microprocesadores potentes, 38 motores, tres acelerómetros, dos cámaras (CCD) y siete micrófonos. Puede oír, hablar, cantar, reconocer objetos y caras, andar, correr, bailar y coger objetos. También puede levantarse del suelo cuando se cae[118]. Figura 51: Especificaciones básicas de QRIO[117]. Otro diseño no tan sofisticado como QRIO pero, por contra, con gran éxito en el mercado es FURBY de Hasbro. Este robot definiría los robots para entretenimiento tipo "juguete inteligente", y comparte las características generales citadas anteriormente para este tipo de robots: capacidad de aprendizaje, capacidad de modificar sus expresiones faciales, ... Página 60 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Figura 52: Furbies [119]. 3.4. Ancianos y enfermos En la sociedad actual, en prácticamente la totalidad de los países industrializados, el envejecimiento de la población es un hecho. Uno de los problemas sociales más importantes a resolver en esta sociedad envejecida, es el de incentivar la autonomía de las personas mayores, especialmente de aquéllas que viven solas o las que requieren atención o cuidado. En este contexto, los servicios robotizados, pueden suponer un gran apoyo para el cuidado de las personas mayores, tanto desde el punto de vista de apoyo físico como mental. Como se ha comentado en la anterior sección, existen diferentes robots tanto para apoyo físico y mejora de la movilidad, como para apoyo mental. Desde el punto de vista de la interacción social, el apoyo mental a los mayores presenta un reto. En el apartado anterior se habló de "Paro" como un robot terapéutico, ahora se comentará con un poco de detalle las características de dicho robot. "Paro" tiene cinco clases de sensores: táctiles, de luz, percepción de sonido, temperatura y de posición, con ello puede percibir a las personas y el entorno. Con el sensor de luz, puede diferenciar entre un entorno luminoso y uno oscuro. Puede sentir si se le acaricia o si se le pega, también si se ha cogido en brazos. Identifica la dirección de donde viene el sonido y diversas palabras como su nombre, saludos y halagos. "Paro" tiene la habilidad de aprender a comportarse del modo que el usuario prefiera y también a responder a un nuevo nombre. Por ejemplo, si se le acaricia, recuerda la última acción que ha hecho y la repetirá para que se le acaricie de nuevo. Si se le pega, recordará la última acción y tratará de no repetirla. En su interacción con las personas, responde como si estuviera vivo, moviendo su cabeza y sus patas, emitiendo sonidos y comportándose según el patrón preferido del usuario. También es capaz de imitar los sonidos que emite una cría de foca arpa real. Con estas cualidades, los efectos obtenidos con su uso terapéutico han sido: Página 61 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS - Reducción del estrés de pacientes y cuidadores. Estimulación de la interacción entre pacientes y cuidadores. Efecto psicológico en pacientes, mejorando su relajación y motivación. Mejoras en la sociabilidad de los pacientes, entre ellos y con los cuidadores. Desde el punto de vista de apoyo físico, los desarrollos en los denominados exoesqueletos sería lo más destacable. Actualmente, hay varios tipos de exoesqueletos desarrollados para diferentes aplicaciones, en la figura siguiente se muestran algunos de ellos. Figura 53: (a) MIT exoesqueleto; (b) MindWalker; (c) Austin Exoesqueleto; (d) AlterG Pierna Biónica; (e) Dispositivo de ayuda para caminar de Honda [1] . El "MIT exoesqueleto", ha sido desarrollado en los laboratorios del MIT y el movimiento es producido por un fluido magnético que cambia su viscosidad bajo los efectos de la electricidad. "MindWalker", se ha desarrollado en la Universidad de Twente en Holanda e incluye un "bio-sensor" basado en la captura de señales electroencefalográficas, es decir, en la captura de la actividad bioeléctrica cerebral. El "Austin Exoesqueleto" de la Universidad de Berkeley, se ha proyectado con el objetivo de unos bajos costes de producción para hacer el sistema más asequible. Para ello se ha simplificado el diseño y su programación. La "Pierna Biónica de AlterG" es una única pierna robótica utilizada para ayudar en sesiones de rehabilitación. Dicha pierna ayuda a los pacientes en terapias basadas en sentarse y ponerse de pie, caminar y subir y bajar escaleras. El "Dispositivo de ayuda para caminar de Honda", como su nombre indica sirve para ayudar a las personas con problemas, a andar y a subir escaleras. Lo más curioso es su diseño basado en una cadera artificial. Estos diseños citados se usan básicamente como apoyo a procesos de rehabilitación, de momento no pueden sustituir a la silla de ruedas como el dispositivo más usado para la vida cotidiana. Sin embargo, es de esperar que el papel de estos diseños cambie y evolucione para ser utilizado en todos los ámbitos de la vida de personas con movilidad reducida. Desde el punto de vista clínico, la utilización de estos robots ofrece numerosas ventajas comparados con los métodos tradicionales de rehabilitación. Con ellos, es posible realizar medidas objetivas de los progresos conseguidos por el paciente, permitiendo la programación de rutinas de entrenamiento personalizadas. Las trayectorias seguidas por el robot en cada paso son muy precisas, conseguir repetir un movimiento correcto exactamente igual cada vez resulta muy fácil. También, dependiendo de la estrategia del control, el sistema puede servir Página 62 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS como un medio de rehabilitación en sí mismo y no solo un apoyo para caminar. Este tipo de aplicación puede incluir una señal bioeléctrica para su funcionamiento, utilizando, por ejemplo, señales electromiográficas (EMG) como el "Traje robot" HAL visto en el apartado 2. Otra característica que tienen los exoesqueletos actuales es que requieren un cuidadoso análisis clínico del paciente para definir correctamente las condiciones de uso. De hecho, familiarizarse con el exoesqueleto requiere entrenamiento. Está claro que desde un punto de vista fisiológico, una mayor movilidad supone beneficios para la salud, reduciendo problemas típicos relacionados con el hecho de permanecer sentado mucho tiempo, por ejemplo pérdida de masa ósea, problemas del tracto urinario, escaras, diabetes y obesidad. Considerando aspectos psicológicos, el poder estar de pie y andar mejora el bienestar y le da al enfermo una nueva perspectiva de la vida. Incluso el uso de estos dispositivos en el día a día se puede incrementar la participación social del sujeto. Yendo más allá, imaginando en un futuro que cualquiera podría utilizar un exoesqueleto, simplemente para la realización de trabajos duros, manipulando cargas pesadas, no habría diferencia entre las personas "normales" y discapacitados en las funciones motoras [1] . Otro tipo de enfermedad que afecta a niños es el autismo, a continuación se expondrá un ejemplo de aplicación de la robótica a niños este tipo de dolencia. Los niños afectados por autismo se caracterizan por presentar déficits en tres áreas: interacción social, habilidades para la comunicación y en conducta estereotipada. El autismo es un tipo de deficiencia en el desarrollo de las capacidades cerebrales que no tiene cura y cuyo porcentaje de casos está en aumento. Las terapias para el tratamiento de esta enfermedad están enfocadas en conseguir que el comportamiento de las personas que lo sufren sea en todo lo posible igual al de una persona normal. El tratamiento de la enfermedad es tanto más eficiente cuanto antes se comience, siendo crucial hasta los seis años de edad. En el contexto descrito, la utilización de robots para el tratamiento de la enfermedad es un hecho, más en concreto los robots antropomorfos. La presencia de este tipo de robots hace que los niños sean más cooperativos en actividades interactivas. En [2] se describe un estudio realizado con niños autistas con el robot NAO [25] La utilización de este robot se justifica por ser uno de los más avanzados y fáciles de programar las rutinas terapéuticas para interactuar con niños autistas. Figura 54: NAO en el tratamiento del autismo [25] . Página 63 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Aunque no es el objetivo de este trabajo a continuación se reproducirán los módulos programados en el robot para la realización del estudio, ya que permiten ejemplificar cuál es el uso dado al robot y las tareas programadas: - Módulo 1: Introducción a la interacción. NAO está quieto durante 45 segundos y luego mueve la cabeza seguido de una pauta aleatoria de guiños de ojos. - Módulo 2: NAO habla. Se trata de una comunicación unidireccional; del robot al niño. - Módulo 3: NAO mueve los brazos. El robot extiende su brazo derecho y saluda, luego hace los mismo con el izquierdo. - Módulo 4: NAO reproduce canciones infantiles y guiña los ojos. - Módulo 5: NAO reproduce canciones y mueve los brazos. 3.5. Tareas domésticas En estos últimos años han proliferado en el mercado los robots dedicados a la limpieza del suelo. Se trata de un aspirador capaz de recorrer la casa recogiendo el polvo y salvando los obstáculos. La interfaz de usuario es un simple botón donde se conecta y él mismo es capaz de volver a su puesto de recarga al final de su tarea. Un ejemplo de este tipo de robots es Roomba[156]. Figura 55: Roomba, robot aspirador[156]. Otros tipos de robots similares son los que permiten cortar el césped y los dedicados a la limpieza de piscinas como Ambrogio [157] o Dolphin [158] respectivamente. Salvo estos tipos de robot descritos, la presencia de robots en el hogar es algo inusual, sin embargo, el hecho de que las tareas domésticas sean en general repetitivas y algunas incómodas sobre todo para personas de edad, hace que el uso de robots sea potencialmente muy interesante. Igualmente sería atractivo para las empresas dado el gran mercado que podrían representar. Página 64 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Para ilustrar este apartado se comentará una experiencia llevada a cabo para la realización de tareas domésticas y, lo que es más novedoso, basar la comunicación robothumano en el sentido común [5] . Está claro que si estamos en el escenario de la vida cotidiana, el sentido común sería clave para conseguir una comunicación adecuada entre un humano y un robot. Por ejemplo, para la realización de una tarea tan común como recoger la mesa después de una comida, supondría para un robot el conocimiento de un montón de información sobre objetos cotidianos, humanos y del entorno del hogar. Hipotéticamente el robot se haría preguntas como: ¿qué debo hacer?, ¿qué objetos debo recoger? o ¿a dónde hay que llevar esta taza sucia?. Ante tal complejidad, un humano realizará esta tarea mucho más rápido de lo que lo haría un robot. Esto se debe a que el robot no tiene el conocimiento, basado en el sentido común, que tiene el humano para esta tarea tan típicamente cotidiana. Una vez presentado el escenario y la situación a resolver, se plantea el reto de cómo extraer y representar automáticamente el conocimiento del sentido común y de cómo usarlo luego en robots que puedan realizar tareas domésticas. Este reto se realizará en dos pasos. Primero, se utilizarán los datos extraídos de "ConceptNet" y del motor de búsqueda de Google para darle atributos a los objetos. En segundo lugar, se utilizarán técnicas de aprendizaje basadas en Redes Neuronales Artificiales (ANN) y en Máquinas de Vector Soporte (SVM) para la clasificación de cada objeto en su clase de objetos correspondiente. Las clases de objetos utilizadas en esta experiencia son: objetos para lavar, objetos reutilizables y objetos para tirar a la basura. En la siguiente figura se muestran dichas clases de objetos tal y como se han definido en [5] Figura 56: Clasificación de objetos basada en sus propiedades.[5] "ConceptNet" [45] es una base de datos de conocimiento con una estructura basada en el sentido común. Contiene 24 relaciones para representar el conocimiento acerca de los objetos. Por ejemplo, "IsA" (EsUn(a)) representa que tipo de objeto es. "HasA" (tiene un(a)) representa qué objetos tiene a su vez. "AtLocation" (Enlalocalización) describe la ubicación en Página 65 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS la que se puede encontrar dicho objeto. "LocatedNear" (SituadoCerca) representa cerca de dónde puede ser localizado el objeto, etc. En la siguiente figura se muestra la estructura de la clasificación de tipo de objeto basada en ConceptNet4. Figura 57: Clasificación de tipos de objetos basada en ConceptNet4 [5] . Basándose en ConceptNet se obtendrán tres tipos de relaciones: Objeto-Lugar, ObjetoActividad y Objeto-Objeto. Como ejemplo para cuantificar estas relaciones se utiliza la puntuación obtenida en ConceptNet, haciendo la consulta del objeto (oi) y el lugar (pi) con la relación "AtLocation", como se muestra en la figura. Figura 58: Construcción de la relación objeto-lugar[5] De forma similar se construyen las otras relaciones citadas. Finalmente, basándose en una clasificación con Máquina de Vector Soporte (SVM) se obtienen los siguientes resultados. Tabla 2: Datos de relaciones obtenidos de ConceptNet4[5] . Página 66 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Además de la extracción de información de ConceptNet en la misma experiencia descrita también se ha utilizado la extracción de información de Internet, en particular del motor de búsqueda de Google. La justificación que dan los autores es de sentido común también, ya que Google tiene información de miles de millones de páginas web. Para la extracción de información se define la "Normalized Google Distance (NGD)" (Distancia normalizada en Google), de la siguiente forma: la NGD entre dos términos de búsqueda x e y será: 𝑁𝐺𝐷 𝑥, 𝑦 = 𝑚𝑎𝑥 𝑙𝑜𝑔𝑓 𝑥 , 𝑙𝑜𝑔𝑓 𝑦 − 𝑙𝑜𝑔𝑓(𝑥, 𝑦) 𝑙𝑜𝑔𝑀 − 𝑚𝑖𝑛 𝑙𝑜𝑔𝑓 𝑥 , log𝑓(𝑦) siendo: M: número total de páginas en las que Google ha buscado. f(x) y f(y) es el número de páginas en las que aparecen los términos x e y respectivamente. f(x,y) es el número de páginas que devuelve el buscador para la búsqueda de ambos términos x e y simultáneamente. En la siguiente tabla se muestran los datos obtenidos en la investigación, comparando las clasificaciones hechas basadas en ConceptNet y en Google y los resultados de clasificación utilizando SVM o ANN. Tabla 3: Comparación de lo obtenido en la clasificación "Tipo de Objeto". Como se ve los resultados obtenidos son muy alentadores para la aplicación de estas estrategias para la construcción de conocimiento basado en el sentido común. A continuación se mostrará en una tabla los detalles de los resultados obtenidos: Página 67 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Tabla 4: Detalles del resultado de la clasificación "tipo de objeto". 3.6. Entorno militar La aplicación de la robótica en el sector militar es vital, ya que directamente puede mejorar la seguridad de las personas y la seguridad de los países. Anteriormente en este trabajo, se han comentado las características de algunos robots utilizados en el entorno militar, como robots detectores de minas y robots de apoyo para facilitar la logística. Para ahondar en este tema se pueden incluir los diseños utilizados para reconocimiento y seguridad, su diseño genérico sería un robot móvil con dispositivos capaces de obtener imágenes y sonido, y su denominación es de vehículo no tripulado: "unmanned vehicle". Este tipo de vehículos se suele subdividir en función del medio para el que están diseñados: - UGV: Unmanned ground vehicle, cuando el medio para el que han sido diseñados es el terrestre; UAV: Unmanned aerial vehicle, cuando son vehículos que vuelan, por ejemplo, los drones; UAV: Unmanned underwater vehicle, vehículos submarinos; USV: Unmanned surface vehicles, vehículos marinos que van en superficie. Un ejemplo del primer tipo de robots es el XM1216 fabricado por iRobot [93], diseñado para operaciones militares en entornos urbanos, túneles, alcantarillas o conductos y cuevas. Este robot concretaría un poco su denominación genérica a SUGV, añadiendo la S de small, ya que se trata de un robot de pequeño tamaño. Página 68 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Figura 59: XM1216 SUGV de iRobot[93]. En el momento en que se escribe, este robot está en fase de evaluación por el ejército de los Estados Unidos (Army Evaluation Task Force) y se prevé que para el 2025 esté en servicio en todas las brigadas de combate del ejército (US Army BCT). Las características que presenta este robot son las siguientes: - Ligero, lo puede llevar un hombre, vacío pesa alrededor de 14,5kg. Y está pensado para incluir distintos accesorios con una arquitectura "plug-and-play" (obviamente estos accesorios incrementarían el peso de la unidad). Figura 60: XM1216, el SUGV ligero[95]. - - - Puede moverse a una velocidad de hasta 10 km/h, subir escaleras de 25 cm de altura y obstáculos verticales de hasta 30 cm. Puede vadear hasta 15 cm de profundidad. Está alimentado por dos baterías permitiendo más de 6 horas de autonomía. Leva cámaras térmicas de día y noche. Estas cámaras permiten la captura de imágenes en blanco y negro durante la noche y en condiciones de niebla, humo o de difícil visibilidad creadas en el campo de batalla. Láser Range Finder. Con un rango de 1 km. Un iluminador de infrarrojos. Un GPS Altavoces y un micrófono. Página 69 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Algunos de los accesorios "plug-and-play": - - Un brazo robotizado, con un extremo prensil y una cámara IP fija con gran angular. El brazo puede levantar hasta 6,8 kg de peso. También admite la transmisión de audio a través de la cámara IP. Un sensor EO/IR (electro óptico e infrarrojos), que permite reconocer objetivos localizados a una distancia máxima de 300m. Para el control: - Se puede controlar remotamente con un Microsoft Xbox 360 gamepad, ver Figura 61, con unos drivers especializados. También permite el control a través de un pequeño HaWC (HArm's Way Controller), ver Figura 62, preferido en entornos de combate. Figura 61: Microsoft Xbox 360 GamePad [95]. Figura 62: Harm's Way Controller[94]. Para visualización: - Un sistema de visualización y percepción de sonido: Tac-Eye, mostrado en la siguiente figura. Figura 63: Sistema de monitorización Tac-Eye[95]. Página 70 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Un ejemplo de vehículos aéreos no tripulados son los denominados drones. Estos dispositivos vienen siendo utilizados en el sector militar para numerosas tareas, que pueden resumirse en dos: - Reconocimiento y vigilancia. Drones armados con misiles y bombas. Actualmente, como consecuencia del desarrollo de este tipo de dispositivos, inicialmente para el sector militar, en la actualidad se están expandiendo, de modo que ya son utilizados frecuentemente en aplicaciones como [96]: - Reconocimiento arqueológico. Estudio del medio ambiente y la meteorología: estudios de clima, monitorización de tormentas, medida de glaciares, etc. Seguridad en general: vigilancia y control de multitudes. Lucha contra el fuego. En salud, envío de suministros médicos. Por ejemplo, vacunas, desfibriladores y otros suministros a zonas de difícil acceso o remotas. Control de ganadería y agricultura. Dónde está el ganado y cómo va creciendo el cereal. Fotografía aérea. Termografía. Inspección de sistemas solares, turbinas eólicas, líneas de alta potencia, utilizando cámaras térmicas. Un característica diferenciadora de los drones es su control, desde dos puntos de vista: - - la distancia desde la que es controlado. Los drones utilizados en operaciones militares como lucha contra el terrorismo, son capaces de actuar a mucho kilómetros desde donde son controlados. En [108] se habla de la muerte de un terrorista en Yemen por la acción de un dron norteamericano controlado desde Nuevo Mexico. Este tipo de comunicaciones a tan larga distancia son posibles sobre satélites; el número de operadores que los controla. En general son dos aunque en algunos caso pueden ser hasta tres. Uno se ocupa del pilotaje del dron y el otro está pendiente de las imágenes e información que el dispositivo envía. En la siguiente figura se muestra una cabina de control, que en poco se diferencia de la cabina de control de un avión tripulado. Página 71 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Figura 64: Control de un dron [109]. En cuanto a los denominados vehículos no tripulados de superficie, también se usan en el sector militar generalmente con propósito de defensa. De los primeros diseños de este tipo de vehículos fue el utilizado por organismo de defensa Israelí: Rafael Advanced Defense Systems, en respuesta a las amenazas terroristas a recursos marítimos. Este desarrollo en el sector militar ha llevado a su uso en otros sectores, por ejemplo en oceanografía. También es de destacar el uso propuesto de vehículos marítimos de carga sin tripulación. Aunque la tecnología para conseguirlo está lista, cuenta con la oposición de la industria. Este proyecto está liderado por el grupo de desarrollo Blue Ocean de Rolls-Royce y pretende eliminar toda la infraestructura que llevan los barcos de carga, relacionada con la tripulación: camarotes, calefacción y aire acondicionado, purificación de agua y su almacenamientos, etc, además de todos los gastos en sueldos de la tripulación. Esto supondría un 5% menos del peso total de la nave y un gasto de un 15% menos en combustible[110]. Para el control Rolls-Royce está creando un prototipo de sistema de visualización basado en realidad virtual que permitiría que el capitán (o el que esté a cargo de la nave) un ángulo de visión de 360⁰ desde un puente virtual. El capitán podría saltar de un puente virtual a otro, consiguiendo en la teoría una supervisión remota de varios barcos a la vez. Otra ventaja destacada es la eliminación de errores humanos (considerados como la causa de la mayoría de los accidentes) y también la pérdida de interés por parte de los piratas en el secuestro de este tipo de naves de carga. Finalizando con esta división de vehículos en función del medio por el que transitan, se pueden nombrar los vehículos submarinos. Una de las funciones fundamentales de este tipo de robots es para la búsqueda y eliminación de minas submarinas. Además de esta función militar, se están utilizando actualmente para fines civiles en la generación de mapas de suelo marino, con el objetivo de realizar muestreo geológico y desarrollar respuestas rápidas a eventos oceanográficos y geotérmicos. Página 72 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Una iniciativa muy importante (ya citada en este trabajo), surgida también del sector militar, que lidera el desarrollo de nuevos diseños de robots y mejoras en este campo es el "DARPA (Defense Advanced Research Projects Agency) Robotic Challenge"[111]. Se trata de una competición donde diseñadores de robots y de software rivalizan para desarrollar robots capaces de asistir a los humanos en situaciones de desastre, ya sea natural o provocado por el hombre. Está pensado para ser extremadamente difícil. Los equipos que participan, representan a las organizaciones más avanzadas en el estudio de la robótica del mundo. Se pretende que estas organizaciones colaboren e innoven en un corto intervalo de tiempo en el desarrollo de hardware, software, sensores e interfaces hombre-máquina para control, que permita a los robots conseguir superar las pruebas seleccionadas por DARPA, en función de su importancia en la respuesta a desastres. La final de este concurso está programada para finales de 2014, principios de 2015 y requerirá que los robots consigan superar un circuito de pruebas físicas, con hándicaps en la comunicación entre los robots y los que los controlan. El ganador se llevará un premio de 2 millones de dólares. Como ya se ha comentado en las pruebas preliminares realizadas en diciembre de 2013, el equipo con mayor puntuación SCHAFT (empresa creada por investigadores de la universidad de Tokio para poder participar en el reto), fue adquirido por Google, con lo cual indica el interés que promueve esta iniciativa. 3.7. Computación Ubicua y Sistemas Robóticos en la Nube En los apartados anteriores se ha dado un ejemplo de los últimos paradigmas en interacción social entre humanos y robots, en este apartado se presentará un paradigma genérico, aplicable a cualquier sector, que puede potenciar dicha interacción: la computación ubicua. A continuación se darán algunos aspectos relacionados con la computación ubicua[73]: A. Interfaz natural: en los ejemplos descritos, ya se ha indicado esta tendencia de cambio frente a los métodos típicos de interacción entre humanos y máquinas en general a través del ratón y del teclado. El nuevo paradigma debe tender hacia las distintas formas de comunicación que tiene los humanos entre sí: el habla, la escritura, los gestos, las miradas, etc. Para alcanzar un sistema perfecto de ubicuidad, todos estos medios deben ser utilizados y responder al nombre de interfaces naturales. B. Conciencia del entorno: los dispositivos que forman parte de la computación ubicua deben tener la posibilidad de adaptarse por sí mismos a las necesidades de los humanos, basándose en la información recogida del entorno físico y computacional. Por ello el sistema ubicuo debe obtener conocimiento para identificar el contexto actual y decidir qué hacer. C. Captura automática y acceso: los humanos no pueden tomar nota o grabar todo lo que sucede a su alrededor, perdiéndose en algunos casos información importante. La computación ubicua provee herramientas que pueden grabar Página 73 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS estos datos. Las aplicaciones pueden automatizar la captura de experiencias y luego dar acceso a dichas experiencias más tarde. Actualmente se puede decir que la robótica está teniendo su revolución ubicua, en la siguiente tabla puede verse una comparativa entre los paradigmas de la robótica, el supuestamente pasado y el presente y futuro. Tabla 5: Comparativa entre robótica personal y robótica ubicua[73]. Como ejemplo de computación ubicua, puede mencionarse Rity, se trata de un software robot autónomo. El programa puede transferirse entre robots y entre ordenadores. Se puede cargar el solo en otro robot móvil, como por ejemplo en MyBot, un robot simple utilizado para jugar en la "Robot-soccer association", una vez dentro de MyBot, puede utilizarlo para interactuar con el medio y enviar información a su "máster" (Kim Jong-Hwan, director del Robot Intelligence Technology Lab en el Institute of Advanced Science and Technology de Corea). Si el robot pierde contacto con su "máster", utilizará las cámaras que haya en el edificio para encontrarlo y luego se instalará en los ordenadores que estén al alcance del máster listo para recibir instrucciones. Cuando se muestra en la pantalla de un ordenador toma la forma de un cachorro de perro, como puede verse en la figura. Página 74 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Figura 65: Las múltiples cara de Rity el robot software[74]. Uno de los retos a conseguir para materializar la computación ubicua, es el conseguir que la programación se simplifique, para ello hay diversas iniciativas para su introducción en la formación de los niños (alguna ya se ha comentado en apartados anteriores). Por ejemplo, se puede citar LightUp, que permite crear circuitos electrónicos sin conocimientos teóricos, estimulando el principio de "aprender haciendo". Este kit tiene compatibilidad con la placa Arduino, con lo cual se puede programar rápidamente y construir circuitos interactivos. Figura 66: Kit de LightUp[73]. También existen plataformas abiertas de programación sencillas como "AppInventor"[75] creada en el MIT o "Scratch"[76], que permiten de una forma muy gráfica y sin nociones de programación hacer proyectos interesantes como juegos. Página 75 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Figura 67: Interfaz de trabajo de AppInventor[75]. Como se verá más adelante las plataformas Open-Source como Arduino y Raspberry Pi, también promueven la ubicuidad, haciendo posible a bajo coste, la realización de prototipos y sistemas robotizados. Su popularidad hace que aprender a utilizarlos, aprovechándose de las experiencias de otros, sea fácil y su bajo coste hace que el margen de error y posibles fallos, que incluso puedan destruir el aparato, sean asequibles. Otro concepto actual que tendría su aplicación a la robótica es el de nube, en este caso "Cloud Robotics". Este concepto establecería un escenario en el que diferentes tipos de robots intercambiaran información para desarrollar nuevas capacidades, incluso en el caso de que carecieran de sensores específicos. También se podrían realizar tareas complejas mediante la cooperación entre múltiples robots. Un elemento fundamental para este sistema de "Cloud Robotics" sería la obtención de datos de múltiples sensores. En [82] se plantea la problemática y se dan soluciones para el diseño de un sistema basado en la nube, que pone a disposición de diversos robots, información obtenida de sensores y guardada en una base de datos. En la siguiente figura se muestra la infraestructura propuesta. Página 76 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS Figura 68: Infraestructura de los recursos en Cloud Robotics[82]. En la infraestructura mostrada hay tres entidades fundamentales: los robots cliente, la base de datos y el llamado "Cloud Cluster Host". Los dos primeros no plantean ninguna duda, el tercero sería el servidor encargado de la gestión del tráfico de datos entre la base de datos y los robots cliente. Este servidor tendría dos funcionalidades: "Data Request Negotiator" que se encargaría de la interfaz entre el robot y la base de datos, clasificando las peticiones y satisfaciéndolas a diferentes precios, basándose en un determinado esquema de precios; y la otra funcionalidad sería el "Resource Allocator" que accedería al centro de datos y gestionaría cómo esos datos se sirven a los clientes (gestión de colas, almacenamiento intermedio para consultas repetidas,...). Más detalles técnicos sobre la implementación pueden obtenerse en [82], pero a continuación se resumirá el diseño del experimento realizado, ya que da una idea de aplicación de la "Cloud Robotics" a un caso concreto. El sistema propuesto permite a dos robots, sin sensores láser 3D, trabajar en paralelo para obtener mapas 3D, que han sido elaborados por otro robot. Los detalles son los siguientes: - - - Se ha construido una base de datos que relaciones el mapa 3D y datos de imágenes de una planta del edificio (ETH Zurich), datos obtenidos por el robot con sensores láser 3D. Todos los datos pueden ser consultados (en PostgreSQL), por cualquier usuario para obtener detalles de la estructura de la planta del edificio. Los robots clientes envían solicitudes para acceder a los mapas o a las imágenes al host. Este host puede acceder a los datos para buscar las información solicitada. Cada solicitud se gestiona por el host en función de un algoritmo predefinido de prioridad (parte de la investigación es la elaboración de un algoritmo que Página 77 de 143 ESTADO DEL ARTE DE LA INTERACCIÓN SOCIAL DE ROBOTS CON HUMANOS - - - satisfaga las peticiones óptimamente, ya que los robots demandan información en tiempo real). Los mensajes con las solicitudes están de acuerdo con las definiciones adoptadas de ROS (en este trabajo ya se ha hablado de ROS), por lo cual no se traducirán: navigation odometry messages, navigation occupancy grids, rosgraph logs, battery states, sonar arrays and slam gmapping entropies. Se generan comandos SQL basados en el instante (timestamp) y el identificador del solicitante, para acceder a los datos de la base de datos relacional. Para medir los resultados obtenidos en experimento se analiza el ratio tiempo de respuesta (Time of Response; ToR), definido como el tiempo que transcurre entre que se hace la petición de información y el tiempo en el que se reciben los datos. En los resultados obtenidos se pone de manifiesto como las solicitudes son satisfechas, y el papel importante que juegan los métodos para ordenar cómo se responden dichas solicitudes (scheduling method) y la gestión del búfer de información, ya que los robots clientes pueden tener distintas capacidades para guardar y procesar datos, y la red tiene que responder eficientemente a todos. Página 78 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE 4. Soluciones hardware/software libre. En un apartado posterior, como conclusiones de este trabajo, se expondrán las principales características hardware y software para el modelado de un hipotético robot para su utilización en diversos sectores. Como preámbulo a este apartado, a continuación se hará una exposición de las diferentes soluciones hardware/software existentes actualmente en el mercado. Para dicha exposición se citarán algunas experiencias de diseños de componentes de robots basados en las mismas. 4.1. Arduino En un apartado anterior, al hablar del estado del arte de la robótica se habló de Arduino en el contexto de Open-Source y, sobre todo, hardware libre, a continuación se expondrán algunos casos concretos de soluciones basadas en Arduino, junto con la justificación de la elección de dicha solución. Arduino es una plataforma Open-Source para programación, basada en una tarjeta de entrada y salida y un entorno de programación que implementa el lenguaje [49]. Alguna de las características diferenciadoras que presenta son: - - Arduino surge en el entorno de la educación, por lo cual es adecuado para iniciarse y conseguir resultados rápidamente. Se trata de un entorno multi-plataforma, que puede ejecutarse en Windows, Macintosh y Linux. Está basado en una interfaz de programación Open-Source. Se programa a través de USB, lo cual se adapta perfectamente a los nuevos ordenadores, frente a la utilización de puertos serie, ya en desuso. Se trata, como ya se ha dicho antes, de hardware y software completamente Open-Source. Se puede acceder a los circuitos electrónicos, adquirir los componentes y montar la placa por uno mismo. El hardware es barato, así como los componentes para reemplazar en caso de averías. Lo cual es muy importante, en esta sociedad de la información, hay una comunidad muy activa de usuarios que ayudan y comparten software y hardware por ellos desarrollado. En la siguiente figura se muestra un dibujo de la placa Arduino uno y a continuación se detallan las características hardware que presenta esta placa. Página 79 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Figura 69: Dibujo de la placa Arduino uno[49]. Los elementos que tiene la placa son los siguientes: - - 14 entradas/salidas digitales (pines 0-13), pueden ser entradas o salidas, se caracterizarán a través del software. 6 entradas analógicas (pines 0-5), son entradas analógicas dedicadas. Pueden tener valores analógicos (por ejemplo lecturas de tensión) y convertir estos valores en un número entre 0 y 1023. 3 salidas analógicas (pines 9, 10, 11), realmente son tres de los pines digitales mencionados anteriormente que pueden ser reasignados como salidas analógicas (por ejemplo sirven para modulación PWM). La placa puede ser alimentada a través de la conexión USB que tiene disponible. También se puede alimentar por el conector de alimentación en corriente continua, para ello se ha de indicar a través del jumper marcado con SV. En cuanto al software, para programar al Arduino es necesario bajar el entorno de programación llamado IDE (Integrated Development Environment) desde la web[20] . Desde el entorno de programación se puede acceder a numerosos ejemplos que hacen más fácil empezar a trabajar con la placa. La programación se realiza en C++, aprovechándose de un sinfín de bibliotecas ya desarrolladas que permiten la interacción con los elementos de la placa a través de funciones muy simples. El lenguaje ensamblador del microprocesador es transparente al usuario, ya que desde el entorno de programación, con la simple pulsación de un botón, el software compila y hace la comprobación de errores a la vez que traduce el código para ser interpretado por el microcontrolador. Página 80 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE 4.2. Arduino en la robótica Existen muchas referencias en publicaciones recientes a soluciones basadas en Arduino, en todas ellas se justifica su elección en base a alguna de las características mencionadas en el apartado anterior. Por ejemplo en el sector educacional se puede citar [50], donde se desarrolla un sistema de control para un robot bípedo utilizando MATLAB y Arduino. La justificación de la utilización de MATLAB se debe a que se trata de un software muy utilizado en educación en todo el mundo. En este trabajo se utilizó como base un robot Bioloid, al que se le hicieron ciertas modificaciones, entre ellas la placa Arduino Mega y sensores de fuerza en los pies, como puede verse en la siguiente figura: Figura 70: Robot Bioloid con sensores en los pies y Arduino Mega para el control de los servos[50]. La arquitectura hardware utilizada es la siguiente: - - Como ya se ha dicho Arduino Mega como microcontrolador. Comparado con otras placas tiene más entradas analógicas, permitiendo la conexión de sensores analógicos de corriente como los ocho sensores de fuerza utilizados en esta aplicación particular. Servomotores AX-12, se trata de servomotores inteligentes ya que poseen su propio microcontrolador. Este tipo de servos se pueden conectar en serie entre ellos y ser controlados por el mismo protocolo a través de una única línea serie. En la figura se muestra el esquema de la conexión. Página 81 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Figura 71: Esquema de la conexión serie de los servomotores a la placa Arduino Mega[50]. Un detalle a tener en cuenta es que, debido a que el objetivo es el control del robot desde un ordenador, en la comunicación de los servos se han utilizado dos puertos serie con diferente velocidad, algo que permite la placa Arduino Mega. En concreto, se ha utilizado una conexión de 1 Mbps para el control de los servos y otra de 9600 bps para la comunicación del robot con el ordenador. - Sensores de fuerza. Se han utilizado para la medida de las fuerzas de contacto con el suelo. Estos sensores se han conectado al puerto de entradas analógicas utilizando un circuito divisor de tensión y, a través de Arduino, se obtienen las lecturas en el ordenador, como puede verse en la figura: Figura 72: Conexión de los sensores de fuerza al ordenador a través del puerto serie del Arduino[50]. La arquitectura software utilizada: - Para el control del movimiento se ha utilizado un programa en MATLAB utilizando la toolbox de "Simulink" y la biblioteca para el control de los puertos serie ("Serial Port Devices"). El programa de MATLAB envía los comandos al Arduino que controla los servos y éste, a su vez, envía al ordenador las lecturas Página 82 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE de los sensores para su análisis, lográndose la retroalimentación necesaria para el control. Figura 73: Lazo de control utilizando la comunicación serie de MATLAB para mover el robot y recibir la retroalimentación de los sensores[50]. Relacionado con la aplicación de la robótica como apoyo a discapacitados o enfermos se puede citar [51]. En este artículo se presenta cómo realizar un guante electrónico (dataglove) de bajo coste. Dado el gran impacto que tienen enfermedades como los derrames cerebrales en las capacidades motoras de los que lo sobreviven, se plantea una nueva perspectiva en la terapia de rehabilitación. De hecho el recuperar la movilidad de las manos es una de las prioridades en las terapias de neuro-rehabilitación. Junto a las técnicas convencionales, han empezado a surgir nuevos sistemas basados en realidad virtual, que se presentan muy viables para la rehabilitación de supervivientes a derrames cerebrales. Las ventajas que aportan estos sistemas son, por un lado, el entorno seguro y controlado para la realización de las actividades de recuperación y, por otro, la posibilidad de realizar estas tareas desde un enfoque más divertido y atractivo. Estos sistemas basados en realidad virtual para la rehabilitación de las capacidades motoras de las manos precisan dispositivos que capturen datos asociados al movimiento de las manos. Para ello hay básicamente dos posibilidades: técnicas basadas en visión artificial o los guantes electrónicos o "datagloves". Los guantes electrónicos se usan comúnmente en sistemas de realidad virtual. Estos guantes tienen una serie de sensores que capturan información dinámica y estática relacionada con la mano y con los objetos que se pueden sujetar con la mano. En el mercado hay diferentes tipos disponibles, en la siguiente tabla se citan algunos de los tenidos en cuenta en la experiencia que se está citando. En particular se comparan varias opciones con el que se ha utilizado, el guante NED. Página 83 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Tabla 6: Comparativa entre el guante NED y otras opciones comerciales[51]. El objetivo de la comparativa es el de buscar una solución que una el bajo coste junto con la posibilidad de lograr un sistema multiplataforma, en ese sentido, la mayor parte de los guantes comerciales solamente son compatibles con el sistema operativo Windows. En las siguientes figuras se muestra el guante elegido y el detalle del circuito de implementación. El diseño adoptado incluye cinco sensores para detectar el movimiento de los dedos (detectan cómo se doblan), una unidad de medida 9DOF, un microprocesador "Arduino uno", un cable USB y un guante de licra. Además de estos elementos, también se han incluido dos actuadores piezoeléctricos para proporcionar feedback al usuario, en forma de vibración y mediante la emisión de sonidos a diferentes frecuencias. Figura 74: Detalle del circuito de conexión con el guante NED[51]. Página 84 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Figura 75: Detalle del guante NED (NeuroErgoDesign) [51]. Para finalizar con el resumen de esta experiencia, que, como todas las citadas en este trabajo, pretenden poder ser aprovechadas para inspirar otros diseños, se explicará someramente el esquema software utilizado para la comunicación entre el guante y el sistema de control. El objetivo fue el de desarrollar un juego que permita al usuario interactuar de una forma divertida. Este juego se hizo con el motor de juegos Unity [52]. En concreto el juego consiste en el control interactivo de un arco, para lanzar flechas. Figura 76: Juego controlado con el guante NED [51]. Basado en C#, se programó un script que escribe en el puerto serie, una secuencia de los valores correspondientes a las lecturas analógicas de cada uno de los sensores de flexión Página 85 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE de los dedos, seguido de los valores de inclinación, cabeceo y guiñada (términos más comunes en inglés: roll, pitch y yaw) obtenidos del giroscopio de la unidad de medida inercial. También en C#, se escribió otro script para controlar la conexión con el puerto serie (COM). Durante la ejecución, se lee la información escrita en el puerto serie y, en base a estas lecturas, gestionado por el script del juego, se interactúa con los elementos del mismo. Siguiendo con los ejemplos de la aplicación de plataformas libres al diseño de robots, se puede citar la referencia [53], donde se pretende desarrollar un sistema de "quadrotores" ( o quadricóptero, especie de helicóptero sustentado con cuatro rotores) con capacidad de trabajo en grupo. Como en los casos anteriores, la prioridad por sistemas libres viene determinado por el atractivo que supone el bajo coste y la posibilidad de hacer prototipos rápidamente y con pequeño impacto económico en caso de fallo, posibilidad que siempre está presente en el desarrollo de nueva tecnología. Figura 77: Quadrotor con Arduino[53]. En el resumen de esta experiencia se obviarán los pasos seguidos para el diseño físico del aparato y, por contra, se intentará detallar la arquitectura de control utilizada. La comunicación entre el quadrotor y el ordenador se resolvió a través de radio control, para lo cual se elaboró una interfaz de entre dicho radio control y la placa de desarrollo Arduino. Los comandos de control se envían sobre un protocolo basado en PPM (Modulación por posición de pulso). Otra singularidad de este proyecto, es que se trata de una experiencia en sistemas multiagente, el control central, por decirlo así, debe ocuparse de todo el grupo de quadrotores. Cuando el Arduino se conecta al ordenador base, se inicia con un nombre de dispositivo serie diferente, que tiene que ver con el orden en el que se conecta. Esto representa un problema, ya que un error de identificación puede hacer que las órdenes de control no vayan al dispositivo que se pretende, sino a otro quadrotor. Para evitar esta situación se desarrolló una regla "udev" que funciona en Ubuntu 12.04 y con dispositivos conectados a través de puertos serie[54]. Esta estructura permitió enlazar los dispositivos Página 86 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE serie, con su Arduino correspondiente y el quadrotor correspondiente, creándose un sistema único y consistente de localización. En cuanto al software de control, se escribió en Python y C++ para Robot Operating System (ROS) y en código para Matlab. En este proyecto se han aprovechado del valor añadido de la utilización de un middleware de código abierto, como ya se ha comentado en este trabajo, que representa ROS. Los componentes de ROS en el sistema se han utilizado para el control de bajo nivel de velocidad y posición del quadrotor desde el ordenador. La planificación de las trayectorias a seguir en los experimentos se escribió en Matlab. En la siguiente figura se muestra el esquema de control, donde también se ve que la estrategia que permite el control de posición y velocidad está basado en un sistema de captura de movimiento "Vicon", permitiendo el control en bucle cerrado. Figura 78: Flujo de datos en el software ROS[53]. ROS potencia la modularidad del sistema, ya que permite que las tareas se separen en nodos. Estos nodos se encargan de interpretar la posición del quadrotor a través de los datos obtenidos del sistema Vicon, procesar estos datos a través de un controlador en lazo cerrado, generar las órdenes de salida adecuadas para la interfaz de los quadrotores e interpretar la información de las trayectorias a seguir generadas en Matlab o desde un fichero. En las figuras se muestran los esquemas de dichos nodos y su interfaz con Matlab. Figura 79: Flujo de información entre Matlab y ROS[53]. Página 87 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE El nodo de comandos está pendiente de la comunicación serie con Arduino y el quadrotor. Recibe un mensaje de control con los valores de inclinación, cabeceo, guiñada y empuje. El nodo de control se encarga, como su nombre indica, del control del quadrotor. Recibe mensajes de la cámara (Vicon) con información de la posición y velocidad actual de cada quadrotor. También recibe información de la posición, velocidad y aceleración deseadas para el quadrotor. El mensaje de estado del quad contiene la información de la posición deseada y de la posición real, además de datos sobre el desempeño del controlador. El control del quadrotor durante un experimento consiste en pasar por diversas fases de vuelo. Para controlar el dispositivo en cada fase se ha implementado una máquina de estados finitos, que puede verse en la figura. Esta máquina permite solamente las transiciones seguras entre estados. Esta transiciones seguras se basan en el sentido común, por ejemplo, el quadrotor no puede despegar hasta que los motores estén en marcha y tampoco podrá apagar los motores si no está en el suelo. Figura 80: Máquina de estados del nodo de control [53]. Una transición importante a tener en cuenta es desde reposo (idle) hacia despegue (takeoff). Esto requiere la comprobación de que el quadrotor está cerca de la situación deseada de despegue, en caso contrario, se cancelará la operación. Esto es vital en el caso de trabajar varios quadrotores a la vez, ya que sus trayectorias podrían interceptarse en el despegue. La interfaz entre ROS y Matlab ha sido posible a través del paquete puente IPC, que no ha sido desarrollado por los autores de la experiencia, así como la interfaz con el sistema de monitorización Vicon. Esto pone de manifiesto la ventaja de utilizar plataformas abiertas para las arquitecturas software y hardware, ya que permiten utilizar herramientas muy potentes, ya desarrolladas por expertos en el campo concreto. Otro ejemplo curioso viene descrito en [56], donde se pretende realizar una especie de traje inteligente para su utilización en una sala limpia donde se fabrican obleas semiconductoras. En ambientes altamente automatizados, las aplicaciones y los dispositivos desaparecen en el entorno y los servicios cobran más y más importancia. Desde el punto de vista industrial Página 88 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE cada vez tienen más interés los sistemas electrónicos de bajo coste como por ejemplo redes ubicuas de sensores o, como en este caso, electrónica en tejidos inteligentes. El experimento concreto se basó en diseñar, basándose en prototipos de bajo coste, sistemas para actuar en caso de emergencia. Uno de los sistemas pretende llamar la atención del trabajador que, por la característica de su trabajo, pudiera estar muy concentrado, para ser evacuado o para transmitirle algún tipo de mensaje. El otro sistema se basa en la detección de una concentración elevada de un hipotético gas venenoso. Este tipo de gases se usan frecuentemente en industrial químicas o en las relacionadas con la fabricación de componentes microelectrónicos. Para el diseño del traje inteligente se utilizó la variante de Arduino, LilyPad. Este kit, similar a una tela, permite iniciarse en el desarrollo de prototipos hardware suaves que se puede vestir y otro tipo de dispositivos en telas a los que se pueden pegar distintos sensores y actuadores. En la figura puede verse el prototipo basado en LilyPad, bautizado como "Nose Strip", y con la función de detectar concentraciones peligrosas de gases y notificarlo al que lo viste a través de LEDs, de vibración y sonido. Figura 81: El prototipo Nose Strip para la detección de concentraciones de gases peligrosas[56]. El otro prototipo diseñado en la experiencia es el "Guide Buddy". Su objetivo es el de servir de guía en situaciones de alerta, ayudando a encontrar el camino de evacuación. Para ello se han dispuesto una serie de LEDs que son capaces de formar diferentes símbolos (por ejemplo flechas, símbolos de alerta, ...: ). Las placas electrónicas van dispuestas en el pecho y en la espalda. Tiene sensores de movimiento en el sobaco que permiten que el que lo vista, pueda cambiar de símbolos mediante gestos de su brazo (por ejemplo, al levantar el brazo indicar una señal de atención). Este dispositivo puede ser controlado por el que lo lleva o también controlarse remotamente desde una sistema global de seguridad. Página 89 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Figura 82: Prototipo "Guide Buddy"[56]. En resumen, esta experiencia muestra como el abaratamiento de los equipos hardware, sobre todo los basados en plataformas abiertas, permiten el desarrollo rápido de prototipos y cómo, con estos prototipos, se puede mejorar la seguridad, sin merma de la productividad, en entornos industriales muy automatizados y con frecuentes cambios. 4.3. Raspberry Pi Raspberry Pi es uno de los denominados ordenadores de placa reducida o placa única (SBC : Single Board Computer) de bajo costo, desarrollado en Reino Unido por la Fundación Raspberry Pi, con el objetivo de estimular la enseñanza de programación en las escuelas[57]. En el apartado anterior se comentó sobre Arduino, que básicamente es una placa de desarrollo con un microcontrolador, Raspberry Pi es algo más, similar al contenido que tendría un dispositivo móvil moderno. En la siguiente figura se muestran todas las partes de la placa y, a continuación, se describen[58]. A. El procesador. Se trata de un chip de 32 bit basado en la arquitectura ARM11 de 700 MHz. El modelo B tiene 512MB de RAM y el modelo A tiene 256MB. B. Ranura para la tarjeta de memoria SD (Secure Digital). Raspberry Pi no tiene disco duro, todo se guarda en la memoria SD. C. Puertos USB. El modelo B tiene dos puertos USB 2.0 y uno el modelo A. Los modelos antiguos presentaban el problema de la cantidad de corriente que podía dar el puerto USB. Algunos dispositivos USB pueden consumir hasta 500mA, mientras que la placa original solo soportaba 100mA; sin embargo las nuevas versiones cumplen totalmente las especificaciones USB 2.0. De todos modos, hay que prever el utilizar una fuente de alimentación externa si el dispositivo USB a conectar consume demasiado. D. Puerto Ethernet. El modelo B tiene un puerto estándar Ethernet RJ45. El modelo A no lo tiene, pero puede conectarse a una red cableada a través de un adaptador de USB a Ethernet. También hay la opción de conexión vía USB a través de una tarjeta. E. Conector HDMI. El puerto HDMI permite salidas de audio y video digitales. Soporta 14 resoluciones de video diferentes y la señal HDMI puede convertirse a DVI, compuesta o SCART con adaptadores externos. Página 90 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE F. LEDs de estado. Se tienen cinco indicadores LED. En la tabla se muestra su codificación. ACT PWR FDX LNK 100 Verde Rojo Verde Verde Amarillo Se ilumina cuando se accede a la tarjeta SD Conexión a una fuente de 3.3V Encendido si el adaptador de red es full duplex Indicador de actividad de red Encendido si la conexión de red es de 100Mbps Tabla 7: Indicación de los cinco LEDs de estado[58]. G. Salida de audio analógica. Es un mini jack estándar de 3.5mm, pensada para conectarse a unos altavoces amplificadores. En auriculares o altavoces sin alimentación externa, la calidad de sonido no es buena. H. Salida compuesta de video. Es un jack tipo RCA estándar, que permite la conexión a señales de video NTCS o PAL. Tiene mucha menos resolución que la salida HDMI. I. Entrada de alimentación. Raspberry Pi no tiene botón de encendido. El conector microUSB sirve como entrada de alimentación, no permite conexión para datos. Figura 83: Esquema de la interfaz hardware del Raspberry Pi[58]. Página 91 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE A continuación se muestran todas la conexiones de alimentación, entrada/salida del Raspberry Pi y luego se explican someramente[58]. Figura 84: Conexiones externas del Raspberry Pi[58]. A. Conexiones de entrada y salida de propósito general (GPIO). Están dedicadas a conectar botones, interruptores o controlar actuadores como LEDs, relés o motores. B. Interfaz de conexión para un display serie. Este conector permite la conexión de 15 pines para una pantalla LCD o OLED. C. Interfaz de conexión serie para una cámara. Permite la conexión directa de una cámara a la placa. D. Conectores P2 y P3. Se trata de los conectores con la placa Broadcom y con la controladora de red LAN9512. Dado que el chipset de Broadcom es de naturaleza propietaria, estos conectores no se les prevé mucho uso. Como periféricos a destacar para utilizar con Raspberry Pi se puede citar[58]: A. Una fuente de alimentación. Se conecta a través de microUSB y debe dar 5V y, al menos, 700mA. Un cargador de móvil no servirá. B. Una tarjeta de memoria SD. Se necesitará al menos 4GB y debe ser de clase 4. En las primeras versiones de Raspberry Pi, las tarjetas de clase 6 o más alta no son estables. También se puede usar una microSD con el adaptador correspondiente. C. Un cable HDMI. Necesario para la conexión a un monitor. D. Cable Ethernet. Para la conexión a la red de cable. Página 92 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Como sistema operativo, se han desarrollado versiones particulares de Linux, algunas de ellas son las siguientes[58]: - Raspbian. Es la recomendada oficialmente. Adafruit Raspberry Pi Educational Linux. Es una distribución que incluye herramientas y drivers útiles para el aprendizaje de electrónica. Arch Linux. Esta versión de Linux es para ordenadores basados en la arquitectura ARM, por tanto es compatible con Raspberry Pi. Xbian. Basado en Raspbian está pensado para usuarios que quieren utilizar el Raspberry Pi como un gestor de contenidos multimedia. Con las características dadas de Raspberry Pi se saca en consecuencia que se trata de una plataforma que puede ser utilizada en múltiples aplicaciones, por ejemplo como ordenador, para aprender a programar, siendo esta la aplicación que suscitó su desarrollo y también como plataforma para el desarrollo de proyectos electrónicos, que será la aplicación que más se ajusta al contenido de este trabajo. A continuación, en el siguiente apartado, se citarán algunos proyectos relacionados con la robótica que han sido implementados con Raspberry Pi. 4.3. Raspberry Pi en la robótica. Una de las aplicaciones más comunes de Raspberry Pi en relación con la robótica, es su utilización como ordenador (realmente se trata de un ordenador), en el sentido de funcionar como sistema de control avanzado y de coordinación de otros controladores presentes en el sistema. Por ejemplo en [59], se indica que la cooperación entre Raspberry Pi y el microcontrolador Arduino añade ventajas a los proyectos, ya que, por un lado, Arduino abre el acceso a la lógica de nivel de 5V (Raspberry Pi trabaja a un nivel 3,3V), limitando la posibilidad de dañar la placa Raspberry Pi y, por otro, Arduino permite organizar un sistema operativo en tiempo real. En este proyecto Raspberry Pi se encargaría de la gestión de control remota. Relacionado con lo anterior y con un esquema de control similar en [60] se refleja la utilización de Raspberry Pi y Arduino en el contexto de laboratorios remotos. Aunque no se trate directamente de robótica, el esquema hardware de conexión de dispositivos a Arduino y luego coordinados y controlados, con la gran capacidad de gestión de datos que tiene un ordenador como Raspberry, es muy interesante y directamente aplicable a la robótica. Raspberry también aportaría la capacidad de acceso a Internet o a otros sistemas de comunicación avanzados. En la siguiente figura se muestra el esquema donde las siglas CLEM significan: Cloud E-learning for Mechatronics. Página 93 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Figura 85: Arquitectura CLEM[60]. Otra experiencia que pone aprovecha las características de Raspberry Pi es la explicada en [61]. Se trata del desarrollo de un sistema de ayuda para la orientación dirigido a ciegos, también pone el apellido de bajo costo, característica directamente ligada a las plataformas Open-Source. En este caso este proyecto añade a lo que se ha comentado anteriormente, la posibilidades que tiene Raspberry Pi al tratarse fundamentalmente de un ordenador, y es el hecho de poder ejecutar software directamente instalado en su sistema operativo. Seguidamente se explicará someramente la arquitectura del sistema y se citarán todos los programas utilizados por el sistema para poner de manifiesto el potencial del software OpenSource. Figura 86: Arquitectura del sistema[61]. En el esquema de la Figura 86 se muestran los cinco módulos controlados por el programa. El módulo "Initializer", verifica que todas las bibliotecas están instaladas y que están todos los archivos de datos necesarios para el funcionamiento del sistema. La "User Interface" es la que obtiene la dirección de destino deseada por el usuario. La "Address Query" traduce la dirección deseada a sus coordenadas geográficas correspondientes. La "Route Query" obtiene las coordenadas actuales del usuario, a través del GPS y también las coordenadas de destino, Página 94 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE y, con ellas, calcula la ruta. El módulo "Route Transversal" es el que da las instrucciones de navegación, a través de sonidos, al usuario. Esta pequeña explicación se ha dado para tener una idea general de cómo funciona el sistema, pero lo que se pretende resaltar, y que se comentará a continuación es el conjunto de software Open-Source que se ha manejado: - Para la grabación de los sonidos utilizados se utilizó "Audacity"[62]. Para la reproducción de los sonidos "VLC Media Player"[63]. Para la conversión de texto en voz "Festival Speech Systhesis System(FSSS)"[64]. Para la conversión de voz a texto "PocketSphinx"[65]. Para el reconocimiento de voz y la interpretación de las órdenes: "Phonetisaurus"[66] y "MITLM"[67]. Para la navegación y creación de rutas: "Geo-Coder-US" [68](válido solo en US, si se pretende basar un diseño en esta idea habría que buscar alguna alternativa como, por ejemplo, Google Maps), "MoNav"[69]. En la siguiente figura se muestra el prototipo, donde se pueden ver los principales componentes hardware: el GPS, el Raspberry Pi y la botonera que sirve de interfaz de control, con el usuario (la otra interfaz de control sería la interacción mediante voz) Figura 87: Componentes del dispositivo guía, de izquierda a derecha, el receptor GPS Bluetooth, Raspberry Pi y la botonera de control[61]. Para terminar con los proyectos que utilizan Raspberry Pi como dispositivo de control se citará el esquema de control propuesto por Ali Lemus, un ingeniero de la Universidad Galileo, para el control de la "Bionic RoboHand"[70]. Este proyecto consiste en el control de una mano biónica con la voz o a través de ondas cerebrales y que también cumple con el objetivo que une a los últimos ejemplos mostrados: el bajo coste. A continuación se citan sus componentes fundamentales: - Emotiv EEG. Se trata de un dispositivo que lee las ondas electromagnéticas generadas por el pensamiento, obteniendo así un control total de la prótesis. Página 95 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Figura 88: Interfaz humano-ordenador basada en electroencefalogramas[70]. - - Raspberry Pi. Citado en este artículo como un dispositivo suficientemente potente para albergar un sistema de inteligencia artificial además de regular un bajo consumo de energía; esto la hace un componente ideal para ser incrustada en la prótesis[71]. La propia mano biónica, que está disponible para su impresión en impresoras 3D[72]. En la Figura 89 se muestra el primer prototipo de la "RoboHand", diseñada por un carpintero que perdió sus dedos en un accidente, como prótesis, que permite con el movimiento del brazo cerrar la mano y coger cosas. En la Figura 90 ya se muestra la prótesis salida de una impresora 3D, los archivos para su impresión son Open-Source. En esta figura está en manos del ingeniero de la Universidad Galileo, en el proyecto de su control automático. En dicha prótesis se plantea integrar el controlador, que tiene que ser de pequeño tamaño, por eso se ha optado por Raspberry Pi, además de la necesidad de gran capacidad de computación, requerido para el control basado en IA, como se ha comentado anteriormente. Figura 89: Primer prototipo de la RoboHand. Utilizada como prótesis sin control electrónico[72]. Página 96 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Figura 90: Robohand impresa con impresora 3D, en el laboratorio de la Universidad Galileo, en fase de desarrollo de su robotización[70]. Página 97 de 143 SOLUCIONES HARDWARE/SOFTWARE LIBRE Página 98 de 143 MODELADO DE UN ROBOT 5. Modelado de las principales características hardware y software que debe presentar un robot En este apartado se realizará un estudio de las principales características que debería presentar un robot, acorde con la función que va a acometer. El primer planteamiento es fomentar la utilización de sistemas hardware y software abiertos. Primero por un tema de coste y segundo por la posibilidad de acceder libremente a toda la información. La arquitectura software del robot a modelar se basará en la utilización de un middleware, es decir un sistema servidor de recursos relacionados con la robótica, que se ejecuta sobre un sistema operativo, en apartados anteriores se explicaron las ventajas que aporta. El middleware propuesto será ROS (en la investigación de este trabajo se han encontrado varios ejemplos basados en esta arquitectura: Rethink Robotics [4] Aldebaran Nao [25] , Husky [14] , Robotnik [36], Pal Robotics [35], mOway [40], [53], [83], [103], [104], [105], [106], [107]). A continuación se darán detalles de algunos componentes fundamentales de este sistema, con el objetivo de presentar el esquema software genérico propuesto. Un componente fundamental de ROS es el NODE[87], en adelante nodo. Un nodo es un proceso que realiza algún tipo de operación, esta operación se trata que sea simple, de forma que, por ejemplo, un sistema de control de un robot esté formado por varios nodos, en algún caso por muchos. La forma de trabajar varios nodos entre sí, formando lo que se denomina un grafo (graph), es a través de una estrategia de comunicación basada en tópicos (topics), servicios RPC (Remote Procedure Call) y servidores de parámetros (Parameter Server). Un ejemplo de sistema de control de robot podría estar formado por un nodo para controlar un telémetro (range-finder) láser, otro nodo controlaría los motores de las ruedas del robot, otro nodo ejecutaría los algoritmos de localización, otro planificaría las rutas, otro permitiría una visualización gráfica del sistema, y así sucesivamente. Otro componente citado en el párrafo anterior es el TOPIC[88]. Un topic es un bus por el cual los nodos envían o reciben mensajes. En el esquema de intercambio de información de ROS, los nodos no están pendientes de con quién se están comunicando, sino, que están pendientes de los datos de un determinado TOPIC, a través de una subscripción; los nodos que generan datos, los publican en un determinado TOPIC. En ROS puede haber múltiples "publicaciones" y "subscripciones" a un mismo TOPIC. Los TOPICS están pensados como un mecanismo de comunicación continuo y unidireccional (streaming). Si un nodo necesita hacer una llamada a un procedimiento remoto, por ejemplo, recibir una respuesta a una solicitud, se debería utilizar un SERVICE. Los SERVICES [89] en ROS representan el paradigma de intercambio de información en el que se solicita (request) a través de un mensaje a un nodo desde otro y ese nodo responde con otro mensaje (response). Página 99 de 143 MODELADO DE UN ROBOT De este modo, un nodo puede ofrecer un servicio (server) y cualquier otro nodo puede utilizarlo (client) llamándolo junto con un mensaje y esperando una respuesta de éste, en forma de otro mensaje. Los MESSAGES [90] en ROS son simplemente estructuras de datos, compuestas de distintos campos con un tipo de dato definido. Como tipos de datos se tendrían los tipos de datos estándar (integer, floating point, boolean, etc) y también se podrían utilizar vectores de datos estándar (arrays). En resumen, los MESSAGES son como las STRUCTS de C. Para el funcionamiento de un sistema basado en ROS, es decir para que los nodos ejecuten sus acciones en función de datos que obtengan de otro nodos, o de comunicaciones basadas en RPC, etc., se necesita otra entidad que hace la función de coordinación o MÁSTER. Este elemento es el "roscore"[91]. Al ejecutar "roscore", se pone en funcionamiento: - 1 el ROS Máster, que hace la labor de coordinación. En la siguiente figura [92], se muestra la secuencia de eventos que se suceden en la comunicación de un nodo "Camera" y otro "Image_viewer", que ponen de manifiesto la función de máster. En la figura 1, el nodo "Camera" publica las imágenes en el topic "images", pero no hay subscripciones al topic luego no hay envío de datos. En 2, "Image viewer" quiere subscribirse al topic "images" para ver si hay alguna imagen disponible. En 2, el topic "images" ya tiene un publicador y un subscriptor, con lo que el nodo máster notifica a ambos: "camera" y "Image viewer", la existencia del otro, con lo cual ya puede comenzar la transferencia de imágenes de uno a otro. 2 3 Figura 91: Ejemplo del funcionamiento del servicio "master" ROS [92]. - - el servidor de parámetros de ROS, que es utilizado por los nodos para almacenar o leer parámetros en tiempo de ejecución, haciendo además posible que el usuario pueda ver y/o modificar estos parámetros por terminal en tiempo de ejecución; el servicio "rosout", es un mecanismo que mantiene un log de los mensajes enviados al TOPIC /rosout. En función de estas nociones de ROS el planteamiento de la realización genérica del software propuesta se basará en los siguientes pasos: Página 100 de 143 MODELADO DE UN ROBOT - - Dispositivo IHM un software IHM(Interfaz hombre-máquina), basado en una interfaz múltiple, que permitirá interactuar con el control de diversas maneras: terminal, teclado táctil, dispositivo móvil, gestos, voz, EMG/EEG; un nodo que hará la función de puente, recibirá la información del software IHM y enviará comandos al sistema central para generar acciones; un nodo encargado del control central; un sistema de salida, encargado de que los actuadores (drivers para motores, válvulas proporcionales, etc.) o elementos de salida del sistema respondan según las acciones que el sistema de control les solicite. Los sensores necesarios para la ejecución de las acciones están dentro de este sistema. Puente ROS Topics /Services Puente ROS ROS Dispositivo Salida Topics /Services Figura 92: Esquema genérico de software basado en ROS. En la izquierda de la figura se muestran todos los elementos de interacción entre el usuario y el robot. Cada uno de estos representará un nodo dentro de la arquitectura de ROS, esto quiere decir que es un elemento con capacidad de comunicación a través de mensajes con otros nodos del sistema. Para lograr esto habría que crear las entidades definidas como "Puente ROS". El elemento ROS hará la función de máster, en función de las demandas recibidas de los elementos de IHM (Interfaz hombre-máquina), enviará las órdenes correspondientes a los actuadores para que las ejecuten. Por ejemplo, inspirado en [83], se plantea realizar un robot para asistencia física a un anciano o un discapacitado, que le permita moverse dentro de una casa, una silla de ruedas inteligente. La "interfaz hombre máquina" permite que el usuario pueda desplazarse a diferentes estancias simplemente diciendo en voz alta el nombre de la estancia. Los elementos software involucrados o nodos serían los siguientes: - Voz-texto: basado en PocketSphinx. Este nodo publicaría el texto obtenido de las órdenes pronunciadas. Página 101 de 143 MODELADO DE UN ROBOT - Sistema de navegación: este nodo estaría pendiente de los mensajes obtenidos del nodo anterior, y tendría acceso a la base de datos de ubicaciones, un servidor de mapas. Con esta información sería capaz de actuar sobre el sistema de navegación. Establecería los parámetros de velocidad y recibiría como feedback la información de la posición. Para poner de manifiesto la ventaja que supondría la utilización de software ya desarrollado, en la siguiente figura se muestra un esquema del sistema de control de navegación basado en ROS [83]. Figura 93: Sistema de navegación automático para una silla de ruedas[83]. Los nodos representados: move_base, Left PID_velocity, Right PID_velocity, diff_tf, map_server, pertenecen al entorno de ROS, no hay que desarrollarlos, solo reutilizarlos. Rviz es una plataforma de control y supervisión que, en este caso, además de permitir visualizar lo que está "viendo" la silla, también permite establecer un destino de referencia al sistema de control. Es decir además de la supervisión permite la interacción con el sistema, por ejemplo, si se están haciendo pruebas, durante el ajuste y el desarrollo del sistema robotizado. - Comunicaciones: este nodo se encargaría de la comunicación del sistema de navegación con sensores y actuadores. Los elementos hardware involucrados en este sistema serían los siguientes: Página 102 de 143 MODELADO DE UN ROBOT - - - - Una CPU encargada del control y de la "interfaz hombre máquina". Podría realizarse con Raspberry Pi, en [61] se describe una captura de información similar a la propuesta. Este elemento también podría ser la máquina que ejecute ROS en [84] puede obtenerse información de cómo hacerlo. Como sensores, al menos se necesitaría: - Encoder: ya que se trata de una silla de ruedas, el sistema puede realizarse con un planteamiento de movimiento diferencial de dos ruedas, con lo cual, para obtener información del movimiento, se instalarían sendos encoders en cada rueda. Como actuadores: - Driver para los motores. Se trataría de servomotores que tendrían instalado, como se ha indicado antes, un encoder para medir la posición angular y la velocidad de giro. Un punto a resolver sería la interacción directa con los actuadores y sensores. Dado que se trata de un control avanzado, se plantea un sistema en tiempo real, por ejemplo una conexión directa de un microcontrolador a cada entidad, dicho microcontrolador podría ser una placa Arduino. En caso de optar por Arduino, quedaría por resolver la comunicación entre la placa y el control central (Raspberry Pi), o más bien la entidad de control que sería ROS, para ello hay dos posibilidades: - rosserial_arduino [85]: esta herramienta proporciona un protocolo de comunicación compatible con ROS que funciona con la UART (Universal Asynchronous Receiver/Transmitter) de Arduino. Esto permite encapsular al Arduino como un nodo de ROS, que puede publicar y recibir mensajes. - ros_arduino_bridge[86]: esta herramienta permite el acceso a sensores analógicos o digitales, servomotores PWM y datos odométricos obtenidos de encoders. Según [86], pretende ser una solución completa para controlar un robot basado en Arduino desde ROS. Otro de los elementos a tener en cuenta en el modelado de un robot genérico, sería interesante tener la posibilidad de representarlo en 3D, añadiéndole elementos y poder hacer simulaciones con esta representación. También ROS ofrece herramientas para ello. El lenguaje de modelado es URDF (Unified Robot Description Format). Este lenguaje está basado en XML y puede ser visualizado a través de las herramientas de ROS como el simulador GAZEBO y la interfaz gráfica de usuario que permite representar en 3D al robot: Rviz. En [100] pueden verse ejemplos de varios modelos de robots representados según el formato URDF. En la siguiente figura se muestra el robot NAO en Rviz. En [102] se puede ver una animación de NAO donde se hace un control de su postura utilizando Rviz. Página 103 de 143 MODELADO DE UN ROBOT Figura 94: NAO en ROS [101] Para finalizar esta introducción general al modelado, se comentará otra herramienta interesante que facilita el diseño, sobre todo en casos en los que el robot tenga comportamientos complejos, dicha herramienta metodológica es la máquina de estados finitos, muy usada en los desarrollos de muchos automatismo industriales secuenciales. Como no podría ser de otra forma, ROS también tiene su propia aplicación de elaboración y simulación de máquinas finitas: SMACH[97]. En la siguiente figura se muestra un fotograma extraído de [97], donde se muestra como la ejecución paso a paso de la máquina de estados puede verse reflejada directamente en el robot, con lo cual la validación y depuración de la misma es directa, es decir, si el robot se comporta como debe. Figura 95: Ejecución directa de una máquina de estados en el robot. Página 104 de 143 MODELADO DE UN ROBOT Configuración del software Dado que en el modelado de los distintos robots, se propondrá como middleware y por tanto, como parte fundamental del software de control, ROS. A continuación se expondrá de forma general cómo se realizaría la parte de configuración. Al ser una exposición general con ejemplos, se podrá particularizar fácilmente a cualquier diseño y a cualquier entorno. La utilización de ROS como middleware supone la realización de los siguientes pasos: - La instalación de ROS, este paso es evidente. Sin embargo hay que tener en cuenta que ROS es un sistema muy grande, por lo cual hay que decidir qué instalar. Si se trata de la instalación en el robot, solo se necesitarían los paquetes básicos (ROS-base) junto con, como se verá después, otras funcionalidades, por ejemplo drivers de sensores, como se verá después. Es decir, las interfaces de simulación y diseño y programación no serán necesarias junto con los tutoriales. Para tener más información sobre las instalaciones de ROS se puede consultar [159]. - Una de las ventajas de utilizar ROS, como ya se ha dicho, es que hay numerosas funcionalidades ya desarrolladas, por tanto, a la hora de configurar los sensores, se deben buscar preferentemente los sensores que soporte ROS. Si este es el caso, deberán instalarse los drivers. Una vez instalados los drivers, para la utilización del sensor se ejecutará el nodo que lo encapsula. Para interaccionar con este nodo, se consultará su lista de TOPICS, para ver qué información proporciona. A continuación, extraído del capítulo 4 de [160], se muestra la secuencia de pasos a seguir en ROS para utilizar un telémetro láser Hokuyo URG-04lx: Instrucción para la instalación de los drivers: $ sudo apt-get install ros(versión de ROS)-laser-drivers Verificación de la instalación correcta del driver: $ ls -l /dev/ttyACM0 Ejecución del nodo, es decir, encendido del láser (previamente habría que ejecutar el roscore, como se verá después): $ rosrun hokuyo_node hokuyo_node Para obtener la lista de TOPICS: $ rostopic list En este caso en particular, de todos los TOPICS de este nodo estaría el /scan que es el TOPICS en el cual el nodo publica la información recibida, ejecutando la siguiente instrucción se obtendría un ejemplo de la información que publica el nodo: $ rostopic echo /scan. La información publicada sería de la forma: Página 105 de 143 MODELADO DE UN ROBOT --header: seq: 3895 stamp: secs: 1358076731 nsecs: 284896750 frame_id: laser ... ranges: [1.1119999885559082, 1.1119999885559082, 1.1109999418258667, ...] intensities: [] --Figura 96: Ejemplo de información publicada por un sensor en ROS[160]. - - - En el caso de actuadores, los pasos a seguir serían similares al caso, ya visto, para sensores. A continuación se muestra un ejemplo para la utilización de un servomotor Dynamixel [160]. Instalación de los drivers: $ sudo apt-get install ros-(nombre de la versión de ROS)-dynamixel-motor Ejecutar roscore, y luego poner en marcha el controlador del actuador: $ roslaunch dynamixel_tutorials controller_manager.launch. El ejecutar esta instrucción el sistema responderá mostrando información del motor detectado. Accediendo a su lista de TOPICS ($ rostopic list) se obtendrá un TOPIC donde se publica el estado del motor. Para mover el motor se ejecutará: $ roslaunch dynamixel_tutorials controller_spawner.launch. Como en el caso anterior en la lista de TOPICS se obtendrá la instrucción para mover el motor. Con la siguiente instrucción se moverá el motor 0,5 radianes: $ rostopic pub /tilt_controller/command std_msgs/Float64 -- 0.5. El TOPIC para actuar sobre el motor es command. En el caso de conexión de los sensores o los actuadores a través de Arduino, posibilidad que también se propone en este trabajo, el paso a seguir sería utilizar la librería rosserial_arduino, de este modo en la propia IDE de Arduino, se tendrá la opción de acceder a esta librería (ros.h), con lo que se podrán crear messages y topics y el código de Arduino quedará encapsulado como un nodo de ROS. Si se utilizan librerías de ROS, para aprovechar una determinada funcionalidad, los pasos a seguir serán los mismos que en el caso de sensores o actuadores, ya que las funcionalidades en ROS se implementan como nodos, que publicarán topics o los suscribirán y/o serán accesibles a través de mensajes, vía services. En [160] en el capítulo 7 se muestra un ejemplo de cómo se puede utilizar la "Navigation Stack", que permite la movilidad autónoma de robots a Página 106 de 143 MODELADO DE UN ROBOT - - - través de mapas, la creación de mapas a través de los movimientos de un robot, ... También en [161] en la wiki de ROS se pueden consultar detalles sobre configuración, requisitos del robot (que TOPICS debe publicar para su interacción con la biblioteca Navigation, ...), ejemplos y tutoriales. En muchos de los diseños que se propondrán, esta funcionalidad tiene muchísimo interés, por ejemplo: robots militares terrestres, robots domésticos, robots para entretenimiento, ... Ejecución del roscore(para ello se escribirá $ roscore en la interfaz de comandos), este elemento ya se ha descrito en la introducción de este apartado y es imprescindible para el funcionamiento del sistema, ya que hace la función de máster y es el que coordina los intercambios de información entre los nodos. roscore también arrancará el servidor de parámetros, ya que los nodos pueden arrancarse parametrizados o cambiarse los parámetros en ejecución. Arranque de todos los nodos que formen parte del robot, para ello en ROS pueden definirse los archivos launch, en el que se indicarán qué nodos y con qué parámetros deben lanzarse. Como se ha indicado, los nodos asociados a la interacción con los sensores, al ejecutarse, publicarán como un TOPIC, las lecturas que realizan. Los nodos asociados a acciones, estarán pendientes de la recepción de los comandos que los pongan en funcionamiento 5.1. Sector industrial Tal y como se puede deducir de los apartados anteriores, la característica principal que tiene que tener un robot moderno para el sector industrial es la flexibilidad, así como una capacidad de interacción con el entorno y con los humanos mucho mayor, respecto a los típicos robots industriales, confinados en su parcela y con tareas muy concretas y especializadas. A continuación se citarán las características más importantes, que fruto de este trabajo, se deberían considerar para el modelado de un robot industrial moderno: Hardware: Infraestructura física Una característica fundamental que se busca en los nuevos diseños de robots para este sector es la flexibilidad en las labores que el robot puede realizar. Esto implicaría que su infraestructura sea ligera para facilitar su cambio de emplazamiento. Para la realización de tareas en la industria, un diseño genérico adecuado podría ser el basado en brazos con al menos siete grados de libertad. Para el modelado físico del robot se propone realizarlo a través de alguna herramienta basada en estándares de representación, en particular se propone URDF. URDF se ha descrito antes, solo se indicará que con esta herramienta, además de visualizar el diseño también se podrá simular y realizar pruebas de movimientos de los distintos órganos móviles, para comprobar su alcance, maniobrabilidad y posibles puntos de impacto. Página 107 de 143 MODELADO DE UN ROBOT Otro detalle importante a tener en cuenta, es la compatibilidad con herramientas para el montaje en el extremo del brazo robotizado. Esto resulta evidente si, como se viene comentando, el robot debe ser capaz de realizar muchas tareas distintas, tareas que, por otro lado, deben ser muy precisas. Esta última funcionalidad no debe desmerecer a los robots industriales clásicos, donde la precisión, la repetibilidad, la velocidad de procesado y la exactitud son sus características más representativas. Lo comentado en el párrafo anterior supone un cuidadoso diseño para el extremo del brazo, para facilitar el "cambio rápido de herramienta". En muchas máquinas de control numérico modernas se puede encontrar inspiración para estos diseños. Actuadores El elemento fundamental en este tipo de robots es el motor utilizado en el accionamiento de los brazos robotizados, para el que se propondrá el uso de un servomotor. Aunque se indicará luego en el apartado de sensores, este servomotor estará provisto de un encóder absoluto. En cuanto a la herramienta base en el extremo del brazo se utilizará una pinza prensil, también accionada por un motor eléctrico. También es conveniente que el robot tenga posibilidad de emitir sonidos a través de un sistema de altavoces. El hardware de interacción con el robot y para su control se explicará en la sección de la "Interfaz hombre-máquina". Sensores Como se ha dicho, para el control de los servomotores se utilizará un encóder absoluto. También habría la posibilidad de utilizar un encóder incremental, pero se considera que el encóder absoluto puede facilitar el control de la posición. En los brazos o en las articulaciones, hay que prever la instalación de sensores de presión, ya que el robot trabajará con humanos, con lo cual debe poder detectarse el contacto. De igual forma, la pinza prensil debe dotarse de sensores de presión, ya que en un entorno flexible de fabricación puede tener que, por ejemplo, ser capaz de introducir huevos en envases o una bujía en una zona de difícil acceso de un motor. También debe instalarse en el robot un micrófono para posibilitar la captura de sonidos. Una funcionalidad que permitiría el poder realizar diversas tareas sin necesidad de una programación continua y específica para cada una, sería la visión artificial. Esto facilitaría enormemente la manipulación de piezas, sin necesidad de orientarlas o posicionarlas de una determinada forma para que el robot pueda cogerlas. Para ello se instalará una cámara. El software deberá permitir que a través de dicha cámara se puedan identificar personas, objetos y también la posibilidad de grabación de una Página 108 de 143 MODELADO DE UN ROBOT determinada secuencia de producción. Esta información grabada puede ayudar en caso de paradas de emergencia, averías continuadas, para el rediseño o ajuste de la hipotética línea de producción. Esta cámara también puede recoger datos de producción, importante a la hora de integrar el robot con el software de gestión de la empresa o para apoyo de las estrategias de trabajo colaborativo con otros robots. Infraestructura de control El hardware de control se basará en un ordenador de una placa, en particular, Raspberry del cual ya se ha hablado en este trabajo. Aunque Raspberry solo tiene dos puertos USB, estos pueden ampliarse por medio de hubs USB. Para la conexión de la cámara se utilizará uno de los puertos USB. Como Raspberry Pi no tiene entrada de audio, para obtener la captura de sonido puede utilizarse también la cámara, con lo cual la cámara se encargará de la obtención de imágenes y sonido. Para la conexión de los sensores, se plantea la utilización de una placa Arduino, de forma que la información de los encóders, se obtendrá a través de las entradas digitales y las lecturas de los sensores de presión a través de las entradas analógicas. Arduino también puede proveer la alimentación necesaria para los encóders. Los actuadores serán accionados desde la placa Arduino a través de sus salidas PWM. El control de la velocidad de los motores se hará a través de la modulación por ancho de pulso. Se considera que el motor viene provisto del driver correspondiente. La conexión de la placa Arduino a Raspberry Pi se hará a través de cable USB, como una conexión serie. Software: Sistema operativo y middleware El sistema operativo propuesto para albergar el sistema de control será un software abierto. Este sistema operativo se elegirá acorde al middleware, que será ROS, así que en este caso el sistema trabajará sobre linux, en concreto con Raspbian, la versión de Debian para Raspberry, ya que, como se comentó en el apartado de hardware, Raspberry será la opción para ejecutar el sistema operativo. En [98] pueden consultarse todos los sensores para los que existen drivers para ROS y también las interfaces para los sensores. En este caso habría que fijarse en los de "Audio/Speech Recognition", "Cameras", "Motion Capture", "Force/Torque/Touch Sensors" y "rosserial_arduino". Para el control de los servos también hay herramientas disponibles en el entorno de ROS, en particular para Dynamixel, hay tutoriales de ejemplo como "CreatingJointPositionController"[99]. La comunidad de ROS es muy activa en la solución de dudas y en la publicación de mejoras y novedades, en caso de utilizar otro fabricante de Página 109 de 143 MODELADO DE UN ROBOT accionadores puede consultarse la disponibilidad de herramientas ya desarrolladas y en funcionamiento. Conectividad y comunicaciones La conectividad debe ser otra prioridad a tener en cuenta. El robot industrial debe trabajar en equipo, por lo tanto debe facilitar la comunicación tanto con otros robots, con operarios o con cualquier otro tipo de hardware. Este tipo de robot debe ser interactivo y estar preparado para el trabajo colaborativo. De esta interactividad se hablará en el próximo apartado. Un punto fundamental es la conexión con el sistema de gestión de la empresa en la que esté instalado el robot. Para ello puede plantearse una conexión a través de Ethernet con la red corporativa, Raspberry presenta esta interfaz, así que habría que desarrollar un elemento software que transfiera información de producción obtenida por el robot, en formato xml, a una base de datos. A dicha base de datos podrá acceder el sistema de gestión. Un ejemplo de tipo de información a enviar podría ser: valor de un contador de repetición de un determinado ciclo de movimientos, paradas de producción, número de aperturas-cierres de la pinza prensil, ... La interacción con otros robots se facilita con el uso de un sistema tan modular como ROS, ya que puede plantearse un sistema de control que coordine una tarea compleja y a través de los intercambios de información basados en TOPICS, pueden obtenerse instrucciones en la IHM de un robot, que generen acciones en otro. Esto puede realizarse a través de Ethernet, ya que existe la posibilidad de comunicación entre NODOS que se ejecutan en distintos dispositivos físicos. En [83], se muestra un ejemplo de interacción entre distintos robots. Interfaz Hombre-Máquina El robot debe presentar una interfaz de programación sencilla ya que habrá cambios en su forma de trabajar que tendrán que ser indicados por un operario. Para ello el robot dispondrá de un modo de programación simple basado en la memorización de posturas que luego repetirá como una rutina. Para ello dispondrá de una pantalla táctil donde se podrá crear, modificar o eliminar una rutina de movimientos. Dichos movimientos se fijarán a través de una botonera, una en cada brazo robotizado, que permitirá su desbloqueo para moverlo libremente y con la pulsación de un botón, memorizará esta posición. Seleccionando la rutina en la pantalla táctil el robot la repetirá. El robot también responderá a estímulos sonoros, si está pensado para el trabajo colaborativo con humanos, podrá detenerse su movimiento, por ejemplo, en caso de algún riesgo de colisión, con comandos previamente establecidos por voz. Todo el sistema de control también será accesible a través de otro ordenador conectado a la red. Con esta interfaz más completa, se podrá acceder a todas las funcionalidades: programación de tareas complejas, por ejemplo las basadas en visión artificial, establecimiento de los valores de producción a recoger, .... Página 110 de 143 MODELADO DE UN ROBOT 5.2. Educación En la utilización de un robot en educación, la característica fundamental es la interacción robot-humano. Como se ha comentado a lo largo de este trabajo, el hecho de que los robots proliferen en todos los entornos del ser humano, hace que sea interesante el aprendizaje a programarlos e interactuar con ellos cuanto antes mejor. Además, si esta interacción es divertida y atractiva, puede conquistar a los niños desde edades muy tempranas. Tampoco hay que olvidar que, por muy sencillas que sean las interfaces de interacción, no dejan de ofrecer retos exigentes, que pueden llegar al infinito, con lo cual pueden ser un gran aliado para el desarrollo intelectual precoz de los niños. A continuación se indicarán las características más importantes para el modelado de un robot para educación e interacción con niños: Hardware: Infraestructura física Teniendo en cuenta que alguno de los campos que convendría fomentar para la competitividad de los niños del futuro son: el diseño, la electrónica, la programación y la integración, la propuesta para la infraestructura de un robot para educación será el de un robot que se pueda montar y construir desde cero, y en dicha construcción se pueda fijar su morfología. Una ventaja y valor añadido que aporta esta propuesta, es que las piezas que formen parte del robot pueden diseñarse de forma que el usuario tenga acceso a sus archivos para poder imprimirlas en impresoras 3D. Este enfoque, permite que los usuarios modifiquen los diseños de las piezas, o fabriquen diseños nuevos. En el momento en que esto se escribe, se publicitan cursos para aprendizaje de uso de impresoras 3D, que incluyen la impresora (que se monta en dicho curso, con un gran porcentaje de las piezas, las que no son metálicas, impresas por una impresora igual), por un precio de aproximadamente 700€[120]. Otro elemento hardware que se debería tener en cuenta en este tipo de robots es su fuente de energía, quizá lo más adecuado sea prever una alimentación a través de una batería recargable de LI-PO. Actuadores Como elemento fundamental, común en toda la robótica tendríamos el servomotor, con él se pueden controlar todo tipo de robots móviles. Un elemento prensil también tendría interés, ya que un ejercicio útil, tanto de diseño como de programación, podría ser el desarrollo de un prototipo de robot industrial. Un altavoz e indicadores luminosos. Sensores Página 111 de 143 MODELADO DE UN ROBOT Los elementos sensores deben poder añadirse al diseño de una forma modular. Alguno de los sensores básicos que se podrían nombrar serían: detectores de proximidad infrarrojos, sensores optorreflectivos infrarrojos (en caso de construir un robot tipo móvil, con estos sensores se podría programar la funcionalidad sigue-líneas), sensor de temperatura, sensor de intensidad de luz, una unidad de medición inercial (IMU). Opcionalmente debería preverse la compatibilidad con más sensores, por ejemplo: cámara con micrófono, otro tipo de detectores de proximidad, por ejemplo por láser. Infraestructura de control El planteamiento para el control se basará en hardware libre, tal y como, se ha comentado en apartados anteriores, el control se basará en Arduino, que en este caso fomenta el espíritu abierto de lo que debe ser un diseño realizado para educación y, por otro lado favorece el coste reducido del diseño. En la conexión de sensores a Arduino no hay problema ya que, a través de las entradas digitales y analógicas, se puede adaptar cualquier señal obtenida de un sensor. Arduino permite múltiples formas de interconectividad que como se verá en la parte de software se utilizarán para la interacción con el dispositivo que en este tipo de robot es fundamental: Conexión ethernet: como se verá, esta comunicación se implementará a través de una tarjeta para la conexión a redes WiFi y permitirá la interacción con el control a través de dispositivos móviles app. Conexión inalámbrica: permite la comunicación entre robots, esta comunicación, para introducir otra tecnología, se planteará utilizar el sistema ZigBee. Software: Sistema operativo y middleware En este caso como el sistema de control se basará en Arduino, en principio no se utilizará el middleware ROS para la interacción estándar con el robot. El hecho de no utilizar ROS, significa que habrá que desarrollar el código que permita obtener los datos de los sensores y el que permita accionar los actuadores. En la comunidad de Arduino existen muchos ejemplos de código desarrollado para multitud de sensores, bastaría con adaptarlo. Conectividad y comunicaciones La conectividad en este tipo de robot debe servir para dos puntos fundamentales. El primero será permitir la programación desde diferentes interfaces, esto se comentará en el siguiente punto, para ello se dotará a la placa Arduino con la posibilidad de conectarse a redes WiFi, por ejemplo con una "Wifi Shield"[113]. El segundo punto será la interacción con otro robot, como soporte para el envío de información de uno a otro o a otros. Página 112 de 143 MODELADO DE UN ROBOT Interfaz Hombre-Máquina Dado que el robot se plantea que sirva para su utilización en educación para diferentes edades, también se diseñarán diversas interfaces de programación. De hecho esta será la parte que más trabajo dará ya que, como se ha visto, este robot es totalmente modular, el software es el que hará el vínculo. Para los más jóvenes la programación se hará desde un entorno gráfico, donde se fijará el comportamiento del robot a través de una serie de acciones (cada una indicada con un icono, con posibilidad de una pequeña parametrización), como ejemplo se puede partir de los diseños de los grafos o de los autómatas finitos, con posibilidad de ejecución paso a paso. Este tipo de programación descrito puede versionarse para su ejecución a través de un dispositivo móvil o tablet con una App, a través de Ethernet, en el apartado anterior se ha indicado que a la placa se la puede dotar de conectividad WiFi. Otra interfaz a desarrollar, para la introducción a la programación, sería un entorno basado en Scratch, que permite introducir de una forma sencilla bucles, condiciones y otras estructuras de programación, junto con la gestión de eventos. Para la programación avanzada, como todo el diseño está desarrollado con hardware libre, se puede interaccionar con el robot a través de la conexión USB de Arduino a través de plataformas como ROS (ya visto rosserial) y a través de Matlab [112]. 5.3. Entretenimiento En el modelado de un robot para entretenimiento se optará por un robot tipo humanoide, con gran capacidad de interacción y sociabilidad. En este diseño también se tendrán en cuenta técnicas que permitan desarrollar distintas conductas en respuestas a estímulos externos (incluso ante el mismo estímulo). Hardware: Infraestructura física Como se ha indicado en la introducción se tratará de un robot humanoide. Se puede buscar inspiración en diseños como el QRIO, presentado en el apartado 3.3 o Jimmy de Intel, comentado en el apartado 2.3. Este robot humanoide debe ser capaz de andar y de agarrar objetos, con lo cual tendrá manos. Se propone realizar el modelado a través de la herramienta URDF, de este modo a través de su visualización en rviz, se puede obtener una visión 3D de cómo va quedando el diseño. Del mismo modo a través de esta herramienta se podrán realizar simulaciones de movimientos. Se instalará un batería de LI-PO, recargable a través de USB. Actuadores Página 113 de 143 MODELADO DE UN ROBOT Al tratarse de un robot móvil, el actuador fundamental, como ya viene siendo habitual, es el servomotor. Este robot podrá emitir sonidos, con lo cual se instalarán altavoces. Sensores Como robot humanoide para la interacción estará dotado de sensores que emulen los sentidos humanos: sensores de presión, cámara con micrófono, sensor de temperatura. Para la gestión de la posición, fundamental para el movimiento se necesitará una unidad de medición inercial (IMU) y detectores de presión en los pies (para la aplicación del "Zero Moment Point", como se verá en la parte de software). Infraestructura de control Como en todos los modelados de este trabajo se planteará un sistema de control basado en un ordenador de una placa como Raspberry Pi. En modelados anteriores y en la especificaciones dadas sobre esta placa, se ha puesto de manifiesto que Raspberry Pi ofrece todas las capacidades de conexión necesarias. También como en algún caso anterior, la conexión a los sensores se hará a través de Arduino, que permitirá una interacción directa con los mismos y la posibilidad de encapsularlos en una unidad o nodo que intercambiará información con el sistema de control, ubicado físicamente en la placa Raspberry Pi. Software: Sistema operativo y middleware Como sistema operativo se utilizará Raspbian en Raspberry Pi, sobre el que se instalará el middleware ROS. En este robot hay dos funcionalidades complejas para programar: el movimiento y la capacidad de aprendizaje. En cuanto a la primera, requiere el control muy preciso de los servomotores, en ROS hay herramientas que permiten interactuar con estos accionadores. Para tener información de la postura del robot en todo momento se ha propuesto, en el apartado de sensores, una IMU (unidad de medición inercial), el control de esta unidad se hará a través de Arduino, en [121], se puede consultar un tutorial que explica cómo realizarlo. Para la programación de los algoritmos de control de movimiento, se propone el "Zero Moment Point", concepto en el que están basados los robots bípedos más avanzados, como por ejemplo ASIMO [122]. En ROS hay varias API al respecto: walk_tools [123], jrl_walkgen_bridge [124],... También pueden consultarse artículos académicos al respecto: [126][127][128][129]. En cuanto a la segunda, en el apartado dedicado a la robótica de entretenimiento se citó [117], donde se dan indicaciones sobre cómo modelar comportamientos basados en el aprendizaje. En concreto el planteamiento de conductas representadas por autómatas finitos Página 114 de 143 MODELADO DE UN ROBOT con una carga aleatoria en las transiciones entre estados, carga que se puede variar en función del feedback obtenido. ROS ofrece una herramienta para el modelado y simulación a través de autómatas finitos, también citada anteriormente: SMACH [97]. Para el resto de funcionalidades habría que implementar la posibilidad de reconocer sonidos y palabras (Audio/Speech Recognition [98]), reconocimiento de caras (face_recognition [125]). Para la gestión de Arduino desde ROS: rosserial_arduino [98]. Conectividad y comunicaciones Este robot debe poder conectarse a Internet a través de WIFI. Para ello se instalará un adaptador WIFI para Raspberry Pi [135]. Con esta conexión a Internet el robot puede conectarse a contenidos que le permitan leer las noticias o dar el estado del tiempo al usuario. Interfaz Hombre-Máquina La interacción fundamental entre el usuario y robot será a través de voz y contacto físico. Las acciones que realizará el robot serán autónomas según el motor de comportamiento programado. Se desarrollará una aplicación web que permita mantener una comunidad de usuarios del robot, donde se puedan intercambiar experiencias y pautas de conducta, aprendizajes,.... Esta aplicación también permitirá interactuar con el robot, a través de Internet o a través de USB de forma se puedan prefijar una serie de pautas de conducta, o guardar el estado del robot, nivel de aprendizaje, para experimentar otros comportamientos y poder regresar luego a uno ya guardado. 5.4. Ancianos y enfermos En el modelado de robots dedicados a ancianos y enfermos habría que diferenciar en principio si se trata de un apoyo físico o psíquico y social, tal y como se ha presentado anteriormente al hablar del estado del arte de este tipo de robots. Si se trata de robots de compañía o de apoyo psíquico, deben tenerse en cuenta factores como: entretenimiento, aprendizaje activo, compañía, esto puede ayudar mucho a los mayores que, en la sociedad actual y de futuro, adolecen de atención y de incentivos para mantener sus facultades. A continuación se darán orientaciones para el modelado de un robot para apoyo psíquico que podría utilizarse con ancianos o con niños con deficiencias en sus capacidades de interacción social. Hardware: Infraestructura física Este tipo de robot tiene que tener un aspecto amigable, amable, habría que seguir la tendencia de basarlo en la forma de algún animal: un gatito, un cachorro de perro. Optar por Página 115 de 143 MODELADO DE UN ROBOT una forma humanoide lo orientaría más al trabajo con niños, por ejemplo niños con autismo, como se ha visto en el ejemplo contado en el apartado de interacción social, donde se utilizan terapias basadas en la imitación de movimientos. El exterior del robot debe ser blando, el abrazo, las caricias, son terapias que ayudan en el tratamiento de personas abandonadas o faltas de cariño. Como fuente de energía se utilizará una batería de LI-PO, recargable a través de conexión USB. Actuadores El robot debe interactuar con el usuario a través de movimientos, sonidos, muecas. Por ello deberá tener motores para la realización de movimientos, otra vez se utilizará el elemento motor de la robótica, el servomotor. Para la emisión de sonidos contará con altavoces. Para mostrar otro tipo de "sentimientos" podría optarse por tener la posibilidad de realizar gestos, también se haría a través de motores, esto reforzaría la parte de emisión de sonidos. También podría tener interés el que el robot tuviera algún tipo de pantalla, que le permitiera mostrar imágenes o pequeños videos. Sensores La sensórica de este robot debe emular la capacidad de sentir de un ser vivo. Debe ser capaz de sentir, para ello debe tener sensores de presión y también percibir cambios de temperatura, a través de otro sensor. Debe responder a estímulos visuales y sonoros, para ello debe estar dotado de una cámara que permita implementar la capacidad de visión artificial. Es importante que reconozca a los usuarios, por reconocimiento facial y por voz. También podría añadirse sensores del tipo IMU (unidades de medida inerciales); de forma que se pueda saber si el robot está al revés o si se le está moviendo con violencia, para que sea capaz de responder a estos estímulos. Infraestructura de control Como se ha dicho este robot debe tener capacidad de procesar imágenes y también debe desarrollar una conducta basada en aprendizaje e inteligencia artificial, por ello debe tener un hardware de control que permita su implementación. Se propondrá Raspberry Pi. Para la obtención de señales de los sensores se utilizará la placa Arduino. En un apartado anterior ya se han dado detalles de cómo intercomunicar estos elementos hardware. Página 116 de 143 MODELADO DE UN ROBOT Software: Sistema operativo y middleware Al basar el hardware en Arduino y Raspberry Pi, el sistema operativo utilizado será Raspbian, sobre el que se instalará el middleware ROS, que proveerá las herramientas software para el funcionamiento del robot. Tal y como se ha comentado anteriormente, ya que el robot estará provisto de sensores de fuerza, temperatura, IMU, ... en [98], pueden consultarse las interfaces para dichos sensores. En especial se ha dicho que el robot debe implementar capacidades de aprendizaje e IA, en el entorno de ROS, este punto también está recogido, con lo cual se aconseja explorar las posibilidades que permite el paquete "knowrob"[114]. Conectividad y comunicaciones La posibilidad de conexión a Internet, también plantea interés ya que permitiría interactuar con el usuario dando, por ejemplo, información sobre el tiempo, información sobre actualidad. Ya se sabe lo que le gusta a los mayores la información sobre el tiempo. Para la realización de esta conexión a Internet se puede dotar a la placa Raspberry Pi con un adaptador WIFI [135]. Interfaz Hombre-Máquina La interacción con este tipo de robot se hará a través de la voz y a través del tacto. Para la configuración básica del robot, se creará una aplicación de escritorio, que conectando el robot a un ordenador a través de USB, permita ajustar parámetros como, por ejemplo, la conexión WIFI. Si se trata de robot para apoyo físico, el diseño cambiaría. En este apartado se darán las características deseables para un robot de este tipo. Hardware: Infraestructura física En este tipo de robots el control de los movimientos es crucial así como el material utilizado para la estructura ya que tendría que aunar las características de ligero y resistente. Se podrían proponer dos diseños: tipo exoesqueleto, demandaría un diseño físico del prototipo laborioso y exigente frente a utilizar un elemento como una silla de ruedas y darle funcionalidades que permitan robotizarla. Obviamente en este último caso se parte ya de la infraestructura física. Para el modelado y diseño de esta parte se podría utilizar la herramienta de ROS, URDF, comentada anteriormente. Página 117 de 143 MODELADO DE UN ROBOT En cualquiera de estos dos diseños hay que tener en cuenta el consumo de energía y la autonomía. También en este punto un diseño de exoesqueleto plantea más dificultades a la hora de integrar la batería, ya que pesa y ocupa espacio. En una silla de ruedas en la parte de debajo del asiento habría sitio para ubicar la batería, en este caso el peso de la misma ayudaría a darle estabilidad mecánica al bajar el centro de gravedad. Actuadores Una vez más el motor eléctrico sería el actuador a tener en cuenta. Tanto para el diseño de un exoesqueleto, como para el de una robotización de una silla de ruedas se utilizarán servomotores. Sensores En cuanto a los sensores, si se trata de un diseño tipo exoesqueleto o una prótesis robotizada, habría que fijarse en la posibilidad de poder captar las señales cerebrales directamente. En este trabajo se han citado ejemplos tanto de exoesqueletos con este tipo de control [21] , así como de empresas (españolas) que investigan en la adquisición e interpretación de este tipo de señales electromiográficas [39]. En [71] se puede consultar y comprar un dispositivo que permite adquirir este tipo de señales. En caso de la robotización de una silla de ruedas, hay que buscar sensores que permitan detectar obstáculos, para evitar colisiones. Se dotará de un telémetro láser (laser range finder) y sonar. Además de estos elementos, también se añadirá una unidad de medida inercial (IMU), que permita detectar la inclinación para evitar accidentes por pérdida de la estabilidad. Una funcionalidad a incluir en este tipo de diseños debe ser la posibilidad de medir indicadores de salud: presión sanguínea y pulso. En el caso de la silla de ruedas se añadirá una célula de carga que permita medir el peso de la persona que se siente en la silla. En pacientes con movilidad reducida el control de peso es fundamental, ya que al no moverse tienen tendencia a sufrir obesidad y demás problemas derivados. Infraestructura de control También en este apartado se tendrán en cuenta distintas opciones en función de un diseño tipo exoesqueleto y en la robotización de una silla de ruedas. En el caso de un exoesqueleto, se necesita un sistema en tiempo real. La reacción es vital ya que cualquier desequilibrio por un retardo en la acción puede tener consecuencias fatales. Por ello se utilizará un sistema basado en microcontrolador. En este trabajo, en estos casos se ha optado por Arduino, habría que profundizar en si es capaz de gestionar los algoritmos de cálculo necesarios para el control de una estructura de este tipo. En caso de necesitar un apoyo para la realización de cálculos matemáticos se podría optar por una FPGA. Para la silla de ruedas robotizada se utilizará un ordenador de una placa como Raspberry Pi, para centralizar el control. Y para la conexión de los sensores se utilizará una placa microcontroladora Arduino. Este esquema, explicado en la introducción de este Página 118 de 143 MODELADO DE UN ROBOT apartado, permitirá encapsular los sensores en nodos de ROS, que publicarán las lecturas obtenidas por medio de tópicos a los que estará suscrito el nodo central de control (en Raspberry Pi) y en función de lo que gestionará las órdenes a los actuadores. Software: Sistema operativo y middleware Tanto para el exoesqueleto como para la silla robotizada, se utilizará Raspbian sobre Raspberry Pi. En este sistema operativo se instalará ROS como middleware soporte de la infraestructura de control. En el caso del exoesqueleto, se podrían plantear problemas con la velocidad de control. Cualquier problema en el retardo en la ejecución de los algoritmos de control, podría tener como consecuencia el desequilibrio del exoesqueleto y en consecuencia un accidente grave al que lo usa. Por tanto, en este sistema de control podría plantearse la necesidad de cambiar un poco la arquitectura, incluyendo microprocesadores dedicados a la ejecución de los cálculos de algoritmos, con una función más específica o especializada que la que se puede conseguir con placas como Arduino. Se plantearía la inclusión en el sistema de FPGAs, especializadas en los cálculos y la interacción con los actuadores. Conectividad y comunicaciones Partiendo del hecho de que un mismo diseño de robot no puede satisfacer todas las necesidades que podría tener un anciano o enfermo ([10] [11]), el diseño debería tener la posibilidad de interconexión con redes de servicios robotizados. En este contexto el robot debería tener la capacidad de ser parte de un equipo de robots que, juntos satisfagan las necesidades potenciales de una persona mayor. Para ello debería exponer sus funcionalidades y disponibilidad a un sistema centralizado que lo coordinara con las demandas y necesidades de los usuarios. Interfaz Hombre-Máquina La interfaz de interacción del usuario con el robot en este tipo de diseños debería ser muy avanzada y seguir la tendencia de alguno de los prototipos presentados en este trabajo, de ser capaces de interpretar las señales cerebrales, ya que el usuario potencial podría estar privado de capacidades motoras. Este tipo de interacción sería la fundamental para un robot tipo exoesqueleto. En el caso de la silla de ruedas robotizada, se plantearán otros métodos de interacción como joystick, tablet y voz. En la introducción de este apartado se dio un ejemplo de control de un dispositivo de estas características a través de la voz[83]. La posibilidad de programar una interfaz de control a través de la tablet, permite un intercambio de información más completo. Como se dijo el robot tiene la posibilidad de realizar medidas de la salud y el peso del usuario de la silla. Con una interfaz gráfica, se pueden mostrar estos datos de una forma atractiva, pudiendo memorizarse y realizar seguimientos en el tiempo. Página 119 de 143 MODELADO DE UN ROBOT 5.5. Tareas domésticas En el modelado de un robot para la realización de tareas domésticas, el factor fundamental es el entorno del hogar, es decir una gran variedad de objetos distintos, unos recorridos plagados de obstáculos, interacción directa con los humanos. También, como se ha comentado en el apartado 3.4, las tareas domésticas son simples desde el punto de vista del sentido común, pero no lo son desde el punto de vista de un robot. A continuación se indican las características deseables o que habría que prever en el modelado de un robot para este fin en base a los diseños actuales, diferenciando en el caso de que existan características específicas. Hardware: Infraestructura física Actualmente el diseño de robots que se está teniendo éxito en los hogares es el de los robots aspirador. En este caso el punto fundamental a tener en cuenta es la gestión de la navegación del robot por la casa. Otro diseño que se está empezando a comercializar en el momento que se escribe, es el que permite telepresencia, una especie de "skype" móvil. En este caso a una base capaz de navegar por la casa habría que añadir un soporte para un dispositivo tipo pantalla en el que se visualice a la persona con la que se está comunicando, que también incluya una cámara para emitir lo que "ve" el robot. Si se pretende dar un paso más se podría incluir brazos robotizados a este robot móvil para aumentar el abanico de trabajos a realizar. El hecho de que tenga que manejar diferentes útiles y manipular una gran variedad de objetos de distinto tamaño, rigidez, fragilidad, obligaría a que sus dispositivos para el agarre sean muy avanzados, con un sentido del tacto implementado a través de sensores. Actuadores En el caso de robots del tipo aspirador, el movimiento del robot se implementará con motores eléctricos. Con un par de servomotores brushless se podrá implementar el movimiento. En los robots tipo corta-césped, se necesitaría añadir un motor más para la herramienta de corte, este motor no necesitaría servocontrol. En los robot que permiten presencia remota habría que incluir las pantallas con altavoces para la imagen de la persona que se conecta al robot para visualizar y la cámara que capturará las imágenes del entorno del robot. Esto también puede realizarse con una tablet. Para los brazos robotizados del diseño más innovador, se necesitarían servomotores en las articulaciones para permitir su movimiento y posicionado. Lo mismo para el dispositivo de agarre y manipulación de objetos. Página 120 de 143 MODELADO DE UN ROBOT Sensores La movilidad en un entorno lleno de obstáculos es una tarea a acometer. Para ello el robot tendría que estar dotado de sensores que permitan detectar obstáculos junto con la posibilidad de construir mapas para su utilización luego en el guiado. En los robots domésticos para cortar el césped, habría que incluir sensores para detectar la hierba y sensor GPS para la detección de la ubicación y apoyo para el guiado. Como se ha comentado para la implementación de la telepresencia se necesitará una cámara que permita la captura de imágenes y sonido, para enviarlos a la ubicación desde la que se conecta al robot. Este elemento puede estar incluido en una tablet. Infraestructura de control Se mantendrá el esquema de control planteado en la introducción. Se usará hardware libre: Raspberry Pi como ordenador central y coordinador y placas de Arduino en la interacción directa con sensores y actuadores. Software: Sistema operativo y middleware Como en los diseños anteriores basados en Raspberry Pi y Arduino, el sistema operativo a utilizar será Raspbian y el middleware ROS. En el desarrollo de un robot móvil para el hogar, del tipo aspirador autónomo, se puede partir de la información disponible en ROS, sobre el dispositivo Roomba[153]. En esta referencia se pueden encontrar los drivers para sensores y actuadores, código para realizar simulación en 2D. Esta información es muy valiosa porque se parte de un ejemplo en el que se implementa la navegación por el hogar, por tanto también puede ser aprovechado para el robot que permita telepresencia. Si se plantea un diseño de robot más avanzado, que pueda realizar tareas más complejas en el hogar, como recoger una mesa, poner un lavavajillas, habría que aprovechar los desarrollos ya realizados con brazos robotizados para la manipulación de objetos y desarrollar software para la implementación de inteligencia artificial. En relación con esto último en el apartado 3.5, basado en [5] , se comentó una experiencia en la que se pretendía desarrollar un sistema basado en el sentido común, para la realización de tareas por parte de un robot en el entorno doméstico. En base a esta experiencia se plantea seguir con esta propuesta para el desarrollo de la inteligencia artificial de este tipo de robots. Con el acceso a Internet y con la posibilidad de instalación en el sistema operativo propuesto, de una base de datos de conocimiento, la infraestructura software permitiría, a priori, la implementación. Conectividad y comunicaciones En los robots tipo aspirador o corta-césped, las funcionalidades basadas en comunicaciones no son, a priori, necesarias, salvo alguna actualización de software. Página 121 de 143 MODELADO DE UN ROBOT La capacidad de interconexión sería fundamental, por ejemplo en el caso de un servicio de telepresencia para un robot dedicado a tareas domésticas. Esta comunicación podría implementarse con un acceso a internet vía WIFI, para ello se instalará un adaptador WIFI para Raspberry Pi [135]. Esta interconexión a internet también sería precisa si se plantea un aprendizaje del robot en el contexto del sentido común, explicado en un apartado anterior, ya que habría la necesidad de acceder y actualizar los contenidos de las bases de datos de conocimiento[5] . Interfaz Hombre-Máquina Interfaz sencilla de programación, las personas que van a interactuar con el robot no serán expertos. En diseños del tipo aspirador autónomo con un botón de marcha y uno de paro sería suficiente, el sistema de navegación del robot por la casa se encargaría del resto. Para la interacción con el sistema de telepresencia, se desarrollará una app, que permita configurar los parámetros fundamentales para su funcionamiento, en principio, la conexión con la WIFI, que permita a su vez el acceso a Internet. En el extremo de control se creará una aplicación de escritorio o aplicación web que permita conectarse remotamente al robot. Esta aplicación debe permitir el movimiento del robot de una forma sencilla e intuitiva por la casa. También mostrará las imágenes y reproducirá el sonido captado por la cámara remota. 5.6. Entorno militar A continuación de indicarán las consideraciones hardware y software a tener en cuenta en el modelado de un robot para el entorno militar. Hardware: Infraestructura física La infraestructura física de un robot para uso militar viene fijada por el tipo de entorno en el que va a trabajar: tierra, mar o aire. De forma que los robots militares suelen ser físicamente igual que los vehículos que han sido diseñados para ser pilotados, en los que el pilotaje se sustituye por un control robotizado. Hay excepciones a lo comentado en el párrafo anterior, por ejemplo, los robots que se están desarrollando para la asistencia y actuación en zonas en las que se ha producido un desastre, este tipo de robots suelen ser de apariencia humanoide con unas capacidades físicas muy grandes. Otra excepción serían los exoesqueletos tipo Robocop o Ironman, que en el momento en que esto se escribe, parece ser que es un objetivo en desarrollo por parte del gobierno de los Estados Unidos como dotación para su ejército. Actuadores En este tipo de robots los actuadores tendrán unas características de potencia y autonomía mucho más exigentes. Se seguirán usando motores eléctricos, pero dado que los Página 122 de 143 MODELADO DE UN ROBOT esfuerzos realizados serán mayores, temas como sobrecalentamientos y gestión del consumo serán muy importantes y a tener en cuenta. En otros casos el motor eléctrico se tendrá que sustituir por motores de combustión interna, ya que las exigencias de autonomía no harán adecuado el uso de motores eléctricos alimentados con baterías. Otros actuadores prácticamente exclusivos de estos robots serían los relacionados con el armamento. En este tema el planteamiento de hardware abierto, se cierra, habría que contactar con los fabricantes de este tipo de elementos para obtener información sobre las interfaces de control. Dispositivos prensiles también deben tenerse en cuenta en robots para desactivación de minas o explosivos. Sensores Un común denominador en los robots militares es la captura de imágenes, ya que muchas de las funciones realizadas por este tipo de robots es la de vigilancia. Luego estos robots estarán dotados de cámaras de gran calidad, con la posibilidad de captura de imágenes en entornos con baja iluminación (cámaras nocturnas) o en ambientes con gran polución (polvo de explosiones, gas, ...). En los robots para detección de cuerpos peligrosos, minas, explosivos se necesitan sensores específicos como detectores de metales. Radares serán precisos en casi cualquier entorno. En el mar o en robots submarinos habrá que instalar sonar. En los diseños de drones hay que instalar unidades de medida inerciales (IMU), para poder controlar la posición exacta del robot. También en cualquier diseño de este tipo de robots, hay que prever la instalación de un localizador GPS, de alta gama, es decir, con un bajo error en la obtención de la posición. En este caso el poder acceder a satélites utilizados por los militares, la precisión es mayor que en los usos civiles. Infraestructura de control Se mantendrá la estructura propuesta en los apartados anteriores y la planteada en la introducción de utilizar un sistema de control central basado en ordenador y la interacción con sensores y actuadores a través de placas microcontroladas dedicadas. En este tipo de robots la exigencia sobre el coste no suele ser un condicionante frente a otras cuestiones como fiabilidad y seguridad, así que no se hará hincapié en la utilización de hardware libre. Otro condicionante que puede establecer la utilización de un hardware u otro es la interacción con actuadores tan particulares como puede ser el armamento, esto puede fijar el hardware a utilizar. Igualmente al tratarse de diseños para el sector militar, los propios Página 123 de 143 MODELADO DE UN ROBOT sistemas ya utilizados en otro tipo de equipamiento puede fijar igualmente el hardware a utilizar. Si no hay ningún tipo de restricción o condicionante, se utilizará el mismo sistema planteado de Raspberry Pi como unidad central y Arduino para la interacción con actuadores y sensores. Software: Sistema operativo y middleware Lo comentado para el hardware también puede tenerse en cuenta en el software. Existe la posibilidad de que el uso de determinados actuadores y sensores tan específicos, fijen el software a utilizar, eliminando la libertad de plantear un software libre. En caso de que no haya restricciones se planteará, como en los casos anteriores, el uso de Raspbian en la Raspberry Pi, y la instalación de ROS sobre este sistema operativo, para tener las funcionalidades de los paquetes y herramientas de ROS para el control de actuadores y sensores. Los paquetes software a explotar serían los que den funcionalidad para la navegación autónoma y, como se verá en el apartado de comunicaciones, el software que gestione estas comunicaciones con solvencia. Conectividad y comunicaciones En este tipo de robots, en este apartado hay que tener dos temas fundamentales en cuenta. Por un lado el hecho de que el control del robot puede estar a miles de kilómetros de donde se mueve el robot, obliga a explorar las comunicaciones basadas en satélite. Por otro lado las comunicaciones tienen que ser muy seguras, en el intercambio de información habría que utilizar algoritmos de encriptación para evitar problemas de intromisión. Como alternativa a explorar en las comunicaciones, en [154] se describe como se puede utilizar las redes móviles 3G, 4G, como sustitución de las comunicaciones por satélite, en la búsqueda de un abaratamiento de las mismas y para uso, en principio, civil. Es de interés cómo, a través de un algoritmo de control, el vehículo evita las zonas sin cobertura. En los robots controlados a través de joystick, por ejemplo los detectores de minas o los robots para reconocimiento, en los que hay contacto visual, las interfaces de control se comunicarán con el robot a través de radiofrecuencia, de una forma similar a los equipos de aeromodelismo. Interfaz Hombre-Máquina En la exposición del estado del arte de la robótica militar en el apartado 3.6, se mostraron los dispositivos de control necesarios para este tipo de robots. En general en los robots del tipo telemandados, se necesitan dos grupos de aplicaciones de control; la que se encarga del movimiento del dispositivo y la que se encarga de la obtención y visualización de los datos de los dispositivos de monitorización instalados. Página 124 de 143 MODELADO DE UN ROBOT Para el control del movimiento, en función del medio para el que vaya a utilizar el robot, se reproducirán los controles a los que tendría acceso un piloto en caso de estar a bordo. En robots del tipo de detección de minas o de vigilancia, el control de movimientos se hará a través de controles tipo joystick o del tipo HaWC (HArm's Way Controller). La visualización de datos se hará a través de pantallas donde se proyecten las imágenes recogidas, con la posibilidad de grabación. En entornos de acción, por decirlo de alguna manera, donde la información recogida sea por parte de hombres en movimiento, se pueden obtar por visualizadores tipo gafas, en el apartado 3.6 se han nombrado las "Tac-eye"[95]y, en el momento en que se escribe, se han comenzado a comercializar, en USA, las "google glass"[155]. Página 125 de 143 MODELADO DE UN ROBOT Página 126 de 143 CONCLUSIONES Y TRABAJO FUTURO 6. Conclusiones y trabajo futuro En este trabajo se ha mostrado el presente y el futuro de la robótica. Se presenta como un sector prometedor, en pleno desarrollo y con innumerables aplicaciones y oportunidades. La complejidad y refinamiento técnico que conlleva se está tratando de una forma universal, "Open-Source" a través de plataformas que pretenden establecer un punto de partida avanzado, que permite que la investigación de cualquiera se aproveche de ellas y sume sus esfuerzos. Surgidas de universidades o de entidades públicas, el común denominador es la apertura y el carácter multicultural de sus componentes. Esto se ha puesto patente en la presente investigación al constatar que la mayoría de los diseños de robots tienen su particular versión en diferentes países, obviamente "interinspirados", si se permite la palabra. A partir de este trabajo, lo siguiente sería ponerse manos a la obra y realizar o implementar algún tipo de sistema robotizado. En particular se podría plantear la implementación, en alguna plataforma "Open-Source" de hardware, el funcionamiento de las plataformas de middleware existentes. Otro campo indicado en este trabajo, apasionante y novedoso, sería el realizar investigaciones en inteligencia artificial basadas en sentido común, y su aplicación a la educación. Algún sistema de búsqueda robotizada de la motivación para adquirir conocimiento, algo que aparentemente en los sistemas de educación actuales se está perdiendo. 6.1. Resumen de investigación Para la realización de este trabajo se ha consultado la documentación de los últimos eventos en el campo realizados en el mundo y se ha consultado masivamente el universo web. Para la exposición del estado del arte de la robótica, se ha hecho una presentación de diversos robots, indicando sus características más novedosas y su aspecto. En cuanto a la interacción social de robots y humanos, se ha basado en recientes experimentos realizados en la profundización en esta relación. La búsqueda de información acerca del hardware libre se hizo utilizando las páginas web de los fabricantes o desarrolladores. Estas páginas web, además de dar todos los datos técnicos del hardware, enlazan con abundante documentación elaborada por usuarios. Esta documentación tiene gran valor, porque en la gran mayoría de los casos, se trata de experiencias llevadas a cabo o implementadas y que están funcionando. Así mismo, estas páginas están muy actualizadas y vivas. Para el modelado de los nuevos diseños de robots se consultó concienzudamente la web de ROS, también como en el caso anterior muy actualizada y con una comunidad de usuarios muy activa, tanto en responder a dudas como en publicar mejoras. Esta web de ROS cuenta con decenas de tutoriales que facilitan la utilización de sus herramientas. Dichos tutoriales están actualizados y funcionan, como parte de este trabajo, se ha seguido alguno de ellos, en una búsqueda de entender correctamente la funcionalidad para luego proponerla como solución en el caso de modelado de un robot. Página 127 de 143 CONCLUSIONES Y TRABAJO FUTURO 6.2. Contribuciones Como contribución más destacable de este trabajo es la reflexión, fruto de la investigación realizada, sobre cómo enfocar el diseño y el modelado de un robot. Esta reflexión pretende dar un punto de partida para quien quiera ponerse manos a la obra y construir un robot. El enfoque general del modelado lleva a la utilización de hardware y software libre, que no solo permite que el proyecto resulte más económico, sino que permite aprovecharse de la amplia comunidad de personas que ya han realizado proyectos similares, haciendo la tarea más corta y alcanzable, dando también la oportunidad a contribuir. La exposición del estado del arte ha pretendido ser ligera y asequible a cualquiera, mostrando un suficiente número de imágenes que permitan tener una idea clara de los diseños actuales y futuros de los robots. Con los enlaces y referencias incluidos, se puede acceder a los sitios webs donde hay un gran número de videos que ayudan enormemente a aclarar cualquier duda que surja de las imágenes y de las explicaciones dadas. 6.3. Problemas encontrados El hecho de que casi toda la documentación consultada y la terminología del sector esté en inglés, ha hecho difícil la traducción, ya que dicha terminología suele utilizarse en inglés. También se ha hecho un gran esfuerzo por no abusar de las siglas, algo totalmente universalizado en la técnica y en todo lo relacionado con la informática y, por tanto, en la robótica. Otra dificultad encontrada en la realización de este trabajo ha sido el exponer independientemente el estado del arte de la robótica y el estado del arte de la interacción social entre robots y humanos, ya que gran parte de las novedades en robótica son, en particular, en el desarrollo de dicha interacción social. Para ello se ha intentado ilustrar una a través de distintos robots, como si de la presentación de un elenco de actores se tratara, y por otro lado la interacción social a través de experiencias y experimentos realizados con estos actores. En la búsqueda de ejemplos de aplicación de sistemas robotizados basados en plataformas abiertas tipo computador, como Raspberry Pi, no ha sido posible encontrar diseños y arquitecturas concretas y detalladas de robots industriales o relacionados con empresas de robótica. Los ejemplos accesibles son fundamentalmente en el entorno de la investigación y la educación, lo cual, por otro lado es lógico ya que dichos entornos han sido el objetivo de los desarrolladores de este producto. 6.4. Trabajos futuros y mejoras Como se ha indicado en la introducción a este apartado, el trabajo futuro sería el ponerse manos a la obra y diseñar un prototipo, ya sea de un robot propiamente dicho, de un servicio robotizado o de una pieza para añadir a alguna de las plataformas de middleware existentes. Página 128 de 143 CONCLUSIONES Y TRABAJO FUTURO En esta línea una posible mejora o añadido al presente trabajo sería un estudio del estado del arte en las plataformas middleware y de comunicación, para el diseño y desarrollo de robots o de servicios robotizados. Fruto de este estudio se podría saber en qué ámbitos se puede investigar para añadir nuevas funcionalidades y de las funcionalidades ya existentes saber tiempos medios para su puesta en funcionamiento en prototipos. Página 129 de 143 CONCLUSIONES Y TRABAJO FUTURO Página 130 de 143 BIBLIOGRAFÍA 7. Bibliografía [1] Ferrati, F., Bortoletto, R., Menegatti, E. & Pagello, E. 2013, "Socio-economic impact of medical lower-limb Exoskeletons", Advanced Robotics and its Social Impacts (ARSO), 2013 IEEE Workshop on, , pp. 19-26. [2] Shamsuddin, S., Yussof, H., Mohamed, S., Hanapiah, F.A. & Ismail, L.I. November 79, 2013, "Stereotyped Behavior of Autistic Children with Lower IQ Level in HRI with a Humanoid Robot", 2013 IEEE Workshop on Advanced Robotics and its Social Impacts (ARSO), , pp. 175-180. [3] DirectIndustry e-magazine: Special Edition: Robotics. [4] Rethink Robotics, recurso on-line consultado por última vez el 07/02/2014. URL: http://www.rethinkrobotics.com. [5] Skulkittiyut, W., Haeyeon Lee, Trung Ngo Lam, Quang Tran Minh, Baharudin, M.A., Fujioka, T., Kamioka, E. & Mizukawa, M. 2013, "Commonsense knowledge extraction for Tidyup robotic service in domestic environments", Advanced Robotics and its Social Impacts (ARSO), 2013 IEEE Workshop on, , pp. 63-69. [6] Riedo, F., Chevalier, M., Magnenat, S. & Mondada, F. 2013, "Thymio II, a robot that grows wiser with children", Advanced Robotics and its Social Impacts (ARSO), 2013 IEEE Workshop on, , pp. 187-193. [7] Xiaoxiang Yu, Assaf, D., Liyu Wang & Iida, F. 2013, "Robotics education: A case study in soft-bodied locomotion", Advanced Robotics and its Social Impacts (ARSO), 2013 IEEE Workshop on, , pp. 194-199. [8] Ruiz, A.F., Rocon, E., Raya, R. & Pons, J.L. 2008, "Coupled control of humanexoskeleton systems: An adaptative process", Human System Interactions, 2008 Conference on, , pp. 242-246. [9] Pons, J.L. 2010, "Rehabilitation Exoskeletal Robotics", Engineering in Medicine and Biology Magazine, IEEE, vol. 29, pp. 57-63. [10] Ceron Lopez, A.E., Fukushima, E.F., Kitano, S. & Endo, G. 2013, "Study of framework based on roles for application development of service robots", IEEE Workshop on Advanced Robotics and its Social Impacts (ARSO), 2013, pp. 39-44. [11] Salah, O., Asker, A., Fath El-Bab, A.M.R., Assal, S.M.F., Ramadan, A.A., Sessa, S. & Abo-Ismail, A. 2013, "Development of parallel manipulator sit to stand assistive device for elderly people", IEEE Workshop on Advanced Robotics and its Social Impacts (ARSO), 2013, pp. 27-32. [12] Shiomi, M., Kamei, K., Kondo, T., Miyashita, T. & Hagita, N. 2013, "Robotic service coordination for elderly people and caregivers with Ubiquitous Network Robot Platform", IEEE Workshop on Advanced Robotics and its Social Impacts (ARSO), 2013, pp. 57-62. Página 131 de 143 BIBLIOGRAFÍA [13] Ackerman, E. , U.S. Army Considers Replacing Thousands of Soldiers With Robots. Available: http://spectrum.ieee.org/automaton/robotics/military-robots/armyconsiders-replacing-thousands-of-soldiers-with-robots [2014, 02/08]. [14] Hennessey, M. , Robot Used for Lifesaving Humanitarian Research in Minesweeping. Available: http://www.clearpathrobotics.com/blog/minesweeping-robot/ [2014, 02/08]. [15] Ackerman, E. , Shrewbot Finds Its Way Around With Sensitive Whiskers. Available: http://spectrum.ieee.org/automaton/robotics/diy/shrewbot-finds-its-way-aroundwith-sensitive-whiskers [2014, 02/08]. [16] Takei, K., Yu, Z., Zheng, M., Ota, H., Takahashi, T. & Javey, A. , Highly sensitive electronic whiskers based on patterned carbon nanotube and silver nanoparticle composite films. Available: http://www.pnas.org/content/early/2014/01/15/1317920111.abstract [2014, 02/08]. [17] Robot Operating System, recurso on-line consultado por última vez el 12/02/2014. URL: http://www.ros.org/. [18] Universal Robots, recurso on-line consultado por última vez el 08/02/2014. URL: http://www.universal-robots.com/ [19] Kawasaki Robots, recurso on-line consultado por última vez el 08/02/2014. URL: http://www.khi.co.jp/english/robot/product/medical_robot.html. [20] Arduino, recurso on-line consultado por última vez el 12/02/2014. URL: http://www.arduino.cc/. [21] Cyberdyne, recurso on-line consultado por última vez el 23/02/2014. URL: http://www.cyberdyne.jp/english/. [22] RP-VITA, recurso on-line consultado por última vez el 15/02/2014. URL: http://www.intouchhealth.com/products-and-services/products/rp-vita-robot/. [23] David Johnson, B. 2013, http://makezine.com/21st-century-robot/. 21st Century Robot, Maker Media, [24] Proyecto icub (EU) , recurso on-line consultado por última vez el 16/02/2014. URL: http://www.icub.org/. [25] NAO, recurso on-line consultado por última vez el 22/02/2014. URL: http://www.aldebaran-robotics.com/en/. [26] Boston Dynamics, recurso on-line consultado por última vez el 23/02/2014. URL: http://www.bostondynamics.com/robot_ls3.html. [27] Lego Mindstorms, recurso on-line consultado por última vez el 23/02/2014. URL: http://www.lego.com/en-us/mindstorms/?domainredir=mindstorms.lego.com. Página 132 de 143 BIBLIOGRAFÍA [28] Lego WeDo, recurso on-line consultado por última vez el 23/02/2014. URL: http://education.lego.com/en-gb/preschool-and-school/lower-primary/7plus-education-wedo. [29] Paro Robots, recurso on-line consultado por última vez el 05/03/2014. URL: http://www.parorobots.com/. [30] "Maggie", Universidad Carlos III de Madrid, recurso on-line consultado por última vez el 08/03/2014. URL: http://roboticslab.uc3m.es/roboticslab/robot.php?id_robot=1. [31] "ASIBOT", Universidad Carlos III de Madrid, recurso on-line consultado por última vez el 09/03/2014. URL: http://roboticslab.uc3m.es/roboticslab/robot.php?id_robot=3. [32] "UC3M", Universidad Carlos III de Madrid, recurso on-line consultado por última vez el 09/03/2014. URL: http://roboticslab.uc3m.es/roboticslab/proyecto.php?id_proy=2. [33] Proyecto "URUS", Instituto de Robótica e Informática Industrial de la Universidad Politécnica de Cataluña, recurso on-line consultado por última vez el 09/03/2014. URL: http://www.urus.upc.es/. [34] Proyecto I-SWARM Universidad de Barcelona, recurso on-line consultado por última vez el 09/03/2014. URL: http://www.iswarm.org/MainPage/Project/P_Objectives1.htm. [35] PAL Robotics, recurso on-line consultado por última vez el 09/03/2014. URL: http://www.pal-robotics.com/. [36] Robotnik: Guardian, recurso on-line consultado por última vez el 09/03/2014. URL: http://robotnik.es/es/productos/robots-moviles/guardian. [37] Cognitive Robots, recurso on-line consultado por última vez el 09/03/2014. URL: http://www.c-robots.com/. [38] Departamento de Ingeniería de Sistemas y Automática de la Universidad de Málaga, recurso on-line consultado por última vez el 09/03/2014. URL: http://www.isa.uma.es/C8/Alacrane/default.aspx. [39] BitBrain, recurso on-line consultado por última vez el 11/03/2014. URL: http://bitbrain.es/es/. [40] mOway, recurso on-line consultado por última vez el 12/03/2014. URL: http://moway-robot.com/. [41] Presentación de mOway en Fábrica de ideas, recurso on-line consultado por última vez el 12/03/2014. URL: http://www.rtve.es/alacarta/videos/fabrica-de-ideas/fabricaideas-invierte-moway/1590884/. [42] Dubowsky, S., Genot, F., Godding, S., Kozono, H., Skwersky, A., Yu, H. & Yu, L.S., 2000, "PAMM - A Robotic Aid to the Elderly for Mobility Assistance and Monitoring: A "Helping-Hand" for the Elderly", IEEE International Conference on Robotics and Automation, 2000. Proceedings. ICRA '00., vol. 1, pp. 570 - 576. Página 133 de 143 BIBLIOGRAFÍA [43] Matsuhira, N., Namatame, S., Ishida, S. & Yamaguchi, T. 2013, "Prototype development of robot system using RT middleware and RSNP network protocol", 2013 IEEE Workshop on Advanced Robotics and its Social Impacts (ARSO), , pp. 45-50. [44] Open RTM (RT Middleware), recurso on-line consultado por última vez el 23/03/2014. URL: http://openrtm.org/. [45] ConceptNet, recurso on-line consultado por última vez el 28/03/2014. URL: http://web.media.mit.edu/~hugo/conceptnet/#overview. [46] Aisoy Robotics, recurso on-line consultado por última vez el 30/03/2014. URL: http://www.aisoy.com/. [47] Aisoy, recurso on-line consultado por última vez el 30/03/2014. URL: http://wwwhatsnew.com/2014/03/14/aisoy-un-robot-con-sentimientos-propios-disenado-enespana/. [48] ASIMO, recurso on-line consultado por última vez el 30/03/2014. URL: http://world.honda.com/ASIMO/. [49] Banzi, M. Getting Started with Arduino, 3rd edn. [50] Al-Busaidi, A.M. 2012, "Development of an Educational Environment for Online Control of a Biped Robot using MATLAB and Arduino", Mecatronics-REM 2012, , pp. 337-344. [51] Silva, L., Dantas, R., Pantoja, A. & Pereira, A. 2013, "Development of a low cost dataglove based on Arduino for virtual reality applications", 2013 IEEE International Conference on Computational Intelligence and Virtual Environments for Measurement Systems and Applications (CIVEMSA), , pp. 55-59. [52] Motor de desarrollo de juegos UNITY, recurso on-line consultado por última vez el 14/04/2014. URL: http://unity3d.com/. [53] Davis, E., Nizette, B.E. & Changbin Yu 2013, "Development of a low cost quadrotor platform for swarm experiments", 32nd Chinese Control Conference (CCC), pp. 7072 - 7077. [54] M. Szczys. (2009) "How to write udev rules", recurso on-line consultado por última vez el 14/04/2014. URL: http://hackaday.com/2009/09/18/how-to-write-udev-rules/. [55] Festo: Bionic Learning Network, recurso on-line consultado por última vez el 15/04/2014. URL: http://www.festo.com/cms/es_corp/9617.htm. [56] Osswald, S., Weiss, A. & Tscheligi, M. 2013, "Designing wearable devices for the factory: Rapid contextual experience prototyping", International Conference on Collaboration Technologies and Systems (CTS),pp. 517 - 521. [57] Raspberry Pi, Wikipedia, recurso on-line consultado por última vez el 15/04/2014. URL: http://es.wikipedia.org/wiki/Raspberry_Pi. Página 134 de 143 BIBLIOGRAFÍA [58] Richardson, M. & Wallace, S. 2012, Getting started with Raspberry Pi, 1st edn, O´Reilly Media, Inc., Sebastopol CA95472. [59] Krushinitskiy, P. & Sziebig, G. 2013, "Review of open source computing devices for iSpace in production workshops", IEEE 4th International Conference on Cognitive Infocommunications (CogInfoCom), 2013, pp. 677 - 682. [60] James, A.E., Kuo-Ming Chao, Weidong Li, Matei, A., Nanos, A.G., Stan, S.-., Figliolini, G., Rea, P., Bouzgarrou, C.B., Bratanov, D., Cooper, J., Wenzel, A., Van Capelle, J. & Struckmeier, K. 2013, "An Ecosystem for E-learning in Mechatronics: The CLEM project", IEEE 10th International Conference on e-Business Engineering (ICEBE), 2013, , pp. 62 - 69. [61] Jizhong Xiao, Ramdath, K., Iosilevish, M., Sigh, D. & Tsakas, A. 2013, "A low cost outdoor assistive navigation system for blind people", 8th IEEE Conference on Industrial Electronics and Applications (ICIEA), 2013, pp. 828 - 833. [62] Grabación y edición de sonido libre: Audacity, recurso on-line consultado por última vez el 17/04/2014. URL: http://audacity.sourceforge.net/. [63] VLC Media Player, recurso on-line consultado por última vez el 17/04/2014. URL: http://www.videolan.org/vlc/. [64] Carnegie Mellon University's speech group: Festvox, recurso on-line consultado por última vez el 17/04/2014. URL: http://festvox.org/index.html. [65] Carnegie Mellon University: CMU Sphinx, recurso on-line consultado por última vez el 17/04/2014. URL: http://cmusphinx.sourceforge.net/. [66] Google: phonetisaurus, recurso on-line consultado por última vez el 17/04/2014. URL: https://code.google.com/p/phonetisaurus/. [67] MIT Language Modeling (MITLM), recurso on-line consultado por última vez el 17/04/2014. URL: http://code.google.com/p/mitlm/. [68] GeoCoder, recurso on-line consultado por última vez el 17/04/2014. URL: http://geocoder.us/. [69] Monav, generador de rutas, recurso on-line consultado por última vez el 17/04/2014. URL: http://code.google.com/p/monav/. [70] Bionic Robohand, recurso on-line consultado por última vez el 17/04/2014. URL: https://www.youtube.com/watch?v=sBsFDWZy_bc. [71] Emotiv EEG, recurso on-line consultado por última vez el 17/04/2014. URL: http://emotiv.com/. [72] Robohand: impresión en 3D, recurso on-line consultado por última vez el 17/04/2014. URL: http://article.wn.com/view/2013/09/09/SAs_Robohand_prints_lost_digits/. Página 135 de 143 BIBLIOGRAFÍA [73] Chtourou, S., Kharrat, M., Ben Amor, N., Jallouli, M. & Abid, M. 2013, "Evolution of robot programming, towards the Ubiquitous Computing era", International Conference on Individual and Collective Behaviors in Robotics (ICBR), 2013,pp. 44-48. [74] Rity-Sobot longs to be near you, recurso on-line consultado por última vez el 18/04/2014. URL: http://www.technovelgy.com/ct/Science-Fiction-News.asp?NewsNum=848. [75] AppInventor, recurso on-line consultado por última vez el 18/04/2014. URL: http://appinventor.mit.edu/explore/. [76] Scratch, recurso on-line consultado por última vez el 18/04/2014. URL: http://scratch.mit.edu/. [77] Zigbee, recurso on-line consultado por última vez el 18/04/2014. URL: https://www.zigbee.org/. [78] Universidad Rey Juan Carlos, middleware JdeRobot, recurso on-line consultado por última vez el 18/04/2014. URL: http://jderobot.org/Main_Page. [79] The TERMES Project, recurso on-line consultado por última vez el 19/04/2014. URL: http://www.eecs.harvard.edu/ssr/projects/cons/termes.html. [80] Werfel, J., Petersen, K. & Nagpal, R. "Designing Collective Behavior in a TermiteInspired Robot Construction Team", Science, [Online], vol. 343, pp. 754-758. [81] Robots Cubo, recurso on-line consultado por última vez el 19/04/2014. URL: http://spectrum.ieee.org/automaton/robotics/robotics-hardware/mit-deploys-swarm-ofselfassembling-robot-cubes. [82] Lujia Wang, Ming Liu, Meng, M.Q.-. & Siegwart, R. 2012, "Towards real-time multisensor information retrieval in Cloud Robotic System", IEEE Conference on Multisensor Fusion and Integration for Intelligent Systems (MFI), 2012, pp. 21 - 26. [83] Ruijiao Li, Oskoei, M.A. & Huosheng Hu 2013, "Towards ROS based Multi-Robot Architecture for Ambient Assisted Living", IEEE International Conference on Systems, Man, and Cybernetics (SMC), 2013, pp. 3458 - 3463. [84] ROS en Raspberry Pi, recurso on-line consultado por última vez el 26/04/2014. URL: http://wiki.ros.org/ROSberryPi/Setting%20up%20ROS%20on%20RaspberryPi. [85] Comunicación ROS-Arduino, recurso on-line consultado por última vez el 26/04/2014. URL: http://wiki.ros.org/rosserial_arduino/Tutorials/Arduino%20IDE%20Setup. [86] Puente entre ROS y Arduino, recurso on-line consultado por última vez el 26/04/2014. URL: http://wiki.ros.org/ros_arduino_bridge. [87] Definición de NODE en ROS, recurso on-line consultado por última vez el 27/04/2014. URL: http://wiki.ros.org/Nodes. Página 136 de 143 BIBLIOGRAFÍA [88] Definición de TOPIC en ROS, recurso on-line consultado por última vez el 27/04/2014. URL: http://wiki.ros.org/Topics. [89] Definición de SERVICE en ROS, recurso on-line consultado por última vez el 27/04/2014. URL: http://wiki.ros.org/Services. [90] Definición de MESSAGE en ROS, recurso on-line consultado por última vez el 27/04/2014. URL: http://wiki.ros.org/Messages. [91] Definición de ROSCORE en ROS, recurso on-line consultado por última vez el 27/04/2014. URL: http://wiki.ros.org/roscore. [92] Funcionamiento de ROSCORE como MÁSTER, recurso on-line consultado por última vez el 27/04/2014. URL: http://wiki.ros.org/Master. [93] XM1216 Small Unmanned Ground Vehicle (SUGV), recurso on-line consultado por última vez el 28/04/2014. URL: http://www.army-technology.com/projects/xm1216-smallunmanned-ground-vehicle-sugv/. [94] Harm's Way Controllers (HaWC) for Unmanned Systems, recurso on-line consultado por última vez el 28/04/2014. URL: http://www.esterline.com/controlsystems/MASON/HaWCControllers.aspx. [95] Youtube: iRobot XM1216 SUGV, recurso on-line consultado por última vez el 28/04/2014. URL: https://www.youtube.com/watch?v=g6-P4MlSl8k. [96] Drones, recurso on-line consultado por última vez el 29/04/2014. URL: http://www.globalresearch.ca/unmanned-aerial-vehicles-uav-drones-for-military-and-civilianuse/5374666. [97] SMACH: diseño y simulación de máquinas de estados, recurso on-line consultado por última vez el 30/04/2014. URL: http://wiki.ros.org/smach. [98] Sensor e interfaces de sensores en ROS, recurso on-line consultado por última vez el 01/05/2014. URL: http://wiki.ros.org/Sensors. [99] Tutorial, control de posición de una articulación con accionadores Dynamixel, recurso on-line consultado por última vez el 01/05/2014. URL: http://wiki.ros.org/dynamixel_controllers/Tutorials/CreatingJointPositionController. [100] Ejemplos de lenguaje de modelado URDF, recurso on-line consultado por última vez el 01/05/2014. URL: http://wiki.ros.org/urdf/Examples. [101] NAO en ROS, recurso on-line consultado por última vez el 01/05/2014. URL: http://wiki.ros.org/nao. [102] Video, gestión de la posición de NAO desde rviz, recurso on-line consultado por última vez el 01/05/2014. URL: https://www.youtube.com/watch?v=5ZrUAztrtU4. Página 137 de 143 BIBLIOGRAFÍA [103] Rich, C., Ponsler, B., Holroyd, A. & Sidner, C.L. 2010, "Recognizing engagement in human-robot interaction", 5th ACM/IEEE International Conference on Human-Robot Interaction (HRI), 2010, pp. 375-382. [104] Chien-Ming Huang & Mutlu, B. 2012, "Robot Behavior Toolkit: Generating Effective Social Behaviors for Robots", 7th ACM/IEEE International Conference on HumanRobot Interaction (HRI), 2012, , pp. 25-32. [105] Hold-Geoffroy, Y., Gardner, M.-., Gagne, C., Latulippe, M. & Giguère, P. 2013, "ros4mat: A Matlab Programming Interface for Remote Operations of ROS-based Robotic Devices in an Educational Context", International Conference on Computer and Robot Vision (CRV), 2013,pp. 242-248. [106] Reid, R., Cann, A., Meiklejohn, C., Poli, L., Boeing, A. & Braunl, T. 2013, "Cooperative Multi-Robot Navigation, Exploration, Mapping and Object Detection with ROS", IEEE Intelligent Vehicles Symposium (IV), 2013, pp. 1083-1088. [107] DeMarco, K.J., West, M.E. & Howard, A.M. 2013, "A Simulator for Underwater Human-Robot Interaction Scenarios", Oceans - San Diego, 2013, pp. 1-10. [108] Inside a US Control Centre for Drones, recurso on-line consultado por última vez el 04/05/2014. URL: http://www.military.com/video/aircraft/pilotless-aircraft/inside-a-uscontrol-centre-for-drones/1630320023001/. [109] The air force men who fly drones in Afghanistan by remote control, recurso online consultado por última vez el 04/05/2014. URL: http://www.telegraph.co.uk/news/uknews/defence/9552547/The-air-force-men-who-flydrones-in-Afghanistan-by-remote-control.html. [110] Unmanned Cargo Ships Face Industry Resistance, Are a Good Idea Anyway, recurso on-line consultado por última vez el 04/05/2014. URL: http://spectrum.ieee.org/automaton/robotics/industrial-robots/unmanned-cargo-ships-faceindustry-resistance-are-a-good-idea-anyway. [111] The DARPA Robotic Challenge, recurso on-line consultado por última vez el 04/05/2014. URL: http://www.theroboticschallenge.org/. [112] Arduino Support from MATLAB, recurso on-line consultado por última vez el 06/05/2014. URL: http://www.mathworks.es/hardware-support/arduino-matlab.html. [113] Arduino Wifi Shield, recurso on-line consultado por última vez el 07/05/2014. URL: http://arduino.cc/en/Main/ArduinoWiFiShield. [114] knowrob: Infraestructura para el procesamiento del conocimiento en robots, recurso on-line consultado por última vez el 07/05/2014. URL: http://wiki.ros.org/knowrob. [115] Competiciones robots, recurso on-line consultado por última vez el 09/05/2014. URL: http://wiki.webdearde.com/index.php?title=Competiciones_Internacionales. Página 138 de 143 BIBLIOGRAFÍA [116] Liga Nacional de Robótica, recurso on-line consultado por última vez el 09/05/2014. URL: http://lnrc.es. [117] Sabe, K. 2005, "Development of entertainment robot and its future", Symposium on VLSI Circuits, 2005. Digest of Technical Papers. 2005, pp. 2-5. [118] QRIO: The Robot That Could, recurso on-line consultado por última vez el 09/05/2014. URL: http://spectrum.ieee.org/robotics/robotics-software/qrio-the-robot-thatcould. [119] Furbies, recurso on-line consultado por última vez el 09/05/2014. URL: http://official-furby.wikia.com/wiki/File:2012_furbys.jpg. [120] León3D: Impresoras 3d, recurso on-line consultado por última vez el 13/05/2014. URL: http://www.leon-3d.es/formacion. [121] IMU Razor 9DOF con AHRS y conexión USB, recurso on-line consultado por última vez el 14/05/2014. URL: http://blog.bricogeek.com/noticias/tutoriales/imu-razor-9-dofcon-ahrs-y-conexion-usb/. [122] ASIMO Zero Moment Point, recurso on-line consultado por última vez el 14/05/2014. URL: http://asimo.honda.com/asimo-movement/zero-moment-point/. [123] ROS: walk_tools, recurso on-line consultado por última vez el 14/05/2014. URL: http://wiki.ros.org/walk_tools. [124] ROS: jrl_walkgen_bridge, recurso on-line consultado por última vez el 14/05/2014. URL: http://wiki.ros.org/jrl_walkgen_bridge. [125] ROS: face_recognition, recurso on-line consultado por última vez el 14/05/2014. URL: http://wiki.ros.org/face_recognition. [126] Park, J., Youm, Y. & Chung, W. 2005, "Control of Ground Interaction at the ZeroMoment Point for Dynamic Control of Humanoid Robots", IEEE International Conference on Robotics and Automation, 2005. ICRA 2005. Proceedings of the 2005, pp. 1724-1729. [127] Sardain, P. & Bessonnet, G. 2004, "Forces acting on a biped robot. Center of pressure-zero moment point", IEEE Transactions on Systems, Man and Cybernetics, Part A: Systems and Humans, vol. 34, no. 5, pp. 630-637. [128] Wang, T. & Chevallereau, C. 2010, "A new control law for a 3D biped robot based on regulation of the zero moment point and joint path", 10th IEEE-RAS International Conference on Humanoid Robots (Humanoids), 2010, pp. 27-32. [129] Yazdekhasti, S., Sheikholeslam, F. & Ghayour, M. 2010, "Stability analysis of biped robot with direct control of zero moment point", The 2nd International Conference on Computer and Automation Engineering (ICCAE), 2010 , pp. 528 - 532. [130] Swiss National Centre of Competence, recurso on-line consultado por última vez el 14/05/2014. URL: http://www.nccr-robotics.ch. Página 139 de 143 BIBLIOGRAFÍA [131] École polytechnique fédérale de Lausanne, recurso on-line consultado por última vez el 14/05/2014. URL: http://www.epfl.ch/. [132] ETH Zürich, recurso on-line consultado por última vez el 14/05/2014. URL: https://www.ethz.ch/en.html. [133] University of Zurich, recurso on-line consultado por última vez el 14/05/2014. URL: http://www.uzh.ch/index_en.html. [134] Dalle Molle Institute for Artificial Intelligence, recurso on-line consultado por última vez el 14/05/2014. URL: http://www.idsia.ch/. [135] WIFI para Raspberry Pi, recurso on-line consultado por última vez el 15/05/2014. URL: http://www.adafruit.com/products/814. [136] Directorio instituciones que investigan en robótica en Japón, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.jara.jp/e/en_labo/index.html. [137] La Universidad de Tokio, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.rsj.or.jp/rij_e/?page_id=51. [138] Laboratorio Arai, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.robot.t.u-tokyo.ac.jp/ar/index.htm. [139] Laboratorio Ota, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.race.u-tokyo.ac.jp/otalab/index.htm. [140] Laboratorio Ishikawa Watanabe, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.k2.t.u-tokyo.ac.jp/index-e.html. [141] Laboratorio Nakamura-Okada, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.ynl.t.u-tokyo.ac.jp/index.html. [142] Laboratorio Ura, recurso on-line consultado por última vez el 16/05/2014. URL: http://underwater.iis.u-tokyo.ac.jp/Welcome-e.html. [143] Laboratorio Matsumaru, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.waseda.jp/sem-matsumaru/. [144] Laboratorio Takanishi, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.takanishi.mech.waseda.ac.jp/top/index.htm. [145] Laboratorio Sugano, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.sugano.mech.waseda.ac.jp/. [146] Laboratorio Shuji Hashimoto, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.shalab.phys.waseda.ac.jp/index-e.html. [147] Instituto de robots humanoides, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.humanoid.waseda.ac.jp/. Página 140 de 143 BIBLIOGRAFÍA [148] MIT, investigación en robótica, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.media.mit.edu/research. [149] Carnegie Mellon, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.frc.ri.cmu.edu/. [150] Universidad de Pennsylvania, recurso on-line consultado por última vez el 16/05/2014. URL: https://www.grasp.upenn.edu/. [151] Universidad de Texas, recurso on-line consultado por última vez el 16/05/2014. URL: http://www.engr.utexas.edu/. [152] Willow Garage, recurso on-line consultado por última vez el 24/05/2014. URL: http://www.willowgarage.com/pages/research/research-areas. [153] ROS: Roomba, recurso on-line consultado por última vez el 20/05/2014. URL: http://wiki.ros.org/Robots/Roomba. [154] Ting-Yun Chi, Yi Ming, Tseng, Sy-Yen Kuo & Chih-Chiun Liao 2012, "Civil UAV Path Planning Algorithm for Considering Connection with Cellular Data Network", IEEE 12th International Conference on Computer and Information Technology (CIT), 2012,pp. 327-331. [155] Google Glass, recurso on-line consultado por última vez el 20/05/2014. URL: http://www.google.com/glass/start/. [156] Robot Roomba, recurso on-line consultado por última vez el 21/05/2014. URL: http://www.irobot.com/global/es/store/Roomba.aspx. [157] Robot cortacésped Ambrogio, recurso on-line consultado por última vez el 21/05/2014. URL: http://www.ambrogiorobot.com/es/. [158] Robot para limpieza de piscinas Dolphin, recurso on-line consultado por última vez el 21/05/2014. URL: http://www.maytronics.com/robotic-pool-cleaners. [159] Instalación de ROS, recurso on-line consultado por última vez el 24/05/2014. URL: http://wiki.ros.org/hydro/Installation/Ubuntu. [160] Martínez, A. & Fernández, E. 2013, Learning ROS for Robotics Programming, Packt Publishing Ltd., Birmingham. [161] ROS: Navigation Stack, recurso on-line consultado por última vez el 24/05/14. URL: http://wiki.ros.org/navigation. [162] Laboratorio Ohka, recurso on-line consultado por última vez el 24/05/14. URL: http://www.ohka.cs.is.nagoya-u.ac.jp/~ohka/ohka_lab2/index_eng.html. [163] Laboratorio Doki, recurso on-line consultado por última vez el 24/05/14. URL: http://www.okuma.nuee.nagoya-u.ac.jp/. [164] Laboratorio Fukuda-Vachkov, recurso on-line consultado por última vez el 24/05/14. URL: http://www.mein.nagoya-u.ac.jp/index-e.html. Página 141 de 143 BIBLIOGRAFÍA Página 142 de 143 ANEXOS 8. Anexos 8.1. Curriculum Vitae Ingeniero Técnico Superior en la especialidad de Electrotecnia, intensificación en Automática y Electrónica, por la Universidad de Vigo. Actualmente desarrolla su actividad profesional como profesor técnico de Formación Profesional, en el Departamento de Electricidad y Electrónica, en el IES Virgen de la Encina en Ponferrada. Página 143 de 143