ES2957271T3 - Sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas - Google Patents

Sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas Download PDF

Info

Publication number
ES2957271T3
ES2957271T3 ES18709902T ES18709902T ES2957271T3 ES 2957271 T3 ES2957271 T3 ES 2957271T3 ES 18709902 T ES18709902 T ES 18709902T ES 18709902 T ES18709902 T ES 18709902T ES 2957271 T3 ES2957271 T3 ES 2957271T3
Authority
ES
Spain
Prior art keywords
robotic device
markers
environment
user
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES18709902T
Other languages
English (en)
Inventor
Andrea Lockerd Thomaz
Vivian Yaw-Wen Chu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Diligent Robotics Inc
Original Assignee
Diligent Robotics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Diligent Robotics Inc filed Critical Diligent Robotics Inc
Application granted granted Critical
Publication of ES2957271T3 publication Critical patent/ES2957271T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/423Teaching successive positions by walk-through, i.e. the tool head or end effector being grasped and guided directly, with or without servo-assistance, to follow a path
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40323Modeling robot environment for sensor based robot system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40543Identification and location, position of components, objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Se describen sistemas, aparatos y métodos para el aprendizaje robótico y la ejecución de habilidades. Un aparato robótico puede incluir una memoria, un procesador, un elemento de manipulación y sensores. El procesador puede acoplarse operativamente a la memoria, el elemento de manipulación y los sensores, y configurarse para: obtener una representación de un entorno; identificar una pluralidad de marcadores en la representación del entorno que están asociados con un conjunto de objetos físicos ubicados en el entorno; obtener información sensorial asociada al elemento manipulador; y generar, en base a la información sensorial, un modelo configurado para definir movimientos del elemento manipulador para ejecutar una interacción física entre el elemento manipulador y el conjunto de objetos físicos. Alternativa o adicionalmente, el procesador puede configurarse para generar, usando el modelo, una trayectoria para el elemento de manipulación que define los movimientos del elemento de manipulación asociados con la ejecución de la interacción física. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas
CAMPO TÉCNICO
La presente divulgación se refiere en general a sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas. Más específicamente, la presente divulgación se refiere a un aparato robótico capaz de aprender y ejecutar habilidades en entornos no estructurados.
ANTECEDENTES
Los robots se pueden utilizar para realizar y automatizar una variedad de tareas. Los robots pueden realizar tareas moviéndose a través de un entorno, tal como un edificio de oficinas o un hospital. Los robots pueden equiparse con ruedas, orugas u otros componentes móviles que les permitan moverse de manera autónoma por un entorno. Sin embargo, los robots que no tienen un brazo u otro manipulador no pueden manipular objetos en el entorno. Por lo tanto, estos robots tienen una capacidad limitada para realizar tareas, p. ej., es posible que tales robots no puedan recoger y entregar un objeto sin que haya un humano presente para manipular el objeto en un punto de recogida o entrega.
Los robots que incluyen un brazo u otro manipulador pueden ser capaces de recoger y entregar objetos en una ubicación sin que haya un humano presente. Por ejemplo, un robot que tiene un brazo con un efector de extremo, tal como una pinza, puede utilizar la pinza para recoger uno o más objetos de diferentes ubicaciones y entregar esos objetos en una nueva ubicación, todo ello sin asistencia humana. Estos robots se pueden utilizar para automatizar determinadas tareas, permitiendo así que los operadores humanos se concentren en otras tareas. Sin embargo, la mayoría de los robots comerciales no incluyen manipuladores debido al desafío y la complejidad de programar el funcionamiento de un manipulador.
Es más, la mayoría de los robots comerciales están diseñados para funcionar en entornos estructurados, p. ej., una fábrica, un almacén, etc. Los entornos no estructurados, p. ej., entornos que implican humanos, tales como hospitales y hogares, pueden imponer desafíos adicionales para la programación de un robot. En entornos no estructurados, los robots no pueden confiar en un conocimiento completo de su entorno circundante, sino que deben ser capaces de percibir cambios en su entorno circundante y adaptarse basándose en esos cambios. Por tanto, en entornos no estructurados, los robots tienen que adquirir continuamente información sobre el entorno para poder tomar decisiones y realizar tareas de manera autónoma. A menudo, los movimientos de un robot, p. ej., los movimientos de un brazo o efector de extremo en el entorno, también están limitados por objetos y otros obstáculos en el entorno, lo que aumenta aún más el desafío de la percepción y manipulación del robot. Dada la naturaleza incierta y dinámica de los entornos no estructurados, los robots normalmente no se pueden preprogramar para realizar tareas. El documento US 2003/120391 divulga un aparato y un método de enseñanza mediante una demostración en el que un operador enseña remotamente al robot a realizar una tarea deseada a través de una interfaz de usuario.
El documento US 2013/245824 divulga un sistema robótico en el que el operador puede enseñar una tarea deseada a un robot moviendo físicamente el manipulador del robot a través del espacio de trabajo y registrando datos sobre el estado del robot y del entorno durante toda la fase de enseñanza.
En consecuencia, existe la necesidad de sistemas robóticos que puedan percibir y adaptarse a entornos dinámicos y no estructurados y que puedan realizar tareas dentro de esos entornos, sin depender de habilidades de manipulación preprogramadas.
SUMARIO
Se describen sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas. De acuerdo con un aspecto de la invención, se proporciona una reivindicación de aparato como la que se define en la reivindicación 1. De acuerdo con un segundo aspecto de la invención, se proporciona un medio no transitorio legible por procesador que almacena un código que representa instrucciones que deben ejecutadas por un procesador como se define en la reivindicación 10. Las características opcionales se definen en las reivindicaciones dependientes.
En algunos ejemplos, el conjunto de objetos físicos puede incluir un humano.
En algunos ejemplos, la pluralidad de marcadores son marcadores fiduciarios y la representación del entorno es una representación visual del entorno.
En algunos ejemplos, dos o más marcadores de la pluralidad de marcadores pueden asociarse con un objeto físico del conjunto de objetos físicos. Como alternativa o adicionalmente, en algunos ejemplos, un marcador de la pluralidad de marcadores se puede asociar con dos o más objetos físicos del conjunto de objetos físicos.
En algunos ejemplos, un método incluye: obtener, a través de un conjunto de sensores, una representación de un entorno; identificar una pluralidad de marcadores en la representación del entorno, estando cada marcador de la pluralidad de marcadores asociado con un objeto físico de una pluralidad de objetos físicos ubicados en el entorno; presentar información que indica una posición de cada marcador de la pluralidad de marcadores en la representación del entorno; recibir, después de la presentación, una selección de un conjunto de marcadores de la pluralidad de marcadores asociados con un conjunto de objetos físicos de la pluralidad de objetos físicos; obtener, para cada posición de una pluralidad de posiciones asociadas con un movimiento de un elemento de manipulación en el entorno, información sensorial asociada con el elemento de manipulación, donde el movimiento del elemento de manipulación está asociado con una interacción física entre el elemento de manipulación y el conjunto de objetos físicos; y generar, basándose en la información sensorial, un modelo configurado para definir movimientos del elemento de manipulación para ejecutar la interacción física entre el elemento de manipulación y el conjunto de objetos físicos.
En algunos ejemplos, el método además incluye recibir una selección de un primer subconjunto de características del conjunto de características, donde el modelo se genera basándose en datos de sensores asociados con el primer subconjunto de características y no basándose en datos de sensores asociados con un segundo subconjunto de características del conjunto de características no incluidas en el primer conjunto de características.
En algunos ejemplos, un método incluye: obtener, a través de un conjunto de sensores, una representación de un entorno; identificar una pluralidad de marcadores en la representación del entorno, estando cada marcador de la pluralidad de marcadores asociado con un objeto físico de una pluralidad de objetos físicos ubicados en el entorno; presentar información que indica una posición de cada marcador de la pluralidad de marcadores en la representación del entorno; en respuesta a recibir una selección de un conjunto de marcadores de la pluralidad de marcadores asociados con un conjunto de objetos físicos de la pluralidad de objetos físicos, identificar un modelo asociado con la ejecución de una interacción física entre un elemento de manipulación y el conjunto de objetos físicos, incluyendo el elemento de manipulación una pluralidad de articulaciones y un efector de extremo; y generar, utilizando el modelo, una trayectoria para el elemento de manipulación que define movimientos de la pluralidad de articulaciones y el efector de extremo asociado con la ejecución de la interacción física.
En algunos ejemplos, el método además incluye: mostrar a un usuario la trayectoria para el elemento de manipulación en la representación del entorno; recibir, después de la visualización, una entrada del usuario; y en respuesta a la entrada que indica una aceptación de la trayectoria para el elemento de manipulación, implementar los movimientos de la pluralidad de articulaciones y el efector de extremo para ejecutar la interacción física.
En algunos ejemplos, el modelo está asociado con (i) un conjunto de marcadores almacenado, (ii) información sensorial que indica al menos una de una posición o de una orientación del elemento de manipulación en puntos a lo largo de una trayectoria almacenada del elemento de manipulación asociada con el conjunto de marcadores almacenado e (iii) información sensorial que indica una configuración de la pluralidad de articulaciones en los puntos a lo largo de la trayectoria almacenada. El método para generar la trayectoria para el elemento de manipulación incluye: calcular una función de transformación entre el conjunto de marcadores y el conjunto de marcadores almacenado; transformar, para cada punto, la al menos una de la posición o de la orientación del elemento de manipulación utilizando la función de transformación; determinar, para cada punto, una configuración planificada de la pluralidad de articulaciones basándose en la configuración de la pluralidad de articulaciones en los puntos a lo largo de la trayectoria almacenada; y determinar, para cada punto, una parte de la trayectoria entre ese punto y un punto consecutivo basándose en la configuración planificada de la pluralidad de articulaciones para ese punto.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
El experto en la materia entenderá que los dibujos tienen principalmente fines ilustrativos y no pretenden limitar el alcance de la materia objeto de la invención descrita en el presente documento. Los dibujos no están necesariamente a escala; en algunos casos, varios aspectos de la materia objeto de la invención divulgada en el presente documento pueden mostrarse exagerados o ampliados en los dibujos para facilitar la comprensión de las diferentes características. En los dibujos, los caracteres de referencia análogos generalmente se refieren a características análogas (p. ej., elementos funcionalmente similares y/o estructuralmente similares).
La Figura 1 es un diagrama de bloques que ilustra una configuración de un sistema que incluye un dispositivo robótico, según algunas realizaciones.
La Figura 2 es un diagrama de bloques que ilustra una configuración de un dispositivo robótico, según algunas realizaciones.
La Figura 3 es un diagrama de bloques que ilustra una configuración de una unidad de control asociada con un dispositivo robótico, según algunas realizaciones.
La Figura 4 es una ilustración esquemática de un elemento de manipulación de un dispositivo robótico, según algunas realizaciones.
La Figura 5 es una ilustración esquemática de un dispositivo robótico, según algunas realizaciones.
Las Figuras 6A y 6B son ilustraciones esquemáticas de objetos en un entorno vistos por un dispositivo robótico, según algunas realizaciones.
Las Figuras 7A y 7B son ilustraciones esquemáticas de objetos en un entorno vistos por un dispositivo robótico, según algunas realizaciones.
La Figura 8 es un diagrama de flujo que ilustra un método de escaneo de un entorno realizado por un dispositivo robótico, según algunas realizaciones.
La Figura 9 es un diagrama de flujo que ilustra un método de aprendizaje y ejecución de habilidades realizado por un dispositivo robótico, según algunas realizaciones.
La Figura 10 es un diagrama de flujo que ilustra un método de aprendizaje de una habilidad realizado por un dispositivo robótico, según algunas realizaciones.
La Figura 11 es un diagrama de flujo que ilustra un método de ejecución de una habilidad realizado por un dispositivo robótico, según algunas realizaciones.
La Figura 12 es un diagrama de bloques que muestra una arquitectura de sistema de aprendizaje y ejecución robótica, incluyendo acciones del usuario, según algunas realizaciones.
DESCRIPCIÓN DETALLADA
En el presente documento se describen sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas. En algunas realizaciones, los sistemas, aparatos y métodos descritos en el presente documento se refieren a un aparato robótico capaz de aprender habilidades a través de demostraciones e interacciones con humanos y ejecutar habilidades aprendidas en entornos no estructurados.
En algunas realizaciones, los sistemas, aparatos y métodos descritos en el presente documento se refieren a robots que pueden aprender habilidades (p. ej., habilidades de manipulación) a través de un proceso de aprendizaje a partir de una demostración ("LfD"), en el que un humano demuestra una acción al sistema a través de enseñanza cinestésica (p. ej., el humano guía al robot a través de la acción física y/o remotamente) y/o la propia ejecución de la acción por parte del humano. Tales sistemas, aparatos y métodos no requieren que un robot esté preprogramado con habilidades de manipulación, sino que el robot está diseñado para ser adaptable y capaz de aprender habilidades a través de observaciones. Por ejemplo, un robot puede utilizar técnicas de aprendizaje automático para adquirir y ejecutar una habilidad de manipulación. Después de aprender una habilidad, el robot puede ejecutar la habilidad en diferentes entornos. El robot puede aprender y/o ejecutar una habilidad basándose en datos visuales (p. ej., información visual percibida). Como alternativa o adicionalmente, el robot puede aprender y/o ejecutar la habilidad utilizando datos hápticos (p. ej., par de torsión, fuerzas y otra información no visual). El aprendizaje robótico puede tener lugar en una fábrica antes del despliegue del robot oin situ(p. ej., en un hospital) después del despliegue del robot. En algunas realizaciones, usuarios que no tienen formación en robótica y/o programación pueden enseñar una habilidad a un robot y/o adaptarlo para funcionar en un entorno. Por ejemplo, el robot puede tener un algoritmo de aprendizaje que aproveche el comportamiento humano natural y puede incluir herramientas que puedan guiar a un usuario mediante el proceso de demostración.
En algunas realizaciones, se puede diseñar un robot para interactuar con humanos y colaborar con humanos para realizar tareas. En algunas realizaciones, un robot puede utilizar un comportamiento social común para actuar de una manera socialmente predecible y aceptable en torno a los humanos. Los robots que son móviles también se pueden diseñar para desplazarse dentro de un entorno mientras interactúan con los humanos en ese entorno. Por ejemplo, se puede programar un robot para que pronuncie ciertas expresiones para desplazarse en torno a los humanos, para hacerse a un lado para permitir el paso de humanos y para utilizar la mirada para comunicar intencionalidad durante su desplazamiento. En algunas realizaciones, un robot puede tener sensores que le permitan percibir y rastrear humanos en el entorno que lo rodea y utilizar esa información para activar la mirada y otros comportamientos sociales.
En algunas realizaciones, se puede diseñar un robot para proponer opciones para lograr un objetivo o realizar una acción durante un proceso LID. Por ejemplo, un robot puede proponer algunas opciones diferentes para lograr un objetivo (p. ej., recoger un objeto) y puede indicar cuál de esas opciones tiene más probabilidades de ser efectiva y/o eficiente para lograr el objetivo. En algunas realizaciones, un robot puede adaptar una habilidad basándose en las entradas de un usuario, p. ej., un usuario que indica características relevantes para incluirlas en un modelo de habilidad.
En algunas realizaciones, un dispositivo robótico puede ser capaz de aprender y/o ejecutar habilidades en un entorno no estructurado, p. ej., un entorno dinámico y/o humano, donde el dispositivo robótico no tiene de antemano información completa del entorno. Los entornos no estructurados pueden incluir, por ejemplo, entornos interiores y exteriores, y pueden incluir uno o más humanos u otros objetos que se pueden mover dentro del entorno. Dado que la mayoría de los entornos naturales o del mundo real no están estructurados, los dispositivos robóticos que pueden adaptarse y funcionar en un entorno no estructurado, tales como los dispositivos y/o sistemas robóticos descritos en el presente documento, pueden ofrecer mejoras significativas respecto a los dispositivos robóticos existentes que son incapaces de adaptarse a un entorno no estructurado. Los entornos no estructurados pueden incluir entornos interiores (p. ej., edificios, oficinas, casas, habitaciones, etc.) y/u otros tipos de espacios cerrados (p. ej., aviones, trenes y/u otros tipos de compartimentos móviles), así como entornos exteriores (p. ej., parques, playas, patios exteriores, campos). En una realización, los dispositivos robóticos descritos en el presente documento pueden funcionar en un entorno hospitalario no estructurado.
La Figura 1 es un diagrama de bloques de alto nivel que ilustra un sistema 100, según algunas realizaciones. El sistema 100 se puede configurar para aprender y ejecutar habilidades, tales como, por ejemplo, habilidades de manipulación en un entorno no estructurado. El sistema 100 puede implementarse como un único dispositivo o implementarse a través de múltiples dispositivos que están conectados a una red 105. Por ejemplo, como se ha representado en la Figura 1, el sistema 100 puede incluir uno o más dispositivos informáticos, tales como, por ejemplo, uno o más dispositivos robóticos 102 y 110, un servidor 120 y un o unos dispositivos informáticos adicionales 150. Si bien se muestran cuatro dispositivos, se debe entender que el sistema 100 puede incluir cualquier número de dispositivos informáticos, incluyendo dispositivos informáticos que no se muestran específicamente en la Figura 1.
La red 105 puede ser cualquier tipo de red (p. ej., una red de área local (LAN), una red de área amplia (WAN), una red virtual, una red de telecomunicaciones) implementada como una red cableada y/o red inalámbrica y utilizada para acoplar operativamente dispositivos informáticos, incluyendo los dispositivos robóticos 102 y 110, el servidor 120 y el o los dispositivos informáticos 150. Como se describe con más detalle en el presente documento, en algunas realizaciones, por ejemplo, los dispositivos informáticos son ordenadores conectados entre sí a través de un Proveedor de servicios de internet (ISP) e Internet (p. ej., la red 105). En algunas realizaciones, se puede definir una conexión, a través de la red 105, entre dos dispositivos informáticos cualesquiera. Como se muestra en la Figura 1, por ejemplo, se puede definir una conexión entre el dispositivo robótico 102 y uno cualquiera de los dispositivos robóticos 110, del servidor 120 o del o de los dispositivos informáticos adicionales 150. En algunas realizaciones, los dispositivos informáticos pueden comunicarse entre sí (p. ej., enviar y/o recibir datos) y con la red 105 a través de redes intermedias y/o redes alternativas (no mostradas en la Figura 1). Tales redes intermedias y/o redes alternativas pueden ser de un mismo tipo y/o de un tipo diferente de red que la red 105. Cada dispositivo informático puede ser cualquier tipo de dispositivo configurado para enviar datos a través de la red 105 para enviar y/o recibir datos desde uno o más de los demás dispositivos informáticos.
En algunas realizaciones, el sistema 100 incluye un único dispositivo robótico, p. ej., el dispositivo robótico 102. El dispositivo robótico 102 se puede configurar para percibir información sobre un entorno, aprender habilidades a través de una demostración e interacciones con humanos y/o ejecutar esas habilidades en el entorno. En la Figura 2 se ha representado una vista más detallada de un ejemplo de dispositivo robótico.
En otras realizaciones, el sistema 100 incluye múltiples dispositivos robóticos, p. ej., los dispositivos robóticos 102 y 110. El dispositivo robótico 102 puede enviar y/o recibir datos hacia y/o desde el dispositivo robótico 110 a través de la red 105. Por ejemplo, el dispositivo robótico 102 puede enviar información que percibe sobre un entorno (p. ej., la ubicación de un objeto) al dispositivo robótico 110 y puede recibir información sobre el entorno desde el dispositivo robótico 110. Los dispositivos robóticos 102 y 110 también pueden enviar y/o recibir información hacia y/o desde el uno al otro para aprender y/o ejecutar una habilidad. Por ejemplo, el dispositivo robótico 102 puede aprender una habilidad en un entorno y enviar un modelo que representa esa habilidad aprendida al dispositivo robótico 110, y el dispositivo robótico 110, al recibir ese modelo, puede utilizarlo para ejecutar la habilidad en el mismo entorno o en uno diferente. El dispositivo robótico 102 puede estar en una ubicación que sea igual o diferente a la del dispositivo robótico 110. Por ejemplo, los dispositivos robóticos 102 y 110 pueden estar ubicados en la misma habitación de un edificio (p. ej., un edificio de hospital) de tal manera que pueden aprender y/o ejecutar una habilidad juntos (p. ej., mover un objeto grande o pesado). Como alternativa, el dispositivo robótico 102 puede estar ubicado en un primer piso de un edificio (p. ej., un edificio de hospital) y el dispositivo robótico 110 puede estar ubicado en un segundo piso de un edificio, y los dos pueden comunicarse entre sí para transmitir información sobre los diferentes pisos entre sí (p. ej., dónde están ubicados los objetos en esos pisos, dónde puede estar un recurso, etc.).
En algunas realizaciones, el sistema 100 incluye uno o más dispositivos robóticos, p. ej., el dispositivo robótico 102 y/o 110 y un servidor 120. El servidor 120 puede ser un servidor dedicado que gestiona el dispositivo robótico 102 y/o 110. El dispositivo robótico 120 puede estar en una ubicación que sea igual o diferente a la del dispositivo robótico 102 y/o 110. Por ejemplo, el servidor 120 puede estar ubicado en el mismo edificio que uno o más dispositivos robóticos (p. ej., un edificio de hospital) y ser gestionado por un administrador local (p. ej., un administrador de hospital). Como alternativa, el servidor 120 puede estar ubicado en una ubicación remota (p. ej., una ubicación asociada con un fabricante o proveedor del dispositivo robótico).
En algunas realizaciones, el sistema 100 incluye uno o más dispositivos robóticos, p. ej., el dispositivo robótico 102 y/o 110 y un dispositivo informático adicional 150. El dispositivo informático 150 puede ser cualquier dispositivo de procesamiento adecuado configurado para efectuar y/o ejecutar determinadas funciones. En un entorno hospitalario, por ejemplo, un dispositivo informático 150 puede ser un dispositivo de diagnóstico y/o tratamiento que sea capaz de conectarse a la red 105 y comunicarse con otros dispositivos informáticos, incluyendo el dispositivo robótico 102 y/o 110.
La Figura 2 ilustra esquemáticamente un dispositivo robótico 200, según algunas realizaciones. El dispositivo robótico 200 incluye una unidad de control 202, una interfaz de usuario 240, al menos un elemento de manipulación 250 y al menos un sensor 270. Adicionalmente, en algunas realizaciones, el dispositivo robótico 200 opcionalmente incluye al menos un elemento de transporte 260. La unidad de control 202 incluye una memoria 220, un almacenamiento 230, un procesador 204, un bus de sistema 206 y al menos una interfaz de entrada/salida ("interfaz de E/S") 208. La memoria 220 puede ser, por ejemplo, una memoria de acceso aleatorio (RAM), una memoria intermedia, un disco duro, una base de datos, una memoria de sólo lectura programable y borrable (EPROM), una memoria de sólo lectura borrable eléctricamente (EEPROM), una memoria de sólo lectura (ROM) y/o así sucesivamente. En algunas realizaciones, la memoria 220 almacena instrucciones que llevan al procesador 204 a ejecutar módulos, procesos y/o funciones asociadas con escanear o visualizar un entorno, aprender una habilidad y/o ejecutar una habilidad. El almacenamiento 230 puede ser, por ejemplo, un disco duro, una base de datos, un almacenamiento en la nube, un dispositivo de almacenamiento conectado a la red u otro dispositivo de almacenamiento de datos. En algunas realizaciones, el almacenamiento 230 puede almacenar, por ejemplo, datos de sensores, incluyendo información de estado con respecto a uno o más componentes del dispositivo robótico 200 (p. ej., el elemento de manipulación 250), modelos aprendidos, información de ubicación de marcadores, etc.
El procesador 204 de la unidad de control 202 puede ser cualquier dispositivo de procesamiento adecuado configurado para efectuar y/o ejecutar funciones asociadas con ver un entorno, aprender una habilidad y/o ejecutar una habilidad. Por ejemplo, el procesador 204 se puede configurar para generar un modelo para una habilidad basándose en información del sensor o ejecutar una habilidad generando o utilizando un modelo, una trayectoria para realizar una habilidad, como se describe con más detalle en el presente documento. Más específicamente, el procesador 204 se puede configurar para ejecutar módulos, funciones y/o procesos. En algunas realizaciones, el procesador 204 puede ser un procesador de propósito general, una matriz de puertas programables en campo (FPGA), un circuito integrado de aplicación específica (ASIC), un procesador de señal digital (DSP) y/o similares.
El bus de sistema 206 puede ser cualquier componente adecuado que permita que el procesador 204, la memoria 220, el almacenamiento 230 y/u otros componentes de la unidad de control 202 se comuniquen entre sí. Las interfaces de E/S 208, conectadas al bus de sistema 206, pueden ser cualquier componente adecuado que permita la comunicación entre los componentes internos de la unidad de control 202 (p. ej., el procesador 204, la memoria 220, el almacenamiento 230) y los dispositivos externos de entrada/salida, tales como una interfaz de usuario 240, uno o más elementos de manipulación 250, elementos de transporte 260 y sensores 270).
La interfaz de usuario 240 puede incluir uno o más componentes que están configurados para recibir entradas y enviar salidas a otros dispositivos y/o a un usuario que opera un dispositivo, p. ej., un usuario que opera un dispositivo robótico 200. Por ejemplo, la interfaz de usuario 240 puede incluir un dispositivo de visualización 242 (p. ej., una pantalla, una pantalla táctil, etc.), un dispositivo de audio 244 (p. ej., un micrófono, un altavoz) y, opcionalmente, uno o más dispositivos de entrada/salida adicionales ("dispositivo(s) de E/S") 246 configurados para recibir una entrada y/o generar una salida para un usuario.
El o los elementos de manipulación 250 pueden ser cualquier componente adecuado que sea capaz de manipular y/o interactuar con un objeto estacionario y/o en movimiento, incluyendo, por ejemplo, un humano. Los elementos de manipulación 250 pueden incluir una pluralidad de segmentos que están acoplados entre sí a través de articulaciones que pueden proporcionar traslación a lo largo de y/o rotación alrededor de uno o más ejes. El o los elementos de manipulación 250 también pueden incluir un efector de extremo que puede sujetar y/o interactuar de otro modo con objetos en un entorno. Por ejemplo, el elemento de manipulación puede incluir un mecanismo de agarre que puede sujetar (p. ej., agarrar) de forma liberable objetos en el entorno para recoger y/o transportar los objetos. Otros ejemplos de efectores de extremo incluyen, por ejemplo, mecanismo(s) de sujeción por vacío, mecanismo(s) de sujeción magnética, mecanismo(s) de succión y/o combinaciones de los mismos. En la Figura 4 se ha representado una vista detallada de un ejemplo de elemento de manipulación.
El o los elementos de transporte 260 pueden ser cualquier componente adecuado configurado para el movimiento tal como, por ejemplo, una rueda o una oruga. Se pueden proporcionar uno o más elementos de transporte 260 en una parte de base del dispositivo robótico 200 para permitir que el dispositivo robótico 200 se mueva por un entorno. Por ejemplo, el dispositivo robótico 200 puede incluir una pluralidad de ruedas que le permiten desplazarse por un edificio, tal como, por ejemplo, un hospital. El o los elementos de transporte 260 pueden diseñarse y/o dimensionarse para facilitar el movimiento a través de espacios reducidos y/o restringidos (p. ej., vestíbulos y pasillos pequeños, habitaciones pequeñas tales como armarios de suministros, etc.).
Los sensores 270 pueden ser cualquier componente adecuado que permita al dispositivo robótico 200 capturar información sobre el entorno y/u objetos en el entorno alrededor del dispositivo robótico 200. Los sensores 270 pueden incluir, por ejemplo, dispositivos de captura de imágenes (p. ej., cámaras, tales como una cámara de profundidad roja, verde y azul (RGB-D) o una cámara web), dispositivos de audio (p. ej., micrófonos), sensores de luz. (p. ej., sensores de detección de luz y de alcance o LiDAR, sensores de detección de color), sensores propioceptivos, sensores de posición, sensores táctiles, sensores de fuerza o par de torsión, sensores de temperatura, sensores de presión, sensores de movimiento, detectores de sonido, etc. Por ejemplo, el o los sensores 270 pueden incluir al menos un dispositivo de captura de imágenes tal como una cámara para capturar información visual sobre objetos y el entorno alrededor del dispositivo robótico 200. En algunas realizaciones, el o los sensores 270 pueden incluir sensores hápticos, p. ej., sensores que pueden transmitir fuerzas, vibraciones, tacto y otra información no visual al dispositivo robótico 200.
En algunas realizaciones, el dispositivo robótico 200 puede tener características humanoides, p. ej., una cabeza, un cuerpo, brazos, piernas y/o una base. Por ejemplo, el dispositivo robótico 200 puede incluir una cara con ojos, una nariz, una boca y otras características humanoides. Aunque no se ha representado esquemáticamente, el dispositivo robótico 200 también puede incluir actuadores, motores, acopladores, conectores, fuentes de alimentación (p. ej., una batería integrada) y/u otros componentes que unen, accionan y/o impulsan diferentes partes del dispositivo robótico 200.
La Figura 3 es un diagrama de bloques que ilustra esquemáticamente una unidad de control 302, según algunas realizaciones. La unidad de control 302 puede incluir componentes similares a la unidad de control 202 y puede ser estructural y/o funcionalmente similar a la unidad de control 202. Por ejemplo, la unidad de control 302 incluye un procesador 304, una memoria 320, una(s) interfaz(es) de E/S 308, un bus de sistema 306 y un almacenamiento 330, que puede ser estructural y/o funcionalmente similar al procesador 204, la memoria 220, la(s) interfaz(es) de E/S 208, el bus de sistema 206 y el almacenamiento 230, respectivamente.
La memoria 320 almacena instrucciones que pueden llevar al procesador 304 a ejecutar módulos, procesos y/o funciones, ilustradas como escaneo activo 322, identificación de marcadores 324, aprendizaje y generación de modelos 326, generación y ejecución de trayectorias 328 y monitorización del éxito 329. El escaneo activo 322, la identificación de marcadores 324, el aprendizaje y la generación de modelos 326, la generación y ejecución de trayectorias 328 y la monitorización del éxito 329 se pueden implementar como uno o más programas y/o aplicaciones que están vinculadas a componentes de hardware (p. ej., un sensor, un dispositivo de manipulación, un dispositivo de E/S, un procesador, etc.). El escaneo activo 322, la identificación de marcadores 324, el aprendizaje y la generación de modelos 326, la generación y ejecución de trayectorias 328 y la monitorización del éxito 329 se pueden implementar mediante un dispositivo robótico o múltiples dispositivos robóticos. Por ejemplo, se puede configurar un dispositivo robótico para implementar un escaneo activo 322, una identificación de marcadores 324 y una generación y ejecución de trayectorias 328. A modo de otro ejemplo, se puede configurar un dispositivo robótico para implementar un escaneo activo 322, una identificación de marcadores 324, opcionalmente, un aprendizaje y generación de modelos 326 y una generación y ejecución de trayectorias 328. A modo de otro ejemplo, se puede configurar un dispositivo robótico para implementar un escaneo activo 322, una identificación de marcadores 324, una generación y ejecución de trayectorias 328 y, opcionalmente, una monitorización del éxito 329. Aunque no se ha representado, la memoria 320 también puede almacenar programas y/o aplicaciones asociadas con un sistema operativo y operaciones robóticas generales (p. ej., gestión de energía, asignación de memoria, etc.).
El almacenamiento 330 almacena información relacionada con el aprendizaje y/o la ejecución de habilidades. El almacenamiento 330 almacena, por ejemplo, información de estado interno 331, modelo(s) 334, información de objeto 340 y bibliotecas de aprendizaje automático 342. La información de estado interno 331 puede incluir información sobre el estado de un dispositivo robótico (p. ej., el dispositivo robótico 200) y/o un entorno en el que el dispositivo robótico está funcionando (p. ej., un edificio, tal como, por ejemplo, un hospital). En algunas realizaciones, la información de estado 331 puede indicar una ubicación del dispositivo robótico dentro del entorno, tal como, por ejemplo, una habitación, un piso, un espacio cerrado, etc. Por ejemplo, la información de estado 331 puede incluir un mapa 332 del entorno e indicar una ubicación del dispositivo robótico dentro de ese mapa 332. La información de estado 331 también puede incluir la o las ubicaciones de uno o más objetos (o marcadores que representan y/o están asociados con objetos) dentro del entorno, p. ej., dentro del mapa 332. Por tanto, la información de estado 331 puede identificar una ubicación de un dispositivo robótico con relación a uno o más objetos. Los objetos pueden incluir cualquier tipo de objeto físico que esté ubicado dentro del entorno. Los objetos pueden ser estacionarios o móviles. Ejemplos de objetos en un entorno, tal como, por ejemplo, un hospital, incluyen equipos, suministros, instrumentos, herramientas, muebles y/o humanos (p. ej., enfermeras, médicos, pacientes, etc.).
La información de objeto 340 puede incluir información relacionada con objeto(s) físico(s) en un entorno. Por ejemplo, la información de objeto puede incluir información que identifica o cuantifica diferentes características de un objeto, tales como, por ejemplo, ubicación, color, forma y características de la superficie. La información de objeto también puede identificar códigos, símbolos y otros marcadores que están asociados con un objeto físico, p. ej., códigos de respuesta rápida o "QR", códigos de barras, etiquetas, etc. La información de objeto puede permitir que la unidad de control 302 identifique objeto(s) físico(s) en el entorno.
Las bibliotecas de aprendizaje automático 342 pueden incluir módulos, procesos y/o funciones relacionadas con diferentes algoritmos para el aprendizaje automático y/o la generación de modelos de diferentes habilidades. En algunas realizaciones, las bibliotecas de aprendizaje automático pueden incluir métodos tales como modelos ocultos de Markov o "MOM". Un ejemplo de una biblioteca de aprendizaje automático existente en Python es scikit-leam. El almacenamiento 330 también puede incluir bibliotecas de software adicionales relacionadas con, por ejemplo, simulación robótica, planificación y control de movimiento, enseñanza y percepción cinemática, etc.
Los modelos 334 son modelos que se han generado para realizar diferentes acciones y representan habilidades que han sido aprendidas por un dispositivo robótico. En algunas realizaciones, cada modelo 334 está asociado con un conjunto de marcadores que están vinculados a diferentes objetos físicos en un entorno. La información de marcador 335 puede indicar qué marcadores están asociados con un modelo particular 334. Cada modelo 334 también se puede asociar con información sensorial 336 que se recopila, p. ej., a través de uno o más sensores de un dispositivo robótico, durante la enseñanza cinestésica y/u otras demostraciones de una habilidad. La información sensorial 336 puede incluir información del elemento de manipulación 337 asociada con un elemento de manipulación de un dispositivo robótico mientras realiza una acción durante una demostración. La información 337 del elemento de manipulación puede incluir, por ejemplo, configuraciones de articulaciones, posiciones y configuraciones del efector de extremo y/o fuerzas y pares de torsión que actúan sobre articulaciones y/o efectores de extremo. La información del elemento de manipulación 337 se puede registrar en puntos específicos durante una demostración y/o ejecución de una habilidad (p. ej., fotogramas clave) o, como alternativa, a lo largo de una demostración y/o ejecución de una habilidad. La información sensorial 336 también puede incluir información asociada con un entorno en el que se demuestra y/o ejecuta una habilidad, p. ej., ubicación de marcadores en el entorno. En algunas realizaciones, cada modelo 334 se puede asociar con criterios de éxito 339. Los criterios de éxito 339 se pueden utilizar para monitorizar la ejecución de una habilidad. En algunas realizaciones, los criterios de éxito 339 pueden incluir información asociada con datos visuales y hápticos que se perciben utilizando uno o más sensores, p. ej., cámaras, sensores de fuerza/pares de torsión, etc. Los criterios de éxito 339 pueden estar, por ejemplo, vinculados con la detección visual del movimiento de un objeto, detectar una fuerza que actúa sobre un componente del dispositivo robótico (p. ej., un peso de un objeto), detectar una sujeción entre un componente del dispositivo robótico y un objeto (p. ej., un cambio en la presión o fuerza que actúa en una superficie), etc. En el artículo titulado ''Learning Haptic Affordances from Demonstration and Human-Guided Exploration", del que son autores Chu y col., publicado en 2016 IEEE Haptics Symposium (HAPTICS), Filadelfia, PA, 2016, págs. 119-125, accesible en http://ieeexplore.ieee.org/document/7463165/, se describen ejemplos de utilización de datos hápticos en el aprendizaje robótico de habilidades de manipulación. En el artículo titulado "Simultaneously Learning Actions and Goals from Demonstration", del que son autores Akgun y col., publicado en Autonomous Robots, volumen 40, edición 2, en febrero de 2016, págs. 211-227, accesible en https://doi.org/10.1007/s10514-015-9448-x ("artículo de Akgun") se describen ejemplos de la utilización de datos visuales en el aprendizaje robótico de habilidades de manipulación.
La Figura 4 ilustra esquemáticamente un elemento de manipulación 350, según algunas realizaciones. El elemento de manipulación 350 puede formar parte de un dispositivo robótico, tal como, por ejemplo, el dispositivo robótico 102 y/o 200. El elemento de manipulación 350 se puede implementar como un brazo que incluye dos o más segmentos 352 acoplados entre sí a través de articulaciones 354. Las articulaciones 354 pueden permitir uno o más grados de libertad. Por ejemplo, las articulaciones 354 pueden proporcionar traslación a lo largo de y/o rotación alrededor de uno o más ejes. En una realización, el elemento de manipulación 350 puede tener siete grados de libertad proporcionados por las articulaciones 354. Si bien en la Figura 4 se han representado cuatro segmentos 352 y cuatro articulaciones 354, una persona normalmente versada en la materia entendería que un elemento de manipulación puede incluir un número diferente de segmentos y/o articulaciones.
El elemento de manipulación 350 incluye un efector de extremo 356 que se puede utilizar para interactuar con objetos en un entorno. Por ejemplo, el efector de extremo 356 se puede utilizar para sujetar y/o manipular diferentes objetos. Como alternativa o adicionalmente, el efector de extremo 356 se puede utilizar para interactuar con objetos móviles o dinámicos, incluyendo, por ejemplo, humanos. En algunas realizaciones, el efector de extremo 356 puede ser una pinza que puede sujetar o agarrar de manera liberable uno o más objetos. Por ejemplo, el efector de extremo 356 implementado como una pinza puede recoger y mover un objeto de una primera ubicación (p. ej., un armario de suministros) a una segunda ubicación (p. ej., una oficina, una habitación, etc.).
Se puede disponer una pluralidad de sensores 353, 355, 357 y 358 en diferentes componentes del elemento de manipulación 350, p. ej., en segmentos 352, articulaciones 354 y/o el efector de extremo 356. Los sensores 353, 355, 357 y 358 se pueden configurar para medir información sensorial, incluyendo información sobre el entorno e/o información de elementos de manipulación. Ejemplos de sensores incluyen codificadores de posición, sensores de par de torsión y/o fuerza, sensores táctiles y/o de tacto, dispositivos de captura de imágenes tales como cámaras, sensores de temperatura, sensores de presión, sensores de luz, etc. En algunas realizaciones, el sensor 353 dispuesto en un segmento 352 puede ser una cámara que esté configurada para capturar información visual sobre un entorno. En algunas realizaciones, el sensor 353 dispuesto en un segmento 352 puede ser un acelerómetro configurado para permitir la medición de una aceleración y/o el cálculo de la velocidad de movimiento y/o una posición del segmento 352. En algunas realizaciones, el sensor 355 dispuesto en una articulación 354 puede ser un codificador de posición configurado para medir una posición y/o configuración de la articulación 354. En algunas realizaciones, el sensor 355 dispuesto en una articulación 354 puede ser un sensor de fuerza o par de torsión configurado para medir una fuerza o par de torsión aplicado a la articulación 354. En algunas realizaciones, el sensor 358 dispuesto en el efector de extremo 356 puede ser un codificador de posición y/o un sensor de fuerza o par de torsión. En algunas realizaciones, el sensor 357 dispuesto en el efector de extremo 356 puede ser un sensor táctil o de tacto configurado para medir una sujeción entre el efector de extremo 356 y un objeto en el entorno. Como alternativa o adicionalmente, uno o más de los sensores 353, 355, 357 y 358 se pueden configurar para registrar información sobre uno o más objetos y/o marcadores en el entorno. Por ejemplo, el sensor 358 dispuesto en el efector de extremo 356 se puede configurar para rastrear una ubicación de un objeto en el entorno y/o una posición del objeto con relación al efector de extremo 356. En algunas realizaciones, uno o más de los sensores 353, 355, 357 y 358 también pueden rastrear si un objeto, tal como un humano, se ha movido en el entorno. Los sensores 353, 355, 357 y 358 pueden enviar la información sensorial que registran a un dispositivo informático ubicado en un dispositivo robótico (p. ej., una unidad de control integrada tal como, p. ej., la unidad de control 202 y/o 302), o los sensores 353, 355, 357 y 358 pueden enviar la información sensorial a un dispositivo informático remoto (p. ej., un servidor tal como, por ejemplo, el servidor 120).
El elemento de manipulación 350 opcionalmente puede incluir un elemento de acoplamiento 359 que permite acoplar de forma liberable el elemento de manipulación 350 a un dispositivo robótico, tal como cualquiera de los dispositivos robóticos descritos en el presente documento. En algunas realizaciones, el elemento de manipulación 350 se puede acoplar a una ubicación fija del dispositivo robótico y/o ser capaz de acoplarse a múltiples ubicaciones del dispositivo robótico (p. ej., un lado derecho o un lado izquierdo de un cuerpo de dispositivo robótico, como se muestra en la Figura 5). El elemento de acoplamiento 359 puede incluir cualquier tipo de mecanismo que pueda acoplar el elemento de manipulación 350 al dispositivo robótico, tal como, por ejemplo, un mecanismo mecánico (p. ej., una fijación, un pestillo, una montura), un mecanismo magnético, un ajuste por fricción, etc.
La Figura 5 ilustra esquemáticamente un dispositivo robótico 400, según algunas realizaciones. El dispositivo robótico 400 incluye una cabeza 480, un cuerpo 488 y una base 486. La cabeza 480 se puede conectar al cuerpo 488 a través de un segmento 482 y una o más articulaciones (no representadas). El segmento 482 puede ser móvil y/o flexible para permitir que la cabeza 480 se mueva con respecto al cuerpo 488.
La cabeza 480 incluye uno o más dispositivos de captura de imágenes 472 y/u otros sensores 470. El dispositivo de captura de imágenes 472 y/u otros sensores 470 (p. ej., sensores LiDAR, sensores de movimiento, etc.) pueden permitir que el dispositivo robótico 400 escanee un entorno y obtenga una representación (p. ej., una representación visual u otra representación semántica) del entorno. En algunas realizaciones, el dispositivo de captura de imágenes 472 puede ser una cámara. En algunas realizaciones, el dispositivo de captura de imágenes 472 puede ser móvil de tal manera que se pueda utilizar para enfocar diferentes áreas del entorno alrededor del dispositivo robótico 400. El dispositivo de captura de imágenes 472 y/u otros sensores 470 pueden recopilar y enviar información sensorial a un dispositivo informático o procesador integrado en el dispositivo robótico 400, tal como, por ejemplo, la unidad de control 202 o 302. En algunas realizaciones, la cabeza 480 del dispositivo robótico 400 puede tener una forma humanoide e incluir una o más características humanas, p. ej., ojos, nariz, boca, orejas, etc. En tales realizaciones, el dispositivo de captura de imágenes 472 y/u otros sensores 470 se puede implementar como una o más características humanas. Por ejemplo, el dispositivo de captura de imágenes 472 se puede implementar como ojos en la cabeza 480.
En algunas realizaciones, el dispositivo robótico 400 puede utilizar el dispositivo de captura de imágenes 472 y/u otros sensores 470 para escanear un entorno en busca de información sobre objetos en el entorno, p. ej., estructuras físicas, dispositivos, artículos, humanos, etc. El dispositivo robótico 400 puede emprender un escaneo activo o el dispositivo robótico 400 puede iniciar el escaneo en respuesta a un desencadenante (p. ej., una entrada de un usuario, un evento detectado o un cambio en el entorno).
En algunas realizaciones, el dispositivo robótico 400 puede emprender un escaneo adaptativo donde el escaneo se puede realizar basándose en conocimiento almacenado y/o una entrada del usuario. Por ejemplo, el dispositivo robótico 400 puede identificar un área en el entorno para escanear en busca de un objeto basándose en la información previa que tiene sobre el objeto. Con referencia a la Figura 6A, el dispositivo robótico 400 puede escanear una escena (p. ej., un área de una habitación) y obtener una representación 500 de la escena. En la representación 500, el dispositivo robótico 400 identifica que un primer objeto 550 está ubicado en un área 510 y que un segundo objeto 560 está ubicado en las áreas 510 y 530. El dispositivo robótico 400 puede almacenar las ubicaciones de los objetos 550 y 560 en un mapa del entorno que este almacenó internamente, de tal manera que el dispositivo robótico 400 puede utilizar esa información para ubicar los objetos 550 y 560 cuando realice un futuro escaneo. Por ejemplo, cuando el dispositivo robótico 400 regresa a la escena y escanea la escena por segunda vez, el dispositivo robótico 400 puede obtener una vista diferente de la escena, como se muestra en la Figura 6B. Al realizar este segundo escaneo, el dispositivo robótico 400 puede obtener una representación 502 de la escena. Para ubicar los objetos 550 y 560 en la representación 502, el dispositivo robótico 400 puede remitirse a la información que había almacenado previamente sobre las ubicaciones de esos objetos cuando obtuvo la representación 500 de la escena. El dispositivo robótico 400 puede tener en cuenta que su propia ubicación en el entorno puede haber cambiado y reconocer que los objetos 550 y 560 pueden estar ubicados en diferentes áreas de representación 502. Basándose en esta información, el dispositivo robótico 400 puede saber que debe buscar el objeto 550 en el área 510, aunque debe buscar el objeto 560 en las áreas 520 y 540. El dispositivo robótico 400, al utilizar información previamente almacenada sobre las ubicaciones de los objetos 550 y 560, puede identificar automáticamente áreas para escanear de cerca (p. ej., haciendo zoom, moviendo lentamente una cámara a través de esas áreas) en busca de los objetos 550 y 560.
En algunas realizaciones, el dispositivo robótico 400 también puede saber que debe escanear diferentes áreas de una escena más de cerca basándose en una entrada de un humano. Por ejemplo, un humano puede indicar al dispositivo robótico 400 que un área determinada de una escena incluye uno o más objetos de interés y el dispositivo robótico 400 puede escanear esas áreas más de cerca para identificar esos objetos. En tales realizaciones, el dispositivo robótico 400 puede incluir un dispositivo de entrada/salida 440, tal como una pantalla con un teclado u otro dispositivo de entrada y/o una pantalla táctil, como se ha representado esquemáticamente en la Figura 5.
En algunas realizaciones, el dispositivo robótico 400 puede escanear un entorno e identificar que un objeto, tal como, por ejemplo, un humano, se está moviendo en el entorno. Por ejemplo, como se muestra en las FIGS. 7A y 7B, un objeto 660 puede estar moviéndose en un entorno mientras que un objeto 650 permanece estacionario. La Figura 7A representa una representación 600 de una escena, que muestra el objeto 660 en las áreas 610 y 630, y la Figura 7B representa la representación 602 de la escena, mostrando el objeto 660 en las áreas 620 y 640. En ambas representaciones 600 y 602, el objeto 650 puede permanecer en la misma ubicación en el área 610. El dispositivo robótico 400 puede identificar que el objeto 660 se ha movido en la escena y ajustar sus acciones en consecuencia. Por ejemplo, si el dispositivo robótico 400 tenía planes de interactuar con el objeto 660, el dispositivo robótico 400 puede cambiar su trayectoria, p. ej., acercarse al objeto 660 y/o cambiar una trayectoria de un elemento de manipulación u otro componente que esté configurado para interactuar con el objeto. 660. Como alternativa o adicionalmente, si el dispositivo robótico 400 tenía planes de interactuar con el objeto 650 (y/u otro objeto en la escena), el dispositivo robótico 400 puede tener en cuenta el movimiento del objeto 660 mientras planifica su recorrido para interactuar con el objeto 650. En algunas realizaciones, el dispositivo robótico 400 puede emprender un escaneo activo de tal manera que puede ajustar sus acciones prácticamente en tiempo real.
Como se ha representado esquemáticamente en la Figura 5, la base 486 puede incluir opcionalmente uno o más elementos de transporte implementados como ruedas 460. Las ruedas 460 pueden permitir que el dispositivo robótico 400 se mueva por un entorno, p. ej., un hospital. El dispositivo robótico 400 también incluye al menos un elemento de manipulación 450. El elemento de manipulación 450 puede ser estructural y/o funcionalmente similar a otros elementos de manipulación descritos en el presente documento, p. ej., el elemento de manipulación 350. El elemento de manipulación 450 se puede unir de manera fija al cuerpo 488 del dispositivo robótico 400 u, opcionalmente, el elemento de manipulación 450 se puede acoplar de manera liberable al cuerpo 488 a través de un elemento de acoplamiento (p. ej., el elemento de acoplamiento 359) que se puede unir a una parte de acoplamiento 484 del dispositivo robótico 400. La parte de acoplamiento 484 se puede configurar para sujetar el elemento de acoplamiento 359 y proporcionar una conexión eléctrica entre el elemento de manipulación 450 y un dispositivo informático integrado (p. ej., la unidad de control 202 o 302), de tal manera que el dispositivo informático integrado pueda alimentar y/o controlar componentes del elemento de manipulación 450 y recibir información recopilada por los sensores dispuestos en el elemento de manipulación 450 (p. ej., los sensores 353, 355, 357 y 358).
Opcionalmente, el dispositivo robótico 400 también puede incluir uno o más sensores 470 adicionales ubicados en el segmento 482, el cuerpo 488, la base 486 y/u otras partes del dispositivo robótico 400. Los sensores 470 pueden ser, por ejemplo, dispositivos de captura de imágenes, sensores de fuerza o par de torsión, sensores de movimiento, sensores de luz, sensores de presión y/o sensores de temperatura. Los sensores 470 pueden permitir que el dispositivo robótico 400 capture información visual y no visual sobre el entorno.
Las Figuras 8-11 son diagramas de flujo que ilustran un método 700 que puede ser realizado por un sistema robótico (p. ej., el sistema robótico 100) que incluye uno o más dispositivos robóticos, según algunas realizaciones. Por ejemplo, todo o una parte del método 700 puede ser realizado por un dispositivo robótico, tal como cualquiera de los dispositivos robóticos descritos en el presente documento. Como alternativa, todo el método 700 puede ser realizado secuencialmente por múltiples dispositivos robóticos, realizando cada uno, a su vez, una parte del método 700. Como alternativa, todo o parte del método 700 puede ser realizado simultáneamente por múltiples dispositivos robóticos.
Como se ha representado en la Figura 8, un dispositivo robótico puede escanear un entorno y obtener una representación del entorno, en la etapa 702. El dispositivo robótico puede escanear el entorno utilizando uno o más sensores (p. ej., el o los sensores 270 o 470 y/o el o los dispositivos de captura de imágenes 472). En algunas realizaciones, el dispositivo robótico puede escanear el entorno utilizando una cámara móvil, donde la posición y/o el enfoque de la cámara se pueden ajustar para capturar áreas en una escena del entorno. En la etapa 704, basándose en la información recopilada durante el escaneo, el dispositivo robótico puede analizar los datos para identificar el o los marcadores en la representación capturada del entorno. Los marcadores se pueden asociar con uno o más objetos en la escena que han sido marcados utilizando marcadores visuales o fiduciales, p. ej., un marcador visible tal como un código QR, un código de barras, una etiqueta, etc. Como alternativa o adicionalmente, el dispositivo robótico puede identificar marcadores asociados con uno o más objetos en el entorno a través del reconocimiento de objetos utilizando una información de objeto (p. ej., la información de objeto 340) que se almacena en una memoria en el dispositivo robótico (p. ej., almacenamiento 330). La información de objeto puede incluir, por ejemplo, información que indica diferentes características de un objeto, tales como ubicación, color, forma y características de la superficie. En una realización, la información de objeto se puede organizar como valores numéricos que representan diferentes características de un objeto, a lo que se puede denominar espacio de características.
Después de identificar el o los marcadores, opcionalmente, el dispositivo robótico puede presentar el o los marcadores en una representación del entorno, en la etapa 706. En algunas realizaciones, la representación del entorno puede ser una representación visual tal como, por ejemplo, una vista aumentada del entorno. En tales realizaciones, el dispositivo robótico puede mostrar la representación visual del entorno, p. ej., en una pantalla de visualización y mostrar las ubicaciones del o de los marcadores en la representación visual del entorno. Como alternativa o adicionalmente, la representación del entorno puede ser una representación semántica del entorno, con las ubicaciones del o de los marcadores, representadas por marcadores semánticos, en el entorno.
El dispositivo robótico puede presentar la representación del entorno con el o los marcadores a un usuario y solicitar al usuario, p. ej., a través de una interfaz de usuario u otro tipo de dispositivo de E/S, que acepte o rechace el o los marcadores en la representación del entorno, en la etapa 708. Si el usuario no acepta el o los marcadores (708: NO), entonces el método 700 vuelve a la etapa 702 y el dispositivo robótico puede volver a escanear el entorno para obtener una segunda representación del entorno. Si el usuario acepta el o los marcadores (708: SÍ), entonces el método 700 pasa a la etapa 708, donde el dispositivo robótico puede almacenar información asociada con los marcadores (p. ej., ubicación, características, etc.) en una memoria (p. ej., almacenamiento 330). Por ejemplo, el dispositivo robótico puede almacenar la ubicación del o de los marcadores en un mapa interno del entorno (p. ej., mapa 332).
el método 700 puede pasar a la etapa 712, donde el dispositivo robótico puede solicitar a un usuario, p. ej., a través de una interfaz de usuario u otro tipo de dispositivo de E/S, que seleccione un conjunto de marcadores del o de los marcadores identificados en la representación del entorno, como se ha representado en la Figura 9. El usuario puede hacer una selección y el dispositivo robótico puede recibir la selección del usuario, en la etapa 714.
Después de que el dispositivo robótico haya recibido una selección de un conjunto de marcadores del usuario y/o haya seleccionado automáticamente un conjunto de marcadores, el método 700 puede proceder a aprender una habilidad, en la etapa 716 o a ejecutar una habilidad, en la etapa 718.
Para cualquier habilidad particular, se puede enseñar la habilidad al dispositivo robótico antes de que el dispositivo robótico ejecute o realice la habilidad. Por ejemplo, para adquirir una habilidad de manipulación, se puede enseñar al dispositivo robótico utilizando un LfD (p. ej., enseñanza cinestésica), mediante el cual un usuario u otro dispositivo robótico puede demostrar habilidades al dispositivo robótico. Por ejemplo, un elemento de manipulación, tal como un brazo del dispositivo robótico, se puede mover a través de una secuencia de puntos de referencia para interactuar con un objeto. En el caso de la enseñanza cinestésica, un usuario puede demostrar físicamente habilidades al dispositivo robótico. La formación o enseñanza se puede realizar en un entorno de producción en masa, tal como, por ejemplo, un entorno de fabricación, en el que se puede enseñar al dispositivo robótico utilizando un modelo añadido que representa una realización genérica de una habilidad. Como alternativa o adicionalmente, la enseñanza puede producirsein s itudespués de que se haya desplegado el dispositivo robótico (p. ej., en un hospital), de tal manera que el dispositivo robótico puede aprender a realizar la habilidad en el entorno del sitio específico. En algunas realizaciones, se puede enseñar a un dispositivo robótico en un entornoin situy luego puede enviar información asociada con la habilidad aprendida a uno o más dispositivos robóticos adicionales, de tal manera que esos dispositivos robóticos adicionales también puedan tener conocimientos sobre la habilidad enseñada cuando funcionan en el mismo entornoin situ.Estas realizaciones pueden resultar útiles cuando se despliegan múltiples dispositivos robóticos en un solo sitio. Luego, cada dispositivo robótico puede recibir y enviar información a otros dispositivos robóticos de tal manera que puedan aprender colectivamente un conjunto de habilidades para ese entornoin situ.
En el modo de aprendizaje, representado en la Figura 10, el método 700 procede a las etapas 720-724, donde un usuario puede utilizar un proceso de enseñanza LfD para enseñar una habilidad al dispositivo robótico. En una realización, una habilidad puede definirse como agarrar un objeto ubicado en una ubicación particular, recoger el objeto, mover el objeto a una ubicación diferente y dejar el objeto en una ubicación diferente. En la etapa 720, un usuario (u otro dispositivo robótico) puede guiar el dispositivo robótico, incluyendo un elemento de manipulación, (p. ej., el elemento de manipulación 250, 350 o 450) a través de un movimiento. Por ejemplo, un usuario puede guiar el elemento de manipulación del dispositivo robótico mediante una demostración asociada con la ejecución de una habilidad particular, p. ej., una interacción con un humano, una sujeción y/o manipulación de un objeto. Mientras guía el elemento de manipulación del robot a través del movimiento, el usuario puede indicarle al robot cuándo capturar información sobre el estado del elemento de manipulación (p. ej., configuraciones de articulaciones, fuerzas y/o pares de torsión de articulación, configuración del efector de extremo, posición del efector de extremo) y/o el entorno (p. ej., una ubicación de un objeto asociado con un marcador seleccionado y/u otros objetos en el entorno). Por ejemplo, el dispositivo robótico puede recibir una señal de un usuario para capturar información sobre el elemento de manipulación y/o el entorno en un punto de referencia o fotograma clave durante el movimiento del elemento de manipulación, en la etapa 722. En respuesta a recibir una señal, en la etapa 724, el dispositivo robótico puede capturar la información sobre el elemento de manipulación y/o el entorno en ese fotograma clave. La información del elemento de manipulación puede incluir, por ejemplo, configuraciones de articulaciones, pares de torsión de articulación, posiciones de efector de extremo y/o pares de torsión de efector de extremo. La información sobre el entorno puede incluir, por ejemplo, la posición de un marcador seleccionado con relación al efector de extremo y puede indicar al dispositivo robótico cuándo se han podido mover objetos en el entorno. Si el movimiento aún continúa (728: NO), entonces el dispositivo robótico puede esperar para capturar información sobre el elemento de manipulación y/o el entorno en fotogramas clave adicionales. En algunas realizaciones, el dispositivo robótico se puede programar para capturar información de fotogramas clave sin recibir una señal de un usuario. Por ejemplo, mientras un usuario mueve el elemento de manipulación, el dispositivo robótico puede monitorizar cambios en los segmentos y articulaciones del elemento de manipulación, y cuando esos cambios superan un umbral, o cuando hay un cambio direccional en una trayectoria de un segmento o articulación, el dispositivo robótico puede seleccionar de forma autónoma ese punto para que sea un fotograma clave y registrar información sobre el elemento de manipulación y/o el entorno en ese fotograma clave.
Durante el movimiento del elemento de manipulación, el dispositivo robótico también puede registrar información sensorial de forma continua o periódica, sin recibir una señal de un usuario, p. ej., información sobre el elemento de manipulación y/o el entorno, en la etapa 730. Por ejemplo, el dispositivo robótico puede registrar información sobre las trayectorias de segmentos y articulaciones, así como sus configuraciones, a medida que el usuario mueve el elemento de manipulación durante la demostración.
En algunas realizaciones, el dispositivo robótico puede incluir un dispositivo de audio (p. ej., 244) tal como, por ejemplo, un micrófono, y la demarcación de fotogramas clave se puede controlar con comandos de voz. Por ejemplo, un usuario puede indicarle al dispositivo robótico que planea hacer una demostración diciendo: "Yo te guiaré". La demostración puede empezar cuando el usuario indica el primer fotograma clave diciendo "empezar aquí". Los fotogramas clave intermedios se pueden indicar diciendo "ir aquí". Y se puede indicar un fotograma clave final que representa el final de la demostración diciendo "finalizar aquí". En el artículo de Akgun se proporcionan ejemplos adecuados sobre la enseñanza de una demostración.
Una vez completado el movimiento o demostración (728: SÍ), el dispositivo robótico puede generar un modelo para la habilidad demostrada basándose en un subconjunto de toda la información sensorial (p. ej., información de elementos de manipulación, información sobre el entorno) que se ha registrado. Por ejemplo, en la etapa 712, el dispositivo robótico puede solicitar opcionalmente a un usuario, p. ej., a través de una interfaz de usuario u otro tipo de dispositivo de E/S, una selección de características que son relevantes para aprender la habilidad, y en la etapa 734, el dispositivo robótico puede recibir la selección de características del usuario. Como alternativa o adicionalmente, el dispositivo robótico puede saber cómo seleccionar determinadas características para utilizarlas en la generación del modelo basándose en instrucciones previas de un usuario. Por ejemplo, el dispositivo robótico puede reconocer que se le está demostrando como recoger un objeto, p. ej., basándose en la información sensorial, y puede seleccionar automáticamente una o más características de la información sensorial (p. ej., configuración de articulación, pares de torsión de articulación, efector de extremo) para incluir como características relevantes para generar el modelo de habilidad, p. ej., basándose en demostraciones pasadas sobre recoger el mismo o diferentes objetos.
En la etapa 736, el dispositivo robótico puede generar el modelo de la habilidad utilizando las características seleccionadas. El modelo se puede generar utilizando bibliotecas o algoritmos de aprendizaje automático almacenados (p. ej., bibliotecas de aprendizaje automático 342). En algunas realizaciones, el modelo se puede representar como un algoritmo MOM que incluye una pluralidad de parámetros, tales como, por ejemplo, una serie de estados ocultos, un espacio de características (p. ej., características incluidas en un vector de características) y distribuciones de emisión para cada estado modelado como una distribución gaussiana. En algunas realizaciones, el modelo se puede representar como una máquina de vectores de soporte o modelo "MVS", que puede incluir parámetros tales como, por ejemplo, un tipo de núcleo (p. ej., lineal, radial, polinómico, sigmoide), un parámetro o función de coste, ponderaciones (p. ej., iguales, equilibrados por clase), un tipo o función de pérdida (p. ej., de tipo bisagra, bisagra cuadrada) y un tipo de resolución o problema (p. ej., dual, primario). El modelo se puede asociar a la información sensorial relevante y/u otra información sensorial registrada por el dispositivo robótico durante la demostración de habilidades. El modelo también se puede asociar a información de marcadores que indica el conjunto de marcadores que fueron manipulados durante la demostración de habilidades y/o características asociadas con uno o más objetos físicos vinculados a esos marcadores. El dispositivo robótico puede almacenar el modelo en una memoria (p. ej., almacenamiento 230 o 330), en la etapa 738.
Opcionalmente, en la etapa 740, el dispositivo robótico puede determinar si el usuario realizará otra demostración de la habilidad. Si se va a realizar otra demostración (740: SÍ), entonces el método: %00 puede volver a la etapa 720, donde un usuario (u otro dispositivo robótico) puede guiar el dispositivo robótico a través de una demostración adicional. Si se han completado las demostraciones (740: NO), entonces el método 700 opcionalmente puede volver al principio y realizar un nuevo escaneo del entorno. Como alternativa, en algunas realizaciones, el método 700 puede finalizar.
En algunas realizaciones, como se ha descrito anteriormente, el dispositivo robótico puede escanear activamente su entorno circundante para monitorizar cambios en el entorno. En consecuencia, durante el aprendizaje y/o la ejecución, el dispositivo robótico puede emprender un escaneo continuo del entorno y actualizar en consecuencia la representación del entorno, así como la información sobre el entorno que ha almacenado.
En el modo de ejecución, representado en la Figura 11, el dispositivo robótico puede solicitar opcionalmente, p. ej., a través de una interfaz de usuario u otro tipo de dispositivo de E/S, a un usuario que seleccione un modelo, tal como un modelo que fue generado previamente por el dispositivo robótico en el modo de aprendizaje, en la etapa 750. El dispositivo robótico puede recibir la selección del modelo, en la etapa 752. En algunas realizaciones, el dispositivo robótico puede recibir la selección del modelo de un usuario o, como alternativa, el dispositivo robótico puede seleccionar automáticamente un modelo basándose en determinadas reglas y/o condiciones. Por ejemplo, el dispositivo robótico se puede programar para seleccionar un modelo cuando está en un área determinada de un edificio (p. ej., cuando está en una habitación o piso determinados), durante determinadas horas o días, etc. Como alternativa o adicionalmente, el dispositivo robótico puede saber cómo seleccionar un modelo determinado basándose en el conjunto de marcadores seleccionado. En la etapa 754, el dispositivo robótico puede determinar si acercarse a un marcador seleccionado antes de generar una trayectoria y ejecutar una habilidad con respecto al marcador seleccionado. Por ejemplo, el dispositivo robótico puede determinar basándose en el conjunto seleccionado de marcadores y el modelo seleccionado si debe moverse para estar mejor posicionado para ejecutar la habilidad (p. ej., para estar más cerca o más próximo al marcador, para estar frente al marcador desde un ángulo determinado). El dispositivo robótico puede tomar esta determinación basándose en la información sensorial que se registró durante una demostración de la habilidad. Por ejemplo, el dispositivo robótico puede reconocer que estaba posicionado más cerca del marcador cuando se le demostró la habilidad y ajustar su posición en consecuencia.
Si el dispositivo robótico determina que ha de moverse con respecto al marcador seleccionado (754: SÍ), el dispositivo robótico puede mover su posición (p. ej., ajustar su ubicación y/u orientación), en la etapa 756, y el método 700 puede volver a la etapa 702, donde el dispositivo robótico escanea el entorno de nuevo para obtener una representación del entorno. El método 700 puede retroceder a través de las distintas etapas hasta la etapa 754. Si el dispositivo robótico determina que no ha de moverse con respecto al marcador seleccionado (754: NO), entonces el dispositivo robótico puede generar una trayectoria de acción, p. ej., para un elemento de manipulación del dispositivo robótico.
Específicamente, en la etapa 758, el dispositivo robótico puede calcular una función de transformación (p. ej., traslada) entre un conjunto seleccionado de marcadores y un conjunto de marcadores asociados con el modelo seleccionado (p. ej., el o los marcadores que fueron seleccionados cuando el dispositivo robótico aprendió la habilidad, es decir, generó el modelo seleccionado), denominado en el presente documento "marcador almacenado" o "conjunto de marcadores almacenados". Por ejemplo, al dispositivo robótico se le puede enseñar una habilidad utilizando un primer conjunto de marcadores que estaban en una o más ubicaciones y/u orientaciones específicas con relación a una parte del dispositivo robótico, tal como, por ejemplo, el efector de extremo y, posteriormente, el dispositivo robótico puede ejecutar la habilidad con un segundo conjunto de marcadores que están en una o más ubicaciones y/u orientaciones diferentes con respecto al elemento de manipulación. En tales casos, el dispositivo robótico puede calcular una función de transformación que transforma entre la o las posiciones y/u orientaciones del primer conjunto de marcadores y el segundo conjunto de marcadores.
En la etapa 760, el dispositivo robótico puede utilizar la función de transformación calculada para transformar la posición y orientación de una parte del elemento de manipulación, p. ej., el efector de extremo del elemento de manipulación, en cada fotograma clave que fue registrado cuando se enseñó la habilidad. Opcionalmente, en 762, el dispositivo robótico puede utilizar algoritmos o ecuaciones de cinemática inversa para determinar la configuración de las articulaciones del elemento de manipulación para cada fotograma clave, en la etapa 762. La posición y orientación del efector de extremo y el conjunto de marcadores se pueden proporcionar en un espacio de tarea (p. ej., el espacio cartesiano donde está funcionando el dispositivo robótico), mientras que la orientación de las articulaciones se puede proporcionar en un espacio de articulación o configuración (p. ej., un espacio dimensionalenésimoasociado con la configuración del elemento de manipulación, donde el dispositivo robótico está representado como un punto ynes el número de grados de libertad del elemento de manipulación). En algunas realizaciones, la información de configuración de las articulaciones registrada cuando se le enseñó la habilidad al dispositivo robótico (p. ej., la configuración de las articulaciones registrada durante una demostración de enseñanza utilizando el elemento de manipulación) pueden servir de guía para los cálculos de cinemática inversa. Por ejemplo, los cálculos de cinemática inversa se pueden sembrar (p. ej., proporcionarles una suposición inicial para el cálculo o sesgarlos) con las configuraciones de articulaciones que se registraron en cada fotograma clave. También se pueden imponer condiciones adicionales a los cálculos de cinemática inversa, tales como, por ejemplo, exigir que las configuraciones de articulaciones calculadas no se desvíen más de una cantidad predefinida de una configuración de articulaciones en un fotograma clave adyacente. En la etapa 764, el dispositivo robótico puede planificar la trayectoria entre las configuraciones de articulaciones desde un fotograma clave al siguiente fotograma clave, p. ej., en el espacio de articulación, para generar una trayectoria completa para que el elemento de manipulación ejecute la habilidad.
En algunas realizaciones, después de que el dispositivo robótico transforme la posición y orientación de la parte del elemento de manipulación (p. ej., el efector de extremo), el dispositivo robótico puede planificar la trayectoria para el elemento de manipulación en el espacio de tareas. En tales realizaciones, el método 700 puede proceder desde la etapa 760 directamente a la etapa 764.
En las etapas 766 y 768, el dispositivo robótico puede presentar opcionalmente la trayectoria a un usuario y solicitar al usuario, p. ej., a través de una interfaz de usuario u otro dispositivo de E/S, que acepte o rechace la trayectoria. Como alternativa, el dispositivo robótico puede aceptar o rechazar la trayectoria basándose en reglas y/o condiciones internas y analizando información sensorial relevante. Si se rechaza la trayectoria (768: NO), entonces, opcionalmente el dispositivo robótico puede modificar uno o más parámetros del modelo seleccionado, en la etapa 770 y generar una segunda trayectoria, en las etapas 758-764. Los parámetros del modelo se pueden modificar, por ejemplo, seleccionando diferentes características (p. ej., diferente información sensorial) para incluir en la generación del modelo. En algunas realizaciones, cuando el modelo es un modelo MOM, el dispositivo robótico puede cambiar los parámetros del modelo basándose en un éxito o fracaso determinado, en el que el dispositivo robótico rastrea una probabilidad logarítmica de que diferentes modelos tengan diferentes parámetros y selecciona el modelo con mayor probabilidad logarítmica que los demás modelos. En algunas realizaciones, cuando el modelo es un modelo MVS, el dispositivo robótico puede cambiar los parámetros cambiando el espacio de características o los parámetros de configuración (p. ej., tipo de núcleo, parámetro de coste o función, ponderaciones), como se describió anteriormente.
Si se acepta la trayectoria (768: SÍ), entonces el dispositivo robótico puede mover el elemento de manipulación para ejecutar la trayectoria generada, en la etapa 772. Mientras el elemento de manipulación está ejecutando la trayectoria planificada, el dispositivo robótico, p. ej., a través de uno o más sensores en el elemento de manipulación y otros componentes del dispositivo robótico, puede registrar y/o almacenar información sensorial, tal como, por ejemplo, información sobre el elemento de manipulación y/o entorno, en la etapa 774.
Opcionalmente, en la etapa 774, el dispositivo robótico puede determinar si la ejecución de la habilidad tuvo éxito (p. ej., si una interacción con un objeto cumple los criterios de éxito predefinidos). Por ejemplo, el dispositivo robótico puede escanear el entorno y determinar si el estado actual del entorno y el dispositivo robótico, incluyendo, por ejemplo, las ubicaciones de uno o más objetos, y/o la posición u orientación de esos objetos con relación al elemento de manipulación u otro componente del dispositivo robótico, y determinar si ese estado actual se alinea con los criterios de éxito predefinidos. Los criterios de éxito predefinidos y/o aprendidos pueden ser proporcionados por un usuario o, en algunas realizaciones, ser proporcionados por un dispositivo robótico y/o dispositivo informático diferente. Los criterios de éxito predefinidos y/o aprendidos pueden indicar información sobre diferentes características del entorno y/o del dispositivo robótico que están asociadas con el éxito. En algunas realizaciones, un usuario también puede proporcionar una entrada que indique al dispositivo robótico que la ejecución tuvo éxito.
En un ejemplo particular, cuando una habilidad se define como agarrar un objeto en una ubicación particular y recoger el objeto, el éxito de la habilidad se puede enseñar y/o definir como detectar que uno o más marcadores asociados con el objeto están en una relación específica entre sí y/o el dispositivo robótico, o detectar que el efector de extremo o una articulación del elemento de manipulación (p. ej., una articulación de muñeca) está experimentando (o ha experimentado) una fuerza o par de torsión suficiente, lo que significa que el elemento de manipulación está soportando el peso del objeto y por lo tanto ha recogido el objeto. Si la ejecución no tuvo éxito (776: NO), entonces, opcionalmente, el dispositivo robótico puede modificar los parámetros del modelo, en la etapa 770 y/o generar una nueva trayectoria, en las etapas 758-764. Si la ejecución tuvo éxito (776: SÍ), entonces se pueden registrar los datos asociados con la interacción exitosa (p. ej., datos que indican que la ejecución tuvo éxito y cómo tuvo éxito) y el método 700 puede opcionalmente regresar al principio y realizar un nuevo escaneo del entorno. Como alternativa, en algunas realizaciones, el método 700 puede finalizar.
La Figura 12 es un diagrama de bloques que muestra una arquitectura de sistema de aprendizaje y ejecución robótica, incluyendo acciones realizadas por el usuario, según algunas realizaciones. Se puede configurar un sistema 800 para un aprendizaje y una ejecución robótica. El sistema 800 puede incluir uno o más dispositivos robóticos, tales como cualquiera de los dispositivos robóticos descritos en el presente documento, y puede ejecutar módulos, procesos y/o funciones, representados en la Figura 12 como un escaneo activo 822, una identificación de marcadores 824, un aprendizaje y generación de modelos 826, una generación y ejecución de trayectorias 828 y una monitorización del éxito 829. El escaneo activo 822, la identificación de marcadores 824, el aprendizaje y la generación de modelos 826, la generación y ejecución de trayectorias 828 y la monitorización del éxito 829 pueden corresponder a una o más etapas realizadas por un dispositivo robótico, como se describe con referencia al método 700, representado en las FIGS. 8-11. Por ejemplo, el escaneo activo 822 incluye la etapa 702 del método 700; la identificación del marcador 824 puede incluir una o más de las etapas 704-710 del método 700; el aprendizaje y la generación de modelos 826 puede incluir una o más de las etapas 712-738; la generación y ejecución de trayectorias 828 puede incluir una o más de las etapas 712, 714, 718 y 750-774; y la monitorización del éxito 829 puede incluir una o más de las etapas 774 y 776.
El sistema 800 puede estar conectado (p. ej., en comunicación con) uno o más dispositivos, incluyendo, por ejemplo, cámara(s) 872, un brazo 850 (incluyendo una pinza 856 y sensor(es) 870), un dispositivo de visualización 842 y un micrófono 844. El sistema 800, a través del dispositivo de visualización 842, el micrófono 844 y/u otro dispositivo de E/S (no representado) puede recibir entradas de un usuario asociadas con una o más acciones de usuario 880. Las acciones de usuario 880 pueden incluir, por ejemplo, 882, un usuario que acepta marcadores o solicita un nueva escaneo de un entorno, 884, un usuario que selecciona marcadores, 886, un usuario que selecciona información relevante para generar un modelo, 888, un usuario que selecciona un modelo para ejecutar una habilidad, 890, un usuario que acepta una trayectoria para ejecutar una habilidad, 892, un usuario que confirma el éxito de una habilidad ejecutada, 894, un usuario que enseña una habilidad a través de aprendizaje cinestésico.
Para el escaneo activo 822, el sistema 800 usa la o las cámaras 872 para escanear un entorno y registrar información sensorial sobre el entorno, incluyendo información asociada con uno o más marcadores en el entorno. Para la identificación de marcadores 824, el sistema 800 puede analizar la información sensorial para identificar uno o más marcadores en el entorno y recibir entrada(s) de un usuario, p. ej., a través del dispositivo de visualización 842, indicando 822, que el usuario acepta los marcadores o solicita un nuevo escaneo del entorno. Para el aprendizaje y la generación de modelos 826, el sistema 800 puede recibir información sensorial recopilada por la o las cámaras 872 y/o el o los sensores 870 en el brazo 850, y utilizar esa información para generar un modelo para una habilidad. Como parte del aprendizaje y generación de modelos 826, el sistema 800 puede recibir entrada(s) de un usuario, p. ej., a través del dispositivo de visualización 842 y/o el micrófono 844, indicando 884, que el usuario ha seleccionado un conjunto de marcadores para enseñar la habilidad, 886, que un usuario ha seleccionado determinadas características de la información sensorial registrada para utilizar en la generación del modelo y/u 894, que el usuario está demostrando la habilidad. Para la generación y ejecución de trayectorias 828, el sistema 800 puede generar una trayectoria planificada y controlar los movimientos del brazo 850 para ejecutar la trayectoria. Como parte de la generación y ejecución de trayectorias 828, el sistema 800 puede recibir entrada(s) de un usuario, p. ej., a través del dispositivo de visualización 842, indicando 888, que el usuario ha seleccionado un modelo para generar una trayectoria y/u 890, que el usuario ha aceptado o rechazado la trayectoria generada. Para la monitorización del éxito 829, el sistema 800 puede determinar si la ejecución de una habilidad tuvo éxito analizando la información sensorial registrada por el o los sensores 870 durante la ejecución de la habilidad. Como parte de la monitorización del éxito 829, el sistema 800 puede recibir entrada(s) de un usuario, p. ej., a través del dispositivo de visualización 842 y/o del micrófono 844, indicando 892, que el usuario ha confirmado que la ejecución tuvo éxito.
Si bien el o los dispositivos y/o conexiones específicos entre el sistema 800 y que ese o esos dispositivos se han representado en la Figura 12, se entiende que dispositivo(s) adicional(es) (no representado(s)) pueden comunicarse con el sistema 800 para recibir y/o enviar información al sistema 800, según cualquiera de las realizaciones descritas en el presente documento.
Algunas realizaciones y/o métodos descritos en el presente documento se pueden realizar mediante un software diferente (ejecutado en hardware), hardware diferente o una combinación de los mismos. Los módulos de hardware pueden incluir, por ejemplo, un procesador de propósito general, una matriz de puertas programables en campo (FPGA) y/o un circuito integrado de aplicación específica (ASIC). Los módulos de software (ejecutados en hardware) se pueden expresar en una variedad de lenguajes de software (p. ej., código informático), incluyendo C, C++, Java.™, Rubí, Visual Basic™ y/u otros lenguajes de programación y herramientas de desarrollo orientados a objetos, procedurales u otros. Ejemplos de código informático incluyen, aunque sin limitación, microcódigo o microinstrucciones, instrucciones de máquina, tales como las producidas por un compilador, código utilizado para producir un servicio web y archivos que contienen instrucciones de nivel superior ejecutadas por un ordenador utilizando un intérprete. Por ejemplo, las realizaciones pueden implementarse utilizando lenguajes de programación imperativos (p. ej., C, Fortran, etc.), lenguajes de programación funcionales (Haskell, Erlang, etc.), lenguajes de programación lógicos (p. ej., Prolog), lenguajes de programación orientados a objetos (p. ej., Java, C++, etc.) u otros lenguajes de programación y/o herramientas de desarrollo adecuados. Ejemplos adicionales de código informático incluyen, aunque sin limitación, señales de control, código cifrado y código comprimido.

Claims (16)

REIVINDICACIONES
1. Un dispositivo robótico, que comprende:
una memoria;
un procesador;
un elemento de manipulación; y
un conjunto de sensores,
estando el procesador acoplado operativamente a la memoria, al elemento de manipulación y al conjunto de sensores, en donde el procesador está configurado para:
obtener, a través de un primer subconjunto de sensores del conjunto de sensores, una representación de un entorno; identificar una pluralidad de marcadores en la representación del entorno utilizando marcadores visuales o reconocimiento de objetos basándose en información de objeto, estando cada marcador de la pluralidad de marcadores asociado con un objeto físico de una pluralidad de objetos físicos ubicados en el entorno; presentar, a través de una interfaz de usuario y a un usuario, información que indica una posición de cada marcador de la pluralidad de marcadores en la representación del entorno;
recibir, a través de la interfaz de usuario y del usuario, una selección de un conjunto de marcadores de la pluralidad de marcadores asociados con un conjunto de objetos físicos de la pluralidad de objetos físicos;
cuando el usuario mueve el elemento de manipulación mediante una demostración de una habilidad que incluye una interacción física entre el elemento de manipulación y el conjunto de objetos físicos, obtener, a través de un segundo subconjunto de sensores del conjunto de sensores, información sensorial en cada fotograma clave de una pluralidad de fotogramas clave durante la demostración, incluyendo la información sensorial datos de sensores asociados con un conjunto de características del elemento de manipulación, representando cada fotograma clave de la pluralidad de fotogramas clave un punto específico durante la demostración de la habilidad; presentar, a través de la interfaz de usuario y al usuario, el conjunto de características de tal manera que el usuario pueda seleccionar un subconjunto de características que sea relevante para aprender la habilidad del conjunto de características;
generar un modelo de la habilidad utilizando datos de sensores asociados con el subconjunto de características seleccionadas por el usuario; y
asociar el modelo con información de marcador indicativa del conjunto de marcadores y la información sensorial.
2. El dispositivo robótico de la reivindicación 1, en donde el elemento de manipulación incluye un efector de extremo configurado para sujetar un subconjunto de objetos físicos del conjunto de objetos físicos.
3. El dispositivo robótico de la reivindicación 1, en donde el segundo subconjunto de sensores es diferente del primer subconjunto de sensores.
4. El dispositivo robótico de la reivindicación 1, en donde:
el elemento de manipulación incluye una pluralidad de componentes móviles unidos a través de una pluralidad de articulaciones,
el conjunto de sensores incluye al menos uno de:
un primer sensor configurado para medir una fuerza que actúa sobre una articulación de la pluralidad de articulaciones; o
un segundo sensor configurado para detectar una sujeción entre un componente móvil de la pluralidad de componentes móviles y un objeto físico del conjunto de objetos físicos, y
el procesador está configurado para generar el modelo para ejecutar la habilidad utilizando al menos datos de sensores indicativos de una fuerza medida por el primer sensor o una sujeción detectada por el segundo sensor.
5. El dispositivo robótico de la reivindicación 1, en donde:
el elemento de manipulación incluye (i) una pluralidad de articulaciones y (ii) un efector de extremo configurado para mover un objeto físico del conjunto de objetos físicos,
el conjunto de sensores incluye un sensor configurado para medir una fuerza aplicada sobre al menos uno del efector de extremo o de una articulación de la pluralidad de articulaciones acoplada al efector de extremo cuando el efector de extremo está moviendo el objeto físico, y
el procesador está configurado para generar el modelo para ejecutar la habilidad utilizando al menos datos de sensores indicativos de una fuerza medida por el sensor.
6. El dispositivo robótico de la reivindicación 1, en donde el procesador está configurado para generar el modelo para ejecutar la habilidad mediante:
la selección de un modelo oculto de Markov (MOM) o un algoritmo de máquina de vectores de soporte (MVS) de una biblioteca de aprendizaje automático almacenada en la memoria; y
el establecimiento de uno o más parámetros del algoritmo MOM o MVS utilizando los datos de sensores asociados con el subconjunto de características seleccionadas por el usuario.
7. El dispositivo robótico de la reivindicación 1, en donde la representación del entorno es una primera representación del entorno y la pluralidad de marcadores es una primera pluralidad de marcadores,
el procesador además está configurado para, después de generar el modelo para ejecutar la habilidad: obtener, a través del primer subconjunto de sensores, una segunda representación del entorno;
identificar, a través de marcadores visuales o reconocimiento de objetos basándose en información de objeto, una segunda pluralidad de marcadores en la segunda representación del entorno, estando cada marcador de la segunda pluralidad de marcadores asociado con un objeto físico de una pluralidad de objetos físicos ubicados en el entorno; y generar, utilizando el modelo y un conjunto de marcadores de la segunda pluralidad de marcadores, una trayectoria para ejecutar la habilidad utilizando el elemento de manipulación.
8. El dispositivo robótico de la reivindicación 7, en donde el procesador además está configurado para: presentar, a través de la interfaz de usuario y al usuario, la trayectoria de tal manera que el usuario puede aceptar o rechazar la trayectoria; y
en respuesta a recibir una entrada del usuario que indica un rechazo de la trayectoria, modificar uno o más parámetros del modelo.
9. El dispositivo robótico de la reivindicación 7, en donde el procesador además está configurado para: ejecutar la habilidad utilizando el elemento de manipulación;
obtener, utilizando el conjunto de sensores, datos durante la ejecución de la habilidad;
recibir, a través de la interfaz de usuario y del usuario, una entrada que indica si la ejecución de la habilidad ha tenido éxito;
en respuesta a la entrada que indica que la ejecución de la habilidad tuvo éxito, almacenar los datos asociados con la ejecución exitosa de la habilidad en la memoria; y
en respuesta a la entrada que indica que la ejecución de la habilidad no tuvo éxito, modificar uno o más parámetros del modelo.
10. Un medio no transitorio legible por procesador que almacena un código que representa instrucciones que debe ejecutar un procesador de un dispositivo robótico, comprendiendo el código un código para llevar al procesador a: obtener, a través de un conjunto de sensores de un dispositivo robótico, una representación de un entorno; identificar una pluralidad de marcadores en la representación del entorno utilizando marcadores visuales o reconocimiento de objetos basándose en información de objeto, estando cada marcador de la pluralidad de marcadores asociado con un objeto físico de una pluralidad de objetos físicos ubicados en el entorno; presentar, a través de una interfaz de usuario del dispositivo robótico y a un usuario, información que indica una posición de cada marcador de la pluralidad de marcadores en la representación del entorno de tal manera que el usuario puede hacer una selección de un conjunto de marcadores de la pluralidad de marcadores asociados con un conjunto de objetos físicos de la pluralidad de objetos físicos;
en respuesta a recibir la selección del conjunto de marcadores, identificar un modelo asociado con la ejecución de una interacción física entre un elemento de manipulación del dispositivo robótico y el conjunto de objetos físicos, incluyendo el elemento de manipulación una pluralidad de articulaciones y un efector de extremo;
generar, utilizando el modelo, una trayectoria que incluye movimientos de la pluralidad de articulaciones y el efector de extremo asociado con la ejecución de la interacción física;
presentar, a través de la interfaz de usuario y al usuario, la trayectoria de tal manera que el usuario pueda aceptar o rechazar la trayectoria;
en respuesta a la recepción de una entrada del usuario que indica una aceptación de la trayectoria, implementar los movimientos de la pluralidad de articulaciones y el efector de extremo para ejecutar la interacción física; y en respuesta a la recepción de una entrada del usuario que indica un rechazo de la trayectoria, modificar uno o más parámetros del modelo para producir un modelo modificado y generar una segunda trayectoria utilizando el modelo modificado.
11. El medio no transitorio legible por procesador de la reivindicación 10, que además comprende un código para llevar al procesador, en respuesta a recibir la entrada del usuario que indica la aceptación de la trayectoria, a: obtener, a través del conjunto de sensores, información sensorial asociada con la ejecución de la interacción física; y determinar si la ejecución de la interacción física cumple un criterio de éxito basándose en la información sensorial.
12. El medio no transitorio legible por procesador de la reivindicación 11, que además comprende un código para llevar al procesador a:
en respuesta a la determinación de que la ejecución de la interacción física cumple con el criterio de éxito, generar una señal que indique que la interacción física ha tenido éxito; y
en respuesta a la determinación de que la ejecución de la interacción física no cumple el criterio de éxito: modificar el modelo basándose en la información sensorial para producir un modelo modificado; y
generar, utilizando el modelo modificado, una segunda trayectoria para el elemento de manipulación.
13. El medio no transitorio legible por procesador de la reivindicación 10, en donde el modelo está asociado con (i) un conjunto de marcadores almacenado, (ii) información sensorial que indica al menos una de una posición o de una orientación del elemento de manipulación en unos puntos a lo largo de una trayectoria almacenada del elemento de manipulación asociada con el conjunto de marcadores almacenado, e (iii) información sensorial que indica una configuración de la pluralidad de articulaciones en los puntos a lo largo de la trayectoria almacenada;
el código para llevar al procesador a generar la trayectoria incluye un código para llevar al procesador a: calcular una función de transformación entre el conjunto de marcadores y el conjunto de marcadores almacenado; transformar, para cada punto, la al menos una de la posición o de la orientación del elemento de manipulación utilizando la función de transformación;
determinar, para cada punto, una configuración planificada de la pluralidad de articulaciones basándose en la configuración de la pluralidad de articulaciones en los puntos a lo largo de la trayectoria almacenada; y determinar, para cada punto, una parte de la trayectoria entre ese punto y un punto consecutivo basándose en la configuración planificada de la pluralidad de articulaciones para ese punto.
14. El medio no transitorio legible por procesador de la reivindicación 10, que además comprende un código para llevar al procesador a:
en respuesta a recibir la selección del conjunto de marcadores, determinar si debe mover el dispositivo robótico con respecto al conjunto de marcadores seleccionados por el usuario; y
en respuesta a la determinación de mover el dispositivo robótico con respecto al conjunto de marcadores, mover el dispositivo robótico utilizando un elemento de transporte del dispositivo robótico para ajustar una ubicación u orientación del elemento de manipulación y obtener una segunda representación del entorno antes de generar la trayectoria.
15. El dispositivo robótico de la reivindicación 1, en donde el procesador además está configurado para: cuando el usuario mueve el elemento de manipulación mediante la demostración de la habilidad, monitorizar los cambios en el elemento de manipulación; y
en respuesta a un cambio de dirección en el elemento de manipulación, seleccionar un punto asociado con el cambio de dirección como fotograma clave.
16. El dispositivo robótico de la reivindicación 1, que además comprende elementos de transporte para moverse por el entorno, en donde el procesador está configurado para mover el dispositivo robótico basándose en el modelo y/o el conjunto de marcadores.
ES18709902T 2017-02-25 2018-02-23 Sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas Active ES2957271T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762463628P 2017-02-25 2017-02-25
US201762463630P 2017-02-25 2017-02-25
PCT/US2018/019520 WO2018156952A1 (en) 2017-02-25 2018-02-23 Systems, apparatus, and methods for robotic learning and execution of skills

Publications (1)

Publication Number Publication Date
ES2957271T3 true ES2957271T3 (es) 2024-01-16

Family

ID=61599650

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18709902T Active ES2957271T3 (es) 2017-02-25 2018-02-23 Sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas

Country Status (4)

Country Link
EP (2) EP3585569B1 (es)
JP (2) JP2020508888A (es)
ES (1) ES2957271T3 (es)
WO (1) WO2018156952A1 (es)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11833684B2 (en) 2017-02-25 2023-12-05 Diligent Robotics, Inc. Systems, apparatus, and methods for robotic learning and execution of skills
US11148288B2 (en) 2017-02-25 2021-10-19 Diligent Robotics, Inc. Systems, apparatus, and methods for robotic learning and execution of skills
EP3566824B1 (en) * 2018-05-11 2023-06-28 Siemens Aktiengesellschaft Method, apparatus, computer-readable storage media and a computer program for robotic programming
JP6895128B2 (ja) * 2018-11-09 2021-06-30 オムロン株式会社 ロボット制御装置、シミュレーション方法、及びシミュレーションプログラム
US11694432B2 (en) * 2019-07-23 2023-07-04 Toyota Research Institute, Inc. System and method for augmenting a visual output from a robotic device
EP3960392A1 (en) * 2020-08-24 2022-03-02 ABB Schweiz AG Method and system for robotic programming
JP2024506611A (ja) 2021-02-08 2024-02-14 ディリジェント ロボティクス,インコーポレイテッド ナビゲーション及び操作機能を含む技能をロボティック学習及び実行するシステム、装置、及び方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256025A (ja) * 2001-12-25 2003-09-10 National Institute Of Advanced Industrial & Technology ロボット動作教示方法及び装置
US6587752B1 (en) * 2001-12-25 2003-07-01 National Institute Of Advanced Industrial Science And Technology Robot operation teaching method and apparatus
JPWO2004106009A1 (ja) * 2003-06-02 2006-07-20 松下電器産業株式会社 物品取扱いシステムおよび物品取扱いサーバ
WO2006013829A1 (ja) * 2004-08-02 2006-02-09 Matsushita Electric Industrial Co., Ltd. 物品運搬用ロボット、物品運搬システム、及び物品運搬方法
ATE524784T1 (de) * 2005-09-30 2011-09-15 Irobot Corp Begleitroboter für persönliche interaktion
FR2898824B1 (fr) * 2006-03-27 2009-02-13 Commissariat Energie Atomique Dispositif interface intelligent pour la saisie d'un objet par un robot manipulateur et procede de mise en oeuvre de ce dispositif
US8843236B2 (en) * 2012-03-15 2014-09-23 GM Global Technology Operations LLC Method and system for training a robot using human-assisted task demonstration
US9643314B2 (en) * 2015-03-04 2017-05-09 The Johns Hopkins University Robot control, training and collaboration in an immersive virtual reality environment
JP6164319B2 (ja) * 2016-03-02 2017-07-19 ソニー株式会社 情報処理装置、情報処理方法およびコンピュータプログラム

Also Published As

Publication number Publication date
JP2020508888A (ja) 2020-03-26
EP4292775A2 (en) 2023-12-20
WO2018156952A1 (en) 2018-08-30
EP3585569A1 (en) 2020-01-01
EP3585569B1 (en) 2023-06-07
JP2024001106A (ja) 2024-01-09

Similar Documents

Publication Publication Date Title
ES2957271T3 (es) Sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas
US11298825B2 (en) Systems, apparatus, and methods for robotic learning and execution of skills
US11833684B2 (en) Systems, apparatus, and methods for robotic learning and execution of skills
WO2020047120A1 (en) Systems, apparatus, and methods for robotic learning and execution of skills
US11904470B2 (en) Systems, apparatuses, and methods for robotic learning and execution of skills including navigation and manipulation functions
Negrello et al. Humanoids at work: The walk-man robot in a postearthquake scenario
Torres et al. 7 DOF industrial robot controlled by hand gestures using Microsoft Kinect v2
US20220410391A1 (en) Sensor-based construction of complex scenes for autonomous machines
US10933526B2 (en) Method and robotic system for manipulating instruments
Ovur et al. Naturalistic robot-to-human bimanual handover in complex environments through multi-sensor fusion
KR20220108761A (ko) 로봇 태스크에 힘 벡터를 할당하기 위한 방법 및 시스템
Younas et al. Design and fabrication of an autonomous multifunctional robot for disabled people
Cho et al. Development of VR visualization system including deep learning architecture for improving teleoperability
Tudico et al. Improving and benchmarking motion planning for a mobile manipulator operating in unstructured environments
Ignatova et al. Mechatronical approach to investigations of rescue operations
Jiménez et al. Autonomous object manipulation and transportation using a mobile service robot equipped with an RGB-D and LiDAR sensor
Gascueña et al. Agent-based modeling of a mobile robot to detect and follow humans
Paiusco Bimanual robotic manipulation based on potential fields
Chartomatsidis et al. Training NAO using Kinect.
Sulistijono et al. Designing a Transporter Mobile Robot for the WorldSkills Competition 2022 Using a Finite-State Machine Approach
Omer et al. An Effective Method for Creating Virtual Doors and Borders to Prevent Autonomous Mobile Robots from Entering Restricted Areas
Pinto Advanced Mobile Manipulation for Logistics in Hospitals or Laboratories
Memmesheimer et al. Robotic Imitation by Markerless Visual Observation and Semantic Associations
Canyadell Miquel The process of design and implementation of an artificial intelligence for a domestic multitask robot
Xiang et al. Natural Motion Planning for Visually-Guided Tasks in Representation Space