SciELO - Scientific Electronic Library Online

 
vol.19 issue36Odd Harmonic High Order Repetitive Control of Single-Phase PWM Rectifiers: Varying Frequency OperationThe Use of an Industrial Mineral Waste as Catalyst in the Hydroconversion of Dibenzylether and a Colombian Subbituminous Coal author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


TecnoLógicas

Print version ISSN 0123-7799On-line version ISSN 2256-5337

TecnoL. vol.19 no.36 Medellín Jan./June 2016

 

Artículo de investigación/Research article

Programación por Demostración de la Secuencia de Apretar una Tuerca Admitiendo Variaciones en Posición de la Llave

Programming by Demonstration of the Sequence of Tightening a Nut Allowing Variations in Tool Position

José G. Hoyos-Gutiérrez1, Flavio A. Prieto-Ortiz2

1MSc. en Ingeniería Eléctrica, Programa de Tecnología en Instrumentación Electrónica, Universidad del Quindío, Armenia-Colombia,josegabrielh@uniquindio.edu.co

2PhD. en Automática, Facultad de Ingeniería, Universidad Nacional de Colombia, Bogotá-Colombia, faprieto@unal.edu.co

Fecha de recepción: 31 de julio de 2015/ Fecha de aceptación: 11 de noviembre de 2015


Como citar / How to cite

J. G. Hoyos-Gutiérrez y F. A. Prieto-Ortiz, “Programación por demostración de la secuencia de apretar una tuerca admitiendo variaciones en posición de la llave”, Tecno Lógicas, vol. 19, no. 36, pp. 77-90, 2016.


Resumen

Se presenta una técnica que permite la programación por demostración de un robot para que ejecute una tarea secuencial o compleja. Se utiliza una combinación de redes de Petri y modelos de mezcla de gaussianas parametrizado en la tarea; con la primera se coordina la secuencia de la tarea, en tanto que la segunda permite variaciones en la posición y orientación de los objetos de la misma. Una técnica de segmentación de tareas, descompone la demostración en subtareas. Con la secuencia de las subtareas, se obtiene una lista de acciones (plan) y con este se genera de manera automática una red de Petri. A la técnica también se le suministran las plantillas modelo de cada subtarea y los modelos de mezcla de gaussianas parametrizados en la tarea de las trayectorias de la subtarea que se quiere que admita variaciones. Una función compara las trayectorias de cada plantilla con las trayectorias repuesta del modelo, y la de mayor similitud indica que en vez de la plantilla, se debe emplear el modelo de mezcla parametrizado. Mediante el uso de un robot de fabricación propia, el cual ejecuta la tarea de tomar, transportar una llave y apretar una tuerca, se ilustra el desempeño de la técnica a través de gráficas.

Palabras clave: Programación por demostración de robots, segmentación de tareas, modelo de mezcla de gaussianas parametrizado en la tarea, redes de Petri.


Abstract

A technique of programming by demonstration of a robot is proposed. Such a technique allows that a robot execute sequential or complex tasks. It uses a combination of Petri nets and task parameterized Gaussian mixture models. The first one handles the task sequence, while the second one allows variations in the position and orientation of objects involved in the task. Using a segmentation task technique, the demonstration is chunked in subtasks. With the subtasks sequence, an action list or plan is obtained and with this, a Petri net is automatically generate. Models of the templates of each subtasks and task parameterized Gaussian mixture models of the subtask that we want to allow variations are also provide to the technique. A function compare one each of the template trajectory with the task parameterized model response trajectory and the most similar indicate that instead of the template, the task parameterized model is use. Through the use of a homemade robot, which executes the task of tightening a nut, the performance of the technique is illustrated by using figures.

Keywords: Robot programming by demonstration, Task segmentation, Complex tasks, Task parameterized Gaussian Mixture model, Petri nets.


1. Introducción

La programación por demostración (PpD) es una técnica que permite a un robot aprender la realización de una tarea a través de la demostración de la misma por parte de un humano [1]. Se puede aplicar en entornos poco estructurados, porque permite que un usuario enseñe fácilmente nuevas tareas a un robot sin necesidad de conocimientos en programación.  En PpD el robot es entrenado con ejemplos de la tarea, a partir de los cuales el aprende a generalizarla. Las tareas que puede realizar un robot, se pueden dividir en i) habilidades y ii) tareas complejas. Una habilidad describe una acción básica como por ejemplo operaciones de manipulación o transporte; una tarea compleja, es una secuencia de habilidades o subtareas.
Algunos de los retos en PpD en los que se investiga actualmente son: i) Técnicas que permitan generar nuevas trayectorias que guardan similitud con otras que fueron demostradas [2], [3], y ii) Técnicas que permiten programar tareas complejas [4], [5]. En este artículo, se presenta una combinación de los dos temas.

El modelo de mezcla de gausianas GMM (del inglés Gaussian Mixture Models) es un modelo probabilístico, que permite modelar trayectorias en el tiempo con unas pocas gaussianas. Una versión mejorada llamado modelo de mezcla de gaussianas parametrizado en la tarea (en inglés “Task Parameterized Gaussian Mixture Model” que en este documento se abrevia como: TPGMM), permite la generación de nuevas trayectorias. Esta mejora fue propuesta por Calinon y otros [3], en la cual, cuando los robots manipulan objetos, sus movimientos pueden depender en gran medida de metas dadas y poses de objetos, las cuales pueden ser definidas a través de marcos de referencia. Concretamente, el movimiento del robot es condicionado por un conjunto de variables de la tarea que representan el sistema coordenado de marcos de referencia relevantes.  A cambio de representar cada trayectoria como un modelo diferente, esta técnica, se basa en un solo modelo que abarca las diferentes trayectorias como función de las variables de la tarea, el modelo se fundamenta en las propiedades del producto de gaussianas.

Un ejemplo de tarea compleja, es el manejo de una herramienta por parte de un robot. Por ejemplo, el roscado o desenroscado de una tuerca implica las siguientes subtareas: tomar la herramienta, llevar la herramienta hasta la tuerca con cierta orientación, realizar la operación de roscado o desenroscado, regresar la herramienta a su posición inicial. El manejo de herramientas, permitiría aplicaciones como mantenimiento, ensamble y desensamble. El primer paso, para obtener un programa a partir de las demostraciones de la tarea compleja, es la descomposición de la demostración en subtareas. Para esto se utilizan técnicas de segmentación de la tarea, las cuales dividen la tarea en subtareas. Conociendo la secuencia de las subtareas, se obtiene un plan y con este es posible generar una secuencia de alto nivel que indica las operaciones a realizar. Para lo anterior, se ha usado programación simbólica, gramática de contexto libre, autómatas de estado finito y redes de Petri.

La programación por demostración de la tarea de manejo de la herramienta hace necesario una técnica que coordine la ejecución de las subtareas (ej. red de Petri). Además, que permita variar la posición o trayectorias realizadas, al variar la posición de la tuerca, para ello se emplea TPGMM, para generar nuevas trayectorias. El aporte realizado es la combinación de las técnicas de red de Petri y TPGMM en la programación de tareas complejas con generación de nuevas trayectorias.

Otro ejemplo de tarea compleja es el ensamblado de un carro de juguete en madera. Dadas una serie de piezas bien elaboradas, la meta de un ensamble es juntarlas o acoplarlas para producir un objeto que funcione [6]. El proceso total de ensamble se puede dividir en tareas o sub-ensambles. A partir de la segmentación de la tarea o de extraer la secuencia de acciones, se genera la representación simbólica de la secuencia, se ha usado: gramática como en [7]-[9], grafos como en [10], [11], o modelos ocultos de Markov [5].

En 2005 Zollner y otros [12], a partir de una sola demostración de una tarea compleja, generan un programa de esta. Su ventaja es que requiere una sola demostración, y como desventajas están el que requiere la definición de reglas heurísticas para poder generalizar posiciones, esto último solo se hace para cambios de posición y forma de los objetos, y no para la orientación.

En 2010 Kruger y otros [5] presentan una técnica que detecta primitivas de movimiento de manera no supervisada y con ellas sintetizan tareas. Las primitivas son reconocidas y modeladas usando modelos ocultos de Markov paramétricos (PHMM por sus siglas en inglés), además para la detección de las primitivas, se valen del estado de los objetos. Plantean una dualidad entre el movimiento de los objetos y las acciones realizadas por el humano, basados en esto, usan la segmentación del movimiento de los objetos para separar las acciones del humano en primitivas. Los autores no ahondan en el tema de la obtención de la gramática que se genera a partir de la tarea.

Dantam y otros en 2012 [8], usan gramática de movimiento (motion grammar), para un ensamble simple de una estructura de barras de madera. El sistema convierte los movimientos de los objetos capturados usando un sensor kinect, en códigos que luego el robot reproduce, pero no aborda los problemas de forma de agarre y fuerzas que se presentan, además el sistema aprende una sola secuencia de ensamble.

En 2012 Niekum y otros [4] plantean una técnica para resolver tareas complejas. Primero segmentan la tarea con BP-AR-HMM (del inglés Beta Process Auto Regresive Hidden Markov Models). Luego las subtareas son modeladas usando primitivas de movimiento dinámico (DMP) y vinculadas a un marco de referencia. Una mejora al anterior, fue presentada por los mismos autores en 2013  [11], donde emplearon un autómata de estados finitos para la tarea de enroscar la pata a una mesa. A través de aprendizajes interactivos por parte del ser humano, puede aprender de manera incremental a tomar la pata de la mesa de otras ubicaciones y orientaciones, esto implica adicionar ramas al autómata de estados finitos, las cuales luego son condensadas con las ramas iniciales en sus tramos similares. Las anteriores técnicas, pueden generalizar en cada subtarea, un punto inicial o final, a diferencia de la técnica aquí propuesta que al emplear TPGMM puede tener múltiples parámetros de la tarea.

Las redes de Petri son empleadas por Chang y Kulic en 2013  [10], para tomar, mover, y    un sistema que genera una representación simbólica de una tarea, basada en las precondiciones y efectos de las acciones. Su ventaja es que puede adaptarse a cambios en la tarea interactuando con el maestro, su desventaja está en que la percepción de las precondiciones debe ser definida manualmente.

En 2014 Martinez y otros  [9], emplean una gramática propia y aprendizaje por refuerzo para una tarea de ensamble. Con el movimiento y contacto de los objetos a ensamblar construyen unos grafos, con los cuales entrenan un algoritmo de aprendizaje por refuerzo relacional, según las pre-condiciones y efectos deseados más adecuados, el algoritmo decide que acción ejecutar. Su ventaja está en que es tolerante a variaciones de la percepción de los movimientos, partes no identificadas y errores de inserción.

Cubek y otros en 2015 [14], presentaron una técnica que realiza la tarea de tomar y poner múltiples objetos, esta aprende relaciones conceptuales de forma y color de los objetos con acciones a realizar. Aunque puede generalizar para nuevos objetos, no modelan las trayectorias demostradas, con lo cual no es posible que el robot pueda realizar movimientos que requieran cierta orientación.

El documento presenta la siguiente estructura: en la Sección 2 se presenta la técnica propuesta, la cual obtiene la red de Petri y los modelos de mezcla de gaussianas parametrizados en la tarea. Posteriormente en la Sección 3, se presenta el experimento realizado, sus resultados y discusión. Finalmente se presentan las conclusiones.

2. Metodología

En la Fig. 1 se muestran las tres fases que permiten obtener la red de Petri (RdP) [15] a partir de demostraciones de la tarea. En la fase de demostración y segmentación, se obtienen las trayectorias de las articulaciones a partir de una o varias demostraciones de la misma tarea, luego un algoritmo de segmentación de la tarea, permite generar un plan o lista de acciones. En la fase de generación de la red de Petri, el plan es convertido a una lista que describe la red, también en esta fase se genera la matriz de incidencia de la RdP. Por último, en la fase de ejecución de la red, la lista que describe la RdP realiza la secuencia de la tarea.

2.1 Segmentación de la Tarea

La segmentación de la tarea permite descomponer la demostración de una tarea compleja, en subtareas. Las subtareas se identifican como los tramos donde existe movimiento en la trayectoria de articulaciones. Cada subtarea tiene una denominación o etiqueta, por ejemplo: agarrar la llave. Para saber a qué etiqueta corresponde un tramo de la tarea completa, se compara este con plantillas obtenidas también por demostración, la comparación se realiza usando CDTW (del inglés Continous Dynamic Time Warping), el cual es un método que calcula la similitud entre dos secuencias.

El proceso de segmentación, se divide en dos: i) Obtención de los tramos de trayectorias (subtareas) y ii) Etiquetado de las subtareas. La primera parte a su vez, se realiza a través de los siguientes pasos:

Filtrado de las trayectorias de la tareas.
Cálculo de la suma del cuadrado de las velocidades de las articulaciones.
Obtención de los tramos que sobrepasan el umbral.
Fusión de tramos de corta duración.
Obtención de flancos de inicio y fin de cada subtarea.

Dadas m articulaciones q, donde cada articulación tiene n muestras, se filtran usando un filtro de promedio móvil de 4 muestras, para luego calcular la suma del cuadrado de las velocidades con:

La señal vs (1) es nuevamente filtrada con un filtro de promedio móvil. Luego, usando un valor umbral, se identifican los tramos donde la suma de velocidades sobrepasa este valor, lo que marca un tramo de movimiento. Este umbral fue prefijado manualmente. En la Fig. 2, se muestra un ejemplo de las trayectorias de cuatro articulaciones y la suma de velocidades obtenida. Ejes q1 a q4 corresponden a las cuatro articulaciones del brazo. En la parte inferior, se muestra la suma de velocidades de las articulaciones (línea continua) y en línea a tramos la señal de pulsos resultado de aplicar el umbral. Las zonas que sobrepasan el umbral, son lo que se denomina pulsos (en línea punteada), a los cuales se les realiza una fusión, que agrupa pulsos cercanos y cuyo tiempo sea menor a 20 muestras, dejando un solo pulso, denominado us. El paso siguiente es la obtención de los flancos de subida y bajada, con los que se obtiene el inicio (flanco subida) y fin (flanco bajada) de cada subtarea.

2.2 Etiquetado de las Subtareas

Para el etiquetado, se obtienen por demostración ns subtareas plantilla θ, que se etiquetan manualmente y se llevan, todas, a un tamaño de 100 muestras. Por cada subtarea de la tarea completa, se realizan los siguientes pasos:

Cada subtarea de la tarea completa se lleva a un tamaño de 100 muestras.
Se calcula el error por CDTW entre las plantillas y la subtarea.
Se selecciona la plantilla de mayor similitud.

Dado que la mayoría de las subtareas son mayores a 100 muestras, se utiliza la función “spline” para reducirlas y unificalas a un tamaño igual a 100 muestras. Se usa luego CDTW para comparar las subtarea obtenida φ con las plantillas:

El índice correspondiente al menor valor del vector s obtenido con (2), suministra la información de que plantilla tiene la mayor similitud con la subtarea de prueba. Para un uso posterior por la red de Petri, a cada plantilla se le estima el modelo GMM.

2.3 Fase de Generación Automática de la Red de Petri

Una red de Petri  [15], es un grafo dirigido que sirve para modelar el funcionamiento de un sistema. Se compone de lugares P, transiciones T y arcos que unen los lugares con las transiciones. La matriz de incidencia contiene información del conexionado de los lugares.

 A partir de una lista de etiquetas obtenidas por segmentación de la tarea (plan), una función genera de manera automática dos archivos de texto, el primero es el archivo de equivalencias, que contiene los vínculos de etiquetas con los lugares P y las transiciones T, un ejemplo se muestra a continuación:

P1: inicio;
P2: fin_Tomar;
T: Tomar_Herramienta;

El segundo, describe la red de Petri, este archivo se compone de un encabezado, la lista de lugares, la lista de transiciones y la estructura de la red. Por ejemplo, la transición T1 tiene como entrada el lugar P1 y como salida el lugar P2:

Structure:
T1: (P1), (P2) ;

Los pesos de los arcos de entrada a una transición, permiten construir la matriz de incidencia previa y los pesos de los arcos de salida de una transición, permiten construir la matriz de incidencia posterior. La matriz de incidencia (3), se arma a partir de las matrices de incidencia previa y posterior:

2.4 Fase de Ejecución de la Red

Para la ejecución de la red, se utiliza la regla de evolución del marcado [16]. Dados los elementos de la red (lugares, transiciones), la secuencia de disparos y la matriz de incidencia, la regla de evolución del marcado es:

en la cual Mk (4) es el marcado alcanzado con el vector de disparos μk, que consiste en un vector con ceros en las transiciones que no se disparan y uno en la que se dispara en un momento dado. Con lo anterior la red se ejecuta con el Algoritmo 1, donde nd es el número de disparos y σ (5) es la secuencia de disparos en formato de cadena de caracteres, por ejemplo:

Algoritmo 1: Ejecución Red de Petri
Parámetros de entrada: M0,C, σ
for k=1 to nd{
μk ←convierte_sequencia_a_vector(σ,k)
ejecuta_accion(Mk-1)
Mk= Mk-1 + Cμk}

En su forma simple la función “ejecuta_accion” encuentra la acción a ejecutar y con este dato, toma el modelo GMM de cada plantilla en el espacio de articulación y lo reproduce usando GMR (del inglés Gaussian Mixture Regression), generando la trayectoria que ejecuta el brazo robótico.

Como pueden existir diferencias entre los valores finales e iniciales entre las trayectorias de articulación, lo cual crea cambios bruscos, las plantillas se conectaron usando una función “spline” entre los puntos finales de cada plantilla, con los iniciales de la plantilla siguiente.

2.5 Red de Petri con Capacidades de Variación en la Posición de los Objetos

Dado que los parámetros de la tarea se estiman en el espacio de la tarea, para la estimación del modelo TPGMM se transformaron las demostraciones del espacio de articulación al espacio de la tarea, para lo cual se empleó un modelo cinemático directo del robot. Se describe brevemente el modelo de mezcla de gaussianas parametrizado en la tarea y las modificaciones que permiten ahora, a la red de Petri, emplear tanto modelos GMM como modelos TPGMM.

Calinon y otros en 2012 [3], presentan el modelo de mezcla de gaussianas parametrizado en la tarea. Para la estimación del modelo se parte de M demostraciones, Np parámetros de la tarea {b.A} (marcos de referencia de objetos relacionados con la tarea), obteniendo un modelo conformado por coeficientes de mezcla,  vector de centros y las matrices de covarianza, una descripción más completa, puede encontrarse Hoyos y otros [17]. En la reproducción del modelo se emplea GMR parametrizado en la tarea, a este se le suministra el o los nuevos parámetros de la tarea, la pose inicial del efector final y el eje de tiempos de las trayectorias, regresando la nueva trayectoria cartesiana.

2.6 Pasando de Modelos GMM a Modelos TPGMM

Además de los modelos de las plantillas, al programa se le suministran el modelo TPGMM estimado y las demostraciones en el espacio de articulación q correspondientes a las cartesianas usadas para el TPGMM, una función que emplea CDTW, compara ahora las trayectorias de cada plantilla con las trayectorias de articulación demostradas usadas para el TPGMM y la de mayor similitud indica que en vez de la plantilla, se debe emplear el modelo TPGMM (Ver Algoritmo 2). Una nueva versión de la función ejecuta_accion, genera ahora las trayectorias de articulación, empleando los modelos de las plantillas cuando no encuentra similitud, y el o los modelos TPGMM en el caso contrario.  La respuesta del modelo TPGMM, es convertida a trayectorias de articulación usando una función de cinemática inversa, que emplea una red neuronal ELM (del inglés Extreme Learning Machine), como fue presentado en [18].

Algoritmo 2: Encuentra el índice del modelo a cambiar de GMM a TPGMM

Parámetros de entrada: θj, q, m, ns
Parámetros de salida: índice
err ←0,
for j=1 to ns
for k=1 to m
errj ← errj + cdtw(qk, θj,k)
[ mínimo, índice]←min(err)

3. Resultados y Discusión

En esta sección se describe el experimento de la tarea de roscado usando un robot de fabricación propia, el roscado es emulado ya que no se emplea una tuerca real. Luego se presentan resultados de la técnica con la red de Petri y GMM, y por último se presentan los resultados de la misma red pero al agregar el modelo TPGMM.

3.1 Detalles del Brazo Robot

En la Fig. 3a se muestra el brazo de cuatro grados de libertad utilizado, este es construido con servomotores dynamixel. Estos servomotores tienen dos modos de funcionamiento: i) como sensor de articulación o ii) como servomotor, en modo sensor es posible capturar los movimientos articulares del brazo, al ser manipulado por una persona durante la realización de una tarea (aprendizaje kinestático), en modo servomotor se envía desde el computador los valores de articulación, que el servomotor realiza. El conjunto de servomotores, se manejó para ambos modos con ROS Fuerte [19].

En la Tabla 1, se presentan los valores Denavit-Hartenberg correspondientes a la cinemática directa del brazo robótico empleado en el experimento.

Usando el modelo cinemático del brazo (Tabla 1), y empleando un modelo de seis grados (qα y qb no varían), las demostraciones son transformadas del espacio de articulación al espacio de la tarea (x,y,z, α), donde α es un ángulo de orientación.

3.2 Experimento

Como en [17] ya fue mostrada la capacidad de la técnica de TPGMM de lograr la orientación de la llave para casar en la tuerca, en este trabajo se pretende mostrar que es posible emplear TPGMM en conjunto con redes de Petri, para realizar tareas complejas donde pueden variar las posiciones y orientaciones de los objetos.

En la Fig. 4 se muestran imágenes de la secuencia de la tarea de apretar una tuerca, la cual se compone de las siguientes subtareas: Tomar la Herramienta (TH), Ir a la Tuerca (IT), Apretar (AP), Regresar la Herramienta a su posición inicial (RH), Regresar el Efector final a su posición inicial (RE). Se emplearon 20 demostraciones de la tarea completa, descrita por las cinco acciones anteriores.

3.3 Resultados con la red de Petri

Las cinco plantillas (TH, IT, AP, RH, RE) que se requieren para la identificación de cada subtarea, se obtuvieron a partir de una de las demostraciones, segmentando de manera manual. En la Tabla 2 se muestran el número de ocurrencias resultado de la identificación de cada subtarea por la técnica, el porcentaje de identificación positivo es del 85%, en la Fig. 5, se muestra un ejemplo del resultado de la segmentación de una de las demostraciones. Donde q1 y q3 están en línea continua, q2 y q4 en línea punteada, en Us los cuadrados en color gris y la equis en negro, indican el inicio y fin de una subtarea.

Como la identificación de las subtareas es menor al 100%, se emplean cuatro demostraciones de la tarea completa, para obtener una secuencia general o plan, para esto una función busca la máxima ocurrencia de la subtarea en una ubicación de la secuencia en las cuatro demostraciones de la tarea.

Con la secuencia generalizada, se obtiene la red de Petri empleando el Algoritmo 1, presentado en la Sección 2, del cual se presentan listados de la red (Tabla 3a) y etiquetas (Tabla 3b).

3.4 Resultados de agregar el modelo TPGMM a la red de Petri

Según lo presentado, se agregó la capacidad de variación en la posición del soporte de la llave. En la Fig. 6 se muestran cuatro de las seis demostraciones de la subtarea de tomar la herramienta al variar la posición del soporte de la llave (Fig. 7). Con estas se estima un modelo TPGMM de 4 gaussianas y dos parámetros de la tarea (pose inicial de la punta del brazo y pose final de la punta al tomar la herramienta).

Para obtener los parámetros de la tarea se empleó un procedimiento similar al empleado en [17], en la Fig. 6 se muestran los puntos p1 y p2 para el parámetro de la tarea final. En el caso de la estimación p2 se obtiene tres muestras desplazado del punto inicial o final. Con estos puntos y el procedimiento comentado, se emplean las siguientes ecuaciones:

para el cálculo de A usando (6), solo se usan los valores de posición cartesiana.

En el caso de reproducción de nuevas trayectorias, el punto p2, se halla de manera geométrica, dado un punto final p1, este se traslada una distancia perpendicular al plano YZ. Las trayectorias respuesta en línea gruesa, usando el modelo TPGMM, para un parámetro de la tarea central al de las cuatro primeras demostraciones, son mostradas en la Fig. 8

Las trayectorias de articulación de la secuencia de la tarea completa para un tramo de 40 muestras y dos posiciones diferentes del soporte, se presentan en la Fig. 9 Línea continua en gris, trayectorias de articulación sin usar TPGMM. Línea negra con triángulos, trayectoria de articulación para la posición del soporte número 2. Línea negra continua, trayectoria de articulación para la posición 4.

En la Fig. 9 es posible observar cómo en la muestra 20 cada valor de articulación es distinto, debido a que la variación de posición de la llave conlleva una variación en el valor de articulación respectivo, de la muestra 20 a la 28 se tiene una línea recta, la cual es la respuesta de la función "spline" que trata de suavizar el cambio entre subtareas, de la 28 en adelante se tienen las respuestas de los modelos GMM de las plantillas.

En la Tabla 4 se presenta una lista de otras técnicas existentes, de las cuales solo una generaliza para múltiples parámetros por subtarea y lo hace de manera parcial, ya que emplea la técnica de PHMM, que no responde tan bien como TPGMM, como se mostró en [20]. Además, consideramos que la técnica propuesta en este trabajo es mucho más simple de implementar.

4. Conclusiones

Se presentó una técnica que combina redes de Petri y modelos de mezcla de gaussianas parametrizados en la tarea que permite programar por demostración a un robot una tarea compleja, aunque aquí se presentó la aplicación para el manejo de una herramienta, esta podría ser usada en tarea como ensamblado donde varíen las posiciones o tamaños de los objetos, o en labores domésticas.

Dado que la segmentación de la tarea de una sola demostración no garantiza el cien por ciento en la identificación de las subtareas y obtención de la secuencia o plan, es necesario emplear cuatro demostraciones completas.

A partir del plan se genera la red de Petri en forma de listado, con esta, la matriz de incidencia y los modelos de las plantillas, es posible reproducir la tarea nuevamente. Al cambiar modelos GMM por modelos TPGMM, se logra la flexibilidad necesaria en la ejecución de la tarea ante variaciones de posición de los objetos, aunque solo se agregó un modelo TPGMM, es simple agregar más modelos en el desarrollo de la tarea.

Como trabajo futuro se planea mejorar la forma de agregar el modelo TPGMM, de tal manera que las demostraciones parámetro de entrada a la segmentación de la tarea, contengan las variaciones de posición de los objetos y que además esta sea obtenida empleando técnicas de visión de máquina.

Referencias

[1] B. Aude, S. Calinon, R. Dillmann, and S. Schaal, “Robot Programming by Demonstration,” in Springer: Handbook of Robotics, B. Siciliano and O. Kathib, Eds. Springer, 2008, pp. 1371–1394.         [ Links ]

[2] A. Ude, A. Gams, T. Asfour, and J. Morimoto, “Task-Specific Generalization of Discrete and Periodic Dynamic Movement Primitives,” IEEE Trans. Robot., vol. 26, no. 5, pp. 800-815, Oct. 2010.         [ Links ]

[3] Sylvain Calinon, Z. Li, T. Alizadeh, Nikos G. Tsagarakis, and D. Caldwell, “Statistical dynamical systems for skills acquisition in humanoids,” in 8th IEEE-RAS International Conference on Humanoid Robots, 2012.         [ Links ]

[4] S. Niekum, S. Osentoski, G. Konidaris, and A. G. Barto, “Learning and generalization of complex tasks from unstructured demonstrations,” in 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2012, pp. 5239-5246.         [ Links ]

[5] V. Kruger, D. Herzog, S. Baby, A. Ude, and D. Kragic, “Learning Actions from Observations,” IEEE Robot. Autom. Mag., vol. 17, no. 2, pp. 30-43, Jun. 2010.         [ Links ]

[6] Xiaobu Yuan, “An interactive approach of assembly planning,” IEEE Trans. Syst. Man, Cybern. - Part A Syst. Humans, vol. 32, no. 4, pp. 522-526, Jul. 2002.         [ Links ]

[7] J. Aleotti, S. Caselli, and M. Reggiani, “Toward programming of assembly tasks by demonstration in virtual environments,” in The 12th IEEE International Workshop on Robot and Human Interactive Communication, 2003. Proceedings. ROMAN 2003., 2003, pp. 309-314.         [ Links ]

[8] N. Dantam, I. Essa, and M. Stilman, “Linguistic transfer of human assembly tasks to robots,” in 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2012, pp. 237-242.         [ Links ]

[9] D. Martinez, G. Alenya, P. Jimenez, C. Torras, J. Rossmann, N. Wantia, E. E. Aksoy, S. Haller, and J. Piater, “Active learning of manipulation sequences,” in 2014 IEEE International Conference on Robotics and Automation (ICRA), 2014, pp. 5671-5678.         [ Links ]

[10] G. Chang and D. Kulic, “Robot task error recovery using Petri nets learned from demonstration,” in 2013 16th International Conference on Advanced Robotics (ICAR), 2013, pp. 1-6.         [ Links ]

[11] S. Niekum, S. Chitta, B. Marthi, S. Osentoski, and A. G. Barto, “Incremental Semantically Grounded Learning from Demonstration,” in Robotics: Science and Systems, 2013.         [ Links ]

[12] R. Zollner, O. Rogalla, M. Enrenmann, and R. Dillmann, “Mapping Complex Tasks to Robots: Programming by Demonstration in Real-World Environments,” Adv. Human-Robot Interact., vol. 14, pp. 119-136, 2005.         [ Links ]

[13] N. Abdo, H. Kretzschmar, L. Spinello, and C. Stachniss, “Learning manipulation actions from a few demonstrations,” in 2013 IEEE International Conference on Robotics and Automation, 2013, pp. 1268-1275.         [ Links ]

[14] R. Cubek, W. Ertel, and G. Palm, “High-level learning from demonstration with conceptual spaces and subspace clustering,” in 2015 IEEE International Conference on Robotics and Automation (ICRA), 2015, pp. 2592–2597.         [ Links ]

[15] T. Murata, "Petri nets: Properties, analysis and applications,” Proc. IEEE, vol. 77, no. 4, pp. 541-580, Apr. 1989.         [ Links ]

[16]M. Silva, Las Redes de Petri: en la Automática y la Informática. AC, 1985.         [ Links ]

[17] J. Hoyos-Gutiérrez, C. Peña-Solórzano, C. Garzón-Castro, and F. Prieto-Ortiz, “Hacia el Manejo de una herramienta por un robot NAO usando programación por demostración,” Tecno Lógicas, vol. 17, no. 33, pp. 65-76, 2014.         [ Links ]

[18] J. Hoyos, F. Prieto, C. Pena, E. Morales, and M. Perez-Cisneros, “Reaching New Positions Using an Extreme Learning Machine in Programming by Demonstration,” in 2013 Latin American Robotics Symposium and Competition, 2013, pp. 100–105.         [ Links ]

[19] M. Quigley, K. Conley, B. P. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and A. Y. Ng, “ROS: an open-source Robot Operating System,” in ICRA Workshop on Open Source Software, 2009.         [ Links ]

[20] S. Calinon, T. Alizadeh, and D. G. Caldwell, “On improving the extrapolation capability of task-parameterized movement models,” in 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2013, pp. 610-616.         [ Links ]

Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License