En ciencias de la computación , la programación por demostración ( PbD ) es una técnica de desarrollo del usuario final para enseñar a una computadora o un robot nuevos comportamientos al demostrar la tarea de transferir directamente en lugar de programarla a través de comandos de máquina.
Los términos programación por ejemplo (PbE) y programación por demostración (PbD) aparecieron en la investigación de desarrollo de software ya a mediados de la década de 1980 [1] para definir una forma de definir una secuencia de operaciones sin tener que aprender un lenguaje de programación. La distinción habitual en la literatura entre estos términos es que en PbE el usuario da un producto prototípico de la ejecución de la computadora, como una fila en los resultados deseados de una consulta ; mientras que en PbD el usuario realiza una secuencia de acciones que la computadora debe repetir, generalizándola para ser utilizada en diferentes conjuntos de datos.
Estos dos términos fueron primero indiferenciados, pero PbE luego tendió a ser adoptado principalmente por investigadores de desarrollo de software, mientras que PbD tendió a ser adoptado por investigadores de robótica. Hoy, PbE se refiere a un concepto completamente diferente, apoyado por nuevos lenguajes de programación que son similares a los simuladores. Este marco puede contrastarse con la síntesis del programa bayesiano .
Programación de robots por demostración
El paradigma PbD es atractivo en primer lugar para la industria de la robótica debido a los costos involucrados en el desarrollo y mantenimiento de programas de robots. En este campo, el operador a menudo tiene un conocimiento implícito sobre la tarea a realizar (él / ella sabe cómo hacerlo), pero generalmente no tiene las habilidades de programación (o el tiempo) necesarias para reconfigurar el robot. Demostrar cómo lograr la tarea a través de ejemplos permite aprender la habilidad sin programar explícitamente cada detalle.
Las primeras estrategias PBD propuestos en la robótica se basaron en teach-in , guiar o reproducción a métodos que consistían básicamente en el movimiento del robot (a través de una interfaz dedicada o manual) a través de un conjunto de configuraciones relevantes que el robot debe adoptar de forma secuencial (posición, orientación, estado de la pinza). A continuación, el método se mejoró progresivamente centrándose principalmente en el control de la teleoperación y utilizando diferentes interfaces como la visión.
Sin embargo, estos métodos de PbD todavía utilizaban la repetición directa, lo que era útil en la industria solo cuando se concibía una línea de montaje utilizando exactamente los mismos componentes del producto. Para aplicar este concepto a productos con diferentes variantes o aplicar los programas a nuevos robots, la cuestión de la generalización se convirtió en un punto crucial. Para abordar este problema, los primeros intentos de generalizar la habilidad se basaron principalmente en la ayuda del usuario a través de consultas sobre las intenciones del usuario. Luego, se propusieron diferentes niveles de abstracciones para resolver el tema de la generalización, básicamente dicotomizados en los métodos de aprendizaje a nivel simbólico o a nivel de trayectoria.
El desarrollo de robots humanoides generó naturalmente un creciente interés en la programación de robots por demostración. Como se supone que un robot humanoide por su naturaleza se adapta a nuevos entornos, no solo la apariencia humana es importante, sino que los algoritmos utilizados para su control requieren flexibilidad y versatilidad. Debido a los entornos en constante cambio y a la gran variedad de tareas que se espera que realice un robot, el robot requiere la capacidad de aprender continuamente nuevas habilidades y adaptar las habilidades existentes a nuevos contextos.
La investigación en PbD también se apartó progresivamente de su perspectiva original puramente de ingeniería para adoptar un enfoque interdisciplinario, tomando conocimientos de la neurociencia y las ciencias sociales para emular el proceso de imitación en humanos y animales. Con la creciente consideración de este cuerpo de trabajo en robótica, la noción de programación de robots por demostración (también conocida como RPD o RbD) también fue reemplazada progresivamente por la etiqueta más biológica de Aprendizaje por imitación .
Habilidades parametrizadas
Después de que un operador humano demostró una tarea, la trayectoria se almacena en una base de datos. Obtener un acceso más fácil a los datos brutos se realiza con habilidades parametrizadas. [2] Una habilidad solicita una base de datos y genera una trayectoria. Por ejemplo, al principio, se envía la habilidad "abrir desgarrador (lento)" a la base de datos de movimientos y, en respuesta, se proporciona el movimiento almacenado del brazo robótico. Los parámetros de una habilidad permiten modificar la política para cumplir con las restricciones externas .
Una habilidad es una interfaz entre los nombres de las tareas, dados en lenguaje natural, y el movimiento espacio-temporal subyacente en el espacio 3D, que consta de puntos. Las habilidades individuales se pueden combinar en una tarea para definir secuencias de movimiento más largas desde una perspectiva de alto nivel. Para aplicaciones prácticas, las diferentes acciones se almacenan en una biblioteca de habilidades . Para aumentar aún más el nivel de abstracción, las habilidades se pueden convertir en primitivas de movimiento dinámico (DMP). Generan una trayectoria de robot sobre la marcha que se desconocía en el momento de la demostración. Esto ayuda a aumentar la flexibilidad del solucionador. [3]
Uso no robótico
Para los usuarios finales, para automatizar un flujo de trabajo en una herramienta compleja (por ejemplo, Photoshop ), el caso más simple de PbD es la grabadora de macros .
Ver también
Referencias
- ^ Halbert, Dan (noviembre de 1984). "Programación por ejemplo" (PDF) . UC Berkeley (tesis doctoral) . Consultado el 28 de julio de 2012 . Cite journal requiere
|journal=
( ayuda ) - ^ Pervez, Affan y Lee, Dongheui (2018). "Aprendizaje de primitivas de movimiento dinámico parametrizadas por tareas utilizando una mezcla de GMM" (PDF) . Robótica de servicio inteligente . Saltador. 11 (1): 61–78. doi : 10.1007 / s11370-017-0235-8 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Alizadeh, Tohid y Saduanov, Batyrkhan (2017). Programación de robots mediante demostración de múltiples tareas dentro de un entorno común . 2017 IEEE International Conference on Multisensor Fusion and Integration for Intelligent Systems (MFI). IEEE. págs. 608–613. doi : 10.1109 / mfi.2017.8170389 .CS1 maint: varios nombres: lista de autores ( enlace )
- Cypher, Allen (1993), Watch What I Do: Programming by Demonstration , Daniel C. Halbert, MIT Press, ISBN 978-0-262-03213-1
- Lieberman, Henry (2001), Your Wish is My Command: Programming By Example , Ben Shneiderman, Morgan Kaufmann, ISBN 978-1-55860-688-3
enlaces externos
Revisiones de artículos
- Billard, Aude (2008), S. Calinon, R. Dillmann y S. Schaal, "Robot Programming by Demonstration" (PDF) , Handbook of Robotics , MIT Press: 1371-1394, doi : 10.1007 / 978-3-540- 30301-5_60 , ISBN 978-3-540-23957-4.
- Schaal, S (2004), Ijspeert, A; Billard, A; Frith, CD, Wolpert, D. (eds.), "Enfoques computacionales para el aprendizaje motor por imitación" (PDF) , The Neuroscience of Social Interaction , Oxford University Press, 358 (1431): 199-218, doi : 10.1098 / rstb .2002.1258 , PMC 1693137 , PMID 12689379 .
- Robots que imitan a los humanos , Cynthia Breazeal y Brian Scassellati, Trends in Cognitive Sciences, 6: 1, 2002, págs. 481–87
- Billard, A, "Imitación", en Arbib, MA (ed.), Manual de teoría del cerebro y redes neuronales , MIT Press, págs. 566–69.
- Schaal, S (1999), "¿El aprendizaje de la imitación es la ruta hacia los robots humanoides?", Tendencias en ciencias cognitivas (PDF).
Ediciones especiales en revistas
- Transacciones IEEE sobre sistemas, hombre y cibernética , abril de 2007, 37: 2.
- RSJ Advanced Robotics , 21, número 13.
- Redes neuronales , Elsevier.
- Robótica y sistemas autónomos (PDF) , Elsevier, 2006.
Laboratorios y personas clave
- Técnicas de aprendizaje automático para programación de robots por demostración , Lausana, VD, CH: EPFL LASA, archivado desde el original el 1 de mayo de 2012.
- Aprendizaje reforzado y aprendizaje de primitivas motoras , SC, EE. UU .: USC CLMC Lab.
- Calinon, Sylvain, maestro-alumno interactivo (entrenador / entrenador-aprendiz / cliente) demostración cinestésica , CH.
- Bentivegna, Darrin, Enseñando hockey de aire a un robot humanoide , JP: ATR, archivado desde el original el 27 de enero de 2008.
- Actividades comunitarias sobre temas estrechamente relacionados
- Comité Técnico de Interacción y Coordinación Humano-Robot , IEEE Robótica y Automatización, archivado desde el original el 26 de julio de 2011.
- Comité Técnico de Aprendizaje de Robots , IEEE Robotics and Automation, archivado desde el original el 26 de julio de 2011.
Videos
Un robot que aprende a cocinar una tortilla:
- "Versión corta", YouTube , FR.
- "Versión larga", YouTube , FR.
Un robot que aprende a desenroscar una botella de coca cola:
- "Desatornille la botella de Coca-Cola", YouTube , DE.