ES2944479T3 - Sistema y método para una colaboración hombre-máquina flexible - Google Patents

Sistema y método para una colaboración hombre-máquina flexible Download PDF

Info

Publication number
ES2944479T3
ES2944479T3 ES15837602T ES15837602T ES2944479T3 ES 2944479 T3 ES2944479 T3 ES 2944479T3 ES 15837602 T ES15837602 T ES 15837602T ES 15837602 T ES15837602 T ES 15837602T ES 2944479 T3 ES2944479 T3 ES 2944479T3
Authority
ES
Spain
Prior art keywords
robot
capability
collaborative
tool
user
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
ES15837602T
Other languages
English (en)
Inventor
Kelleher Guerin
Gregory Hager
Sebastian Riedel
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.)
Johns Hopkins University
Original Assignee
Johns Hopkins University
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 Johns Hopkins University filed Critical Johns Hopkins University
Application granted granted Critical
Publication of ES2944479T3 publication Critical patent/ES2944479T3/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/1628Programme controls characterised by the control loop
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • 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/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
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33051BBC behavior based control, stand alone module, cognitive, independent agent
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36422During teaching shut off, disable motor to move arm easy
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39365By using a cue, part of a stimulus to prompt an adapted reaction pattern
    • 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/40118Task oriented virtual tool, developed for task, assists operator in task
    • 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/40122Manipulate virtual object, for trajectory planning of real object, haptic display
    • 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/40131Virtual reality control, programming of manipulator
    • 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/40391Human to robot skill transfer
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/03Teaching system
    • Y10S901/04Manual lead through
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Manipulator (AREA)
  • Blow-Moulding Or Thermoforming Of Plastics Or The Like (AREA)
  • Stored Programmes (AREA)

Abstract

Los métodos y sistemas para permitir las colaboraciones entre humanos y máquinas incluyen un marco generalizable (320, 350) que admite la adaptación dinámica y la reutilización de representaciones de capacidades robóticas y comportamientos de colaboración entre humanos y máquinas. Específicamente, un método implementado por computadora (600, 700, 800) para permitir la colaboración usuario-robot incluye proporcionar (614) una composición (Figura 2, 400) de capacidades de interacción del usuario y una capacidad de robot (Tabla 1) que modela una funcionalidad de un robot (340, 380) para realizar un tipo de acción de tarea en base a un conjunto de parámetros; especializando (616, 714, 716} la capacidad del robot con un núcleo de información que encapsula el conjunto de parámetros; proporcionando (712, 714, 716) un elemento de capacidad del robot, basado en la capacidad del robot y el núcleo de información y (718) elementos de capacidad de interacción basados en las capacidades de interacción del usuario; conectar (618, 800) el elemento de capacidad de robot a los elementos de capacidad de interacción; proporcionar (620), en base a los elementos de capacidad de interacción, interfaces de usuario (310, 370, 500) para adquirir entradas de usuario (510, 520, 5.30, 540) asociadas con el conjunto de parámetros; y controlar (620), basándose en la entrada del usuario y el núcleo de información, la funcionalidad del robot a través del elemento de capacidad del robot para realizar una acción de tarea del tipo de acción de tarea. 540) asociado con el conjunto de parámetros; y controlar (620), basándose en la entrada del usuario y el núcleo de información, la funcionalidad del robot a través del elemento de capacidad del robot para realizar una acción de tarea del tipo de acción de tarea. 540) asociado con el conjunto de parámetros; y controlar (620), basándose en la entrada del usuario y el núcleo de información, la funcionalidad del robot a través del elemento de capacidad del robot para realizar una acción de tarea del tipo de acción de tarea. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Sistema y método para una colaboración hombre-máquina flexible
REIVINDICACIÓN DE PRIORIDAD
La presente solicitud se refiere a la Solicitud de Patente de EE.UU. No. !4/475.184 presentada el 2 de septiembre de 2014, titulada "System and Method for Flexible Human-Machine Collaboration", por Kelleher Guerin, Gregory D. Hager y Sebastian Riedel, solicitud de la que se reivindica la prioridad.
DECLARACIÓN DE APOYO DEL GOBIERNO
Esta invención se realizó con el apoyo del gobierno bajo la subvención No., NRI-1227277 otorgada por la Fundación Nacional de Ciencias, El gobierno de los Estados Unidos tiene ciertos derechos en esta invención.
Campo
La presente divulgación se refiere, en general, a sistemas y métodos para permitir colaboraciones hombre-máquina por medio de un marco generalizable que soporta la adaptación dinámica y la reutilización de representaciones de capacidades robóticas y comportamientos colaborativos hombre-máquina.
Antecedentes
La automatización industrial robótica ha tenido un éxito significativo en la fabricación a gran escala porque ofrece ventajas significativas a escala para tareas tales como soldadura, corte, estampado, pintado, manipulación de materiales pesados, mecanizado de materiales de precisión, etc. El éxito de la automatización robótica en la fabricación a gran escala ha llevado a un deseo consolidado de extender el uso de la automatización robótica a las pequeñas y medianas empresas de fabricación ("PYMES"). Sin embargo, a diferencia de la fabricación a gran escala, los procesos de producción de las PYMES se caracterizan típicamente por pequeños volúmenes de producción y/o alta variabilidad del producto. En consecuencia, la capacidad de amortizar la infraestructura, el personal especializado, la configuración y la programación de la automatización robótica flexible es muy reducida para las PYMES.
Los procesos de las PYMES a veces incluyen tareas que requieren un alto nivel de personalización y, por lo tanto, necesariamente involucran la habilidad y el juicio humanos. Por ejemplo, las tareas de reacondicionamiento y los procesos de fabricación bajo pedido deben adaptarse a variaciones imprevistas de las piezas de trabajo y modificaciones de los equipos. En tales casos, un proceso de producción existente centrado en el ser humano puede tener dificultades para determinar dónde o cómo la automatización robótica puede ser una adición útil a un proceso efectivo intensivo en humanos, en lugar de una duplicación o atenuación del mismo. Tomemos, por ejemplo, una PYME especializada en la fabricación de muebles a medida que cuenta con una serie de empleados altamente cualificados. Que la PYME pueda querer mejorar la eficiencia y productividad de sus empleados mediante el uso de sistemas robóticos para automatizar tareas repetitivas que implican acciones diestras, tales como tareas de perforación o lijado. Sin embargo, un sistema robótico listo para usar comercial no sería útil en este caso porque sería imposible para la PYME aprovechar el conocimiento y la experiencia de tareas existentes de sus empleados.
Por lo tanto, existe la necesidad de sistemas y métodos para superar estos y otros problemas presentados por la técnica anterior. El documento EP2129498A1 divulga un método y un aparato para programar un robot industrial que trabaja en una celda de trabajo que incluye una o más estaciones de trabajo y el robot está visitando y realizando trabajar en las estaciones de trabajo. El aparato comprende: una ubicación de memoria para almacenar código de robot preprogramado que comprende instrucciones de programa donde se realizan ajustes para parámetros opcionales, y para almacenar al menos una estación de trabajo predefinida que tiene una pluralidad de escenarios diferentes, incluyendo cada escenario un conjunto de parámetros que definen cómo el robot realizará el trabajo en la estación de trabajo, una pantalla gráfica y un dispositivo de entrada adaptado para presentar una interfaz gráfica de usuario que muestra un objeto gráfico que representa la estación de trabajo, que muestra información sobre los escenarios junto con el objeto gráfico que representa la estación de trabajo y que permite al usuario seleccionar uno de los escenarios asociados con la estación de trabajo, y un generador de programas de robot adaptado para generar un programa de robot basándose en escenarios seleccionados por el usuario y el código de robot preprogramado. El documento US2010/185328A1 divulga un robot que proporciona un servicio de proyector de acuerdo con el contexto de un usuario y un método de control del mismo. El robot incluye una unidad de detección de usuario que detecta a un usuario; una unidad de reconocimiento de usuario que reconoce al usuario; una unidad de reconocimiento de objeto que reconoce un objeto cerca del usuario; una unidad de percepción de posición que percibe las posiciones relativas del objeto y el usuario; una unidad de conocimiento de contexto que percibe el contexto del usuario basándose en información sobre el usuario, el objeto y las posiciones relativas entre el usuario y el objeto; y un proyector que proporciona un servicio de proyector correspondiente al contexto del usuario. El documento US2011/071676A1 divulga un sistema robótico que incluye un robot que tiene articulaciones, actuadores y sensores, y un controlador distribuido. El controlador incluye controlador de nivel de comando, controladores de nivel de articulación integrados, cada uno de los cuales controla una articulación respectiva, y un controlador de nivel de coordinación de articulación que coordina el movimiento de las articulaciones. Una biblioteca de datos central (CDL) centraliza todos los datos de control y retroalimentación, y una interfaz de usuario muestra el estado de cada articulación, actuador y sensor usando la CDL. Una secuencia de acción parametrizada tiene una jerarquía de eventos vinculados y permite modificar los datos de control en tiempo real. Un método para controlar el robot incluye transmitir datos de control a través de los diversos niveles del controlador, enrutar todos los datos de control y retroalimentación a la CDL, y mostrar el estado y el funcionamiento del robot usando la CDL. Las secuencias de acción parametrizadas se generan para que las ejecute el robot, y se crea una jerarquía de eventos vinculados dentro de la secuencia. El documento US2014/163730A1 divulga una solución para realizar un conjunto de tareas usando uno o más dispositivos robóticos. El dispositivo robótico se puede configurar para realizar cada tarea usando uno o más dispositivos efectores, uno o más dispositivos sensores, y una arquitectura de control híbrida que incluye una pluralidad de niveles de autonomía dinámicamente cambiables. Los niveles de autonomía pueden incluir: plena autonomía del dispositivo robótico, teleoperación del dispositivo robótico por parte de un usuario humano, y al menos un nivel de control compartido entre el sistema informático y el usuario humano. El documento US2012/016671A1 divulga un sistema y métodos para transcribir texto a partir de archivos de audio y vídeo, incluyendo un conjunto de hosts de transcripción y un sistema automático de reconocimiento de voz. Las redes de palabras de ASR se seleccionan dinámicamente de un cuadro de texto o un gráfico de redes de palabras en donde se presentan las secuencias de texto más probables al transcriptor. Las transcripciones seguras pueden lograrse segmentando un archivo de audio digital en un conjunto de fragmentos de audio para la transcripción por parte de una pluralidad de transcriptores. Ningún transcriptor conoce el texto final transcrito, sólo pequeñas porciones de texto transcrito. Se pueden lograr transcripciones seguras y de alta calidad al segmentar un archivo de audio digital en un conjunto de fragmentos de audio, enviándolos en serie a un conjunto de transcriptores y actualizando los modelos acústicos y de lenguaje en cada etapa para mejorar la precisión de la red de palabras. el documento US2013/218340A1 divulga un sistema robótico interactivo para realizar y/o simular una tarea multietapa que incluye un sistema de interfaz de usuario, un sistema de reconocimiento adaptado para comunicarse con el sistema de interfaz de usuario, un sistema de control adaptado para comunicarse con el sistema de reconocimiento, y un sistema sensor-actuador adaptado para comunicarse con el sistema de control. El sistema de reconocimiento está configurado para reconocer las acciones realizadas por un usuario mientras el usuario opera el sistema de interfaz de usuario y para dar instrucciones selectivamente al sistema de control para que haga que el sistema sensor-actuador realice y/o simule, una de una etapa automática, una etapa semiautomática o una etapa directa de la tarea multietapa en función de las acciones reconocidas y un modelo de tarea de la tarea multietapa. El documento JP2000006068A divulga la provisión de un método de control de colaboración hombre-robot y su dispositivo que puede formar una condición operable mediante la comprensión la voluntad de un ser humano y que opera en cooperación con el ser humano, y puede expresar una acción que refleja las características de un profesor de forma autónoma, y un medio de almacenamiento que almacena un programa. El documento US2006/161300A1 divulga sistemas y métodos que permiten una aplicación de software de nivel superior para controlar el movimiento de un robot a través de una interfaz de movimiento genérica. En una realización, un sistema incluye un controlador, una interfaz y un conjunto de módulos de controlador de robot. La interfaz recibe un comando del controlador y traduce el comando en otro comando para enviar a los módulos de controlador. La interfaz incluye un cliente, un servidor y una red. El servidor incluye dos interfaces: una interfaz de cliente para comunicarse con el cliente y una interfaz de controlador para comunicarse con los módulos de controlador. El servidor también incluye dos búferes: una cola de comandos y una cola de respuestas. La cola de comandos almacena los comandos recibidos del controlador (a través del cliente). La cola de respuestas almacena las respuestas recibidas de los módulos de controlador. El documento US2003/018401A1 divulga un método para optimizar una operación de fabricación que incluye recibir como datos de entrada una descripción de una pluralidad de resultados deseados de la operación, recibir, como datos de entrada, capacidades de una máquina para realizar la operación, determinar un espacio de operación que incluya un conjunto de operaciones suficiente para lograr todos de la pluralidad de resultados deseados usando las capacidades de la máquina, categorizar el espacio de operación en grupos, correspondiendo cada grupo a uno de la pluralidad de resultados deseados, en donde cualquier operación en el grupo es suficiente para lograr el correspondiente resultado, seleccionar un subconjunto del espacio de operación, comprendiendo el subconjunto al menos un representante de cada uno de los grupos, haciéndolo así suficiente para lograr todos de la pluralidad de resultados deseados, y determinando una forma corta de secuenciar las operaciones del subconjunto seleccionado.
Sumario
Muchos dominios de tarea aún tienen que aprovechar los sistemas robóticos automatizados debido a la falta de sistemas colaborativos adecuados que proporcionen una interacción flexible y eficiente con dichos sistemas robóticos. Ejemplos de dichos dominios de tarea incluyen procesos de PYME, asistencia domiciliaria para personas con discapacidad física, cirugía robótica colaborativa, etc. En estos dominios de tarea, ya sea realizar una tarea manualmente o automatizar completamente una tarea no es deseable ni práctico. Por lo tanto, existe una necesidad de sistemas y métodos robóticos colaborativos que proporcionen interacciones usuario-robot flexibles y eficientes y sean eficaces en una amplia gama de tareas con duración, complejidad y restricciones en la interacción del usuario variables,
De acuerdo con un primer aspecto de la invención, se proporciona un método implementado por ordenador como se establece en la reivindicación 1. De acuerdo con un segundo aspecto de la invención, se proporciona un sistema como se establece en la reivindicación 19. De acuerdo con un tercer aspecto de la invención, se proporciona un medio de almacenamiento legible por ordenador no transitorio como se establece en la reivindicación 20.
Un sistema robótico colaborativo de ejemplo de acuerdo con diversas realizaciones puede instruirse o entrenarse de una manera generalizable para realizar una amplia gama de tareas y ser capaz de cambiar entre tareas con soltura sin entrenamiento de nuevo. El sistema robótico colaborativo admite operaciones colaborativas hombre-robot para rangos de papeles de usuario y capacidades de robots, y modeliza sistemas hombre-robot a través de conjuntos de capacidades de robots y comportamientos colaborativos que relacionan las capacidades de los robots con capacidades de interacción del usuario específicas, que son interfaces de usuario o paradigmas de interacción, La capacidad de un robot se puede combinar con otras capacidades de robot y especializarse para tareas específicas. Para realizar tareas, el sistema robótico colaborativo puede adaptar dinámicamente las capacidades de robot usando información o parámetros relacionados con diversas tareas, tales como potencialidades de herramienta o restricciones de comportamiento de herramienta, primitivas de movimiento de herramienta y plantillas de fundamentación perceptivas. Para una tarea y capacidad de robot específicas, el sistema robótico colaborativo debe determinar una o más modalidades de interacción del usuario requeridas por la capacidad de robot para realizar la tarea, sujetas a las limitaciones de las interfaces disponibles. Por lo tanto, un comportamiento colaborativo, que, incluye una composición de una o más capacidades de robot y una o más capacidades de interacción del usuario, debe asignar las capacidades de interacción del usuario a las capacidades de robot para cumplir con los requisitos de las capacidades de robot para la interacción del usuario.
Realizaciones de la presente divulgación se refieren a sistemas y métodos para permitir colaboraciones hombremáquina por medio de un marco generalizable que soporta la adaptación dinámica y la reutilización de representaciones de capacidades robóticas y comportamientos colaborativos hombre-máquina. Específicamente, un método implementado por ordenador para permitir la colaboración usuario-robot incluye proporcionar una composición de una capacidad de robot y una o más capacidades de interacción del usuario, en donde la capacidad de robot modeliza al menos una funcionalidad de un robot para realizar un tipo de acción de tarea basándose en un conjunto de uno o más parámetros; especializar la capacidad de robot con un núcleo de información, en donde el núcleo de información encapsula el conjunto de uno o más parámetros; proporcionar un elemento de capacidad de robot basándose en la capacidad de robot y el núcleo de información, en donde el elemento de capacidad de robot es una instancia de la capacidad de robot; proporcionar uno o más elementos de capacidad de interacción basándose en las una o más capacidades de interacción del usuario, en donde los uno o más elementos de capacidad de interacción son instancias de las una o más capacidades de interacción del usuario; conectar el elemento de capacidad de robot a los uno o más elementos de capacidad de interacción; proporcionar, basándose en los uno o más elementos de capacidad de interacción, una o más UI para adquirir la entrada de usuario asociada con el conjunto de uno o más parámetros; y controlar, basándose en la entrada de usuario y el núcleo de información, la al menos una funcionalidad del robot por medio del elemento de capacidad de robot para realizar una acción de tarea del tipo de acción de tarea.
Objetos y ventajas adicionales de las realizaciones de la divulgación se expondrán en parte en la descripción que sigue, y en parte serán obvias a partir de la descripción, o pueden aprenderse mediante la práctica de las realizaciones. Los objetos y ventajas de las realizaciones se realizarán y alcanzarán por medio de los elementos y combinaciones señalados particularmente en las reivindicaciones adjuntas.
Debe entenderse que tanto la descripción general anterior como la siguiente descripción detallada son solo ilustrativas y explicativas y no son restrictivas de las realizaciones, de acuerdo con lo reivindicado.
Breve descripción de los dibujos
La figura 1A es un diagrama que ilustra ejemplos de diversos tipos de restricciones de comportamiento de herramienta asociadas con diversos tipos de herramienta, consistentes con realizaciones de la presente divulgación.
La figura 1B muestra un entorno de realidad virtual inmersivo en el que un usuario puede interactuar con un avatar del robot para especificar trayectorias de movimiento, consistentes con realizaciones de la presente divulgación. La figura 2 ilustra un ejemplo de un comportamiento colaborativo que incluye una composición de capacidades conectada al usuario y al robot.
Las figuras 3A y 3B ilustran ejemplos de realización de un sistema colaborativo hombre-máquina consistente con los principios de la presente divulgación.
La figura 4 ilustra un ejemplo de un manifiesto de comportamiento que especifica componentes de comportamiento requeridos por un comportamiento colaborativo, consistentes con los principios de la presente divulgación.
La figura 5 ilustra un ejemplo de interfaces de usuario proporcionadas por el sistema colaborativo hombre-máquina, consistentes con los principios de la presente divulgación.
La figura 6 es un diagrama de flujo que ilustra un método de ejemplo para permitir colaboraciones hombre-máquina por medio de un marco generalizable que admite la adaptación dinámica y la reutilización de representaciones de capacidades robóticas y comportamientos colaborativos hombre-máquina, consistentes con realizaciones de la presente divulgación.
Las figuras 7 y 8 son diagramas de flujo que ilustran métodos de ejemplo para proporcionar diversos tipos de capacidades y enlaces para implementar comportamientos colaborativos hombre-máquina, consistentes con realizaciones de la presente divulgación.
La figura 9 es un diagrama de flujo que ilustra un método de ejemplo para componer comportamientos colaborativos hombre-máquina, consistentes con realizaciones de la presente divulgación.
La figura 10 es un sistema informático de ejemplo para realizar las realizaciones divulgadas, consistentes con la presente divulgación.
Descripción detallada
Ahora se hará referencia en detalle a ejemplos de realización, que se ilustran en los dibujos adjuntos. Cuando corresponda, se usan los mismos números de referencia en todos los dibujos para referirse a las mismas partes o partes similares.
Para simplificar y con fines ilustrativos, los principios de la presente divulgación se describen haciendo referencia principalmente a ejemplos de realización de los mismos. Sin embargo, un experto habitual en la materia reconocería fácilmente que los mismos principios son igualmente aplicables a, y pueden implementarse en, todos los tipos de información y sistemas, y que dichas variaciones no se apartan del alcance de la presente divulgación. Asimismo, en la siguiente descripción detallada, se hace referencia a las figuras adjuntas, que ilustran ejemplos de realización específicos. Se pueden realizar cambios eléctricos, mecánicos, lógicos y estructurales en los ejemplos de realización sin apartarse del alcance de la presente divulgación. La siguiente descripción detallada, por lo tanto, no debe tomarse en un sentido limitante y el alcance de la presente divulgación se define por las reivindicaciones adjuntas.
La creciente prevalencia de robots industriales seguros para los humanos está estimulando el interés en los sistemas robóticos colaborativos, con los que los usuarios humanos y los robots interactúan en torno a un conjunto de tareas semiestructuradas, para las PYMES y otros dominios de tareas emergentes, tales como la ayuda a las personas mayores o discapacitadas y la robótica quirúrgica colaborativa. El rango de tareas que se realizan en estos dominios de tarea puede cambiar rápidamente, por lo tanto, existe una necesidad de que los sistemas robóticos colaborativos se adapten con soltura entre tareas sin requerir una reprogramación completa.
Diversas realizaciones de la presente divulgación incluyen sistemas y métodos para permitir colaboraciones hombremáquina por medio de un marco que admite una amplia familia de patrones de uso y diseño de colaboración. Un sistema de ejemplo de colaboración hombre-máquina de acuerdo con diversas realizaciones de la presente divulgación implementa un marco generalizable que admite la composición, la adaptación dinámica y la administración de representaciones de capacidades de robot reutilizables, para permitir al menos un modo específico de funcionamiento, entrenamiento, resolución de problemas o reasignación de tareas de uno o más robots por parte de uno o más usuarios humanos. La adaptación dinámica de las representaciones de capacidad robótica incluye generalizar información y parámetros capturados por el sistema colaborativo sobre herramientas, piezas de trabajo y/o el entorno de trabajo de un robot, que el sistema colaborativo puede almacenar en representaciones generales de capacidad de robot y reutilizar para diversos tipos de acciones de tarea. Los tipos de acción de tarea pueden incluir, por ejemplo, restricción de movimiento, reproducción instantánea del movimiento, generación de trayectorias, y similares. La adaptación dinámica de las representaciones de capacidad robótica también incluye la especialización de las representaciones generales de capacidad de robot para realizar acciones de tarea específicas. El marco generalizable admite la composición, la reutilización y la administración de comportamientos colaborativos hombremáquina, que incluyen composiciones de representaciones de capacidad, por ejemplo, capacidades de robot y capacidades de interacción del usuario, y asignaciones entre las representaciones de capacidad. Al implementar el marco generalizable, el sistema colaborativo puede ser instruido o entrenado de una manera generalizable para realizar una amplia gama de tareas y acciones de tarea, y puede cambiar entre tareas con soltura sin entrenamiento de nuevo o reprogramación completa.
En la presente divulgación, se usará la palabra "robot" en lugar de manipulador robótico o conjunto de manipuladores robóticos. Típicamente, un robot es un manipulador robótico industrial o un conjunto de manipuladores robóticos industriales para aplicaciones de producción automatizadas o semiautomatizadas. El espacio envolvente de un robot es el rango de movimiento sobre el cual el robot puede moverse o alcanzar físicamente, que incluye un conjunto de puntos en el espacio que pueden ser alcanzados por el efector final del robot, que puede ser un efector de herramienta unido al robot o una herramienta agarrada o sostenida por un efector final de tipo pinza unido al robot. Por ejemplo, el espacio envolvente del robot puede incluir el rango de movimiento sobre el cual un punto efector de herramienta ("TEP") del robot puede moverse o alcanzar físicamente. El TEP del robot se puede definir como un punto de referencia en una nube de puntos del efector de herramienta unido al robot (por ejemplo, un punto seleccionado por el usuario, el punto final del efector de herramienta, su punto de unión al robot, etc.) o la herramienta agarrada por el efector final del robot (por ejemplo, un punto seleccionado por el usuario, el punto final de la herramienta, el punto en el que el efector final agarra la herramienta, etc.). El tamaño y la forma del espacio envolvente del robot dependen de la geometría de coordenadas del robot y están influenciados por el diseño del robot, tal como la configuración del robot (por ejemplo, tipos de articulaciones, el rango de movimiento de las articulaciones, longitudes de enlaces que conectan las articulaciones, etc.), el número de grados de libertad ("DOF"), y similares. En algunas realizaciones, el tamaño y la forma del espacio envolvente del robot también pueden estar influenciados por el tamaño y la forma del efector de herramienta unido al robot o la herramienta agarrada por el efector final del robot. El robot puede realizar el trabajo dentro de su espacio de trabajo máximo, que generalmente contiene todos o casi todos los puntos en el espacio envolvente del robot. El sistema colaborativo puede restringir el espacio de trabajo del robot a un subconjunto de los puntos en el espacio de trabajo máximo del robot para imponer o aplicar una o más restricciones, como se describe con más detalle a continuación.
A través del marco generalizable, el sistema colaborativo puede interactuar con al menos un usuario humano para capturar el conocimiento de tarea usado para realizar una tarea colaborativamente con al menos un robot, y a continuación adaptar el conocimiento de tarea capturado para realizar de forma colaborativa otras tareas con el robot y/o al menos otro robot, de manera eficiente y transferible. Este sistema colaborativo se vuelve más capaz a medida que se captura más conocimiento de tarea, y a medida que el sistema colaborativo se vuelve más capaz, se necesita menos información por parte del usuario por tarea. Asimismo, la naturaleza del conocimiento asignado capturado puede progresar desde un nivel bajo (por ejemplo, demostración manual de trayectorias densas) a un nivel superior (por ejemplo, entradas de apuntar y hacer clic, comandos verbales, etc.). A medida que aumenta la capacidad del sistema y disminuye la necesidad de una interacción del usuario detallada, el sistema colaborativo puede reducirse para nuevas aplicaciones e introducirse gradualmente en entornos que clásicamente no han incorporado la automatización debido a la falta de estructura o modelización del entorno.
En diversas realizaciones, el marco generalizable define y proporciona modelos para (1) capacidades, que son funciones de orden superior que asignan información de entrada a información de salida o acciones basadas en parámetros que cambian con poca frecuencia, y (2) comportamientos colaborativos, que son asignaciones entre al menos una dimensión desconocida de una tarea a al menos una interfaz apropiada para que el usuario humano trabaje con el robot para completar la tarea. El marco generalizable puede proporcionar diferentes clases de capacidades, incluyendo capacidades de robot y capacidades de interacción del usuario. Las capacidades de robot sirven como representaciones de capacidades robóticas reutilizables que pueden especializarse para tareas específicas, y una capacidad de robot modeliza al menos una funcionalidad del robot en tiempo de ejecución y puede conectarse a una capacidad de interacción del usuario u otras capacidades de robot. Las capacidades de interacción del usuario proporcionan una o más modalidades de interfaz al usuario, ya sea requiriendo comandos de entrada o mostrando retroalimentación. Mediante el uso de capacidades y comportamientos colaborativos proporcionados por el marco generalizable, el sistema colaborativo proporciona una estructura del entorno para colaboraciones flexibles hombrerobot que pueden explicar la naturaleza dinámica de las interacciones colaborativas.
El sistema colaborativo puede crear una capacidad de robot general al capturar y generalizar información de una situación, y a continuación especializar la capacidad de robot general para situaciones diferentes e incluso novedosas instanciando y parametrizando la capacidad de robot general con uno o más parámetros específicos de situación. Una capacidad de robot general modeliza al menos una funcionalidad del robot para usar una herramienta unida de un tipo de herramienta para realizar un tipo de acción de tarea que requiere un conjunto de parámetros relacionados con la tarea. En diversas realizaciones, el sistema colaborativo puede adaptar dinámicamente las capacidades de robot para acciones de tarea de diversos tipos basándose en tres tipos de parámetros relacionados con la tarea: restricciones de comportamiento de herramienta o potencialidades de herramienta, primitivas de movimiento de herramienta y plantillas perceptivas.
Se puede determinar una restricción de comportamiento de herramienta para una herramienta basándose en al menos una potencialidad de herramienta de la herramienta. Una potencialidad de herramienta es una o más características, propiedades, atributos o características de la herramienta que ofrece o permite a una entidad (por ejemplo, un robot, una persona, otra herramienta, y similares) realizar una o más acciones con la herramienta. El sistema colaborativo puede capturar información por medio de demostraciones de movimiento, parámetros sobre herramientas y piezas de trabajo, y parámetros que relacionan una o más acciones de tarea con el entorno de trabajo del robot. La información capturada puede encapsularse y generalizarse y a continuación almacenarse en una representación de capacidad de robot reutilizable. Por ejemplo, ciertos parámetros de perforación son válidos para más de un tipo de broca o pieza de trabajo, y las demostraciones de movimiento pueden definir movimientos arquetípicos que se pueden modular para una situación específica, tales como movimientos de perforación lineales paralelos a un eje longitudinal de una broca unida.
El sistema colaborativo puede crear un comportamiento colaborativo al componer una o más capacidades de robot para realizar acciones de tarea específicas o acciones de tarea de tipos específicos en una composición de capacidades de robot, y asignar una o más capacidades de interacción del usuario que cumplan con el requisito de capacidades de robot para interacción del el usuario a las capacidades de robot. Para proporcionar asistencia o aumento robótico específico de tareas o subtareas, el sistema colaborativo puede modificar la composición de capacidades de robot y/o especializar las capacidades de robot para las necesidades específicas de una tarea dada a través de la demostración del usuario final y/o parametrización e interacción ligeras. El sistema colaborativo admite la adaptación dinámica de capacidades de robot existentes y los comportamientos colaborativos para realizar nuevas tareas, facilitando así el entrenamiento rápido de robots para tareas simples y permitiendo una interacción flexible con diversas herramientas y piezas de trabajo que hace que el entrenamiento de robots para tareas complejas sea más intuitivo. Al implementar el marco generalizable, el sistema colaborativo permite una programación, reprogramación, capacitación y entrenamiento de nuevo simples e intuitivos de robots por parte de usuarios (por ejemplo, usuarios finales, ingenieros en el sitio, y similares), a través de interacción del usuario, demostración de usuario, interacción flexible con diversas herramientas y piezas de trabajo, y similares.
El sistema colaborativo puede descargar el conocimiento de tarea y la autoridad para usar ese conocimiento, que se implementa usando instancias de capacidades de robot en forma de elementos de capacidad de robot ("elementos RC"), sobre el robot. El sistema colaborativo también proporciona elementos de interfaz de usuario ("UI") apropiados, que se implementan usando instancias de capacidades de interacción del usuario en forma de elementos de capacidad de interacción del usuario ("elementos IC"), para que el usuario colabore con, interactúe con y/o dé entradas al robot. El conjunto de elementos de capacidad (por ejemplo, elementos RC y elementos IC) necesarios para realizar una tarea pueden variar dependiendo de la complejidad de la tarea, porque el conocimiento de tarea, la autoridad para usar ese conocimiento y la entrada de usuario requerida para realizar la tarea pueden cambiar con esa complejidad.
CAPACIDADES
Una capacidad se define como una función de orden superior que asigna información de entrada a información de salida o acción basándose en un núcleo de información, que se define como uno o más parámetros que cambian con poca frecuencia. Sin pérdida de generalidad, dichos parámetros pueden ser funciones que se evalúan en tiempo de ejecución. El sistema colaborativo puede usar una capacidad para ejecutar con éxito una o más acciones robóticas en un entorno dinámico e incierto.
Más formalmente, una capacidad C puede definirse como C(k) : y ^ 0 , dónde k es el núcleo de información, y es el conjunto de entradas a la capacidad, y 0 es el conjunto de salidas. Si el núcleo de información k es indefinido, entonces la capacidad C se considera no instanciada o general, y por tanto carece de la información necesaria para operar en las entradas y. El marco generalizable también define dos operadores de composición: composición en serie, O, y composición en paralelo, ©. Mediante el uso de operadores de composición, la capacidad C puede estar compuesta por otras capacidades. Por tanto, la capacidad C puede ser una composición de otras capacidades y considerarse una capacidad compuesta. Por el contrario, la capacidad C puede considerarse una capacidad base si la capacidad C no incluye otras capacidades.
El operador de composición en serie, O, es generalmente no conmutativo y
representa conectar las salidas de una capacidad a las entradas de otra capacidad:
â Í Ka ) O Cg { KB')\yA ^0>B
El operador de composición en paralelo, ©, es conmutativo y representa la unión de dos capacidades:
Ca Í^ a) ® C B{KB)\yA Uys) ^ ( 0 J4 U 0 S)
En la composición en paralelo, las salidas 0a y 0b se supone que son disjuntos sin pérdida de generalidad porque las capacidades se pueden componer con una función de decisión que selecciona salidas conflictivas de Ca o Cb, Adicionalmente, ambos tipos de composición de capacidades requieren la unión de núcleos de información para las capacidades compuestas.
Las capacidades se pueden clasificar en capacidades de interacción del usuario y capacidades de robot. Una capacidad de interacción del usuario U e Ú, dónde Ú es el conjunto de todas las capacidades de interacción del usuario disponibles para el sistema colaborativo, proporciona una o más modalidades de interfaz al usuario, ya sea requiriendo comandos de entrada o mostrando retroalimentación.
Una capacidad de robot R e R donde R es el conjunto de todas las capacidades de robot disponibles para el sistema colaborativo, modeliza al menos una funcionalidad del robot en tiempo de ejecución y puede conectarse a una o más capacidades de interacción del usuario y/o una o más capacidades de robot. En la tabla 1 se muestran ejemplos de capacidades de robot.
Figure imgf000007_0001
Tabla 1: Ejemplos de capacidades de robot
La capacidad de robot R puede ser inicialmente general o no instanciada, y de esta forma es generalizable para un espacio de tareas y acciones de tarea definidas por la parametrización del núcleo de información k . El sistema colaborativo puede parametrizar la capacidad de robot R con núcleo de información k para una situación específica para formar una capacidad de robot instanciada R(k). El sistema colaborativo puede operar, a continuación, la capacidad de robot instanciada R(k) con la entrada y para producir la salida 0, tal como ordenar al robot que realice una o más acciones de tarea específicas.
Para realizar una tarea de ejemplo de perforación de orificios con precisión colaborativamente con el robot que impone restricciones de movimiento, el sistema colaborativo requiere dos capacidades: una capacidad de interacción del usuario que recibe comandos de pose a partir del usuario y una capacidad de robot general Rmc que mueve el robot sujeto a las restricciones impuestas por un núcleo de información que describe un taladro particular. Un ejemplo de capacidad de robot general Rmc se muestra en la tabla 1. Dado un núcleo de información Ktaiadro que contiene restricciones de movimiento comunes necesarias para usar taladros, el sistema colaborativo puede instanciar la capacidad de robot general Rmc para formar una capacidad de robot instanciada Rmc(Ktaiadro) para proporcionar una restricción de movimiento de taladro. En este ejemplo, el núcleo de información Ktaiadro encapsula parámetros para asignar una característica geométrica del taladro a una restricción cartesiana, y el sistema colaborativo puede reutilizar estos parámetros para cualquier herramienta con la misma característica (por ejemplo, otros taladros). Además, el sistema colaborativo puede instanciar la capacidad de robot general Rmc para restringir no solo taladros, sino también otras herramientas sin cambiar sus interfaces y y 0.
Especialización de capacidades
El usuario usa el sistema colaborativo para especializar capacidades a través de instrucciones que definen núcleos de información basándose en un conjunto de parámetros y demostraciones especificados, y también puede incluir otra información proporcionada por el usuario. Una instrucción se puede definir como un método de usar una demostración o parametrización del usuario para crear un nuevo núcleo de información o especificar parámetros de un núcleo de información existente. Usando la tarea de ejemplo descrita anteriormente de perforar orificios con precisión, para especializar la capacidad de robot Rmc para perforar, el usuario puede realizar una instrucción Itaiadro especificando una asignación de geometría de perforación a geometría de restricción. El sistema colaborativo puede encapsular esta asignación en Ktaiadro y al hacerlo, especializar R mc a Rmc(Ktaiadro).
El sistema colaborativo puede especializar capacidades basándose en diversas clases de información útil para realizar diversos tipos de acciones de tarea, incluyendo (1) potencialidades de herramienta usando restricciones de comportamiento de herramienta, (2) trayectorias de movimiento usando TMP, y (3) fundamentación perceptiva usando plantillas perceptivas. Por ejemplo, el sistema colaborativo puede especializar una capacidad en respuesta a que el usuario realice una instrucción para especializar la capacidad, especificando la instrucción (1) un control de comportamiento de la herramienta que describe cómo funciona una herramienta y proporciona uno o más controles de comportamiento sobre el uso de la herramienta para realizar acciones de tarea, (2) una TMP que describe uno o más movimientos involucrados en la realización de una acción de tarea y/o (3) una plantilla perceptiva que proporciona uno o más controles de comportamiento en el contexto del entorno de trabajo del robot. Los expertos en la materia apreciarán que se pueden usar otras clases de información para especializar una capacidad sin apartarse del alcance de la presente divulgación.
Restricciones de comportamiento de herramienta
Las herramientas generalmente se diseñan con un determinado caso de uso en mente, particularmente en el dominio de la fabricación industrial, lo que generalmente implica restricciones en los movimientos que se pueden hacer con las herramientas para realizar tareas. El marco implementado por el sistema colaborativo formaliza este aspecto del uso de herramientas como restricciones de comportamiento de herramienta. Más en particular, una restricción de comportamiento de herramienta asociada con una herramienta describe una noción preconcebida de cómo funciona la herramienta y proporciona uno o más controles de comportamiento y/o restricciones de movimiento sobre el uso de la herramienta para realizar una o más acciones de tarea. Se puede determinar la restricción de comportamiento de herramienta basándose en al menos una potencialidad de herramienta de la herramienta. La potencialidad de herramienta se define como uno o más rasgos distintivos, propiedades, atributos o características de la herramienta que posibilita o permite que una entidad realice una o más acciones con la herramienta. Cuando el usuario desea que el robot realice o ayude en una tarea que requiera el uso de la herramienta u otra herramienta que tenga características y rasgos distintivos sustancialmente idénticos a las de la herramienta, el usuario puede parametrizar al menos una restricción de comportamiento de herramienta asociada con la herramienta para darle al robot una noción de cómo se puede usar la herramienta para realizar la tarea. El usuario puede parametrizar la restricción de comportamiento de herramienta especificando la geometría de la herramienta, donde el robot agarra o fija la herramienta, etc.
Al modelizar las capacidades de robot concernientes a herramientas, el sistema colaborativo puede aprovechar el hecho de que cada herramienta o tipo de herramienta tiene características geométricas que permiten una acción útil y, de este modo, imponen una restricción a los movimientos que pueden lograr la acción útil. Por ejemplo, la broca cilíndrica de un taladro restringe el movimiento del taladro a lo largo de una línea, y cuando se usa un taladro para perforar orificios, una broca adjunta define una dirección de traslación axial; restricciones similares se aplican a un troquelador o un estampador de chapa. En otro ejemplo, una herramienta de lijado o pulido generalmente tiene una superficie operativa plana, que restringe el movimiento de la herramienta al contacto tangencial a lo largo de la superficie operativa plana. De manera similar, diversas restricciones de comportamiento de la herramienta se aplican a otras aplicaciones de herramienta, tales como una herramienta de corte, que a menudo está restringida a líneas rectas o curvas.
Más formalmente, una herramienta t se puede representar como una 3-tupla t = (r, A, G), dónde r es una representación o modelo de la geometría tridimensional ("3-D") de la herramienta t, A = (ao, ai,..., an) es un conjunto de restricciones de comportamiento, y G = (go, gi,..., gn) es un conjunto de configuraciones de agarre relativas a la representación r. El sistema colaborativo puede usar la herramienta t para representar una herramienta específica o cualquier herramienta en una clase específica de herramientas que comparten características y rasgos distintivos sustancialmente idénticos. Suponiendo un efector final fijo, gi e SE(3) es una posición específica relativa a la herramienta. Cada restricción de comportamiento es, a su vez, un par a = (p, g), donde p e SE(3) es un marco de restricción y q es un tipo de restricción, es decir, q e {eje, curva, ángulo, plano,...}. Para la herramienta t, el sistema colaborativo puede generar un marco de restricción p basándose en un tipo de restricción q ajustando la representación r de la herramienta t al tipo de restricción q. La representación r puede modelizar la herramienta t entera o en parte. Asignando la geometría de la herramienta t en forma de representación r al tipo de restricción q, el sistema colaborativo puede formar un núcleo de información reutilizable Kt para especializar una capacidad de robot R (por ejemplo, la capacidad de restricción de movimiento Rmc como se muestra en la tabla 1) en una capacidad de robot especializada R(Kt). Cuando la herramienta t está unida al robot, el sistema colaborativo puede operar la capacidad de robot especializada R(Kt) para controlar el robot. En la tabla 2 se muestran ejemplos de diversos tipos de restricciones de comportamiento de herramienta y se ilustran en la figura 1A.
Figure imgf000009_0001
Tabla 2: Ejemplos de tipos de restricción
Cuando el robot agarra o captura una herramienta, el sistema colaborativo puede usar una o más restricciones de comportamiento de herramienta asociadas con la herramienta para definir una o más restricciones que permitan que el movimiento de la herramienta se resuelva en DOF restringido y DOF controlado externamente, por ejemplo, mediante el uso de métodos de proyección de espacio nulo. Por ejemplo, el sistema colaborativo puede especificar una restricción de comportamiento de herramienta asociada con la herramienta comenzando con una representación de las características geométricas de la herramienta, tales como una nube de puntos 3-D de la herramienta. El sistema colaborativo puede proporcionar la representación de la herramienta haciendo que el usuario seleccione una representación existente, genere una nueva representación, o seleccione y modifique una representación existente. En diversas realizaciones, el sistema colaborativo también puede proporcionar de forma autónoma la representación de la herramienta. El usuario puede usar el sistema colaborativo para seleccionar de forma interactiva una región de la nube de puntos como origen de la herramienta y a continuación seleccionar un tipo de restricción. Basándose en la región seleccionada y el tipo de restricción, el sistema colaborativo puede determinar el marco de la punta de herramienta y una o más restricciones de comportamiento de herramienta con respecto al origen de la herramienta. El sistema colaborativo puede asignar cualquier región de la herramienta a una restricción de comportamiento de herramienta basándose en la selección del usuario. El sistema colaborativo también puede seleccionar cualquier región de la nube de puntos de la herramienta o usar el origen de la herramienta o el marco de la punta de herramienta como el TEP de la herramienta basándose en la selección del usuario u otras consideraciones.
Por ejemplo, suponiendo que una herramienta ti es un taladro, el sistema colaborativo puede proporcionar una representación en 3-D ri del taladro que incluye una representación rbroca de una broca adjunta y a continuación seleccionar "eje" como tipo de restricción qi. Por tanto, cuando la herramienta ti está unida al robot, la representación ri o rbroca impone una restricción axial en los movimientos del robot mientras el robot usa la herramienta ti para realizar tareas de perforación. Asignando la geometría de la herramienta ti en forma de representación ri y/o la broca adjunta en forma de representación rbroca al tipo de restricción qi, el sistema colaborativo puede formar un núcleo de información reutilizable de 6 DOF Ktaladro para especializar, por ejemplo, la capacidad de robot de restricción de movimiento Rmc (como se muestra en la tabla i ) en la capacidad de robot especializada Rmc(Ktaladro). El sistema colaborativo puede entonces operar la capacidad de robot especializada Rmc(Ktaladro) para restringir el movimiento del robot cuando usa la herramienta ti.
Primitivas de movimiento de herramienta
Las TMP describen los movimientos que hace un robot con una herramienta para realizar una tarea; la herramienta puede ser una herramienta específica o cualquier herramienta en una clase de herramientas que comparten características y rasgos distintivos similares o incluso sustancialmente idénticos. En diversas realizaciones, el sistema colaborativo puede representar movimientos reutilizables como TMP de una manera que captura rasgos distintivos y parámetros relacionados con la herramienta mientras deja otros parámetros sin restringir. Las TMP pueden extender las primitivas de movimiento dinámico ("DMP"), que proporcionan una base para representaciones de movimiento reutilizables que se pueden volver a parametrizar mientras se mantiene la estructura del movimiento.
Una TMP puede encapsular datos de trayectoria en el contexto de la herramienta y uno o más puntos u otras restricciones en el espacio de trabajo y/o entorno del robot. Más formalmente, una TMP T se puede representar como T = (a, d), dónde a = (p, q) es una restricción de comportamiento de herramienta asociada con la herramienta y d denota una trayectoria demostrada. La TMP T puede ser una DMP construida en uno de los marcos de restricción de comportamiento de herramienta p i ... p, permitiendo así que el sistema colaborativo capture la orientación o alineación relativa entre la herramienta y el marco de trayectoria, en lugar de la orientación del efector final del robot con respecto a algún marco mundial arbitrario. De esta forma, una capacidad de robot (por ejemplo, una capacidad de reproducción instantánea del movimiento Rr o una capacidad de generador de trayectorias Rtg como se muestra en la tabla 1) especializada por la TMP T se puede volver a parametrizar para diferentes entornos de trabajo, y el movimiento se puede reutilizar apropiadamente para cualquier herramienta que comparta la restricción de comportamiento de herramienta especificada en la TMP T.
El sistema colaborativo puede generar una TMP asociada con la herramienta adquiriendo primero datos de trayectoria por medio de demostración del usuario, UI relevantes, o una combinación de las mismas, y a continuación generalizar los datos de trayectoria para su uso en diversas tareas que implican el uso de la herramienta. Los datos de trayectoria describen uno o más movimientos involucrados en el uso de la herramienta para realizar acciones para completar la tarea. El sistema colaborativo puede adquirir los datos de la trayectoria por medio de la demostración del usuario al introducir un modo de aprendizaje, hacer que el usuario demuestre los movimientos y percibir o sentir los movimientos demostrados para capturar los datos de la trayectoria.
Usando una tarea de lijado como ejemplo, el usuario puede demostrar una trayectoria de lijado en espiral con una lijadora que avanza hacia fuera desde un punto de partida, en plano con la cara de la lijadora. El sistema colaborativo puede adquirir o capturar la forma de la trayectoria de lijado en espiral y la alineación u orientación de la lijadora con respecto a la dirección de la trayectoria. Por ejemplo, el sistema colaborativo puede capturar que la cara de la lijadora es paralela a la dirección de la trayectoria. El sistema colaborativo también puede generar una TMP Tiijadora que encapsula la trayectoria de lijado en espiral en el contexto del punto de partida y la alineación u orientación de la lijadora en el contexto de la dirección de la trayectoria de lijado en espiral.
Después de la adquisición de datos de trayectoria, el sistema colaborativo puede generar la TMP generalizando los datos de trayectoria. El sistema colaborativo puede adaptar o volver a parametrizar la TMP para una nueva tarea basándose en, por ejemplo, un punto especificado por el usuario y/o una plantilla perceptiva asociada con la nueva tarea. En diversas realizaciones, el sistema colaborativo puede adquirir la t Mp haciendo que el usuario mueva el robot por medio del control de admisión a lo largo de una trayectoria de pose de 6 DOF. El sistema colaborativo puede almacenar la trayectoria de la pose como una DMP o una TMP, que se puede usar generativamente para crear un movimiento novedoso dados uno o más puntos objetivo en el espacio de trabajo o entorno del robot y/o una o más plantillas perceptivas. El sistema colaborativo también puede almacenar la trayectoria de pose en relación con la pose inicial del robot, de modo que al generar un movimiento novedoso, el sistema colaborativo pueda restringir el movimiento al marco de la punta de herramienta de una herramienta adjunta y no a un sistema de coordenadas arbitrario. Para restricciones de comportamiento de herramienta y TMP encapsuladas en capacidades, el sistema colaborativo puede guardar el marco resultante, información geométrica, trayectoria y otros datos en al menos una base de datos ligera que está disponible para otras capacidades. Usando la TMP de ejemplo Tajadora descrita anteriormente, el sistema colaborativo puede aplicar la trayectoria de lijado en espiral correctamente, por ejemplo en una dirección paralela a la cara de la lijadora, incluso si la TMP Tajadora fue grabada con una lijadora cuya cara estaba montada en un ángulo diferente.
En diversas realizaciones, el sistema colaborativo puede imponer una o más restricciones de comportamiento de herramienta aplicables asociadas con una herramienta cuando el usuario está demostrando uno o más movimientos involucrados en la realización de una tarea con la herramienta. Más en particular, durante una demostración de usuario, el sistema colaborativo puede imponer o aplicar las restricciones de comportamiento de herramienta aplicables restringiendo el espacio de trabajo del robot a un subconjunto de puntos dentro del espacio de trabajo máximo del robot. Cuando el usuario aplica una fuerza sobre o cerca de la herramienta para dirigir o guiar el robot durante la demostración del usuario, la fuerza aplicada por el usuario puede tener uno o más componentes en una o más direcciones no deseables que harían que el robot (por ejemplo, el TEP del robot) salga de su espacio de trabajo restringido. Para abordar esto, el sistema colaborativo puede dar instrucciones al robot para que permanezca dentro de o regrese al espacio de trabajo restringido. Se puede dar instrucciones al robot para que permanezca dentro del espacio de trabajo restringido resistiendo solo los componentes de la fuerza aplicada por el usuario en las direcciones no deseadas, resistiendo la fuerza aplicada por el usuario en su totalidad, o similar. Se puede dar instrucciones al robot que regrese al espacio de trabajo restringido proporcionando retroalimentación de fuerza negativa (por ejemplo, por medio del control de impedancia, vibración u otras formas de retroalimentación háptica, etc.), moviendo el robot a un punto en el espacio de trabajo restringido y/o reorientando el robot cuando sea seguro para el usuario, o similar. Al imponer las restricciones de comportamiento de herramienta aplicables asociadas con la herramienta, el sistema colaborativo permite al usuario demostrar con mayor precisión y eficacia cómo usar la herramienta. El sistema colaborativo puede imponer las restricciones de comportamiento de herramienta aplicables durante la demostración de movimiento, por ejemplo, formando un núcleo de información Kherramienta para la herramienta, especializando la capacidad de restricción de movimiento Rmc con el núcleo de información Kherramienta en una capacidad de robot especializada Rmc(Kherramenta), proporcionando una instancia de capacidad de robot especializada Rmc(Kherramenta) como un elemento RC, y operar el elemento RC para controlar el robot en conformidad con las restricciones de comportamiento de herramienta aplicables.
Por ejemplo, durante una demostración de usuario de un movimiento de perforación para realizar la tarea de perforación descrita anteriormente, el sistema colaborativo puede dar instrucciones al robot para que permita que el usuario mueva el taladro sólo en un movimiento lineal mientras el taladro está activado, lo que ayuda al usuario a hacer una demostración precisa de acción única. El sistema colaborativo puede hacerlo restringiendo el espacio de trabajo del robot a un conjunto de puntos en una línea recta a lo largo del eje longitudinal de una broca unida al taladro. Mientras el taladro está activado, si el usuario intenta dirigir el robot por medio de fuerza aplicada por el usuario para que desvíe de la línea a lo largo del eje longitudinal de la broca, el sistema colaborativo puede dar instrucciones al robot para que se mueva sólo en la dirección a lo largo del eje longitudinal de la broca, por ejemplo, resistiendo uno o más componentes de la fuerza aplicada por el usuario en una o más direcciones no deseables (por ejemplo, permitiendo solamente el componente de la fuerza aplicada por el usuario en la dirección a lo largo del eje longitudinal de la broca). Como alternativa o además, el sistema colaborativo puede dar instrucciones al robot para que proporcione retroalimentación negativa por medio de una fuerza de amortiguación que contrarresta la fuerza aplicada por el usuario, regrese al espacio de trabajo restringido cuando sea seguro para el usuario, reoriente el efector final de modo que la broca regrese al espacio de trabajo restringido cuando sea seguro para el usuario, etc. En otro ejemplo, durante una demostración de usuario de un movimiento de lijado para realizar la tarea de lijado descrita anteriormente, el sistema colaborativo puede dar instrucciones al robot para permitir que el usuario mueva la lijadora solo en un movimiento tangencial a un plano (por ejemplo, movimiento plano) o una superficie predefinida mientras la lijadora está activada.
Plantillas perceptivas
Las plantillas perceptivas admiten la definición de movimiento de herramienta restringido al proporcionar uno o más controles de comportamiento que se describen con respecto a los datos de percepción asociados con el entorno de trabajo del robot, tal como una o más características de una pieza de trabajo objetivo en la que se está trabajando, uno o más puntos en el espacio de trabajo del robot, y similares. Por tanto, una plantilla de percepción proporciona uno o más controles de comportamiento en el contexto del entorno de trabajo. Más formalmente, una plantilla perceptiva P es un par P = (S, E) que relaciona una región de escena seleccionada S con entidades geométricas especificadas E = [e-u.en ] en la escena. Región de la escena S puede ser un volumen seleccionado de nube de puntos 3-D o datos de rojo, verde y azul más profundidad ("RGBD"), una región bidimensional ("2-D") seleccionada de una imagen, y similares. Una entidad geométrica ei de entidades geométricas E es una característica geométrica relevante para la tarea, tal como un punto, una línea o curva, un plano o superficie, un espacio 3-D, y similares. El sistema colaborativo puede usar plantillas perceptivas para fundamentar las restricciones de comportamiento de herramienta, TMP y otras restricciones de tarea en datos de percepción. Si bien las restricciones de comportamiento de herramienta y las TMP proporcionan mecanismos para reutilizar datos de restricción y movimiento, las plantillas perceptivas proporcionan parámetros relacionados con la tarea que deben especificarse para realizar acciones de tarea, pero que no son capturados por restricciones de comportamiento de herramienta o t Mp .
Los parámetros relacionados con la tarea pueden ser especificados por el usuario con respecto al entorno de trabajo del robot, tales como parámetros que se especifican en relación con la posición y/o la orientación de la pieza de trabajo objetivo. Como alternativa o además, el sistema colaborativo puede obtener datos de percepción descriptivos del entorno de trabajo del robot y relevantes para los parámetros relacionados con la tarea proporcionados por las plantillas perceptivas. El sistema colaborativo puede obtener los datos de percepción a partir de la percepción o detección (por ejemplo, por medio de un sensor, una cámara, y similares), interacción del usuario (por ejemplo, por medio de una configuración interactiva, entrada o selección directa del usuario, y similares), datos almacenados, o una combinación de los mismos. El sistema colaborativo puede obtener de forma continua los datos de percepción a una velocidad adecuada (por ejemplo, 1 Hz, 5 Hz, etc.) para permitir que el usuario reposicione o mueva la pieza de trabajo objetivo. Los datos almacenados pueden incluir valores de datos e información asociada con uno o más parámetros relacionados con la tarea reutilizables, tales como valores de datos asociados con un tipo de pieza de trabajo, valores de datos introducidos previamente para realizar una tarea similar en un tipo similar de pieza de trabajo, y similares. El usuario también puede almacenar datos e información adquiridos por medio de la percepción y/o la interacción del usuario en una o más plantillas perceptivas asociadas con la pieza de trabajo objetivo o su tipo.
En diversas realizaciones, el sistema colaborativo puede obtener los datos de percepción mientras opera una capacidad de robot para realizar acciones de tarea. Posteriormente a obtener los datos de percepción, el sistema colaborativo puede especificar los parámetros relacionados con la tarea basándose en los datos de percepción para fundamentar cualquier restricción de comportamiento de herramienta y TMP asociadas con la capacidad de robot y cualquier restricción de tarea. Por consiguiente, el sistema colaborativo puede reutilizar los parámetros relacionados con la tarea mientras realiza acciones de tarea sin conocimiento a priori del entorno de trabajo del robot, tal como la posición y/o la orientación de la pieza de trabajo objetivo en relación con el robot.
Para una tarea de ejemplo de perforación repetida de un patrón de orificios en una serie de piezas de forma semiautomática, una plantilla perceptiva aplicable PAGonficios puede incluir parámetros relacionados con la tarea que deben especificarse para realizar la tarea de ejemplo, tales como un ángulo de perforación relativo a la superficie de una pieza de trabajo, un patrón de orificios a perforar en relación con uno o más puntos en la superficie de la pieza de trabajo, y similares. El patrón de orificios se puede representar como líneas en un ángulo relativo a la superficie de la pieza de trabajo. Mientras opera una capacidad de robot para realizar acciones de tarea, el sistema colaborativo puede usar una plantilla perceptiva Pon fcos para obtener datos de percepción, tales como una superficie de pieza de trabajo objetivo Sw, uno o más puntos de referencia en la superficie de la pieza objetivo Sw , una orientación de la superficie de la pieza objetivo Sw, etc. Para cada pieza en la serie de piezas, el sistema colaborativo puede usar una plantilla perceptiva Pon fcos para (1) obtener datos de percepción relevantes descriptivos de la pieza, (2) especificar parámetros relevantes relacionados con la tarea basándose en los datos de percepción, (3) especializar una capacidad de robot R (por ejemplo, capacidad de generador de trayectorias Rtg como se muestra en la tabla 1) configurando k = Pon fcos para formar una capacidad de robot especializada R(Ponficios), (4) proporcionar una instancia de capacidad de robot especializada R(Ponficios) como un elemento RC, y (5) usar el elemento RC para dar instrucciones al robot para que taladre en las ubicaciones especificadas por el patrón de orificios en la superficie objetivo de la pieza Sw en el ángulo especificado relativo a la superficie objetivo Sw.
Los datos de percepción se pueden obtener usando uno o más sensores, a partir del usuario, a partir de datos almacenados, o una combinación de los mismos. Por ejemplo, el sistema colaborativo puede percibir primero una o más superficies de pieza de trabajo y sus orientaciones, obteniendo datos de profundidad de entrada con una cámara y detectando una o más superficies planas de la pieza de trabajo en los datos de profundidad de entrada. El sistema de colaboración puede solicitar al usuario que seleccione una superficie objetivo Sw de las superficies de pieza trabajo objetivo, uno o más puntos de referencia en la superficie objetivo Sw, y/o un patrón de orificios. El sistema colaborativo también puede cargar un patrón de orificios previamente guardado.
Instructor para especializar capacidades
En diversas realizaciones, el sistema colaborativo proporciona al menos un instructor para generar instrucciones basándose en un conjunto de parámetros especificados, demostraciones u otra información proporcionada por el usuario. El instructor se puede usar para crear nuevos núcleos de información o especificar parámetros de núcleos de información existentes, con lo que el sistema colaborativo puede especializar capacidades de robot. El sistema colaborativo puede invocar al instructor para obtener diferentes clases de información, tales como restricciones de comportamiento de herramienta, trayectorias de movimiento en forma de TMP, plantillas perceptivas, y similares.
Para generar una instrucción para especificar una o más restricciones de comportamiento de herramienta, el instructor puede proporcionar una representación (por ejemplo, una nube de puntos 3-D) de una herramienta seleccionada por el usuario o basada en una herramienta adjunta al robot. La representación puede incluir al menos un punto de origen de herramienta. El instructor puede seleccionar una región en la representación y un tipo de restricción, ya sea de forma autónoma o basándose en una selección interactiva del usuario. A continuación, el instructor puede ajustar la representación de la herramienta al tipo de restricción basándose en la región seleccionada y el tipo de restricción para definir un marco de restricción y, por tanto, puede generar el efector de herramienta y una o más restricciones de comportamiento de herramienta en relación con el punto de origen de herramienta. Cualquier región de la herramienta se puede asignar a una restricción de comportamiento de herramienta basándose en la selección del usuario. El instructor almacena las restricciones de comportamiento de herramienta y puede generar una instrucción para especificar las restricciones de comportamiento de herramienta en forma de un núcleo de información formateada, que puede ser cargado por cualquier capacidad que requiera una o más restricciones de comportamiento de herramienta, tales como la capacidad de restricción de movimiento Rmc que se muestra en la tabla 1.
Para generar una instrucción para especificar una o más trayectorias de movimiento para usar una herramienta especificada o una herramienta en una clase especificada en forma de una o más TMP, el instructor puede proporcionar una interfaz de usuario para adquirir las trayectorias de movimiento. Por ejemplo, el instructor puede proporcionar un entorno de realidad virtual ("VR") inmersivo como se muestra en la figura 1B. A través del entorno de VR, el usuario puede interactuar con un avatar del robot para especificar trayectorias de movimiento. El usuario puede tener un proxy de herramienta virtual, tal como un dispositivo señalador 3-D, en una posición idéntica a la forma en que el robot agarra la herramienta, y demostrar cualquier número de trayectorias de movimiento de 6 DOF. El instructor puede registrar las trayectorias de movimiento demostradas como una o más DMP con respecto a una herramienta seleccionada, generar una o más TMP basándose en las DMP y un marco de restricción asociado con la herramienta, y almacenar las TMP para la herramienta seleccionada o una herramienta en la clase especificada. La instrucción para especificar las TMP genera un núcleo de información formateada que puede ser cargado por cualquier capacidad de robot que requiera una o más TMP, tal como la capacidad de reproducción instantánea de movimiento Rn o la capacidad de generador de trayectorias Rtg que se muestra en la tabla 1.
Para generar una instrucción para especificar una o más plantillas perceptivas, el instructor puede percibir una escena en el entorno de trabajo del robot y proporcionar una interfaz de usuario que muestra la escena en tiempo real y permite al usuario seleccionar uno o más puntos, líneas o planos en la escena. Por ejemplo, el instructor puede percibir la escena usando un sensor RGBD, detectar características candidatas (por ejemplo, los vértices, bordes superficies, etc., de una pieza de trabajo) en la escena y mostrar en tiempo real una visualización en 3-D de la escena y cualquier característica candidata. El instructor puede seleccionar, de forma autónoma o basándose en la selección del usuario, al menos una característica de referencia de las características candidatas. El instructor también puede seleccionar características de plantilla basándose en la selección del usuario y definir cada característica de plantilla en el contexto de la característica de referencia, tal como la posición relativa, el ángulo, la orientación, la profundidad u otros atributos de cada característica de plantilla con respecto a la característica de referencia. Por ejemplo, el instructor puede seleccionar una superficie candidata de la pieza de trabajo como superficie de referencia y un patrón de orificios a taladrar seleccionado por el usuario como características de la plantilla. El ángulo de cada orificio en el patrón se puede definir en relación con la superficie de referencia y la posición de cada orificio se puede definir en relación con dos o más bordes de la superficie de referencia. El instructor puede almacenar las características candidatas, la característica de referencia y/o las características de plantilla, así como la relación entre las características en las plantillas perceptivas. La instrucción para especificar las plantillas perceptivas genera un núcleo de información formateada que puede ser cargado por cualquier capacidad de robot que requiera una o más plantillas perceptivas, tal como la capacidad de generador de trayectorias Rtg que se muestra en la tabla 1.
COMPORTAMIENTOS COLABORATIVOS
Los comportamientos colaborativos incluyen composiciones de una o más capacidades de robot, una o más capacidades de interacción del usuario y asignaciones entre las capacidades de robot y las capacidades de interacción del usuario. Si bien las capacidades de robot se pueden construir y combinar para controlar el robot para realizar acciones de tarea particulares o acciones de tarea de tipos particulares, el sistema colaborativo se basa en comportamientos colaborativos para proporcionar al usuario las interfaces necesarias para las interacciones del usuario con el sistema colaborativo y/o el robot para cualquier comportamiento y nivel de capacidad particulares del robot. Al menos en este aspecto, el sistema colaborativo difiere de los sistemas robóticos existentes, que se centran únicamente en la relación de colaboración usuario-robot de alto nivel, pero descuidan los elementos de la interfaz de bajo nivel.
Para cada capacidad de robot en una capacidad compuesta, el sistema colaborativo necesita información explícita sobre qué entrada se requiere del usuario, qué retroalimentación debe presentarse al usuario y, por lo tanto, qué capacidades de interacción del usuario se requieren. Supongamos que una capacidad de robot R = yr ^ $R se compone a través de los operadores de composición (por ejemplo, Q y © de un conjunto de n capacidades de robot instanciadas o especializadas {R i (k i ), ..., Rn (Kn )). Para la capacidad de robot R y el conjunto de todas las capacidades de interfaz de usuario disponibles para el sistema colaborativo, Ú, la función de compatibilidad, A : R * Ú ^ {0, 1}, selecciona un conjunto apropiado de capacidades de interfaz de usuario {U: yu ^ $u}, con U e Ú que proporciona entradas para R o acepta salidas de R, pero no ambas, porque cualquier circuito de retroalimentación se cierra a través de un operador humano (por ejemplo, el usuario):
Figure imgf000013_0001
Por consiguiente, un comportamiento colaborativo B se puede definir como una composición de la capacidad de robot R, donde todos los requisitos de interacción del usuario para la composición de la capacidad de robot R se cumplen mediante un conjunto de capacidades de interacción del usuario {Uj | Uj e ú, A(R, Uj ) = 1}. La capacidad de robot R puede ser una capacidad de robot base o una capacidad de robot compuesta. La figura 2 ilustra un ejemplo de un comportamiento colaborativo que incluye una composición de capacidades conectada comunicativamente al usuario y al robot. Cabe señalar que el sistema colaborativo administra las conexiones entre las capacidades en el comportamiento colaborativo para controlar qué información se pasa hacia y desde el usuario, pero no diseña ni dicta ningún diseño particular para interfaces del usuario asociadas con las capacidades. En su lugar, los creadores y diseñadores de las capacidades son libres de diseñar interfaces de usuario asociadas con las capacidades.
Para realizar la tarea de ejemplo descrita anteriormente de perforación de orificios con precisión colaborativamente con el robot que impone restricciones de movimiento, el sistema colaborativo puede generar y/o modificar una composición de capacidades y almacenar la composición en un comportamiento colaborativo B i . Para la tarea de ejemplo, la capacidad de robot de restricción de movimiento especializado en perforación Rmc (Ktaiadro) requiere al menos un comando de 6 DOF del usuario. El sistema colaborativo puede seleccionar, basándose en la función de compatibilidad A, una capacidad de interacción del usuario de guía de fuerza Ufuerza que tiene la salida requerida que coincide con el comando de 6 DOF. Por lo tanto, el comportamiento colaborativo Bi puede ser Bi = Ufuerza Q Rmc (Ktaladro). El sistema colaborativo puede usar un enfoque similar para derivar requisitos de interacción más complejos para otras tareas, tales como una tarea de perforar orificios similares en ubicaciones guiadas manualmente por el usuario o la tarea de ejemplo de perforar repetidamente un patrón de orificios en una serie de piezas de manera semiautomática descrita anteriormente con respecto a las plantillas perceptivas.
EJEMPLOS DE REALIZACIÓN
Las figuras 3A y 3B ilustran ejemplos de realización del sistema colaborativo de acuerdo con los principios de la presente divulgación. En diversas realizaciones, un ejemplo de las cuales se muestra en la figura 3A, el sistema colaborativo puede incluir un ordenador 300 que puede interactuar con al menos un usuario (no mostrado) a través de al menos una UI 310. El ordenador 300 puede ser un ordenador de uso general o específico de aplicación que sea bien conocido por los expertos en la materia, tal como uno de escritorio, un equipo portátil, una tableta, un dispositivo móvil, un controlador de robot, un servidor, un clúster, etc., o cualquier combinación de los mismos. El ordenador 300 también puede ser una máquina de cualquier tipo adecuado, tal como una máquina virtual, una máquina física, etc., o cualquier combinación de las mismas. El software instalado en el ordenador 300 puede incluir un marco colaborativo 320 y al menos un sistema operativo ("OS") 330.
El marco colaborativo 320 es una implementación de ejemplo del marco generalizable descrito anteriormente que define y proporciona modelos para capacidades, vínculos y comportamientos colaborativos. El marco colaborativo 320 puede comunicarse e interactuar con al menos un robot 340 y/o el usuario para aprender y/o proporcionar funcionalidades colaborativas/de asistencia asociadas con los comportamientos colaborativos. De acuerdo con la invención, el usuario enseña uno o más movimientos asociados con una funcionalidad colaborativa/de asistencia al marco colaborativo 320 por medio de la demostración del usuario dirigiendo al robot 340 a través de los movimientos. El marco colaborativo 320 puede usar la UI 310 para comunicarse e interactuar con el usuario, y puede proporcionar la UI 310 por medio de uno o más componentes o periféricos del ordenador 300, tales como una pantalla visual, un dispositivo señalador o controlador, un teclado/teclado numérico, un transductor electroacústico, una interfaz de usuario cinética o tangible, etc., o cualquier combinación de los mismos. Un dispositivo señalador o controlador puede incluir, por ejemplo, un ratón, un dispositivo señalador en 3-D, una pantalla táctil, un panel táctil, una palanca de mando, una consola portátil, y similares. El marco colaborativo 320 también puede proporcionar la UI 310 por medio de uno o más componentes del robot 340, tales como un sensor, un actuador, etc., o cualquier combinación de los mismos. Un sensor puede incluir, por ejemplo, un sensor de fuerza, un sensor de posición, un sensor visual, un sensor táctil, y similares. Un experto en la materia reconocerá que la UI 310 se puede proporcionar usando otros componentes y periféricos sin apartarse del alcance de la presente divulgación.
El marco colaborativo 320 puede ser admitido, por y/o construido sobre el OS 330. El OS 330 puede ser cualquier plataforma o sistema operativo comercial, de código abierto o patentado, tales como el SISTEMA OPERATIVO DE ROBOT ("ROS"), que puede funcionar como un middleware para la composición, basada en componentes, de la funcionalidad del software y la administración de redes y procesos. Otros ejemplos bien conocidos de sistemas operativos que son consistentes con los principios de la presente divulgación incluyen LINUX, UNIX, ORACLE SOLARIS, MICROSOFT WINDOWS, MAC OS, OPEN VMS e IBM AIX.
Aunque la figura 3A representa el marco colaborativo 320 que proporciona la UI 310 y se acopla comunicativamente al robot 340 por medio de enlaces de comunicación directos, los expertos en la materia apreciarán que el marco colaborativo 320 puede proporcionar la UI 310 y/o acoplarse comunicativamente al robot 340 a través de cualquier tipo adecuado de enlace de comunicación, tales como una conexión de red a través de al menos una red de comunicación como una red de área local, una red de área amplia, una intranet, Internet, etc. Los expertos en la materia también apreciarán que la configuración de un solo ordenador y la disposición de diversas partes del sistema colaborativo representado en la figura 3A son meramente representativas y que otras configuraciones y disposiciones, un ejemplo de las cuales se ilustra en la figura 3B y se describe con mayor detalle a continuación, son posibles sin apartarse del alcance de la presente divulgación.
Como se ilustra en la figura 3A, el marco colaborativo 320 incluye un administrador de comportamiento 322 que administra los comportamientos colaborativos, las capacidades de robot y los enlaces entre las interfaces de capacidad de robot (por ejemplo, entradas y y salidas 0), así como un administrador de UI 324 que administra las capacidades de interacción del usuario. Con el administrador de comportamiento 322 y el administrador de UI 324 ejecutándose como módulos o procesos separados y distintos, el marco colaborativo 320 puede administrar los comportamientos colaborativos, las capacidades de robot y los enlaces de forma separada y distinta de las capacidades de interacción del usuario para mantener la coherencia con la definición conceptual de los comportamientos colaborativos. La separación explícita de las capacidades de robot y de interacción del usuario permite que el administrador de comportamiento 322 y el administrador de UI 324 se ejecuten en máquinas separadas, ya sean físicas o virtuales, siempre que las máquinas estén acopladas comunicativamente (por ejemplo, en red) entre sí. Asimismo, el marco colaborativo 320 puede incluir múltiples instancias del administrador de UI 324 que se ejecutan en una o más máquinas, un ejemplo de las cuales se ilustra en la figura 3B y se describe con mayor detalle a continuación. El marco colaborativo 320 también puede incluir múltiples instancias de administrador de comportamiento 322 que se ejecutan en una o más máquinas (no mostradas) de manera distribuida.
Administración de capacidades de robot y enlaces
En diversas realizaciones, el marco colaborativo 320 puede invocar al administrador de comportamiento 322 para componer (por ejemplo, crear, modificar, almacenar, borrar, etc.) las capacidades de robot, así como administrar (por ejemplo, cargar, inicializar, ejecutar, detener, finalizar, descargar, etc.) y adaptar dinámicamente (por ejemplo, especializar, generalizar, volver a especializar, etc.) elementos RC en diversos estados, incluso durante el tiempo de ejecución. El marco colaborativo 320 puede crear capacidades de robot en uno o más lenguajes de programación tales como C++, PYTHON, etc., y puede implementar capacidades de robot como elementos de software que pueden componerse en elementos compuestos. Las capacidades de robot pueden extenderse o basarse en nodos ROS, lo que proporciona una capa de comunicación e interfaces para conexiones mecanografiadas entre los elementos de software, por ejemplo, instancias de las capacidades de robot. El marco colaborativo 320 puede implementar enlaces entre entradas y salidas de capacidades de robot como elementos de enlace en forma de temas de ROS publicados y abonados.
El marco colaborativo 320 puede proporcionar instancias de las capacidades de robot como elementos RC llamando a los archivos de lanzamiento de r Os asociados con las capacidades de robot. Los elementos RC que han sido proporcionados por el marco colaborativo 320 pueden estar en uno o más de varios estados, incluyendo no instanciado o general, instanciado o especializado, en ejecución, en espera, detenido, y similares. Un elemento RC general contiene código para leer y escribir en sus interfaces (es decir, entradas y salidas de capacidad), así como código para realizar la acción de tarea del tipo deseado, pero contiene una clase de información no instanciada que acepta un núcleo de información requerido para que funcione el elemento RC. El marco colaborativo 320 puede implementar un núcleo de información como un archivo de datos con un formato específico que se carga en la memoria en el tiempo de ejecución y se usa para instanciar la clase de información y, por tanto, especializar el elemento RC. El marco colaborativo 320 puede incluir al menos un instructor que genera núcleos de información y almacena los núcleos de información en una base de datos a la que pueden acceder todos los elementos de capacidad.
El marco colaborativo 320 puede proporcionar un elemento RC especializado basado en una capacidad de robot especificando la capacidad de robot y el núcleo de información requerido en el archivo de lanzamiento del elemento. El marco colaborativo 320 puede volver a especializar un elemento RC ya especializado en el tiempo de ejecución, intercambiando el núcleo de información del elemento RC especializado por un núcleo de información diferente. Usando la capacidad de restricción de movimiento R m c que se muestra en la tabla 1 como un ejemplo, el marco colaborativo 320 puede intercambiar un núcleo de información que contiene parámetros asociados con una herramienta por otro núcleo de información que contiene parámetros asociados con una herramienta diferente, sin tener que descargar la capacidad de restricción de movimiento R m c . Por ejemplo, el marco colaborativo 320 puede intercambiar un núcleo de información Ktaiadro de una capacidad de restricción de movimiento especializada R m c (Ktaiadro) por un núcleo de información Kujadora para formar una capacidad de restricción de movimiento recientemente especializada R m c (Kijadora), sin tener que descargar R m c .
Administración de capacidades de interacción del usuario
En diversas realizaciones, el marco colaborativo 320 puede invocar al administrador de UI 324 para crear, modificar, cargar, descargar, almacenar y cambiar entre las capacidades de interacción del usuario en diversos estados, incluso durante el tiempo de ejecución. El marco colaborativo 320 puede implementar capacidades de interacción del usuario como elementos de software que pueden componerse en elementos compuestos. Como los elementos RC, los elementos IC pueden extenderse o basarse en nodos ROS y, por tanto, compartir una capa de comunicación común e interfaces con elementos RC. El marco colaborativo 320 utiliza elementos IC para proporcionar al usuario uno o más paradigmas de interacción, que pueden asumir la forma de controladores u otras formas de interfaz de software con un periférico tal como una pantalla 2-D o 3-D, pantalla táctil, etc. Por ejemplo, un elemento de interacción de control de admisión que permite al usuario manipular una palanca de mando de 6 DOF conectada al robot puede proporcionar una asignación entre los movimientos del usuario como entrada y y la salida de pose comandada como salida 0 del elemento de interacción de control de admisión.
Administración de comportamientos colaborativos
Para implementar comportamientos colaborativos, el marco colaborativo 320 proporciona herramientas para componer una composición de capacidades de robot para un comportamiento colaborativo, derivar los requisitos de interfaz de usuario de las capacidades de robot en la composición, y asignar las capacidades de interacción del usuario con las capacidades de robot en la composición en función de los requisitos de interfaz de usuario derivados. El marco colaborativo 320 puede componer la composición especificando enlaces entre las capacidades de robot en la composición. En diversas realizaciones, el marco colaborativo 320 puede construir la composición completando un manifiesto de comportamiento, que puede ser un archivo formateado de acuerdo con una especificación de datos o un formato de serialización basado en el estándar YAML, Notación de Objetos JavaScript, etc. Cada manifiesto de comportamiento puede encapsular una o más capacidades de robot, capacidades de interacción del usuario y enlaces para un comportamiento colaborativo en etiquetas, bajo las cuales se enumeran las capacidades y los enlaces necesarios para el comportamiento colaborativo. Se pueden especificar diversas capacidades en uno o más archivos de lanzamiento (por ejemplo, archivos de lanzamiento de ROS) y/o archivos que contienen manifiestos de comportamiento, y los enlaces se pueden especificar basándose en uno o más temas publicados y abonados (por ejemplo, temas publicados y abonados de ROS). Por ejemplo, el marco colaborativo 320 puede procesar uno o más archivos de lanzamiento que especifican las capacidades disponibles, y puede procesar uno o más archivos que contienen un manifiesto de comportamiento que encapsula las capacidades de robot, las capacidades de interacción del usuario y los enlaces requeridos por el comportamiento colaborativo.
Un manifiesto de comportamiento 400 como se muestra en la figura 4 es un ejemplo de un manifiesto de comportamiento que especifica las capacidades de robot, las capacidades de interacción del usuario y los enlaces requeridos por un comportamiento colaborativo de control de admisión. El manifiesto de comportamiento 400, que se puede especificar en el formato de cableado YAML, da a al menos un usuario el control de admisión de al menos un robot, con la opción de restringir el movimiento del robot basándose en la herramienta que se está usando actualmente y/o la pieza de trabajo en la que se está trabajando actualmente. El manifiesto de comportamiento 400 puede incluir un nombre de comportamiento 410 como clave de nivel superior y etiquetas de comportamiento 420a-c como claves de nivel inferior para listas 425a-c de capacidades o enlaces requeridos. La lista 425a puede enumerar un conjunto de capacidades de robot requeridas, la lista 425b puede enumerar un conjunto de capacidades de interacción del usuario requeridas, y la lista 425c puede enumerar un conjunto de enlaces requeridos. Los expertos en la materia apreciarán que el formato y el contenido del manifiesto de comportamiento 400 son meramente representativos y que son posibles otros formatos y contenidos sin apartarse del alcance de la presente divulgación.
Durante el arranque, el marco colaborativo 320 puede dar instrucciones al administrador de comportamiento 322 para construir una lista de capacidades de robot disponibles, por ejemplo, analizando el sistema de archivos local para cualquier archivo de lanzamiento con un prefijo asociado con el marco colaborativo 320, y también puede ubicar y leer cualquier archivo que contenga manifiestos de comportamiento. El administrador de comportamiento 322 puede cargar, activar, desactivar, descargar y cambiar entre comportamientos colaborativos mientras se encuentra en diversos estados, incluso durante el tiempo de ejecución o mientras se activa al menos un comportamiento colaborativo. El administrador de UI 324 y/u otro módulo del marco colaborativo 320 pueden definir y proporcionar una o más UI administrativas a través de las cuales el usuario puede realizar diversas funciones administrativas.
Las funciones administrativas pueden incluir ver una lista de diversas capacidades (por ejemplo, capacidades de robot y/o capacidades de interacción del usuario que están disponibles para el usuario pero no cargadas, cargadas, no instanciadas o generales, instanciadas o especializadas, en ejecución, en espera, detenidas, etc.), crear una nueva capacidad, seleccionar una capacidad existente para cargar el marco colaborativo 320, instanciar o especializar, no instanciar o generalizar, volver a instanciar o volver a especializar, descargar, intercambiar, detallar, modificar, borrar, etc., y otras funciones que se pueden realizar de la misma manera para diferentes capacidades. Las funciones administrativas también pueden incluir visualizar una lista de diversos comportamientos de colaboración (por ejemplo, comportamientos colaborativos que están disponibles para el usuario, cargados, activados, etc.), crear un nuevo comportamiento colaborativo, seleccionar un comportamiento colaborativo existente para el marco colaborativo 320 para cargar, activar, desactivar, descargar, intercambiar, detallar, modificar, borrar, etc., y otras funciones que se pueden realizar de la misma manera para diferentes comportamientos colaborativos. Por ejemplo, el usuario puede usar las UI administrativas para navegar por una lista de comportamientos colaborativos disponibles y seleccionar un comportamiento colaborativo para el marco colaborativo 320 para cargar y/o activar, detallar, modificar, borrar, etc. En otro ejemplo, el usuario puede usar las UI administrativas para buscar cualquier comportamiento colaborativo activado y seleccionar cualquier comportamiento colaborativo activado para el marco colaborativo 320 para desconectar, descargar, intercambiar, detallar, modificar, etc.
En respuesta al marco colaborativo 320 o cualquier módulo del mismo que reciba un comando para cargar un comportamiento colaborativo, el administrador de comportamiento 322 puede ubicar una composición de capacidades de robot requeridas por al menos un manifiesto de comportamiento asociado con el comportamiento colaborativo, y lanzar elementos RC como procesos secundarios separados para las capacidades de robot requeridas. Esto permite que el administrador de comportamiento 322 administre y haga una transición con soltura entre los elementos RC, por ejemplo, al empezarlos, detenerlos, reiniciarlos, finalizarlos o destruirlos según sea necesario; durante dichas transiciones, el administrador de comportamiento 322 puede detener el robot o dar instrucciones y esperar a que el robot entre en un estado detenido.
Después de lanzar todos los elementos RC requeridos, el administrador de comportamiento 322 puede buscar, a continuación, en el manifiesto de comportamiento todos los enlaces requeridos por el comportamiento colaborativo y/o los elementos RC requeridos. Para cada uno de los enlaces requeridos, el administrador de comportamiento 322 puede generar un elemento de enlace, o un componente temporal generado explícitamente que contiene lógica para abonarse a un nodo de envío (por ejemplo, un elemento RC que se publica en un tema determinado) y se publica en un nodo receptor (por ejemplo, un elemento RC abonado al tema dado). Esta abstracción proporciona varios beneficios. Al usar elementos de enlace, cada enlace se puede compartimentar en su propio proceso, en lugar de que la lógica del enlace (editor y abonado) se genere directamente en el administrador de comportamiento 322, permitiendo así que el administrador de comportamiento 322 reorganice fácilmente los enlaces entre elementos RC en el tiempo de ejecución. Esta abstracción también permite una introspección útil porque se conserva la estructura similar a un gráfico de los elementos de capacidad conectados. Por ejemplo, el usuario puede ver conexiones explícitas entre los elementos RC a través de una herramienta de visualización (por ejemplo, rqt_graph, una herramienta de visualización de gráficos de ROS), en lugar de muchos elementos RC, todos conectados al hub central del administrador de comportamiento 322.
Como resultado del uso de un proceso separado para cada elemento RC y elemento de enlace en ejecución, el administrador de comportamiento 322 puede implementar y llevar a cabo fácilmente diversos otros comandos de comportamiento y actividades de administración. En respuesta a un comando para descargar un comportamiento colaborativo, el administrador de comportamiento 322 puede simplemente finalizar la ejecución de elementos RC y elementos de enlace asociados con el comportamiento colaborativo. En respuesta a un comando para cambiar de un primer comportamiento colaborativo que ya se ha cargado a un segundo comportamiento colaborativo que está siendo solicitado pero no se ha cargado, el administrador de comportamiento 322 puede encontrar capacidades de robot que se cruzan compartidas por los comportamientos colaborativos primero y segundo para cargar y descargar solo elementos RC y elementos de enlace que no son compartidos por los comportamientos colaborativos primero y segundo.
El administrador de comportamiento 322 puede añadir o sustraer elementos RC individuales y crear o romper enlaces individuales mientras se encuentra en diversos estados. Por ejemplo, después de cargar o incluso activar el comportamiento colaborativo, el administrador de comportamiento 322 puede añadir uno o más elementos RC y/o elementos de enlace individuales nuevos al comportamiento colaborativo y puede sustraer uno o más elementos Rc y/o elementos de enlace individuales asociados con el comportamiento colaborativo; si el comportamiento colaborativo está en un estado activado, el administrador de comportamiento 322 puede añadir o sustraer los elementos RC y/o elementos de enlace individuales mientras mantiene la mayor funcionalidad posible del comportamiento colaborativo. Las solicitudes o comandos al administrador de comportamiento 322 se pueden implementar como servicios (por ejemplo, servicios de ROS), por lo que pueden conectarse fácilmente a una interfaz de usuario gráfica o invocarse programáticamente.
El administrador de comportamiento 322 también puede adaptar dinámicamente elementos RC individuales mientras que el marco colaborativo 320 está en diversos estados, incluso durante el tiempo de ejecución. Por ejemplo, después de cargar un elemento RC, el administrador de comportamiento 322 puede instanciar o especializar el elemento RC con un núcleo de información que ha sido definido a través de una o más instrucciones. El administrador de comportamiento 322 puede desinstanciar o generalizar un elemento RC especializado desacoplando el núcleo de información existente del elemento RC. El administrador de comportamiento 322 también puede volver a instanciar o volver a especializar un elemento RC especializado intercambiando el núcleo de información existente con un nuevo núcleo de información.
Como se ha descrito anteriormente, el marco colaborativo 320 puede administrar los elementos IC asociados con los comportamientos colaborativos por separado y de forma distinta de los elementos RC y los elementos de enlace. Para satisfacer los requisitos de UI para comportamientos colaborativos, El administrador de UI 324 del marco colaborativo 320 puede proporcionar un conjunto de elementos IC basándose en capacidades de interacción del usuario disponibles. El administrador de UI 324 puede lanzar elementos IC como procesos separados, similares a la forma en que el administrador de comportamiento 322 lanza los elementos RC y, por tanto, proporciona una funcionalidad y beneficios similares a los discutidos anteriormente al administrador de UI 324 cuando administra y realiza la transición entre elementos IC en ejecución. Asimismo, los elementos IC se lanzan como procesos separados de los elementos RC y los elementos de enlace. Sin embargo, el administrador de UI 324 no define enlaces explícitos entre elementos IC en ejecución. En su lugar, el administrador de UI 324 puede utilizar la noción de A descrita anteriormente (es decir, la función de compatibilidad) para determinar la idoneidad de un elemento IC para un elemento RC específico. En diversas realizaciones, la función de compatibilidad asociada con un comportamiento colaborativo puede especificar que se requieren ciertos elementos IC para ese comportamiento colaborativo cuando se carga mediante el marco colaborativo 320, ya sea por el propio comportamiento de colaboración (por ejemplo, en el manifiesto de comportamiento) o por al menos una capacidad de robot específica (por ejemplo, en el archivo de lanzamiento) en el comportamiento colaborativo. la figura 5 representa un ejemplo de una UI 500 poblada con elementos de UI de comportamiento de herramienta 510 proporcionados por elementos IC que permiten al usuario seleccionar y/o aplicar una restricción de comportamiento de herramienta asociada con una lijadora, y la UI 500 se describe con mayor detalle a continuación con respecto a un proceso de ejemplo.
En diversas realizaciones, marco colaborativo 320 puede crear un comportamiento colaborativo al satisfacer, según la función de compatibilidad A, todos los requisitos de interacción del usuario de las capacidades de robot en la composición de capacidades de robot del comportamiento colaborativo. Después de cargar cada capacidad de robot en la composición como un elemento RC, el marco colaborativo 320 puede determinar las capacidades de interacción del usuario requeridas por la capacidad de robot basándose en los requisitos enumerados en un archivo de lanzamiento para la capacidad de robot. Los requisitos de la capacidad de robot pueden enumerar una o más capacidades de interacción del usuario explícitamente requeridas y/o una lista de uno o más requisitos de interfaz abstractos. Por ejemplo, una capacidad de restricción de movimiento de herramienta puede requerir una capacidad específica de interacción del usuario para el control cartesiano con una palanca de mando. La capacidad de restricción de movimiento de herramienta también puede proporcionar una lista de uno o más requisitos de interfaz abstractos, tales como campos de texto, botones y conmutadores. El marco colaborativo 320 puede analizar la lista de requisitos de interfaz abstractos y determinar qué capacidades de interacción del usuario coinciden con los requisitos de interfaz abstractos. A continuación, el marco colaborativo 320 puede ubicar y cargar los elementos IC requeridos y conectar cada elemento IC a uno o más elementos RC que requieren el elemento IC o una interfaz de usuario proporcionada por el elemento IC.
En respuesta al marco colaborativo 320 o cualquier módulo del mismo que reciba un comando para cargar un comportamiento colaborativo, el administrador de UI 324 puede cargar automáticamente todos los elementos IC enumerados como requisitos de UI en un manifiesto de comportamiento asociado con el comportamiento colaborativo. Adicionalmente, si y cuando el marco colaborativo 320 carga uno o más elementos RC necesitados que tienen requisitos de UI específicos más allá de los del comportamiento colaborativo en su conjunto, los elementos RC necesitados pueden difundir sus requisitos de UI a través de un espacio de memoria compartida para datos (por ejemplo, un servidor de parámetros de ROS) durante el proceso de carga. En respuesta a los requisitos de UI de difusión, El administrador de UI 324 puede cargar elementos IC requeridos por los elementos RC necesitados. Posteriormente a la carga de elementos IC requeridos por el comportamiento colaborativo y/o cualquier elemento RC necesitado, el administrador de UI 324 puede llamar al elemento IC cargado para proporcionar uno o más elementos de UI apropiados para los requisitos de UI y realizar cualesquiera conexiones necesarias. Para garantizar que las UI proporcionen las modalidades de interacción necesarias al usuario para el comportamiento colaborativo, el autor o diseñador del comportamiento colaborativo debe especificar explícitamente al menos un conjunto mínimo de requisitos de UI para el comportamiento colaborativo.
En diversas realizaciones, un ejemplo de las cuales se muestra en la figura 3B, el sistema colaborativo puede incluir un marco colaborativo distribuido 350 que tiene módulos que se ejecutan en un grupo de ordenadores separados (no mostrados). El grupo de ordenadores puede incluir múltiples ordenadores de uso general o específicos de aplicación, ejemplos de los cuales incluyen una red cliente-servidor, una red entre pares, un clúster de ordenadores, una red eléctrica, una nube, etc., o cualquier combinación de los mismos. Los ordenadores pueden ser máquinas de cualquier tipo (por ejemplo, físico, virtual, etc.) que están acopladas comunicativamente por medio de al menos una red 360, que puede incluir una o más redes de comunicación de cualquier tipo adecuado, tal como una red de área local, una red de área amplia, una intranet, Internet, etc. Por ejemplo, el grupo de ordenadores puede incluir máquinas separadas conectadas en red a través de ROS. Cada ordenador en el grupo se puede acoplar comunicativamente (por ejemplo, en red) a al menos otro ordenador en el grupo. El software instalado en el grupo de ordenadores puede incluir los módulos del marco colaborativo distribuido 350 y múltiples instancias de uno o más sistemas operativos (no mostrados). Los módulos del marco colaborativo distribuido 350 pueden ser admitidos por y/o estar construidos sobre los sistemas operativos, que pueden ser cualquier plataforma o sistema operativo comercial, de código abierto o patentado, tal como ROS u otros sistemas operativos adecuados.
Los módulos del marco colaborativo distribuido 350 pueden incluir un administrador de comportamiento 352 que administra los elementos RC y los elementos de enlace y una o más instancias 354 del administrador de UI que administran los elementos IC. El marco colaborativo distribuido 350 puede usar una o más UI 370 para comunicarse e interactuar con uno o más usuarios proporcionando UI 370 por medio de uno o más componentes o periféricos de los ordenadores y/o uno o más componentes de robots 380. Un experto en la materia reconocerá que las UI 370 se pueden proporcionar por medio de otros componentes y periféricos sin apartarse del alcance de la presente divulgación. El marco colaborativo distribuido 350 puede comunicarse e interactuar con uno o más robots 380 y/o los usuarios por medio de la red 360 para aprender y/o proporcionar funcionalidades colaborativas/de asistencia asociadas con los comportamientos colaborativos.
Con la separación explícita de los elementos RC y los elementos IC en el marco colaborativo 350, el administrador de comportamiento 352 y al menos una instancia de las instancias de administrador de UI 354 pueden ejecutarse en ordenadores separados. Dicha flexibilidad de configuración puede ser útil en escenarios donde el marco colaborativo distribuido 350 requiere uno o más módulos lógicos que consumen mucha energía para administrar los componentes lógicos y los enlaces, pero tiene terminales de entrada UI ligeras. Para optimizar el rendimiento en estos escenarios, el marco colaborativo distribuido 350 puede ejecutar el administrador de comportamiento 352 en un ordenador o clúster de ordenadores potente y remoto (no mostrado) y ejecuta una o más instancias distribuidas de instancias de administrador de UI 354 en uno o más ordenadores locales menos potentes (no mostrados), tales como de escritorio, ordenadores portátiles, tabletas, dispositivos móviles, controladores de robot, y similares.
Además, las instancias de administrador de UI 354 pueden personalizar uno o más parámetros de visualización y otras características de los elementos en las Ul 370 basándose en el tipo y la naturaleza de los componentes o periféricos (por ejemplo, pantallas) conectados a los ordenadores locales. Por ejemplo, los elementos de UI de una de las UI 370 que se muestran en una pequeña tableta con pantalla táctil pueden ser más compactos con botones más grandes adaptados para la interacción táctil. En otro ejemplo, los elementos de UI de una de las UI 370 que se muestran por medio de un dispositivo de realidad virtual pueden incluir elementos de UI inmersivos. La flexibilidad de configuración del marco colaborativo distribuido 350, que permite que las instancias de administrador de UI 354 se distribuyan entre ordenadores separados y los elementos de UI en las UI 370 se personalicen, permite la interacción específica del dominio donde las UI 370 pueden configurarse automáticamente basándose en las plataformas de hardware a través de las cuales el marco colaborativo distribuido 350 interactúa con los usuarios.
Ejemplos de realización del sistema colaborativo, tales como los descritos en el presente documento e ilustrados en las figuras 3A y 3B, pretenden presentar conceptos de manera concreta y se describen con suficiente detalle para permitir que los expertos en la materia pongan en práctica estas realizaciones. Sin embargo, se pueden utilizar otras realizaciones y se pueden realizar cambios sin apartarse del alcance de la presente divulgación.
La figura 6 es un diagrama de flujo de un proceso 600 realizado por un marco generalizable que admite la creación, la adaptación dinámica y la administración de representaciones de capacidades reutilizables y la creación, la reutilización y la administración de comportamientos colaborativos hombre-máquina, de acuerdo con realizaciones de la presente divulgación. El proceso 600 se puede realizar mediante un marco colaborativo, tal como el marco colaborativo 320 como se muestra en la figura 3a o el marco colaborativo distribuido 350 como se muestra en la figura 3B. El proceso 600 puede comenzar lanzando o proporcionando el marco colaborativo, o el proceso 600 puede comenzar durante o después del lanzamiento del marco colaborativo.
En el bloque 602, el marco colaborativo puede proporcionar módulos, incluyendo al menos una instancia de un administrador de comportamiento (por ejemplo, el administrador de comportamiento 322, 352) y al menos una instancia de un administrador de UI (por ejemplo, el administrador de UI 324, 354). Las instancias del administrador de comportamiento y el administrador de U i se pueden iniciar y ejecutar cada uno como un proceso separado y, por tanto, se pueden ejecutar en diferentes ordenadores o máquinas. Durante y/o después de la iniciación, el marco colaborativo puede dar instrucciones al administrador de comportamiento y/o al administrador de UI para que construya una o más listas de capacidades y/o comportamientos colaborativos disponibles. Las listas pueden incluir una o más listas de capacidades de robot (por ejemplo, capacidades de robot generales, capacidades de robot especializadas, etc.), capacidades de interacción del usuario, enlaces, elementos RC (es decir, instancias de una o más capacidades de robot), elementos IC (es decir, instancias de una o más capacidades de interacción del usuario), elementos de enlace (es decir, instancias de uno o más enlaces), núcleos de información, comportamientos colaborativos, y similares. El marco colaborativo puede crear las listas de capacidades o comportamientos colaborativos disponibles analizando el sistema de archivos local en busca de cualquier archivo de lanzamiento con un prefijo asociado con el marco colaborativo, y también puede ubicar y leer cualquier archivo que contenga manifiestos de comportamiento (por ejemplo, el manifiesto de comportamiento 400).
En lo que sigue, en el bloque 604, el marco colaborativo puede recibir una entrada para activar o componer un comportamiento colaborativo. El marco colaborativo puede recibir un comando para crear un nuevo comportamiento colaborativo o seleccionar un comportamiento colaborativo existente para activar y/o modificar por medio de uno o más elementos de UI, por medio de un entorno de comandos, programáticamente, o similar. Si el marco colaborativo recibe una entrada para activar un comportamiento colaborativo existente, entonces el marco colaborativo puede avanzar al bloque 612. Como alternativa, en el bloque de decisión 610, si el marco colaborativo recibe una entrada para componer un comportamiento colaborativo, tal como crear un nuevo comportamiento colaborativo o modificar un comportamiento colaborativo existente, entonces el marco colaborativo puede realizar el procesamiento 900, que se describe con mayor detalle a continuación con respecto a la figura 9,
En el bloque 612, el marco colaborativo puede seleccionar un comportamiento colaborativo para interactuar con al menos un usuario y controlar un robot para realizar una tarea colaborativamente. El marco colaborativo puede adaptar dinámicamente las capacidades del comportamiento colaborativo para controlar el robot para realizar colaborativamente, con el usuario, una tarea específica o una tarea en una clase de tarea específica. La tarea puede requerir una o más acciones de tarea para completarse, y el marco colaborativo puede activar uno o más comportamientos colaborativos para realizar las acciones de tarea. Si el comportamiento colaborativo no está cargado en una memoria de trabajo, en el bloque 614, el marco colaborativo obtiene y analiza una especificación (por ejemplo, el manifiesto de comportamiento 400) del comportamiento colaborativo que especifica la composición de capacidades del comportamiento colaborativo.
En lo que sigue, en el bloque 616, el marco colaborativo proporciona un conjunto de elementos de capacidad, que son instancias de una o más capacidades, basándose en la composición de capacidad del comportamiento colaborativo. El conjunto de elementos de capacidad incluye uno o más elementos RC y uno o más elementos IC. El marco colaborativo proporciona el conjunto de elementos de capacidad realizando el procesamiento 700 como se muestra en la figura 7 y se describe a continuación con mayor detalle. A continuación, en el bloque 618, el marco colaborativo proporciona un conjunto de elementos de enlace, que son instancias de uno o más enlaces entre las una o más capacidades, y conecta el conjunto de elementos de capacidad usando el conjunto de elementos de enlace. En diversas realizaciones, el marco colaborativo puede proporcionar el conjunto de elementos de enlace y conectar el conjunto de elementos de capacidad realizando el procesamiento 800 como se muestra en la figura 8 y se describe con mayor detalle a continuación.
En el bloque 620, el marco colaborativo puede activar el comportamiento colaborativo mediante la ejecución del conjunto de elementos de capacidad para interactuar con el usuario y controlar el robot para realizar la tarea. El marco colaborativo puede dar instrucciones al administrador de comportamiento para ejecutar los elementos RC y usar uno o más de los elementos RC para controlar una o más funcionalidades del robot para realizar, con una herramienta unida al robot, una o más acciones de tarea para completar la tarea. El marco colaborativo también puede dar instrucciones al administrador de UI para ejecutar uno o más elementos IC para proporcionar una o más Ul a través de las cuales el usuario puede interactuar con el robot y/o el marco colaborativo. El marco colaborativo puede desactivar el comportamiento colaborativo activado y/o dejar de ejecutar elementos de capacidad en cualquier momento. Por ejemplo, el comportamiento colaborativo activado y/o cualquiera de los elementos RC en ejecución se puede desactivar o detener en respuesta a un comando o entrada del usuario para desactivar el comportamiento colaborativo o detener cualquier elemento RC en ejecución, la finalización de la tarea o las acciones de tarea, una alarma de error o de seguridad, y similares. El marco colaborativo también puede desactivar el comportamiento colaborativo cuando añade o sustrae elementos de capacidad y/o elementos de enlace individuales para crear o romper enlaces entre los elementos de capacidad.
Después de completar la tarea o las acciones de tarea o desactivar el comportamiento colaborativo, en el bloque de decisión 630, el marco colaborativo puede decidir si realizar o no una nueva tarea o acción de tarea. Si el marco colaborativo decide realizar una nueva tarea, entonces el proceso 600 puede avanzar al bloque de decisión 640, en el que el marco colaborativo puede decidir si reutilizar o no el comportamiento colaborativo y/o uno o más elementos de capacidad en el conjunto de elementos de capacidad. Por ejemplo, el marco colaborativo puede determinar si el comportamiento colaborativo es adecuado o no para realizar colaborativamente la nueva tarea con el usuario. Si el marco colaborativo decide reutilizar el comportamiento colaborativo y/o algunos o todos los elementos de capacidad en el conjunto de elementos de capacidad, a continuación, el marco colaborativo puede preparar el comportamiento colaborativo y/o el conjunto de elementos de capacidad para la transición a la nueva tarea antes de que el proceso 600 salte al bloque 620. Por ejemplo, basándose en los requisitos de la nueva tarea, el marco colaborativo puede preparar el conjunto de elementos de capacidad para la transición generalizando o volviendo a especializar cualquiera de los elementos RC, reasignando enlaces entre cualquiera de los elementos de capacidad, y/o finalizar y descargar cualquiera de los elementos de capacidad y enlace.
Si en el bloque de decisión 640 el marco colaborativo decide no reutilizar el comportamiento colaborativo, entonces el proceso 600 puede avanzar al bloque 642. En el bloque 642, el marco colaborativo puede desactivar y descargar el comportamiento colaborativo y/o finalizar y descargar algunos o todos los elementos de capacidad y enlace, antes de que el proceso 600 salte al bloque de decisión 610 para activar o componer otro comportamiento colaborativo para realizar la nueva tarea. El marco colaborativo puede descargar el comportamiento colaborativo finalizando y descargando los elementos de capacidad y enlace instanciados para el comportamiento colaborativo, etc. Sin embargo, en caso de que un comportamiento colaborativo exitoso para la nueva tarea pueda utilizar uno o más de los elementos de capacidad y/o enlace, el marco colaborativo puede mantener algunos o todos los elementos de capacidad y/o enlace en la memoria de trabajo, y puede volver a especializar algunos o todos los elementos RC. Por otro lado, si el marco colaborativo no identifica ningún elemento de capacidad o enlace que un comportamiento colaborativo exitoso pueda reutilizar, entonces el marco colaborativo puede descargar el comportamiento colaborativo y finalizar y descargar todos los elementos de capacidad y enlace asociados con el comportamiento colaborativo antes de saltar al bloque de decisión 610 para activar o componer otro comportamiento colaborativo.
Como alternativa, si en el bloque de decisión 630 el marco colaborativo decide no realizar otra tarea, a continuación, en el bloque 652, el marco colaborativo puede desactivar y descargar el comportamiento colaborativo, finalizar y descargar todos los elementos de capacidad y enlace asociados con el comportamiento colaborativo, finalizar y descargar el administrador de comportamiento y el administrador de UI, y/o finalizar y descargar el marco colaborativo. Por último, posteriormente al bloque 652, el proceso 600 termina.
Las figuras 7 y 8 son diagramas de flujo de un proceso 700 y un proceso 800 realizados por el marco generalizable para proporcionar y adaptar dinámicamente representaciones de capacidad reutilizables basándose en comportamientos colaborativos hombre-máquina, de acuerdo con realizaciones de la presente divulgación.
Con referencia ahora a la figura 7, el marco colaborativo puede realizar el proceso 700 mientras o posteriormente a obtener y analizar la composición de capacidad del comportamiento colaborativo actual en el bloque 614 (como se muestra en la figura 6). En el proceso 700, el marco colaborativo puede llamar al administrador de comportamiento para proporcionar elementos RC basándose en una o más capacidades de robot especificadas por la composición de capacidad. El marco colaborativo también puede llamar al menos a una instancia del administrador de UI para cargar y ejecutar elementos IC basándose en una o más capacidades de interacción del usuario especificadas por la composición de capacidad y/o solicitadas por capacidades de robot individuales en la composición de capacidad. El marco colaborativo puede proporcionar cada elemento RC y cada elemento IC como una instancia o proceso separado.
En el bloque 702, el marco colaborativo puede analizar la composición de capacidad y seleccionar una capacidad especificada en la composición de capacidad. El marco colaborativo también puede identificar cualquier capacidad de robot necesitada que tenga al menos un requisito de interfaz abstracto no satisfecho por las capacidades de interacción del usuario especificadas en la composición de capacidad, y el administrador de comportamiento puede difundir los requisitos de U i adicionales a través de un espacio de memoria compartida. En respuesta, el administrador de UI puede seleccionar al menos una capacidad de interacción del usuario para satisfacer los requisitos de UI adicionales. El administrador de UI puede seleccionar una capacidad de interacción de usuario apropiada realizando una función de compatibilidad en la capacidad de robot necesitada. A continuación, en el bloque 704, el marco colaborativo puede determinar un tipo de la capacidad seleccionada, por ejemplo, una capacidad de robot o una capacidad de interacción del usuario.
En el bloque de decisión 710, si se determina que la capacidad seleccionada es una capacidad de robot, entonces el proceso 700 puede avanzar al bloque 712, durante el cual el marco colaborativo proporciona una instancia de la capacidad de robot como un elemento RC. El marco colaborativo puede proporcionar el elemento RC basándose en una o más capacidades de robot generales que son apropiadas para realizar las acciones de tarea basándose en uno o más tipos de acción de tarea asociados con las acciones de tarea que se realizarán usando el comportamiento colaborativo. Por ejemplo, el marco colaborativo puede proporcionar el elemento RC dando instrucciones al administrador de comportamiento para llamar a un archivo de lanzamiento asociado con la capacidad de robot y crear el elemento RC. Ejemplos de capacidades de robot generales incluyen restricción de movimiento, reproducción instantánea del movimiento, generación de trayectorias, y similares. Si una instancia de la capacidad de robot está disponible y ya está cargada en la memoria, por ejemplo, para realizar una tarea previa y/o según lo requiera un comportamiento colaborativo previamente cargado, entonces el marco colaborativo puede simplemente adaptar el elemento RC ya cargado en lugar de crear un nuevo elemento RC.
En lo que sigue, en el bloque 714, el marco colaborativo proporciona al menos un núcleo de información con el que instanciar o especializar el elemento RC. El núcleo de información encapsula un conjunto de uno o más parámetros relacionados con la tarea requeridos por el elemento RC, y los tipos de parámetros que pueden encapsularse en el núcleo de información incluyen, por ejemplo, una restricción de comportamiento de herramienta, una TMP, una plantilla perceptiva, y similares. El marco colaborativo puede identificar el núcleo de información basándose en la composición de capacidad y/o el conjunto de parámetros requeridos por el elemento RC. A continuación, en el bloque 716, el marco colaborativo especializa el elemento RC con el núcleo de información. Si el elemento RC ya está especializado con un núcleo de información diferente, entonces el marco colaborativo puede volver a especializar el elemento RC, por ejemplo, generalizando el elemento RC (por ejemplo, desacoplando el elemento RC del núcleo de información diferente) y a continuación especializando el elemento RC con el núcleo de información. Posteriormente al bloque 716, el proceso 700 puede avanzar al bloque de decisión 720.
Como alternativa, si en el bloque de decisión 710 se determina que la capacidad seleccionada es una capacidad de interacción del usuario, entonces el proceso 700 puede avanzar al bloque 718, durante el cual el marco colaborativo proporciona una instancia de la capacidad de interacción del usuario como un elemento IC. Por ejemplo, el marco colaborativo puede proporcionar el elemento IC dando instrucciones al administrador de UI para llamar a un archivo de lanzamiento asociado con la capacidad de interacción del usuario y crear el elemento IC. El administrador de UI también puede determinar las características de una interfaz de usuario (por ejemplo, pantalla, dispositivo de entrada del usuario, etc.) a través de la cual el elemento 1C interactuará con el usuario, y a continuación personalizará el elemento IC basándose en esas características. Si una instancia de la capacidad de interacción del usuario está disponible y ya está cargada en la memoria, por ejemplo, para realizar una tarea previa y/o según lo requiera un comportamiento colaborativo previamente cargado, entonces el marco colaborativo puede simplemente adaptar el elemento IC ya cargado en lugar de crear un nuevo elemento IC Posteriormente al bloque 718, el proceso 700 puede avanzar al bloque de decisión 720.
En el bloque de decisión 720, el marco colaborativo puede determinar, basándose en la composición de capacidad y/o los requisitos abstractos de la interfaz de cualquier capacidad de robot necesitada, si proporcionar o no más instancias de capacidades. En caso afirmativo, entonces el proceso 700 puede saltar al bloque 702. Como alternativa, en caso negativo, entonces el marco colaborativo puede finalizar el proceso 700 y saltar al bloque 618 (como se muestra en la figura 6).
Con referencia ahora a la figura 8, el marco colaborativo puede realizar el proceso 800 posteriormente a proporcionar los elementos RC asociados con las capacidades de robot especificadas en la composición de capacidad. En el proceso 800, el marco colaborativo puede llamar al administrador de comportamiento para proporcionar elementos de enlace basados en enlaces y asignaciones especificadas por la composición de capacidad del comportamiento colaborativo y puede proporcionar cada elemento de enlace como una instancia o proceso separado.
En el bloque 802, el marco colaborativo puede analizar la composición de capacidad para uno o más enlaces o conexiones entre las capacidades, tales como enlaces entre las capacidades de robot y asignaciones entre capacidades de robot y capacidades de interacción del usuario. En lo que sigue, en el bloque 804, el marco colaborativo puede proporcionar una instancia del enlace o asignación como un elemento de enlace. A continuación, en el bloque 806, el marco colaborativo puede usar el elemento de enlace para conectar los elementos de capacidad relevantes. Por ejemplo, se puede formar un enlace entre un par de elementos de capacidad basándose en un enlace o una asignación especificados en la composición de capacidad. Un par enlazado de elementos de capacidad incluye un elemento de capacidad de editor y un elemento de capacidad de abonado. El marco colaborativo puede formar un enlace entre el par enlazado en forma de un tema, en el que el elemento de capacidad de publicación publica en el tema y el elemento de capacidad de abono se abona al tema.
Por último, en el bloque de decisión 810, el marco colaborativo puede determinar si proporcionar o no más elementos de enlace basándose en los enlaces y asignaciones restantes en la composición de capacidad. En caso afirmativo, entonces el proceso 800 puede saltar al bloque 802. Como alternativa, en caso negativo, entonces el marco colaborativo puede finalizar el proceso 800 y saltar al bloque 620 (como se muestra en la figura 6).
La figura 9 es un diagrama de flujo que ilustra un método de ejemplo para componer comportamientos colaborativos hombre-máquina, de acuerdo con realizaciones de la presente divulgación. El marco colaborativo puede realizar el proceso 900 posteriormente a recibir la entrada para componer un comportamiento colaborativo en el bloque 610 (como se muestra en la figura 6). En el bloque 902, el marco colaborativo puede proporcionar un compositor, por ejemplo, dando instrucciones al administrador de comportamiento y/o al administrador de UI para proporcionar el compositor.
En el bloque 904, el marco colaborativo puede dar instrucciones al compositor para proporcionar una composición de capacidad para el comportamiento colaborativo. Si el comportamiento colaborativo es nuevo o no incluye una composición de capacidad, entonces el compositor puede crear una composición de capacidad. Como alternativa, si el comportamiento colaborativo incluye una composición de capacidad, entonces el compositor puede cargar la composición de capacidad. En lo que sigue, en el bloque 906, el compositor puede proporcionar listas de componentes de comportamiento, que incluyen capacidades de robot disponibles, capacidades de interacción del usuario, núcleos de información, operadores de composición, y similares. El compositor puede crear las listas de componentes de comportamiento disponibles analizando el sistema de archivos local en busca de archivos de configuración y/o archivos de lanzamiento con un prefijo asociado con el marco colaborativo.
En el bloque 908, el compositor puede recibir una entrada del usuario para añadir, modificar o eliminar componentes de comportamiento en la composición de capacidad, por ejemplo, por medio de uno o más elementos de UI o un entorno de comandos, programáticamente, o similar. A continuación, en el bloque de decisión 920, el compositor puede determinar si añadir o modificar/eliminar uno o más componentes de comportamiento.
Si en el bloque de decisión 920 el compositor determina que el usuario desea añadir uno o más componentes de comportamiento a la composición de capacidad, entonces el proceso 900 puede avanzar al bloque 922, en el cual el compositor puede seleccionar una capacidad. El compositor puede seleccionar una capacidad en respuesta a la selección del usuario de la lista de capacidades, línea de comandos, y similares. En lo que sigue, en el bloque 924, el compositor puede determinar si la capacidad seleccionada es o no una capacidad de robot. En caso afirmativo, a continuación, el compositor puede pedirle al usuario que seleccione un núcleo de información con el cual instanciar o especializar la capacidad de robot. A continuación, en el bloque 926, el compositor puede seleccionar un operador de composición asociado con la capacidad seleccionada y/o un operando (por ejemplo, otra capacidad) con el que combinar la capacidad seleccionada. El compositor puede añadir la capacidad seleccionada y, opcionalmente, el operador y/o el operando seleccionado en la composición de capacidad. Posteriormente al bloque 926, el proceso 900 puede avanzar al bloque de decisión 940.
Como alternativa, si en el bloque de decisión 920 el compositor determina que el usuario desea modificar o eliminar uno o más componentes de comportamiento de la composición de capacidad, entonces el proceso 900 puede avanzar al bloque 932, en el cual el compositor puede proporcionar la composición de capacidad al usuario y recibir una entrada del usuario para seleccionar al menos un componente de comportamiento en la composición de capacidad. A continuación, en el bloque 934, el compositor puede modificar el componente de comportamiento seleccionado o eliminar el componente de comportamiento seleccionado de la composición de capacidad. Posteriormente al bloque 934, el proceso 900 puede avanzar al bloque de decisión 940.
En el bloque de decisión 940, el compositor puede determinar si continuar o no componiendo la composición de capacidad. El compositor puede tomar esa determinación basándose en la entrada del usuario. El compositor también puede determinar todos los requisitos de interacción del usuario de las capacidades de robot en la composición de capacidad son o no satisfechos, según la función de compatibilidad, por las capacidades de interacción del usuario en la composición de capacidad. Si el compositor decide continuar, entonces el proceso 900 puede saltar al bloque 906. Como alternativa, si el compositor decide no continuar, entonces el proceso 900 puede avanzar al bloque 942.
En el bloque 942, el compositor puede proporcionar uno o más enlaces y asignaciones entre las capacidades en la composición de capacidad. El compositor puede analizar la composición de capacidad y proporcionar o derivar los enlaces y las asignaciones basándose en uno o más operadores de composición en la composición de capacidad, requisitos de interfaz abstractos de las capacidades de robot, una entrada de usuario, y similares. Por último, en el bloque 944, el compositor puede almacenar la composición de capacidad en un manifiesto de comportamiento asociado con el comportamiento colaborativo. El manifiesto de comportamiento, un ejemplo del cual se muestra en la figura 4, puede encapsular una o más capacidades de robot, capacidades de interacción del usuario y enlaces/asignaciones para el comportamiento colaborativo en etiquetas, bajo las cuales se enumeran las capacidades y los enlaces/asignaciones necesarios para el comportamiento colaborativo. Por último, posteriormente al bloque 944, el marco colaborativo puede finalizar el proceso 900 y saltar al bloque 610 (como se muestra en la figura 6).
PROCESO DE EJEMPLO
El marco colaborativo puede crear o cargar un comportamiento colaborativo para realizar colaborativamente una tarea de lijado con el usuario. Después de crear o cargar el comportamiento colaborativo y cargar al menos una capacidad de robot general especificada en el comportamiento colaborativo, el marco colaborativo puede identificar que una lijadora está unida al robot e instanciar la capacidad de robot general con al menos un núcleo de información que encapsula los parámetros asociados con una lijadora. El marco colaborativo puede cargar, a continuación, una capacidad de interacción de comportamiento de herramienta basada en un requisito de UI de la capacidad de robot instanciada y proporcionar un elemento de UI de comportamiento de herramienta que permite al usuario seleccionar y/o aplicar una restricción de comportamiento de herramienta asociada con la lijadora, si no está ya cargada. Por ejemplo, la capacidad de interacción de comportamiento de herramienta puede no ser una capacidad requerida por el comportamiento colaborativo. El marco colaborativo puede ejecutar, a continuación, la capacidad de interacción de comportamiento de herramienta para proporcionar elementos de UI de comportamiento de herramienta 510 (como se muestra en la figura 5) lo que permite al usuario seleccionar y aplicar una o más restricciones de comportamiento especificadas en la restricción de comportamiento de herramienta, y a continuación restringir el movimiento del robot basándose en las restricciones de comportamiento impuestas. Por ejemplo, el marco colaborativo puede imponer o aplicar una restricción de comportamiento para restringir el movimiento de la lijadora adjunta a solo dentro del plano de su almohadilla de lijado.
El marco colaborativo puede identificar y cargar de manera similar, si es necesario, una capacidad de interacción de la pieza de trabajo que permite al usuario seleccionar y/o aplicar una plantilla perceptiva, y a continuación ejecutar la capacidad de interacción de la pieza de trabajo para proporcionar uno o más elementos de UI de pieza de trabajo 520, lo que puede incluir una representación en 3-D de los planos detectados de una pieza de trabajo y una nube de puntos de entrada para que el usuario seleccione una o más ubicaciones objetivo en la pieza de trabajo. Los elementos de UI de pieza de trabajo 520 pueden permitir además al usuario alternar una plantilla perceptiva de "ajustar a la superficie seleccionada" para teleoperación, lo que puede restringir la orientación de la lijadora unida a la normal del plano o superficie seleccionada. El marco colaborativo puede incorporar elementos de UI de pieza de trabajo 520 que permiten al usuario seleccionar el comportamiento de herramienta y las plantillas perceptivas en un comportamiento de teleoperación restringido por herramientas más grande, que el marco colaborativo puede imponer mientras el usuario guía en admisión al robot.
El marco colaborativo puede proporcionar un elemento de registro de TMP 530 que registra o aprende uno o más movimientos demostrados por el usuario asociados con una TMP requerida por el comportamiento colaborativo para realizar la tarea de lijado. El marco colaborativo también puede crear un elemento de UI de implementación de TMP (no mostrado) para seleccionar puntos en el plano o la superficie de la pieza de trabajo para instanciar una TMP guardada en los puntos seleccionados. Después de recibir la selección del usuario del plano de la pieza de trabajo deseado en la vista en 3-D, que especifica una plantilla perceptiva plana, el marco colaborativo puede deformar la imagen en color en 2-D actual para mostrar una vista ortogonal de arriba hacia abajo de la región plana. A continuación, el usuario puede seleccionar un conjunto de puntos en la imagen y el robot puede activar el comportamiento colaborativo para ejecutar de forma autónoma el movimiento encapsulado en la TMP en cada uno de los puntos durante un número de veces especificado por medio de elementos de UI 540. Esto se puede usar en un comportamiento más grande llamado implementación de TMP.
La figura 10 ilustra un sistema informático 1000 que es consistente con las realizaciones de la presente divulgación. En general, realizaciones de un sistema colaborativo hombre-máquina (por ejemplo, el marco colaborativo 320 y el marco colaborativo distribuido 350) pueden implementarse en diversos sistemas informáticos, tales como uno o más ordenadores personales, servidores, estaciones de trabajo, sistemas integrados, dispositivos multifunción, o una combinación de los mismos. Ciertas realizaciones del sistema colaborativo o de los módulos del mismo pueden integrarse como un programa informático. El programa de ordenador puede existir en una variedad de formas tanto activas como inactivas. Por ejemplo, el programa informático puede existir como uno o más programa de software compuestos por instrucciones de programa en código fuente, código objeto, código ejecutable u otros formatos; uno o más programas de firmware; o archivos de lenguaje de descripción de hardware ("h Dl"). Cualquiera de los anteriores puede incorporarse en un medio legible por ordenador, que incluyen dispositivos de almacenamiento y señales, en forma comprimida o sin comprimir. Sin embargo, por razones de explicación, el sistema 1000 se muestra como un ordenador de uso general que es bien conocido por los expertos en la materia. Ahora se describirán ejemplos de los componentes y periféricos que se puede incluir en el sistema 1000.
Como se muestra, el sistema 1000 incluye al menos un procesador 1002 y una memoria principal 1010, y puede incluir además un teclado 1017, un dispositivo señalador 1018 (por ejemplo, un ratón, un dispositivo señalador en 3-D, un panel táctil, y similares), una pantalla 1016, un controlador de entrada/salida 1015 y un dispositivo de almacenamiento 1014. El dispositivo de almacenamiento 1014 puede comprender, por ejemplo, RAM, ROM, memoria flash, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético o cualquier otro medio que pueda usarse para transportar o almacenar código de programa deseado en la forma de instrucciones o estructuras de datos y al que puede accederse por parte del ordenador. Se puede almacenar una copia de la realización del programa informático del controlador de impresora en, por ejemplo, el dispositivo de almacenamiento 1014. El sistema 1000 también puede estar provisto de dispositivos de entrada/salida adicionales, tales como una impresora (no mostrada). Los diversos componentes del sistema 1000 se comunican a través de un bus de sistema 1012 o una arquitectura similar. Además, el sistema 1000 puede incluir un sistema operativo ("OS") 1020 que reside en la memoria 1010 durante el funcionamiento. Un experto en la materia reconocerá que el sistema 1000 puede incluir múltiples procesadores 1002. Por ejemplo, el sistema 1000 puede incluir múltiples copias del mismo procesador. Como alternativa, el sistema 1000 puede incluir una mezcla heterogénea de diversos tipos de procesadores. Por ejemplo, el sistema 1000 puede usar un procesador como un procesador principal y otros procesadores como coprocesadores. En otro ejemplo, el sistema 1000 puede incluir uno o más procesadores multinúcleo y uno o más procesadores de un solo núcleo. Por tanto, el sistema 1000 puede incluir cualquier número de núcleos de ejecución en un conjunto de procesadores (por ejemplo, el procesador 1002). En cuanto al teclado 1017, el dispositivo señalador 1018, y la pantalla 1016, estos componentes pueden implementarse usando componentes que son bien conocidos por los expertos en la materia. Un experto en la materia también reconocerá que se pueden incluir otros componentes y periféricos en el sistema 1000.
La memoria principal 1010 sirve como un área de almacenamiento principal del sistema 1000 y contiene datos que son usados activamente por aplicaciones, tales como el controlador de impresora en el sistema de impresión de códigos de barras, que se ejecutan en el procesador 1002. Un experto en la materia reconocerá que las aplicaciones son programas de software que contienen un conjunto de instrucciones informáticas para indicar al sistema 1000 para que realice un conjunto de tareas específicas durante el tiempo de ejecución, y que el término "aplicaciones" se puede usar de manera intercambiable con software de aplicación, programas de aplicación, controladores de dispositivos y/o programas de acuerdo con realizaciones de las presentes enseñanzas. La memoria 1010 puede implementarse como una memoria de acceso aleatorio u otras formas de memoria como se describe a continuación, que serán bien conocidas por los expertos en la materia.
El OS 1020 es una colección integrada de rutinas e instrucciones que son responsables del control y la administración directos del hardware en el sistema 1000 y las operaciones del sistema. Adicionalmente, el OS 1020 proporciona una base sobre la cual ejecutar software de aplicación y controladores de dispositivos. Por ejemplo, el OS 1020 puede realizar servicios, tales como la asignación de recursos, planificación de tiempos, control de entrada/salida y administración de memoria. El OS 1020 puede ser predominantemente software, pero también puede contener implementaciones de hardware parciales o completas y firmware. Ejemplos bien conocidos de sistemas operativos que son consistentes con los principios de las presentes enseñanzas incluyen SISTEMA OPERATIVO DE ROBOT, LINUX, UNIX, ORACLE SOLARIS, MICROSOFT WINDOWS, MAC OS, OPEN VMS e IBM AIX.
La descripción anterior es ilustrativa, y a los expertos en la materia se les pueden ocurrir variaciones en la configuración e implementación. Por ejemplo, las diversas lógicas ilustrativas, bloques lógicos, módulos y circuitos descritos en relación con las realizaciones divulgadas en el presente documento pueden implementarse o realizarse con un procesador de uso general (por ejemplo, el procesador 1002), un circuito integrado específico de la aplicación, una matriz de puertas programables en campo u otro dispositivo lógico programable, puerta discreta o proceso lógico de transistor, componentes de hardware discretos, o cualquier combinación de los mismos diseñados para realizar las funciones descritas en el presente documento. Un procesador de uso general puede ser un microprocesador, pero, en la alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, un microprocesador, una pluralidad de microprocesadores, o cualquier otra configuración similar.
En uno o más ejemplos de realización, las funciones descritas pueden implementarse en hardware, software, firmware, o cualquier combinación de los mismos. Para una implementación de software, las técnicas descritas en el presente documento se pueden implementar con módulos (por ejemplo, procedimientos, funciones, subprogramas, programas, rutinas, subrutinas, módulos, paquetes de software, clases, etc.) que realizan las funciones descritas en el presente documento. Un módulo se puede acoplar a otro módulo o a un circuito de hardware pasando y/o recibiendo información, datos, argumentos, parámetros o contenidos de memoria. Información, argumentos, parámetros, datos, o similares se pueden pasar, reenviar o transmitir usando cualquier medio adecuado, incluyendo el uso compartido de memoria, paso de mensajes, paso de testigos, transmisión en red, y similares. Los códigos de software pueden almacenarse en unidades de memoria y ser ejecutados por procesadores. La unidad de memoria puede implementarse dentro del procesador o externa al procesador, en cuyo caso puede acoplarse comunicativamente al procesador por medio de diversos medios como se conoce en la técnica.
Si se implementan en software, las funciones pueden almacenarse o transmitirse a través de un medio legible por ordenador como una o más instrucciones o código. Los medios legibles por ordenador incluyen tanto medios de almacenamiento como medios de comunicación informáticos tangibles, no transitorios, incluyendo cualquier medio que facilite la transferencia de un programa informático de un lugar a otro. Un medio de almacenamiento puede ser cualquier medio no transitorio tangible disponible al que se puede acceder mediante un ordenador. A modo de ejemplo, y no de limitación, dicho medio tangible, no transitorio legible por ordenador puede comprender RAM, ROM, memoria flash, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético o cualquier otro medio que pueda usarse para transportar o almacenar código de programa deseado en la forma de instrucciones o estructuras de datos y al que puede accederse por parte del ordenador. Los discos (disk o disc en inglés), tal como se usan en el presente documento, incluyen CD, disco láser, disco óptico, DVD, disquete y disco Blu-ray donde los discos (disks) generalmente reproducen datos magnéticamente, mientras que los discos (discs) reproducen los datos de manera óptica con láser. También, cualquier conexión se denomina correctamente un medio legible por ordenador. Por ejemplo, si el software se transmite desde un sitio web, servidor u otra fuente remota usando un cable coaxial, cable de fibra óptica, par trenzado, línea digital de abonado (DSL) o tecnologías inalámbricas tales como infrarroja, radio y microondas, entonces el cable coaxial, cable de fibra óptica, par trenzado, DSL o tecnologías inalámbricas tales como la infrarroja, radio y microondas se incluyen en la definición de medio. Combinaciones de los anteriores deberían incluirse también dentro del alcance de los medios legibles por ordenador.
Los recursos descritos como singulares o integrados pueden, en una realización, ser plurales o distribuidos, y los recursos descritos como múltiples o distribuidos pueden, en realizaciones, combinarse. Por consiguiente, se pretende que el alcance de las presentes enseñanzas esté limitado únicamente por las siguientes reivindicaciones. Aunque la invención se ha descrito con respecto a realizaciones específicas, los expertos en la materia reconocerán que son posibles numerosas modificaciones. Por ejemplo, los servidores proxy pueden tener funcionalidades adicionales no mencionadas en el presente documento. Además, las realizaciones de la presente divulgación se pueden realizar usando cualquier combinación de componentes dedicados y/o procesadores programables y/u otros dispositivos programables. Si bien las realizaciones descritas anteriormente pueden hacer referencia a componentes específicos de hardware y software, los expertos en la materia apreciarán que también se pueden usar diferentes combinaciones de componentes de hardware y/o software y que las operaciones particulares descritas como implementadas en hardware también podrían implementarse en software o viceversa.

Claims (20)

REIVINDICACIONES
1. Un método implementado por ordenador (600, 700, 800) para permitir la colaboración usuario-robot, que comprende:
obtener (614), mediante un marco colaborativo para comunicarse e interactuar con al menos un robot (340), una composición (400) de una capacidad de robot y una o más capacidades de interacción del usuario, en donde la capacidad de robot modeliza al menos una funcionalidad de un robot (340, 380) para realizar un tipo de acción de tarea basándose en un conjunto de uno o más parámetros, y las una o más capacidades de interacción del usuario proporcionan una o más modalidades de interfaz a un usuario ya sea requiriendo comandos de entrada o mostrando retroalimentación, en donde la composición es una composición en serie o una composición en paralelo, en donde la composición en serie representa la conexión de salidas de una capacidad con las entradas de otra capacidad, y la composición en paralelo representa la unión de dos capacidades;
especializar (616, 714, 716) la capacidad de robot con un núcleo de información en dependencia de una demostración del usuario que especifica una o más trayectorias de movimiento, en donde el núcleo de información encapsula el conjunto de uno o más parámetros, y en donde las una o más trayectorias de movimiento se han adquirido a través de un entorno de realidad virtual inmersivo en el que un usuario puede interactuar con un avatar del robot para especificar trayectorias de movimiento;
proporcionar (712, 714, 716) un elemento de capacidad de robot basándose en la capacidad de robot, en donde el elemento de capacidad de robot es una instancia de la capacidad de robot;
proporcionar (718) uno o más elementos de capacidad de interacción basándose en las una o más capacidades de interacción del usuario, en donde los uno o más elementos de capacidad de interacción son instancias de las una o más capacidades de interacción del usuario;
conectar (618, 800) el elemento de capacidad de robot a los uno o más elementos de capacidad de interacción; adquirir, mediante una o más interfaces de usuario, UI, (310, 370, 500) que dependen de los uno o más elementos de capacidad de interacción, entrada de usuario (510, 520, 530, 540) asociada con el conjunto de uno o más parámetros; y
controlar (620), basándose en la entrada de usuario y el núcleo de información, la al menos una funcionalidad del robot por medio del elemento de capacidad de robot para realizar una acción de tarea del tipo de acción de tarea.
2. El método de la reivindicación 1, en donde el tipo de acción de tarea incluye una restricción de movimiento, comprendiendo además el método:
proporcionar (716), basándose en el tipo de acción de tarea, un tipo de herramienta para realizar la acción de tarea; encapsular (716, 924, 934) una restricción de comportamiento de herramienta en el núcleo de información, proporcionando la restricción de comportamiento de herramienta la restricción de movimiento asociada con el tipo de herramienta; y
recibir la entrada de usuario (510, 520, 530, 540, 620) por medio de las una o más UI para realizar la acción de tarea,
en donde controlar la al menos una funcionalidad del robot incluye imponer (620) la restricción de movimiento para restringir uno o más movimientos del robot al realizar la acción de tarea.
3. El método de la reivindicación 2, en donde recibir la entrada de usuario comprende además:
recibir (620) la manipulación del robot por parte del usuario por medio de una Ui de control de admisión (510, 520) de las una o más UI.
4. El método de la reivindicación 1, en donde conectar el elemento de capacidad de robot comprende además: derivar (618, 942) al menos un requisito de UI del elemento de capacidad de robot basándose en una interfaz del elemento de capacidad de robot, en donde la interfaz incluye al menos una interfaz de entrada o una interfaz de salida.
5. El método de la reivindicación 1, que comprende, además:
proporcionar (616), basándose en el tipo de acción de tarea, un tipo de herramienta para realizar la acción de tarea; encapsular (616, 924, 934) una primitiva de movimiento de herramienta, TMP, en el núcleo de información, proporcionando la TMP un movimiento de herramienta asociado con el tipo de herramienta.
6. El método de la reivindicación 5, que comprende, además:
proporcionar (620) una interfaz de instructor que incluye un proxy de herramienta del tipo de herramienta para recibir el movimiento demostrado por el usuario;
determinar una posición de inicio del proxy de herramienta;
adquirir datos de trayectoria (530) del proxy de herramienta a partir del movimiento demostrado por el usuario; generalizar los datos de trayectoria basándose en la posición de inicio del robot para formar la TMP; y almacenar la TMP.
7. El método de la reivindicación 6, en donde adquirir los datos de trayectoria comprende además:
proporcionar (716) una restricción de comportamiento de herramienta (510) asociada con el tipo de herramienta, proporcionando la restricción de comportamiento de herramienta una restricción de movimiento asociada con el tipo de herramienta; e
imponer (620) la restricción de movimiento para restringir uno o más movimientos del proxy de herramienta.
8. El método de la reivindicación 5, que comprende, además:
proporcionar (716) una interfaz de instructor de control de admisión (530) para recibir el movimiento demostrado por el usuario por medio de la manipulación del robot por parte del usuario;
determinar una posición de inicio del robot;
adquirir (530, 620) datos de trayectoria del robot a partir del movimiento demostrado por el usuario; generalizar los datos de trayectoria basándose en la posición de inicio del robot para formar la TMP; y almacenar la TMP;
en donde adquirir los datos de trayectoria comprende opcionalmente además:
proporcionar una restricción de comportamiento de herramienta (510) asociada con el tipo de herramienta, proporcionando la restricción de comportamiento de herramienta una restricción de movimiento asociada con el tipo de herramienta; e
imponer (620) la restricción de movimiento para restringir uno o más movimientos del robot.
9. El método de la reivindicación 5, en donde el tipo de acción de tarea incluye reproducción instantánea del movimiento, y en donde controlar la al menos una funcionalidad del robot comprende además: controlar (540, 620) el robot para realizar la acción de tarea basándose en el movimiento de herramienta.
10. El método de la reivindicación 5, en donde el tipo de acción de tarea incluye la generación de trayectorias, comprendiendo además el método:
encapsular (716, 924, 934) una plantilla perceptiva en el núcleo de información, proporcionando la plantilla perceptiva al menos una característica de una pieza de trabajo objetivo (520) para restringir el movimiento de herramienta;
obtener datos de percepción (520, 620) asociados con la al menos una característica de la pieza de trabajo objetivo; y
generar una trayectoria de movimiento fundamentando el movimiento de herramienta basándose en los datos de percepción,
en donde controlar la al menos una funcionalidad del robot incluye controlar (620) el robot para realizar la acción de tarea basándose en la trayectoria de movimiento.
11. El método de la reivindicación 1, en donde especializar la capacidad de robot comprende además: seleccionar (714, 924, 934) el núcleo de información basándose en un tipo de herramienta seleccionado.
12. El método de la reivindicación 1, que comprende, además:
proporcionar (904) un comportamiento colaborativo que incluye la composición de la capacidad de robot y las una o más capacidades de interacción del usuario;
seleccionar (906) una pluralidad de capacidades de robot basándose en un requisito de composición de capacidad de robot del comportamiento colaborativo;
componer (908-942) la pluralidad de capacidades de robot en una composición de capacidades de robot; y asociar (944) la composición de capacidades de robot con el comportamiento colaborativo.
13. El método de la reivindicación 12, en donde componer la pluralidad de capacidades de robot comprende además: componer (926, 934) dos capacidades de robot de la pluralidad de capacidades de robot usando al menos uno de un operador de composición en paralelo o un operador de composición en serie.
14. El método de la reivindicación 12, que comprende, además:
derivar una pluralidad de requisitos de UI de la composición de capacidades de robot realizando una función de compatibilidad en la composición de capacidades de robot; y
determinar una pluralidad de capacidades de interacción que cumplan con la pluralidad de requisitos de UI; y generar (942) una asignación entre la composición de capacidades de robot y la pluralidad de capacidades de interacción basándose en la pluralidad de requisitos de UI.
15. El método de la reivindicación 12, que comprende, además:
proporcionar (906) una pluralidad de elementos de capacidad de robot, en donde la pluralidad de elementos de capacidad de robot son instancias de la pluralidad de capacidades de robot; y
formar (942) un enlace entre un par de elementos de capacidad de robot de la pluralidad de elementos de capacidad de robot basándose en un requisito de enlace del comportamiento colaborativo, en donde el par de elementos de capacidad de robot incluyen un elemento de capacidad de robot editor y un elemento de capacidad de robot abonado.
16. El método de la reivindicación 15, que comprende, además:
proporcionar cada uno de la pluralidad de elementos de capacidad de robot, los uno o más elementos de capacidad de interacción y el enlace en un proceso separado.
17. El método de la reivindicación 15, que comprende, además:
proporcionar el requisito de composición de capacidad de robot (420a, 425a) y el requisito de enlace (420e, 425c) basándose en un manifiesto de comportamiento (400) asociado con el comportamiento colaborativo.
18. El método de acuerdo con cualquier reivindicación anterior, en donde el marco colaborativo para comunicarse e interactuar con al menos un robot (340) es para aprender y/o proporcionar funcionalidades colaborativas/de asistencia asociadas con comportamientos colaborativos.
19. Un sistema para permitir la colaboración usuario-robot, que comprende:
una memoria no transitoria (1014) que almacena instrucciones; y
un procesador (1002) que ejecuta las instrucciones para hacer que el sistema realice el método (600, 700, 800) de acuerdo con cualquiera de las reivindicaciones 1 a 18.
20. Un medio de almacenamiento legible por ordenador no transitorio (1014) que contiene instrucciones que, cuando se ejecutan en un procesador (1002), realizan el método de acuerdo con cualquiera de las reivindicaciones 1 a 18.
ES15837602T 2014-09-02 2015-08-28 Sistema y método para una colaboración hombre-máquina flexible Active ES2944479T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/475,184 US9272418B1 (en) 2014-09-02 2014-09-02 System and method for flexible human-machine collaboration
PCT/US2015/047394 WO2016036593A1 (en) 2014-09-02 2015-08-28 System and method for flexible human-machine collaboration

Publications (1)

Publication Number Publication Date
ES2944479T3 true ES2944479T3 (es) 2023-06-21

Family

ID=55359821

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15837602T Active ES2944479T3 (es) 2014-09-02 2015-08-28 Sistema y método para una colaboración hombre-máquina flexible

Country Status (10)

Country Link
US (4) US9272418B1 (es)
EP (1) EP3194123B1 (es)
JP (3) JP6685999B2 (es)
KR (2) KR102564933B1 (es)
CN (1) CN106794581B (es)
CA (2) CA3230196A1 (es)
DK (1) DK3194123T3 (es)
ES (1) ES2944479T3 (es)
MX (1) MX2017002723A (es)
WO (1) WO2016036593A1 (es)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9272418B1 (en) 2014-09-02 2016-03-01 The Johns Hopkins University System and method for flexible human-machine collaboration
US9643314B2 (en) * 2015-03-04 2017-05-09 The Johns Hopkins University Robot control, training and collaboration in an immersive virtual reality environment
US9707680B1 (en) * 2015-05-28 2017-07-18 X Development Llc Suggesting, selecting, and applying task-level movement parameters to implementation of robot motion primitives
DK3371666T3 (da) * 2015-11-02 2021-10-18 Univ Johns Hopkins Fremstilling af en robotbrugergrænseflade som reaktion på tilslutning af periferienheder til robot
WO2017197018A2 (en) * 2016-05-10 2017-11-16 Trustees Of Tufts College Systems and methods enabling online one-shot learning and generalization by intelligent systems of task-relevant features and transfer to a cohort of intelligent systems
US10571902B2 (en) * 2016-10-12 2020-02-25 Sisu Devices Llc Robotic programming and motion control
CN107168182A (zh) * 2017-06-28 2017-09-15 范崇山 一种室内机器人vr应用的系统及方法
CN109202882B (zh) * 2017-06-29 2021-04-06 深圳模德宝科技有限公司 一种机器人的控制方法及其装置
CN107317822B (zh) * 2017-07-25 2020-03-31 南京物联传感技术有限公司 一种带有虚实交互的智能家居体验系统及其使用方法
US11074528B2 (en) 2017-08-31 2021-07-27 Accenture Global Solutions Limited Robotic operations control system for a blended workforce
CN107544248B (zh) * 2017-09-13 2019-12-13 上海思岚科技有限公司 一种移动机器人中的任务优化方法及设备
US11619927B2 (en) * 2017-11-03 2023-04-04 Drishti Technologies, Inc. Automatic analysis of real time conditions in an activity space
CN109690450B (zh) 2017-11-17 2020-09-29 腾讯科技(深圳)有限公司 Vr场景下的角色模拟方法和终端设备
CN109968352B (zh) * 2017-12-28 2021-06-04 深圳市优必选科技有限公司 一种机器人控制方法及机器人、具有存储功能的装置
JP7065886B2 (ja) * 2017-12-28 2022-05-12 株式会社Fuji 情報提供装置、情報提供方法及びプログラム
US10913154B2 (en) 2018-01-02 2021-02-09 General Electric Company Systems and method for robotic learning of industrial tasks based on human demonstration
US11281208B2 (en) * 2018-03-02 2022-03-22 Carnegie Mellon University Efficient teleoperation of mobile robots via online adaptation
US11285607B2 (en) * 2018-07-13 2022-03-29 Massachusetts Institute Of Technology Systems and methods for distributed training and management of AI-powered robots using teleoperation via virtual spaces
US10953541B2 (en) * 2018-07-31 2021-03-23 At&T Intellectual Property I, L.P. Providing logistical support for robots
US11440119B2 (en) * 2018-10-12 2022-09-13 Teradyne, Inc. System and method for weld path generation
CN109352661B (zh) * 2018-12-11 2022-01-18 上海辛格林纳新时达电机有限公司 一种机器人关节的控制方法、伺服驱动装置和可存储介质
DE102018133337A1 (de) * 2018-12-21 2020-06-25 Rittal Gmbh & Co. Kg Verfahren zur Verdrahtung von elektrischen Komponenten einer auf einer Montageplatte angeordneten elektrischen Schaltanlage
US20220162911A1 (en) * 2019-03-19 2022-05-26 Sandvik Mining And Construction Oy Mine vehicle boom positioning control
CN110125455B (zh) * 2019-05-27 2020-06-02 清华大学 一种用于机器人钻孔中优化钻头位姿的方法
US11497564B2 (en) * 2019-06-07 2022-11-15 Verb Surgical Inc. Supervised robot-human collaboration in surgical robotics
CN110270998A (zh) * 2019-06-12 2019-09-24 上海宾通智能科技有限公司 机器人调度方法、电子设备和计算机可读存储介质
DE102019216560B4 (de) * 2019-10-28 2022-01-13 Robert Bosch Gmbh Verfahren und Vorrichtung zum Trainieren von Manipulationsfertigkeiten eines Robotersystems
CN112847430B (zh) * 2019-11-26 2022-03-29 中国科学院沈阳自动化研究所 一种协作机器人本质安全设计方法
CN110900061A (zh) * 2019-12-13 2020-03-24 遨博(北京)智能科技有限公司 一种焊接工艺块生成方法、装置、焊接机器人及存储介质
CN111267099B (zh) * 2020-02-24 2023-02-28 东南大学 基于虚拟现实的陪护机器控制系统
CN111311106B (zh) * 2020-03-02 2023-02-03 广东工业大学 一种在ros上利用非经典规划器实现任务规划的方法及系统
US11524402B2 (en) * 2020-05-21 2022-12-13 Intrinsic Innovation Llc User feedback for robotic demonstration learning
US11685047B2 (en) 2020-05-21 2023-06-27 Intrinsic Innovation Llc Skill template distribution for robotic demonstration learning
US11679497B2 (en) * 2020-05-21 2023-06-20 Intrinsic Innovation Llc Distributed robotic demonstration learning
US11534913B2 (en) 2020-05-21 2022-12-27 Intrinsic Innovation Llc Integrating sensor streams for robotic demonstration learning
US11986958B2 (en) * 2020-05-21 2024-05-21 Intrinsic Innovation Llc Skill templates for robotic demonstration learning
US11294793B1 (en) * 2020-10-23 2022-04-05 UiPath Inc. Robotic process automation (RPA) debugging systems and methods
CN112356031B (zh) * 2020-11-11 2022-04-01 福州大学 一种基于Kernel采样策略在不确定性环境下的在线规划方法
FR3116747B1 (fr) * 2020-11-30 2023-04-21 Mbda France Système et procédé d’apprentissage de mouvement pour programmer au moins un dispositif robotisé.
CN112936267B (zh) * 2021-01-29 2022-05-27 华中科技大学 一种人机协作智能制造方法及系统
CN113352322B (zh) * 2021-05-19 2022-10-04 浙江工业大学 一种基于最优导纳参数的自适应人机协作控制方法
CN113687817B (zh) * 2021-08-16 2023-10-31 山东新一代信息产业技术研究院有限公司 一种消息格式解析器及解析方法
CN113657059B (zh) * 2021-08-17 2023-05-09 成都视海芯图微电子有限公司 一种适用于点云数据处理器的自动化设计方法及装置
CN113900384A (zh) * 2021-10-13 2022-01-07 达闼科技(北京)有限公司 机器人与智能设备交互的方法、装置及电子设备
CN114219220B (zh) * 2021-11-18 2022-12-09 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 人机工效评估方法、系统、计算机设备和存储介质
DE102021131028A1 (de) 2021-11-26 2023-06-01 Schaeffler Technologies AG & Co. KG Verbesserte Mensch-Roboter-Interaktion durch erweiterte Realität
KR102610426B1 (ko) * 2021-11-30 2023-12-06 서울시립대학교 산학협력단 조직 기반 작업 명세를 이용하는 다중 로봇 작업의 처리 방법 및 장치
KR102604104B1 (ko) 2022-03-02 2023-11-17 광운대학교 산학협력단 인간-로봇 협업 상태 기반 가변 어드미턴스 제어 방법, 이를 수행하는 장치 및 컴퓨터 프로그램
CN114986525A (zh) * 2022-07-13 2022-09-02 佛山纽欣肯智能科技有限公司 一种基于多模态信息的机器人手持示教装置与方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154206A (ja) * 1987-12-10 1989-06-16 Honda Motor Co Ltd ティーチングボックス
JP3529158B2 (ja) * 1994-05-18 2004-05-24 ファナック株式会社 ロボット動作プログラミング方法及びプログラミング装置
JPH08112790A (ja) * 1994-10-13 1996-05-07 Toshiba Corp 作業ロボット
JPH11191005A (ja) * 1997-12-25 1999-07-13 Tokico Ltd ロボット制御装置
JP2000006068A (ja) * 1998-06-25 2000-01-11 Nippon Telegr & Teleph Corp <Ntt> ヒューマン・ロボットコラボレーション制御方法と装置及びプログラムを記録した記録媒体
JP2000010618A (ja) * 1998-06-25 2000-01-14 Nippon Telegr & Teleph Corp <Ntt> ロボット教示装置およびロボット教示装置用アプリケーション製造装置とそのプログラムを記録した記録媒体
US7054798B2 (en) * 2001-07-19 2006-05-30 International Business Machines Corporation Punch and die optimization
WO2006062948A2 (en) * 2004-12-06 2006-06-15 Honda Motor Co., Ltd. Interface for robot motion control
EP1987406B1 (en) 2006-02-23 2010-08-04 Abb Ab A system for controlling the position and orientation of an object in dependence on received forces and torques from a user
US7792602B2 (en) * 2006-08-22 2010-09-07 Precision Automation, Inc. Material processing system and a material processing method including a saw station and an interface with touch screen
WO2008083489A1 (en) * 2007-01-12 2008-07-17 Hansjorg Baltes Method and system for robot generation
WO2008119383A1 (en) * 2007-03-30 2008-10-09 Abb Technology Ab Method and apparatus for programming an industrial robot
JP4997145B2 (ja) * 2008-02-29 2012-08-08 トヨタ自動車株式会社 パワーアシスト装置およびその制御方法
KR101021836B1 (ko) * 2008-10-09 2011-03-17 한국전자통신연구원 동적 행위 바인딩을 통한 다수 로봇의 협업 구현 시스템 및그 구현 방법
KR20100086262A (ko) 2009-01-22 2010-07-30 삼성전자주식회사 로봇 및 그 제어방법
US8260460B2 (en) * 2009-09-22 2012-09-04 GM Global Technology Operations LLC Interactive robot control system and method of use
JP5573275B2 (ja) * 2010-03-25 2014-08-20 富士ゼロックス株式会社 特徴点抽出装置及びこれを用いた動作教示装置、動作処理装置
JP2011200997A (ja) * 2010-03-26 2011-10-13 Kanto Auto Works Ltd ロボットのティーチング装置及びティーチング方法
US20120016671A1 (en) * 2010-07-15 2012-01-19 Pawan Jaggi Tool and method for enhanced human machine collaboration for rapid and accurate transcriptions
WO2012065175A2 (en) 2010-11-11 2012-05-18 The Johns Hopkins University Human-machine collaborative robotic systems
JP4991023B2 (ja) * 2010-11-12 2012-08-01 パナソニック株式会社 移動経路探索装置および移動経路探索方法
JP2013054629A (ja) * 2011-09-06 2013-03-21 Honda Motor Co Ltd 制御装置及び方法
US9085080B2 (en) 2012-12-06 2015-07-21 International Business Machines Corp. Human augmentation of robotic work
US9272418B1 (en) * 2014-09-02 2016-03-01 The Johns Hopkins University System and method for flexible human-machine collaboration
JP6441061B2 (ja) * 2014-12-16 2018-12-19 株式会社ダイヘン 機械制御システム及び機械制御システムのユーザインタフェース設定方法

Also Published As

Publication number Publication date
CN112428270A (zh) 2021-03-02
US10807237B2 (en) 2020-10-20
US20160129590A1 (en) 2016-05-12
WO2016036593A1 (en) 2016-03-10
CN106794581A (zh) 2017-05-31
JP7192026B2 (ja) 2022-12-19
EP3194123B1 (en) 2023-03-29
EP3194123A4 (en) 2018-05-09
KR102564933B1 (ko) 2023-08-08
US20160059415A1 (en) 2016-03-03
CA2958885C (en) 2024-04-02
US20170144304A1 (en) 2017-05-25
US10022870B2 (en) 2018-07-17
DK3194123T3 (da) 2023-05-30
JP6685999B2 (ja) 2020-04-22
CA2958885A1 (en) 2016-03-10
CN106794581B (zh) 2020-12-01
KR102392114B1 (ko) 2022-04-28
JP2021107110A (ja) 2021-07-29
CA3230196A1 (en) 2016-03-10
US9272418B1 (en) 2016-03-01
JP2017525574A (ja) 2017-09-07
JP2020192672A (ja) 2020-12-03
JP6875578B2 (ja) 2021-05-26
MX2017002723A (es) 2017-05-09
US20180290303A1 (en) 2018-10-11
KR20220063282A (ko) 2022-05-17
KR20170047364A (ko) 2017-05-04
EP3194123A1 (en) 2017-07-26
US9586315B2 (en) 2017-03-07

Similar Documents

Publication Publication Date Title
ES2944479T3 (es) Sistema y método para una colaboración hombre-máquina flexible
Crick et al. Rosbridge: Ros for non-ros users
Kousi et al. Digital twin for adaptation of robots’ behavior in flexible robotic assembly lines
Wallhoff et al. A skill-based approach towards hybrid assembly
US11951631B2 (en) Object marking to support tasks by autonomous machines
WO2018176025A1 (en) System and method for engineering autonomous systems
Guerin et al. Adjutant: A framework for flexible human-machine collaborative systems
Hinwood et al. A proposed wizard of OZ architecture for a human-robot collaborative drawing task
Choi et al. Development of robot scenario script language and tool for non-expert
Akkaladevi et al. Programming-free approaches for human–robot collaboration in assembly tasks
Gandhinathan et al. ROS Robotics projects: build and control robots powered by the Robot Operating System, machine learning, and virtual reality
Solvang et al. On industrial robots and cognitive info-communication
Zutell et al. Ros 2-based flexible behavior engine for flexible navigation
CN112428270B (zh) 用于灵活的人机协作的系统和方法
Lütkebohle Coordination and composition patterns in the" Curious Robot" scenario
US20230182295A1 (en) Sampling for robotic skill adaptation
Profanter Implementation and Evaluation of multimodal input/output channels for task-based industrial robot programming
Formanek et al. INMOOV PROJECT CONTROLLED BY ROBOT OPERATING SYSTEM (ROS)
Groß et al. RISE: an open-source architecture for interdisciplinary and reproducible human–robot interaction research
Nyman et al. Implementing multi-touch screen for real-time control of a robotic cell at Universidad Politécnica de Valencia