<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0123-7799</journal-id>
<journal-title><![CDATA[TecnoLógicas]]></journal-title>
<abbrev-journal-title><![CDATA[TecnoL.]]></abbrev-journal-title>
<issn>0123-7799</issn>
<publisher>
<publisher-name><![CDATA[Instituto Tecnológico Metropolitano - ITM]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0123-77992016000100007</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Programación por Demostración de la Secuencia de Apretar una Tuerca Admitiendo Variaciones en Posición de la Llave]]></article-title>
<article-title xml:lang="en"><![CDATA[Programming by Demonstration of the Sequence of Tightening a Nut Allowing Variations in Tool Position]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Hoyos-Gutiérrez]]></surname>
<given-names><![CDATA[José G.]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Prieto-Ortiz]]></surname>
<given-names><![CDATA[Flavio A]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad del Quindío Programa de Tecnología en Instrumentación Electrónica ]]></institution>
<addr-line><![CDATA[Armenia ]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Nacional de Colombia Facultad de Ingeniería ]]></institution>
<addr-line><![CDATA[Bogotá ]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>06</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>06</month>
<year>2016</year>
</pub-date>
<volume>19</volume>
<numero>36</numero>
<fpage>77</fpage>
<lpage>90</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0123-77992016000100007&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0123-77992016000100007&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0123-77992016000100007&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[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.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[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.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Programación por demostración de robots]]></kwd>
<kwd lng="es"><![CDATA[segmentación de tareas]]></kwd>
<kwd lng="es"><![CDATA[modelo de mezcla de gaussianas parametrizado en la tarea]]></kwd>
<kwd lng="es"><![CDATA[redes de Petri]]></kwd>
<kwd lng="en"><![CDATA[Robot programming by demonstration]]></kwd>
<kwd lng="en"><![CDATA[Task segmentation]]></kwd>
<kwd lng="en"><![CDATA[Complex tasks]]></kwd>
<kwd lng="en"><![CDATA[Task parameterized Gaussian Mixture model]]></kwd>
<kwd lng="en"><![CDATA[Petri nets]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[   <font size="2" face="verdana">     <p align="right"><b>Art&iacute;culo de investigaci&oacute;n/Research article</b></p>      <p align="center"><font size="4" face="verdana"><b>Programaci&oacute;n por Demostraci&oacute;n de la Secuencia de Apretar una Tuerca Admitiendo Variaciones en Posici&oacute;n de la Llave</b></font></p>     <p align="center"><font size="3" face="verdana"><b>Programming by Demonstration of the Sequence of Tightening a Nut Allowing Variations in Tool Position</b></font></p>      <p><b>Jos&eacute; G. Hoyos-Guti&eacute;rrez<sup>1</sup>, Flavio  A. Prieto-Ortiz<sup>2</sup></b></p>     <p><sup>1</sup>MSc. en Ingenier&iacute;a El&eacute;ctrica, Programa de Tecnolog&iacute;a en Instrumentaci&oacute;n Electr&oacute;nica,  Universidad del Quind&iacute;o, Armenia-Colombia,<a href="mailto:josegabrielh@uniquindio.edu.co">josegabrielh@uniquindio.edu.co</a></p>     <p><sup>2</sup>PhD. en Autom&aacute;tica, Facultad de Ingenier&iacute;a, Universidad Nacional de Colombia,  Bogot&aacute;-Colombia, <a href="mailto:faprieto@unal.edu.co">faprieto@unal.edu.co</a></p>     <p></p>     <p align="center">Fecha de recepci&oacute;n: 31 de julio de 2015/ Fecha de aceptaci&oacute;n: 11 de noviembre de 2015</p> <hr>     <p>Como citar / How to  cite</p>     ]]></body>
<body><![CDATA[<p>J. G. Hoyos-Guti&eacute;rrez y F. A. Prieto-Ortiz, &#147;Programaci&oacute;n por demostraci&oacute;n de la secuencia de apretar una tuerca admitiendo variaciones en posici&oacute;n de la llave&#148;, Tecno L&oacute;gicas, vol. 19, no. 36, pp. 77-90, 2016.</p> <hr>      <p><font size="3"><b>Resumen</b></font></p>     <p>Se presenta una t&eacute;cnica que permite la programaci&oacute;n por demostraci&oacute;n de un robot para que ejecute una tarea secuencial o compleja. Se utiliza una combinaci&oacute;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&oacute;n y orientaci&oacute;n de los objetos de la misma. Una t&eacute;cnica de segmentaci&oacute;n de tareas, descompone la demostraci&oacute;n en subtareas. Con la secuencia de las subtareas, se obtiene una lista de acciones (plan) y con este se genera de manera autom&aacute;tica una red de Petri. A la t&eacute;cnica tambi&eacute;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&oacute;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&oacute;n propia, el cual ejecuta la tarea de tomar, transportar una llave y apretar una tuerca, se ilustra el desempe&ntilde;o de la t&eacute;cnica a trav&eacute;s de gr&aacute;ficas.</p>     <p><b>Palabras clave: </b>Programaci&oacute;n  por demostraci&oacute;n de robots, segmentaci&oacute;n  de tareas, modelo  de mezcla de gaussianas parametrizado en la tarea, redes  de Petri.</p> <hr>     <p><font size="3"><b>Abstract</b></font></p>     <p>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.</p>     <p><b>Keywords: </b>Robot programming by demonstration, Task  segmentation, Complex  tasks, Task  parameterized Gaussian Mixture model, Petri nets.</p> <hr>      <p></p>     <p><font size="3"><b>1. Introducci&oacute;n</b></font></p>     <p>La programaci&oacute;n por demostraci&oacute;n (PpD) es una t&eacute;cnica que permite a un robot  aprender la realizaci&oacute;n de una tarea a trav&eacute;s de la demostraci&oacute;n de la misma  por parte de un humano &#091;1&#093;. Se puede aplicar en entornos poco  estructurados, porque permite que un usuario ense&ntilde;e f&aacute;cilmente nuevas tareas a  un robot sin necesidad de conocimientos en programaci&oacute;n.&nbsp; 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&oacute;n b&aacute;sica como por ejemplo  operaciones de manipulaci&oacute;n o transporte; una tarea compleja, es una secuencia  de habilidades o subtareas.    ]]></body>
<body><![CDATA[<br> Algunos  de los retos en PpD en los que se investiga actualmente son: i) T&eacute;cnicas que  permitan generar nuevas trayectorias que guardan similitud con otras que fueron  demostradas &#091;2&#093;, &#091;3&#093;, y ii) T&eacute;cnicas que permiten  programar tareas complejas &#091;4&#093;, &#091;5&#093;. En este art&iacute;culo, se presenta una  combinaci&oacute;n de los dos temas. </p>      <p>El modelo  de mezcla de gausianas GMM (del ingl&eacute;s Gaussian Mixture Models) es un modelo  probabil&iacute;stico, que permite modelar trayectorias en el tiempo con unas pocas  gaussianas. Una versi&oacute;n mejorada llamado modelo de mezcla de gaussianas parametrizado  en la tarea (en ingl&eacute;s &#147;Task Parameterized Gaussian Mixture Model&#148; que en este documento  se abrevia como: TPGMM), permite la generaci&oacute;n de nuevas trayectorias. Esta  mejora fue propuesta por Calinon y otros &#091;3&#093;, 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&eacute;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.&nbsp; A cambio de  representar cada trayectoria como un modelo diferente, esta t&eacute;cnica, se basa en  un solo modelo que abarca las diferentes trayectorias como funci&oacute;n de las  variables de la tarea, el modelo se fundamenta en las propiedades del producto  de gaussianas.</p>      <p>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&oacute;n, realizar la operaci&oacute;n de roscado o desenroscado,  regresar la herramienta a su posici&oacute;n inicial. El manejo de herramientas,  permitir&iacute;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&oacute;n de la demostraci&oacute;n en subtareas. Para esto se  utilizan t&eacute;cnicas de segmentaci&oacute;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&oacute;n simb&oacute;lica, gram&aacute;tica de  contexto libre, aut&oacute;matas de estado finito y redes de Petri.</p>      <p>La  programaci&oacute;n por demostraci&oacute;n de la tarea de manejo de la herramienta hace  necesario una t&eacute;cnica que coordine la ejecuci&oacute;n de las subtareas (ej. red de  Petri). Adem&aacute;s, que permita variar la posici&oacute;n o trayectorias realizadas, al  variar la posici&oacute;n de la tuerca, para ello se emplea TPGMM, para generar nuevas  trayectorias. El aporte realizado es la combinaci&oacute;n de las t&eacute;cnicas de red de  Petri y TPGMM en la programaci&oacute;n de tareas complejas con generaci&oacute;n de nuevas  trayectorias.</p>      <p> 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 &#091;6&#093;. El proceso total de ensamble se  puede dividir en tareas o sub-ensambles. A partir de la segmentaci&oacute;n de la  tarea o de extraer la secuencia de acciones, se genera la representaci&oacute;n simb&oacute;lica  de la secuencia, se ha usado: gram&aacute;tica como en &#091;7&#093;-&#091;9&#093;, grafos como en &#091;10&#093;, &#091;11&#093;, o modelos ocultos de Markov &#091;5&#093;.</p>     <p> En 2005 Zollner y otros &#091;12&#093;, a partir de una sola demostraci&oacute;n de  una tarea compleja, generan un programa de esta. Su ventaja es que requiere una  sola demostraci&oacute;n, y como desventajas est&aacute;n el que requiere la definici&oacute;n de  reglas heur&iacute;sticas para poder generalizar posiciones, esto &uacute;ltimo solo se hace  para cambios de posici&oacute;n y forma de los objetos, y no para la orientaci&oacute;n.</p>      <p> En 2010 Kruger y otros &#091;5&#093;  presentan una t&eacute;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&eacute;tricos (PHMM por sus siglas en  ingl&eacute;s), adem&aacute;s para la detecci&oacute;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&oacute;n del  movimiento de los objetos para separar las acciones del humano en primitivas.  Los autores no ahondan en el tema de la obtenci&oacute;n de la gram&aacute;tica que se genera a partir de la tarea.</p>     <p>Dantam y  otros en 2012 &#091;8&#093;, usan gram&aacute;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&oacute;digos que luego el robot reproduce, pero no aborda los problemas  de forma de agarre y fuerzas que se presentan, adem&aacute;s el sistema aprende una  sola secuencia de ensamble.</p>     <p>En 2012  Niekum y otros &#091;4&#093; plantean una t&eacute;cnica para resolver  tareas complejas. Primero segmentan la tarea con BP-AR-HMM (del ingl&eacute;s Beta  Process Auto Regresive Hidden Markov Models). Luego las subtareas son modeladas  usando primitivas de movimiento din&aacute;mico (DMP) y vinculadas a un marco de referencia.  Una mejora al anterior, fue presentada por los mismos autores en 2013&nbsp; &#091;11&#093;, donde emplearon un aut&oacute;mata de  estados finitos para la tarea de enroscar la pata a una mesa. A trav&eacute;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&oacute;mata de estados finitos, las cuales luego son  condensadas con las ramas iniciales en sus tramos similares. Las anteriores  t&eacute;cnicas, pueden generalizar en cada subtarea, un punto inicial o final, a  diferencia de la t&eacute;cnica aqu&iacute; propuesta que al emplear TPGMM puede tener  m&uacute;ltiples par&aacute;metros de la tarea.</p>     <p>Las redes  de Petri son empleadas por Chang y Kulic en 2013&nbsp; &#091;10&#093;, para tomar, mover, y &nbsp;&nbsp;&nbsp;un  sistema que genera una representaci&oacute;n simb&oacute;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&aacute; en que la  percepci&oacute;n de las precondiciones debe ser definida manualmente.</p>     ]]></body>
<body><![CDATA[<p> En 2014  Martinez y otros&nbsp; &#091;9&#093;, emplean una gram&aacute;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&uacute;n las  pre-condiciones y efectos deseados m&aacute;s adecuados, el algoritmo decide que  acci&oacute;n ejecutar. Su ventaja est&aacute; en que es tolerante a variaciones de la  percepci&oacute;n de los movimientos, partes no identificadas y errores de inserci&oacute;n.</p>     <p>Cubek y  otros en 2015 &#091;14&#093;, presentaron una t&eacute;cnica que realiza  la tarea de tomar y poner m&uacute;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&oacute;n.</p>     <p> El  documento presenta la siguiente estructura: en la Secci&oacute;n 2 se presenta la  t&eacute;cnica propuesta, la cual obtiene la red de Petri y los modelos de mezcla de  gaussianas parametrizados en la tarea. Posteriormente en la Secci&oacute;n 3, se  presenta el experimento realizado, sus resultados y discusi&oacute;n. Finalmente se  presentan las conclusiones.</p>      <p></p>     <p><font size="3"><b>2. Metodolog&iacute;a</b></font></p>     <p>En la <a href="#Figura1">Fig. 1</a> se muestran las tres fases que permiten obtener la red de Petri (RdP) &#091;15&#093; a partir de demostraciones de la  tarea. En la fase de demostraci&oacute;n y segmentaci&oacute;n, se obtienen las trayectorias  de las articulaciones a partir de una o varias demostraciones de la misma  tarea, luego un algoritmo de segmentaci&oacute;n de la tarea, permite generar un plan  o lista de acciones. En la fase de generaci&oacute;n de la red de Petri, el plan es  convertido a una lista que describe la red, tambi&eacute;n en esta fase se genera la  matriz de incidencia de la RdP. Por &uacute;ltimo, en la fase de ejecuci&oacute;n de la red,  la lista que describe la RdP realiza la secuencia de la tarea.</p>      <p align="center"><a name="Figura1"></a><img src="/img/revistas/teclo/v19n36/v19n36a07fig01.jpg"></p>      <p><i><b>2.1 Segmentaci&oacute;n  de la Tarea</b></i></p>     <p>La  segmentaci&oacute;n de la tarea permite descomponer la demostraci&oacute;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&oacute;n o etiqueta, por ejemplo: agarrar la llave. Para saber a qu&eacute;  etiqueta corresponde un tramo de la tarea completa, se compara este con  plantillas obtenidas tambi&eacute;n por demostraci&oacute;n, la comparaci&oacute;n se realiza usando  CDTW (del ingl&eacute;s Continous Dynamic Time Warping), el cual es un m&eacute;todo que  calcula la similitud entre dos secuencias.</p>     <p>El  proceso de segmentaci&oacute;n, se divide en dos: i) Obtenci&oacute;n de los tramos de  trayectorias (subtareas) y ii) Etiquetado de las subtareas. La primera parte a  su vez, se realiza a trav&eacute;s de los siguientes pasos:</p>      ]]></body>
<body><![CDATA[<p>Filtrado  de las trayectorias de la tareas.    <br>  C&aacute;lculo  de la suma del cuadrado de las velocidades de las articulaciones.    <br>  Obtenci&oacute;n  de los tramos que sobrepasan el umbral.    <br>  Fusi&oacute;n de  tramos de corta duraci&oacute;n.    <br>  Obtenci&oacute;n  de flancos de inicio y fin de cada subtarea.</p>     <p>Dadas m  articulaciones q, donde cada articulaci&oacute;n tiene n muestras, se filtran usando  un filtro de promedio m&oacute;vil de 4 muestras, para luego calcular la suma del  cuadrado de las velocidades con:</p>      <p align="center"><img src="/img/revistas/teclo/v19n36/v19n36a07ec01.jpg"></p>     <p></p>      <p>La se&ntilde;al v<sub>s<sup></sup></sub> (1) es  nuevamente filtrada con un filtro de promedio m&oacute;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 <a href="#Figura2">Fig. 2</a>, se muestra un ejemplo de las trayectorias de cuatro  articulaciones y la suma de velocidades obtenida. Ejes q<sub>1<sup></sup></sub> a q<sub>4<sup></sup></sub> corresponden a las cuatro articulaciones del brazo. En la parte  inferior, se muestra la suma de velocidades de las articulaciones (l&iacute;nea  continua) y en l&iacute;nea a tramos la se&ntilde;al de pulsos resultado de aplicar el  umbral. Las zonas que sobrepasan el umbral, son lo que se denomina pulsos (en  l&iacute;nea punteada), a los cuales se les realiza una fusi&oacute;n, que agrupa pulsos  cercanos y cuyo tiempo sea menor a 20 muestras, dejando un solo pulso,  denominado u<sub>s<sup></sup></sub>. El paso siguiente es la obtenci&oacute;n de los  flancos de subida y bajada, con los que se obtiene el inicio (flanco subida) y  fin (flanco bajada) de cada subtarea.</p>      <p align="center"><a name="Figura2"></a><img src="/img/revistas/teclo/v19n36/v19n36a07fig02.jpg"></p>      ]]></body>
<body><![CDATA[<p><i><b>2.2 Etiquetado  de las Subtareas</b></i></p>     <p>Para el  etiquetado, se obtienen por demostraci&oacute;n n<sub>s<sup></sup></sub> subtareas plantilla &theta;, que se etiquetan manualmente y se llevan,  todas, a un tama&ntilde;o de 100 muestras. Por cada subtarea de la tarea completa, se  realizan los siguientes pasos:</p>     <p>Cada  subtarea de la tarea completa se lleva a un tama&ntilde;o de 100 muestras.    <br> Se  calcula el error por CDTW entre las plantillas y la subtarea.    <br> Se  selecciona la plantilla de mayor similitud.</p>     <p>Dado que  la mayor&iacute;a de las subtareas son mayores a 100 muestras, se utiliza la funci&oacute;n &#147;spline&#148;  para reducirlas y unificalas a un tama&ntilde;o igual a 100 muestras. Se usa luego  CDTW para comparar las subtarea obtenida &phi; con las plantillas:</p>      <p align="center"><img src="/img/revistas/teclo/v19n36/v19n36a07ec02.jpg"></p>     <p></p>      <p>El &iacute;ndice  correspondiente al menor valor del vector s obtenido con (2), suministra la informaci&oacute;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.</p>      <p><i><b>2.3 Fase de Generaci&oacute;n Autom&aacute;tica de la Red de Petri</b></i></p>      ]]></body>
<body><![CDATA[<p>Una red de Petri&nbsp; &#091;15&#093;, 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&oacute;n del conexionado de los lugares.</p>   &nbsp;A partir de una lista de etiquetas obtenidas  por segmentaci&oacute;n de la tarea (plan), una funci&oacute;n genera de manera autom&aacute;tica  dos archivos de texto, el primero es el archivo de equivalencias, que contiene  los v&iacute;nculos de etiquetas con los lugares P y las transiciones T, un ejemplo se  muestra a continuaci&oacute;n:</p>      <p>P1:  inicio;    <br>   P2:  fin_Tomar;    <br>   T:  Tomar_Herramienta;</p>      <p>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&oacute;n T1 tiene como entrada el lugar P1 y como salida el lugar P2:</p>      <p>Structure:    <br>   T1: (P1), (P2) ; </p>      <p>Los pesos  de los arcos de entrada a una transici&oacute;n, permiten construir la matriz de incidencia previa y los pesos de los arcos de salida de una transici&oacute;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:</p>      <p align="center"><img src="/img/revistas/teclo/v19n36/v19n36a07ec03.jpg"></p>     <p></p>      ]]></body>
<body><![CDATA[<p><i><b>2.4 Fase de Ejecuci&oacute;n de la Red</b></i></p>     <p>Para la  ejecuci&oacute;n de la red, se utiliza la regla de evoluci&oacute;n del marcado &#091;16&#093;. Dados los elementos de la red  (lugares, transiciones), la secuencia de disparos y la matriz de incidencia, la  regla de evoluci&oacute;n del marcado es:</p>      <p align="center"><img src="/img/revistas/teclo/v19n36/v19n36a07ec04.jpg"></p>     <p></p>      <p>en la cual M<sub>k<sup></sup></sub> (4) es el marcado alcanzado con el vector de disparos &mu;<sub>k<sup></sup></sub>, 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 n<sub>d<sup></sup></sub> es el n&uacute;mero de disparos y &sigma; (5) es la secuencia de disparos en formato de cadena de caracteres, por ejemplo:</p>      <p align="center"><img src="/img/revistas/teclo/v19n36/v19n36a07ec05.jpg"></p>     <p></p>      <p>Algoritmo 1: Ejecuci&oacute;n Red de Petri    <br>   Par&aacute;metros de entrada: M<sub>0<sup></sup></sub>,C, &sigma;    <br>   for k=1 to n<sub>d<sup></sup></sub>{    ]]></body>
<body><![CDATA[<br>   &mu;<sub>k<sup></sup></sub> &larr;convierte_sequencia_a_vector(&sigma;,k)    <br>   ejecuta_accion(M<sub>k-1<sup></sup></sub>)    <br> M<sub>k<sup></sup></sub>= M<sub>k-1<sup></sup></sub> + C&mu;<sub>k<sup></sup></sub>}</p>      <p>En su  forma simple la funci&oacute;n &#147;ejecuta_accion&#148; encuentra la acci&oacute;n a ejecutar y con  este dato, toma el modelo GMM de cada plantilla en el espacio de articulaci&oacute;n y lo reproduce usando GMR (del ingl&eacute;s Gaussian Mixture Regression), generando la  trayectoria que ejecuta el brazo rob&oacute;tico.</p>     <p>Como  pueden existir diferencias entre los valores finales e iniciales entre las  trayectorias de articulaci&oacute;n, lo cual crea cambios bruscos, las plantillas se  conectaron usando una funci&oacute;n &#147;spline&#148; entre los puntos finales de cada  plantilla, con los iniciales de la plantilla siguiente.</p>      <p><i><b>2.5 Red de Petri con Capacidades de Variaci&oacute;n en la Posici&oacute;n de los Objetos</b></i></p>     <p>Dado que los par&aacute;metros de la tarea se estiman en el espacio de la tarea, para la  estimaci&oacute;n del modelo TPGMM se transformaron las demostraciones del espacio de  articulaci&oacute;n al espacio de la tarea, para lo cual se emple&oacute; un modelo  cinem&aacute;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.</p>  Calinon y  otros en 2012 &#091;3&#093;, presentan el modelo de mezcla de  gaussianas parametrizado en la tarea. Para la estimaci&oacute;n del modelo se parte de M demostraciones, N<sub>p<sup></sup></sub> par&aacute;metros de la tarea {<b>b.A</b>} (marcos de referencia de objetos relacionados  con la tarea), obteniendo un modelo conformado por coeficientes de mezcla,&nbsp; vector de centros y las matrices de  covarianza, una descripci&oacute;n m&aacute;s completa, puede encontrarse Hoyos y otros &#091;17&#093;. En la reproducci&oacute;n del modelo se  emplea GMR parametrizado en la tarea, a este se le suministra el o los nuevos  par&aacute;metros de la tarea, la pose inicial del efector final y el eje de tiempos  de las trayectorias, regresando la nueva trayectoria cartesiana.</p>       <p><i><b>2.6 Pasando de Modelos GMM a Modelos TPGMM</b></i></p>      <p>Adem&aacute;s de  los modelos de las plantillas, al programa se le suministran el modelo TPGMM  estimado y las demostraciones en el espacio de articulaci&oacute;n q correspondientes  a las cartesianas usadas para el TPGMM, una funci&oacute;n que emplea CDTW, compara  ahora las trayectorias de cada plantilla con las trayectorias de articulaci&oacute;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&oacute;n de la funci&oacute;n ejecuta_accion, genera ahora las trayectorias de  articulaci&oacute;n, empleando los modelos de las plantillas cuando no encuentra  similitud, y el o los modelos TPGMM en el caso contrario.&nbsp; La respuesta del modelo TPGMM, es convertida  a trayectorias de articulaci&oacute;n usando una funci&oacute;n de cinem&aacute;tica inversa, que  emplea una red neuronal ELM (del ingl&eacute;s Extreme Learning Machine), como fue  presentado en &#091;18&#093;.</p>  <strong>Algoritmo 2:</strong> Encuentra el &iacute;ndice del  modelo a cambiar de GMM a TPGMM     <p> Par&aacute;metros de entrada: &theta;<sub>j<sup></sup></sub>, <b>q</b>, m, n<sub>s<sup></sup></sub>    ]]></body>
<body><![CDATA[<br> Par&aacute;metros de salida: &iacute;ndice    <br> <b>err</b> &larr;0,    <br> for j=1 to n<sub>s<sup></sup></sub>    <br> for k=1 to m    <br> err<sub>j<sup></sup></sub> &larr; err<sub>j<sup></sup></sub> + cdtw(q<sub>k<sup></sup></sub>, &theta;<sub>j,k<sup></sup></sub>)    <br> &#091; m&iacute;nimo, &iacute;ndice&#093;&larr;min(<b>err</b>)</p>      <p><font size="3"><b>3. Resultados y Discusi&oacute;n</b></font></p>     <p>En esta  secci&oacute;n se describe el experimento de la tarea de roscado usando un robot de  fabricaci&oacute;n propia, el roscado es emulado ya que no se emplea una tuerca real.  Luego se presentan resultados de la t&eacute;cnica con la red de Petri y GMM, y por  &uacute;ltimo se presentan los resultados de la misma red pero al agregar el modelo  TPGMM.</p>      <p><i><b>3.1 Detalles del Brazo Robot</b></i></p>     <p>En la <a href="#Figura3">Fig. 3a</a> 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&oacute;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&oacute;n de una tarea (aprendizaje  kinest&aacute;tico), en modo servomotor se env&iacute;a desde el computador los valores de  articulaci&oacute;n, que el servomotor realiza. El conjunto de servomotores, se manej&oacute;  para ambos modos con ROS Fuerte &#091;19&#093;.</p>      ]]></body>
<body><![CDATA[<p align="center"><a name="Figura3"></a><img src="/img/revistas/teclo/v19n36/v19n36a07fig03.jpg"></p>      <p>En la <a href="#Tabla1">Tabla 1</a>, se presentan los valores Denavit-Hartenberg correspondientes a la  cinem&aacute;tica directa del brazo rob&oacute;tico empleado en el experimento.</p>      <p align="center"><a name="Tabla2"></a><img src="/img/revistas/teclo/v19n36/v19n36a07tab01.jpg"></p>      <p>Usando el  modelo cinem&aacute;tico del brazo (<a href="#Tabla1">Tabla 1</a>), y empleando un modelo de seis grados (q<sub>&alpha;<sup></sup></sub> y q<sub>b<sup></sup></sub> no var&iacute;an), las demostraciones son transformadas del espacio de articulaci&oacute;n al  espacio de la tarea (x,y,z, &alpha;), donde &alpha; es un &aacute;ngulo de orientaci&oacute;n.</p>      <p><i><b>3.2 Experimento</b></i></p>     <p>Como en &#091;17&#093; ya fue mostrada la capacidad de la  t&eacute;cnica de TPGMM de lograr la orientaci&oacute;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.</p>     <p>En la <a href="#Figura4">Fig. 4</a> se muestran im&aacute;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&oacute;n inicial  (RH), Regresar el Efector final a su posici&oacute;n inicial (RE). Se emplearon 20  demostraciones de la tarea completa, descrita por las cinco acciones  anteriores.</p>        <p align="center"><a name="Figura4"></a><img src="/img/revistas/teclo/v19n36/v19n36a07fig04.jpg"></p>        <p><i><b>3.3 Resultados  con la red de Petri</b></i></p>      <p>Las cinco  plantillas (TH, IT, AP, RH, RE) que se requieren para la identificaci&oacute;n de cada  subtarea, se obtuvieron a partir de una de las demostraciones, segmentando de  manera manual. En la <a href="#Tabla2">Tabla 2</a> se muestran el n&uacute;mero de ocurrencias resultado de  la identificaci&oacute;n de cada subtarea por la t&eacute;cnica, el porcentaje de identificaci&oacute;n positivo es del 85%, en la <a href="#Figura5">Fig. 5</a>, se muestra un ejemplo del  resultado de la segmentaci&oacute;n de una de las demostraciones. Donde q<sub>1<sup></sup></sub> y q<sub>3<sup></sup></sub> est&aacute;n  en l&iacute;nea continua, q<sub>2<sup></sup></sub> y q<sub>4<sup></sup></sub> en l&iacute;nea punteada, en U<sub>s<sup></sup></sub> los cuadrados en color gris y la equis en  negro, indican el inicio y fin de una subtarea.</p>     ]]></body>
<body><![CDATA[<p>Como la  identificaci&oacute;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&oacute;n busca la m&aacute;xima ocurrencia de la subtarea en una  ubicaci&oacute;n de la secuencia en las cuatro demostraciones de la tarea.</p>      <p align="center"><a name="Tabla2"></a><img src="/img/revistas/teclo/v19n36/v19n36a07tab02.jpg"></p>       <p align="center"><a name="Figura5"></a><img src="/img/revistas/teclo/v19n36/v19n36a07fig05.jpg"></p>        <p>Con la secuencia generalizada, se obtiene la red de Petri empleando el Algoritmo 1,  presentado en la Secci&oacute;n 2, del cual se presentan listados de la red (<a href="#Tabla3">Tabla 3a</a>)  y etiquetas (<a href="#Tabla3">Tabla 3b</a>).</p>        <p align="center"><a name="Tabla3"></a><img src="/img/revistas/teclo/v19n36/v19n36a07tab03.jpg"></p>       <p><i><b>3.4 Resultados de agregar el modelo TPGMM a la red de Petri</b></i></p>      <p>Seg&uacute;n lo  presentado, se agreg&oacute; la capacidad de variaci&oacute;n en la posici&oacute;n del soporte de  la llave. En la <a href="#Figura6">Fig. 6</a> se muestran cuatro de las seis demostraciones de la  subtarea de tomar la herramienta al variar la posici&oacute;n del soporte de la llave  (<a href="#Figura7">Fig. 7</a>). Con estas se estima un modelo TPGMM de 4 gaussianas y dos par&aacute;metros  de la tarea (pose inicial de la punta del brazo y pose final de la punta al  tomar la herramienta).</p>     <p> Para  obtener los par&aacute;metros de la tarea se emple&oacute; un procedimiento similar al  empleado en &#091;17&#093;, en la <a href="#Figura6">Fig. 6</a> se muestran los puntos p<sub>1<sup></sup></sub> y p<sub>2<sup></sup></sub> para  el par&aacute;metro de la tarea final. En el  caso de la estimaci&oacute;n p<sub>2<sup></sup></sub> se  obtiene tres muestras desplazado del punto inicial o final. Con estos puntos y  el procedimiento comentado, se emplean las siguientes ecuaciones:</p>      <p align="center"><img src="/img/revistas/teclo/v19n36/v19n36a07fig05.jpg"></p>     <p></p>      ]]></body>
<body><![CDATA[<p>para el c&aacute;lculo de A usando (6), solo se usan los valores de posici&oacute;n cartesiana.</p>      <p align="center"><a name="Figura6"></a><img src="/img/revistas/teclo/v19n36/v19n36a07fig06.jpg"></p>      <p align="center"><a name="Figura7"></a><img src="/img/revistas/teclo/v19n36/v19n36a07fig07.jpg"></p>      <p>En el  caso de reproducci&oacute;n de nuevas trayectorias, el punto p<sub>2<sup></sup></sub>, se halla de manera geom&eacute;trica, dado un  punto final p<sub>1<sup></sup></sub>, este se traslada una distancia  perpendicular al plano YZ. Las trayectorias respuesta en l&iacute;nea gruesa, usando  el modelo TPGMM, para un par&aacute;metro de la tarea central al de las cuatro  primeras demostraciones, son mostradas en la <a href="#Figura8">Fig. 8</a></p>      <p align="center"><a name="Figura8"></a><img src="/img/revistas/teclo/v19n36/v19n36a07fig08.jpg"></p>      <p>Las  trayectorias de articulaci&oacute;n de la secuencia de la tarea completa para un tramo de 40 muestras y dos posiciones diferentes del soporte, se presentan en la <a href="#Figura9">Fig. 9</a> L&iacute;nea continua en gris, trayectorias de articulaci&oacute;n sin usar TPGMM. L&iacute;nea  negra con tri&aacute;ngulos, trayectoria de articulaci&oacute;n para la posici&oacute;n del soporte  n&uacute;mero 2. L&iacute;nea negra continua, trayectoria de articulaci&oacute;n para la posici&oacute;n 4. </p>     <p>En la <a href="#Figura9">Fig. 9</a> es posible observar c&oacute;mo en la muestra 20 cada valor de articulaci&oacute;n es  distinto, debido a que la variaci&oacute;n de posici&oacute;n de la llave conlleva una  variaci&oacute;n en el valor de articulaci&oacute;n respectivo, de la muestra 20 a la 28 se  tiene una l&iacute;nea recta, la cual es la respuesta de la funci&oacute;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.</p>      <p align="center"><a name="Figura9"></a><img src="/img/revistas/teclo/v19n36/v19n36a07fig09.jpg"></p>      <p>En la <a href="#Tabla4">Tabla 4</a> se presenta una lista de otras t&eacute;cnicas existentes, de las cuales solo  una generaliza para m&uacute;ltiples par&aacute;metros por subtarea y lo hace de manera  parcial, ya que emplea la t&eacute;cnica de PHMM, que no responde tan bien como TPGMM,  como se mostr&oacute; en &#091;20&#093;. Adem&aacute;s, consideramos que la t&eacute;cnica  propuesta en este trabajo es mucho m&aacute;s simple de implementar.</p>       <p align="center"><a name="Tabla4"></a><img src="/img/revistas/teclo/v19n36/v19n36a07tab04.jpg"></p>      ]]></body>
<body><![CDATA[<p></p>     <p><font size="3"><b>4. Conclusiones</b></font></p>     <p>Se  present&oacute; una t&eacute;cnica que combina redes de Petri y modelos de mezcla de  gaussianas parametrizados en la tarea que permite programar por demostraci&oacute;n a  un robot una tarea compleja, aunque aqu&iacute; se present&oacute; la aplicaci&oacute;n para el  manejo de una herramienta, esta podr&iacute;a ser usada en tarea como ensamblado donde  var&iacute;en las posiciones o tama&ntilde;os de los objetos, o en labores dom&eacute;sticas.</p>     <p> Dado que  la segmentaci&oacute;n de la tarea de una sola demostraci&oacute;n no garantiza el cien por  ciento en la identificaci&oacute;n de las subtareas y obtenci&oacute;n de la secuencia o  plan, es necesario emplear cuatro demostraciones completas.</p>     <p>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&oacute;n de la tarea ante variaciones de posici&oacute;n de los  objetos, aunque solo se agreg&oacute; un modelo TPGMM, es simple agregar m&aacute;s modelos  en el desarrollo de la tarea. </p>      <p>Como  trabajo futuro se planea mejorar la forma de agregar el modelo TPGMM, de tal  manera que las demostraciones par&aacute;metro de entrada a la segmentaci&oacute;n de la  tarea, contengan las variaciones de posici&oacute;n de los objetos y que adem&aacute;s esta  sea obtenida empleando t&eacute;cnicas de visi&oacute;n de m&aacute;quina. </p>      <p></p>     <p><font size="3" face="verdana"><b>Referencias</b></font></p>     <!-- ref --><p>&#91;1&#93; B. Aude, S. Calinon, R. Dillmann, and S. Schaal, &#147;Robot Programming by Demonstration,&#148; in Springer: Handbook of Robotics, B. Siciliano and O. Kathib, Eds. Springer, 2008, pp. 1371–1394.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176742&pid=S0123-7799201600010000700001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     ]]></body>
<body><![CDATA[<!-- ref --><p>&#91;2&#93; A. Ude, A.  Gams, T. Asfour, and J. Morimoto, &#147;Task-Specific Generalization of Discrete and  Periodic Dynamic Movement Primitives,&#148; IEEE Trans. Robot., vol. 26, no. 5, pp.  800-815, Oct. 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176744&pid=S0123-7799201600010000700002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;3&#93; Sylvain Calinon, Z. Li, T. Alizadeh, Nikos G.  Tsagarakis, and D. Caldwell, &#147;Statistical dynamical systems for skills  acquisition in humanoids,&#148; in 8th IEEE-RAS International Conference on Humanoid  Robots, 2012.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176746&pid=S0123-7799201600010000700003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;4&#93; S.  Niekum, S. Osentoski, G. Konidaris, and A. G. Barto, &#147;Learning and  generalization of complex tasks from unstructured demonstrations,&#148; in 2012  IEEE/RSJ International Conference on Intelligent Robots and Systems, 2012, pp.  5239-5246.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176748&pid=S0123-7799201600010000700004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;5&#93; V. Kruger, D. Herzog, S. Baby, A. Ude, and D. Kragic,  &#147;Learning Actions from Observations,&#148; IEEE Robot. Autom. Mag., vol. 17, no. 2,  pp. 30-43, Jun. 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176750&pid=S0123-7799201600010000700005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;6&#93; Xiaobu  Yuan, &#147;An interactive approach of assembly planning,&#148; IEEE Trans. Syst. Man,  Cybern. - Part A Syst. Humans, vol. 32, no. 4, pp. 522-526, Jul. 2002.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176752&pid=S0123-7799201600010000700006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     ]]></body>
<body><![CDATA[<!-- ref --><p>&#91;7&#93; J. Aleotti, S. Caselli, and M. Reggiani, &#147;Toward  programming of assembly tasks by demonstration in virtual environments,&#148; in The  12th IEEE International Workshop on Robot and Human Interactive Communication,  2003. Proceedings. ROMAN 2003., 2003, pp. 309-314.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176754&pid=S0123-7799201600010000700007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;8&#93; N.  Dantam, I. Essa, and M. Stilman, &#147;Linguistic transfer of human assembly tasks  to robots,&#148; in 2012 IEEE/RSJ International Conference on Intelligent Robots and  Systems, 2012, pp. 237-242.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176756&pid=S0123-7799201600010000700008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;9&#93; D.  Martinez, G. Alenya, P. Jimenez, C. Torras, J. Rossmann, N. Wantia, E. E.  Aksoy, S. Haller, and J. Piater, &#147;Active learning of manipulation sequences,&#148;  in 2014 IEEE International Conference on Robotics and Automation (ICRA), 2014,  pp. 5671-5678.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176758&pid=S0123-7799201600010000700009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;10&#93; G.  Chang and D. Kulic, &#147;Robot task error recovery using Petri nets learned from  demonstration,&#148; in 2013 16th International Conference on Advanced Robotics  (ICAR), 2013, pp. 1-6.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176760&pid=S0123-7799201600010000700010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;11&#93; S.  Niekum, S. Chitta, B. Marthi, S. Osentoski, and A. G. Barto, &#147;Incremental  Semantically Grounded Learning from Demonstration,&#148; in Robotics: Science and  Systems, 2013.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176762&pid=S0123-7799201600010000700011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     ]]></body>
<body><![CDATA[<!-- ref --><p>&#91;12&#93; R.  Zollner, O. Rogalla, M. Enrenmann, and R. Dillmann, &#147;Mapping Complex Tasks to  Robots: Programming by Demonstration in Real-World Environments,&#148; Adv.  Human-Robot Interact., vol. 14, pp. 119-136, 2005.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176764&pid=S0123-7799201600010000700012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;13&#93; N. Abdo, H. Kretzschmar, L. Spinello, and C.  Stachniss, &#147;Learning manipulation actions from a few demonstrations,&#148; in 2013  IEEE International Conference on Robotics and Automation, 2013, pp. 1268-1275.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176766&pid=S0123-7799201600010000700013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;14&#93; R. Cubek, W. Ertel, and G. Palm, &#147;High-level learning from demonstration with conceptual spaces and subspace clustering,&#148; in 2015 IEEE International Conference on Robotics and Automation (ICRA), 2015, pp. 2592–2597.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176768&pid=S0123-7799201600010000700014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;15&#93; T.  Murata, "Petri nets: Properties, analysis and applications,&#148; Proc. IEEE, vol.  77, no. 4, pp. 541-580, Apr. 1989.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176770&pid=S0123-7799201600010000700015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;16&#93;M.  Silva, Las Redes de Petri: en la Autom&aacute;tica y la Inform&aacute;tica. AC, 1985.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176772&pid=S0123-7799201600010000700016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     ]]></body>
<body><![CDATA[<!-- ref --><p>&#91;17&#93; J. Hoyos-Guti&eacute;rrez, C. Pe&ntilde;a-Sol&oacute;rzano, C.  Garz&oacute;n-Castro, and F. Prieto-Ortiz, &#147;Hacia el Manejo de una herramienta por un  robot NAO usando programaci&oacute;n por demostraci&oacute;n,&#148; Tecno L&oacute;gicas, vol. 17, no.  33, pp. 65-76, 2014.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176774&pid=S0123-7799201600010000700017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;18&#93; J. Hoyos, F. Prieto, C. Pena, E. Morales, and M. Perez-Cisneros, &#147;Reaching New Positions Using an Extreme Learning Machine in Programming by Demonstration,&#148; in 2013 Latin American Robotics Symposium and Competition, 2013, pp. 100–105.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176776&pid=S0123-7799201600010000700018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;19&#93; M.  Quigley, K. Conley, B. P. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and  A. Y. Ng, &#147;ROS: an open-source Robot Operating System,&#148; in ICRA Workshop on  Open Source Software, 2009.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176778&pid=S0123-7799201600010000700019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;20&#93; S.  Calinon, T. Alizadeh, and D. G. Caldwell, &#147;On improving the extrapolation  capability of task-parameterized movement models,&#148; in 2013 IEEE/RSJ  International Conference on Intelligent Robots and Systems, 2013, pp. 610-616.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=5176780&pid=S0123-7799201600010000700020&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>  </font>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Aude]]></surname>
<given-names><![CDATA[B.]]></given-names>
</name>
<name>
<surname><![CDATA[Calinon]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Dillmann]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Schaal]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
</person-group>
<source><![CDATA[Robot Programming by Demonstration]]></source>
<year>2008</year>
<page-range>1371-1394</page-range><publisher-name><![CDATA[Handbook of Robotics]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ude]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Gams]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Asfour]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
<name>
<surname><![CDATA[Morimoto]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Task-Specific Generalization of Discrete and Periodic Dynamic Movement Primitives]]></article-title>
<source><![CDATA[IEEE Trans. Robot.]]></source>
<year>Oct.</year>
<month> 2</month>
<day>01</day>
<volume>26</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>800-815</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Calinon]]></surname>
<given-names><![CDATA[Sylvain]]></given-names>
</name>
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[Z.]]></given-names>
</name>
<name>
<surname><![CDATA[Alizadeh]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
<name>
<surname><![CDATA[Tsagarakis]]></surname>
<given-names><![CDATA[Nikos G.]]></given-names>
</name>
<name>
<surname><![CDATA[Caldwell]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Statistical dynamical systems for skills acquisition in humanoids]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ 8th IEEE-RAS International Conference on Humanoid Robots]]></conf-name>
<conf-date>2012</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Niekum]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Osentoski]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Konidaris]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[Barto]]></surname>
<given-names><![CDATA[A. G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Learning and generalization of complex tasks from unstructured demonstrations]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ IEEE/RSJ International Conference on Intelligent Robots and Systems]]></conf-name>
<conf-date>2012</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kruger]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
<name>
<surname><![CDATA[Herzog]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Baby]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Ude]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Kragic]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Learning Actions from Observations]]></article-title>
<source><![CDATA[IEEE Robot. Autom. Mag.]]></source>
<year>Jun.</year>
<month> 2</month>
<day>01</day>
<volume>17</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>30-43</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yuan]]></surname>
<given-names><![CDATA[Xiaobu]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An interactive approach of assembly planning]]></article-title>
<source><![CDATA[Part A Syst. Humans]]></source>
<year>Jul.</year>
<month> 2</month>
<day>00</day>
<volume>32</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>522-526</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Aleotti]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Caselli]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Reggiani]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Toward programming of assembly tasks by demonstration in virtual environments]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ The 12th IEEE International Workshop on Robot and Human Interactive Communication]]></conf-name>
<conf-date>2003</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dantam]]></surname>
<given-names><![CDATA[N.]]></given-names>
</name>
<name>
<surname><![CDATA[Essa]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[Stilman]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Linguistic transfer of human assembly tasks to robots]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ IEEE/RSJ International Conference on Intelligent Robots and Systems]]></conf-name>
<conf-date>2012</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Martinez]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Alenya]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[Jimenez]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Torras]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Rossmann]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Wantia]]></surname>
<given-names><![CDATA[N.]]></given-names>
</name>
<name>
<surname><![CDATA[Aksoy]]></surname>
<given-names><![CDATA[E. E.]]></given-names>
</name>
<name>
<surname><![CDATA[Haller]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Piater]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Active learning of manipulation sequences]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ IEEE International Conference on Robotics and Automation (ICRA)]]></conf-name>
<conf-date>2014</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chang]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[Kulic]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Robot task error recovery using Petri nets learned from demonstration]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ 16th International Conference on Advanced Robotics (ICAR)]]></conf-name>
<conf-date>2013</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Niekum]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Chitta]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Marthi]]></surname>
<given-names><![CDATA[B.]]></given-names>
</name>
<name>
<surname><![CDATA[Osentoski]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Barto]]></surname>
<given-names><![CDATA[A. G.]]></given-names>
</name>
</person-group>
<source><![CDATA[Incremental Semantically Grounded Learning from Demonstration]]></source>
<year>2013</year>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zollner]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Rogalla]]></surname>
<given-names><![CDATA[O.]]></given-names>
</name>
<name>
<surname><![CDATA[Enrenmann]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Dillmann]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Mapping Complex Tasks to Robots: Programming by Demonstration in Real-World Environments]]></article-title>
<source><![CDATA[Adv. Human-Robot Interact.]]></source>
<year>2005</year>
<volume>14</volume>
<page-range>119-136</page-range></nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Abdo]]></surname>
<given-names><![CDATA[N.]]></given-names>
</name>
<name>
<surname><![CDATA[Kretzschmar]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
<name>
<surname><![CDATA[Spinello]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Stachniss]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Learning manipulation actions from a few demonstrations]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ 2013 IEEE International Conference on Robotics and Automation]]></conf-name>
<conf-date>2013</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Cubek]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Ertel]]></surname>
<given-names><![CDATA[W.]]></given-names>
</name>
<name>
<surname><![CDATA[Palm]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[High-level learning from demonstration with conceptual spaces and subspace clustering]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ 2015 IEEE International Conference on Robotics and Automation (ICRA)]]></conf-name>
<conf-date>2015</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Murata]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Petri nets: Properties, analysis and applications]]></article-title>
<source><![CDATA[Proc. IEEE]]></source>
<year>Apr.</year>
<month> 1</month>
<day>98</day>
<volume>77</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>541-580</page-range></nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Silva]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<source><![CDATA[Las Redes de Petri: en la Automática y la Informática. AC]]></source>
<year>1985</year>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hoyos-Gutiérrez]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Peña-Solórzano]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Garzón-Castro]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Prieto-Ortiz]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Hacia el Manejo de una herramienta por un robot NAO usando programación por demostración]]></article-title>
<source><![CDATA[Tecno Lógicas]]></source>
<year></year>
<volume>17</volume>
<numero>33</numero>
<issue>33</issue>
<page-range>65-76, 2014</page-range></nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hoyos]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Prieto]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
<name>
<surname><![CDATA[Pena]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Morales]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
<name>
<surname><![CDATA[Perez-Cisneros]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Reaching New Positions Using an Extreme Learning Machine in Programming by Demonstration]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Latin American Robotics Symposium and Competition]]></conf-name>
<conf-date>2013</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Quigley]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Conley]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
<name>
<surname><![CDATA[Gerkey]]></surname>
<given-names><![CDATA[B. P.]]></given-names>
</name>
<name>
<surname><![CDATA[Faust]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Foote]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
<name>
<surname><![CDATA[Leibs]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Wheeler]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Ng]]></surname>
<given-names><![CDATA[A. Y.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[ROS: an open-source Robot Operating System]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ ICRA Workshop on Open Source Software]]></conf-name>
<conf-date>2009</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Calinon]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Alizadeh]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
<name>
<surname><![CDATA[Caldwell]]></surname>
<given-names><![CDATA[D. G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[On improving the extrapolation capability of task-parameterized movement models]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ IEEE/RSJ International Conference on Intelligent Robots and Systems]]></conf-name>
<conf-date>2013</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
