ES2783000T3 - Kit robótico reconfigurable - Google Patents

Kit robótico reconfigurable Download PDF

Info

Publication number
ES2783000T3
ES2783000T3 ES15181298T ES15181298T ES2783000T3 ES 2783000 T3 ES2783000 T3 ES 2783000T3 ES 15181298 T ES15181298 T ES 15181298T ES 15181298 T ES15181298 T ES 15181298T ES 2783000 T3 ES2783000 T3 ES 2783000T3
Authority
ES
Spain
Prior art keywords
digital
digital servo
module
modules
central controller
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
ES15181298T
Other languages
English (en)
Inventor
Christopher John Hardouin
Romeo Andres Garza
Felipe Jose Garza
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.)
Spin Master Ltd
Original Assignee
Spin Master Ltd
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 Spin Master Ltd filed Critical Spin Master Ltd
Application granted granted Critical
Publication of ES2783000T3 publication Critical patent/ES2783000T3/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/08Programme-controlled manipulators characterised by modular constructions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/003Controls for manipulators by means of an audio-responsive input
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/1617Cellular, reconfigurable manipulator, e.g. cebot
    • 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/10Plc systems
    • G05B2219/16Plc to applications
    • G05B2219/163Domotique, domestic, home control, automation, smart, intelligent house
    • 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/40116Learn by operator observation, symbiosis, show, watch
    • 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/40264Human like, type robot arm
    • 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/40302Dynamically reconfigurable robot, adapt structure to tasks, cellular robot, cebot
    • 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/40304Modular structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Toys (AREA)
  • Manipulator (AREA)

Abstract

Un sistema robótico reconfigurable, que comprende: una pluralidad de módulos (100) servo digitales, en donde cada uno de la pluralidad de módulos (100) servo digitales incluye un servomotor que incluye un sensor de posición del servo; una pluralidad de bloques de construcción elementales, en donde la pluralidad de bloques de construcción elementales está conectada a la pluralidad de módulos (100) servo digitales para construir una figura robótica que tiene articulaciones controladas por posición, en donde los bloques de construcción elementales son combinables con la pluralidad de módulos (100) servos digitales para construir figuras robóticas de diferentes configuraciones; un controlador (400) central, el controlador (400) central que tiene al menos un canal de comunicación que incluye un puerto de salida que proporciona alimentación, tierra y una señal de datos; en donde cada uno de la pluralidad de módulos (100) servo digitales incluye un puerto de entrada y un puerto de salida, el puerto de entrada del módulo servo digital que tiene pines de alimentación, tierra y señal de datos, el puerto de salida del módulo servo digital que tiene pines de alimentación, tierra y señal de datos, el pin de señal de datos de entrada del módulo servo digital que es eléctricamente discreto del pin de señal de datos de salida del módulo servo digital, de modo que el pin de señal de datos de entrada del módulo servo digital y el pin de señal de datos de salida del módulo servo digital no se cortocircuitan entre sí; en donde el puerto de entrada de un módulo (100) servo digital determinado de dicha pluralidad de módulos (100) servo digitales está conectado al puerto de salida del controlador (400) central, los módulos (100) servo digitales restantes de dicha pluralidad de módulos (100) servo digitales están interconectados en secuencia de modo que el puerto de entrada de cada uno de los módulos (100) servo digitales restantes está conectado al puerto de salida de un módulo (100) servo digital siguiente adyacente en la secuencia cuando el módulo servo siguiente adyacente está presente; y en donde el controlador (400) central y la pluralidad de módulos (100) servo digitales están programados para ejecutar un protocolo de comunicación en el cual el controlador (400) central descubre la pluralidad de módulos (100) servo digitales, y en donde la pluralidad de los módulos (100) servo digitales está configurada para transmitir datos a lo largo del canal de manera en serie antes del descubrimiento y configurados para transmitir datos a lo largo del canal de manera casi paralela después del descubrimiento; en donde, en la configuración en serie, el módulo servo digital determinado (100) recibirá y procesará un paquete de datos transmitido por el controlador central (400) preferiblemente sin enviar el paquete de datos aguas abajo al siguiente módulo servo digital adyacente (100), cuando el siguiente módulo servo digital adyacente (100) está presente; y en donde, en la configuración casi paralela, el módulo (100) servo digital determinado coloca sus puertos de E/S de señal de datos en un modo de seguimiento de modo que al recibir un flujo de datos correspondiente al paquete de datos del controlador (400) central, el módulo (100) servo digital determinado envía el flujo de datos aguas abajo al siguiente módulo (100) servo digital adyacente conectado, cuando está presente el módulo (100) servo digital siguiente adyacente.

Description

DESCRIPCIÓN
Kit robótico reconfigurable
Campo
Esta descripción se refiere generalmente a la técnica de los juguetes y/o dispositivos de entretenimiento, y más particularmente a los sistemas mecatrónicos para el mercado de juguetes y/o educación.
Antecedentes
Se conocen figuras robóticas para los mercados de juguetes y/o educativos. Sin embargo, la mayoría de las figuras robóticas no pueden ser reconfiguradas por el usuario.
Existen varios desafíos técnicos para proporcionar un sistema o kit robótico reconfigurable. Primero, dicho sistema requiere un medio para identificar su configuración y permitir al usuario controlarla y/o programarla. En segundo lugar, debería haber una manera de permitir que los usuarios, particularmente aquellos con habilidades o experiencia de programación limitadas, programen fácilmente dicho sistema.
El documento EP0923011 describió un sistema robótico modular en el que una unidad central está conectada a una serie de módulos y en donde se realiza un proceso de descubrimiento para que el controlador central adquiera conocimiento del propio sistema.
Compendio
En un aspecto, se proporciona un sistema robótico reconfigurable. El sistema incluye una pluralidad de módulos servo digitales y una pluralidad de bloques de construcción elementales. Cada módulo servo digital incluye un servomotor, que incluye un sensor de posición del servo, y los bloques de construcción elementales se pueden conectar con los módulos servo digitales para construir una figura robótica que tenga articulaciones controladas por posición. Además, los bloques de construcción elementales se pueden combinar con los módulos servo digitales en una variedad de permutaciones para construir figuras robóticas de diferentes configuraciones, que pueden basarse en instrucciones disponibles públicamente para una o más construcciones predeterminadas o dejarse completamente a la imaginación del usuario.
Un controlador central se comunica y controla los módulos servo digitales. El controlador central tiene al menos un canal de comunicación que incluye un puerto de salida que proporciona energía, tierra y una señal de datos. Cada módulo servo digital incluye un puerto de entrada y un puerto de salida. El puerto de entrada del módulo servo digital tiene pines de alimentación, tierra y señal de datos. El puerto de salida del módulo servo digital tiene pines de alimentación, tierra y señal de datos. El pin de señal de datos de entrada del módulo servo digital es eléctricamente discreto del pin de señal de datos de salida del módulo servo digital, de modo que el pin de señal de datos de entrada del módulo servo digital y el pin de señal de datos de salida del módulo servo digital no se cortocircuitan entre sí. El puerto de entrada de uno de los módulos servo digitales está conectado al puerto de salida del controlador central, y los restantes módulos servo digitales están interconectados en secuencia de tal manera que el puerto de entrada de un módulo servo digital está conectado al puerto de salida de otro módulo servo digital. El controlador central y los módulos servo digitales están programados para ejecutar un protocolo de comunicación en el que el controlador central descubre módulos servo digitales, y en donde los módulos servo digitales están configurados para transmitir datos a lo largo del canal en serie antes del descubrimiento y configurados para transmitir datos a lo largo del canal de una manera casi paralela después del descubrimiento.
En la configuración en serie, un módulo servo digital determinado puede recibir y procesar un paquete de datos transmitido por el controlador central sin enviar necesariamente el paquete de datos aguas abajo al siguiente módulo servo digital adyacente, si está presente. En la configuración casi paralela, un módulo servo digital determinado puede colocar sus puertos de E/S de señal de datos en un modo de seguimiento de modo que al recibir un flujo de datos correspondiente al paquete de datos, el módulo servo digital determinado envíe esencialmente de manera inmediata el flujo de datos aguas abajo al siguiente módulo servo digital conectado adyacente, si está presente.
El paquete de datos puede subdividirse en una pluralidad de subcanales ordenados, proporcionando cada subcanal un flujo de datos para uno de dichos módulos servo digitales en el canal, respectivamente. El paquete de datos puede incluir una identificación de retroalimentación del módulo y, en respuesta a ello, solo el módulo servo digital identificado transmite un paquete de respuesta al controlador central.
El controlador central y los módulos servo digitales pueden programarse para implementar un proceso de descubrimiento en el que: (a) cada módulo servo digital funciona inicialmente en la configuración en serie; (b) el controlador central transmite una señal de descubrimiento en cada subcanal del paquete de datos; (c) al recibir un paquete de datos que encapsula al menos una señal de descubrimiento en el mismo, un módulo servo digital determinado detecta el subcanal de orden más bajo que transporta la señal de descubrimiento, envía una respuesta en respuesta a la señal de descubrimiento del controlador central, entra en dicha configuración casi paralela y comienza a procesar los comandos presentados en el subcanal detectado; y (d) al recibir una respuesta de descubrimiento, el controlador central deja de transmitir la señal de descubrimiento en el subcanal de orden más bajo que transmite actualmente la señal de descubrimiento.
El proceso de descubrimiento puede permitir que los módulos servo digitales sean intercambiables en caliente y/o puede permitir que la figura robótica se reconfigure dinámicamente.
El sistema robótico también puede incluir un módulo LED digital que incluye un diodo emisor de luz. El módulo LED digital tiene un puerto de entrada y puede tener un puerto de salida. El puerto de entrada del módulo LED digital tiene pines de alimentación, tierra y señal de datos. El puerto de salida del módulo LED digital puede tener pines de alimentación, tierra y señal de datos. El pin de señal de datos de entrada del módulo LED digital puede ser eléctricamente discreto del pin de señal de datos de salida del módulo LED digital, de modo que el pin de señal de datos de entrada del módulo LED digital y el pin de señal de datos de salida del módulo LED digital no se cortocircuitan entre sí.
Los módulos LED digitales pueden conectarse en secuencia con los módulos servo digitales. El controlador central, los módulos servo digitales y los módulos LED digitales pueden programarse para implementar el protocolo de comunicación en el que los módulos servo digitales y los módulos LED digitales se configuran en serie antes del descubrimiento y se configuran de manera casi paralela Después del descubrimiento.
Los módulos servo digitales pueden conectarse a una unidad servo estándar a través del puerto de salida del módulo servo digital. En este caso, el módulo servo digital puede configurarse para emitir una señal de servo convencional en la línea de señal del puerto de salida para controlar una unidad servo estándar conectada.
Cada módulo servo digital puede incluir un LED, y cada módulo servo digital puede establecer de forma autónoma el color de su LED según un esquema de estado interno predeterminado.
El sistema robótico también puede incluir módulos de rueda analógicos o digitales controlados por el controlador central para mover la figura robótica.
En algunas implementaciones, el sistema robótico permite al usuario dirigir la acción (p. ej., patrones de movimiento, audio y/o luz) de una figura robótica construida según una construcción predeterminada mediante la emisión de comandos de voz o mediante una aplicación remota virtual que permite al usuario manipular una representación virtual de la construcción predeterminada. Así, por ejemplo, un comando de voz como 'levantar brazo', o levantar un brazo de la representación virtual, da como resultado el levantamiento correspondiente del brazo físico. En algunas implementaciones, el software de reconocimiento de comandos de voz y/o la aplicación remota virtual pueden ejecutarse mediante un procesador de aplicaciones, como un teléfono inteligente o una tableta conectada de manera funcional al controlador central a través de un enlace por cable o inalámbrico. En otras implementaciones, dicha funcionalidad puede integrarse en el controlador central.
En algunas implementaciones, el sistema robótico puede permitir a alguien con habilidades o experiencia de programación limitada programar fácilmente una figura robótica para reproducir una secuencia de animación de varias maneras. Estas incluyen un modo de movimiento aprendido, un modo de captura de movimiento del usuario y un modo constructor de animación.
En el modo de movimiento aprendido, el usuario puede manipular manualmente las articulaciones controladas por posición de la figura robótica. En el proceso, cada módulo servo digital transmite periódicamente su posición del servo al controlador central, que registra una trayectoria (secuencia temporal de posiciones del servo) para cada módulo servo digital. Posteriormente, el controlador central puede transmitir comandos de posición a los módulos servo digitales para reproducir las trayectorias grabadas de los módulos servo digitales, respectivamente. Este modo es particularmente ventajoso porque puede usarse para programar una amplia variedad de configuraciones de figura robótica construidas a partir de diferentes módulos servo digitales y disposiciones elementales de bloques de construcción. El sistema también puede registrar trayectorias (o patrones) de LED empleados en el módulo servo digital y/o en los módulos LED digitales.
En el modo de captura de movimiento, un procesador de aplicaciones, como un teléfono inteligente o una tableta, puede ejecutar una aplicación que registra los movimientos del brazo de una persona a través de una cámara conectada y procesa las imágenes de video capturadas para obtener la trayectoria del movimiento del brazo. Esta trayectoria luego se convierte en comandos de posición del servo para que las acciones de una figura robótica construida según una construcción predeterminada imiten las que se ve en el video capturado. La figura robótica puede reproducir la trayectoria en tiempo esencialmente real a medida que se capturan los movimientos de los brazos de la persona o se almacenan para su posterior reproducción.
En el modo constructor de animación, un procesador de aplicaciones, tal como un teléfono inteligente o una tableta, puede ejecutar una aplicación que permita al usuario generar una secuencia de animación para una figura robótica construida según una construcción predeterminada manipulando una representación virtual de la construcción predeterminada. La aplicación de constructor de animación procesa las acciones virtuales (que pueden incluir movimientos del servo, movimientos del motor, patrones de luz y audio) para generar comandos del sistema robótico que imitan las acciones virtuales de la construcción predeterminada y almacenan dichos comandos en un archivo de animación para su posterior ejecución.
En algunas implementaciones, la aplicación de constructor de animación incluye una función de construcción virtual que permite al usuario crear una representación virtual de un robot reconfigurado. El constructor de animación se puede utilizar posteriormente para generar una secuencia de animación para la figura robótica reconfigurada.
Breve descripción de los dibujos
Los aspectos anteriores y otros aspectos de la invención se apreciarán más fácilmente haciendo referencia a los dibujos, en donde:
La Figura 1 es una ilustración de un robot humanoide, construido a partir de un kit que incluye bloques de construcción elementales y módulos electrónicos universales asociados con un sistema robótico.
La Figura 2 es una ilustración de otro robot humanoide más pequeño construido a partir de un kit similar pero más pequeño que el kit utilizado para construir el robot que se muestra en la Figura 1.
La Figura 2A es una vista de ensamblaje parcial en despiece de una porción de la cabeza del robot que se muestra en la Figura 2.
La Figura 2B es una vista de ensamblaje parcial en despiece de una porción de pie del robot que se muestra en la Figura 2
La Figura 3 es una ilustración de un robot parecido a un dinosaurio, este robot que es una reconfiguración del kit utilizado para construir el robot que se muestra en la Figura 1.
La Figura 4 es un diagrama de circuito de hardware de un módulo servo digital empleado en el sistema robótico. Las Figuras 5A-5D son vistas de ensamblaje de instrucciones de un actuador de pivote construido a partir de un módulo servo digital.
La Figura 6 es un diagrama de circuito de hardware de un módulo LED digital empleado en el sistema robótico. La Figura 7 es un diagrama de bloques de hardware de un módulo de rueda digital empleado en el sistema robótico. La Figura 8 es un diagrama de bloques de hardware de un controlador central empleado en el sistema robótico. La Figura 9 es un diagrama de topología de red que muestra un esquema de red para conectar el controlador central a módulos digitales en el sistema robótico.
La Figura 10 es un diagrama de la estructura de un paquete de datos transmitido por el controlador central a los módulos digitales.
La Figura 11 es un diagrama de la estructura de un paquete de datos de respuesta transmitido por los módulos digitales al controlador central.
La Figura 12 es un diagrama de flujo de un algoritmo para permitir que una figura robótica según una construcción predeterminada siga a un usuario cuando el usuario la agarra.
Las Figuras 13A-13E son capturas de pantalla asociadas con una aplicación de captura de movimiento en la que se puede programar una figura robótica según una construcción predeterminada capturando el movimiento del cuerpo de un usuario.
La Figura 14 es una captura de pantalla asociada con una aplicación de control remoto virtual en la que una figura robótica según una construcción predeterminada se puede controlar en tiempo esencialmente real manipulando una representación virtual de la figura robótica.
La Figura 15 es una captura de pantalla asociada con una aplicación de constructor de animación en la que se puede programar una figura robótica según una construcción predeterminada manipulando una representación virtual de la figura robótica.
La Figura 16 es una captura de pantalla asociada con una aplicación de constructor de avatar que permite al usuario diseñar una representación virtual de un robot reconfigurado, en donde la representación virtual diseñada por el usuario se puede utilizar para controlar directamente o generar un archivo de animación para controlar el robot reconfigurado.
La Figura 17 es un diagrama esquemático que muestra un ejemplo de cómo los módulos electrónicos pueden interconectarse al controlador central en una figura robótica reconfigurada.
La Figura 18 es un diagrama esquemático que muestra los resultados de un proceso de correlación en el que los módulos electrónicos individuales que se muestran en la Figura 17 se han asignado a las ubicaciones correspondientes de la representación virtual diseñada por el usuario que se muestra en la Figura 16.
Descripción detallada
1.0 Introducción
Se describe un sistema robótico que incluye módulos electrónicos universales que pueden usarse para interconectar y/o animar estructuras de esqueleto. El sistema puede ser provisto en forma de un kit que incluye componentes tales como varios módulos electrónicos universales, así como bloques de construcción elementales y sujeciones que se pueden usar para construir las estructuras de esqueleto. Los diversos módulos electrónicos se pueden ensamblar junto con los bloques de construcción elementales para construir una disposición de esqueleto articulada, animada y controlable, como un robot.
Por ejemplo, la Figura 1 muestra un robot 20 humanoide construido a partir de un primer kit. El robot 20 incluye muchas estructuras de esqueleto tales como un antebrazo 22, que se ensambla a partir de bloques 22a, 22b, 22c, 22d de construcción elementales, y una parte 24 superior del brazo, que se ensambla a partir de bloques 24a de construcción elementales. El antebrazo 22 está conectado de manera articulada a la parte 24 superior del brazo por un módulo 100 servo digital (no visible directamente en la Figura 1) que, como se comenta en mayor detalle a continuación, en conjunto con varios bloques de construcción elementales, proporciona un actuador 10 de pivote (ejemplos de los que se hace referencia como 10A-10G), que funciona como una articulación controlable entre el antebrazo 22 y la parte 24 superior del brazo.
La Figura 2 muestra otro robot 30 humanoide construido a partir de un segundo kit. El segundo kit es similar a, pero más pequeño que el primer kit, con menos componentes.
En las implementaciones mostradas en las Figuras 1 y 2, las estructuras de esqueleto se ensamblan a partir de un conjunto de bloques de construcción elementales basado en o similar a los bien conocidos conjuntos de bloques de construcción Meccano(tm), y el sistema robótico y/o kit(s) descritos en la presente memoria pueden puede denominarse sistema y/o kit Meccanoid(tm), pero se pueden utilizar otras formas de bloques de construcción para ensamblar estructuras de esqueleto. Como alternativa, las estructuras de esqueleto pueden proporcionarse de manera unitaria como unidades integrales, es decir, sin la necesidad de ensamblarlas a partir de bloques de construcción más pequeños.
Como se comentará con mayor detalle a continuación, el sistema robótico es preferiblemente reconfigurable de tal manera que se puede usar un kit y/o elementos de kits similares para ensamblar diversas configuraciones de estructuras de esqueleto articulables controlables. Por ejemplo, una Figura 40 robótica que se muestra en la Figura 3 se ensambla a partir de los componentes del mismo kit utilizado para construir el robot humanoide que se muestra en la Figura 1.
Para permitir la reconfiguración, el sistema robótico comprende una recopilación de módulos electrónicos “conectar y usar” que pueden interconectarse de manera dinámica para proporcionar una variedad de efectos de animación. Los módulos electrónicos incluyen:
• un módulo 100 servo digital (o analógico), que se utiliza para controlar la posición de la articulación
• un módulo 200 LED digital (o analógico), que se utiliza para controlar uno o más diodos emisores de luz (LED)
• un módulo 300 de rueda analógico (o digital), que se utiliza para movilizar figuras robóticas
• un controlador 400 central, que se comunica con y dirige los módulos anteriores
El controlador 400 central es necesario para construir cualquier figura robótica basada en el sistema. Como se comenta en mayor detalle a continuación, el sistema robótico emplea preferiblemente un protocolo de comunicaciones digitales que incluye un conjunto de comandos digitales, que puede denominarse en la presente memoria comandos Meccanoid(tm), para comunicar instrucciones de control entre el controlador 400 central y al menos un módulo digital. El conjunto de comandos digitales incluye códigos de comandos específicos que son interpretados por los módulos digitales. Cualquier módulo que sea capaz de interpretar el conjunto de comandos digitales se denomina en la presente memoria un módulo digital, p. ej., módulo servo digital o módulo LED digital. Por ejemplo, para establecer la posición de una articulación, el conjunto de comandos puede incluir un código de comando digital tal como "XY" (X que es el comando de posición, Y que es el argumento), en lugar de una señal de control de modulación codificada por pulso analógico convencional. El módulo 100 servo digital interpreta y ejecuta dicho comando para controlar la posición de su servo correspondiente. Del mismo modo, para configurar el color de un LED, el conjunto de comandos puede incluir un código de comando digital tal como "JK" (J que es el comando de color establecido, K que es el argumento de color). El módulo 200 LED digital interpreta y ejecuta dicho comando para controlar sus LED asociados. Como se comenta con mayor detalle a continuación, el sistema robótico también puede controlar preferiblemente un número limitado de módulos que usan señales de control analógicas convencionales. Dichos módulos se denominarán en la presente memoria módulos analógicos. Por ejemplo, un módulo de rueda analógico puede incluir un motor de CC controlado directamente por el controlador 100 central a través de líneas de alimentación de CC.
Como se describe con mayor detalle a continuación, el controlador 400 central también se puede conectar a un procesador de aplicaciones para dirigir el controlador central.
A partir de lo anterior, habría que señalar que una figura robótica puede ensamblarse utilizando diversas configuraciones de módulos servo digitales y/o analógicos, módulos LED digitales y/o analógicos, y módulos de rueda digitales y/o analógicos, todo dirigido por el controlador 400 central. Por ejemplo, el robot 20 humanoide ilustrado en la Figura 1 incluye un controlador 400A central que acciona ocho módulos 100A, 100B, ... 100H servo digitales (ocultos a la vista) que se emplean en ocho actuadores 10A, 10B, ... 10H de pivote (10H que está ubicado en el área de la cabeza y oculto a la vista); un módulo 200A LED digital; y dos módulos 300A, 300B de rueda analógicos. El robot humanoide ilustrado en la Figura 2 incluye un controlador 400A' central que acciona cuatro módulos 100A', 100B', ...
100D' servo digitales (ocultos a la vista) que se emplean en cuatro actuadores 10A', 10B', ... 10D' de pivote; un módulo 200A' LED digital; y dos módulos 300A' y 300B' de rueda analógicos. El robot 20'ilustrado en la Figura 3, que como se indicó anteriormente está construido a partir del kit utilizado para construir el robot 20 que se muestra en la Figura 1, incluye un controlador 400A central que acciona seis módulos 100A, 100B, ... 100F servo digitales (ocultos a la vista) que se emplean en ocho actuadores 10A, 10B, ... 10F de pivote; un módulo 200A LED digital; y dos módulos 300A, 300B de rueda analógicos.
La descripción ahora pasará a comentar cada uno de los módulos anteriores con mayor detalle y la forma en que interactúan para lograr un juego atractivo para los niños y otras personas con experiencia o capacidad de programación limitada.
2.0 Módulos electrónicos
2.1 Módulo servo digital
La figura 4 es un diagrama de circuito de hardware del módulo 100 servo digital, que incluye un motor 100-M1 de CC de accionamiento. Como se ve mejor en la Figura 5A, el motor 100-M1 incluye un alojamiento 102 y una placa 104 de circuito impreso (PCB) que está contenida en una cubierta 106 conectada al alojamiento 102 del motor. El módulo 100 servo digital tiene dos cables 110 de conexión de 3 hilos conectados a la PCB 104 para conexiones eléctricas de entrada y salida (el cable de entrada que está designado como 110A y el cable de salida que está designado como 110B), como se comenta con mayor detalle a continuación. El módulo 100 servo digital incluye un brazo 112 de salida giratorio que tiene un intervalo angular limitado. Al controlar la posición del servo, se puede controlar la posición angular y el movimiento de la articulación asociada
Volviendo a la Figura 4, el módulo 100 servo digital incluye un microcontrolador 100-U3 que está programado preferiblemente para comunicarse con el controlador 400 central y otros módulos del sistema, ejecutar comandos proporcionados por el controlador 400 central según el protocolo de comunicaciones digitales y proporcionar retroalimentación sincronización o no sincronizada al controlador 400 central.
El motor 100-M1 está conectado a un circuito 100-U1 de puente H. El circuito 100-U1 de puente H está controlado por el microcontrolador 100-U3, que proporciona una señal 100-PWM modulada por ancho de pulso que conmuta el suministro de corriente proporcionada por el circuito 100-U1 de puente H al motor 100-M1 para controlar la posición, velocidad y/o par del motor 100-M1, como se conoce en la técnica en sí mismo.
El módulo 100 servo digital incluye al menos dos sensores de retroalimentación, un potenciómetro 100-VR1 y un sensor 100-R3 de corriente.
El potenciómetro 100-VR1 tiene un elemento móvil que está físicamente conectado al brazo 112 de salida de manera que la tensión generada en una salida 100-V_ADREF del potenciómetro representa el ángulo de la articulación. La salida 100-V_ADREF del potenciómetro está conectada al microcontrolador 100-U3 (pin 11), que convierte la tensión detectada en un ángulo de articulación digital.
El sensor 100-R3 de corriente es un resistor de baja resistencia que tiene un extremo conectado al motor 100-M1 y al microcontrolador 100-U3 en el punto 100-V_CARGa . El otro extremo del resistor 100-R3 está conectado a tierra. El microcontrolador 100-U3 está configurado para leer la corriente promedio que fluye a través del motor 100-M1 y generar datos útiles como el par (que será proporcional a la corriente) o una condición de parada (que ocurre cuando la corriente aumenta más allá de un nivel de umbral predeterminado).
El módulo 100 servo digital también incluye un LED, 100-D1, que está conectado a y controlado por el microcontrolador 100-U3 a través de las líneas 100-LED_R, 100-LED_G y 100-LED_B. El microcontrolador 100-U3 puede controlar el color del LED 100-D1, que puede usarse para indicar visualmente un estado de control del módulo servo digital, como se comenta en mayor detalle a continuación, o si no usado para animar la figura robótica.
El módulo servo digital incluye dos puertos 100-J1 y 100-J2 de comunicación de E/S, que funcionan como puertos de entrada y salida, respectivamente. Cada puerto 100-J1 y 100-J2 de E/S tiene tres pines para la conexión al cable 110A o 110B de conexión de tres hilos, que, como se aprecia mejor en la Figura 8, comprende una línea 60P de alimentación, una línea 60G de tierra y una línea 60D de señal de datos. El pin #3 de cada puerto 100-J1 y 100-J2 está diseñado para conectarse a las líneas 110K de tierra de los cables 110A, 110B de conexión, y el pin #3 de 100-J1 y el pin #3 de 100-J2 están conectados a un punto de masa común en el módulo servo digital. Del mismo modo, el pin #2 de cada puerto 100-J1 y 100-J2 está destinado a la conexión a las líneas 60P de alimentación de los cables 110A, 110B de conexión, y el pin #2 de 100-J1 y el pin #2 de 100-J2 están conectados al punto 100-V_SERV en el módulo 100 servo digital. El punto 100-V_SERV está conectado a la entrada de un regulador 100-U2 de tensión, que proporciona una señal 100-VDD de potencia condicionada utilizada para alimentar el circuito 100-U1 de puente H y el microcontrolador 100-U3. El pin #1 del puerto 100-J1 está destinado a la conexión a la línea 60D de señal de datos del cable 110A de conexión de entrada y el pin #1 del puerto 100-J2 está destinado a la conexión a la línea 60D de señal de datos del cable 110B de conexión de salida. Sin embargo, cabe señalar que el pin #1 del puerto 100-J1 y el pin #1 de 100-J2 no están unidos de modo que las líneas de señal de datos de los cables 110A, 110B de comunicación de entrada y salida son eléctricamente discretas.
Las Figuras 5A-5D son vistas de construcción instructivas que ilustran una implementación de cómo se puede ensamblar el módulo 100 servo digital con bloques de construcción elementales para construir el actuador 10 de pivote.
Los bloques de construcción elementales incluyen soportes 50, 52 primero y segundo (figuras 5A, 5D) que pueden pivotar o girar uno respecto al otro para proporcionar una junta de pivote. El primer soporte 50 incluye una pared 50A trasera y paredes 50B, 50C laterales que definen una abertura 50D para asentar el alojamiento 102 del motor. El alojamiento 102 del motor tiene dos bridas 114 que se extienden hacia afuera para montar el alojamiento 102 en la primera pared 50C lateral del soporte a través de una o más sujeciones (como un perno y una tuerca). Como se aprecia en las Figuras 5B y 5C, una carcasa 116 semicircular que comprende las mitades 116A, 116B superior e inferior está montada alrededor de una de las bridas 114 del alojamiento del motor y la primera pared 50C lateral del soporte. Como se aprecia en la Figura 5D, el segundo soporte 52 tiene una pared 52A trasera y dos paredes 52B, 52C laterales. La pared 52B lateral incluye características de interconexión formadas de manera integral, tales como agujeros 52D para la conexión a las características de interconexión secundarias de acoplamiento, tales como los salientes 112A formados integralmente en el brazo 112 de salida del servo. El segundo soporte 52, que tiene forma de U, está fabricado preferiblemente de un material flexible elástico tal como plástico que permite que sus paredes 52B, 52C laterales se flexionen un poco para permitir que el segundo soporte 52 encaje a presión sobre el brazo 112 de salida y el primer soporte 50. También se pueden usar una o más sujeciones para asegurar el segundo soporte 52 al brazo 112 de salida del servo y/o primer soporte 50.
La pared 50A posterior del primer soporte 50 y la pared 52A posterior del segundo soporte 50 pueden incluir agujeros 50E, 52E, respectivamente, para interconectar el actuador 10 de pivote a otros bloques de construcción usando las sujeciones del kit.
2.2 Módulo servo analógico
El módulo servo analógico (no mostrado) es un servo convencional de pulso proporcional que incluye al menos un conector de entrada de tres pines para un cable de conexión de tres hilos que comprende líneas de alimentación, tierra y señal de datos. La señal de datos del servo estándar convencional es un pulso positivo que varía de aproximadamente 0,5 milisegundos a aproximadamente 2,5 milisegundos (y más típicamente en el intervalo de aproximadamente 0,9 a 2,1ms) repetido a una frecuencia de aproximadamente 50Hz. La unidad servo convencional posiciona su eje de salida en proporción al ancho del pulso. Físicamente, el módulo servo analógico puede ser similar, si no idéntico, a la unidad servo digital y usarse de la misma manera o similar para ensamblar el actuador 10 de pivote.
El módulo servo analógico es accionado directamente por el controlador 400 central o por un módulo 100 servo digital. Como se comenta con mayor detalle a continuación, los módulos digitales pueden conectarse en cadena, pero los módulos analógicos no pueden conectarse en serie entre sí, lo que limita el número de módulos analógicos que se pueden incluir en el sistema robótico.
2.3 Módulo LED digital
La Figura 6 es un diagrama de circuito de hardware del módulo 200 LED digital. El módulo 200 LED digital tiene una configuración de control similar al módulo 100 servo digital, con excepción del servomotor y sus circuitos de accionamiento. Más en particular el módulo 100 LED digital incluye al menos un LED 200-D1 de color, preferiblemente un segundo LED 200-D2 de color, un microcontrolador 200-U1, preferiblemente dos puertos 200J1 y 200-J2 de comunicación de E/S que proporcionan respectivamente puertos de entrada y salida para la conexión a los cables 110A, 110B de tres hilos de entrada y salida, respectivamente, y un regulador 200-U2 de tensión.
El microcontrolador 200-U1 también está programado preferiblemente para comunicarse con el controlador 400 central y otros módulos del sistema, ejecutando comandos proporcionados por el controlador 400 central según el protocolo de comunicaciones digitales y proporcionando retroalimentación sincronizada o no sincronizada al controlador 400 central.
El microcontrolador 200-U1 controla el encendido, apagado de los LED 200-D1, 200D2, así como los colores de los mismos, que pueden controlarse mediante intensidades relativas de luz roja, verde y azul a través de las señales 200-LED_R1, 200-LED_G1,200-LED_B1 y 200-LED_R2, 200-LED_G2 y 200-LED_B2.
Los dos puertos 200-J1 y 200-J2 de comunicación de E/S están conectados de manera similar a los puertos de E/S del módulo 100 servo digital en que el pin #1 del puerto 200-J1 no está conectado al pin #1 del puerto 200-J2 de modo que las líneas 60D de señal de datos de los cables 110A, 110B de comunicación de entrada y salida permanezcan eléctricamente discretas. El pin #2 de cada puerto 200-J1 y 200-J2 está destinado a la conexión a las líneas 60P de alimentación de los cables de conexión y se conectan entre sí en el punto 200-V_MOT. El punto 200-V_MOT está conectado a la entrada de un regulador 200-U2 de tensión, que proporciona una señal 200-VDD de potencia condicionada que alimenta el microcontrolador U1. El pin #3 de cada puerto 200-J1 y 200-J2 está destinado a la conexión a las líneas 60G de tierra de los cables 110A, 110B de conexión y están conectados juntos a la conexión a tierra común en el módulo 200 LED digital.
En algunas realizaciones, el puerto 200-J2 de salida puede omitirse. En dichas realizaciones, no se pueden conectar otros módulos digitales aguas abajo del módulo LED digital.
El módulo 200 LED digital puede tener más de un LED (que están conectados en paralelo) y emplearse para animar ojos antropomórficos. Por ejemplo, la vista parcial en despiece de la Figura 2A muestra el módulo 200 LED digital integrado en una carcasa 70. El módulo 200 LED digital tiene una PCB (no mostrada) que está contenida en un contenedor 72 de la carcasa 70. El cable 100A de entrada está conectado a la PCB. La carcasa 70 también incluye dos porciones 74 de ala separadas en las que están montados dos LED 200-D1 y 200-D2. Los dos LED 200-D1 y 200-D2 se pueden montar para que brillen sobre superficies 76 translúcidas cóncavas de la estructura 78 ocular bilocular.
2.4 Módulo LED analógico
El módulo LED analógico (no mostrado) constituye unLED más que se controlan directamente mediante el establecimiento de tensiones en ciertos puertos de salida en el controlador 400 central.
2.5 Módulo de rueda analógico
El módulo 300 de rueda analógico se muestra en la vista en despiece parcial de la Figura 2B e incluye un motor 302 de CC giratorio que tiene una entrada 304 de dos hilos para alimentación y tierra. El motor 302 de CC tiene un eje 306 de salida y la cantidad de corriente suministrada al motor controla la velocidad del eje de salida. Como se aprecia en la Figura 2B, una rueda 308 puede montarse en el eje 306 de salida. Una figura robótica puede emplear dos de los módulos 300 de rueda analógicos para accionar dos ruedas, que pueden controlarse para mover la figura robótica hacia adelante, hacia atrás y/o girarla cambiando la velocidad de una rueda en relación con la otra.
2.6 Módulo de rueda digital
El sistema también puede emplear un módulo 300' de rueda digital que se muestra en forma de diagrama de bloques esquemático en la Figura 7, que incluirá un microcontrolador 300-U1, dos puertos 300-J1 y 300-J2 de comunicación de E/S que proporcionan puertos de entrada y salida respectivamente para la conexión a los cables 310A, 310B de tres hilos de entrada y salida, respectivamente, un regulador 300-U2 de tensión, un circuito 300-D1 accionador de motor para accionar un motor 302 de CC, un detector 300-R1 de corriente asociado con el circuito accionador para fines de retroalimentación de corriente, y un sensor 300-P1 de posición o velocidad, tal como un sensor de efecto Hall o un codificador absoluto, para proporcionar retroalimentación como se comenta en mayor detalle a continuación.
Similar a los módulos digitales descritos anteriormente, el microcontrolador 300-U1 está programado preferiblemente para comunicarse con el controlador 400 central y otros módulos del sistema, ejecutar comandos proporcionados por el controlador 400 central según el protocolo de comunicaciones digitales y proporcionar retroalimentación sincronizada o no sincronizada al controlador 400 central.
2.7 Controlador central
La Figura 8 muestra un diagrama de bloques de hardware esquemático de una implementación del controlador 400 central.
El controlador 400 central incluye un procesador 402 de señal digital (DSP) que está conectado de manera funcional a:
• un reloj 404 de tiempo real
• un puerto 406 USB
• una pluralidad de puertos 408 de E/S de tres pines
• dos circuitos 410 de motor de corriente continua con sensores 411 de corriente asociados
• un controlador 412 de potencia
• un amplificador de audio y altavoz 414
• un micrófono 416
• al menos una memoria 418 flash de SPI
• un conector 420 de SPI
• al menos un botón o conmutador 422 activado manualmente
• al menos un diodo 426 emisor de luz (LED)
Los circuitos 410 accionadores del motor son accionadores integrados destinados a accionar pequeños motores de CC tal como el motor 302 de CC giratorio usado para accionar las ruedas 308. Estos circuitos son útiles cuando se pretende implementar el módulo 300 de rueda analógico (como en las Figuras 1 y 2) para movilizar la figura robótica. En algunas implementaciones, los circuitos 410 accionadores de motor y los sensores 411 de corriente asociados pueden omitirse si está destinado a implementar el módulo 300' de rueda digital que tiene los circuitos necesarios para accionar el motor 302 de CC
Cada uno de los puertos 408 de E/S de tres pines está conectado a un canal de E/S diferente del DSP 402. Como se comentó anteriormente, un pin está destinado a la conexión a la línea 60P de alimentación, un pin está destinado a la línea 60G de tierra, y un pin está destinado a la conexión a la línea 60D de señal de datos. Como se comentó anteriormente, los pines/líneas de señal de datos son eléctricamente discretos.
El controlador 412 de energía interconecta el DSP 402 con una fuente de energía tal como una batería recargable.
El puerto USB 406 permite que el controlador central 402 se comunique con dispositivos informáticos como ordenadores, tabletas o teléfonos inteligentes para fines de procesamiento de aplicaciones.
3.0 Protocolo de comunicación
3.1 Topología de red
La Figura 9 ilustra la topología de red del sistema robótico. El controlador 400 central tiene múltiples canales 450 (los canales individuales que se designan por 450A, 450B, ..., 450N) proporcionados por los puertos 408 de E/S. Para limitar problemas de latencia, el número de módulos digitales que se pueden encadenar en serie en cualquier canal determinado está limitado a preferiblemente no más de cuatro módulos. Cada módulo está conectado a su vecino a través de un enlace 60 de tres hilos de tres hilos, tal como lo proporciona el cable de salida de tres hilos de un módulo digital (tal como el cable 110B de salida del módulo 100 servo digital) cuando está conectado al cable de entrada de tres hilos del módulo digital adyacente aguas abajo (tal como el cable 110A de entrada del módulo 100 servo digital). Como se comentó anteriormente, cada enlace 60 comprende líneas 60P, 60G y 60D de alimentación, tierra y señal de datos, respectivamente. Las líneas 60P de alimentación de cualquiera de los enlaces 60 adyacentes están interconectadas eléctricamente y las líneas 60G de tierra de cualquiera de los enlaces 60 adyacentes están interconectadas en serie. Sin embargo, las líneas 60D de señal de datos de cualquiera de los enlaces adyacentes no están interconectadas eléctricamente; es decir, antes del descubrimiento, cualquier señal en una línea 60D de señal de datos de un enlace 60 determinado no se propaga instantáneamente a la línea 60D de señal de datos del(los) enlace(s) 60 adyacente(s).
Como se comentará con mayor detalle a continuación, cada canal 450 funciona inicialmente en modo serie con el propósito de descubrir módulos digitales. En este modo, un módulo digital recibirá un paquete de datos desde el controlador 400 central, procesará el paquete y determinará si transmite o no el paquete al módulo digital aguas abajo. Sin embargo, una vez que el módulo digital es descubierto por el controlador 400 central, el canal se comporta en ese punto de manera casi paralela porque cada módulo digital descubierto coloca sus pines de entrada y salida de señal de datos (p. ej., el pin #1 de 100-J1 y pin #1 de 100-J2) en un modo de seguimiento para que todos los datos se presenten esencialmente al mismo tiempo a cada módulo digital en el canal. Este esquema es ventajoso porque el sistema está diseñado como un dispositivo de bajo coste que utiliza electrónica de bajo coste y baja velocidad. Además, la velocidad de comunicación del canal también funcionará de manera relativamente lenta, p. ej., a una velocidad máxima de solo 2.400 baudios. Con una velocidad de comunicación tan baja, habrá un retraso ya que cada módulo digital de la serie acumula el contenido de un paquete antes de transmitirlo aguas abajo, lo que resulta en una latencia considerable en los módulos digitales distales. Sin embargo, la transición al modo casi paralelo reduce la latencia y mejora la capacidad de respuesta de control.
El módulo servo 100' analógico (ASM) no incorpora la lógica requerida para comunicarse a través del protocolo de comunicación digital y, por tanto, solo se puede colocar al final del canal inmediatamente aguas abajo de un módulo 100 servo digital (tal como ASM 100'-NC) o inmediatamente aguas abajo del controlador 400 central. El microcontrolador 100-U3 del módulo 100 servo digital y el DSP 402 del controlador 400 central están programados, cada uno, para controlar un módulo servo 100' analógico conectado mediante la transmisión de la señal PCM del servo convencional sobre la línea 60D de señal de datos.
3.2 Protocolo de enlace
La Figura 10 muestra el formato de un paquete 600 de datos desde el controlador 400 central a los módulos digitales. El paquete 600 incluye una palabra 602 de encabezamiento, una pluralidad de palabras 604 de datos de subcanal (individualmente 604A - 604N), y una palabra que comprende un cuarteto 606 de suma de control y un cuarteto 608 de ID de retroalimentación de módulo (MFID). Cada palabra se formula preferiblemente por un bit de inicio, ocho bits de datos y un bit de parada. El paquete 600 de datos como se muestra está configurado específicamente para la situación en la que el número máximo permitido de módulos es cuatro. Los expertos en la técnica entenderán que en otras implementaciones el formato del paquete de datos puede variar del ilustrado. Otras estructuras de paquete de datos también son posibles.
Un paquete 610 de datos de respuesta desde los módulos digitales al controlador central se formatea preferiblemente como una sola palabra que comprende un bit 612 de inicio y un byte 614 de respuesta como se muestra en la Figura 11. También son posibles otros formatos.
El controlador 400 central transmite periódicamente paquetes 600 de datos en cada canal 450, por ejemplo, a veinte Hz. Cada palabra 604 de subcanal contiene un comando para el módulo digital situado correspondientemente en el canal 450. Por ejemplo, en el canal 450B de la Figura 9, la primera palabra 604A de subcanal contendría un comando para el módulo 100-2A servo digital (DSM) y la segunda palabra 604B de subcanal contendría un comando para el módulo 200-2B LED digital (LM). El MFID 608 especifica cuál de los módulos digitales en el canal 450 debe emitir el paquete 610 de datos de respuesta. Por ejemplo, si el valor del MFID 608 es 0x00, el módulo 100-2A servo digital transmitiría un paquete de respuesta y si el valor del MFID 608 fuera 0x01, el módulo 200-2B LED digital transmitiría el paquete de respuesta. A medida que el controlador 400 central transmite periódicamente paquetes 600 de datos, el valor del MFID 608 se recicla continuamente para que cada módulo digital descubierto en el canal tenga la oportunidad de responder en el intervalo entre las transmisiones del controlador central. Por ejemplo, con un máximo de cuatro módulos en un canal y una velocidad de transmisión del controlador central de 20 Hz, cada módulo digital proporciona una velocidad de retroalimentación de 5 Hz.
3.3 Descubrimiento
Para implementar una reconfiguración dinámica rápida, el sistema robótico se somete a un proceso de descubrimiento preferido al inicio o encendido.
Cada canal 450 puede tener hasta N (preferiblemente cuatro) módulos digitales en las posiciones A, B, ... N en una configuración conectada en serie o cadena en serie. Por ejemplo, en la Figura 9, el canal 450A tiene cuatro módulos 100-1A, 100-1B, 100-1C y 100-1D servo digitales (DSM), en las posiciones A a D, respectivamente, y el canal 450B tiene dos módulos digitales, DSM 100-2A y LM 200-2B en las posiciones A a B, respectivamente ... El módulo digital en la posición A está inmediatamente adyacente al controlador 400 central y, por tanto, puede considerarse como el primer módulo aguas arriba. El módulo digital en la posición N está más alejado aguas abajo del controlador 400 central y, por tanto, puede considerarse como el último módulo digital en la cadena en serie. (En otras implementaciones, el canal puede admitir módulos digitales mayores o menores dependiendo de la velocidad binaria en serie que puede admitirse de forma segura).
Al encenderse, el controlador central transmite un comando "Asignar ID" en todas las palabras 604 de datos de subcanal.
Cuando el primer módulo digital A recibe el paquete de datos, el módulo nota que el primer ejemplo del comando "Asignar ID" está en la primera palabra 604A de subcanal. En consecuencia, el primer módulo digital A es capaz de detectar que está en la primera posición de la cadena en serie. El primer módulo digital A no pasa este paquete de datos aguas abajo al siguiente módulo digital B adyacente en la cadena en serie. En cambio, el primer módulo digital A envía una respuesta de "Confirmación de ID" al controlador central. De este modo, el controlador central detecta que el módulo digital A está conectado. El primer módulo digital A también coloca sus puertos de E/S de señal de datos en modo de flujo continuo como se comentó anteriormente.
A continuación, el controlador central envía un segundo paquete de datos que tiene el comando "Asignar ID" en las palabras de datos de subcanal segunda, tercera y cuarta, y el MFID se incrementa. La primera palabra de subcanal tiene otro comando, tal como la asignación de un código de ID explícito, destinado al módulo digital A. El módulo digital A recibirá el comando X y reaccionará a lo que sea. Sin embargo, el módulo digital A ahora pasará el paquete aguas abajo al módulo digital B (si está conectado). (Una vez que un módulo digital recibe una ID, envía datos al siguiente módulo). El módulo digital B recibe a continuación el paquete y detecta que el primer ejemplo del comando "Asignar ID" en el paquete está en la segunda palabra de subcanal. De este modo, el módulo digital B detecta que está en la segunda posición y, en adelante, actuará sobre los comandos transmitidos en el segundo subcanal. El módulo digital B luego envía una respuesta de "Confirmación de ID" al controlador central y coloca sus puertos de E/S de señal de datos en modo de flujo continuo como se comentó anteriormente. El controlador central detecta que el módulo digital B está conectado.
El proceso continúa mientras el controlador central envía un tercer paquete de datos que tiene el comando "Asignar ID" en la tercera y cuarta palabras de datos de subcanal, y el MFID 608 se incrementa. La primera y segunda palabras 604A, 604B de subcanal tienen otros comandos X e Y destinados a los módulos digitales A y B, respectivamente. Los módulos digitales A y B recibirán los comandos X e Y y reaccionarán a lo que sean. Sin embargo, los módulos digitales A y B pasan el paquete aguas abajo al módulo digital C (si está conectado). El módulo digital C recibe a continuación el paquete y detecta que el primer ejemplo del comando "Asignar ID" en el paquete está en la tercera palabra 604C de subcanal. De este modo, el módulo digital C detecta que está en la tercera posición y, en adelante, actuará sobre los comandos transmitidos en el tercer subcanal 604C. El módulo digital C luego envía una respuesta de "Confirmación de ID" al controlador central y coloca sus puertos de E/S de señal de datos en modo de flujo continuo como se comentó anteriormente. El controlador central detecta así que el módulo digital C está conectado.
El proceso continúa hasta que todos los módulos digitales detectan sus posiciones en el canal 450 y se les asignan IDs. Del mismo modo, el controlador central sabe cuántos módulos están conectados. Cabe señalar que el controlador central continúa enviando el comando "Asignar ID" en un subcanal hasta que el controlador central recibe la respuesta requerida.
El proceso de descubrimiento preferido tiene varias ventajas.
Primero, el proceso de descubrimiento permite la "conexión en caliente" de módulos digitales adicionales. Por ejemplo, considerar una situación donde los módulos digitales A y B están conectados. El controlador central envía paquetes de datos con los comandos "Asignar ID" en las palabras de subcanal tres y cuatro. Si el módulo digital C está conectado, recibirá el flujo de datos que va a través de los módulos digitales A y B. El módulo digital C constataría que el primer ejemplo del comando "Asignar ID" está en la tercera palabra de subcanal, por lo que detecta que está en la tercera posición del canal. El módulo digital C responde al controlador central que por tanto detecta el módulo digital C. Por lo tanto, el módulo digital C está conectado y se le asigna una ID única.
Otra ventaja del proceso de descubrimiento preferido es que hace que las posiciones dependan de módulos adyacentes. Por ejemplo, se considera los módulos digitales A, B y C conectados. El módulo digital B no se puede desconectar sin desconectar también el módulo digital C del canal. Cuando el controlador central no recibe datos de un módulo (es decir, cuando no hay un paquete de respuesta en respuesta a un MFID determinado), el controlador central supone que el módulo digital correspondiente se ha desconectado y cambia el comando en el subcanal correspondiente a "Asignar ID". En el ejemplo, con los módulos digitales B y C desconectados, el controlador central no recibe ninguna respuesta y, en adelante, envía paquetes de datos con el comando "Asignar ID" en las segunda a cuarta palabras 604B, 604C y 604D de subcanal.
El comando "Asignar ID" puede incluir un identificador único y un valor (por ejemplo, se pueden usar cuatro bits para el comando y cuatro bits para transmitir una ID única). Como alternativa, la ID única puede transportarse en el subcanal correspondiente tras la entrega del siguiente paquete. En otra alternativa más, como se comentó anteriormente, la identificación única puede estar implícita en base a la posición gracias al proceso de descubrimiento que identifica para el controlador central y el módulo digital la posición de este último en la cadena en serie.
Un módulo servo digital determina si una unidad servo estándar está conectada o no al detectar una tensión de extracción en la línea de señal de datos de su puerto de E/S de salida. Si se detecta esta condición y el módulo servo digital se da cuenta de que no hay comandos centrales que no sean "Asignar ID" en la palabra de subcanal aguas abajo correspondiente adyacente, el módulo servo digital supone que hay una unidad servo estándar conectada.
3.4 Conjunto de comandos y códigos de estado
A continuación se comenta la implementación de un conjunto de comandos digitales. La Tabla 1 enumera varios estados de estado para los módulos 100 servo digitales y los módulos 200 LED digitales.
Tabla 1 - Códigos de estado
Figure imgf000011_0001
Figure imgf000012_0001
Los comandos se pueden implementar de varias maneras. Como la mayoría de los comandos suelen ser comandos de establecimiento de posición del servo, el intervalo de direcciones de las palabras de subcanal puede segmentarse de modo que una porción del intervalo se reserve para comandos explícitos y la mayoría del intervalo para el comando implícito de "Establecer Posición del Servo". Por ejemplo, los valores de datos 0xFF a 0xFO se pueden reservar para comandos explícitos (como el comando "Asignar ID" comentado anteriormente). Los valores de datos 0xEF a 0x00 pueden usarse para los datos de posición del módulo. Así, por ejemplo, 0xAA puede corresponder al comando "Establecer Posición del Servo" con respecto a la posición 0xAA dentro del intervalo angular predeterminado (0x00 -0xEF) del servo digital. El uso de un solo byte para comunicar la posición del servo deseada elimina la necesidad y el ancho de banda requerido para transmitir la señal de pulso del servo estándar de 50Hz.
Un comando "Tipo de Solicitud" solicita que un módulo digital determinado informe sobre su tipo, p. ej., módulo servo digital o módulo LED digital. El paquete de respuesta transmitido por el módulo digital informaría el tipo al controlador central.
Un comando "Obtener Posición del Servo" puede solicitar que un módulo servo digital determinado informe la posición de su servomotor asociado. El paquete de respuesta transmitido por el servo digital informaría la posición al controlador central. En algunas implementaciones, puede que no sea necesario que el controlador central transmita un comando explícito solicitando retroalimentación sobre la posición del servo; más bien, el hecho de que el controlador central haya transmitido un comando de posición del servo implica que el módulo servo digital devuelve la retroalimentación de la posición del servo.
Un comando "Solicitar Par del Servo" puede solicitar que un módulo servo digital determinado informe sobre la salida de par de su servomotor asociado. Como se comentó anteriormente, cada módulo servo digital incluye un sensor de corriente para detectar el par aplicado. El paquete de respuesta transmitido por el servo digital informaría el par al controlador central.
Un comando "Obtener estado del servo" puede solicitar que un módulo servo digital o módulo LED determinado informe su estado interno. El paquete de respuesta transmitido por el módulo digital informaría el estado al controlador central.
Cada módulo servo digital establece de forma autónoma una condición de estado interno junto con el color de su LED asociado. Estas condiciones de estado y los colores asociados se exponen en la Tabla 1. En este esquema particular, si el módulo servo digital está funcionando normalmente, establece su condición de estado interno en un valor particular y establece el color del LED en azul. Del mismo modo, si el módulo servo digital funciona normalmente pero está conectado a una unidad servo estándar esclava, el módulo servo digital establece su condición de estado interno en otro valor predeterminado y establece el color del LED en azul. Si el módulo servo digital experimenta una condición de parada (el sensor de corriente ha detectado un pico de corriente), el módulo servo digital revisa su estado interno y establece el color del LED en rojo. Si la condición de parada persiste por encima de un límite de tiempo umbral y/o el sensor de posición (potenciómetro) no muestra ningún movimiento adicional, el módulo servo digital se desactivará por si solo temporalmente para evitar daños físicos, revisa su estado interno para reflejar esta condición, y establece el color del LED al rojo. Si el módulo servo digital aún no ha recibido un código de identificación del controlador central, el módulo servo digital establece su condición de estado interno en un valor particular y establece el color del LED al amarillo. El servo digital también se puede colocar en modo "LIM" como se comenta con mayor detalle a continuación. En este caso, el módulo servo digital revisa su condición de estado interno para reflejar esta condición y establece su color de LED asociado al verde.
Un comando "Establecer color de LED" solicita que un módulo servo digital o módulo LED digital determinado establezca el color de su LED asociado. Si el comando se envía a un módulo servo digital y el valor de color es 0, el módulo servo digital establece el color del LED de forma autónoma en función de su estado interno como se comentó anteriormente.
En algunas implementaciones, el comando de establecer color puede transmitirse a través de dos paquetes 600. Por ejemplo, una implementación utiliza el siguiente esquema:
• (i) primer byte = 00gggrrr, donde 00 significa que este es el primer byte, ggg es un valor de 3 bits para la intensidad de la luz verde y rrr es un valor de 3 bits para la intensidad de la luz roja
• (ii) segundo byte = 01tttbbb, donde 01 significa que este es el segundo byte, ttt es un valor de 3 bits para el tiempo de atenuación, y bbb es un valor de 3 bits para la intensidad de la luz azul.
• E l valor ttt (tiempo de atenuación) está preestablecido, no a escala, de la siguiente manera:
000 - 0 segundos (sin atenuación, cambio inmediato)
001 - 200 ms (atenuación muy muy rápida)
010 - 500 ms (atenuación muy rápida)
011 - 800 ms (atenuación rápida)
100 - 1 segundo (atenuación normal)
101 - 2 segundos (atenuación lenta)
110 - 3 segundos (atenuación muy lenta)
111 - 4 segundos (atenuación muy muy lenta)
Un comando "Establecer Estado del Servo" indica al módulo servo digital indicado que revise su condición de estado interno en función de un valor explícito transmitido por el controlador central.
Un comando "Confirmación" solicita una respuesta de confirmación rápida. Esto se puede usar para implementar un protocolo de latidos periódicos entre el controlador central y los módulos digitales cuando no se requieren otros comandos.
En algunas implementaciones, dado que la mayoría de las respuestas de los módulos 100 servo digitales serán datos de posición del servo, el intervalo de direcciones de la palabra 614 de paquete de datos de respuesta puede segmentarse de modo que una porción del intervalo esté reservada para códigos de retorno explícitos y la mayoría de los intervalos de direcciones para los datos de retroalimentación implícitos sobre la posición del servo. Por ejemplo, en una implementación, 0xEF - 0x00 está reservado para los datos de posición del servo; 0xFF indica que el servo está parado y 0xFA es el código de confirmación de que el módulo servo digital está en modo LIM.
4.0 Control Y programación
El sistema robótico está destinado para usarse como un juguete y/o para el mercado educativo donde los usuarios pueden no tener mucha o ninguna experiencia previa en programación. El sistema permite a dichas personas controlar fácilmente cualquier figura robótica construida a partir de un kit robótico.
4.1 Reconocimiento de voz
Un kit robótico generalmente se entregará al consumidor con instrucciones detalladas del fabricante del kit para construir una figura robótica en particular, o dichas instrucciones detalladas pueden estar disponibles a través del sitio web del fabricante. Las figuras robóticas construidas a partir de dichas instrucciones se denominan en la presente memoria como "construcciones predeterminadas". Por ejemplo, el robot 20 que se muestra en la Figura 1 es una construcción predeterminada. El controlador 400 central puede estar provisto con un software de reconocimiento de voz que permitirá al usuario controlar una o más construcciones predeterminadas basadas en comandos de voz predeterminados que desencadenarán ciertas acciones. En una implementación, el controlador 400 central puede colocarse en un modo de reconocimiento de voz a través de los conmutadores 422 activados manualmente. En este estado, el controlador 400 central escucha los comandos de voz y responde a los comandos de voz reconocidos. Por ejemplo, los siguientes comandos de voz activan las acciones consiguientes asociadas en la construcción predeterminada de la Figura 1:
"Adelante"- el controlador central alimenta ambos módulos 300A, 300B de rueda para mover el robot 20 hacia adelante
" Atrás"- el controlador central alimenta ambos módulos 300A, 300B de rueda para mover el robot 20 hacia atrás
"Giro a la izquierda" - el controlador central alimenta el módulo 300B de rueda durante un tiempo predeterminado para mover el robot 20 hacia la izquierda
"Giro a la derecha" - el controlador central alimenta el módulo 300A de rueda durante un tiempo predeterminado para mover el robot 20 hacia la derecha
"Girar" - el controlador central alimenta los módulos 300A, 300B de rueda hacia adelante y hacia atrás durante un tiempo predeterminado para girar el robot 20
"Danzar" - el controlador central activa varios actuadores 10 de pivote, controla el módulo 200 LED digital para iluminar la estructura 78 del ojo con un patrón de luz predeterminado y reproduce una pista de voz/sonido pregrabada a través del altavoz 414 según una secuencia predeterminada para imitar una rutina de baile
"Kung Fu" - el controlador central activa varios actuadores 10 de pivote, controla el módulo 200 LED digital para iluminar la estructura 78 del ojo con un patrón de luz predeterminado y reproduce una pista de voz/sonido pregrabada a través del altavoz 414 según una secuencia para imitar una rutina de kung fu
"Enumerar Comandos": - el controlador central reproduce una pista de voz/sonido pregrabada a través del altavoz 414 para enumerar los comandos de voz previamente designados.
4.2 Modo LIM
El controlador central y los módulos digitales se pueden colocar en un modo de aprendizaje o LIM ("movimiento inteligente aprendido") en el que el usuario puede mover manualmente las estructuras de esqueleto de la figura robótica y el controlador central registra la trayectoria de todos los módulos servo digitales conectados, módulos LED digitales y módulos de rueda digitales (si los hay), así como grabar simultáneamente cualquier audio presente en modo LIM. (Más específicamente, la trayectoria de un módulo servo digital es una secuencia temporal de posiciones del servo; la trayectoria de un módulo LED digital es una secuencia temporal de patrón(es) de luz; y la trayectoria de un módulo de rueda digital es una secuencia temporal de posiciones o velocidad de la rueda). Estas trayectorias y el audio pueden volver a reproducirse. Por ejemplo, el robot 20 que se muestra en la Figura 1 se puede colocar en el modo LIM y hacer que ruede hacia adelante mientras agita uno de sus brazos. Mientras tanto, el usuario puede vocalizar una expresión como "Bienvenido a casa, te eché de menos". Al finalizar el modo LIM, el controlador 400 central puede reproducir otra vez posteriormente las trayectorias y el audio. (A menos que el contexto indique lo contrario, una recopilación de dichas trayectorias, con o sin audio de acompañamiento, se denomina como una "animación"). Si se desea, el audio de reproducción puede sintetizarse usando una distorsión previamente designada para replicar una voz única para la figura robótica
El controlador 400 central está conectado a una variedad de conmutadores 422, como se comentó anteriormente. En una implementación, los conmutadores 422 pueden etiquetarse como 'grabar' y reproducir'. En esta implementación, el controlador 400 central está configurado para comenzar a grabar trayectorias y audio tras la activación del botón de grabación y dejar de grabar tras la activación posterior del botón de grabación. De manera adicional o como alternativa, el controlador central puede utilizar comandos de reconocimiento de voz. Por ejemplo, el conmutador de grabación puede activarse, pero el inicio y la detención de la grabación se controlan mediante un comando de voz como "iniciar la grabación" y "detener la grabación". Se pueden proporcionar otros medios de entrada como se conoce en la técnica para colocar el sistema robótico en modo LIM.
Una vez iniciado en el modo LIM, el controlador central establece el estado de todos los módulos servo digitales en el modo LIM (p. ej., utilizando el comando "Establecer Estado del Servo"). En el modo LIM, cada módulo servo digital está programado para establecer el color de su LED asociado en un color predeterminado y registrar periódicamente la posición de su servomotor. Los datos de posición se transmiten periódicamente al controlador central de modo que, si la articulación asociada se ha movido manualmente, la trayectoria (posición del servo a lo largo del tiempo) del servomotor correspondiente se informa al controlador central. De esta manera, el controlador central construye una trayectoria coordinada (posiciones del servo a lo largo del tiempo) de todas las articulaciones controladas por posición de la figura robótica. Estos datos se capturan en tiempo esencialmente real y se superponen con el audio grabado para correlacionar la trayectoria y el audio.
En algunas implementaciones, el controlador 400 central también puede grabar simultáneamente la velocidad del motor 302 de CC en el módulo 300' de rueda digital. El controlador central procesa esta información para generar una trayectoria del módulo de rueda que se correlaciona con las trayectorias del módulo servo digital coordinado y la línea de tiempo de audio.
En la reproducción, el controlador 400 central vuelve a reproducir las trayectorias grabadas del servo digital y el módulo de rueda, así como el audio según la línea de tiempo grabada.
En la realización anterior, cada módulo servo digital envía periódicamente datos de posición al controlador central que registra la trayectoria del módulo servo digital. Sin embargo, los expertos en la técnica apreciarán que, en realizaciones alternativas, cada módulo servo digital puede grabar su propia trayectoria y cargar toda la trayectoria grabada en el controlador central para su posterior reproducción o reproducir la trayectoria al recibir un comando de reproducción específico. Sin embargo, en esta realización alternativa, cada módulo servo digital necesitaría un temporizador interno o estar sincronizado con un reloj externo.
En algunas implementaciones, las trayectorias y las pistas de audio grabadas por el controlador central durante el modo LIM se pueden guardar en la memoria 418 flash como archivos de animación y otorgar una identificación definida por el usuario para acceso y uso futuro. Como se comentará con mayor detalle a continuación, estos archivos de animación se pueden recuperar para encadenar una secuencia de animaciones.
Cabe señalar que la programación en modo LIM también se puede aplicar a figuras robóticas que no son construcciones predeterminadas, lo que facilita a aquellos con experiencia limitada en programación animar construcciones robóticas según su propia imaginación. El modo LIM es particularmente versátil al permitir que el usuario inexperto reconfigure inmediatamente y fácilmente una figura robótica y tenga la nueva configuración lista e interactuando de manera útil con el usuario tan pronto como se reconfigure.
4.3 Modo de seguimiento
En una construcción predeterminada, el sistema robótico puede colocarse en un 'modo de seguimiento', que permite al usuario agarrar un apéndice de la figura robótica y hacer que siga al usuario. Por ejemplo, una persona puede tomar la mano 23 del robot 20 humanoide que se muestra en la Figura 1 y comenzar a caminar. En respuesta, la figura robótica seguirá a la persona.
En el modo siguiente, el controlador central establece el estado de los módulos servo digitales específicos en modo LIM (usando el comando "Establecer Estado del Servo"). Los módulos servo digitales afectados envían datos de posición del servo al controlador central. Así, por ejemplo, si la mano 23 del robot se mueve hacia arriba y hacia la derecha/hacia la izquierda sobre una posición media, dichos datos posicionales se transmiten al controlador central. El controlador central procesa esta información para derivar un vector de dirección y controla los módulos 300A, 300B de rueda analógicos para que se muevan a lo largo del vector de dirección.
Por ejemplo, en una implementación, la corriente suministrada a los módulos 300A, 300B de rueda analógicos es proporcional a la altura y al ángulo hacia el exterior de la parte 24 superior del brazo del robot. Una implementación de un método para llevar a cabo el modo de seguimiento se ilustra en el algoritmo 700 de la Figura 11. En una etapa 702 de un primer flujo 700A lógico, el controlador 400 central recibe retroalimentación sobre la actual posición del servo asociada con el actuador 10C de pivote. En la siguiente etapa 704, el algoritmo determina si la posición actual del servo excede o no un umbral mínimo. De lo contrario, el algoritmo considera que el usuario aún no ha instado al robot 20 a seguirlo y vuelve a la etapa 702. En caso afirmativo, en la etapa 706 el controlador central establece la corriente suministrada a los módulos 300A, 300B de rueda analógicos en proporción a una cantidad mínima predeterminada más una cantidad igual a:
Figure imgf000015_0001
„ „ * C^max í-min)
Vmax ~ Pt
donde pa es la actual posición del servo, pmax es la posición máxima del servo, pí es la posición del servo umbral, imax es la corriente máxima que se puede suministrar al motor de la rueda, y imin es la corriente mínima requerida para mover el robot 20. Después de la etapa 706, el algoritmo vuelve a la etapa 702.
En una implementación alternativa, la corriente suministrada a los módulos 300A, 300B de rueda analógicos puede ser una cantidad predeterminada. La corriente se enciende o se activa si la posición del servo asociada con el actuador 10C de pivote excede un primer ángulo de umbral. La corriente se puede apagar si la posición del servo es menor que un segundo ángulo de umbral, menor que el primer ángulo de umbral, lo que proporciona cierta histéresis en el ángulo de activación.
En una etapa 712 de un flujo 700B lógico paralelo, el controlador 400 central recibe retroalimentación sobre la posición del servo actual asociada con el actuador 10B de pivote. En la siguiente etapa 714, el algoritmo determina si la posición del servo actual es o no menor que un primer valor umbral. En caso afirmativo, el algoritmo considera que el usuario ha instado al robot 20 hacia la izquierda y sigue la etapa 716 en donde la corriente se retarda al módulo 300B de rueda analógico en proporción a la posición actual del servo con respecto a un intervalo de posición del servo indicativo de un giro a la izquierda. De lo contrario, en la etapa 718 el algoritmo determina si la posición del servo actual es o no mayor que un segundo valor umbral. En caso afirmativo, el algoritmo considera que el usuario ha instado al robot 20 hacia la derecha y sigue la etapa 720 en donde la corriente se retarda al módulo 300A de rueda analógico en proporción a la posición actual del servo con respecto a un intervalo de posición del servo indicativo de un giro a la derecha. Si no, el algoritmo vuelve a la etapa 712. El algoritmo también vuelve a la etapa 712 después de las etapas 716 o 720.
El modo de seguimiento proporciona a un usuario muy inexperto, como un niño pequeño, una forma intuitiva de interactuar con una figura robótica.
4.4 Procesador de aplicaciones
En algunas implementaciones, el sistema robótico puede comunicarse con un procesador de aplicaciones como un ordenador, tableta o teléfono inteligente que ejecuta una aplicación que puede usarse para controlar cualquier figura robótica construida a partir de un kit de sistema. El procesador de aplicaciones puede comunicarse con el controlador 400 central a través de una conexión por cable, tal como a través del puerto 406 USB o mediante una conexión inalámbrica, como una conexión Bluetooth(R) estándar. En algunas implementaciones, como se muestra en la Figura 1, uno de los bloques de construcción puede ser un enganche 26 con el tamaño para mantener un teléfono inteligente (no mostrado). Esto permite una conexión conveniente del teléfono inteligente a la figura robótica, particularmente cuando el teléfono inteligente está conectado por cable a la figura robótica.
4.4.1 Captura de movimiento
En algunas implementaciones, el procesador de la aplicación puede incluir una aplicación de captura de movimiento que registra los movimientos del brazo de una persona a través de una cámara conectada (p. ej., una cámara de teléfono inteligente) y procesa las imágenes de video capturadas para obtener la trayectoria del movimiento del brazo. Esta trayectoria se convierte entonces en comandos de posición del servo para que el movimiento de una construcción predeterminada imite la del video capturado.
Se describe un ejemplo de una aplicación de captura de movimiento con referencia a las pantallas 730A - 730E de interfaz de usuario que se muestran en las figuras 13A - 13E. Como se aprecia en la figura 13A, cuando se inicia la aplicación de captura de movimiento, un usuario recibe instrucciones en la pantalla 730A para alinear su cuerpo con un gráfico 732 de plantilla de cuerpo. Como se aprecia en la pantalla 730B de la figura 13B, la aplicación de captura de movimiento informa al usuario, por ejemplo, a través de un mensaje 734 de texto, una vez que el usuario ha alineado su cuerpo con el gráfico 732 de plantilla. A continuación, como se aprecia en la pantalla 730 de la figura 13C, la aplicación de captura de movimiento solicita al usuario que le indique a la aplicación que comience a seguir y grabar el movimiento del usuario, por ejemplo, solicitando al usuario que emita un comando de voz específico como el identificado por el texto 736. La aplicación de captura de movimiento también muestra una línea 740 de tiempo de trayectoria del servo y una línea 742 de tiempo de audio. La aplicación de captura de movimiento procesa imágenes capturadas del usuario para desarrollar un modelo 744 de esqueleto virtual (incluyendo los segmentos 746 de esqueleto) del usuario correspondiente a la construcción predeterminada de tal manera que varios segmentos de la anatomía del usuario estén correlacionados con una representación virtual de una o más de las estructuras de esqueleto articuladas de la construcción predeterminada. Por ejemplo, como se muestra en la pantalla 730D de la Figura 13D, en algunas implementaciones se puede seguir el movimiento del brazo y la cabeza del usuario para generar trayectorias para los antebrazos 22, la parte 24 superior del brazo y la cabeza 28 de la Figura 20 robótica mostrada en la Figura 1. La aplicación de captura de movimiento procesa las trayectorias de esqueleto virtuales para generar las trayectorias 750 del servo que se muestran en la línea 740 de tiempo (cada línea en la línea 740 de tiempo representa una trayectoria del servo individual) y registra una grabación 752 de audio simultánea que se muestra en la línea 742 de tiempo. El usuario indica a la aplicación de captura de movimiento que deje de grabar, por ejemplo, mediante un comando de voz específico como el identificado por el texto 754. Posteriormente, como se muestra en la pantalla 730E de la Figura 13E, el usuario puede usar un icono 756 para guardar un archivo de animación que luego puede recuperar y reproducir el usuario a través del procesador de aplicaciones. En la reproducción, el procesador de la aplicación utiliza el conjunto de comandos digitales del sistema para emitir comandos a los módulos 100 servo digitales para replicar las trayectorias del servo, y el controlador 400 central transmite los comandos a los módulos servo digitales. La grabación de audio puede reproducirse a través del procesador de la aplicación o transmitirse al controlador central para la reproducción simultánea a través de su altavoz.
La aplicación de captura de movimiento también se puede utilizar preferiblemente en un modo de tiempo real en donde la figura robótica puede reproducir las trayectorias en tiempo esencialmente real a medida que se capturan y procesan los movimientos del brazo de la persona.
La función de captura de movimiento proporciona una forma sencilla e intuitiva de programar una construcción predeterminada, particularmente para los niños más pequeños o aquellos con experiencia de programación limitada.
4.4.2 Control remoto virtual
En algunas implementaciones, el procesador de aplicaciones puede ejecutar una aplicación remota virtual que permite al usuario controlar una construcción predeterminada manipulando una representación virtual de la construcción predeterminada. Esto se puede usar para el control inmediato o directo de la construcción predeterminada, o como un medio para aquellos con experiencia limitada en programación para crear una animación.
4.4.2.1 Control directo
Se comenta un ejemplo de una aplicación de control directo con referencia a la pantalla 760 de interfaz de usuario de la Figura 14. La aplicación de control directo muestra una representación 762 virtual de una construcción predeterminada tal como el robot 20 de la figura junto con una variedad de cursores 764A - 764C que permiten al usuario manipular virtualmente los brazos 766, 768 y la cabeza 770 de la representación 762 virtual. El movimiento simulado es procesado por la aplicación de control directo para generar comandos esencialmente simultáneos transmitidos a través del controlador central para situar los módulos 100 servo digitales de una manera que replica esencialmente de manera inmediata el movimiento de los brazos 766, 768 y/o la cabeza 770. Los iconos 772 giran la pantalla para permitir al usuario visualizar y manipular más fácilmente la representación 762 virtual en un espacio tridimensional simulado. Los iconos 774 controlan los módulos 300 de rueda analógicos. Más particularmente, cuando el usuario toca uno de estos iconos 774, la aplicación de control directo indica al controlador 400 central que mueva el módulo de rueda analógico correspondiente en la dirección del icono activado. La aplicación de control directo también permite al usuario controlar el patrón LED de cualquier módulo servo digital o módulo LED digital al permitir al usuario tocar primero el servo 770 virtual correspondiente o la estructura 780 del ojo y luego activar el icono 776 que sacará una rueda de colores que permitirá al usuario configurar el color del LED y/o el patrón de destello. La aplicación de control directo indica al controlador 400 central que controle el correspondiente LED 100-D1 de módulo servo digital o el LED 200-D1 de módulo LED digital para replicar la simulación.
4.4.2.2 Constructor de animación
Se comenta un ejemplo de una aplicación de construcción de animación con referencia a la pantalla 800 de interfaz de usuario de la Figura 15. La interfaz de usuario es similar a la que se muestra en la Figura 14, con la adición de la línea 740 de tiempo de la trayectoria del servo y la línea 742 de tiempo del audio, que están asociadas con los iconos 802 y 804 'grabar’ y ‘reproducir’, respectivamente, para permitir al usuario grabar y reproducir, respectivamente, las trayectorias virtuales del brazo 766, 768 y la cabeza 770 mientras el usuario manipula la representación 762 virtual a través de los cursores 764A-764C así como grabar cualquier audio que pueda estar presente. Los LED de cualquier módulo servo digital o módulo LED digital también se pueden grabar como se comentó anteriormente. El archivo de animación resultante puede guardarse o puede cargarse otro archivo de este tipo, como se indica mediante los iconos 806 y 808 'guardar' y 'cargar', respectivamente. El usuario también puede editar una animación moviendo un cursor 810 de línea de tiempo a cualquier punto de la línea de tiempo, en donde los elementos de esqueleto movibles de la representación 762 virtual se muestran en posiciones correspondientes a las posiciones del servo a lo largo del indicador 812 de tiempo. En este punto, el usuario puede anular una porción de la animación, por ejemplo, moviendo el brazo 766, para generar nuevas trayectorias para los servos correspondientes. Esto permite al usuario combinar trayectorias grabadas por separado. Como alternativa, el usuario puede eliminar una porción de la animación al frotar el cursor 810 de la línea de tiempo (es decir, mover repetida y rápidamente el cursor 810 de la línea de tiempo de un lado a otro), liberando espacio para grabar una nueva porción de animación. En el caso de que la representación 762 virtual no se sitúe exactamente de la misma manera cuando la línea de tiempo se divide, la aplicación de construcción de animación proporciona servo trayectorias intermedias para que se mueva con suavidad entre las posiciones de finalización y comienzo.
Cuando la aplicación de construcción de animación reproduce un archivo de animación, la aplicación anima la representación 762 virtual y transmite la posición del servo correspondiente y otros comandos de control al controlador central, que, por consiguiente, controla la construcción predeterminada.
4.4.2.3 Avatar reconfigurable
Como se comentó anteriormente, el usuario puede reconfigurar una construcción predeterminada. Por ejemplo, la Figura 20’ robótica que se muestra en la Figura 3 está hecha a partir de la construcción predeterminada que se muestra en la Figura 1. En algunas implementaciones, el procesador de aplicaciones puede incluir una aplicación de construcción de avatar que permite al usuario diseñar una representación virtual del robot reconfigurado, en donde la representación virtual diseñada por el usuario se puede utilizar para controlar o generar directamente un archivo de animación para controlar el robot reconfigurado.
La representación virtual diseñada por el usuario del robot reconfigurado se puede configurar a través de una variedad de aplicaciones de diseño.
En una implementación, el usuario puede diseñar una representación virtual del robot reconfigurado mediante el uso de una aplicación 900 de diseño “estructural como se muestra en la Figura 16. Esta aplicación 900 proporciona una serie de iconos que permiten al usuario dibujar una representación estructural del diseño físico del robot reconfigurado en un espacio tridimensional. Los iconos 902 controlan la orientación espacial de la pantalla de visualización. (Cabe señalar que la Figura 16, como se ilustra, muestra la pantalla en un solo plano). Los iconos 904A, 904B, 904C representan elementos del cuerpo estáticos, tales como líneas, cuadrados y círculos que pueden dimensionarse y conectarse entre sí, como es bien conocido en el campo del software de dibujo para permitir al usuario crear un dibujo estructural en proporción y representativo del robot reconfigurado. Por ejemplo, el dibujo 910 estructural que se muestra en la Figura 16 imita la estructura de esqueleto esencial de la Figura 20’ robótica que se muestra en la Figura 3. Los iconos 904D, 904E representan los módulos digitales y/o analógicos tal como el módulo 100 servo digital y el módulo 200 LED digital. La aplicación 900 permite al usuario ubicar y orientar físicamente los módulos en el dibujo 910 estructural. Por ejemplo, los módulos 100 servo digitales tienen un intervalo operativo de movimiento y, por tanto, han de estar orientados en relación con los elementos del cuerpo.
En otra implementación, se puede usar una aplicación CAD convencional (no mostrada) para permitir al usuario construir virtualmente el robot reconfigurado a partir de representaciones tridimensionales de bloques de construcción elementales individuales. Esta implementación puede proporcionar una representación integral del robot reconfigurado, pero probablemente requerirá una mayor inversión de tiempo para crear la representación virtual.
En otra implementación, el usuario puede tomar una o más imágenes del robot reconfigurado y hacer que una aplicación de procesamiento de imágenes (no mostrada) identifique las estructuras de esqueleto. El usuario puede ayudar a la aplicación de procesamiento de imágenes segmentando porciones de las imágenes. La aplicación de procesamiento de imágenes también puede identificar los módulos electrónicos y recibir asistencia del usuario en este proceso.
Aunque implementada, la aplicación de construcción de avatar también tiene que correlacionar la representación virtual diseñada por el usuario del robot reconfigurado con la configuración eléctrica de los módulos electrónicos. Por ejemplo, la Figura 17 muestra cómo los módulos 100, 200, 300 electrónicos pueden interconectarse al controlador 400 central en la Figura 20’ robótica reconfigurada que se muestra en la Figura 3. Como se comentó anteriormente, el proceso de descubrimiento permite que el controlador 400 central identifique dinámicamente cada módulo digital individual, por ejemplo, 10A, 10B, 10C, etc. Para correlacionar cada módulo electrónico con la representación virtual diseñada por el usuario, la aplicación de construcción de avatar puede ejecutar un proceso en el que indica cada módulo electrónico al usuario, por ejemplo, encendiendo el LED asociado o activando brevemente el servomotor o motor de CC, lo que permite al usuario seleccionar el módulo correspondiente en la representación virtual diseñada por el usuario y, por lo tanto, asignar la estructura eléctrica a la estructura física. Por ejemplo, la Figura 18 muestra los resultados de un proceso de correlación en donde los módulos 10A, 10B, 10C, etc. electrónicos individuales mostrados en la Figura 17 se han asignado a las ubicaciones físicas correspondientes en el dibujo 910 estructural. El proceso de mapeo habilita la aplicación de construcción de animación para controlar el módulo electrónico apropiado para que las manipulaciones virtuales o la configuración de la representación virtual diseñada por el usuario (como el dibujo 910 estructural) se efectúen en el robot reconfigurado.
Los principios de la presente invención no se limitan a los ejemplos específicos comentados con referencia a las ilustraciones adjuntas. Es posible realizar otras realizaciones o practicar otras implementaciones que empleen los principios de la presente memoria y que se encuentren dentro del alcance de la invención tal como se define en las reivindicaciones adjuntas.

Claims (8)

REIVINDICACIONES
1. Un sistema robótico reconfigurable, que comprende:
una pluralidad de módulos (100) servo digitales, en donde cada uno de la pluralidad de módulos (100) servo digitales incluye un servomotor que incluye un sensor de posición del servo;
una pluralidad de bloques de construcción elementales, en donde la pluralidad de bloques de construcción elementales está conectada a la pluralidad de módulos (100) servo digitales para construir una figura robótica que tiene articulaciones controladas por posición, en donde los bloques de construcción elementales son combinables con la pluralidad de módulos (100) servos digitales para construir figuras robóticas de diferentes configuraciones;
un controlador (400) central, el controlador (400) central que tiene al menos un canal de comunicación que incluye un puerto de salida que proporciona alimentación, tierra y una señal de datos;
en donde cada uno de la pluralidad de módulos (100) servo digitales incluye un puerto de entrada y un puerto de salida, el puerto de entrada del módulo servo digital que tiene pines de alimentación, tierra y señal de datos, el puerto de salida del módulo servo digital que tiene pines de alimentación, tierra y señal de datos, el pin de señal de datos de entrada del módulo servo digital que es eléctricamente discreto del pin de señal de datos de salida del módulo servo digital, de modo que el pin de señal de datos de entrada del módulo servo digital y el pin de señal de datos de salida del módulo servo digital no se cortocircuitan entre sí;
en donde el puerto de entrada de un módulo (100) servo digital determinado de dicha pluralidad de módulos (100) servo digitales está conectado al puerto de salida del controlador (400) central, los módulos (100) servo digitales restantes de dicha pluralidad de módulos (100) servo digitales están interconectados en secuencia de modo que el puerto de entrada de cada uno de los módulos (100) servo digitales restantes está conectado al puerto de salida de un módulo (100) servo digital siguiente adyacente en la secuencia cuando el módulo servo siguiente adyacente está presente; y
en donde el controlador (400) central y la pluralidad de módulos (100) servo digitales están programados para ejecutar un protocolo de comunicación en el cual el controlador (400) central descubre la pluralidad de módulos (100) servo digitales, y en donde la pluralidad de los módulos (100) servo digitales está configurada para transmitir datos a lo largo del canal de manera en serie antes del descubrimiento y configurados para transmitir datos a lo largo del canal de manera casi paralela después del descubrimiento;
en donde, en la configuración en serie, el módulo servo digital determinado (100) recibirá y procesará un paquete de datos transmitido por el controlador central (400) preferiblemente sin enviar el paquete de datos aguas abajo al siguiente módulo servo digital adyacente (100), cuando el siguiente módulo servo digital adyacente (100) está presente; y
en donde, en la configuración casi paralela, el módulo (100) servo digital determinado coloca sus puertos de E/S de señal de datos en un modo de seguimiento de modo que al recibir un flujo de datos correspondiente al paquete de datos del controlador (400) central, el módulo (100) servo digital determinado envía el flujo de datos aguas abajo al siguiente módulo (100) servo digital adyacente conectado, cuando está presente el módulo (100) servo digital siguiente adyacente.
2. Un sistema robótico reconfigurable según la reivindicación 1, en donde el paquete de datos se subdivide en una pluralidad de subcanales ordenados, cada uno de la pluralidad de subcanales ordenados que proporciona un flujo de datos para uno respectivamente situado de dicha pluralidad de módulos (100) servo digitales en el canal.
3. Un sistema robótico reconfigurable según la reivindicación 2, en donde el paquete de datos incluye una identificación de retroalimentación del módulo y, en respuesta al paquete de datos recibido, solo el módulo (100) servo digital identificado transmite un paquete de respuesta al controlador (400) central.
4. Un sistema robótico reconfigurable según la reivindicación 1, que incluye:
al menos un módulo (200) LED digital que incluye un diodo emisor de luz;
en donde el al menos un módulo (200) LED digital incluye un puerto de entrada y un puerto de salida, el puerto de entrada del módulo LED digital que tiene pines de alimentación, tierra y señal de datos, el puerto de salida del módulo LED digital que tiene pines de alimentación, tierra y señal de datos, el pin de señal de datos de entrada del módulo LED digital que es eléctricamente discreto del pin de señal de datos de salida del módulo LED digital de modo que el pin de señal de datos de entrada del módulo LED digital y el pin de señal de datos de salida del módulo LED digital no se cortocircuitan entre sí;
en donde el al menos un módulo (200) LED digital se puede conectar en secuencia con la pluralidad de módulos (100) servo digitales; y
en donde el controlador (400) central), la pluralidad de módulos (100) servo digitales y el al menos un módulo (200) LED digital están programados para implementar dicho protocolo de comunicación en el que la pluralidad de módulos (100) servo digitales y el al menos un módulo (200) LED digital está configurado en serie antes del descubrimiento y está configurado de forma casi paralela después del descubrimiento.
5. Un sistema robótico reconfigurable según la reivindicación 1, en donde cada uno de la pluralidad de módulos (100) servo digitales se puede conectar a una unidad servo estándar a través del puerto de salida del módulo servo digital, y en donde cada uno de la pluralidad de módulos (100) servo digitales está configurado para emitir una señal PCM del servo convencional en la línea de señal del puerto de salida para controlar una unidad servo estándar conectada.
6. Un sistema robótico reconfigurable según la reivindicación 1, en donde las articulaciones controladas por posición de la figura robótica se pueden manipular manualmente y el controlador (400) central coloca de manera funcional cada uno de la pluralidad de módulos (100) servo digitales en un modo de movimiento aprendido, en el que:
cada uno de la pluralidad de módulos (100) servo digitales transmite periódicamente una posición del servo al controlador (400) central; y
el controlador (400) central registra una trayectoria para cada uno de la pluralidad de módulos (100) servo digitales.
7. Un sistema robótico reconfigurable según la reivindicación 1, que incluye:
un módulo (300) de rueda analógico, que incluye un motor de CC;
en donde el controlador (400) central incluye al menos un circuito de accionamiento del motor de CC conectable al módulo (300) de rueda para accionar el motor de CC del mismo.
8. Un sistema robótico reconfigurable según la reivindicación 7, que incluye un módulo (300) de rueda digital que tiene un motor de CC y un sensor de movimiento para detectar el movimiento del motor de CC, y en donde:
en el modo de movimiento aprendido, el controlador (400) central registra una trayectoria del motor de CC del módulo de rueda que se correlaciona con las trayectorias registradas de cada uno de la pluralidad de módulos (100) servo digitales; y
el controlador (400) central controla el módulo (300) de rueda digital para volver a reproducir la trayectoria del motor de CC del módulo de rueda en coordinación con la reproducción de nuevo de las trayectorias registradas de cada uno de la pluralidad de módulos (100) servo digitales.
ES15181298T 2014-12-01 2015-08-17 Kit robótico reconfigurable Active ES2783000T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462086179P 2014-12-01 2014-12-01
US14/802,971 US9592603B2 (en) 2014-12-01 2015-07-17 Reconfigurable robotic system

Publications (1)

Publication Number Publication Date
ES2783000T3 true ES2783000T3 (es) 2020-09-16

Family

ID=54140202

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15181298T Active ES2783000T3 (es) 2014-12-01 2015-08-17 Kit robótico reconfigurable

Country Status (5)

Country Link
US (3) US9592603B2 (es)
EP (1) EP3028825B1 (es)
CN (1) CN105652738B (es)
DK (1) DK3028825T3 (es)
ES (1) ES2783000T3 (es)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9592603B2 (en) * 2014-12-01 2017-03-14 Spin Master Ltd. Reconfigurable robotic system
US9975238B2 (en) * 2015-06-09 2018-05-22 Shanghai Xpartner Robotics Co., Ltd. Screw-free assembled modular robot
CN205752715U (zh) * 2016-03-31 2016-11-30 深圳贝尔创意科教有限公司 连接结构及应用该连接结构的电子装置
JP6588624B2 (ja) * 2016-04-05 2019-10-09 株式会社日立製作所 ヒューマノイドロボット
KR102028045B1 (ko) * 2016-04-29 2019-10-04 김종태 히스토리 저장을 통한 동작 재생 모듈
JP6910628B2 (ja) * 2016-07-26 2021-07-28 公立大学法人会津大学 ロボットを操作する装置、その装置において実行される方法およびプログラム。
CN106652602A (zh) * 2017-03-07 2017-05-10 大连民族大学 讲课机器人
CN109521927B (zh) * 2017-09-20 2022-07-01 阿里巴巴集团控股有限公司 机器人互动方法和设备
RU183006U1 (ru) * 2017-12-13 2018-09-07 Петр Петрович Кибяков Многопроцессорный мобильный интернет-робот андроид
WO2019123769A1 (ja) * 2017-12-19 2019-06-27 ソニー株式会社 肢ユニット、および、ロボット
CN108326841B (zh) * 2017-12-19 2020-12-18 北京可以科技有限公司 模块化机器人及其系统、控制方法、构建提示方法及构建模块化机器人的校正方法
WO2019123744A1 (ja) * 2017-12-22 2019-06-27 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP6961723B2 (ja) 2018-01-16 2021-11-05 株式会社ソニー・インタラクティブエンタテインメント 移動体および移動体制御方法
WO2019142229A1 (ja) * 2018-01-16 2019-07-25 株式会社ソニー・インタラクティブエンタテインメント ロボット装置、ロボット装置の制御方法およびプログラム
WO2019142228A1 (ja) 2018-01-16 2019-07-25 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および画像生成方法
CN110091323B (zh) * 2018-01-30 2020-11-24 优必选教育(深圳)有限公司 一种智能设备及机器人的控制方法、具有存储功能的装置
US10719085B2 (en) * 2018-02-22 2020-07-21 Boston Dynamics, Inc. Mobile robot sitting and standing
WO2019165471A1 (en) * 2018-02-26 2019-08-29 Insight Scientific International (Shanghai) Ltd. Modular robotic system and associated method of automatically determining configuration and control therefor
US11731059B2 (en) * 2018-03-27 2023-08-22 Intel Corporation Visually distinguishable robots and methods to manufacture the same
EP3771089B1 (en) * 2018-05-14 2023-12-06 Robotshop Japan Co., Ltd. Actuator assembly using a plurality of smart servo motors
EP3807059A1 (en) * 2018-06-15 2021-04-21 Co-Robotics S.r.l. A modular system and method for the making and/or prototype production of self-configuring systems
CN108839017A (zh) * 2018-06-25 2018-11-20 盐城工学院 一种基于听觉的人形机器人控制系统
CN112809709B (zh) * 2019-01-25 2022-12-02 北京妙趣伙伴科技有限公司 机器人及其操作系统、控制装置、控制方法及存储介质
JP7171767B2 (ja) * 2019-01-25 2022-11-15 株式会社ソニー・インタラクティブエンタテインメント ロボット
CN109927044B (zh) * 2019-02-20 2021-04-09 浙江机电职业技术学院 一种多关节机器人及其信息识别处理的使用方法
US11883963B2 (en) * 2019-06-03 2024-01-30 Cushybots Corporation Robotic platform for interactive play using a telepresence robot surrogate
IT201900024481A1 (it) * 2019-12-18 2021-06-18 Fondazione St Italiano Tecnologia Robot modulare configurabile, procedimento e prodotto informatico corrispondenti
JP7403332B2 (ja) * 2020-01-28 2023-12-22 本田技研工業株式会社 動作装置
KR20210119709A (ko) * 2020-03-25 2021-10-06 한국과학기술연구원 모듈형 로봇 제어 시스템
CN112054738B (zh) * 2020-09-09 2024-07-26 福安市高博特电机科技有限公司 一种自动调节式变频控制器
US11813748B2 (en) * 2020-10-13 2023-11-14 Google Llc Simulating multiple robots in virtual environments
US20220134544A1 (en) * 2020-10-30 2022-05-05 Honda Research Institute Europe Gmbh System and method for continuously sharing behavioral states of a creature
CN113276114B (zh) * 2021-05-20 2022-09-16 北京师范大学 一种基于终端任务指派的可重构机械臂协同力/运动控制系统与方法
CN117412839A (zh) * 2021-06-10 2024-01-16 索尼集团公司 护理机器人
US20250042020A1 (en) * 2021-12-06 2025-02-06 Apptronik, Inc. Humanoid robot
USD993296S1 (en) 2021-12-21 2023-07-25 Apptronik, Inc. Robotic upper body
CN114211478B (zh) * 2022-01-05 2022-09-30 长春工业大学 一种模块化机械臂协调操作最优控制方法及系统
CN116125887A (zh) * 2023-02-07 2023-05-16 广州数控设备有限公司 一种基于虚拟现实的机器人远程控制平台及其设计方法
US12403611B2 (en) 2023-04-17 2025-09-02 Figure Ai Inc. Head and neck assembly for a humanoid robot
US12365094B2 (en) 2023-04-17 2025-07-22 Figure Ai Inc. Head and neck assembly for a humanoid robot
CN117018639A (zh) * 2023-08-18 2023-11-10 蔡泽銮 一种拼装机器人玩具
US12303799B2 (en) * 2023-08-18 2025-05-20 Zeluan Cai Assembled robot toy
US12420434B1 (en) 2024-01-04 2025-09-23 Figure Ai Inc. Kinematics of a mechanical end effector

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511147A (en) 1994-01-12 1996-04-23 Uti Corporation Graphical interface for robot
US5675229A (en) 1994-09-21 1997-10-07 Abb Robotics Inc. Apparatus and method for adjusting robot positioning
DE19517852A1 (de) * 1995-05-16 1995-12-14 Uwe Kochanneck Multiblock Robot
JP3919040B2 (ja) * 1997-11-30 2007-05-23 ソニー株式会社 ロボツト装置
JP4366617B2 (ja) * 1999-01-25 2009-11-18 ソニー株式会社 ロボット装置
WO2002025640A2 (en) * 2000-09-21 2002-03-28 Gsi Lumonics Corporation Digital control servo system
US6636781B1 (en) * 2001-05-22 2003-10-21 University Of Southern California Distributed control and coordination of autonomous agents in a dynamic, reconfigurable system
US6605914B2 (en) * 2001-08-24 2003-08-12 Xerox Corporation Robotic toy modular system
US6575802B2 (en) * 2001-08-24 2003-06-10 Xerox Corporation Robotic toy modular system with distributed program
US6454624B1 (en) * 2001-08-24 2002-09-24 Xerox Corporation Robotic toy with posable joints
US7747352B2 (en) * 2004-04-20 2010-06-29 Massachusetts Institute Of Technology Physical modeling system for constructing and controlling articulated forms with motorized joints
US20070150102A1 (en) 2005-12-09 2007-06-28 Joong Ki Park Method of supporting robot application programming and programming tool for the same
FR2918477A1 (fr) 2007-07-04 2009-01-09 Aldebaran Robotics Soc Par Act Procede d'edition de mouvements d'un robot
JP5285701B2 (ja) * 2007-07-10 2013-09-11 レイセオン カンパニー モジュール式ロボットクローラ
CA2591808A1 (en) 2007-07-11 2009-01-11 Hsien-Hsiang Chiu Intelligent object tracking and gestures sensing input device
JP4397412B2 (ja) * 2007-12-07 2010-01-13 株式会社タカラトミー ロボット玩具およびその組立方法
CN101456183A (zh) 2007-12-14 2009-06-17 鸿富锦精密工业(深圳)有限公司 机器人及操控该机器人的无线通讯装置
US8742814B2 (en) * 2009-07-15 2014-06-03 Yehuda Binder Sequentially operated modules
US20110021109A1 (en) 2009-07-21 2011-01-27 Borei Corporation Toy and companion avatar on portable electronic device
US9472112B2 (en) * 2009-07-24 2016-10-18 Modular Robotics Incorporated Educational construction modular unit
CN102300679B (zh) * 2009-09-28 2014-12-10 松下电器产业株式会社 机器人手臂的控制装置及控制方法、机器人及机器人手臂控制用集成电路
US8425620B2 (en) * 2009-12-08 2013-04-23 Hdt Engineering Services, Inc. Modular limb segment connector
DE102010062217B4 (de) * 2010-01-22 2018-11-22 Kinematics Gmbh Baukastensystem mit bewegungsfähigen Modulen
US20120130541A1 (en) * 2010-09-07 2012-05-24 Szalek Leszek A Method and apparatus for robot teaching
US8930019B2 (en) 2010-12-30 2015-01-06 Irobot Corporation Mobile human interface robot
KR101284910B1 (ko) * 2011-05-23 2013-07-12 전윤주 프로그래밍 블록 조립체, 이를 이용한 프로그램에 의해 구동되는 로봇 시스템 및 그 프로그래밍 방법
US20130268119A1 (en) 2011-10-28 2013-10-10 Tovbot Smartphone and internet service enabled robot systems and methods
US9320980B2 (en) * 2011-10-31 2016-04-26 Modular Robotics Incorporated Modular kinematic construction kit
US8996175B2 (en) * 2012-06-21 2015-03-31 Rethink Robotics, Inc. Training and operating industrial robots
US10278883B2 (en) * 2014-02-05 2019-05-07 President And Fellows Of Harvard College Systems, methods, and devices for assisting walking for developmentally-delayed toddlers
WO2015129473A1 (ja) * 2014-02-28 2015-09-03 ソニー株式会社 ロボットアーム装置、キャリブレーション方法及びプログラム
US9526979B2 (en) * 2014-03-11 2016-12-27 Microsoft Technology Licensing, Llc Storing state for physical modular toys
US9592603B2 (en) * 2014-12-01 2017-03-14 Spin Master Ltd. Reconfigurable robotic system

Also Published As

Publication number Publication date
DK3028825T3 (da) 2020-04-06
CN105652738A (zh) 2016-06-08
EP3028825A3 (en) 2017-04-19
US20160151909A1 (en) 2016-06-02
US20170136620A1 (en) 2017-05-18
EP3028825A2 (en) 2016-06-08
CN105652738B (zh) 2019-10-11
US20170239811A1 (en) 2017-08-24
US9981376B2 (en) 2018-05-29
EP3028825B1 (en) 2020-01-08
US9737986B2 (en) 2017-08-22
US9592603B2 (en) 2017-03-14

Similar Documents

Publication Publication Date Title
ES2783000T3 (es) Kit robótico reconfigurable
US11529567B2 (en) Robot having a changeable character
EP2918319B1 (en) A toy construction system
JP5840625B2 (ja) 可動モジュールを用いたビルディングブロックシステム
US11294468B2 (en) System and method for modulating a sex peripheral device based on an unscripted feed using computer vision
PT1148921E (pt) Brinquedo programável com meios de comunicação
CN211073602U (zh) 一种具有多种功能的可更换外壳机器人及其装饰外壳
CN207591299U (zh) 一种智能教学机器人玩具
CN109968360A (zh) 一种具有多种功能的可更换外壳机器人及其装饰外壳
KR20120098074A (ko) 인간과 상호작용하는 화초 로봇
TWM594238U (zh) 光感機器人裝置