ES2628195T3 - Sistema y procedimiento para editar y controlar los comportamientos de un robot móvil - Google Patents

Sistema y procedimiento para editar y controlar los comportamientos de un robot móvil Download PDF

Info

Publication number
ES2628195T3
ES2628195T3 ES10723567.3T ES10723567T ES2628195T3 ES 2628195 T3 ES2628195 T3 ES 2628195T3 ES 10723567 T ES10723567 T ES 10723567T ES 2628195 T3 ES2628195 T3 ES 2628195T3
Authority
ES
Spain
Prior art keywords
actions
robot
behavior
control box
editing
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
ES10723567.3T
Other languages
English (en)
Inventor
Jérôme MONCEAUX
Bruno Maisonnier
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.)
Aldebaran SAS
Original Assignee
SoftBank Robotics Europe SAS
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 SoftBank Robotics Europe SAS filed Critical SoftBank Robotics Europe SAS
Application granted granted Critical
Publication of ES2628195T3 publication Critical patent/ES2628195T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • 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/40392Programming, visual robot programming language

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Manipulator (AREA)

Abstract

Procedimiento de edición de un programa de control de una pluralidad de acciones de un robot móvil que pertenece al grupo de las acciones de tipo comportamiento y de las acciones de tipo movimiento, perteneciendo dicha pluralidad de acciones a al menos una Trama (50, 60) principal de acciones, comprendiendo dicho procedimiento: - una etapa de conexión de dicha al menos una Trama principal de acciones a al menos un evento elegido en el grupo de los eventos antecedentes y de los eventos sucesores, perteneciendo dicha al menos una Trama principal de acciones a una Caja (10) de control; y - una etapa (20) de definición de una Timeline de la Caja de control aplicable a dicha al menos una Trama 1principal de acciones, representando dicha Timeline una restricción temporal a la que se someten las acciones del robot definidas en la Caja de control en la que se inserta dicha Timeline y realizando una sincronización de las acciones de la Caja de control; estando dicho procedimiento caracterizado porque comprende además una etapa de toma en consideración de un parámetro de velocidad de desarrollo de la Timeline definido por un número de Tramas por unidad de tiempo, siendo dicho parámetro o bien definido por un usuario o bien fijado a un valor dado.

Description

5
10
15
20
25
30
35
40
45
50
55
60
DESCRIPCION
Sistema y procedimiento para editar y controlar los comportamientos de un robot movil
La presente invencion pertenece al campo de los sistemas de programacion de robots. Mas precisamente, se aplica a la edicion y el control de los comportamientos y movimientos de robots que se desplazan sobre o utilizan unos miembros articulados, principalmente de forma humana o animal. Un robot puede calificarse de humanoide a partir del momento en que posee ciertos atributos de aspecto humano: una cabeza, un tronco, dos brazos, dos manos, dos piernas, dos pies, etc. Un robot humanoide puede sin embargo estar mas o menos evolucionado. Sus miembros pueden tener un numero mas o menos grande de articulaciones. Pueden gestionar por sf mismos el equilibrio estatico y dinamico y marchar sobre dos miembros, eventualmente en tres dimensiones. Pueden captar unas senales del entorno (“escuchar”, “ver”, “tocar”, “oler” ...) y actuar segun unos comportamientos mas o menos sofisticados, de modo que interactue con otros robots o humanos, bien mediante la palabra o bien mediante el gesto. Para aprovechar lo mejor de estas posibilidades, se hace necesario proporcionar una unidad informatica de control del robot para los controles de dichos comportamientos. Ciertos robots pueden buscar de manera autonoma unos controles necesarios para ejecutar unos comportamientos correspondientes a su perfil de utilizacion. Continua siendo sin embargo necesario que un usuario pueda intervenir para crear nuevos comportamientos y movimientos. Una primera manera de programar los controles necesarios es hacer que se desarrollen segun una secuencia temporal predeterminada. Esta logica de programacion presenta la ventaja de que el comportamiento del robot es predecible en el tiempo: los comportamientos tienen un inicio y un fin que se producen en unos momentos predecibles. Vease por ejemplo el procedimiento de edicion y de programacion temporal de los comportamientos de un robot divulgado por la Patente US 6.718.231. Sin embargo, esta logica encuentra su lfmite en el hecho de que las interacciones del robot con su entorno son a la vez inevitables (encuentra obstaculos en el camino) y deseables (reacciones del robot a las solicitaciones del entorno o de su usuario), lo que interrumpe el curso de la secuencia de comportamientos preprogramados. Esto es por lo que se ha utilizado otra logica de programacion, de tipo por eventos, inspirada en la teona de los automatas tanto para los robots humanoides como para los robots industriales: en esta logica de programacion, los vrnculos relacionan unos comportamientos, dependiendo el segundo en una cadena de las salidas del primero. Esta logica permite gestionar las interacciones con el entorno. Vease por ejemplo el procedimiento de edicion y de programacion por eventos de un robot divulgado por la Patente US 6.470.235. Esta logica presenta sin embargo el inconveniente de interrumpir una secuencia de comportamientos preprogramada en tanto que el evento esperado no se ha producido. Un ejemplo simplificado permitira comprender facilmente esta dificultad: el usuario desea que el robot pase de una primera posicion a una segunda posicion que debe esperar a un instante determinado. Por el camino, puede tener que efectuar unas acciones que dependen de interacciones con el entorno (decir “buenos dfas” a otro robot con el que se encuentra, recoger un objeto, etc.). Una programacion puramente por eventos, no limitada por el tiempo, no puede resolver este problema.
Un procedimiento que yuxtapone las dos logicas de programacion por eventos y temporal se divulga por la Solicitud de Patente Japonesa JP2002/120174. En dicho procedimiento, sin embargo, el programador debe intervenir no obstante en uno de los dos bloques de programa para hacerlos compatibles. Este procedimiento no resuelve por tanto el problema que consiste en convertir a las dos logicas de programacion por eventos y temporal en compatibles sin intervencion del programador. Igualmente, la Solicitud de Patente US2007/150102 divulga unas logicas de programacion por eventos y temporal que no se combinan en el seno de una misma Caja de control.
La presente invencion resuelve este problema previendo un sistema y un procedimiento de edicion y de programacion de los comportamientos de un robot que combina las logicas de programacion temporal y por eventos sin intervencion del programador en cada evento.
Con este fin, la presente invencion divulga un procedimiento de edicion y un programa de control segun la reivindicacion 1.
La invencion divulga igualmente un programa de ordenador para realizar el procedimiento de edicion segun la reivindicacion 11, asf como un programa de control segun la reivindicacion 12 y un robot segun la reivindicacion 13.
Le invencion proporciona igualmente la ventaja de permitir una edicion amigable de los controles a ejecutar por el robot que permite a la vez la utilizacion de las Cajas de control de comportamientos y de movimientos preprogramados. Las Cajas se organizan en una estructura jerarquica que permite descomponer los comportamientos complejos en comportamientos elementales. Los comportamientos elementales pueden programarse en lenguaje de scripts directamente interpretable por el robot. Los scripts se organizan en modulos que utilizan unas estructuras de datos comunes y son por ello independientes entre sf. El usuario puede intervenir a todos los niveles del arbol jerarquico de los comportamientos. El usuario puede igualmente crear unas interacciones entre unos comportamientos de una rama del arbol y otros comportamientos que pertenecen a otra rama del arbol. Puede intervenir igualmente en los movimientos elementales del robot que determinaran un comportamiento dado. Ademas, el sistema es compatible con varios entornos de desarrollo (lenguajes Python, URBI, principalmente: Windows XP, Mac OS, Unix.).
La invencion se comprendera mejor y surgiran sus diferentes caractensticas y ventajas de la descripcion que sigue de varios ejemplos de realizacion y de sus figuras adjuntas de las que:
5
10
15
20
25
30
35
40
45
50
55
60
- la figura 1 es un esquema de la arquitectura funcional de edicion y de programacion de los comportamientos de un robot en un modo de realizacion de la invencion;
- la figura 2 es una vista de la pantalla principal del sistema de edicion y de programacion de los comportamientos de un robot en un modo de realizacion de la invencion;
- la figura 3 es una vista de la pantalla que permite a un usuario editar las Capas de comportamiento y de movimiento de un robot en un modo de realizacion de la invencion;
- la figura 4 es una vista de la pantalla que muestra las Cajas de control de comportamientos conectadas para editar y programar una Trama principal de comportamientos a ejecutar por un robot en un modo de realizacion de la invencion;
- la figura 5 es un organigrama funcional de la arquitectura de una Caja de control del sistema de edicion y de programacion de los comportamientos de un robot en un modo de realizacion de la invencion;
- la figura 6 es una vista que muestra los diferentes tipos de conexiones entre las Cajas de control de comportamientos conectadas para editar y programar una Trama principal de comportamientos a ejecutar por un robot en un modo de realizacion de la invencion;
- la figura 7 es una vista que muestra un ejemplo de programacion por accion directa sobre una representacion grafica de los motores de un robot virtual en un modo de realizacion de la invencion;
- las figuras 8a y 8b son unas vistas de dos pantallas que ilustran un ejemplo de movimiento de un robot imposible de ejecutar en el tiempo concedido, en un modo de realizacion de la invencion;
- las figuras 9a, 9b y 9c son unas vistas de pantallas que ilustran un ejemplo complejo de edicion de comportamientos de un robot en un modo de realizacion de la invencion;
- las figuras 10a, 10b y 10c son unas vistas de pantallas que ilustran un ejemplo de edicion de un encadenamiento de comportamientos de un robot sincronizados con un eje temporal de Tramas o Timeline en un modo de realizacion de la invencion;
- la figura 11 ilustra un ejemplo de script que permite la programacion directa de la ejecucion de un comportamiento de un robot en un modo de realizacion de la invencion.
La figura 1 es un esquema de la arquitectura funcional de edicion y de programacion de los comportamientos de un robot en un modo de realizacion de la invencion.
El robot controlado por el procedimiento y el sistema de la invencion puede ser un robot humanoide que tenga una cabeza, un tronco y cuatro miembros, estando articulada cada una de las partes, estando controlada cada articulacion por uno o varios motores. La invencion permite a un usuario del sistema controlar un robot de ese tipo creando los comportamientos simulados sobre un robot virtual y ejecutados sobre el robot real unido al sistema mediante un enlace por cable o inalambrico.
Se trata de visualizar, de simular y de hacer ejecutar unos comportamientos (tales como la marcha —en recto, a la derecha o a la izquierda en n pasos; un “hola”— movimientos de uno de los brazos por encima de la cabeza; la voz, etc.) y los movimientos (de la cabeza, de una parte del miembro, en un angulo dado) sobre la pantalla de un ordenador programado para hacerlo.
La figura ilustra la articulacion de los controles desencadenados por los eventos con su dimension temporal. Los controles desencadenados por unos eventos se representan en la semantica de la invencion por unas Boxes o “Cajas” o “Cajas de control” 10. Una Caja es una estructura de programacion arborescente que puede comprender uno o varios de los elementos que siguen que se definen a continuacion:
- Una “Timeline” o eje 20 temporal de Tramas;
- Un “Diagram” o Diagrama 70 de flujo
- Un Script 90
Las Cajas de control se unen normalmente entre sf mediante unas conexiones que transmiten frecuentemente una informacion de eventos de una Caja a la otra, como se detalla mas adelante en la descripcion. Toda Caja se une directamente o indirectamente a una “Caja rafz” o Rafz que inicializa el escenario de comportamiento/movimiento del robot.
Un eje 20 temporal de Tramas representa la restriccion temporal a la que deben someterse los comportamientos y los movimientos del robot definidos en la Caja en la que se inserta dicho Eje temporal de Tramas. En lo que sigue de la descripcion y de las reivindicaciones, se utilizara la denominacion anglosajona de Timeline, comunmente admitida con el mismo sentido en el mundo de la programacion. La Timeline realiza asf la sincronizacion de los comportamientos y movimientos de la Caja. Esta se descompone en frames (Tramas) a las que se asocia una velocidad de desarrollo definida el numero de Tramas por segundo o Frames Per Second (FPS). Las FPS de cada Timeline es parametrizable por el usuario. Por de omision, la FPS puede fijarse a un valor dado, por ejemplo 15 FPS.
Una Timeline puede comprender:
- una o varias Behaviour Layers o “Capas de comportamiento” 30, comprendiendo cada una uno o varios Behaviour Key Frames o “Tramas principales de comportamiento” 50, que pueden comprender a su vez uno o varios Diagrams o “Diagramas de flujo” 70, que son de hecho unos conjuntos de Cajas que pueden relacionarse igualmente directamente con una Caja de nivel superior, sin pasar por una Capa de comportamiento ni una Timeline;
- Una o varias Motion Layers o “Capas de movimiento” 40, comprendiendo cada una uno o varios Motion Key Frames o “Tramas principales de movimiento” 60 que pueden comprender una o varias Motion Screens o
5
10
15
20
25
30
35
40
45
50
55
60
“Pantallas de movimiento” 80.
Una Capa de comportamiento define un conjunto de comportamientos del robot o Tramas principales de comportamiento. Pueden definirse varias Capas de comportamiento en el seno de una misma Caja. Se programaran entonces para desarrollarse de manera sincronizada por la Timeline de la Caja.
Una Capa de comportamiento podra comprender una o varias Tramas principales de comportamiento. Una Trama principal de comportamiento define un comportamiento del robot, tal como la marcha (“Marcha”), la palabra (“Decir”), el juego de musica (“Musica”), etc. Un cierto numero de comportamientos se preprograman en el sistema de la invencion para ser insertados directamente por el usuario en un simple “drag and drop” a partir de una librena tal como se detalla mas adelante en la descripcion. Cada Trama principal de comportamiento se define por un evento desencadenador que es el inicio de la Trama que se inserta en la Timeline. El final de la Trama principal de comportamiento no esta definido mas que en la medida en la que se inserta a continuacion otra Trama principal de comportamiento, o si se define un evento de final.
Una Capa de movimiento define un conjunto de movimientos del robot que se programan mediante una o varias Tramas principales de movimiento sucesivas que reagrupan unos movimientos de los motores de las articulaciones del robot. Estos movimientos a ejecutar se definen por las posiciones angulares de llegada de dichos motores que pueden programarse mediante la accion sobre unas pantallas de movimiento, siendo detalladas dichas acciones mas adelante en la descripcion. Todas las Tramas principales de movimiento de una misma Caja se sincronizan por la Timeline de la Caja. Una Trama principal de movimiento se define por una Trama de llegada. La Trama de salida es la del final de la Trama principal de movimiento precedente o la del evento de inicio de la Caja.
Se designa bajo la denominacion comun de Trama principal de accion a las Tramas principales de comportamiento y a las Tramas principales de movimiento.
Es posible ejecutar en paralelo varias Tramas principales de accion (de comportamiento o de movimiento), con la condicion de que se relacionen con la mismo Timeline.
Un Diagrama de flujo es un conjunto de Cajas conectadas entre sf, como se detalla mas adelante. Cada una de las Cajas puede comprender a su vez otras Timeline con las que se relacionan nuevas Capas de comportamiento o de movimiento.
Un script es un programa directamente ejecutable por el robot. Una Caja que comprende un script no comprende otro elemento.
La figura 2 es una vista de la pantalla principal del sistema de edicion y de programacion de los comportamientos de un robot en un modo de realizacion de la invencion.
La parte derecha 2.1 comprende una imagen virtual del robot a controlar que permitira realizar unas simulaciones de la ejecucion de los controles. El robot puede ser de cualquier tipo, pero la invencion sera particularmente ventajosa en el caso de un robot humanoide o de forma animal, que tenga una cabeza, un cuerpo y unos miembros. La parte de la izquierda 2.2 da acceso a una biblioteca de comportamientos que se almacena en el ordenador. Estos comportamientos son unos componentes reutilizables con los que pueden definirse unos comportamientos elementales utilizados frecuentemente como la marcha, la danza, el habla, la iluminacion de los ojos o de otros LED, etc.
La parte central 2.3 permite ensamblar unos comportamientos extrafdos en la biblioteca 2.2 para editarlos y ensamblarlos en secuencias de comportamientos bajo la forma de Diagramas de flujo, como se indica de manera detallada mas adelante en la descripcion.
La figura 3 es una vista de la pantalla que permite a un usuario editar las Capas de comportamiento y de movimiento de un robot en un modo de realizacion de la invencion.
Como se ve en las partes 3.1 (Capas de comportamiento) y 3.2 (Capas de movimiento), pueden definirse varias Capas en el tipo de comportamiento y el tipo de movimiento y, en cada Capa, pueden crearse varias Tramas principales. Las Capas de tipo comportamiento se describiran en lo que sigue de la descripcion.
La creacion de las Tramas principales de las Capas de tipo movimiento se explica mas adelante en la descripcion. Se explican en este caso las modalidades de edicion de las Tramas principales de movimiento. Es posible copiar o desplazar una secuencia en el seno de una Capa de movimiento o de una Capa de movimiento a otra. En este ultimo caso, puede ser que el movimiento no pueda ejecutarse debido a los conflictos de ordenes dadas a un mismo motor.
Es posible alisar las transiciones entre secuencias de movimientos realizando una interpolacion de tipo lineal o exponencial, por ejemplo. Es igualmente posible duplicar una secuencia definida para un miembro superior o inferior en una secuencia aplicable al miembro simetrico en donde los movimientos son en sf mismos simetricos.
Como se visualiza en la parte 3.3 de la figura, en una Capa de tipo movimiento, se puede visualizar igualmente la evolucion de los motores de cada una de las partes del robot en un sistema de ejes cuya abscisa es la Timeline de las Capas de comportamiento y de movimiento y las ordenadas son el angulo de giro de cada uno de los motores que puede ser positivo o negativo. En un ejemplo de realizacion de la invencion, el robot puede incluir varios motores. Los movimientos pueden modificarse desplazando los puntos de parada del motor en abscisas y/o en ordenadas. Ciertos movimientos del motor no son compatibles entre sf y no podran ejecutarse.
La figura 4 es una vista de una pantalla que muestra las Cajas de control de comportamiento conectadas para editar y programar una secuencia de comportamientos a ejecutar por un robot en un modo de realizacion de la invencion.
La Caja de control de comportamiento es el ladrillo de base del sistema de edicion y de control de un robot segun la invencion. Una Caja de control de comportamiento define una o varias acciones e incluye una o varias entradas y
5
10
15
20
25
30
35
40
45
50
55
una o varias salidas. En el ejemplo de la figura 4, la entrada es el evento “Inicio de la secuencia de comportamiento X” arriba y a la izquierda de la pantalla 2.3 de la figura 2. Este punto se une mediante un arco a una de las entradas situadas a la izquierda de la primera Caja “Movimiento”. La salida de dicha Caja se conecta a una de las entradas de la segunda Caja “Hola”. La salida de esta segunda Caja se conecta al evento “Final de la secuencia de comportamiento X” arriba y a la derecha de la pantalla. Las dos Cajas se han creado en la pantalla por copia de los elementos correspondientes de la biblioteca 2.2 de la figura 2 (operacion de arrastrar y soltar). Las condiciones se han creado de manera grafica uniendo los puntos de entrada/salida con la ayuda del raton. Como se ha indicado en el comentario de la figura 1, en un modo de realizacion de la invencion, las Cajas pueden ser de tres tipos:
- Caja de scripts, que comprende una serie de instrucciones en lenguaje informatico; los lenguajes utilizados pueden ser unos lenguajes especializados en el control de robots tales como URBI™;
- Caja Diagrama de flujo, que comprende varias Cajas, de las que por ejemplo una Caja permite al usuario definir un parametro utilizado por otra Caja, tal como, por ejemplo, la distancia de marcha;
- Caja que comprende una Timeline con una o varias Capas de movimiento y/o una o varias Capas de comportamiento.
La figura 5 es un organigrama funcional de la arquitectura de una Caja del sistema de edicion y de programacion de los comportamientos de un robot en un modo de realizacion de la invencion.
El organigrama de la figura recapitula las diferentes posibilidades ofrecidas por las Cajas: scripts, Diagramas de flujo, Timeline con, por una parte, una Trama principal de comportamiento y por otra parte otro Diagrama de flujo compuesto de comportamientos.
La figura 6 es una vista que muestra diferentes tipos de enlaces entre unas Cajas de comportamiento conectadas para editar y programar una Trama principal de comportamiento a ejecutar por un robot en un modo de realizacion de la invencion.
Son posibles varios tipos de entradas:
- OnStart: entrada de salida que lanza la ejecucion de una Caja;
- OnStop: entrada, representada por una cruz, que detiene la ejecucion de la Caja cuando se activa; la parada no interviene sin embargo mas que al final de una accion cuya interrupcion en el curso de ejecucion pondna al robot en posicion inestable (caso de la Caja “Andar” o “Marcha”, por ejemplo);
- OnStoped: salida que se activa cuando se finaliza la ejecucion de la Caja; esta salida puede vincularse a las entradas de otras Cajas; estas entradas se activaran cuando los comportamientos de las Cajas anteriores que estan vinculadas a esta entrada hayan sido ejecutados completamente;
- OnLoad: entrada oculta en la estructura de una Caja; esta entrada aparece cuando se abre una Caja de varios niveles; se activa cuando esta cargada completamente en la memoria una Caja de varios niveles, no interviniendo dicha carga mas que para la activacion de la Caja de nivel superior;
- Entrada conectada a ALMemory: esta entrada se activa cada vez que cambia el valor calculado en ALMemory;
◦ La memoria ALMemory es una base de datos interna del robot; es una memoria a corto termino: se inserta en ella el ultimo valor de una variable dada (con posibilidad de tener un historico corto, es decir algunos valores procedentes de la variable), y la memoria puede encargarse de notificar a los modulos interesados por el cambio de una o varias variables. Contiene por ejemplo las informaciones de todos los captadores, actualizados cada 20 ms: valores angulares de motores, corriente, temperaturas, etc. En el curso de la ejecucion sobre un robot, esta memoria puede contener mas de 4000 variables. Todos los modulos que tratan sobre el robot o que estan conectados a el pueden comunicar con ALMemory, para insertar unos valores que desean publicar, o para inscribirse en unas variables que les interesan y reaccionar a su cambio (por ejemplo: reaccionar al valor de la batena, para que el robot busque su cargador cuando el nivel de batena esta por debajo de un cierto umbral).
- Entrada evento: cuando esta entrada se activa, el comportamiento en el curso de ejecucion en la Caja se modifica;
◦ A tftulo de ejemplo ilustrativo, se toma el caso de una Caja “Temporizador” que simula una de sus salidas con una cadencia regular: cada n segundos: una entrada de tipo “entrada evento” espera un parametro del tipo “Numero”, y cambia la cadencia de la Caja si recibe una senal en esta entrada; de ese modo, si llega una senal de valor “3”, la salida no se estimulara mas que cada 3 segundos;
- Salida Puntual: esta salida puede activarse en no importa que momento durante la ejecucion de un comportamiento en la Caja;
◦ A tftulo de ejemplo ilustrativo, tomemos el caso de una Caja de deteccion de caras; esta Caja tiene una salida puntual de tipo “Numero”; cuando la Caja esta en el curso de ejecucion, se estimula esta salida cada vez que el robot identifica en su campo visual un numero de caras diferente a la del instante anterior. Si no habfa ninguna persona, y si el robot ve una cara, estimula su salida con la informacion “1”; si llega una 2a cara, envfa la informacion “2”, y si desaparecen las 2 caras un poco mas tarde, envfa “0”, se recupera de ese modo el evento “cara(s) identificada(s)”, con el numero de caras identificadas.
5
10
15
20
25
30
35
40
45
50
55
60
Las Cajas y eventos se conectan entre sf por unos enlaces, como se ha representado en la figura 6. Un enlace transporta una senal de evento entre entradas y salidas. Se puede tener en ella varios tipos de senales de eventos:
- Una senal de activacion, sin otra informacion;
- Una senal portadora de uno o varios numeros (por ejemplo, un numero de pasos o una distancia);
- Una senal portadora de una o varias cadenas de caracteres (por ejemplo, un texto que debe pasarse al modulo de smtesis de voz de un robot);
- Una senal compuesta, que puede comprender varias senales, cada una de uno de los tipos anteriores.
Ventajosamente, estos enlaces se representan de manera grafica de diferentes maneras, mediante unos colores o unos trazados de texturas diferentes. Estas Cajas no admiten mas que unas entradas de ciertos tipos definidos y no entradas de otros tipos.
Es posible establecer unas conexiones entre dos Cajas que pertenezcan a unas Tramas principales de comportamientos diferentes pero que tengan una interseccion sobre una misma Timeline. Para ello, el usuario del sistema de la invencion puede colocarse en un instante sobre una Timeline y editar todas las Tramas principales de comportamiento activas en dicho instante. De ese modo, si se carga una primera Trama principal en la Timeline y aparece una segunda Trama principal con sus Cajas y sus conexiones, el usuario puede desplazar o modificar las Cajas y las conexiones entre ellas y modificar de ese modo de manera dinamica los comportamientos que se ejecutaran por el robot.
La figura 7 es una vista que muestra un ejemplo de programacion mediante accion directa sobre una representacion grafica de los motores de un robot virtual en un modo de realizacion de la invencion.
La figura 7 representa el brazo izquierdo de un robot. En este ejemplo, el brazo incluye una articulacion brazo- hombro con dos grados de libertad ortogonales accionados por dos motores y una articulacion mano-brazo, igualmente con dos grados de libertad. Los angulos de rotacion de los 4 motores de las articulaciones pueden controlarse directamente haciendo deslizar con el raton los cursores que corresponden a cada uno de estos motores. Los valores de los angulos se presentan para cada motor. En un modo estandar de realizacion de la invencion, la realizacion del control para el motor de la articulacion del robot virtual puede llevar del orden de un segundo. En el caso de que el movimiento no se realice en este tiempo, esto puede querer decir que el movimiento no es realizable, principalmente porque existe un obstaculo que se opone a la realizacion del movimiento.
Un indicador de estado muestra si el movimiento controlado ha podido registrarse. Si el indicador de estado esta en una posicion “No registrado”, esto puede querer decir que el movimiento no es ejecutable, principalmente porque un motor solicitado en una Capa de movimiento que depende de una Timeline no puede estar en otra Capa de movimiento que dependa de la misma Timeline.
Es posible visualizar las ffneas tiempos/angulos de cada uno de los motores mostrados en la figura 3, individualmente o para una parte dada. Como ya se ha indicado, es igualmente posible en este modo de control transferir los movimientos programados para un miembro sobre el miembro simetrico. En este caso, los movimientos de los motores son simetricos.
Es posible programar sobre esta pantalla un modo maestro-esclavo en el que un robot ffsico conectado al sistema de edicion y de programacion de la invencion esta controlado por el sistema y el robot virtual se esclaviza al robot ffsico.
Las figuras 8a y 8b son unas vistas de dos pantallas que ilustran respectivamente un ejemplo de movimiento de un robot imposible de ejecutar tal como se ha ordenado y un ejemplo de ajuste del movimiento para hacerlo ejecutable, en un modo de realizacion de la invencion.
En la figura 8a, se ve que la ffnea que representa el movimiento ordenado no se une a la posicion de la secuencia de movimiento siguiente a la que debena normalmente unirse (materializada por un pequeno cuadrado). Entre la posicion de salida y la posicion de llegada, no hay mas que 5 pasos de secuencia de movimiento. Teniendo en cuenta el ffmite de velocidad fijado en el motor (que puede variar por ejemplo entre 4 y 8 rad/s segun los motores), la velocidad de marcha de las Tramas (30 FPS en este caso), y la amplitud angular a recorrer por el motor (de -52 a +37 grados, en el ejemplo de la figura), la orden no puede ejecutarse.
En la figura 8b, se ve que el motor se pasa a la ejecucion de la orden siguiente a partir de que se haya alcanzado la Trama en la que esta posicionada la Trama principal de movimiento no ejecutable.
Las condiciones de imposibilidad son, tal como se ve, dependientes del numero de FPS elegido por el usuario y de las velocidades ffmite de los motores, habiendose observado que este ultimo parametro no admite mas que pocas variaciones y depende de las caractensticas de los motores.
Las figuras 9a, 9b y 9c son unas vistas de pantallas que ilustran un ejemplo complejo de edicion de comportamientos de un robot en un modo de realizacion de la invencion.
La figura 9a ilustra un caso en el que se genera una primera secuencia de comportamiento (tramaclave 1 sobre capa1_comportamiento) por la creacion en una Capa de tipo comportamiento mediante adicion en la ventana de edicion de las Cajas de una primera Caja “Danza”, estando sincronizada dicha primera secuencia con la Timeline en la capa1_movimiento. Se anade una 2a Caja “LedCara” (LED de la cara) en la ventana de edicion de las Cajas en la 1a secuencia tramaclave 1.
Las figuras 9b y 9c son dos variantes de la figura 9a en las que:
5
10
15
20
25
30
35
40
45
50
55
60
- en la figura 9b, se sustituyen otros LED en la LedCara y se unen todos a la entrada de la Caja, lo que quiere decir que los comportamientos correspondientes (iluminacion de los LED) se ejecutaran en paralelo;
- en la figura 9c, se anaden en secuencia otros LED antes de LedCara, lo que quiere decir que su iluminacion se efectuara sucesivamente antes de la iluminacion de los LedCara.
Las figuras 10a, 10b y 10c son unas vistas de pantallas que ilustran un ejemplo de edicion de un encadenamiento de comportamientos de un robot sincronizados con la lmea de tiempos en un modo de realizacion de la invencion.
La figura 10a muestra una Caja “irAYParar” parametrizada por un mdice de Trama de la Timeline (100 en el ejemplo de la figura). Cuando esta Caja se activa, la ejecucion salta al paso designado por el parametro de la Caja y la ejecucion del comportamiento en curso se detiene.
Como se indicado en la figura 10b, existe igualmente una Caja de comportamiento “irAYReprod”, que se distingue de la Caja de comportamiento “irAYParar” en que, en lugar de detener el desarrollo del tiempo en la Capa de comportamiento afectada, deja de desarrollarse a partir del paso especificado. En el caso ilustrado, se conectan dos Cajas “irAYReprod” y “irAYParar” a las salidas de una Caja “Parachoques” que comprende los captadores de choque respectivamente del pie izquierdo y del pie derecho del robot (en un modo de realizacion, el robot tiene dos captadores de choque en cada pie).
La figura 10c muestra una vista interna de la Caja Parachoques en la que se ilustran los dos captadores “izquierda” (captadores del pie izquierdo) y “derecha” (captadores del pie derecho).
En relacion con la figura 10b, se ve que
- si al menos uno de los captadores del pie izquierdo se activa (choque del pie izquierdo sobre un obstaculo detectado por el captador), el comportamiento en curso (Danza en el ejemplo de la figura) se detiene, pero la Timeline de la Capa de comportamiento en la que esta insertado el comportamiento Marcha continua desarrollandose;
- si al menos uno de los captadores del pie derecho se activa (choque del pie derecho sobre un obstaculo de cesado por el captador), el comportamiento en curso (Marcha en el ejemplo de la figura) se detiene y la Timeline de la Capa de comportamiento en la que esta insertado el comportamiento Marcha se pone en pausa.
La figura 11 ilustra un ejemplo de script que permite la programacion directa de la ejecucion de un comportamiento de un robot en un modo de realizacion de la invencion.
El ejemplo de la figura es un script de iluminacion de los LED de la oreja derecha del robot (LedOrejalzd). Un script es un modulo, en este caso en lenguaje Python, que es un lenguaje interpretado. La creacion de una Caja de script se realiza en 3 etapas:
- instanciacion de la Caja;
- registro de la Caja como un modulo que puede llamarse por las otras Cajas a la que estan vinculadas;
- inicializacion de la Caja.
El usuario no interviene en las 2 primeras etapas. Controla la 3a Como es clasico en lenguajes de script, cada modulo esta compuesto por procedimientos que son utilizables en una o varias clases. Se definen unos atributos (o variables) para uno o varios modulos. Los scripts son modificables totalmente o en parte por el usuario. Los modulos del sistema son directamente accesibles. Ciertos modulos gestionan las funciones de base del robot (ALMemory para su memoria, ALMotion para las funciones de movimiento, ALLeds para los LED, etc.). El modulo ALMotion propone una interfaz (en el sentido de interfaz de programacion) para desplazar el robot. Se refieren a ella unos procedimientos de muy alto nivel, como “marcha de 1 m a la derecha adelante”, o mas bajo nivel: “hacer moverse la articulacion 'CabecCabeza' —“Cabeceo de la cabeza”— hasta 30 grados en 1,5 segundos, utilizando una interpolacion para alisar el movimiento”. El modulo ALLeds da acceso a todos los LED del robot; se puede de ese modo jugar acerca de la intensidad, el color (cuando el LED puede cambiar de color) de cada LED o de un grupo de LED (todos ellos del ojo izquierdo de una vez, por ejemplo). Hay tambien unos procedimientos de mas alto nivel, que permiten hacer girar los LED de un grupo (como los LED de las orejas, por ejemplo).
El sistema de edicion y de control de los movimientos de un robot movil de la invencion puede implantarse sobre un ordenador personal comercial que dispone de un sistema operativo clasico (Windows, Mac, Unix). El o los lenguajes de script utilizados deben implantarse en el ordenador. Si el sistema se utiliza para controlar directamente un robot ffsico, es necesario un enlace o bien por radio de tipo Wi-Fi o bien por cable. Estos enlaces pueden utilizarse igualmente para recuperar en una red local o distante unos scripts de comportamiento intercambiados con otros usuarios. El robot virtual del sistema de edicion y de controles es la imagen de los robots ffsicos a controlar por el sistema que debera estar en condiciones de interpretar y de ejecutar los controles recibidos del sistema.
Un mismo sistema de edicion y de control segun la invencion puede controlar varios robots. Ciertos de estos robots pueden tener unos aspectos ffsicos diferentes —humanoide, animal, etc.— e igualmente unas estructuras diferentes (numero de grados de libertad diferentes; robots simples que no ejecutan mas que unos movimientos y otros robots que pueden ejecutar movimientos y comportamientos). Los robots adecuados para ser controlados por el sistema de la invencion deben disponer sin embargo de las interfaces de comunicacion necesarias y de modulos de software adecuados para ejecutar los scripts de las Cajas del sistema de edicion y de control segun la invencion. Los ejemplos descritos en el presente documento anteriormente se dan a fftulo de ilustracion de modos de realizacion de la invencion. No limitan de ninguna forma el campo de la invencion que se define por las reivindicaciones que siguen.

Claims (13)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Procedimiento de edicion de un programa de control de una pluralidad de acciones de un robot movil que pertenece al grupo de las acciones de tipo comportamiento y de las acciones de tipo movimiento, perteneciendo dicha pluralidad de acciones a al menos una Trama (50, 60) principal de acciones, comprendiendo dicho procedimiento:
    - una etapa de conexion de dicha al menos una Trama principal de acciones a al menos un evento elegido en el grupo de los eventos antecedentes y de los eventos sucesores, perteneciendo dicha al menos una Trama principal de acciones a una Caja (10) de control; y
    - una etapa (20) de definicion de una Timeline de la Caja de control aplicable a dicha al menos una Trama principal de acciones, representando dicha Timeline una restriccion temporal a la que se someten las acciones del robot definidas en la Caja de control en la que se inserta dicha Timeline y realizando una sincronizacion de las acciones de la Caja de control;
    estando dicho procedimiento caracterizado porque comprende ademas una etapa de toma en consideracion de un parametro de velocidad de desarrollo de la Timeline definido por un numero de Tramas por unidad de tiempo, siendo dicho parametro o bien definido por un usuario o bien fijado a un valor dado.
  2. 2. Procedimiento de edicion segun la reivindicacion 1, caracterizado porque dicha Trama principal de acciones pertenece a al menos una Capa (30, 40) de accion, perteneciendo dicha Capa de accion a dicha Caja de control.
  3. 3. Procedimiento de edicion segun una de las reivindicaciones 1 a 2, caracterizado porque dicha Trama principal de acciones es de tipo comportamiento y se descompone en comportamientos elementales, definido cada uno por al menos una Caja de control, definiendo dichas Cajas de control dichos comportamientos elementales y estando conectadas entre sf en el seno de al menos un Diagrama (70) de flujo.
  4. 4. Procedimiento de edicion segun la reivindicacion 3, caracterizado porque se desarrollan al menos dos Tramas principales de comportamiento segun la misma Timeline y comprendiendo cada una al menos una Caja de control de la primera Trama principal de comportamiento conectada a al menos una Caja de control de la segunda Trama principal de comportamiento.
  5. 5. Procedimiento de edicion segun la reivindicacion 3, caracterizado porque al menos una de dichas Cajas de control comprende el menos una segunda Caja de control.
  6. 6. Procedimiento de edicion segun la reivindicacion 3, caracterizado porque al menos una de las Cajas de control comprende un script (90) directamente interpretable por el robot, siendo dicho script modificable directamente por el usuario.
  7. 7. Procedimiento de edicion segun la reivindicacion 6, caracterizado porque al menos una salida de al menos una primera Caja de control se une a al menos una entrada de al menos una segunda Caja de control mediante un conector que transporta una senal representativa de un evento.
  8. 8. Procedimiento de edicion segun una de las reivindicaciones 1 a 7, caracterizado porque el robot movil comprende una cabeza y hasta cuatro miembros.
  9. 9. Procedimiento de edicion segun la reivindicacion 8, caracterizado porque una de dichas acciones es un movimiento de al menos una parte del robot elegida entre el grupo que comprende al menos la cabeza y hasta cuatro miembros y definido por un giro de al menos un motor.
  10. 10. Procedimiento de edicion segun la reivindicacion 9, caracterizado porque el al menos un giro del al menos un motor se define por una accion del usuario sobre un cursor posicionado sobre una pantalla de movimiento (80) que representa la parte del robot a poner en movimiento.
  11. 11. Programa de ordenador que comprende unas instrucciones de codigo de programa configurado para ejecutar el procedimiento segun una de las reivindicaciones 1 a 10 cuando el programa se ejecuta en un ordenador, estando adaptado dicho programa para la edicion en un lenguaje interpretable o compilable de una pluralidad de acciones de un robot movil que pertenece al grupo de los comportamientos y de los movimientos.
  12. 12. Programa de ordenador que comprende unas instrucciones de codigo de programa, ejecutables dichas instrucciones por al menos un ordenador para simular una pluralidad de acciones de un robot movil o mediante un robot movil para controlar una pluralidad de acciones de dicho robot movil, perteneciendo dichas acciones al grupo de las acciones de tipo comportamiento y de las acciones de tipo movimiento, perteneciendo dichas acciones a al menos una Trama (50, 60) principal de acciones, generado dicho programa de ordenador por un programa de ordenador en lenguaje interpretable o compilable segun la reivindicacion 11.
  13. 13. Robot movil configurado para ejecutar un programa de ordenador segun la reivindicacion 12.
ES10723567.3T 2009-05-26 2010-05-25 Sistema y procedimiento para editar y controlar los comportamientos de un robot móvil Active ES2628195T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0953434A FR2946160B1 (fr) 2009-05-26 2009-05-26 Systeme et procede pour editer et commander des comportements d'un robot mobile.
FR0953434 2009-05-26
PCT/EP2010/057111 WO2010136427A1 (fr) 2009-05-26 2010-05-25 Systeme et procede pour editer et commander des comportements d'un robot mobile

Publications (1)

Publication Number Publication Date
ES2628195T3 true ES2628195T3 (es) 2017-08-02

Family

ID=41284197

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10723567.3T Active ES2628195T3 (es) 2009-05-26 2010-05-25 Sistema y procedimiento para editar y controlar los comportamientos de un robot móvil

Country Status (8)

Country Link
US (1) US9333651B2 (es)
EP (1) EP2435216B8 (es)
JP (1) JP6549815B2 (es)
CN (1) CN102448678B (es)
DK (1) DK2435216T3 (es)
ES (1) ES2628195T3 (es)
FR (1) FR2946160B1 (es)
WO (1) WO2010136427A1 (es)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2962048A1 (fr) 2010-07-02 2012-01-06 Aldebaran Robotics S A Robot humanoide joueur, methode et systeme d'utilisation dudit robot
FR2963132A1 (fr) 2010-07-23 2012-01-27 Aldebaran Robotics Robot humanoide dote d'une interface de dialogue naturel, methode d'utilisation et de programmation de ladite interface
FR2969026B1 (fr) 2010-12-17 2013-02-01 Aldebaran Robotics Robot humanoide dote d'un gestionnaire de ses ressources physiques et virtuelles, procedes d'utilisation et de programmation
US8843235B2 (en) * 2012-01-13 2014-09-23 Toyota Motor Engineering & Manufacturing North America, Inc. Robots, computer program products, and methods for trajectory plan optimization
FR2991222B1 (fr) * 2012-06-01 2015-02-27 Aldebaran Robotics Systeme et procede pour generer des comportements contextuels d'un robot mobile executes en temps reel
JP5582427B2 (ja) * 2012-12-18 2014-09-03 株式会社安川電機 教示データ作成装置、ロボットシステム、及び教示データ作成方法
JP5716769B2 (ja) * 2013-02-21 2015-05-13 株式会社安川電機 ロボットシミュレータ、ロボット教示装置およびロボット教示方法
US20150314454A1 (en) * 2013-03-15 2015-11-05 JIBO, Inc. Apparatus and methods for providing a persistent companion device
US20170206064A1 (en) * 2013-03-15 2017-07-20 JIBO, Inc. Persistent companion device configuration and deployment platform
KR101323148B1 (ko) 2013-04-19 2013-10-30 한성대학교 산학협력단 Ucr 융합 컨텐츠 에디터 장치
JP2015016531A (ja) * 2013-07-12 2015-01-29 株式会社ダイヘン 操作装置
JP6144845B2 (ja) * 2014-02-05 2017-06-07 アーベーベー シュヴァイツ アクツィエンゲゼルシャフト ショーを協調的に演じている複数のロボットの動きを定義するためのシステム及び方法
US9841749B2 (en) 2014-04-01 2017-12-12 Bot & Dolly, Llc Runtime controller for robotic manufacturing system
EP2927771B1 (en) * 2014-04-03 2024-01-31 Dronisos Flying drone trajectory synchronization
EP2933065A1 (en) 2014-04-17 2015-10-21 Aldebaran Robotics Humanoid robot with an autonomous life capability
EP2933069B1 (en) 2014-04-17 2019-07-03 Softbank Robotics Europe Omnidirectional wheeled humanoid robot based on a linear predictive position and velocity controller
EP2933068B1 (en) 2014-04-17 2021-08-18 Aldebaran Robotics Omnidirectional wheeled humanoid robot based on a linear predictive position and velocity controller
WO2016011159A1 (en) * 2014-07-15 2016-01-21 JIBO, Inc. Apparatus and methods for providing a persistent companion device
CN104858852B (zh) * 2015-05-05 2016-08-17 上海交通大学 类人机器人实时模仿人体上肢动作的优化与约束方法
US9707680B1 (en) 2015-05-28 2017-07-18 X Development Llc Suggesting, selecting, and applying task-level movement parameters to implementation of robot motion primitives
WO2016206647A1 (zh) * 2015-06-26 2016-12-29 北京贝虎机器人技术有限公司 用于控制机器装置产生动作的系统
JP2019521449A (ja) * 2016-03-31 2019-07-25 ジボ インコーポレイテッド 永続的コンパニオンデバイス構成及び配備プラットフォーム
WO2017197018A2 (en) * 2016-05-10 2017-11-16 Trustees Of Tufts College Systems and methods enabling online one-shot learning and generalization by intelligent systems of task-relevant features and transfer to a cohort of intelligent systems
CN106647354A (zh) * 2016-10-31 2017-05-10 遨博(北京)智能科技有限公司 一种控制方法、装置及系统
IL250605B (en) * 2017-02-14 2021-02-28 Brillianetor Ltd System and method for operating an artificial social network
WO2018188001A1 (zh) * 2017-04-12 2018-10-18 曾华均 无人机的飞行动作编辑及编队控制系统和控制方法
JP6549654B2 (ja) * 2017-08-03 2019-07-24 ファナック株式会社 ロボットシステムのシミュレーション装置およびシミュレーション方法
WO2019097793A1 (ja) * 2017-11-16 2019-05-23 ソニー株式会社 情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法
CN108268255A (zh) * 2018-02-11 2018-07-10 遨博(北京)智能科技有限公司 用于编程机器人的方法和装置
CN110297697B (zh) * 2018-03-21 2022-02-18 北京猎户星空科技有限公司 机器人动作序列生成方法和装置
CN109408042A (zh) * 2018-10-10 2019-03-01 高新兴科技集团股份有限公司 机器人可视化脚本配置方法、装置及计算机存储介质
KR20200102295A (ko) * 2019-02-21 2020-08-31 삼성전자주식회사 멀티 태스크 관리 방법 및 이를 위한 전자 장치
JP7251224B2 (ja) * 2019-03-11 2023-04-04 セイコーエプソン株式会社 制御装置およびロボットシステム
JP6717401B1 (ja) 2019-04-01 2020-07-01 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラミング支援方法
CN110053046B (zh) * 2019-04-09 2022-05-03 江门市蚂蚁机器人有限公司 基于自定义事件的机器人控制方法及其系统
CN110253569B (zh) * 2019-05-22 2021-07-20 深圳镁伽科技有限公司 用于控制机器人运动的运动控制部件、系统以及方法
US11883963B2 (en) * 2019-06-03 2024-01-30 Cushybots Corporation Robotic platform for interactive play using a telepresence robot surrogate
US11288883B2 (en) 2019-07-23 2022-03-29 Toyota Research Institute, Inc. Autonomous task performance based on visual embeddings
JP2021041511A (ja) * 2019-09-13 2021-03-18 株式会社デンソーウェーブ ロボットハンドの動作教示装置
CN111113414B (zh) * 2019-12-19 2022-08-30 长安大学 一种基于屏幕标识的机器人三维空间尺度提示方法及系统
CN111390906B (zh) * 2020-03-20 2021-11-19 深圳市安泽智能机器人有限公司 一种机器人系统、机器人及存储介质
CN111791232B (zh) * 2020-06-03 2021-02-05 中南民族大学 一种基于时间硬同步的机器人底盘控制系统及方法
WO2021260898A1 (ja) * 2020-06-25 2021-12-30 株式会社日立ハイテク ロボット教示装置及び作業教示方法
CN112621759B (zh) * 2020-12-28 2021-12-24 燕山大学 基于事件触发机制的遥操作系统分数阶滑模同步控制方法
CN113386112A (zh) * 2021-07-29 2021-09-14 厦门凤凰创壹软件有限公司 一种可控制多种品牌三维虚拟工业机器人的示教器
CN117251152A (zh) * 2022-12-12 2023-12-19 北京小米机器人技术有限公司 机器人图形化编程方法和装置、移动终端、存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0496785B1 (en) * 1989-10-17 1997-03-26 The Perkin-Elmer Corporation Robotic interface
JP3026276B2 (ja) * 1992-05-22 2000-03-27 本田技研工業株式会社 脚式移動ロボットの非常停止制御装置
NL1000679C2 (nl) * 1995-06-28 1996-12-31 Arie Van Wieringen Video Film Bewegingseditor/samensteleenheid.
JP2001353678A (ja) * 2000-06-12 2001-12-25 Sony Corp オーサリング・システム及びオーサリング方法、並びに記憶媒体
JP4765155B2 (ja) * 2000-09-28 2011-09-07 ソニー株式会社 オーサリング・システム及びオーサリング方法、並びに記憶媒体
JP4670136B2 (ja) * 2000-10-11 2011-04-13 ソニー株式会社 オーサリング・システム及びオーサリング方法、並びに記憶媒体
US7137103B2 (en) * 2001-03-08 2006-11-14 International Business Machines Corporation Coverage analysis of message flows
JP3614824B2 (ja) 2002-03-18 2005-01-26 ソニー株式会社 脚式移動ロボットのための動作編集装置及び動作編集方法
EP1669172B1 (en) * 2003-08-12 2013-10-02 Advanced Telecommunications Research Institute International Communication robot control system
US20070150102A1 (en) * 2005-12-09 2007-06-28 Joong Ki Park Method of supporting robot application programming and programming tool for the same
JP2008254074A (ja) * 2007-03-30 2008-10-23 Sega Corp ロボットのモーション編集装置及びそのプログラム
JP5181541B2 (ja) * 2007-06-15 2013-04-10 富士通株式会社 ロボットシステム、エディタ端末、およびエディタプログラム
FR2918477A1 (fr) * 2007-07-04 2009-01-09 Aldebaran Robotics Soc Par Act Procede d'edition de mouvements d'un robot
WO2009047225A1 (en) * 2007-10-11 2009-04-16 Lego A/S A toy construction system
US8458667B2 (en) * 2008-01-30 2013-06-04 National Instruments Corporation Debugging a statechart for a real time target

Also Published As

Publication number Publication date
JP6549815B2 (ja) 2019-07-24
CN102448678A (zh) 2012-05-09
JP2012528015A (ja) 2012-11-12
FR2946160A1 (fr) 2010-12-03
DK2435216T3 (en) 2017-07-03
WO2010136427A1 (fr) 2010-12-02
FR2946160B1 (fr) 2014-05-09
US20120136481A1 (en) 2012-05-31
EP2435216B1 (fr) 2017-03-29
EP2435216A1 (fr) 2012-04-04
EP2435216B8 (fr) 2017-08-30
US9333651B2 (en) 2016-05-10
CN102448678B (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
ES2628195T3 (es) Sistema y procedimiento para editar y controlar los comportamientos de un robot móvil
US11494607B1 (en) Artificially intelligent systems, devices, and methods for learning and/or using an avatar's circumstances for autonomous avatar operation
Moravec Mind children: The future of robot and human intelligence
Fairchild et al. ROS robotics by example
KR102114917B1 (ko) 주행 로봇을 이용한 코딩 교육 제공 시스템
Bravo et al. A review of intuitive robot programming environments for educational purposes
Marcotte et al. Behavior trees for modelling artificial intelligence in games: A tutorial
JP7471428B2 (ja) 製造又は産業環境における協調ロボットとの相互作用のために仮想/拡張現実を使用するためのシステム、方法及びコンピュータ読み取り可能媒体
WO2008008790A2 (en) Robots with autonomous behavior
Dragule et al. Languages for specifying missions of robotic applications
Bakała et al. Designing child-robot interaction with Robotito
Thai Exploring robotics with ROBOTIS Systems
Tejera et al. Robotito: programming robots from preschool to undergraduate school level
Lee et al. Teaching embedded systems the Berkeley way
Ramli et al. An overview of simulation software for non-experts to perform multi-robot experiments
Miskam et al. Programming platform for NAO robot in cognitive interaction applications
Rizzo et al. UAPPI: A platform for extending app inventor towards the worlds of IoT and machine learning
JP2001157979A (ja) ロボット装置及びその制御方法
Ayala et al. An Initial Study of BILOID Humanoid Robot & Beyond
JP4296702B2 (ja) 動作表出装置及び玩具
TWI475483B (zh) 自動裝置的程式開發方法
Johns et al. Microsoft Robotics Developer Studio
Von Mammen et al. Modeling and Understanding the Human Body with SwarmScript
Siebers et al. Proposal of a design pattern for embedding the concept of social forces in human centric simulation models
Lacerda et al. Petri net based supervisory control of a social robot with LTL specifications