UNIVERSIDAD DE COSTA RICA SISTEMA DE ESTUDIOS DE POSGRADO MAPEO PARA TRADUCCIÓN, DEL LENGUAJE DE ACCIÓN A INSTRUCCIONES DEL MODELO DE OBJETOS Tesis sometida a la consideración de la Comisión del Programa de Estudios de Posgrado en Ingenieŕıa Eléctrica para optar al grado de Maestŕıa Académica FÉLIX DAVID SUÁREZ BONILLA Ciudad Universitaria Rodrigo Facio, Costa Rica 2018 Indice general Portada i Hoja de aprobacoin ii Indice general iii Resumen vii Abstract viii Indice de cuadros ix Indice de guras x Lista de abreviaturas xiv Lista de de niciones xv 1 Introduccoin 1 1.1 Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Justi cacoin . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5.1 Objetivo general . . . . . . . . . . . . . . . . . . . 10 iii 1.5.2 Objetivos espec cos . . . . . . . . . . . . . . . . . 11 1.6 Solucoin propuesta . . . . . . . . . . . . . . . . . . . . . 11 1.7 Aportes . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.8 Gua del documento . . . . . . . . . . . . . . . . . . . . 18 2 Antecedentes y marco teorico 20 2.1 A ordances . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2 Planeamiento simbo lico . . . . . . . . . . . . . . . . . . 21 2.3 Lenguaje de accoin . . . . . . . . . . . . . . . . . . . . . 23 2.4 Arquitectura robotica . . . . . . . . . . . . . . . . . . . 24 2.5 Controlar objetos . . . . . . . . . . . . . . . . . . . . . . 26 2.6 Planeamiento . . . . . . . . . . . . . . . . . . . . . . . . 28 2.7 Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.8 Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.8.1 Lenguaje natural . . . . . . . . . . . . . . . . . . . 30 2.8.2 Lenguaje de accoin . . . . . . . . . . . . . . . . . 32 2.8.3 Comandos de control . . . . . . . . . . . . . . . . 33 2.9 Modelos dea ordances . . . . . . . . . . . . . . . . . . . 34 2.10Modelos secuencia a secuencia . . . . . . . . . . . . . . . 35 2.10.1Red neuronaLl STM . . . . . . . . . . . . . . . . . 36 2.10.2Traduccoin automatica neuronal (NMT) . . . . . . 40 3 Arquitectura propuesta 41 3.1 Especi caciones generales del sistema . . . . . . . . . . . 41 3.2 Descripcoin detallada del sistema de mapeo . . . . . . . 45 3.3 Unidad dea ordances . . . . . . . . . . . . . . . . . . . 48 3.3.1 Matriz dea ordances . . . . . . . . . . . . . . . . 48 iv 3.3.2 Entrenamiento . . . . . . . . . . . . . . . . . . . . 52 3.3.3 Cálculo del a ordability . . . . . . . . . . . . . . . 55 3.4 Unidad de mapeo . . . . . . . . . . . . . . . . . . . . . . 59 3.4.1 Categorización . . . . . . . . . . . . . . . . . . . . 59 3.4.2 Cálculo de los pesos . . . . . . . . . . . . . . . . . 60 3.5 Unidad de determinación de la referencia . . . . . . . . . 61 3.6 Unidad de propiedades de los objetos . . . . . . . . . . . 62 3.7 Unidad de análisis de factibilidad . . . . . . . . . . . . . 63 3.8 Especificaciones del lenguaje . . . . . . . . . . . . . . . . 64 3.9 Casos de uso . . . . . . . . . . . . . . . . . . . . . . . . 66 3.9.1 “Hágame un desayuno” . . . . . . . . . . . . . . . 67 3.9.2 “Hágame una ensalada” . . . . . . . . . . . . . . . 68 4 Diseño de experimentos 70 4.1 Definición de escenarios y tareas complejas . . . . . . . . 70 4.1.1 Escenario trivial binario . . . . . . . . . . . . . . . 70 4.1.2 Escenarios de complejidad real . . . . . . . . . . . 72 4.1.3 Definición de escenarios . . . . . . . . . . . . . . . 74 4.1.4 Definición de tareas complejas . . . . . . . . . . . 77 4.2 Generación del corpus de tareas simples . . . . . . . . . 78 4.3 Cálculo de a ordability . . . . . . . . . . . . . . . . . . . 80 4.3.1 Experimento A: Matriz de a ordances . . . . . . . 80 4.3.2 Experimento B: Verificación de a ordances . . . . 82 4.4 Cálculo de factibilidad . . . . . . . . . . . . . . . . . . . 83 4.5 Experimentos finales . . . . . . . . . . . . . . . . . . . . 86 5 Resultados y discusión de experimentos 89 v 5.1 Análisis del corpus . . . . . . . . . . . . . . . . . . . . . 89 5.1.1 Verbos . . . . . . . . . . . . . . . . . . . . . . . . 89 5.1.2 Objetos . . . . . . . . . . . . . . . . . . . . . . . . 91 5.1.3 Variación . . . . . . . . . . . . . . . . . . . . . . . 93 5.2 Affordances . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.2.1 Experimento A: Matriz de affordances . . . . . . . 96 5.2.2 Experimento B: Verificación de affordability . . . . 97 5.3 Factibilidad . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.4 Experimentos finales . . . . . . . . . . . . . . . . . . . . 105 6 Conclusiones y recomendaciones 108 Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 vi Resumen En este trabajo de investigación se presenta una propuesta que in- tenta cerrar la brecha entre el razonamiento y la planificación, y los controladores que producen movimientos y acciones en el mundo real, esto para un robot humanoide. Para esto se traducen tareas mı́nimas a entradas que pueden ser entedidas por un sistema que controla objetos, el cual está compuesto compuesto por cinco partes: unidad de afforda- bility, unidad de mapeo, unidad de referencia, unidad de propiedades de los objetos y unidad de factibilidad. Los experimentos realizados sobre el sistema indican que la utilización de tareas simples y el di- seño de la unidad de affordances resultan prometedores para futuros enfoques a este problema. vii Abstract This thesis presents an architecture that helps to close the gap bet- ween reasoning and planning, and controllers that produce movements and actions on the real world for a humanoid robot. For this, simple tasks are translated into inputs that can be directly used by a system that can control objects, this system is composed of five parts: the of- fering unit, the mapping unit, the reference unit, the object properties unit and the feasibility unit. The results indicate that the use of sim- ple tasks and the design of the offering unit are promising for future approaches to this problem. viii Índice de cuadros 4.1 Experimento con dos controladores. . . . . . . . . . . . . 85 4.2 Experimento con tres controladores. . . . . . . . . . . . 86 5.1 Verbos más comunes en la cocina. . . . . . . . . . . . . . 90 5.2 Verbos mas comunes en la mesa de trabajo. . . . . . . . 92 5.3 Matriz de affordances . . . . . . . . . . . . . . . . . . . 96 ix Índice de figuras 1.1 Arquitectura robótica de tres capas. . . . . . . . . . . . 8 1.2 Metodoloǵıa. . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Mapeo de la instrucción en lenguaje de acción. . . . . . . 12 1.4 Diagrama de bloques del sistema. . . . . . . . . . . . . . 14 1.5 Ejemplo de mapeo de una instrucción en lenguaje natural. 15 1.6 Diagrama de bloques del sistema de acople de la instruc- ción en lenguaje de acción con las entradas del modelo de objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.1 Arquitectura del modelo secuencia a secuencia que con- siste en dos componentes principales: un codificador y un decodificador. . . . . . . . . . . . . . . . . . . . . . . . . 36 2.2 Estado de la celda LSTM. . . . . . . . . . . . . . . . . . 37 2.3 Compuerta de olvido en una celda LSTM . . . . . . . . 38 2.4 Compuerta de entrada de una celda LSTM . . . . . . . 38 2.5 Compuerta de salida de una celda LSTM . . . . . . . . 39 2.6 Arquitectura del modelo secuencia a secuencia que con- siste en dos componentes principales: un codificador y un decodificador. . . . . . . . . . . . . . . . . . . . . . . . . 40 3.1 Arquitectura general del sistema a implementar compues- to por: la capa de alto nivel, el sistema de mapeo, el mo- delo de objetos y el simulador robótico. . . . . . . . . . . 42 3.2 Escenario y articulación robótica utilizada por Thenmonzhi 44 x 3.3 Sistema de mapeo, el cual contiene cinco módulos: affor- dances, mapeo, determinación de la referencia, propieda- des de los objetos y análisis de factibilidad. . . . . . . . 46 3.4 Sistema de modelo de objetos propuesto por Ruiz. El componente de razonamiento y planeamiento correspon- de a la capa de alto nivel descrita en este documento. . . 47 3.5 Entrenamiento de la unidad de affordances la cual con- siste en tres etapas: preprocesamiento, análisis léxico y lematización. . . . . . . . . . . . . . . . . . . . . . . . . 54 3.6 Prueba de la unidad de affordances, la cual consiste en cuatro etapas: preprocesamiento, análisis léxico, lemati- zación y cálculo de probabilidad. . . . . . . . . . . . . . 58 4.1 Alimentos pertenencientes al estándar YCB. . . . . . . . 73 4.2 Escenario cocina el cual consiste de: un microondas, un fregadero, una estufa, una refrigeradora, una licuadora, tres gabinetes y una mesa central. . . . . . . . . . . . . . 76 4.3 Mesa de trabajo colaborativa la cual consiste en los si- guientes elementos: dos gavetas, un serrucho, un marti- llo, un juego de llaves, una llave francesa, un juego de desatornilladores, un juego de alicates y una cinta métrica. 76 4.4 Experimento A. Construcción de matriz de affordances . 81 4.5 Experimento B. Instrucciones simples que no cumplen con el affordability . . . . . . . . . . . . . . . . . . . . . 83 4.6 Diagrama de flujo que muestra la interacción entre la uni- dad de mapeo y la unidad de análisis de factibilidad. . . 84 xi 4.7 Conjunto de tareas simples utilizadas para probar el sis- tema completo. . . . . . . . . . . . . . . . . . . . . . . . 88 5.1 Porcentaje de ocurrencia entre escenarios para tres ver- bos: mover, buscar y colocar. . . . . . . . . . . . . . . . 93 5.2 Variación entre tareas complejas para la cocina: Se mues- tra la variación entre tareas complejas, en el escenario cocina, para los siguientes verbos: mover, buscar, verter, colocar e introducir. . . . . . . . . . . . . . . . . . . . . 95 5.3 Variación entre tareas complejas para la mesa de trabajo colaborativa: Se muestra la variación entre tareas com- plejas, en la mesa de trabajo, para los siguientes verbos: lijar, colocar, buscar, limpiar y taladrar. . . . . . . . . . 95 5.4 Variación de los pesos para dos controladores y un valor de penalización-incentivo de 0.05. . . . . . . . . . . . . . 99 5.5 Variación de los pesos para dos controladores y un valor de penalización-incentivo de 0.1. . . . . . . . . . . . . . . 100 5.6 Variación de los pesos para dos controladores y un valor de penalización-incentivo de 0.2. . . . . . . . . . . . . . . 101 5.7 Variación de los pesos para tres controladores y un valor de penalización-incentivo de 0.05. . . . . . . . . . . . . . 102 5.8 Variación de los pesos para tres controladores y un valor de penalización-incentivo de 0.1. . . . . . . . . . . . . . . 103 5.9 Variación de los pesos para tres controladores y un valor de penalización-incentivo de 0.2. . . . . . . . . . . . . . . 104 5.10Salidas generadas por la capa de interfaz para la tarea simple “Buscar la tostadora”. . . . . . . . . . . . . . . . 106 xii 5.11Salidas generadas por la capa de interfaz para la tarea simple “Introducir el trozo de pan #1 en la tostadora”. . 107 xiii Lista de abreviaturas ARCOS-Lab: Siglas en inglés de Autonomous Robots and Cogniti- ve Systems Laboratory perteneciente a la Escuela de Ingenieŕıa Eléctri- ca de la Universidad de Costa Rica. LSTM: Siglas en inglés de Long-short term memory la cual es un tipo especial de red neuronal recurrente conformada por una celda de memoria que puede retener su valor durante un periodo de tiempo largo o corto. NMT: Siglas en inglés de Neural Machine Translation el cual es un método de traducción automática que usa una red neuronal de tamaño considerable. xiv Lista de de niciones A ordance : Es el cualquier caracteŕıstica de un objeto que le pro- porciona al sujeto información de cómo realizar una acción. Dicho de otra forma, es el conocimiento que una persona puede extraer acerca de las diferentes formas de utilizar un objeto (Gibson, 1977) (Moldovan, Moreno, van Otterlo, Santos-Victor, y Raedt, 2012). Arquitectura robotica : Este término se refiere a como el sistema se divide en subsistemas y como estos interactúan, aśı como a los con- ceptos computacionales que sigue el sistema robótico en cuestión. En cuanto al interacción de los subsistemas, usualmente se usan flechas y bloques para representar estas interacciones (Siciliano y Khatib, 2007) (Coste-Maniere y Simmons, 2000). Capa de bajo nivel : En el contexto de un sistema robótico, se refieren a los componentes de software que interactúan directamente con el hardware. Es la capa encargada de realizar el control, conec- tar actuadores y sensores, aśı como resolver toda la cinemática. En el contexto de este trabajo, también se considera que esta capa posee la biblioteca de objetos. Capa de alto nivel : El sistema de alto nivel trabaja a nivel más simbólico y de significados, toma instrucciones más generales (en algún tipo de lenguaje) y las convierte a instrucciones más simples. Esta capa recibe además los siguientes nombres: capa de planeamiento simbólico, xv capa de planeamiento y razonamiento, o sistema de alto nivel. Modelo de objetos : Este componente se encarga de predecir y controlar el comportamiento del objeto. Un modelo de objeto es una descripción matemática del comportamiento del objeto, es decir, un sistema dinámico donde las entradas al sistema pueden ser cualquier cosa que el robot pueda transmitir al objeto y las salidas son cualquier cosa que el robot puede medir o inferir (Ruiz, Cheng, y Beetz, 2010). Tarea simples : Es una instrucción, expresada en algún lenguaje, que consta de tres elementos: sujeto, acción y estado deseado; y que además puede ser ejecutada por un controlador ubicado en la capa de bajo nivel del sistema robótico. xvi 1 Introduccoin La poblacion mundial enfrenta un vertiginoso proceso de enveje- cimiento, que afecta a pases desarrollados y en vas de desarrollo. El envejecimiento tiene importantes consecuencias y repercusiones para todas las facetas de la vida humana, la mas importante es una mayor lentitud y una menor uidez en la ejecucion de algunas tareas, tanto desde el punto de vista fsico como cognitivo (Karim, Lokman, y Red- zuan, 2016a) (Karim, Lokman, y Redzuan, 2016b). La ejecucion de una tarea puede ser d cil para un adulto mayor; por eso la importan- cia de un robot que pueda asistir, apoyar y colaborar y, de esta forma, mejorar la calidad de vida de estas poblaciones (Nava, 2011). Las tareas a las que se enfrenta el ser humano en la vida diaria pueden requerir elevadas capacidades de comprension del ambiente y altas destrezas manipulativas (Low y cols., 2017) (Feix, Bullock, y Dollar, 2014). La tarea de servir una taza de leche requiere de una gran cantidad de sub-tareas que por s mismas se revisten de una gran complejidad como: encontrar el recipiente, empujar una caja, vertir lquido, sostener un recipiente y muchas otras. Por citar un ejemplo, el sostener un recipiente requiere de un conocimiento completo de como se comporta el objeto desde el punto de vista fsico y mecanico, ademas de un entendimiento de la tarea u objetivo que se desea realizar con el recipiente. Estas aplicaciones requieren de un robot amigable con el ambien- 2 te, que manipule objetos con suavidad y precision, que cuente con una capacidad de percepcion avanzada, que entienda las intenciones de los humanos y que colabore con dichas intenciones. Para que un robot cumpla con lo anterior debe tener ciertas capacidades fsicas y cognitivas. En el aspecto fsico el control suave puede resolver lo de la manipulacion delicada. El problema de percepcion se puede realizar con sensores con capacidad de deteccion en 3D. Finalmente, una fusion de sensores complementarios puede posibilitar la comunicacion con el ser humano. Bajo estas condiciones, las tareas que debe ejecutar un robot son complejas, las mismas usualmente se dividen en tareas mas peque~nas que pueden ser ejecutadas por un controlador. Estas tareas simples pueden ser expresadas a traves de una oracion que tiene sujeto, verbo y predicado, las cuales se debe acoplar a los controladores del robot. El acople entre una tarea simple y los controladores del robot ha sido poco abordado, pero resulta fundamental para que un humano pueda expresar intenciones a un robot y que el mismo las ejecute en forma autonoma (Domingos, 2007). Los campos de conocimiento de la psicologa y de la neurociencia han realizado estudios relevantes sobre los humanos que pueden servir como insumo para el desarrollo de tecnicas que se puedan incorporar en un robot. Este es el caso de la teora de los a ordances que permite explicar la relacion que existe entre actores y objetos (Gibson, 1977). Este concepto se considera crucial para esta tesis y sirve como motiva- cion e inspiracion para desarrollar un mecanismo que permita acoplar 3 una tarea con controladores. Uno de los primeros acercamientos para manipular objetos, observando el problema desde la perspectiva de af- fordances , es la idea de modelos de objetos (Ruiz y cols., 2010) (Romay, Kohlbrecher, Conner, y von Stryk, 2015). Un modelo de objetos per- mite predecir y controlar un objeto abstrayendo el cuerpo del robot. Esto permite controlar los objetos directamente y no el robot. El modelo de objetos permite abstraer la dinamica del cuerpo del robot, pero este todava necesita ser conectado a un sistema de razonamiento y plani cacion para lograr transformar instrucciones a acciones sobre objetos. El sistema de alto nivel trabaja a nivel mas simbolico y de signi cados, toma instrucciones mas generales (en algun tipo de lenguaje) y las convierte a instrucciones mas simples, mientras que la capa de modelos de objetos requiere de parametrizaciones y valores numericos. Este trabajo de posgrado se enfoca en cerrar esta brecha entre el sistema de alto nivel y el modelo de objetos, a traves de una nueva capa intermedia que incopora un sistema de mapeo a traves de un lenguaje de accion orientado a manipulacion de objetos. 1.1. Problema Necesitamos que los robots pueden asistir, colaborar y ayudar a los seres humanos en tareas que son relevantes para estos, para ello ne- cesitamos comunicar tareas y que las mismas sean entendidas correc- tamente. Por ejemplo, la tarea compleja \Hacer un desayuno" puede ser entendida por el sistema de planeamiento simbolico, pero para su 4 ejecucion debe poder ser interpretada por los controladores del robot. Por tanto, el problema general es: >Como se comunica la interfaz entre un sistema de razona- miento y plani cacion y un sistema de control, en un robot humanoide? En particular, la interfaz entre un sistema de alto nivel y un mo- delo de objetos. La solucion propuesta es un sistema de mapeo y un lenguaje de accion orientado a manipulacion de objetos, con la gene- ralidad su ciente para desempe~nar estas tareas (Ruiz y cols., 2010) (Ruiz, Cheng, y Beetz, 2011). El sistema robotico que se investiga esta orientado a manipulacion de objetos, por lo que el lenguaje de accion y el mapeo del mismo van tambien en esa direccion. Es necesario analizar si esta solucion es viable y si se puede extender a otras arquitecturas roboticas orientadas a otras tareas. 1.2. Hipotesis En este trabajo de investigacion, se parte de la conjetura o idea predeterminada de que un sistema de mapeo y un lenguaje de accion orientado a manipulacion de objetos puede funcionar como capa de interfaz o capa intermedia para abstraer el sistema de alto nivel de la capa de bajo nivel (modelos de objetos) de la arquitectura robotica. 5 En este sentido, se considera que un lenguaje de accion, que re- presenta tareas simples (tareas mnimas y bien de nidas), es adecuado para representar la salida del sistema de alto nivel. Tambien se parte de la premisa que un sistema que mapea la instruccion o tarea simple, para obtener los parametros del controlador, podra en efecto cerrar la brecha entre el cuerpo (capa de bajo nivel) y la mente del robot (capa de alto nivel) (Ruiz y cols., 2010) (Ruiz y cols., 2011). En la literatura existen lenguajes de accion, dichos lenguajes tpi- camente se dise~naron para representar o procesar conocimiento o ideas pero no para representar acciones de manipulacion. Este es el caso de YAGI y GOLOG, que son dos lenguajes de accion utilizados en roboti- ca, los cuales son mas generales y orientados a procesamiento logico (Ferrein y cols., 2016) (Levesque, Reiter, Lesperance, Lin, y Scherl, 1997). Por tanto podra ser necesario dise~nar y formalizar un lengua- je de accion dirigido a manipular objetos rgidos en un determinado escenario. La utilizacion de un lenguaje de accion plantea el reto de que el sistema de alto nivel debe poder generar oraciones en un lenguaje de accion. Esto podra a~nadir una complejidad adicional al sistema de planeamiento simbolico. Ademas, existen dos problemas al especi car y formalizar un lenguaje de accion: la expresividad del lenguaje y espa- cios de busqueda intratables; debido al gran numero objetos y acciones posibles sobre los objetos en el escenario. En vista de lo anterior, se ha planteado la siguiente hipotesis para 6 el presente trabajo de investigacoin: Un sistema de mapeo entre un lenguaje de accoin y un modelo de objetos, permite acoplar la capa de alto nivel con la capa de control de una arquitectura robotica orientada a manipulacoin de objetos, esto con una representatividad mayor al 92 % y una ordability del 100 %. 1.3. Justi cacoin En la actualidad existen dos grandes preguntas que muestran los problemas existentes en la robotica: >Como puede un robot controlarse a si mismo en forma autono- ma? >Como pueden nuestras intenciones ser comunicadas a un robot? Para ejempli car esto, consideremos un robot cocinero al que le ordenamos que haga un desayuno sencillo de huevos revueltos y pan cuadrado. El robot debe ser capaz de hacer el huevo en foramuaotno- ma , tener conocimiento del espacio de trabajo, ubicar los ingredientes y moverse por la cocina. El robot debe ser capaz ednetender las ins- trucciones del ser humano, tomar la tarea encomendada y subdividirla en tareas mas simples. 7 En este proyecto se va a trabajar ambos puntos, la comunicacion y la autonoma. La arquitectura robotica que se toma como referencia es de tres capas, un capa de alto nivel, una capa intermedia (tambien llamada capa de interfaz) y una capa de bajo nivel (Ver gura 1.1). La capa de bajo nivel es la de control, el sistema de modelo de objetos tambien se considera pertenenciente a la capa de bajo nivel; la capa intermedia es el sistema que se va a desarrollar y la capa de alto nivel corresponde al sistema de planeamiento simbolico. 8 Figura 1.1: Arquitectura robotica de tres capas. 9 Existen experiencias previas en ciencias de la computacion donde la creacion de una capa de interfaz permite mayor sinergia, innovacion y desarrollo; de tal forma que una mejora en una capa inferior tenga bene cios para las capas superiores y viceversa. En un inicio, la crea- cion de una capa de interfaz puede ser recibida con escepticismo, pero cuando nalmente es aceptada, facilita un desarrollo mas rapido de la capas contiguas (Domingos, 2007). 1.4. Metodologa El trabajo de esta investigacion esta dividida en dos etapas, prime- ro se aborda la formalizacion de la semantica y la sintaxis del lenguaje de accion, de segundo la interfaz entre el modelo y el alto nivel. Notese en la gura 1.2 que la primera parte implica la de nicion de un len- guaje y la segunda parte implica la implementacion de este lenguaje en una arquitectura robotica. La validacion experimental se hara a traves de simulaciones. La formalizacion del lenguaje de accion y su implementacion sera com- probada usando instrucciones simples las cuales deben ser mapeadas correctamente y entendidas por el modelo de objetos. El analizador lexico debe poder extraer el sujeto, verbo y predicado de la instruc- cion simple. Por otro lado, la base de datos de posiciones debera poder proporcionar las coordenadas espaciales correspondientes a la posicion. Porultimo, el modelo de objetos debe generar los comandos de movi- miento de los actuadores. 10 Figura 1.2: Metodologa. 1.5. Objetivos 1.5.1. Objetivo general Dise~nar e implementar una interfaz entre el sistema de planea- miento simbolico y un modelo de objetos a partir de un lenguaje de accion orientado a manipulacion de objetos. 11 1.5.2. Objetivos espec cos Especi car formalmente la sintaxis y la semantica del lenguaje de accion orientado a manipulacion de objetos. Determinar la interfaz de comunicacion con la capa de planea- miento simbolico y el modelo de objetos. Implementar el sistema de mapeo entre el sistema de alto nivel y el modelo de objetos para un conjunto amplio de posibles acciones. Validar el sistema de mapeo con las otras capas de la arquitectura robotica a traves de simulaciones. 1.6. Solucoin propuesta Para solucionar el problema de como interconectar un sistema de alto nivel con los controladores del robot, en esta tesis se propone un lenguaje de accoin especialmente dise~nado para la manipulacion de objetos. Una oracion en este lenguaje de accion contendra elementos como: verbo, adverbio, objeto directo y predicado, que pueden servir como una instruccion que el robot debe ejecutar. A partir de este lenguaje de accion se podra hacer un mapa asociativo , donde, por ejemplo, se podra asociar: el verbo con el modelo y el controlador, el objeto directo con las propiedades del objeto y el predicado con el estado nal deseado (Vease gura 1.3). El lenguaje de accion junto al mapa asociativo es una posible solucion para interconectar ambas 12 capas (Guerra-Filho y Aloimonos, 2007). Figura 1.3: Mapeo de la instruccion en lenguaje de accion. La forma de construir este mapa asociativo podra ser: 1) me- diante la ayuda de un experto en la tarea a realizar y otro experto en las capacidades del robot, este tipo de asociatividad sera construi- da por humanos utilizando conocimiento experto previo; 2) utilizando \aprendizaje de maquina" donde a traves de experimentos o ejemplos con seres humanos reales se ense~na al robot a asociar elementos par- ticulares de la oracion con efectos o estados nales de los objetos, por citar un ejemplo, la asociatividad entre la frase \al frente" y las coor- denadas espaciales correspondientes a la posicion nal de un objeto (Sugiura y Iwahashi, 2007). El sistema que se va dise~nar e implementar tambien necesita una biblioteca de objetos que es seleccionada y habilitada de acuerdo a las instrucciones en lenguaje de accion. La seleccion del objeto per- mite escoger el conjunto de propiedades o datos relativos al objeto, que seran necesarios para poder operar el modelo de objetos y el co- rrecto funcionamiento de los controladores (Vease gura 1.6). Algunos 13 ejemplos de propiedades son: el coe ciente de friccion, las dimensiones fsicas o la masa del objeto (Ruiz y cols., 2011). La gura 1.4 muestra un diagrama del sistema que se va imple- mentar. La primera parte, denominada \Sistema de razonamiento, pla- neamiento y conocimiento", traduce un lenguaje de alto nivel o un len- guaje natural, a un lenguaje de accion. A continuacion el sistema de mapeo asocia esa instruccion generada por el alto nivel con las entra- das del modelo de objetos. Porultimo, el\modelo de objetos" genera los comandos y las coordenadas de los movimientos a ser ejecutados por el robot. 14 Figura 1.4: Diagrama de bloques del sistema. La gura 1.5 muestra el proceso de traduccion de la oracion \Srva- me un vaso de leche". El sistema de alto nivel traduce la instruccion en lenguaje natural a un conjunto de instrucciones en lenguaje de ac- cion. El sistema de razonamiento tambien determina las acciones que minimizan la cantidad de recursos necesarios para cumplir el objetivo. El componente de mapeo selecciona el modelo del objeto, las propie- dades, la posicion y el valor deseado, de cada instruccion del lenguaje de accion. Porultimo, el sistema de modelo de objetos comanda el sis- tema de control de la articulacion robotica a partir de las instrucciones 15 proporcionadas. Figura 1.5: Ejemplo de mapeo de una instruccion en lenguaje natural. Las instrucciones o comandos en lenguaje de accion son generados por el sistema de alto nivel. Estas instrucciones deben ser lo mas redu- cidas y simples posibles para ser ejecutadas por el modelo de objetos. La forma es que esta instruccion simple se acopla al modelo de objetos es el principal tema de investigacion de este proyecto, pero se parte 16 de que un nuevo lenguaje de accion, mapas o tablas asociativas y una librera de objetos es una solucion factible a este problema. La gura 1.6 describe el proceso de acoplar la instruccion en len- guaje de accion al modelo de objetos. El sistema de alto nivel produce una instruccion, la cual es mapeada en: seleccion de la posicion (valor deaseado) y seleccion del objeto (accion y objeto). Las propiedades del objeto son seleccionadas una vez que se ha identi cado el objeto. Notese que se ha agregado una base de datos de posiciones al sistema para almacenar la posicion de los objetos en el escenario de prueba y proporcionar los valores numericos precisos a los objetos del sistema. El sistema posee un analizador elxico , el cual se encarga de analizar cada instruccion generada por el sistema de alto nivel y separarla en las partes correspondientes. 17 Figura 1.6: Diagrama de bloques del sistema de acople de la instruccion en lenguaje de accion con las entradas del modelo de objetos. 1.7. Aportes En esta tesis se describen las siguientes contribuciones: Formalizacion de la semantica y sintaxis de un nuevo lenguaje de accion orientado a manipulacion de objetos para dos escenarios: una cocina y una mesa de trabajo colaborativa (Suarez y Ruiz, 2018). Una arquitectura de software que me permita mapear oraciones del lenguaje de accion a parametrizaciones del controlador del sistema de objetos (Suarez y Ruiz, 2019). 18 En una arquitectura robotica, una nueva capa de interfaz que per- mita cerrar la brecha entre los sistemas de planeamiento simbolico y la capa de control del robot. Una base de datos asociativa para ayudar a mapear las instruc- ciones simples y obtener las parametrizaciones que seran usadas por el controlador. 1.8. Gua del documento En el captulo 1 se presenta la propuesta de investigacion corres- pondiente a esta investigacion, lo cual incluye: el problema, la hipotesis, la justi cacion, la metodologa, los objetivos, la solucion propuesta y los aportes realizados. La metodologa se divide en dos partes: la primera parte corres- ponde a la generacion de un lenguaje de accion; la segunda parte es el dise~no y desarrollo del sistema de mapeo que se pretende utilizar como capa de interfaz en la arquitectura robotica. En el captulo 2 se presentan los antecedentes y el marco teorico, en el cual se abordan los aspectos mas relevantes, como lo son: arqui- tectura robotica, modelos de objetos, lenguaje de accion, modelos de a ordances , entre otros. En el captulo 3 se presenta el dise~no general y detallado del siste- ma a implementar. Se presenta una descripcion funcional y matematica 19 de cada uno de los bloques que componen el sistema, as como la espe- ci caciones del lenguaje de accion. Porultimo, se detallan dos casos de uso a traves de dos tareas simples: \Hagame un desayuno" y \Hagame una ensalada". En el captulo 4, se dise~nan los experimentos, lo cual incluye los experimentos para generar el lenguaje de accion; as como el dise~no, desarrollo y prueba del software correspondiente a la capa de interfaz o sistema de mapeo. En el captulo 5 se muestran los resultados de los experimentos y se procede con la discusion de los mismos. Porultimo, en el captulo 6 se muestran las conclusiones y las recomendaciones de este trabajo de investigacion. Antecedentes y marco teorico Los robots, para que puedan trabajar apropiadamente con seres humanos, deben poder entender instrucciones, reaccionar a estmulos, conocer el entorno y anticipar su comportamiento. Sin embargo, en la actualidad, los robots se encuentran muy lejos de esta meta, esto se debe a las siguientes razones (Ruiz, 2014) (Cousins, 2011): La capacidad de un robot para detectar y reaccionar ante situa- ciones inesperadas del entorno es limitada. Por ejemplo, un robot programado para jugar futbol podra no reaccionar adecuadamen- te ante la presencia de otro balon en el campo. La interaccion robot-humano es un problema abierto. La interac- cion se re ere a la comunicacion de acciones a ser ejecutadas por el robot y a la transferencia de conocimiento entre un humano y un robot. Esta comunicacion se debe dar a traves de un lenguaje de alto nivel. El problema de comunicacion entre un ser humano y un robot depende mucho de como el sistema de alto nivel entiende las instruc- ciones en lenguaje natural y las comunica al sistema de control. Existen referencias que apuntan a que agregar una capa adicional en una ar- quitectura robotica ayudara a reducir la brecha entre la mente y el cuerpo del robot (Domingos, 2007) (Domingos y Lowd, 2009). 20 21 2.1. Affordances La manipulacion de objetos es una de las habilidades necesarias que debe desempe~nar un robot. Los objetos se pueden ver como unida- des que deben que ser entendidas y controladas (Ruiz, 2014) (Krivic, Ugur, y Piater, 2016). El concepto de ver un objeto como algo que tiene una funcion que depende de quien lo esta manipulando se llama a ordance . Este concepto tiene su origen en el dise~no de productos y sugiere que la percepcion del que manipula el objeto es la que deter- mina su funcion (Norman, 2002). El concepto a ordance es muyutil para la manipulacion de obje- tos y es medular dentro de la concepcion de los modelos de objetos. La respuesta de un objeto esta determinada por el modelo, a traves del conjunto de fuerzas y torques aplicados. Por ejemplo, una lata de atun que se abre (accion especi cada de acuerdo a la funcion que otorga el usuario), desde el punto de vista del robot, es un conjunto de fuerzas aplicadas en determinados puntos por una articulacion robotica (Ruiz, 2014). 2.2. Planeamiento simbolico La ejecucion de tareas de la vida diaria, por parte de un opera- dor humano, requiere de una serie de habilidades muy complejas y extensas. Adicionalmente, se necesita de una base de datos acerca del 22 contexto de las tareas y de los objetos a ser manipulados. Los sistemas de planeamiento simbolico realizan esta funcion tomando una accion compleja y desmenuzandola en tareas mas sencillas, las cuales deben ser lo mas simples posibles para ser ejecutadas por los controladores del robot (Quack, Worgotter, y Agostini, 2015). La segmentacion de acciones complejas a acciones mas simples dentro de una arquitectura robotica es un tema que en la actualidad se encuentra en investigacion (Ruiken, Liu, Takahashi, y Grupen, 2016) (Muller, Kirsch, y Beetz, 2007) (Gorges, Schmid, Osswald, y Worn, 2007). El problema no se limita a tomar tareas y subdividirlas, si no que las tareas que se obtienen como resultado deben tener un orden tal que optimice la tarea desde el punto de vista de algun principio. Por ejemplo, un robot, en lugar de transportar los ingredientes de una receta de cocina, uno por uno, puede decidir utilizar un contenedor para transportarlos (C. Zhang y Shah, 2016). El artculo de Muller, Kirsch y Beetz denominado Transformatio- nal Planning for Everyday Activity ha abordado este problematica a traves de TRANER (Transformational Planner for Everyday Activity) el cual es un sistema de plani cacion, donde tareas complejas son di- vididas en tareas mas sencillas. Esta investigacion en particular tiene dos metas: obtener una biblioteca general para actividades diarias y un conjunto de reglas que implementan optimizaciones y revisiones de planes (Muller y cols., 2007). El artculo de Tenorth y Beetz denominado Priming Transfor- 23 mational Planning with Observations of Human Activities plantea un enfoque diferente en la plani cacion de actividades donde el robot ob- serva el comportamiento humano para encontrar el plan en su librera que mejor se ajusta a la forma en que el ser humano ejecuta la tarea. Esta investigacion es un paso hacia adelante para que los robots pue- dan actuar con naturalidad en ambientes humanos (Tenorth y Beetz, 2010). 2.3. Lenguaje de accoin La parte que esta abordada pobremente es como estas instruc- ciones se acoplan a los controladores. En esa direccion el proyecto de Ruiz trabajo en la implementacion de modelos matematicos de los ob- jetos para describir como se comportan (predicion) y como controlarlos (Ruiz, 2014) (Ruiz y cols., 2010) (Stulp y cols., 2009). Estos modelos de objetos permiten, en lugar de comandar los motores, comandar el objeto directamente. El bene cio inmediato de comandar el objeto di- rectamente es su cercana con la forma en que expresan las tareas en una oracion. La salida del sistema de planeamiento simbolico son instrucciones en leguaje de accion. Algunos ejemplos de lenguajes usados en roboti- ca son: PROLOG (Sterling y Shapiro, 1986), GOLOG (Levesque y cols., 1997), PREGO (Belle, 2014) y YAGI (Ferrein y cols., 2016). Los lenguajes citados estan dise~nados para realizar procesamiento logico y razonamiento, con el n de ser usados en la capa de planeamiento 24 simbolico, por lo que no estan orientados a tareas de manipulacion de objetos. Adicionalmente, los lenguajes de accion orientados a manipu- lacion de objetos carecen de la generalidad su ciente para ser utiliza- dos en tareas de proposito general. Este es el caso de un lenguaje de accion dise~nado por Hopcroft exclusivamente para atar cordones de zapato (Hopcroft, Kearney, y Kra t, 1991). 2.4. Arquitectura robotica El termino \arquitectura robotica" puede referirse a dos conceptos diferentes: la estructura y el estilo. La estructura se re ere a como el sistema se divide en subsistemas y como estos interactuan, la cual es representada informalmente usando diagramas de caja y echas. El estilo se re ere a los conceptos computacionales que sigue el sistema robotico en cuestion. Todos los sistemas roboticos poseen una estruc- tura y un estilo, sin embargo, en un sistema dado es difcil determinar la arquitectura y el estilo, pues puede poseer varios estilos y las fronte- ras entre los diferentes subsistemas podran no estar claras (Siciliano y Khatib, 2007) (Coste-Maniere y Simmons, 2000). La primera arquitectura robotica comenzo con el robot Shakey en la Universidad de Stanford a nales de los a~nos 60. La arquitectura de este primer robot se compona de tres elementos: sensado, planea- miento y ejecucion. El subsistema de sensado traduca la imagen en un modelo interno. El subsistema de planeamiento tomaba este modelo y una meta para generar un plan, el cual luego era ejecutado por el ro- 25 bot. Este enfoque es denominado paradigma \sensar-planear-actuar" y su principal caracterstica es que el plan es ejecutado sin usar direc- tamente la informacion de sensado (Siciliano y Khatib, 2007). En el a~no 2016 se dise~no y construyo una version moderna de Shakey denominada \Shakey 2016", con el n de evaluar los progresos en robotica. Los experimentos demostraron que, en las ultimas deca- das, ha habido un progreso importante en: planeamiento, navegacion y deteccion de objetos. En la actualidad, el dise~no y puesta en mar- cha de un robot es mas rapido y uido debido, entre otras cosas, a la gran disponibilidad de codigo de fuentes abiertas. Sin embargo, estas primeras ideas todavan estan vigentes en la mayora de arquitecturas roboticas y por eso es valioso traerlas a colacion (Speck, Dornhege, y Burgard, 2017). La arquitectura robotica de tres capas: planeamiento, ejecucion y control en tiempo real; ha sido ampliamente usada en losultimos a~nos. La capa de planeamiento almacena metas y actividades a largo plazo. La capa de ejecucion es responsable de traducir planes de alto nivel en comportamientos de bajo nivel. La capa de control es el nivel mas bajo de la arquitectura robotica, pues conecta actuadores y sensores. Estas tres capas necesitan comunicarse e intercambiar datos entre ellas (Fang, Zhao, He, y Lin, 2013). 26 2.5. Controlar objetos La principal tarea de este componente es predecir y controlar el comportamiento del objeto. Un modelo de objeto es una descrip- cion matematica del comportamiento del objeto, es decir, un sistema dinamico donde las entradas al sistema pueden ser cualquier cosa que el robot pueda transmitir al objeto y las salidas son cualquier cosa que el robot puede medir o inferir. El modelo de un objeto es un conocimien- to de como se comporta un determinado objeto ante un determinado estmulo. El modelo del objeto nos permite determinar que hara el objeto bajo ciertas condiciones conocidas. Por ejemplo, se puede determinar como se movera el objeto al aplicar una fuerza en un determinado pun- to del mismo, para lo cual se deberan contemplar ciertos fenomenos fsicos como: friccion, rotacion y gravedad. El modelo del objeto sera diferente si el objeto es diferente y debera contemplar la informacion de interes en relacion al problema que se intenta resolver. Existe tres metodos diferentes que se utilizan para construir el modelo de objetos: aprendizaje de maquina, identi cacion del sistema e identi cacion de parametros (Ruiz y cols., 2010). En caso de usar ‘aprendizaje de maquina" el robot explora el objeto y realiza medicio- nes. Posteriormente, a traves de un algoritmo de aprendizaje, se ob- tiene el modelo. En caso de usar \identi cacion de sistemas" el objeto se explora con diferentes entradas, se analizan las salidas y se obtiene 27 la funcion de transferencia. Este metodo es usado tradicionalmente en control automatica para obtener el modelo de una planta o proceso. Por ultimo, el metodo de \identi cacion de parametros" presen- ta ventajas importantes, esto debido a que un modelo bien realizado puede ser aplicado a una gran cantidad de objetos y, aun as, ser muy compacto. Este metodo primero hace uso de las ecuaciones obteni- das de la fsica y mecanica de los cuerpos, para luego identi car los parametros del modelo obtenido de forma experimental. Por ejemplo: Un cuerpo en movimiento sobre una super ce plana presenta un coe - ciente de friccion dinamica, el modelo en este caso esta dado por: F~a ~a = − µdmg m La respuesta del objeto es la aceleracion ~a y la entrada es la fuerza aplicada F~a. Notese que obtieniendo el modelo aplicando las leyes de la mecanica clasica (metodo de identi cacion de parametros) es posible predecir la respuesta del objeto ante una determinada fuerza aplicada. El calculo de la respuesta necesita la determinacion de dos dos mag- nitudes fsicas: la masa del cuerpo y el coe ciente de friccion. Ambos se obtienen realizando mediciones, en el primer caso a traves de una vascula, en el segundo a traves de un experimento mas elaborado. En un escenario compuesto de multiples objetos, se debera contar con una bibioteca de objetos, es decir, un conjunto de modelos ma- tematicos que describen el comportamiento de los objetos. Los modelos de objetos pueden ser analticos o consistir en descripciones algortmi- 28 cas, fsicas o espaciales del objeto. En la actualidad se esta realizando amplia investigacion para generar bibliotecas de objetos y ponerlas a disposicion de la comunidad de investigadores en robotica (Calli y cols., 2015). 2.6. Planeamiento El concepto de planeamiento se re ere al proceso de tomar una tarea y descomponerla en partes mas compactas que satisfacen las restricciones y los objetivos establecidos. Es decir, se re ere al esta- blecimiento de la secuencia de eventos que son necesarios para realizar una tarea compleja. Para ambientes estaticos es muy sencillo establecer un plan, pero en robotica se busca que el robot sea capaz de construir planes en ambientes dinamicos y complejos. El robot debe poder reco- nocer su entorno y modi car sus acciones cuando el ambiente cambia inesperadamente. El planeamiento o plani cacion es unarea de la inteligencia arti - cial que tiene como n la produccion de planes, lo cuales son pensados para ser usados por un robot u otra clase de sistema. Estearea se carac- teriza por tratar con problemas muy complejos que deber ser resueltos y optimizados en un espacio de busqueda multidimensional. En robotica, el planeamiento, realizado por el sistema de inte- ligencia arti cial de una arquitectura robotica, puede tener un alto componente de optimizacion matematica, donde dadas las condiciones 29 y caractersticas de un modelo, se pretende determinar el plan que mi- nimiza la cantidad de recursos utilizados. Existen una gran variedad de formas de expresar este problema un de ellas es conocido como un \Proceso de Decision de Markov" (Siciliano y Khatib, 2008). 2.7. Objetos El modelo de un objeto tiene parametros, como pueden ser: ta- ma~no, peso, volumen, friccion, temperatura, entre otros. Esto es cono- cido como propiedades del objeto. Por ejemplo, en el caso de una caja que es empujada por una articulacion robotica, los siguientes parame- tros son considerados en el artculo de Ruiz, Cheng y Beetz (Ruiz y cols., 2010): Dimensiones del objeto: El robot, en lugar de explorar el objeto, toma un modelo CAD del mismo. Peso: Es necesario que se conozca para calcular la friccion y el torque, los cuales son parte del modelo. Coe ciente de friccion: Este valor se obtiene experimentalmente al ir aumentando la fuerza entre la super cie y la caja. 2.8. Lenguajes El lenguaje es el proceso cognitivo que usualmente se expresa a traves del habla usando palabras con una gramatica, la cual contiene 30 los siguientes aspectos: fonologica, semantica, sintactica, pragmatica y contextual. En el contexto de esta investigacion, se pueden distinguir tres tipos de lenguajes: lenguaje natural, lenguaje de accion y coman- dos de control (Ferrein y cols., 2016) (Guerra-Filho y Aloimonos, 2007). 2.8.1. Lenguaje natural El lenguaje natural se re ere a cualquier oracion expresada por un ser humano, la cual usualmente consiste en tareas de largo plazo y de mayor complejidad, por ejemplo: Hagame un desayuno. Prepareme la cena. Hagame un emparedado. Existe un campo espec co en las ciencias de la computacion que se encarga de todo lo referente a las interacciones entre computadores y el lenguaje humano, este se denomina \procesamiento de lenguaje natural". Este campo, a su vez, se subdivide en diferentes campos, por ejemplo: Recuperacion de la informacion Traduccion automatica Reconocimiento de voz 31 Sntesis de habla El procesamiento del lenguaje natural presenta una serie de di - cultades que complica su procesamiento, entre ellas: Ambiguedad Errores Deteccion La ambiguedad es fundamental en el campo de la robotica, el lenguaje natural es inherentemente ambiguo a diferentes niveles: Nivel lexico: Una misma palabra puede tener diferentes signi ca- dos que se deducen a partir del contexto. Nivel referencial: En lenguaje humano a veces se hace referencia a elementos anteriores o posteriores. Nivel estructural: Es necesario entender y reconocer la semantica del lenguaje para entender una oracion. Nivel pragmatico: El lenguaje humano no siempre signi ca lo que se esta diciendo, por ejemplo: el sarcasmo y la irona. Por tanto, el lenguaje natural, para ser utilizado en una arquitec- tura robotica, debe ser traducido a una representacion interna que no presente ambiguedad. 32 2.8.2. Lenguaje de accoin Un lenguaje de accion esta dise~nado para especi car la transicion de estados de un sistema y es usualmente utilizado en la capa de pla- neamiento simbolico de una arquitectura robotica para describir como las acciones modi can los estados del sistema. Los lenguajes de accion son mayormente utilizados para planeamiento de tareas, pero en me- nor medida se han utilizado para manipulacion de objetos. (S. Zhang, Yang, Khandelwal, y Stone, 2015). El lenguaje de accion mas simple, denominado \A", es un buen punto de partida para entender cualquier lenguaje de accion. Este len- guaje se compone de cuatro elementos: action names , uent names , e ect propositions (E) y value propositions (Nabeshima, Inoue, y Ha- neda, 2000). El componente e ect proposition describe una relacion causal entre de una accion y su efecto. Este se expresa de la siguiente forma: a causes φ if ψ (2.1) donde a es el nombre de la accion, φ es el efecto de la accion y ψ es un proposicion condicional que usa conectivas logicas. El componente value proposition describe un hecho observado; lo cual se expresa de la 33 siguiente forma: φ after a1; . . . ; am (m ≥ 0) (2.2) donde ai es el nombre de una accion y φ es una conjuncion de uentes. Este tipo de lenguajes podran ser utilizados para manipulacion puesto que al considerar tareas de manipulacion de objetos, las ac- ciones podran ser verbos como: deslizar, empujar y girar. Algunas uentes podran corresponder a la posicion nal del objeto o algun estado relacionado con la posicion nal del mismo. 2.8.3. Comandos de control Los comandos de control se re eren a cualquier lenguaje espec co utilizado para operar el hardware del robot directamente, por ejemplo, dos instrucciones en el lenguaje utilizado en KUKA Robot Language©R podran ser las siguientes: LIN {X 17.3, Y 26.0, Z 55.0} PTP {X 12.3, Y 30.0, Z 50.0} La instruccion LIN mueve el objeto o efector nal a una velocidad prede nida a lo largo de una lnea recta hasta la posicion especi cada. 34 El comando PTP mueve el objeto, pero a traves de la ruta mas rapida, hasta la posicion especi cada. 2.9. Modelos de affordances Los modelos de a ordances fueron introducidos para modelar la interaccion de un robot con su ambiente. Estos consisten en modelos probabilsticos que se pueden construir para correlacionar tres conjun- tos: los objetos del escenario, dados por O = {o1, . . . , on}, las acciones que puede realizar el robot, dadas por A = {a1, . . . , an} y los estados nales de los objetos, dadas por E = {E1, . . . , En} (Moldovan y Raedt, 2014). Esta de nicion, establecida por Moldovan (Moldovan y Raedt, 2014), resulta muy conveniente, debido a que, como mas adelante ve- remos, es igual a la forma en que se han establecido las tareas simples en este trabajo. Las tareas simples se han establecido como: Verbo + Objeto + Estado Final, por tanto, la relacion entre un tarea simple y un modelo de a ordances es directa. La construccion de estos modelos resulta muyutil, pues se pueden utilizar para inferir algunos de estos tres elementos: Verbo, Objeto o Estado Final; cuando uno de ellos es desconocido. Por ejemplo, se podra inferir la accion que fue manipulada si el objeto y el estado nal son conocidos, esto se denomina action recognition ; de forma similar se podra intentar inferir el estado nal a partir del objeto y la accion 35 realizada, lo que se denomina e ect prediction . En este trabajo usamos estos modelos con el objetivo de deter- minar si una tarea simple es viable o factible de ser ejecutada, en particular, nos enfocamos en la accion y el objeto, pero tambien hay a ordances entre el objeto y el estado nal, o bien, entre la accion y el estado nal. Por ejemplo, la tarea simple \Encienda la caja de leche" no es ejecutable porque no hay a ordability entre el verbo (Encender) y el objeto (Caja de leche). Es decir, la caja de leche no es un objeto que posea el a ordance de poder ser encendido, por lo que la tarea no es viable y no puede ser ejecutada. 2.10. Modelos secuencia a secuencia Los modelos secuencia a secuencia son modelos de aprendizaje de maquina que han probado alcanzar un rendimiento signi cativo en problemas, tales como: reconocimiento de voz, resumen de textos, reconocimiento visual de objetos y traduccion automatica. A grandes rasgos, un modelo secuencia a secuencia posee dos componentes: un codi cador y un decodi cador (Ver gura 2.1). En esta investigacion los modelos secuencia a secuencia se preten- den utilizar para la traduccion automatica de instrucciones en lenguaje natural a un lenguaje intermedio de robotica movil denominado Robot Control Language (RCL). Este campo del procesamiento en lenguaje natural se denomina neural machine translation (NMT). 36 Tradicionalmente, la traduccion entre un lenguaje y otro se ha hecho al dividir las oraciones en multiples piezas y traduciendolas frase por frase. Este proceso tiene la desventaja de que el signi cado de una oracion esta determinado por toda la oracion y no por porciones o frases. NMT resuelve esta desventaja al ser capaz de captura una gran cantidad de dependencias. Figura 2.1: Arquitectura del modelo secuencia a secuencia que consiste en dos com- ponentes principales: un codi cador y un decodi cador. 2.10.1. Red neuronal LSTM Un tipo especial de red neuronal recurrente es LSTM (Long short- term memory ). Un bloque LSTM comun se compone de: una celda, una compuerta de entrada, una compuerta de salida y una compuerta 37 de olvido. Esto le permite a una red neuronal LSTM recordar valores, pero nounicamente el valor previo, si no que es capaz de recordar por mayores periodos de tiempo. En general, esta red neuronal se utiliza para clasi car, procesar y predecir series de tiempo. Figura 2.2: Estado de la celda LSTM. La idea central detras de LSTM es el estado de la celda, lo cual corresponde a la lnea horizontal mostrada en la gura 2.2. La unidad puede remover o agregar informacion al estado de la celda, lo cual se regula a traves de compuertas. El primero elemento que se analizara es la compuerta de olvido, la cual se compone de una capa sigmoide y un operador de multiplicacion. Esto permite multiplicar el estado por un numero entre cero y uno, lo cual describe cuanto del estado se deja pasar. 38 Figura 2.3: Compuerta de olvido en una celda LSTM Figura 2.4: Compuerta de entrada de una celda LSTM 39 En el siguiente paso se decide que informacion sera almacenada en el estado de la celda. Esta capa tiene dos partes: una capa sigmoide que es la compuerta de entrada y una capa tangente hiperbolica que genera un valor que es sumado al estado. Por ultimo, es necesario determinar la salida de la celda, la cual sera una version ltrada del estado de la celda. Primeramente una capa sigmoide decide que parte del estado ira a la salida, luego el estado de la celda va hacia una capa tangente hiperbolica y es multiplicada por el estado sigmoide, tal cual se observa en la gura 2.5. Figura 2.5: Compuerta de salida de una celda LSTM Existen muchas variantes de la arquitectura de una celda LSTM, la que se acaba de describir es una celda estandar. 40 2.10.2. Traduccoin automatica neuronal (NMT) La celda LSTM es el elemento central de NMT debido a que es usada en ambos elementos principales: el codi cador y el decodi ca- dor (Ver gura 2.6). El decodi cador calcula una representacion para cada oracion fuente, a continuacion, basado en esta representacion, el decodi cador genera una traduccion palabra por palabra. Figura 2.6: Arquitectura del modelo secuencia a secuencia que consiste en dos com- ponentes principales: un codi cador y un decodi cador. Arquitectura propuesta En este captulo se describen los elementos fundamentales del di- se~no del sistema: la arquitectura robotica, el dise~no detallado del siste- ma de mapeo o capa de interfaz y las especi caciones del lenguaje de accion. Al nal de esta seccion tambien se describen dos casos de uso que muestran como la arquitectura puede resolver dos instrucciones de alto nivel. 3.1. Especi caciones generales del sistema La arquitectura del sistema se muestra en la gura 3.1, la cual consiste de tres capas: la capa del alto nivel, la capa de interfaz y la capa de bajo nivel. La capa de alto nivel y la capa de bajo nivel no son el objeto de estudio de este proyecto de grado. Sin embargo, se considera importante presentar el estado del arte de estos dos sistemas. 41 42 Figura 3.1: Arquitectura general del sistema a implementar compuesto por: la capa de alto nivel, el sistema de mapeo, el modelo de objetos y el simulador robotico. 43 En relacion a la capa del alto nivel, la investigacion de Thenmonzhi (Thenmozhi, Seshathiri, Revanth, y Ruban, 2017) se centra en tomar oraciones en lenguaje natural y generar los tokens respectivos donde se puede identi car: el verbo, la accion, las posiciones y los objetos. Luego, a traves de un simulador, ejecuta estas instrucciones. El lenguaje usado esta referido al escenario y la articulacion robotica mostrada en la gura 3.2. La investigacion de Thenmonzhi se centra en la traduccion de len- guaje natural a comandos de control y deja de lado cualquier referencia a la capa de control, pues los comandos son ejecutados directamente por un simulador. Como resultado, el robot carece de: autonoma, con- trol automatico y cognicion. Esta debilidad esta presente en la mayora de investigaciones referentes a la capa de planeamiento simbolico de una arquitectura robotica, que es lo que se pretende abordar en este trabajo. En las actualidad, las arquitecturas roboticas en general siguen un esquema de tres capas, las cuales se denominan: planeamiento, eje- cucion y control. La capa de control esta conectada a sensores y ac- tuadores. La capa de ejecucion es responsable de seleccionar los com- portamientos del robot. Porultimo, la capa de planeamiento asegura que el robot alcance los objetivos minimizando las variables objetivo (tiempo, distancia, energa, entre otros) (Siciliano y Khatib, 2008). 44 Figura 3.2: Escenario y articulacion robotica utilizada por Thenmonzhi En lugar de esta estructura de tres capas, en esta investigacion se trabajan con dos capas: una capa de alto nivel y una capa de bajo nivel. Adicionalmente, para resolver el problema en cuestion, se ha colocado una capa adicional de interfaz. La capa de interfaz pretende hacer la conexion entre la capa de alto nivel y el sistema de modelos de objetos de la capa de bajo nivel. La capa de alto nivel procesa tareas de largo 45 plazo que le son presentadas en un lenguaje mas natural; los modelos de objetos son modelos matematicos que permite controlar y predecir el comportamiento de los objetos. La arquitectura de tres capas del estado del arte resulta poco explicativa y descriptiva para representar el acople entre un modelo de objetos y una capa de alto nivel, por lo que se ha preferido un enfoque mas simple para representar el sistema. El elemento fundamental que acopla ambas capas es el lenguaje de accion que genera el sistema del alto nivel, para luego ser procesado por la capa de interfaz, que a su vez indica al modelo de objetos que acciones realizar. Por ultimo se tendran los comandos de control de la articulacion robotica. 3.2. Descripcoin detallada del sistema de mapeo El sistema de mapeo (Vease gura 3.3), tambien denominado capa de interfaz, contiene cinco modulos: la unidad de a ordances , la uni- dad de mapeo, la unidad de determinacion de la referencia, la unidad de propiedades de los objetos, y la unidad de analisis de factibilidad. Estos cinco modulos constituyen el sistema de mapeo, el cual sera im- plementado y validado experimentalmente en este trabajo de grado. La unidad de a ordances , a partir del verbo y el objecto, calcula una metrica denominada a ordability . La unidad de mapeo, basado en el objeto y el verbo, determina la lista de controladores que pueden ser usados para ejecutar la accion. La unidad de determinacion de la 46 Figura 3.3: Sistema de mapeo, el cual contiene cinco modulos: a ordances , mapeo, determinacion de la referencia, propiedades de los objetos y analisis de factibilidad. referencia calcula el valor deseado o de referencia a ser utilizado por los controladores de objetos. El modulo de propiedades de objetos es una base de datos que contiene las propiedades fsicas de los objetos que son necesarias por los controladores. El modulo de analisis de factibilidad determina cuales controladores son mas viables para ejecutar la accion simple. La capa de alto nivel genera tareas simples, en la forma: Objeto + Verbo + Estado Final. Estas instrucciones van al sistema de mapeo donde genera la siguientes salidas: parametros de control, referencia de control, objeto y controlador. Estas se~nales pueden ir ahora a la capa de bajo nivel, donde se puede realizar el control y la prediccion 47 a nivel fsico de los objetos. Notese en la gura 3.4 que el sistema de modelo de objetos requiere conocer el controlador a utilizar, el valor de referencia y las propiedades del objeto. Figura 3.4: Sistema de modelo de objetos propuesto por Ruiz. El componente de razonamiento y planeamiento corresponde a la capa de alto nivel descrita en este documento. A contiene se describen y analizan cada una de las unidades que componene el sistema de mapeo. 48 3.3. Unidad de affordances Esta unidad, a partir del verbo y el objeto, determina si hay a or- dability. Por ejemplo, si el objeto es \estufa" y el verbo es \encender", hay a ordability porque la estufa puede ser encendida. Por otro lado, si el objeto es \vaso" y el verbo es \encender", no hay a ordability , esto porque el vaso no es un objeto proclive a ser encendido (la mayora de las veces). Para determinar el a ordability entre el verbo y el objeto, calcu- lamos la probabilidad condicional de tener un objeto dado que se ha tenido un verbo, para calcular esta probabilidad, usamos la ecuacion (3.1) (Moldovan y Raedt, 2014) (Moldovan y cols., 2012): c(verbo, objeto) P (objeto|verbo) = (3.1) c(verbo) En la ecuacion 3.1, la probabilidad condicional se calcula divi- diendo la cantidad de ocurrencias del bigrama V erbo+ Objeto entre la cantidad de ocurrencias del unigrama Objeto. La cantidad de ocurren- cias de cada uno se obtiene a partir de un corpus de tareas simples, que se denomina corpus de entrenamiento. 3.3.1. Matriz de affordances En un escenario dado tenemos multiples objetos O = {o1, . . . , on}, diferentes acciones de manipulacion A = {a1, . . . , an} y un conjunto 49 importante de estados nales E = {E1, . . . , En}. Al usar esta notacion, podemos reescribir la ecuacion 3.2 de la siguiente forma: | c(ai, o( ) = j)P oj ai (3.2) c(ai) Es posible de nir una matriz de a ordances , dada por A que re eje todas la combinaciones posibles de acciones y objetos en un escenario dado, es decir:    P (o0|a0) P (o1|a0) · · · P (oM |a0)   P (o0|a1) P (o1|a1) · · · P (oM |a1) A = P (oj|ai) =  .. (3.3). ... . . . ...  P (o0|aL) P (o1|aL) · · · P (oM |aL) Al construir esta matriz se ha considerado que el lenguaje de ac- cion, en el escenario dado, se compone de L verbos o acciones y M objetos. Es posible volver a escribir esta matriz de la siguiente forma:   c(a0,o0) c(a0,o1) c(a0,oM ) c(a · · · 0 ) c(a0) c(a0)   c(a1,o 0) c(a1,o1) c(a1,oM ) A =  c(a1) c(a1) · · · c(a1) .. . . . (3.4). .. . . ..  c(aL,o0) c(aL,o1) c(aL,oM ) c(aL) c(a · · · L) c(aM ) A partir de este valor numerico se busca estimar si hay a ordability entre el verbo y el objeto. Si la probabilidad es cero y el corpus es lo 50 su cientemente grande, es posible concluir que no hay a ordability entre el verbo y el objeto. Por tanto, la tarea simple no podra ser ejecutada. Los valores de la matriz A que tienen un valor relativamente ba- jo estan asociados a tareas simples con baja frecuencia de ejecucion, pero que cumplen con el \a ordability" entre el verbo y el objeto. Los valores con probabilidad relativamente alta estan asociadas a ta- reas simples con mayor probabilidad de ejecucion respecto a los demas objetos de la la. La matriz A posee importantes cualidades que se pueden analizar. Si de nimos dos vectores columna c(ai), donde cada elemento es el numero de veces que se repite determinada accion en el corpus, y c(oi), donde cada elemento es el numero de veces que se repite determinado objeto, de la siguiente forma:    c(a0)   c(ai) =  c(a1)  ...   (3.5) c(aL−1)  c(aL) 51   c(o0) c(o1)  c( ) = o ... i   (3.6) c( oM−1)  c(oM ) A partir de la de nicion anterior, podemos derivar la siguiente relacion algrebraica entre las matrices:   ∑∑  L  i=0 c(ai, oo)  L  i=0 c(ai, o1) A t · c(ai) =   (3.7)∑ ... L i=0 c(ai, oM ) El vector resultante, dado por 3.7, corresponde a la suma de la frecuencia de todos los bigramas para un objeto dado, que es lo mismo que la frecuencia de aparicion de este objeto, por tanto: A t · c(ai) = c(oi) (3.8) En la ecuacion 3.8, es posible despejar c(ai) si asumimos que A es una matriz cuadrada e invertible; por tanto: c(a t −1 −1 ti) = ( A ) · c(oi) = ( A ) · c(oi) (3.9) 52 La ecuacion 3.9 es un resultado interesante en relacion a la matriz de a ordability. Si la matriz en cuestion es cuadrada, la inversion y luego la transposicion de la misma, multiplicada por el vector c(oi), da como resultado el vector c(ai). El vector c(ai) tambien pueden ser calculado, a partir de deter- minantes, usando la regla de Cramer: ( ) det(A t c(a ) = i ) i (3.10) det(A t) En la ecuacion 3.10, Ati es la matriz que se obtiene al reemplazar la columna i de At por el vector columna c(oi). El desarrollo realizado hasta este momento considera todas las acciones y objetos del escenario, sin embargo, si la cantidad de objetos y acciones en el escenario es muy signi cativa, la matriz es muy grande y casi inmanejable. En este caso, se puede trabajar con una matriz particionada, para la cual, los resultados obtenidos hasta este momento resultan igualmente validos (Searle, 1982). 3.3.2. Entrenamiento En lugar de crear tablas con la informacion de a ordances para cada verbo y objeto, se construyo un corpus de tareas simples, a partir del cual se poda crear un modelo que permitiera calcular el a ordabi- lity. Este metodo brinda la posibilidad de generar el modelo en forma 53 automatica, una vez que se cuenta con un corpus de tareas simples. Esta forma de contruir el modelo tambien brinda mayor exibilidad y e ciencia. El sistema consiste en tres etapas: preprocesamiento, analisis lexi- co y lematizacion. La etapa de preprocesamiento borra comentarios y signos de puntuacion, tambien transforma las tareas simples a minuscu- la. El analizador lexico reconoce el objeto y el verbo, y porultimo, la etapa de lematizacion identi ca el lema de cada elemento (Ver gura 3.5). 54 Figura 3.5: Entrenamiento de la unidad de a ordances la cual consiste en tres etapas: preprocesamiento, analisis lexico y lematizacion. 55 La salida de la etapa de entrenamiento consiste en dos archivos de texto, uno para registrar el numero de ocurrencias de cada verbo (uni- gramas) y otra registrar el numero de ocurrencias del bigrama: verbo y objeto. Esta informacion sera utilizada la calcular la probabilidad con- dicional indicada en la ecuacion 3.1, esto para cualquier combinacion de verbos y objetos. 3.3.3. Calculo del affordability Una vez generado el modelo de a ordances , es posible calcular la probabilidad condicional. Este proceso consta de cuatro etapas: pre- procesamiento, analisis lexico, lematizacion y calculo de probabilidad (Ver gura 3.6). Las tres primeras etapas son identicas a las utilizadas para generar el modelo de a ordances . Laultima etapa es la nueva, y tiene el proposito de calcular el a odability a partir de la ecuacion 3.1. Una probabilidad de cero implica que el bigrama no tuvo ninguna ocurrencia, lo cual implica que no hay a ordability entre el verbo y el objeto. Este resultado tambien puede deberse a que el corpus no es lo su cientemente grande, y el mismo no contiene el bigrama en cues- tion. Para evitar este problema, el corpus debe ser los su cientemente grande. Notese que hay que determinar si entre el verbo y el objeto hay a ordability , es decir, hay que tomar una decision binaria, de acuerdo al valor de probabilidad calculado. Esta decision se podra tomar uti- lizando algun estimador de decision binaria, como por ejemplo (James 56 L. Melsa, 1978): Estimador de maxima verosimilitud Criterio Neymar-Pearson Criterio de probabilidad del error Criterio de riesgo de Bayes Criterio min-max Estos cinco metodos o criterios se pueden resumir en el calculo de la razon de verosimilitud dada por la ecuacion 3.11 (James L. Melsa, 1978). p(z|m2) d2= ( z) ≷ T (3.11) p(z|m1) d1 En la ecuacion 3.11, d1 es tomar la decision de que efectivamente, hay a ordability , y d2 es tomar la decision opuesta, de que no hay a ordability entre el verbo y el objeto. La observacion z es el valor observado de probabilidad condicional que se calcula a partir de la ecuacion 3.1. Al analizar el problema en cuestion, notese que p(z|m2) es en efec- to una funcion indicatriz o funcion caracterstica, lo cual resulta valido si el corpus de tareas simples es los su cientemente representativo. Esta 57 funcion se describe de la siguiente forma:  1 si z = 0 p(z|m2) = i(z) =  (3.12)0 si z =6 0 Es decir, si se observa un valor z de cero, la funcion indicatriz sugiere que no hay a ordability , esto porque la funcion de probabilidad tomara un valor de 1. Por otro lado, la funcion p(z|m1) debera indicar lo mismo y dar un valor de cero, lo cual llevara a la misma conclusion, en este caso se asume una funcion de probabilidad normal: 1 −(z−µ)2 p(z) = √ · e 2σ2 (3.13) 2πσ 58 Figura 3.6: Prueba de la unidad de a ordances , la cual consiste en cuatro etapas: preprocesamiento, analisis lexico, lematizacion y calculo de probabilidad. 59 3.4. Unidad de mapeo La unidad de mapeo, a partir del verbo y el objeto, genera un con- junto de controladores que pueden ejecutar las acciones con el objeto en cuestion. La implementacion de este componente tiene el problema de que muy pocos modelos de objetos han sido desarrollados hasta ahora, por lo que su dise~no e implementacion sera exploratoria. La unidad de mapeo procesa el verbo y el objeto para generar una lista de controladores capaces de ejecutar las acciones con el objeto especi cado. La unidad de mapeo tambien se encarga de tener un peso asociado a cada controlador, el cual es actualizado de acuerdo a los resultados en la unidad de analisis de factibilidad. 3.4.1. Categorizacoin Los verbos son categorizados en esta unidad, por ejemplo, los ver- bos: mover, colocar y poner, son basicamente la misma accion, pues los tres implican levantar un objeto de un punto y moverlo a otra ubi- cacion. Estos verbos, denominados \levantar-poner", pueden utilizar el mismo controlador. Esta unidad asocia el par ( verbo, objeto) a un conjunto de contro- ladores de objetos dado por {c0, . . . , cN}. Para cumplir esta funcion los controladores son etiquetados con los verbos que pueden ejecutar y los objetos que pueden manipular. Para implementar la categorizacion pa- 60 ra una tarea simple en espec co, es necesario revisar estas etiquetas y determinar si el controlador en cuestion puede ejecutar la instruccion. A cada controlador se le asigna un peso que sera utilizado por la unidad de factibilidad para calcular el controlador que esta mejor adaptado para ejecutar la tarea simple. Estos pesos son modi cados de acuerdo a la formulacion descrita en la siguiente seccion. 3.4.2. Calculo de los pesos Para modelar las interacciones entre los objetos, acciones y con- troladores; de nimos un conjunto de controladores dado por C, el cual incluye todos los controladores que pueden ejecutar la tarea de acuer- do a la categorizacion previa. El conjunto de controladores para N numero de controladores es: C = {c0, c1, c2, c3, . . . , cN} (3.14) En cada iteracion, el peso asociado a cada controlador cambia. El conjunto de pesos correspondiente al conjunto de controladores esta dado por: W = {w0, w1, w2, w3, . . . , wN} (3.15) En cada iteracion, un conjunto de controladores es procesado por la unidad de analisis de factibilidad, donde el peso de cada controlador 61 se modi cara de acuerdo al siguiente criterio: Si el controlador es seleccionado por la unidad de analisis de fac- tibilidad, se suma un valor A al peso (+ A). Si el controlador no es seleccionado por la unidad en cuestion, restamos un valor P al peso (+ P ). Despues de j iteraciones, el peso del controlador tendra el siguiente valor, donde: n es el numero de veces que el controlador respectivo ha sido seleccionado, m el numero de veces que el controlador ha sido rechazado, y wi es el valor inicial asignada a cada peso. Al principio, el peso de los controladores es el mismo. wj = wi + n · A−m · P (3.16) Los pesos cumplen un importante papel, ya que son utilizados en el modulo de analisis de factibilidad para determinar cual controlador es mas apto para ejecutar la tarea simple en cuestion. 3.5. Unidad de determinacoin de la referencia Este componente calcula el valor deseado o valor de referencia a ser usado por los controladores del modelo de objetos. Este calculo se realiza a partir del estado nal y el adverbio de la tarea simple. Por ejemplo, en la tarea simple \mueva el vaso cerca del horno", el adverbio 62 es \cerca" y el estado nal esta especi cado por la posicion del horno. Ambos elementos son usados para calcular donde ubicar el objeto. Existen diferentes tipos de adverbios que expresan diferentes sig- ni cados, tales como: adverbios de tiempo, adverbios de lugar y ad- verbios de modo. La traduccion de un adverbio y un estado nal a un valor deseado es un problema relevante, debido a que los adverbios pueden ser muy subjetivos y pueden estar de nidos en conjunto con el contexto. La implementacion de esta unidad podra hacerse copiando el com- portamiento humano frente a diferentes adverbios. Por ejemplo, nos podran interesar que entiende un grupo de humanos con los adver- bios: cerca, lejos, al frente y detras. Esto se podra determinar haciendo experimentos y descubriendo la funcion de probabilidad que gobierna cada uno de estos adverbios, para luego replicar este comportamiento en esta unidad. 3.6. Unidad de propiedades de los objetos Este modulo, a partir del nombre del objeto, determina las pro- piedades fsicas del mismo, las cuales son utilizados para parametrizar los controladores del modelo de objetos, en la capa de bajo nivel. Por ejemplo, un vaso puede tener muchas propiedades, tales como: peso, coe ciente de friccion, forma y dureza. Estos datos pueden ser reque- ridos para efectuar el control y la prediccion. 63 3.7. Unidad de analisis de factibilidad Esta unidad determina cual es el mejor controlador basado en: el a ordability , la lista de controladores y las restricciones. En cuanto a las restricciones, estas pueden ser de tres tipos: del contexto, del cuerpo del robot y de los objetos. Se considera que esta unidad debera hacer su analisis a partir de una funcion de costo, la cual esta dada por: ∑N f (av, wi, ct0, ct1, ct2, . . .) = av · [cti] + wi (3.17) i=0 donde av es el valor de a ordability previamente calculado en la unidad respectiva y cti son valores numericos que representan tres tipos de restricciones: contexto, objeto y cuerpo del robot. La funcion de costo propuesta en la ecuacion 3.17 es el punto de partida para analizar la interaccion entre la unidad de mapeo, la unidad de a ordances y la unidad de calculo de factibilidad. Por ahora, esta funcion es exploratoria, pero se considera un buen punto de partida para entender las interacciones que ocurre entre los diferentes bloques. El a ordability es parte de la funcion de costo, ya que este con- cepto esta ligado a la viabilidad que presenta la ejecucion de una tarea simple. Es por eso que la funcion toma en consideracion esta variable en sus calculos, de hecho, el valor de a ordability multiplica la suma de 64 las restricciones, por lo que tiene un impacto signi cativo en el calculo del factibilidad. 3.8. Especi caciones del lenguaje El lenguaje es el proceso mental que se expresa a traves del habla mediante el uso de palabras y una gramatica que contiene aspectos: fonologicos, semanticos y sintacticos. En el contexto de esta investiga- cion es importante diferenciar tres tipos de lenguaje: lenguaje natural, lenguaje de accion y comandos de control. El sistema de alto nivel pro- cesa el lenguaje natural y el sistema de bajo nivel procesa el lenguaje de accion (vease gura 1.4). El lenguaje natural se re ere a cualquier oracion expresada por un humano, que generalmente consiste en instrucciones complejas, por ejemplo, \Srvame un vaso de leche". El lenguaje de accion consiste en instrucciones simples dirigidas a la realizacion de una tarea mnima y bien delimitada, por ejemplo, \Mueva la caja un metro a la derecha". Los comandos de control corresponden al lenguaje espec co utilizado para operar una articulacion robotica. El lenguaje humano esta fuertemente determinado por la inter- accion social, la cual tiene como base: el sistema de produccion, las creencias religiosas y los elementos culturales (Rodrguez Consuegra, 2003). Esto se denomina contexto lingustico. Esto tiene una conse- cuencia importante en la especi cacion de un lenguaje, pues, en gene- 65 ral, es necesario un conocimiento detallado del contexto en que ocurre la comunicacion para que el lenguaje sea totalmente entendido. Este es el principal reto en cuanto a la comunicacion entre el ser humano y un sistema robotico. Packard y Thenmozhi abordan la traduccion de lenguaje natural a un lenguaje de accion, pues toman oraciones en lenguaje natural y las traducen a un lenguaje denominado robot control language (RCI) (Thenmozhi y cols., 2017). Estos dos autores consideran necesario un entendimiento y conocimiento del contexto para la traduccion correcta de las oraciones. En cuanto al acople de un lenguaje de accion a un modelo de objetos, que es el objeto de estudio de investigacion, tambien se requiere informacion de contexto. La informacion de contexto, en el proceso de traduccion de una instruccion simple a comandos de control, es proporcionada, en parte, por el modelo de objetos. Los modelos de objetos nos dicen como se comporta el objeto ante determinados estmulos. Sin embargo, esta informacion es su ciente, por lo que existen elementos adicionales que proporcionan informacion adicional acerca del entorno, uno de ellos es el lenguaje utilizado. El contexto va mas alla de proveer informacion adicional, si no que se considera que delimita el lenguaje que usamos y modi ca los conceptos que pueden ser entendidos. La hipotesis de Sapir-Whorf es- tablece que existe cierta relacion entre las categoras gramaticales que una persona habla y la forma en que la persona entiende y conceptua- 66 liza el mundo (Hoijer, 1904). Esta hipotesis tiene dos versiones: Hipotesis whor ana fuerte: El lenguaje de una persona determina completamente la forma en que conceptualiza, memoriza y clasi- ca la realidad. Hipotesis whor ana debil: La lengua de un hablante tiene cierta in uencia en la forma en que este conceptualiza y memoriza la realidad. La evidencia emprica muestra que el ser humano es capaz de cate- gorizar y agrupar categoras de objetos a pesar de carecer de lenguaje, por lo que la hipotesis fuerte esta descartada. Sin embargo, existe evi- dencia emprica a favor de la hipotesis debil, pues miembros de algunas tribus tienen problemas para reconocer colores para los cuales no exis- ten palabras en el lenguaje. Con base aesto, una adecuada formalizacion del lenguaje de ac- cion es fundamental para una adecuada manipulacion de objetos en un escenario dado. Existe una relacion entre el escenario y el lenguaje a utilizar en la arquitectura robotica. El escenario determina las acciones (verbos), los objetos y los posibles resultados deseados. 3.9. Casos de uso En esta subseccion se analiza como la arquitectura robotica pro- puesta puede tomar una tarea de alto nivel expresada en lenguaje 67 natural y procesarla en la capa de interfaz, de tal forma que la accion de manipulacion pueda ser ejecutada por el robot. 3.9.1. \Hagame un desayuno" Esta tarea compleja es usualmente llevada a cabo en una cocina. La receta puede variar en forma signi cativa de acuerdo a la geografa, el cocinero, e inclusive la disponibilidad de los ingredientes. Por tanto, el analisis se enfocara en un desayuno muy sencillo que se compone de una tostada con mantequilla y una taza de cafe. La tarea compleja podra ser traducida a muchas tareas complejas, como lo son: Coloque la tostada sobre el plato. Unte la mantequilla sobre la tostada. Verter el cafe en la taza. La primera tarea simple mueve la tostada al plato. La capa de interfaz debera poder traducir esta tarea simple a entradas hacia el modelo de objetos. A continuacion se analizara como la capa de inter- faz debera comportarse para esta tarea simple en la que se coloca la tostada sobre el plato. La unidad de a ordances veri ca que la tostada puede ser movi- da, es decir, veri ca si hay a ordability entre el verbo y el objeto a ser 68 manipulado. La unidad de mapeo proporciona una lista de controla- dores que pueden ejecutar esta accion, por ahora, en este estudio de caso, supondremos que hayunicamente dos controladores que pueden ejecutar la accion respectiva, sobre el objeto en cuestion. La unidad de determinacion de referencia determina la ubicacion actual del plato, la cual es el valor deseado. La unidad en cuestion conoce de antemano la ubicacion de todos los objetos en la escena y proporciona la ubicacion correspondiente a las capas inferiores de la arquitectura robotica. La unidad de propiedades del objeto propor- ciona la informacion respectiva, tales como: masa, fuerza de friccion, forma y dureza. Este modulo posiblemente ya conoce de antemano esta informacion. Por ultimo, la unidad de analisis de factibilidad analiza el con- texto, el cuerpo del robot y el objeto a ser manipulado; con el n de seleccionar el controlador mas apto para ejecutar la tarea en cuestion. Para hacer esto, este modulo puede basar en experiencias previas, fun- ciones de costo y modelos matematicos. 3.9.2. \Hagame una ensalada" Esta tarea compleja es muy comun en una cocina y de igual forma que un desayuno, existe una gran cantidad variedad de ensaladas que pueden hacerse. En este estudio de caso nos enfocamos en una unica ensalada con solo dos ingredientes: lechuga y tomate. A partir de esta tarea complejo podemos derivar cientos o miles de tareas simples, tres 69 de ellas son: Corte el tomate en trozos peque~nos. Rallar 20 gramos de lechuga. Mover la lechuga rallada a un plato. Usaremos la segunda tarea simple para entender el comportamien- to de la capa de interfaz. Una vez que iniciamos el procesamiento de esta tarea, la unidad de a ordances con rma si hay a ordability entre el verbo \rallar" y el objeto \lechuga", lo cual se cumple porque es bien conocido el hecho de que la lechuga puede ser rallada. La unidad de mapeo proporciona la lista de controladores, por ahora supondremos que hayunicamente un controlador capaz de rea- lizar esta tarea. La unidad de determinacion de referencia proporciona la referencia del controlador. El valor deseado en este caso son \20 gramos", que es la cantidad de lechuga que debe ser rallada. Notese que en este caso, el valor de referencia no es una ubicacion o posicion, si no que es una cantidad. Posteriormente, la unidad de propiedades de los objetos da la informacion concerniente al objeto \lechuga". Por ultimo, la unidad de analisis de factibilidad analiza si el controlador esta preparado para ejecutar la tarea simple en cuestion. Disen~o de experimentos En la presente seccion se detallan los experimentos dise~nados y desarrollados durante el proceso de implementacion y prueba del sis- tema propuesto. 4.1. De nicoin de escenarios y tareas complejas En este apartado se de nen los escenarios y tareas complejas a ser utilizados en la construccion del corpus de tareas simples. 4.1.1. Escenario trivial binario Para comenzar el analisis consideremos un universo donde un ob- jeto puede tener solo dos posibles estados (ubicaciones espaciales), a las cuales denominaremos: A y B. Este escenario idealizadounicamen- te posee ununico objeto al cual denominaremos \caja". Este contexto, a pesar de su simplicidad, puede tener una gran complejidad, pues las acciones posibles que una articulacion robotica puede realizar son muy variadas, por ejemplo: arrastrar, empujar, mover, entre otros. El conjunto de acciones posibles se determina a partir de las ca- pacidades del robot y no a partir del universo posible de palabras exis- tentes en el idioma. Esto se relaciona con el concepto de a ordances , el cual es medular, ya que el conjunto de verbos dependera de ambos ele- 70 71 mentos: las capacidades de la articulacion robotica y las caractersticas del escenario (lo que incluye los objetos que se manipularan) (Glenberg y Kaschak, 2002). En este escenario trivial se considera que el robot solo tiene ca- pacidad para \mover" el objeto. Esta idealizacion permite generar un lenguaje que puede constarunicamente de dos instrucciones: Mueva la caja a la posicion A Mueva la caja a la posicion B El escenario binario permite visualizar la complejidad del lenguaje de accion, pues la cantidad posible de instrucciones se relaciona con: el numero de verbos, el numero de estados nales posibles y el numero de objetos presentes en el escenario. En este caso en particular son posiblesunicamente dos instrucciones. A partir del escenario del analisis del caso binario, podemos deri- var la siguiente metodologa para determinar el lenguaje a partir del escenario. Notese que el escenario incluye la articulacion robotica y los objetos fsicos que se manipulan. Determinar los nombres de los objetos que ese encuentran en el escenario. Determinar todas las posibles acciones que puede realizar el robot sobre estos objetos. 72 Determinar todos los posibles estados que pueden tener los objetos del escenario. 4.1.2. Escenarios de complejidad real El referente mas importante en relacion a escenarios de comple- jidad real es el proyecto denominado Yale-CMU-Berkeley Object and Model Set, el cual es un esfuerzo entre varias universidades para estan- darizar los objetos con lo que se que hace investigacion en manipulacion de objetos. Esta es una biblioteca de objetos de la vida diaria con di- ferentes formas, tama~nos, texturas, peso y rigidez. La base de datos incluye: imagenes RGBD, propiedades fsicas, modelos geometricos, entre otros (Calli y cols., 2015). La librera contiene 76 objetos los cuales podran formar parte del lenguaje de accion que se esta dise~nando. Estos estan clasi cados en cuatro grupos: Alimentos: chips can , co ee can , cracker box , box of sugar, toma- to soup can , middle row, mustard container , tuna sh can , entre otros. Herramientas: back row, power drill, wood block, middle row, scis- sors , padlock, entre otros. Utensilios de cocina: pitcher , bleach cleanser , abrasive sponge , en- tre otros. 73 Formas: softball, tennis ball , golf ball, marbles , rope , cups, blank credit card , entre otros. Figura 4.1: Alimentos pertenencientes al estandar YCB. El proyecto proporciona una lista de sugerencias de tareas de ma- nipulacion para cada grupo de objetos, la cuales se podran tomar como referencia para generar la lista de verbos. Sin embargo, este proyecto presenta varios puntos debiles que imposibilitan su utilizacion en esta investigacion: Las propiedades fsicas de los objetos estan limitadas a las di- mensiones y el peso. Los objetos en cuestion carecen del modelo matematico. 74 La articulacion robotica del laboratorio no puede lidiar con la manipulacion de algunos objetos peque~nos como arandelas y tor- nillos. Existe la posibilidad de adquirir los objetos, pero se podran tener problemas con la importacion de recipientes de comida o qumi- cos. Ademas de que estos objetos son ajenos a nuestra realidad nacional. 4.1.3. De nicoin de escenarios A pesar de las debilidades arriba expuestas, algunos de estos ob- jetos se podran utilizar para construir el lenguaje de accion. El primer paso es de nir dos escenarios, los cuales son: Cocina: Las nuevas herramientas, metodologas o conceptos, en el campo de la robotica, deben ser evaluados en un escenario real. Un escenario comun para hacer estas validaciones es una cocina (Yamazaki, Watanabe, Nagahama, Okada, y Inaba, 2010) (Winkler y Beetz, 2015) (Lagrand, v. d. Meer, y Visser, 2016) (Blodow y cols., 2011). Las tareas de manipulacion que se rea- lizan en una cocina son complejas, diversas y de gran utilidad practica; lo que justi ca su escogencia como escenario. Mesa de trabajo: El robot debe poder realizar tareas sencillas re- lacionadas con el ensamblaje de componentes y materiales. Estas tareas se de niran en la siguiente seccion, pero estan relacionadas 75 con las union o ensamblaje de componentes y materiales. Los escenarios pueden variar en forma signi cativa, por ejemplo, una cocina en un restaurante es muy diferente a la cocina de una casa de una familia peque~na. La mesa de trabajo de un taller electromecani- co podra ser muy diferente a la mesa de trabajo de un laboratorio de fsica de una universidad. En vista de lo anterior, la de nicion de es- cenarios debe hacerse en forma detallada y espec ca. El escenario cocina consta de los siguientes elementos: un micro- ondas, una pila o fregadero, una estufa, una refrigeradora, una licua- dora, tres gabinetes y una mesa central (Vease gura 4.2). Es a partir de esta cocina en particular que se haran analisis posteriores. El escenario mesa de trabajo consta de los siguientes elementos: dos gavetas, una sierra, un martillo, un juego de llaves, un juego de destornilladores, una llave francesa, un juego de alicates y una cinta metrica (Vease gura 4.3). Los analisis posteriores se basaran en esta mesa de trabajo. El punto de partida para de nir tareas complejas son los dos esce- narios reales seleccionados. En cada uno de ellos se pueden establecer tareas complejas comunes, sobre las cuales se puede construir un cor- pus de tareas mas simples, denominadas tareas simples. 76 Figura 4.2: Escenario cocina el cual consiste de: un microondas, un fregadero, una estufa, una refrigeradora, una licuadora, tres gabinetes y una mesa central. Figura 4.3: Mesa de trabajo colaborativa la cual consiste en los siguientes elementos: dos gavetas, un serrucho, un martillo, un juego de llaves, una llave francesa, un juego de desatornilladores, un juego de alicates y una cinta metrica. 77 4.1.4. De nicoin de tareas complejas En cada escenario es posible de nir una gran cantidad de tareas complejas. Por ejemplo, en una cocina, se podra establecer la tarea de \realizar un almuerzo". Esta tarea en s misma se reviste de una gran complejidad, pues requiere cientos o miles de instrucciones simples para ser llevadas a cabo. Asociado a cada tarea simple existe un conjunto de controladores asociados que pueden desempe~nar esa tarea. Como punto de partida, para construir el lenguaje, se consideraran dos tareas complejas en el escenario \cocina" y dos tareas complejas en el escenario \mesa de trabajo". Las dos tareas en el escenario cocina, son las siguientes: Haga un emparedado. Haga un desayuno. En el caso de la mesa de trabajo, las dos tareas seleccionadas son las siguientes: Haga una caja de madera. Limpie el teclado de la computadora. Las tareas seleccionadas deben cumplir con una serie de reque- rimientos: ser realizables con la articulacion robotica disponible, ser ricas en tareas simples, consistir en actividades comunes a realizar en la vida diaria y ser requerir una variedad importante de controladores. 78 4.2. Generacoin del corpus de tareas simples Para generar el vocabulario del lenguaje de accion en una escena o ambiente determinado, es necesario generar la lista de tareas simples a partir de las tareas complejas que fueron seleccionadas. Notese que el corpus generado consiste en tareas simples, las cuales se han de nido de la siguiente forma: Una tarea es simple, si su ejecucion requiere de unico mo- delo de objetos en la capa de bajo nivel de la arquitectura robotica. En la actualidad existen pocos modelos de objetos, por lo que el correcto establecimiento de una tarea simple depende, por mucho, del desarrollo de estos modelos en el futuro. Esto implica que el corpus generado debera ser mejorado de acuerdo a los avances y desarrollos que se logren en este campo en particular. El analisis de esta lista de tareas simples resulta ser muy relevan- te para el robot, pues permite establecer que acciones son requeridas, cuales objetos seran manipulados en la escena y cuales son las capa- cidades fsicas que el robot posee. Los pasos a seguir para obtener la lista de tareas simples fueron los siguientes: Establecer el ambiente o escenario en el que el analisis sera reali- zado. La descripcion del mismo debe ser clara y concisa. Algunos 79 ejemplos son: una cocina, una mesa de trabajo, un taller de re- paracion de electrodomesticos, un laboratorio de qumica, entre otros. Determinar un conjunto de tareas complejas que son importan- tes en el escenario especi cado. Por ejemplo, Beetz establecio las siguientes tareas complejas en una cocina: arreglar la mesa( table setting ), cocinar ( cooking) y limpieza ( house keeping ).(Beetz y cols., 2008). Una vez que las tareas complejas han sido de nidas, se trabaja con expertos o con fuentes externas para generar la lista de tareas simples. Una alternativa es obtener las tareas simples de sitios como: ehow.com y wikihow.com, esta alternativa fue utilizada por Tenorth para transformar descripciones de tareas en una cocina en planes ejecutables por robots. La lista de tareas simples es analizada para determinar los reque- rimientos del robot en cuanto a objetos y acciones, lo cual deriva en requerimientos en cuanto al hardware y el software. La lista de tareas simples puede ser construida por expertos en la tarea compleja, es decir, por personas que saben como ejecutar la tarea. La lista tambien se puede generar por voluntarios quienes, a partir de un sitio web como wikihow.com escriben la lista de tareas de simples. Porultimo, existen diversos investigadores que han obtenido las tareas utilizando alguna solucion automatica (Tenorth, Nyga, y Beetz, 2010) (Costa, Veiga, Sousa, y Nunes, 2017). 80 Entre estos enfoques mas automatizados, tenemos por ejemplo, la generacion de las tareas partir de la traduccion de recetas de cocina, este es el caso del artculo de Moritz denominado Understanding and executing instructions for everyday manipulation tasks from the World Wide Web (Tenorth y cols., 2010). En el caso del artculo de denomina- do Evaluation of Stanford NER for extraction of assembly information from instruction manuals la generacion se hizo a partir de manuales de ensamblaje (Costa y cols., 2017). Para aplicar esta metodologa, se seleccionaron dos escenarios: una cocina y una mesa de trabajo (Vease seccion 4.1.3). En el caso de la cocina, dos tareas complejas fueron seleccionadas: \hacer un empare- dado" y \hacer un desayuno". En el caso de la mesa de trabajo, las siguientes dos tareas complejas fueron seleccionadas: \haga una caja de madera" y \limpie el teclado de la computadora". 4.3. Calculo de affordability En esta subseccion se presentan los experimentos que se hicieron para validar la propuesta de calculo de los a ordances . 4.3.1. Experimento A: Matriz de affordances La unidad de a ordances se valida utilizando los cinco verbos y los cinco objetos mas utilizados en el escenario cocina. Esto para generar una matriz de a ordances . Las tareas simples utilizadas se muestran 81 en la gura 4.4. Figura 4.4: Experimento A. Construccion de matriz de a ordances 82 La matriz de a ordances presenta cualidades matematicas muy interesantes que fueron analizadas en la seccion anterior y tiene el potencial de ser utilizada para modelar el mundo ( world modelling) en conjunto con los ya existentes modelos fsicos. La etapa de entrenamiento, con el n de construir el modelo, con- sistio en 236 tareas simples. Este corpus se construyo a partir de cuatro tareas complejas: \Hacer un desayuno", \Hacer una ensalada", \Hacer un emparedado" y \Hacer huevos revueltos". 4.3.2. Experimento B: Veri cacoin de affordances Este segundo experimento utilizo el mismo modelo de a ordances , el cual cuenta con 236 tareas simples. El conjunto de pruebas consistio en diez tareas simples, que se saba previamente, no cumplan con el a ordability entre el verbo y el objeto, esto para validar que en efecto, el sistema fuera capaz de hacer el analisis correctamente. El conjunto de pruebas utilizado se muestra en la gura 4.5. Notese que la oraciones utilizadas no son viables de ser ejecutadas, o al menos, su ejecuccion en el mundo real es altamente improbable. Por ejemplo, la instruccion \quiebre el cuchillo" o \encienda el hue- vo", debera dar un a ordability de cero, ya que en el mundo real, estas dos tareas no suelen ser ejecutadas, pues lo huevos no pueden ser encendidos y la tarea de quebrar un cuchillo no es muy poco comun. 83 Figura 4.5: Experimento B. Instrucciones simples que no cumplen con el a ordability 4.4. Calculo de factibilidad En esta subseccion se analiza la interaccion entre dos unidades de la capa de interfaz: la unidad de mapeo y la unidad de analisis de factibilidad. La unidad de mapeo genera una lista de controladores que pueden ejecutar la tarea simple. En paralelo, la unidad de a ordances calcula un valor numerico basado en el verbo y el objeto. En cada iteracion, dos cosas ocurren: el valor de factibilidad es calculado basado en la funcion de costo, dado por la ecuacion (3.17), y los pesos son calculados en base a la ecuacion (3.15). Con el proposito de estudiar la evolucion de los pesos, se tomaron dos decisiones para simpli car el analisis: El a ordability es generado en forma aleatoria, pero una vez que 84 se genera, se mantiene constante durante todo el experimento, es decir, para todas las iteraciones. Las restricciones son tambien generadas en forma aleatoria, pero en este caso, se generan valores diferentes en cada iteracion. Figura 4.6: Diagrama de ujo que muestra la interaccion entre la unidad de mapeo y la unidad de analisis de factibilidad. Las variables de respuesta son los pesos de los controladores. El factor de dise~no es el valor penalidad-incentivo. Los factores jos 85 son: los pesos iniciales, la funcion de costo y el algoritmo penalidad- incentivo. Los factores de ruido son: el a ordability y las restricciones; debido a que ambos son generados en forma aleatoria. Los valores numericos correspondientes a las restricciones cambian en cada itera- cion, pero el valor de a ordability es jo, una vez que es generado. El numero de iteraciones es de 200, eso porque experimentos pre- liminares mostraban una tendencia clara, una vez que el numero de iteraciones alcanzaba este valor. El numero de niveles para el numero de controladores es dos, pues se hacen las validaciones para dos y tres controladores. Para el valor penalidad-incentivo, se establecieron tres niveles: 0.05, 0.1 y 0.2. El cuadro 4.1 detalla los valores numericos para los que se realizo la simulacion de dos controladores. El cuadro 4.2 muestra la misma in- formacion, pero para el caso de tres controladores. La utilizacion de dos y tres controladores se debe a que la disponibilidad de controladores para acciones de manipulacion es aun muy limitada. Cuadro 4.1: Experimento con dos controladores. Factores Smbolo Valores N. de controladores - 2 Penalizacion P 0.05/0.1/0.2 Incentivo A 0.05/0.1/0.2 Pesos iniciales wi 10 A ordability av [0,1] Restricciones ctj [0,10] 86 Cuadro 4.2: Experimento con tres controladores. Factores Smbolo Valores N. de controladores - 3 Penalizacion P 0.05/0.1/0.2 Incentivo A 0.05/0.1/0.2 Pesos iniciales wi 10 A ordability av [0,1] Restricciones ctj [0,10] 4.5. Experimentos nales El sistema mostrado en la gura 3.3 se implemento en el lengua- je de programacion Python. Los cinco modulos que lo constituyen se programaron en archivos separados y se uso JSON para el almace- namiento de varios tipos de informacion. La interconexion entre los modulos o subsistemas se hizo usando YARP (Metta, Fitzpatrick, y Natale, 2006). A continuacion se listan los archivos correspondientes al codigo fuente de la capa de interfaz: a ordance unit.py determination of reference.py feasibility.py lexical analysis.py 87 main.py mapping system.py object models.py properties.py tiny DB.py Los archivos tipo JSON se usaron para almacenar informacion relativa a: a ordability , posiciones actuales de los objetos, pesos y aso- ciatividad de los controladores. Estos archivos se listan a continuacion: a ordance database.json position database.json controllers weight.json controller database.json El archivo a ordance database.json es una base de datos que al- macena el a ordability entre el verbo y el objeto. El archivo posi- tion database.json asocia cada objeto con su posicion actual en el escenario. El archivo controllers weight.json almacena los pesos aso- ciados a cada controlador. Por ultimo, el archivo denominado con- troller database.json , para cada controlador establece que acciones o verbos se pueden ejecutar y cuales objetos se pueden manipular. 88 El conjunto de tareas simples utilizado como conjunto de prueba se muestra en la gura 4.7. Este corpus consiste en 32 tareas simples con las que se desea probar el sistema que fue desarrollado. Figura 4.7: Conjunto de tareas simples utilizadas para probar el sistema completo. Resultados y discusoin de experimentos A continuacion se discuten y analizan los resultados de los expe- rimentos realizados en el captulo anterior. Esta seccion se divide en cuatro partes: los resultados referentes al corpus de tareas simples, la validacion sobre el modulo de a ordances , las simulaciones que se hi- cieron sobre la unidad de factibilidad, y los experimentos nales sobre la capa de interfaz. 5.1. Analisis del corpus El corpus de tareas simples fue analizado; lo que permitio llegar a resultados muy interesantes en relacion a los dos escenarios analizados y las tareas simples seleccionadas. 5.1.1. Verbos En el escenario cocina, para las tareas complejas en cuestion, los verbos mas comunes son: mover, buscar, colocar e introducir (Ver cua- dro 5.1). Notese que estas cinco acciones son requeridas por el robot para ejecutar el 72.4 % de las tareas simples. Cualquier robot que deba trabajar en este ambiente, posiblemente requiera ejecutar estas cinco acciones. Esto no solo debe ser considerado por el modelo de objetos, 89 90 si no tambien, por la construccion mecanica de las articulaciones y la arquitectura software del robot. Los verbos del tipo \agarrar y colocar" ( pick and place ) resul- tan ser muy comunes en este escenario. Los verbos: mover, ubicar e introducir; son acciones que corresponden a la misma accion de mani- pulacion, tomar un objeto y colocarlo en otro sitio. Estos tres verbos corresponden al 49.28 % de las tareas simples. Es importante hacer notar que ununico modelo de objetos podra ser usado para ejecutar estas tres acciones de manipulacion. Cuadro 5.1: Verbos mas comunes en la cocina. Verbo Numero de Ocurrencias Porcentaje Mover 44 31.88 % Buscar 26 18.84 % Colocar 16 11.59 % Introducir 8 5.80 % Verter 6 4.35 % Otros 40 27.54 % El corpus de tareas simples, que fue generado usando la cocina como escenario, consta de 20 verbos diferentes, de los cuales solo sie- te verbos corresponden al %79.71 de las tareas simples. Es decir, un conjunto peque~no de siete verbos, es decir, el 35 % de la acciones de manipulacion, permiten ejecutar el 80 % de las tareas simples. Notese que el principio de pareto tambien se podra aplicar a la manipulacion de objetos, pues son necesarias pocas acciones de manipulacion para ejecutar la mayora de tareas. 91 El verbo \buscar" se incluye en la tabla 5.1, sin embargo, no nece- sariamente, se trata de una accion de manipulacion, ya queunicamente le indica al robot que debe encontrar la ubicacion del objeto especi ca- do. Esto signi ca que el robot debera saber como encontrar los objetos en la sala al ejecutar esta accion. Este verbo, por s solo, corresponde al 18.84 % de las tareas simples. Un verbo que se reviste de especial importancia, de acuerdo al analisis realizado, es \verter", el cual es una accion muy compleja que consiste en llenar un contenedor o recipiente con un lquido, uido u otro material. Esta accion requiere de la manipulacion de dos objetos: el contenedor que es llenado y el recipiente que es vaciado. Esta accion equivale al 4.25 % de las tareas simples. Los verbos mas utilizados en la mesa de trabajo di eren en forma signi cativa de los mas utilizados en la cocina. En el caso de la mesa de trabajo, el verbo mas frecuente no es una accion del tipo \agarrar y colocar", sino un verbo mas espec co relacionado con una de las tareas complejas, el cual es el verbo \lijar". Este verbo en particular aparece en el 17.01 % de las tareas simples. El segundo verbo que mas aparece es \colocar", el cual si es una accion del tipo \agarrar y colocar", y aparece en el 16.33 % de las tareas simples (Ver tabla 5.2). 5.1.2. Objetos En la cocina, los objetos mas comunes son: plato, cuchillo, tomate, trozo de pan y huevo. Estos cinco objetos constituyen el 41.3 % de 92 Cuadro 5.2: Verbos mas comunes en la mesa de trabajo. Verbo Numero de Ocurrencias Porcentaje Lijar 25 17.01 % Colocar 24 16.33 % Buscar 19 12.93 % Limpiar 16 10.88 % Taladrar 16 10.88 % Otros 47 31.97 % las tareas simples. De acuerdo a estos datos y las tareas complejas seleccionadas, el objeto mas utilizado en la cocina es el plato, con un 10.14 %. El segundo objeto mas utilizado es el cuchillo con un 9.42 %. El tercer objeto mas usado es el tomate, con un 8.70 %. El modelo de objetos de la capa de bajo nivel debe poder manipu- lar estos objetos para el escenario y las tareas complejas en cuestion. Desde el punto de vista fsico, en la construccion del robot, las articu- laciones roboticas deben tener la capacidad de manipular un plato, un cuchillo y un tomate (los objetos mas utilizados en la cocina). En la mesa de trabajo colaborativa y para las tareas complejas seleccionadas, los objetos mas utilizados son: pieza de madera, tecla, tornillo, borde de la caja de madera y cepillo. Esto cinco objetos co- rresponden al 78.2 % de las tareas simples. La pieza de madera es, por mucho, el objeto mas referenciado en este corpus, con un 35.7 % de las tareas simples. El segundo objeto mas referenciado es la tecla, con un 17.0 %. 93 5.1.3. Variacoin De acuerdo a las tareas complejas seleccionadas y a las tareas simples analizadas, el verbo \mover" es mas utilizado en la cocina, que en la mesa de trabajo colaborativa (Ver gura 5.1). Esto probablemente ocurre porque la cocina es unarea mas grande, donde hay que mover los objetos de un lugar a otro, en cambio, la mesa de trabajo es un lugar mas peque~no donde la mayora de materiales y herramientas estan \a la mano". Los mismo ocurre con el verbo \buscar", el cual es ligeramente mas utilizado en la cocina que en la mesa de trabajo, posiblemente, por la misma razon. Figura 5.1: Porcentaje de ocurrencia entre escenarios para tres verbos: mover, buscar y colocar. Otra aspecto relevante es la diferencia entre los dos escenarios para el verbo \colocar". Este verbo es mas frecuentemente utilizado en la mesa de trabajo que en la cocina; lo cual posiblemente ocurre 94 debido a que en la mesa de trabajo se requiere constantemente quitar y colocar objetos tales como: herramientas y materiales, por otro lado, en el caso de la cocina, lo que se mueven son los ingredientes. La variacion entre los verbos fue analizada entre tareas complejas para ambos escenarios, la cual fue medida para los verbos mas comunes en el escenario respectivo al calcular la raz cuadratica media, tal como se muestra a continuacion: √ σverbos = (verbo(i) 2Tarea Compleja#1 − verbo(i)Tarea Compleja#2) · 100 (5.1) donde verbo(i) es el porcentaje de ocurrencia para el mismo verbo en ambas tareas complejas, referido al mismo escenario. Al utilizar esta metrica en la cocina, se obtuvo un 3.18 % y en la mesa de trabajo colaborativa se obtuvo un 15.60 %. Basado en este analisis, las acciones en la mesa de trabajo colaborativa muestran mayor variabilidad que en el escenario cocina. 95 Figura 5.2: Variacion entre tareas complejas para la cocina: Se muestra la variacion entre tareas complejas, en el escenario cocina, para los siguientes verbos: mover, buscar, verter, colocar e introducir. Figura 5.3: Variacion entre tareas complejas para la mesa de trabajo colaborativa: Se muestra la variacion entre tareas complejas, en la mesa de trabajo, para los siguientes verbos: lijar, colocar, buscar, limpiar y taladrar. 96 5.2. A ordances 5.2.1. Experimento A: Matriz de affordances En la tabla 5.3 se muestra el calculo de la probabilidad condicional para los cinco objetos mas utilizados en la cocina y las cinco acciones (verbos) que son realizadas con mayor frecuencia en este escenario. Esta matriz se conoce como \matriz de a ordances ". La matriz de a ordances resulta vital, pues permite describir y caracterizar un es- cenario a traves de un objeto matematico muy compacto. Cuadro 5.3: Matriz de a ordances Verbo/Objeto Plato Cuchillo Tomate Pan* Huevo Mover 0.12 0.14 0.10 0.07 0.03 Buscar 0.17 0.09 0.05 0.00 0.09 Colocar 0.12 0.03 0.12 0.15 0.06 Introducir 0.00 0.00 0.10 0.00 0.00 Verter 0.00 0.00 0.16 0.00 0.08 * Trozo de pan Es importante comentar estos resultados. Esta matriz muestra la probabilidad condicional de que se manipule un determinado objeto dado que se tiene un verbo en espec co. Por ejemplo, la probabilidad condicional dada por P (Plato|Mover) es la probabilidad de que el objeto a manipular sea un plato, una vez que la accion seleccionada ha sido \mover". 97 En los casos en los que el valor calculado es cero, la conclusion obvia es que no hay a ordability , sin embargo, podra deberse tambien al tama~no del corpus de entrenamiento. A diferencia de muchas otras areas de la ingeniera, en robotica no existe un corpus de tareas simples para determinados escenarios, por lo que se tuvo que crear uno. El corpus utilizados para obtener estos datos consta de tareas simples. 5.2.2. Experimento B: Veri cacoin de affordability Este experimento utilizo un modelo de a ordances generado con 236 tareas simples. El conjunto de pruebas consistio en diez tareas simples, que se saba previamente, no cumplan con el a ordability entre el verbo y el objeto (Ver gura 4.5). Los resultados obtenidos mostraron una probabilidad condicional de cero para estas tareas simples. Por tanto, el sistema de mapeo pudo, para todo el conjunto de pruebas, determinar la metrica correctamente. Esto viene a con rmar la parte de la hipotesis planteada inicialmente en relacion al a ordability . 5.3. Factibilidad La simulaciones se realizaron tal cual fueron descritas en la seccion anterior. La variable de respuesta se gra co para dos y tres controlado- res (dos niveles) y para tres diferentes valores de penalidad-incentivo (tres niveles). En total se hicieron seis simulaciones las cuales corres- 98 ponden a las guras: 5.4, 5.5, 5.6, 5.7, 5.8 y 5.9. El factor de ruido tiene un papel predominante en los experimen- tos porque el a ordability y las restricciones son generadas en forma aleatoria. A pesar del factor de ruido, un solo controlador tiende a tener una valor mas alto, tal como se puede observar en todos los experimentos y gra cas realizadas. Un peso mas alto implica que el controlador en cuestion ejecuta la accion de manipulacion de mejor manera. El peso de los controladores es la forma en que se han logrado considerar las experiencias pasadas en el calculo de la factibilidad. Los experimentos realizados tambien muestran una caracterstica muy signi cativa en la funcion de costo y los factores jos: la funcion de costo parecer ser mas dependiente del peso que de las restricciones, esto despues de un determinado numero de iteraciones. Si la factibilidad esta determinada por los pesos, el calculo en cuestion podra estar descartando cualquier informacion en relacion al objeto, el contexto y el cuerpo del robot, lo cual es una preocupacion importante. La ecuacion 3.17 tiene el defecto de que multiplica las restricciones por un numero entre cero y uno, lo que se denomina a ordability , lo cual disminuye el impacto de los cambios en el ambiente, el robot y el objeto. La funcion de costo fue establecida como el punto de inicia, pero mas analisis es necesario para determinar una funcion de costo que pueda seleccionar el controlador mas adecuado para ejecutar la tarea simple. 99 Figura 5.4: Variacion de los pesos para dos controladores y un valor de penalizacion- incentivo de 0.05. 100 Figura 5.5: Variacion de los pesos para dos controladores y un valor de penalizacion- incentivo de 0.1. 101 Figura 5.6: Variacion de los pesos para dos controladores y un valor de penalizacion- incentivo de 0.2. 102 Figura 5.7: Variacion de los pesos para tres controladores y un valor de penalizacion- incentivo de 0.05. 103 Figura 5.8: Variacion de los pesos para tres controladores y un valor de penalizacion- incentivo de 0.1. 104 Figura 5.9: Variacion de los pesos para tres controladores y un valor de penalizacion- incentivo de 0.2. 105 5.4. Experimentos nales El conjunto de tareas simples utilizado como entrada al sistema se muestra en la gura 4.7. Este consiste de 16 tareas simples con las que se desea validar y probar la capa de interfaz. Este conjunto de pruebas se limito al escenario correspondiente a la cocina. La gura 5.10 muestra la ejecucion de la tarea \Buscar la tosta- dora". El primero modulo que se ejecuta es el analizador lexico, el cual identi ca la accion y el objeto, en este caso en particular, la accion es \buscar" y el objeto es \tostadora". Notese que no se indenti ca el adverbio ni el estado nal porque no estan dados en la instruccion simple, ademas de que los mismos no son necesarios. La segunda unidad que se ejecuta es la unidad de mapeo, en este caso en particular esta unidad ha seleccionado ununico controlador, el controlador numero dos. A continuacion tambien se ejecuta la unidad de a ordances , la cual arroja un valor positivo, es decir, la unidad en cuestion ha con rmado que hay a ordability entre la accion y el objeto. A continuacion, la unidad de factibilidad selecciona el controlador dos, esta escogencia resulta trivial cuando la unidad de mapeo, pre- viamente, ha escogido ununico controlador. La unidad de propiedades del objeto proporciona las caractersticas del objeto, en este caso en particular, el peso y el coe ciente de friccion. Porultimo, se calcula la referencia a ser usada por el controlador, 106 en este caso en particula la referencia indica la ubicacion espacial de la tostadora. Figura 5.10: Salidas generadas por la capa de interfaz para la tarea simple \Buscar la tostadora". 107 Figura 5.11: Salidas generadas por la capa de interfaz para la tarea simple \Introducir el trozo de pan #1 en la tostadora". Conclusiones y recomendaciones Un robot, para que pueda ejecutar tareas de alta complejidad, debe estar equipado con una cantidad importante de conocimiento en la forma de modelos de objetos. De acuerdo al analisis realizado en el escenario cocina, las acciones mas comunes son del tipo \agarrar y colocar". En el caso de la mesa de trabajo, las acciones de manipulacion mas comunes son verbos mas espec cos relacionados con las tareas complejas seleccionadas, como lo son: lijar, limpiar y taladrar. El poder implementar estos modelos de objetos tiene el potencial de permitir la construccion de robots mas autonomos y exibles, que pueda ejecutar actividades humanas cada vez mas complejas (Calli y cols., 2015). Debido a la limitada cantidad de tareas complejas y tareas simples, estos resultados no puede ser generalizados. Aun as, estos proporcio- nan informacion relevante que puede ser usada como gua para dise~nar y construir software y hardware de robots humanoides. El porcentaje de uso de verbos y objetos puede ser usado para justi car investigacion en modelos de objetos espec cos y mejor las caractersticas mecanicas de las articulaciones roboticas. Por ejemplo, la investigacion futura en modelos de objetos debera enfocarse en la accion \verter", ya que es uno de los verbos mas usados en la cocina, aparte de las acciones del tipo \agarrar y colocar". Las articulaciones roboticas, particularmente, las que estaran destinadas a una cocina, deberan poder realizar esta compleja accion de manipu- 108 109 lacion, que requiere la manipulacion de dos objetos al mismo tiempo: el contenedor donde es vertido el uido y el contenedor que esta siendo vaciado (Feix y cols., 2014). Basado en el analisis que se realizo, la cocina muestra menos va- riabilidad entre tareas complejas que el escenario de la mesa de tra- bajo. Esto podra sugerir para la cocina, en el contexto de las tareas complejas analizadas, que podra ser mas sencillo y barato construir un diccionario, un modelo de objetos y una arquitectura robotica, en comparacion con la mesa de trabajo. En el caso de la mesa de traba- jo, hay mayor diversidad de objetos y verbos, en comparacion con la cocina. Este analisis debera ser ampliado para incluir mas escenarios y mas tareas complejas. Una estudio mas exhaustivo podra realizar plan- teamientos mas generales que permitan construir robots para un con- junto mas amplio de escenarios, tales como: una sala de una casa, un jardn, una o cina o un laboratorio (de cualquier tipo). Adicionamen- te, es aun desconocido como las caractersticas del escenario cambian el porcentaje de uso o la variabilidad de los verbos y objetos. El analisis del corpus de tareas simples fue el punto de partida para desarrollar un lenguaje de accion que se pudiera utilizar como enlace entre el alto nivel y el bajo nivel de la arquitectura robotica. El lenguaje que se decidio utilizar, como entrada a la capa de interfaz, es un subconjunto del lenguaje natural, pues posee un limitado numero de instancias y se organiza en trigramas. 110 Un dise~no de una arquitectura robotica fue propuesto con el n de procesar y dilucidar este lenguaje de accion, de tal forma que fue- ra inteligible para el sistema de modelo de objetos. El elemento mas importante en la arquitectura es la capa de interfaz la cual consiste en cinco modulos: la unidad de a ordances , la unidad de mapeo, la unidad de determinacion de la referencia, la unidad de propiedades de objetos, y el analizador de factibilidad. La arquitectura fue analizada para mostrar como puede resolver una instruccion en lenguaje natural, a traves de sus diferentes capas, desde el alto nivel hasta el bajo nivel, a traves de dos casos de uso : \Hagame un desayuno" y \Hagame una ensalada". En concreto, se analizaron dos tareas simples: \Coloque la tostada sobre el plato" y \Rallar 20 gramos de lechuga". Estas dos tareas mostraron la comple- jidad de la implementacion de los modulos de la capa de interfaz y dieron una idea mas clara del camino a seguir en su desarrollo. Cada modulo de la capa de interfaz es un reto signi cativo ya que su dise~no e implementacion no esta completamente acabada. En la capa de interfaz se obtuvieron resultados muy valiosos para dos modulos en particular: la unidad de a ordances y la unidad factibilidad. La unidad de a ordances se implemento al crear un modelo de probabilidad condicional. Los datos de entrenamiento se basaron en 236 tareas simples obtenidas en el escenario cocina (Ver gura 4.2) a partir de un conjunto de tareas complejas. Estas 236 tareas simples fueron generadas por un ser humano, el cual uso como referencia el 111 escenario tal cual fue especi cado. Esta unidad permitio construir una tabla con los cinco verbos mas utilizados y los cinco objetos mas manipulados; a esta tabla se le denomino: matriz de a ordances (Ver tabla III). En esta matriz, si la probabilidad condicional para un bigrama es cero, la conclusion inmediata es que no hay a ordability entre la accion y el objeto, sin embargo, tambien podra deberse a que el corpus de entrenamiento no es los su ciente grande. Esta matriz tiene el potencial de ser usada como una forma muy efectiva de modelar y comparar ambientes dinamicos. Es decir, de ser- vir como un complemento semantico a las mas tradicionales descrip- ciones fsicas del mundo. Para analizar la interaccion entre la unidad de mapeo y la unidad de analisis de factibilidad, se realizaron varias simulaciones. El diagra- ma de ujo correspondiente a estas simulaciones se muestra en la gura 4.6. Los gra cos obtenidos revelan las siguientes aspectos relevantes: A pesar de los factores de ruido, el peso asociado a un unico controlador tiende a converger hacia un valor mayor y otro con- trolador converge hacia un valor menor. Esto se puede observar en la guras 5.4, 5.5, 5.6, 5.6, 5.7, 5.8 y 5.9. Notese que hay un momento despues del cual los puntos comienzan a diverger el uno del otro. La funcion de costo, bajo las condiciones expuestas y despues de 112 cierto numero de iteraciones, esta siendo mayormente determina- da por el peso y no por las restricciones. Por tanto, el calculo de factibilidad podran estar descartando informacion relevante relacionada al contexto en el que debe operar el robot. Las oscilaciones en los gra cos se debe a los valores aleatorios de las restricciones. El comportamiento lineal se debe al incremento o decremento de los pesos; lo cual explica porque una gra ca con un mayor valor incentivo-penalidad muestra menos variaciones. La funcion de costo y los valores lmites usandos en las simulacio- nes podran no ser apropiados, as que se requiere investigacion adicio- nal para encontrar una ecuacion o un algoritmo que pueda seleccionar el controlador mas apto para ejecutar la tarea simple. El trabajo futuro debera enfocarse en como dise~nar, estudiar e implementar los diferentes subsistemas, as como todas las interaccio- nes entre ellos. En relacion a la unidad de a ordances , se requiere un corpus mas amplio, as como la incorporacion de mas escenarios. En relacion a la unidad de factibilidad, es necesario evaluar varios algorit- mos para encontrar el mas adecuado. 113 Referencias Beetz, M., Stulp, F., Radig, B., Bandouch, J., Blodow, N., Dolha, M., . . . Tenorth, M. (2008, Aug). The assistive kitchen - a demonstration scenario for cognitive technical systems. En Ro-man 2008 - the 17th ieee international symposium on robot and human interactive communication (p. 1-8). doi: 10.1109/ROMAN .2008.4600634 Belle, H. J., Vaishak y Levesque. (2014). Prego: An action language for belief-based cognitive robotics in continuous domains. En C. E. Brodley y P. Stone (Eds.), Aaai (p. 989-995). AAAI Press. Blodow, N., Goron, L. C., Marton, Z. C., Pangercic, D., Ruhr, T., Tenorth, M., y Beetz, M. (2011, Sept). Autonomous semantic mapping for robots performing everyday manipulation tasks in kitchen environments. En 2011 ieee/rsj in- ternational conference on intelligent robots and systems (p. 4263-4270). doi: 10.1109/IROS.2011.6094665 Calli, B., Walsman, A., Singh, A., Srinivasa, S., Abbeel, P., y Dollar, A. (2015). Benchmarking in manipulation research: Using the yale-cmu-berkeley object and model set. En (Vol. 22, p. 36 - 52). Costa, C. M., Veiga, G., Sousa, A., y Nunes, S. (2017, April). Evaluation of stanford ner for extraction of assembly information from instruction manuals. En 2017 ieee international conference on autonomous robot systems and competitions (icarsc) (p. 302-309). doi: 10.1109/ICARSC.2017.7964092 Coste-Maniere, E., y Simmons, R. (2000). Architecture, the backbone of robotic sys- tems. En Proceedings 2000 icra. millennium conference. ieee international con- ference on robotics and automation. symposia proceedings (cat. no.00ch37065) (Vol. 1, p. 67-72 vol.1). doi: 10.1109/ROBOT.2000.844041 Cousins, S. (2011, Agosto). Challenges of building personal robots. En 2011 ieee hot chips 23 symposium (hcs) (p. 1-36). doi: 10.1109/HOTCHIPS.2011.7477513 Domingos, P. (2007). What’s missing in AI: The interface layer. University of Washington, Washington, USA . Domingos, P., y Lowd, D. (2009). Markov logic: An interface layer for arti cial 114 intelligence (1.a ed.). Morgan and Claypool Publishers. Fang, J., Zhao, J., He, F., y Lin, X. (2013, Agosto). Design and research of three- layers open architecture model for industrial robot software system. En 2013 ieee international conference on mechatronics and automation (p. 104-109). doi: 10.1109/ICMA.2013.6617901 Feix, T., Bullock, I. M., y Dollar, A. M. (2014, Octubre). Analysis of human grasping behavior: Correlating tasks, objects and grasps. IEEE Transactions on Haptics , 7 (4), 430-441. doi: 10.1109/TOH.2014.2326867 Ferrein, A., Maier, C., Muehlbacher, C., Niemueller, T., Steinbauer, G., y Vassos, S. (2016). Controlling Logistics Robots with the Action-based Language YAGI. En Proc. of 9th international conference on intelligent robotics and applications (icira2016). Tokyo, Japan. Gibson, J. (1977). The theory of a ordances. En J. Shaw Robert y Bransford (Ed.), Perceiving, acting, and knowing: Toward and ecological psychology (pp. 62{82). Hillsdale, NJ: Erlbaum. Glenberg, A. M., y Kaschak, M. P. (2002, 01 de Sep). Grounding language in action. Psychonomic Bulletin & Review , 9 (3), 558{565. Descargado de https://doi .org/10.3758/BF03196313 doi: 10.3758/BF03196313 Gorges, N., Schmid, A. J., Osswald, D., y Worn, H. (2007, Noviembre). A framework for creating, coordinating, and executing skills on a humanoid robot. En 2007 7th ieee-ras international conference on humanoid robots (p. 385-391). doi: 10.1109/ICHR.2007.4813898 Guerra-Filho, G., y Aloimonos, Y. (2007, Mayo). A language for human action. Computer , 40 (5), 42-51. doi: 10.1109/MC.2007.154 Hoijer, H. (Ed.). (1904). Language in culture : conference on the interrelations of language and other aspects of culture . University of Chicago Press. Hopcroft, J. E., Kearney, J. K., y Kra t, D. B. (1991). A case study of exible object manipulation. The International Journal of Robotics Research , 10 (1), 41-50. doi: 10.1177/027836499101000105 James L. Melsa, D. L. C. (Ed.). (1978). Decision and estimation theory . McGraw- Hill. Karim, H. A., Lokman, A. M., y Redzuan, F. (2016a, Agosto). Older adults pers- 115 pective and emotional respond on robot interaction. En 2016 4th interna- tional conference on user science and engineering (i-user) (p. 95-99). doi: 10.1109/IUSER.2016.7857941 Karim, H. A., Lokman, A. M., y Redzuan, F. (2016b, Agosto). Older adults pers- pective and emotional respond on robot interaction. En 2016 4th interna- tional conference on user science and engineering (i-user) (p. 95-99). doi: 10.1109/IUSER.2016.7857941 Krivic, S., Ugur, E., y Piater, J. (2016, Agosto). A robust pushing skill for ob- ject delivery between obstacles. En 2016 ieee international conference on automation science and engineering (case) (p. 1184-1189). doi: 10.1109/ COASE.2016.7743539 Lagrand, C., v. d. Meer, M., y Visser, A. (2016, May). The roasted tomato challenge for a humanoid robot. En 2016 international conference on autonomous robot systems and competitions (icarsc) (p. 341-346). doi: 10.1109/ICARSC.2016.63 Levesque, H. J., Reiter, R., Lesperance, Y., Lin, F., y Scherl, R. B. (1997). Golog: A logic programming language for dynamic domains. The Journal of Logic Programming , 31 (1), 59 - 83. (Reasoning about Action and Change) doi: http://dx.doi.org/10.1016/S0743-1066(96)00121-5 Low, J. H., Lee, W. W., Khin, P. M., Thakor, N. V., Kukreja, S. L., Ren, H. L., y Yeow, C. H. (2017, Abril). Hybrid tele-manipulation system using a sensorized 3-d-printed soft robotic gripper and a soft fabric-based haptic glove. IEEE Ro- botics and Automation Letters , 2 (2), 880-887. doi: 10.1109/LRA.2017.2655559 Metta, G., Fitzpatrick, P., y Natale, L. (2006). Yarp: Yet another robot platform. International Journal of Advanced Robotic Systems , 3 (1), 8. Descargado de https://doi.org/10.5772/5761 doi: 10.5772/5761 Moldovan, B., Moreno, P., van Otterlo, M., Santos-Victor, J., y Raedt, L. D. (2012, May). Learning relational a ordance models for robots in multi-object manipu- lation tasks. En 2012 ieee international conference on robotics and automation (p. 4373-4378). doi: 10.1109/ICRA.2012.6225042 Moldovan, B., y Raedt, L. D. (2014, Sept). Learning relational a ordance models for two-arm robots. En 2014 ieee/rsj international conference on intelligent robots and systems (p. 2916-2922). doi: 10.1109/IROS.2014.6942964 116 Muller, A., Kirsch, R., y Beetz, M. (2007). Transformational planning for everyday activity. En In 17th international (pp. 248{255). Nabeshima, H., Inoue, K., y Haneda, H. (2000). Implementing an action lan- guage using a sat solver. En Proceedings 12th ieee internationals conferen- ce on tools with arti cial intelligence. ictai 2000 (p. 96-103). doi: 10.1109/ TAI.2000.889852 Nava, N. E. (2011). Advanced mechanics in robotic systems . Springer London. Norman, D. A. (2002). The design of everyday things . New York, NY, USA: Basic Books, Inc. Quack, B., Worgotter, F., y Agostini, A. (2015, Setiembre). Simultaneously learning at di erent levels of abstraction. En 2015 ieee/rsj international conference on intelligent robots and systems (iros) (p. 4600-4607). doi: 10.1109/IROS.2015 .7354032 Rodrguez Consuegra, F. (2003). La losofa del lenguaje: su naturaleza y su con- texto. Dianoia , 48 (50), 41-68. Romay, A., Kohlbrecher, S., Conner, D. C., y von Stryk, O. (2015, Noviem- bre). Achieving versatile manipulation tasks with unknown objects by su- pervised humanoid robots based on object templates. En 2015 ieee-ras 15th international conference on humanoid robots (humanoids) (p. 249-255). doi: 10.1109/HUMANOIDS.2015.7363543 Ruiken, D., Liu, T. Q., Takahashi, T., y Grupen, R. A. (2016, Noviembre). Re- con gurable tasks in belief-space planning. En 2016 ieee-ras 16th inter- national conference on humanoid robots (humanoids) (p. 1257-1263). doi: 10.1109/HUMANOIDS.2016.7803431 Ruiz, F. (2014). Compact models of objects for skilled manipulation . Universidad Tecnica de Munich, Universidad Tecnica de Munich, Intelligent Autonomous Systems, Garching, Germany. Ruiz, F., Cheng, G., y Beetz, M. (2010, Octubre). Prediction of action outcomes using an object model. En 2010 ieee/rsj international conference on intelligent robots and systems (p. 1708-1713). doi: 10.1109/IROS.2010.5649552 Ruiz, F., Cheng, G., y Beetz, M. (2011, Octubre). Fast adaptation for e ect-aware pushing. En 2011 11th ieee-ras international conference on humanoid robots 117 (p. 614-621). doi: 10.1109/Humanoids.2011.6100863 Searle, S. R. (Ed.). (1982). Matrix algebra useful for statistics . Wiley Series. Siciliano, B., y Khatib, O. (2007). Springer handbook of robotics . Secaucus, NJ, USA: Springer-Verlag New York, Inc. Siciliano, B., y Khatib, O. (Eds.). (2008). Springer handbook of robotics . Springer. Speck, D., Dornhege, C., y Burgard, W. (2017, Abril). How much does it take to redo shakey the robot? IEEE Robotics and Automation Letters , 2 (2), 1203-1209. doi: 10.1109/LRA.2017.2665694 Sterling, L., y Shapiro, E. (1986). The art of prolog: Advanced programming techni- ques. Cambridge, MA, USA: MIT Press. Stulp, F., Kresse, I., Maldonado, A., Ruiz, F., Fedrizzi, A., y Beetz, M. (2009). Compact models of human reaching motions for robotic control in everyday manipulation tasks. En Proceedings of the 8th international conference on development and learning (icdl). Sugiura, K., y Iwahashi, N. (2007). Learning object-manipulation verbs for human- robot communication. En Proceedings of the 2007 workshop on multimodal interfaces in semantic interaction (pp. 32{38). New York, NY, USA: ACM. doi: 10.1145/1330572.1330577 Suarez, F., y Ruiz, F. (2018, July). Analysis of atomic manipulation tasks in human- shared scenarios (a kitchen and a collaborative workshop table) for a humanoid robot. En 2018 ieee international work conference on bioinspired intelligence (iwobi) (p. 1-9). doi: 10.1109/IWOBI.2018.8464220 Suarez, F., y Ruiz, F. (2019, Feb). Automatic translation of spanish natural language commands to control robot comands based on lstm neural network. En 2019 third ieee international conference on robotic computing (irc) (p. 125-131). doi: 10.1109/IRC.2019.00026 Tenorth, M., y Beetz, M. (2010). Priming transformational planning with observa- tions of human activities. Universidad Tecnica de Munich, Intelligent Autono- mous Systems, Garching, Germany. Tenorth, M., Nyga, D., y Beetz, M. (2010, May). Understanding and executing instructions for everyday manipulation tasks from the world wide web. En 2010 ieee international conference on robotics and automation (p. 1486-1491). 118 doi: 10.1109/ROBOT.2010.5509955 Thenmozhi, D., Seshathiri, R., Revanth, K., y Ruban, B. (2017, Jan). Robotic simulation using natural language commands. En 2017 international conference on computer, communication and signal processing (icccsp) (p. 1-4). doi: 10 .1109/ICCCSP.2017.7959814 Winkler, J., y Beetz, M. (2015, Sept). Robot action plans that form and maintain expectations. En 2015 ieee/rsj international conference on intelligent robots and systems (iros) (p. 5174-5180). doi: 10.1109/IROS.2015.7354106 Yamazaki, K., Watanabe, Y., Nagahama, K., Okada, K., y Inaba, M. (2010, Dec). Recognition and manipulation integration for a daily assistive robot working on kitchen environments. En 2010 ieee international conference on robotics and biomimetics (p. 196-201). doi: 10.1109/ROBIO.2010.5723326 Zhang, C., y Shah, J. A. (2016, Octubre). Co-optimizing task and motion planning. En 2016 ieee/rsj international conference on intelligent robots and systems (iros) (p. 4750-4756). doi: 10.1109/IROS.2016.7759698 Zhang, S., Yang, F., Khandelwal, P., y Stone, P. (2015). Mobile robot planning using action language. En F. Calimeri, G. Ianni, y M. Truszczynski (Eds.), Logic pro- gramming and nonmonotonic reasoning: 13th international conference, lpnmr 2015, lexington, ky, usa, september 27-30, 2015. proceedings (pp. 502{516). Cham: Springer International Publishing. doi: 10.1007/978-3-319-23264-5 42