ES2659053T3 - Robot con articulaciones de rigidez variable y procedimiento de cálculo de dicha rigidez optimizada - Google Patents

Robot con articulaciones de rigidez variable y procedimiento de cálculo de dicha rigidez optimizada Download PDF

Info

Publication number
ES2659053T3
ES2659053T3 ES12741354.0T ES12741354T ES2659053T3 ES 2659053 T3 ES2659053 T3 ES 2659053T3 ES 12741354 T ES12741354 T ES 12741354T ES 2659053 T3 ES2659053 T3 ES 2659053T3
Authority
ES
Spain
Prior art keywords
robot
joint
torque
forces
articulation
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
ES12741354.0T
Other languages
English (en)
Inventor
David Gouaillier
Cyrille COLLETTE
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 ES2659053T3 publication Critical patent/ES2659053T3/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D57/00Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
    • B62D57/02Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
    • B62D57/032Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/041Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a variable is automatically adjusted to optimise the performance
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4062Monitoring servoloop, e.g. overload of servomotor, loss of feedback or reference
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39261Calculate driving torque from dynamic model, computed torque method variant

Abstract

Robot (100) dotado de capacidades de desplazamiento en al menos una cadena (110) articulada que comprende, al menos, un sensor (130) de contacto del extremo de dicha cadena con la superficie (120) de desplazamiento, comprendiendo dicha cadena al menos una articulación (140), controlada dicha articulación por un motor (210) eléctrico controlado por una instrucción de posición y/o velocidad y por medios de limitación de la corriente y/o del par aplicado por dicho motor a dicha articulación, caracterizándose dicho robot porque comprende también: a) una primera lógica (310) de cálculo del par articular como siendo solución de una ecuación que modela el equilibrio dinámico del robot entre, por una parte, la suma de la diferencia de las fuerzas inerciales debidas a la aceleración angular de la articulación y de la aceleración de la gravedad y del efecto de las fuerzas de Coriolis y centrífuga y, por otra parte, la suma del par y de las fuerzas de contacto, de fricción y de perturbación, aplicándose dichos par y fuerza a dicha articulación, una parte de los efectos de las fuerzas inerciales debidas a la aceleración angular de la articulación, de las fuerzas de Coriolis y centrífuga y de las fuerzas de fricción modelándose por un desplazamiento, b) una segunda lógica (320) de cálculo configurada para definir dicha limitación de la corriente y/o del par aplicado, a partir del par articular calculado por dicha primera lógica de cálculo para dicha articulación.

Description

imagen1
DESCRIPCIÓN
Robot con articulaciones de rigidez variable y procedimiento de cálculo de dicha rigidez optimizada
La presente invención pertenece al ámbito de los robots articulados que pueden desplazarse en una superficie. Más particularmente, se aplica al control de la rigidez de las articulaciones de dicho robot, constituyendo ésta a la vez un 5 factor importante de la ergonomía de interacción con el robot y un factor limitante de la duración y de la fiabilidad de su uso. Un ejemplo de robot articulado es un robot humanoide, es decir, que posee ciertos atributos de la apariencia y de las funcionalidades del ser humano: una cabeza, un tronco, dos brazos, dos manos, dos piernas, dos pies... Más allá de la apariencia, las funciones que un robot humanoide es capaz de realizar dependerán de su capacidad de efectuar movimientos, de hablar y de "razonar". Los robots humanoides son capaces de caminar, de hacer 10 gestos, con los miembros o con la cabeza. La complejidad de los gestos que son capaces de efectuar aumenta sin descanso. Unos robots de este tipo tales como NAO™, desarrollado y comercializado por la solicitante, pueden poseer decenas de articulaciones cuyos movimientos se accionan por motores eléctricos. La lógica de controlmando de dichos motores determina a la vez la rigidez de las articulaciones y el consumo eléctrico (y, por lo tanto, la evolución de la temperatura) del robot. Por lo tanto, es uno de los elementos determinantes para la seguridad del
15 robot (impacto en la estabilidad), la duración posible de su uso (apagado obligatorio a partir de una temperatura límite) y la experiencia percibida por un usuario en su interacción con el robot, demasiada rigidez de las cadenas articulares separando el robot de un ideal de tipo humanoide. Una problemática del mismo tipo también está presente para otros tipos de robots no humanoides, tales como robots animales o, más generalmente, robots que comprenden cadenas articuladas.
20 La lógica de control-mando puede usar instrucciones de posición de la articulación (generalmente en ángulo), de velocidad de la articulación (derivada del ángulo) y/o de par. Estas lógicas se controlan por sensores y pueden o pueden no comprender bucles de retroalimentación negativa que permiten guiar la convergencia hacia la instrucción. El control-mando que utiliza una instrucción de par o de corriente es el más costoso y el menos común.
En efecto, en este caso es necesario utilizar un sensor preciso del valor de corriente, lo que será costoso, en 25 particular, en el caso en el que el número de articulaciones es muy elevado.
Los robots de cadena articulada pueden tener una base fija, como, por ejemplo, los brazos articulados industriales, en particular, para realizar tareas de montaje. Se trata, entonces, de objetos cuyo precio de coste por unidad puede llegar a decenas o centenas de miles de euros y cuyo número de articulaciones permanece bajo. En ese caso, una lógica de control-mando por el par puede adaptarse en la medida en la que el precio de coste por unidad no es la
30 consideración principal.
En el caso de los robots de cadena articulada con base móvil, es decir, no fijada al suelo, categoría a la que pertenecen los robots humanoides, siendo el número de articulaciones más elevado y la restricción de precio de coste muy importante, se usa generalmente una lógica de control-mando de las articulaciones por la posición y/o la velocidad angular que es mucho menos costosa para un nivel de precisión dado. Sin embargo, esta lógica de 35 control-mando tiene varios inconvenientes importantes, en particular, el hecho de que, si un obstáculo impide que el motor alcance la restricción definida por una posición de destino, el motor seguirá queriendo alcanzar la posición, inalcanzable en realidad y, por lo tanto, para esto consumir electricidad y elevar la temperatura de la articulación y del conjunto hasta provocar la puesta en reposo del robot para evitar su deterioro. Este problema es particularmente preocupante porque es suficiente con un simple defecto de horizontalidad de los pies del robot en una estación
40 vertical para desencadenar el fenómeno de sobrecalentamiento.
Para hacer frente a este tipo de problemas, se conoce a partir de versiones anteriores de NAO™ definir un parámetro de rigidez para cada articulación que permite limitar el par aplicado a ésta a un nivel sustancialmente inferior a los límites físicos definidos por el fabricante, para reducir las ocurrencias de puesta en seguridad. No obstante, esta solución no permite evitar el consumo excesivo de energía, en particular, cuando una de las cadenas
45 del robot encuentra un obstáculo en su trayectoria. En efecto, una limitación uniforme, necesariamente fijada a un nivel relativamente elevado para evitar paradas demasiado frecuentes, no permitirá una interrupción precoz del consumo de las articulaciones afectadas.
Se conoce igualmente, en particular a partir de la solicitud de patente US2008/258670, calcular un valor de par que se aplicará a una articulación y convertirlo en instrucción de velocidad angular. No obstante, se ignoran en esta
50 realización las fuerzas de reacción en los puntos de contactos del robot con su entorno, siendo dichas fuerzas el origen principal de las aplicaciones de pares demasiado elevados que generan sobrecalentamientos.
El documento EP2347868A1 muestra un robot humanoide que calcula compensaciones para las posiciones de las juntas y para el par de las juntas con el fin de estabilizar su marcha. La presente invención resuelve este problema proporcionando medios para hacer variar la rigidez de las articulaciones de las cadenas del robot en función de las
55 fuerzas aplicadas en dicho robot a los puntos de contacto con su entorno.
A tal efecto, la invención desvela un robot según la reivindicación 1. Ventajosamente, dicha desviación varía según la postura del robot.
imagen2
Ventajosamente, el efecto de la aceleración de la gravedad se calcula a partir de una matriz de coeficientes de inercia que depende de la configuración del robot y se aplica a los ángulos articulares y del vector de gravedad determinado por combinación de mediciones de una unidad inercial del robot.
Ventajosamente, para el cálculo del vector de gravedad se opera, además, una eliminación de duda por 5 determinación de la orientación en el espacio de una cadena central del robot por resolución de la posición de efectores solidarios con dicha cadena.
Ventajosamente, los puntos de aplicación de las fuerzas de contacto tenidas en cuenta en el modelo de equilibrio dinámico del robot se determinan por generación de una primera lista de efectores que satisfacen un criterio seleccionado en un grupo de criterios que comprende una lista de estados on/off de sensores de contacto colocados
10 en dichos efectores, una lista de umbrales de distancia mínima con respecto al plano virtual del suelo de dichos efectores y cualquier combinación de dichas listas, determinándose dichos criterios sustancialmente por la morfología del robot.
Ventajosamente, los efectores de la primera lista se filtran en una segunda lista por comparación de la postura actual del robot con posturas tipo almacenadas en los datos de configuración del robot, dichas posturas tipo determinando
15 una lista tipo de efectores, dicha segunda lista comprendiendo solamente los efectores de la lista que corresponde a la postura tipo retenida como la más cercana de la postura actual del robot según un criterio de similitud, si existe, y solamente esos.
Ventajosamente, las fuerzas de contacto con los puntos de aplicación se determinan por búsqueda de una solución sustancialmente óptima a la ecuación de equilibrio entre la suma de dichas fuerzas de contacto y el peso del robot y, 20 del componente vertical de las fuerzas de perturbación.
Ventajosamente, las fuerzas de perturbación se desatienden.
La invención divulga igualmente un procedimiento según la reivindicación 10. La invención divulga finalmente un programa de ordenador según la reivindicación 12. La solución de la invención permite reducir de manera muy significativa el consumo excesivo de energía y el sobrecalentamiento. En las realizaciones implementadas, se
25 alcanza casi una división por dos de la elevación de temperatura debido a un funcionamiento de los motores de articulación con un par demasiado elevado. Para articulaciones particularmente solicitadas, tales como el tobillo, la duración de funcionamiento antes de puesta en seguridad puede multiplicarse por cuatro.
El consumo de energía y la vida útil totales del robot por lo tanto se mejoran enormemente.
Además, los algoritmos usados, por otro lado, no son exigentes de recursos de cálculo (menos del 3 % en un 30 procesador de tipo Geode™ de la empresa AMD (32 bits, 500 MHz).
Para terminar, la introducción de un ajuste de la rigidez de las articulaciones, que permanece desembragable, permite adaptarse a las preferencias de los usuarios e introducir variantes según los tipos de postura del robot, lo que permite enriquecer las experiencias de interacción de los usuarios con los robots.
La invención se comprenderá mejor y sus diferentes características y ventajas resultarán evidentes tras la 35 descripción que sigue de diversos ejemplos de realización y de sus figuras adjuntas de las cuales:
-La figura 1 ilustra un robot simbolizado por cadenas articuladas; -La figura 2 ilustra el principio general del control-mando de un motor de articulación de un robot según la técnica anterior; -La figura 3 ilustra un organigrama general de los tratamientos de control-mando de un motor de articulación de 40 un robot según una forma de realización de la invención;
-Las figuras 4a y 4b representan la evolución en el curso del tiempo de las temperaturas de las articulaciones de la pierna derecha de un robot, respectivamente según la técnica anterior y según una forma de realización de la invención;
-Las figuras 5a y 5b representan la evolución en el curso del tiempo de las temperaturas de las articulaciones de 45 la pierna izquierda de un robot, respectivamente según la técnica anterior y según una forma de realización de la invención; -La figura 6 es un organigrama de ciertas etapas de los tratamientos de control-mando de un motor de articulación de un robot según una forma de realización de la invención; -La figura 7 es una primera vista detallada de una etapa del organigrama de la figura 6; 50 -Las figuras 8a a 8f representan un robot en tres posturas, con determinación de los puntos de contacto según
una forma de realización de la invención; -La figura 9 es una segunda vista detallada de una etapa del organigrama de la figura 6; -La figura 10 es un esquema de una arquitectura física y funcional que permite la implementación de la
invención en varias de sus formas de realización.
55 La figura 1 ilustra un robot simbolizado por cadenas articuladas.
imagen3
El robot 100 del ejemplo ilustrado consta de cinco caderas articuladas, una cadena 110 correspondiendo a la pierna derecha, compuesta de varios segmentos (muslo, pierna, pie). El robot es apto para desplazarse en una superficie
120. Comprende, al menos, una articulación 140, en este ejemplo, el tobillo. Un robot tal como NAO™ ya citado consta de 25 articulaciones, este ejemplo de realización no siendo de ninguna manera limitante.
5 El robot constará por regla general de sensores 130 de contacto del pie con la superficie 120. Estos sensores pueden ser, por ejemplo, FSR (Sensores de presión en el suelo). Estos FSR son particularmente útiles para la implementación de la presente invención. Se destinan en este ámbito a detectar el contacto de cada uno de los pies con el suelo o cualquier otra superficie de progresión del robot. Se puede utilizar para este propósito, por ejemplo, sensores de la marca FlexiForce™ de la empresa Tekscan™ que se constituyen de una cinta con al menos dos
10 capas de material flexible piezo-resistivo. La resistencia eléctrica de la cinta disminuye en función de la fuerza de presión vertical aplicada a la superficie sobre la que se dispone la cinta. La medición de la corriente permite determinar la fuerza de presión después de la calibración. Varios sensores, por ejemplo, cuatro, se prevén ventajosamente sobre la suela de cada pie.
La figura 2 ilustra el principio general del control-mando de un motor de articulación de un robot según la técnica
15 anterior. Un robot tal como NAO™ comprende aproximadamente dos docenas de tarjetas electrónicas de control de sensores y de accionadores que controlan las articulaciones. Una articulación tiene normalmente al menos dos grados de libertad y, por lo tanto, dos motores 210. Cada motor se controla en ángulo por la variable de control q. La articulación consta igualmente de varios sensores 220 de posición, en particular, MRE (Magnetic Rotary Encoder).
20 La tarjeta 230 electrónica de control consta de un microcontrolador comercial. Esto puede ser, por ejemplo, un DSPIC™ de la empresa Microchip. Es un MCU de 16 bits acoplado a un DSP. Este MCU tiene un ciclo de servomecanismo en bucle de un ms. La tarjeta 240 ejecuta las funciones de alto nivel que permiten al robot realizar las misiones que se le asignan. El procesador de la tarjeta puede ser un procesador x86 comercial. Se seleccionará de manera privilegiada un
25 procesador de bajo consumo tal como el Geode™ de la empresa AMD (32 bits, 500 MHz). La tarjeta consta igualmente de un conjunto de memorias RAM y flash. Esta tarjeta también se encarga de las comunicaciones del robot con el exterior (servidor de comportamientos, otros robots...), normalmente sobre una capa de transmisión WiFi, WiMax, posiblemente en una red pública de comunicaciones móviles de datos con protocolos estándar posiblemente encapsulados en una VPN. El procesador se controla normalmente por un SO estándar, lo que permite
30 utilizar los lenguajes de alto nivel convencionales (C, C++, Python, ...) o los lenguajes específicos de inteligencia artificial como URBI (lenguaje de programación especializado en la robótica) para la programación de las funciones de alto nivel.
Tradicionalmente, un motor eléctrico puede controlarse por una instrucción dada por ángulo o posición, q, por imagen4
velocidad angular, , y/o en par, τ, el control en par reemplazándose más a menudo por un control de corriente. En
35 efecto, se tiene la relación canónica: τ = kcI, siendo I la intensidad de alimentación del motor de corriente eléctrica, siendo kc una constante, al menos en ciertos rangos de funcionamiento. Es mucho más fácil medir una corriente que medir un par, siendo los sensores de par muy sensibles a derivas. No obstante, incluso el control de corriente está poco extendido en los robots que tienen un gran número de motores. En efecto, el control de corriente necesita ciclos de servomecanismo en bucle muy rápido (del orden de diez microsegundos) y un sensor de corriente apto
40 para determinar el sentido de dicha corriente, incompatibles con tarjetas electrónicas de control a bajo coste.
Un inconveniente de este enfoque es que una instrucción de posición que no se puede ejecutar a causa de un obstáculo no detectado producirá un par aplicado al motor muy elevado, por lo tanto, una corriente elevada, de donde un calentamiento muy significativo y un consumo excesivo eléctrico, incluso una ruptura del motor y/o de la articulación. Estos inconvenientes reducen de manera importante la duración de funcionamiento posible de un robot.
45 Para superar este inconveniente, se pueden introducir medidas de limitación del par aplicado a la articulación. Estas medidas pueden ser mecánicas (por ejemplo, ruedas con engranajes desembragables) o softwares, introduciendo el circuito de control del motor un coeficiente de rigidez que tiene el papel de un embrague y que puede tomar un valor comprendido entre 0,0 y 1,0. Cuando este coeficiente de rigidez es igual a 1, el motor es capaz de desarrollar el par máximo autorizado. Este puede fijarse ventajosamente en un valor sustancialmente inferior al valor indicado por el
50 proveedor para evitar el sobrecalentamiento. Por ejemplo, en el caso de NAO donde los motores de las articulaciones desarrollan un par máximo del orden de 5 a 6 Nm, el par autorizado con rigidez máxima es de 3,2 Nm. Cuando este coeficiente es igual a cero, el motor está desembragado y la articulación está en desviación libre. En consecuencia, el robot cae... El procedimiento de puesta en seguridad prevé que todos los coeficientes de rigidez o, algunos de entre ellos solamente, pasen de 1 a 0 cuando la temperatura local o total sobrepase un valor umbral. El
55 robot, por lo tanto, ya no es utilizable.
La figura 3 ilustra un organigrama general de los tratamientos de control-mando de un motor de articulación de un robot según una forma de realización de la invención. Según el principio de la invención, se trata de calcular un valor de los pares que se aplicará a cada articulación para hacer entonces variar el coeficiente de rigidez de dichas articulaciones para asegurar un equilibrio del robot.
60 Un módulo, 310, calcula los pares articulares a partir de un modelo descriptivo de la dinámica del robot que se detallará a continuación en la descripción en relación con las figuras 6 y 7. Se alimenta, por una parte, de datos permanentes de configuración del robot, 330 y, por otra parte, de datos instantáneos provenientes de una unidad inercial, 340, de sensores articulares, 350 y de sensores de contacto o procedimientos de mediciones de distancia al suelo, 360. Los valores de par se proporcionan entonces a un módulo, 320, de cálculo de los coeficientes de rigidez articulares.
imagen5
5 Los datos de configuraciones del robot, 330, se constituyen esencialmente, para implementar la presente invención, por una matriz M de inercia de todos los cuerpos del robot en su propia referencia. Los cuerpos del robot son sus diferentes constituyentes físicos: la cabeza, el cuello, el torso (cadena central), los brazos, antebrazos y manos (cadenas laterales superiores), los muslos, piernas y pies (cadenas laterales inferiores). Cada uno de los cuerpos tiene una matriz de masa M de dimensión (6,6) en la que se introduce la masa del cuerpo y sus momentos de
10 inercia. Siendo los momentos de inercia invariantes, la matriz M puede calcularse de antemano, en la inicialización del robot en función de la configuración del robot. Una de las particularidades de NAO es, en efecto, autorizar un cambio de los constituyentes físicos del robot, calculándose los datos de configuración en cada inicialización.
De este modo, se tiene un conjunto de matrices M, cada matriz se almacena en un módulo ALMotion (ver a 15 continuación, en la descripción, los comentarios en relación con la figura 10). Una matriz M tiene la siguiente forma:
imagen6
Se ha propuesto: -mi = masa del cuerpo i; . imagen7= matriz de inercia del cuerpo i expresada en su centro de masa y en la propia referencia del cuerpo;
imagen8
20
- I3 = matriz de identidad 3x3
En el caso de un brazo de robot que tiene una base fija, el cuerpo raíz se fija generalmente al suelo. En el caso de un robot de base voladora (no fijada al suelo), el cuerpo raíz no está fijo. Es libre y se determina por el sistema.
La unidad inercial, 340, normalmente se constituye de un giroscopio y de un acelerómetro. Proporciona sus
25 mediciones al módulo 310. Los sensores articulares, 350, normalmente son MRE, como se indicó anteriormente. Proporcionan al módulo 310 los valores de ángulos articulares. Los sensores de contacto, 360, permiten determinar las posiciones de puntos característicos, denominados generalmente efectores, en relación con un marco de referencia dado, el marco de referencia terrestre o la superficie
30 de desplazamiento (el suelo, por ejemplo). Los FSR implantados bajo las suelas de los pies son sensores de contacto. Se puede imaginar implantar FSR o sensores de contacto de otro tipo, en otras partes de las cadenas articuladas del robot, por ejemplo, las nalgas, los codos, la espalda... Los sensores físicos de contacto, sin embargo, son de una fiabilidad relativa. Se puede conseguir el mismo resultado (determinar si hay contacto con la superficie del suelo), conociendo todos los valores de ángulos articulares y la posición y la orientación del cuerpo raíz en el
35 espacio. La posición y la orientación del cuerpo raíz en el espacio se determinan por los FSR y la unidad inercial. A partir de los valores de ángulos articulares y de la posición y de la orientación del cuerpo raíz en el espacio, es posible calcular, por geometría directa, la posición de todos los cuerpos del robot en el espacio.
El módulo 320 se configura para calcular los coeficientes de rigidez de cada una de las articulaciones. Los pares de cada una de las articulaciones se proporcionan en la entrada del módulo 320. El módulo efectúa la división del par
40 de cada una de las articulaciones por el par máximo para deducir de ello los valores de los coeficientes de rigidez que se aplicarán a cada una de las articulaciones. Según los efectos que se tienen en cuenta en el modelo de descripción dinámica del robot que determina las salidas del módulo 310, se puede prever en el módulo 320 añadir un desplazamiento al coeficiente de rigidez. Este desplazamiento puede ser una constante, un conjunto de valores que dependen de tipos de posturas o contextos de uso del robot, pudiendo dichos valores tabularse o, una variable
45 para la cual se define una ley de evolución.
imagen9
Las figuras 4a y 4b representan la evolución en el curso del tiempo de las temperaturas de las articulaciones de la pierna derecha de un robot, respectivamente según la técnica anterior y según una forma de realización de la invención. Los experimentos se realizaron con robots físicamente idénticos, la única diferencia entre los experimentos trazados
5 respectivamente por la figura 4a y por la figura 4b siendo que la configuración del robot no comprende, en el primer caso, los medios de implementación de la invención, mientras que, en el segundo caso, los comprende. En los dos casos, el robot se ha colocado en una posición de inicialización vertical (PoseInit). En cada una de las figuras 4a y 4b se representa la evolución de la temperatura de cada uno de los motores articulares de la cadena articular inferior derecha, sin y con implementación de la invención:
10 -Las curvas RHipRollTemp representan las evoluciones de la temperatura de la articulación oscilante de la cadera derecha; -Las curvas RHipPitchTemp representan las evoluciones de la temperatura de la articulación de cabeceo de la cadera derecha; -Las curvas RKneePitchTemp representan las evoluciones de la temperatura de la articulación de cabeceo de la 15 rodilla derecha; -Las curvas RAnkleRollTemp representan las evoluciones de la temperatura de la articulación oscilante del tobillo derecho; -Las curvas RAnklePitchTemp representan las evoluciones de la temperatura de la articulación de cabeceo del tobillo derecho.
20 Cabe señalar particularmente la diferencia muy significativa de las temperaturas al final del experimento (15 minutos aproximadamente) en la articulación de cabeceo de la cadera derecha, que alcanza los 60 °C en el primer caso y 42 °C en el segundo caso. El aumento global de temperatura de la pierna derecha es de 50 °C en el primer caso y de 28 °C en el segundo caso.
Las figuras 5a y 5b representan la evolución en el curso del tiempo de las temperaturas de las articulaciones de la
25 pierna izquierda de un robot, respectivamente según la técnica anterior y según una forma de realización de la invención. Las condiciones del experimento son idénticas al trazado por las figuras 4a y 4b. Los resultados relativos a la pierna izquierda son aún más ventajosos, en particular, en lo que se refiere a la articulación de cabeceo del tobillo, cuya temperatura alcanza los 80 °C en el primer caso y 48 °C en el segundo caso, el aumento global de temperatura de la
30 pierna izquierda siendo de 109 °C en el primer caso y de 42 °C en el segundo caso. Lograr una temperatura de 80 °C, alcanzada en las condiciones del experimento en menos de un cuarto de hora, conllevando normalmente la puesta en seguridad del robot, la duración de funcionamiento del robot está, por lo tanto, muy sustancialmente alargada por la implementación de la invención (en un factor de aproximadamente 4).
La figura 6 es un organigrama de ciertas etapas de los tratamientos de control-mando de un motor de articulación de
35 un robot según una forma de realización de la invención. Para calcular los pares articulares, se aplica la ecuación que describe la evolución dinámica del robot, a la que se aplica, llegado el caso ciertas hipótesis simplificantes, en función de los sensores y de la capacidad de cálculo que está disponible. Aplicando los principios generales de la mecánica de cuerpo rígidamente relacionados entre ellos en interacción con
40 su entorno, un experto en la materia de la robótica puede determinar una ecuación completa del modelo dinámico de un robot refiriéndose, en particular, a la obra clásica: "A Mathematical Introduction to Robotics Manipulation ", MURRAY, Richard M., LI Zexiang et SASTRY, S. Shankar, CRC Press, 1994.
Se escribirá, por ejemplo:
imagen10
45 En la continuación de la descripción, q es el vector constituido por los ángulos articulares.
imagen11designa la velocidad articular (derivada en función del tiempo de los ángulos articulares q). La velocidad cartesiana del cuerpo raíz se anota como Vraíz y es de dimensión 6. Los tres primeros componentes son la velocidad de traslación del cuerpo raíz de acuerdo con los 3 ejes (x, y, z). Los tres últimos componentes son las velocidades de rotación de acuerdo con los
3 ejes (x, y, z). Se llama coordenadas generalizadas T al vector constituido por Vraíz y
50 C(q) designa la matriz de transformación entre el espacio de las velocidades articulares y el espacio de las velocidades cartesianas; se denomina comúnmente cinemática Jacobiana.
El primer término del lado izquierdo de la ecuación traduce el efecto de los momentos de inercia de los cuerpos que constituyen las cadenas articuladas. En este término:
55 -imagen12: la matriz simétrica de inercia en coordenadas generalizadas. Se calcula a partir de la matriz M, así como de imagen13
C(q),
= C(q)tMC(q). Esta matriz depende de la configuración articular del robot (q); debe actualizarse cada vez que una o varias articulaciones se desplazan.
imagen14
imagen15
imagen16es una matriz cuadrada de dimensión dim( )= (6 + 6 x nimagen17ddl, 6 +
6 x nddl) donde nimagen18ddl es el número de grados de libertad del robot. En el caso de NAO hay 23 ddl, la dimensión de la matriz
será de (6 +6 x 23)2, o sea 20.736 valores.; -G es la aceleración de la gravedad expresada en coordenadas generalizadas.
5 El segundo término del miembro de la izquierda de la ecuación traduce el efecto de las fuerzas de Coriolis y imagen19
centrífugas que experimenta el sistema. N(q, ) es la matriz asociada a estos efectos.
El primer término del miembro de la derecha de la ecuación traduce el efecto de los pares articulares:
-τ es el vector de los pares articulares, de dimensión dim(τ)=(nddl, 1); τ es la suma del par de accionamiento y del par de fricción articular; 10 -L es la matriz que permite expresar τ en coordenadas generalizadas.
-W es la matriz de los pares de fuerzas aplicados en cada uno de los cuerpos que constituyen el robot expresados en sus propias referencias; se descompone generalmente W en Wcontacto que es el par de fuerzas relacionado a los contactos de los cuerpos con el entorno exterior y Wperturbación que es el par de fuerzas relacionado a las perturbaciones exteriores.
15 En un modo de realización, se simplifica el modelo al no calcular en esta etapa las aceleraciones propias (T) y imagen20
fuerzas de Coriolis y centrífugas (N(q, )), así como los pares de las fricción articular y de las perturbaciones externas (Wperturbación). Estos efectos se toman en cuenta, como se explicará más adelante, por un desplazamiento. El modelo dinámico simplificado se escribe, por lo tanto:
imagen21
20 El organigrama de la figura 6 describe las etapas de cálculo implementadas para resolver esta ecuación, sin que este corte deba considerarse como limitante, siendo otros procedimientos totalmente posibles. Estas etapas de cálculo se reproducen en un tiempo de ciclo de 20 ms. En una etapa 610, se calcula un plano virtual del suelo a partir de las medidas de la unidad inercial. Dicho plano virtual se determina como siendo el plano normal al vector de gravedad. Según el grado de fiabilidad de las
25 mediciones de la unidad, se pueden cruzar ventajosamente estas mediciones con una determinación de la orientación del torso mediante localización de los cuerpos inferiores en contacto o sin contacto con el suelo. En una etapa 620, se actualiza el vector q gracias al módulo ALMemory donde se actualizan los ángulos de los imagen22
sensores articulares. Con ayuda de las matrices M se puede calcular así (q).
En una etapa 630, se calcula la aceleración de la gravedad orientada en relación con el plano virtual del suelo. imagen2330 En una etapa 640, se combinan las salidas de las etapas 620 y 630 para calcular el término -(q)G. En una etapa 650, se calcula la lista de los puntos de contactos tomados en cuenta para el cálculo de las fuerzas, detallándose dicha etapa más adelante en la descripción en relación con la figura 7 e ilustrada por los ejemplos de las figuras 8a a 8f. En una etapa 660, se calculan las fuerzas de contacto, Wcontacto, detallándose dicha etapa más adelante en la 35 descripción en relación con la figura 9. En una etapa 670, se calcula Ct(q), transpuesta de la matriz de transformación entre el espacio de las velocidades articulares y el espacio de las velocidades cartesianas. En una etapa 680, se efectúa el producto de la matriz saliendo de la etapa 670 con el vector saliendo de la etapa
660. Sumando las salidas de las etapas 640 y 680, se obtiene saliendo de la etapa 690 el vector de los pares
40 articulares que se buscaban. A continuación, se puede proporcionar este vector en la entrada al módulo 320 de cálculo de los coeficientes de rigidez, añadiendo dicho módulo posiblemente un desplazamiento teniendo en cuenta, en particular, las simplificaciones del modelo dinámico del robot que se habrán realizado. En particular, si no se tienen en cuenta ni las propias aceleraciones, ni las fuerzas de Coriolis, ni las fuerzas centrífugas ni los pares de fricción articular, se ha
45 podido determinar experimentalmente que un desplazamiento de 0,25 daba buenos resultados para un robot en postura vertical, sin otra interacción con su entorno. Cuando ningún pie del robot descansa sobre el suelo, se puede seleccionar un desplazamiento más pequeño, por ejemplo 0,1, lo que liberará las articulaciones del robot y le dará una actitud más flexible.
La figura 7 es una primera vista detallada de una etapa del organigrama de la figura 6.
50 Detalla las subetapas de la etapa 650 de determinación de los puntos de contacto. En el archivo de configuración del robot, se define una lista de puntos característicos candidatos a ser puntos de contacto. En el caso de un robot humanoide tal como NAO, se seleccionará, por ejemplo, sin que esta lista sea limitante o que sea necesario recordar todos estos puntos de contacto, los dos pies, las dos nalgas, la espalda, la cabeza y el conjunto mano/antebrazo/codo.
55 Estos datos de configuración determinan la lista de los efectores para los que se va a calcular durante una etapa 710
5
10
15
20
25
30
35
40
las distancias verticales al plano virtual del suelo determinado saliendo de la etapa 610. Se determina entonces durante una etapa 720 el punto de contacto más cercano al suelo. Se ha definido en el archivo de configuración del robot un umbral de detección y se determina durante una etapa 730 los otros efectores que se sitúan cerca del suelo en el límite del umbral de detección.
Las figuras 8a a 8f representan un robot en tres posturas, con determinación de los puntos de contacto según una forma de realización de la invención. Las figuras 8a, 8c y 8e representan tres posturas diferentes del robot:
-En la figura 8a, el robot está en una de las posturas sentado posibles; -En la figura 8c, el robot está en una de las posturas vertical posibles; -En la figura 8e, el robot está en una postura llamada "gorila".
Los puntos de contacto candidatos que corresponden a estas posturas se representan respectivamente en las figuras 8b, 8d y 8f. Las anotaciones de los puntos de contacto son los siguientes:
-REIbowRoll Both, articulación oscilante del codo derecho; -LElbowRollBoth, articulación oscilante del codo izquierdo; -RFootFR, pie derecho, sensor delantero derecho; -RFootFL, pie derecho, sensor delantero izquierdo; -RFootRR, pie derecho, sensor trasero derecho; -RFootRL, pie derecho, sensor trasero izquierdo.
La figura 9 es una segunda vista detallada de una etapa del organigrama de la figura 6.
El objetivo de esta etapa es calcular las fuerzas de contacto que se aplican en NAO. En esta etapa, el robot se modela por una masa puntual en interacción con su entorno por puntos de contacto. Todos los contactos son coplanarios. Además, para simplificar los cálculos, se coloca en el caso estático. Se trata de resolver las ecuaciones siguientes:
-suma de las fuerzas que se aplican en el robot (aquí su centro de masa en el caso estático) se anula, o sea:
imagen24
-suma de los momentos se anula en el centro de masa.
A partir de tres puntos de contacto coplanarios, hay un hiperestatismo de las fuerzas de contacto. En efecto, existe una infinidad de e valores de fuerzas de contacto que son soluciones del problema anterior, en particular, debido al hecho de que: las fuerzas tangenciales de las fuerzas de contacto se pueden compensar respetando las dos ecuaciones.. Para encontrar una solución preferente, se busca minimizar las fuerzas de contacto calculadas y se considera que las fuerzas de contacto tangenciales son nulas. Para cada contacto, solo se considera el componente de fuerza normal al plano.
imagen25
Se señala el vector de fuerza del contacto i de NAO en su entorno con fc(i) la norma de la fuerza de . Sea el sistema que se resolverá:
imagen26
Que se puede escribir en la forma simplificada:
imagen27
Expresión en la que:
-B es una suma vectorial de los componentes verticales de las fuerzas exteriores (fuera de contacto);
-Y es el vector buscado de los componentes verticales de las fuerzas aplicadas a los puntos de contacto seleccionados saliendo de la etapa 650;
-A es una matriz cuyos coeficientes son las coordenadas de los puntos de contacto en relación con el centro de
5
10
15
20
25
30
35
40
imagen28
masa.
Las anotaciones son las siguientes:
-(xi, yi) son las coordenadas de los puntos de contacto seleccionados; -(xG, yG) son las coordenadas del centro de masa; -fi es la norma de la fuerza normal aplicada al punto de contacto i que se busca.
Durante una etapa 910, se determinan las fuerzas exteriores (fuera de contacto) que el robot debe equilibrar.. Durante una etapa 920, se calculan los coeficientes de la matriz A. Para ello, conviene proyectar el centro de masa del robot en el plano virtual del suelo determinado durante la etapa 610. Se trata, entonces, de determinar durante una etapa 930 una solución Y de la ecuación AY = B. Si el número de contactos n es igual a tres, se trata de invertir la matriz A. A condición de que su determinante sea distinto a cero, existe una única solución. Cuando n es superior a 3, una infinidad de soluciones es posible. Se trata, entonces, de seleccionar un algoritmo de determinación de una solución óptima bajo la restricción de que la ecuación AY = B se satisfaga.
lo tanto, de fi) para los cuales la función se minimiza bajo la condición de que Y >0.
Q y R representan pesos de optimización. El objetivo de esta operación consiste en minimizar la norma de AY-B con el peso Q y en minimizar la norma Y con el peso R. La figura 10 es un esquema de una arquitectura física y funcional que permite la implementación de la invención en varios de sus modos de realización. Un robot tal como NAO se dota ventajosamente de softwares de alto nivel que permiten controlar las funciones del robot en un modo de realización de la invención. Una arquitectura de software de este tipo, denominada NAOQI, se divulgó, en particular, en la solicitud de patente WO2009/124955 publicada el 15/10/2009. Consta de las funciones básicas de gestión de las comunicaciones entre un robot y un ordenador personal o, un lugar remoto y de intercambio de softwares que proporcionan la infraestructura de software necesaria para la implementación de la presente invención. NAOQI es un marco optimizado para las aplicaciones robóticas; soporta varios lenguajes, en particular, C++, Python y Urbi. En el ámbito de la presente invención, son particularmente útiles los siguientes módulos de NAOQI:
-el módulo ALMemory, 1010, gestiona una memoria compartida entre los diferentes módulos de NAOQI y recibe,
en particular, los elementos de configuración que se cargan en la inicialización; -el módulo DCM, 1020, gestiona las comunicaciones con el robot físico (motores, sensores); -el módulo ALMotion, 1030, gestiona los movimientos del robot; el código que permite la ejecución de los
algoritmos para implementar la invención se implanta principalmente en este módulo.
Estos tres módulos se codifican ventajosamente en C++. La figura indica igualmente los flujos de datos entre módulos:
-el módulo ALMotion 1030 recupera del módulo ALMemory 1010 los datos sensores (unidad inercial, FSR, ángulos articulares...); -efectúa las etapas de cálculo de los coeficientes de rigidez de las articulaciones y comunica sus resultados al módulo DCM 1020; -este módulo pasa al módulo ALMemory 1010 los valores de restricción de los ángulos articulares que resultan de la aplicación de estos coeficientes. (al mismo tiempo que los valores de los otros sensores)
Los ejemplos descritos anteriormente se dan a título de ilustración de modos de realización de la invención. No limitan de ninguna manera el campo de la invención que se define por las reivindicaciones siguientes.

Claims (10)

  1. imagen1
    REIVINDICACIONES
    1. Robot (100) dotado de capacidades de desplazamiento en al menos una cadena (110) articulada que comprende, al menos, un sensor (130) de contacto del extremo de dicha cadena con la superficie (120) de desplazamiento, comprendiendo dicha cadena al menos una articulación (140), controlada dicha articulación por un motor (210)
    5 eléctrico controlado por una instrucción de posición y/o velocidad y por medios de limitación de la corriente y/o del par aplicado por dicho motor a dicha articulación, caracterizándose dicho robot porque comprende también:
    a) una primera lógica (310) de cálculo del par articular como siendo solución de una ecuación que modela el equilibrio dinámico del robot entre, por una parte, la suma de la diferencia de las fuerzas inerciales debidas a la aceleración angular de la articulación y de la aceleración de la gravedad y del efecto de las fuerzas de Coriolis y
    10 centrífuga y, por otra parte, la suma del par y de las fuerzas de contacto, de fricción y de perturbación, aplicándose dichos par y fuerza a dicha articulación, una parte de los efectos de las fuerzas inerciales debidas a la aceleración angular de la articulación, de las fuerzas de Coriolis y centrífuga y de las fuerzas de fricción modelándose por un desplazamiento, b) una segunda lógica (320) de cálculo configurada para definir dicha limitación de la corriente y/o del par
    15 aplicado, a partir del par articular calculado por dicha primera lógica de cálculo para dicha articulación.
  2. 2.
    Robot según la reivindicación 1, caracterizado porque dicha desviación varía según la postura del robot.
  3. 3.
    Robot según una de las reivindicaciones 1 a 2, caracterizado porque el efecto de la aceleración de la gravedad se calcula a partir de una matriz de coeficientes de inercia que depende de la configuración del robot y se aplica a los ángulos articulares y del vector de gravedad determinado por combinación de mediciones de una unidad inercial
    20 del robot.
  4. 4.
    Robot según la reivindicación 3, caracterizado porque para el cálculo del vector de gravedad se opera, además, una eliminación de duda por determinación de la orientación en el espacio de una cadena central del robot por resolución de la posición de efectores solidarios con dicha cadena.
  5. 5.
    Robot según una de las reivindicaciones 3 a 4, caracterizado porque los puntos de aplicación de las fuerzas de
    25 contacto tenidas en cuenta en el modelo de equilibrio dinámico del robot se determinan por generación de una primera lista de efectores que satisfacen un criterio seleccionado en un grupo de criterios que comprende una lista de estados on/off de sensores de contacto colocados en dichos efectores, una lista de umbrales de distancia mínima con respecto al plano virtual del suelo de dichos efectores y cualquier combinación de dichas listas, determinándose dichos criterios sustancialmente por la morfología del robot.
    30 6. Robot según la reivindicación 5, caracterizado porque los efectores de la primera lista se filtran en una segunda lista por comparación de la postura actual del robot con posturas tipo almacenadas en los datos de configuración del robot, dichas posturas tipo determinando una lista tipo de efectores, dicha segunda lista comprendiendo solamente los efectores de la lista que corresponde a la postura tipo retenida como la más cercana de la postura actual del robot según un criterio de similitud, si existe, y solamente esos.
    35 7. Robot según una de las reivindicaciones 3 a 6, caracterizado porque las fuerzas de contento con los puntos de aplicación se determinan por la búsqueda de una solución sustancialmente óptima a la ecuación de equilibrio entre la suma de dichas fuerzas de contacto y el peso del robot y del componente vertical de las fuerzas de perturbación.
  6. 8.
    Robot según la reivindicación 7, caracterizado porque las fuerzas de perturbación se desatienden.
  7. 9.
    Robot según una de las reivindicaciones 1 a 8, caracterizado porque dicha segunda lógica de cálculo se
    40 configura para calcular un coeficiente de rigidez que se aplicará a la articulación a partir de dicho par articular calculado por la primera lógica de cálculo para la articulación, realizando dichos coeficientes de rigidez dichos medios de limitación de la corriente y/par ejercido en dicha articulación.
  8. 10. Procedimiento de limitación del par y/o de la corriente aplicada a un motor eléctrico de control de una articulación de un robot dotado de capacidades de desplazamiento en, al menos, una cadena articulada que comprende, al
    45 menos, un sensor de contacto del extremo de dicha cadena con la superficie de desplazamiento, comprendiendo dicha cadena al menos una articulación, controlándose dicho motor eléctrico por una instrucción de posición y/o velocidad, dicho procedimiento caracterizándose por las siguientes etapas:
    a) una primera etapa de cálculo de un par articular para dicha articulación, calculándose dicho par como siendo solución de una ecuación que modela el equilibrio dinámico del robot entre, por una parte, la suma de la
    50 diferencia de las fuerzas inerciales debidas a la aceleración angular de la articulación y de la aceleración de la gravedad y del efecto de las fuerzas de Coriolis y centrífuga y, por otra parte, la suma del par y de las fuerzas de contacto, de fricción y de perturbación, aplicándose dichos par y fuerza a dicha articulación, una parte de los efectos de las fuerzas inerciales debidas a la aceleración angular de la articulación, de las fuerzas de Coriolis y centrífuga y de las fuerzas de fricción modelándose por un desplazamiento y,
    55 b) una segunda etapa de definición de dicha limitación de la corriente y/o del par aplicado, a partir del par articular calculado en dicha primera etapa de cálculo para dicha articulación.
    10
    imagen2
  9. 11. Procedimiento según la reivindicación 10, caracterizado porque dicha segunda etapa de cálculo es una etapa de cálculo de un coeficiente de rigidez que se aplicará a la articulación, dicho coeficiente de rigidez permitiendo una limitación de la corriente y/o de par ejercido sobre esta articulación, efectuándose el cálculo de este coeficiente a partir del par articular calculado en la etapa anterior para dicha articulación.
    5 12. Programa de ordenador que comprende instrucciones de código de programa que permite la ejecución del procedimiento según la reivindicación 10 cuando el programa se ejecuta en un ordenador, adaptándose dicho programa para permitir una limitación del par y/o de la corriente aplicada a un motor eléctrico de control de una articulación de un robot, dotándose dicho robot de capacidades de desplazamiento en, al menos, una cadena articulada que comprende, al menos, un sensor de contacto del extremo de dicha cadena con la superficie de
    10 desplazamiento, comprendiendo dicha cadena al menos una articulación, dicho motor eléctrico controlado por una instrucción de posición y/o velocidad, dicho programa caracterizándose porque comprende:
    a) un primer conjunto de instrucciones de código informático configuradas para calcular un par articular para dicha articulación, calculándose dicho par como siendo solución de una ecuación que modela el equilibrio dinámico del robot entre, por una parte, la suma de la diferencia de las fuerzas inerciales debidas a la
    15 aceleración angular de la articulación y de la aceleración de la gravedad y del efecto de las fuerzas de Coriolis y centrífuga y, por otra parte, la suma del par y de las fuerzas de contacto, de fricción y de perturbación, aplicándose dichos par y fuerza a dicha articulación, una parte de los efectos de las fuerzas inerciales debidas a la aceleración angular de la articulación, de las fuerzas de Coriolis y centrífuga y de las fuerzas de fricción pudiendo modelarse por un desplazamiento y:
    20 b) un segundo conjunto de instrucciones de código informático configuradas para definir dicha limitación de la corriente y/o del par aplicado, a partir del par articulado calculado por dicho primer conjunto de instrucciones de código informático.
  10. 13. Programa de ordenador según la reivindicación 12, caracterizado porque dicho segundo conjunto de instrucciones de código de ordenador se configura para calcular un coeficiente de rigidez que se aplicará a la
    25 articulación, dicho coeficiente de rigidez permitiendo una limitación de la corriente y/o de par ejercido sobre esta articulación, efectuándose el cálculo de este coeficiente a partir del par articular calculado por el primer módulo de cálculo para dicha articulación.
    11
ES12741354.0T 2011-08-04 2012-08-03 Robot con articulaciones de rigidez variable y procedimiento de cálculo de dicha rigidez optimizada Active ES2659053T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1157171 2011-08-04
FR1157171A FR2978844B1 (fr) 2011-08-04 2011-08-04 Robot a articulations de rigidite variable et methode de calcul de ladite rigidite optimisee
PCT/EP2012/065210 WO2013017676A1 (fr) 2011-08-04 2012-08-03 Robot a articulations de rigidite variable et methode de calcul de ladite rigidite optimisee

Publications (1)

Publication Number Publication Date
ES2659053T3 true ES2659053T3 (es) 2018-03-13

Family

ID=46601836

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12741354.0T Active ES2659053T3 (es) 2011-08-04 2012-08-03 Robot con articulaciones de rigidez variable y procedimiento de cálculo de dicha rigidez optimizada

Country Status (11)

Country Link
US (1) US9555543B2 (es)
EP (1) EP2740012B1 (es)
JP (1) JP6343559B2 (es)
KR (1) KR101958043B1 (es)
CN (1) CN104011613B (es)
BR (1) BR112014002744A8 (es)
DK (1) DK2740012T3 (es)
ES (1) ES2659053T3 (es)
FR (1) FR2978844B1 (es)
NO (1) NO2740012T3 (es)
WO (1) WO2013017676A1 (es)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9259838B1 (en) 2014-07-24 2016-02-16 Google Inc. Systems and methods for ground plane estimation
US9499219B1 (en) * 2014-08-25 2016-11-22 Google Inc. Touch-down sensing for robotic devices
JP6333688B2 (ja) * 2014-09-24 2018-05-30 本田技研工業株式会社 移動ロボットの制御装置
CN104597836A (zh) * 2015-01-23 2015-05-06 哈尔滨理工大学 外覆盖件模具四轴加工系统综合刚度性能进行切削的方法
CN104793563B (zh) * 2015-02-13 2017-09-22 哈尔滨理工大学 基于四轴加工系统综合刚度场的外覆盖件模具的加工方法
JP6332197B2 (ja) * 2015-08-11 2018-05-30 トヨタ自動車株式会社 モータの制御装置
CN105353670A (zh) * 2015-09-22 2016-02-24 长春工业大学 基于嵌入式的仿人机器人运动控制器
JP6956081B2 (ja) * 2015-11-11 2021-10-27 マコ サージカル コーポレーション ロボットシステム及びロボットシステムをバックドライブする方法
CN106041926B (zh) * 2016-06-12 2018-10-19 哈尔滨工程大学 一种基于卡尔曼滤波器的工业机械臂力/位置混合控制方法
WO2018094272A1 (en) * 2016-11-18 2018-05-24 Robert Bosch Start-Up Platform North America, LLC, Series 1 Robotic creature and method of operation
CN110340880A (zh) * 2018-04-02 2019-10-18 新世代机器人暨人工智慧股份有限公司 可变姿态机器人及其姿态调整方法
CN109086544B (zh) * 2018-08-16 2019-12-24 居鹤华 基于轴不变量的闭链机器人动力学建模与解算方法
CN109117451B (zh) * 2018-08-16 2020-03-13 居鹤华 基于轴不变量的树链机器人动力学建模与解算方法
CN110442947B (zh) * 2019-07-30 2021-07-02 华中科技大学 融合平衡策略的下肢机器人动力学仿真平台及仿真方法
DE102019128082B4 (de) * 2019-10-17 2022-03-10 Franka Emika Gmbh Drehmomentbegrenztes Bremsen eines Robotermanipulators
CN111409073A (zh) * 2020-04-02 2020-07-14 深圳国信泰富科技有限公司 一种高智能机器人的摔倒自恢复方法及系统
CN112179551B (zh) * 2020-08-20 2021-06-22 清华大学 机器人的关节电机转矩系数与摩擦力同步测试方法和装置
CN112068443B (zh) * 2020-09-21 2022-05-31 珠海格力智能装备有限公司 机器人关节组件优化方法、装置、机器人和存储介质
US20220193893A1 (en) * 2020-12-18 2022-06-23 Boston Dynamics, Inc. Limiting Arm Forces and Torques
US11931898B2 (en) 2020-12-22 2024-03-19 Boston Dynamics, Inc. Arm and body coordination
CN113172614B (zh) * 2021-04-28 2022-09-06 清华大学 一种连续体机器人的执行臂

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0866893A (ja) * 1994-08-24 1996-03-12 Fanuc Ltd 衝突検出方法
US7774177B2 (en) * 2001-06-29 2010-08-10 Honda Motor Co., Ltd. Exoskeleton controller for a human-exoskeleton system
CN1649698A (zh) * 2002-03-18 2005-08-03 索尼株式会社 机器人设备、腿式移动机器人的运动控制设备和方法、腿式移动机器人的传感器系统和移动单元
US7236852B2 (en) * 2002-10-11 2007-06-26 Sony Corporation Motion controlling apparatus and method and remote controlling apparatus and method for legged mobile robot
JP4682791B2 (ja) * 2005-10-12 2011-05-11 ソニー株式会社 操作空間物理量算出装置及び操作空間物理量算出方法、並びにコンピュータ・プログラム
JPWO2007139135A1 (ja) * 2006-05-30 2009-10-08 独立行政法人科学技術振興機構 ロボット及び制御装置
US7986118B2 (en) * 2007-04-23 2011-07-26 Honda Motor Co., Ltd. Open-loop torque control on joint position-controlled robots
FR2930108B1 (fr) 2008-04-09 2010-07-30 Aldebaran Robotics Systeme et procede de communication distribue comprenant au moins un serveur, au moins un terminal distant, et au moins un terminal mobile capable de communiquer avec le terminal distant relie en reseau audit serveur
KR20110082394A (ko) * 2010-01-11 2011-07-19 삼성전자주식회사 보행 로봇 및 그 제어 방법
KR101633362B1 (ko) * 2010-01-18 2016-06-28 삼성전자 주식회사 인간형 로봇 및 그 보행 제어방법
KR101985790B1 (ko) * 2012-02-21 2019-06-04 삼성전자주식회사 보행 로봇 및 그 제어 방법

Also Published As

Publication number Publication date
BR112014002744A8 (pt) 2017-06-20
KR20140065405A (ko) 2014-05-29
KR101958043B1 (ko) 2019-03-13
US20150343633A1 (en) 2015-12-03
FR2978844B1 (fr) 2014-03-21
JP2014522741A (ja) 2014-09-08
CN104011613A (zh) 2014-08-27
WO2013017676A1 (fr) 2013-02-07
NO2740012T3 (es) 2018-04-21
EP2740012A1 (fr) 2014-06-11
US9555543B2 (en) 2017-01-31
DK2740012T3 (en) 2018-02-12
BR112014002744A2 (pt) 2017-06-13
JP6343559B2 (ja) 2018-06-13
EP2740012B1 (fr) 2017-11-22
CN104011613B (zh) 2017-02-15
FR2978844A1 (fr) 2013-02-08

Similar Documents

Publication Publication Date Title
ES2659053T3 (es) Robot con articulaciones de rigidez variable y procedimiento de cálculo de dicha rigidez optimizada
CN110695959B (zh) 外骨骼机器人及其控制系统
KR101882532B1 (ko) 넘어짐 관리 능력을 갖는 휴머노이드 로봇 및 상기 넘어짐을 관리하기 위한 방법
KR102044437B1 (ko) 로봇의 균형 제어 장치 및 그 제어 방법
KR101772974B1 (ko) 휴머노이드 로봇의 인간 유사 동작 생성 방법
Vukobratović et al. Zero-moment point—thirty five years of its life
US9073209B2 (en) Walking robot and control method thereof
KR102193768B1 (ko) 로봇 및 로봇의 제어 방법
CN110053039A (zh) 一种机器人行走中重力补偿的方法、装置及机器人
KR20120060578A (ko) 보행 로봇 및 그 자세 제어 방법
KR20120024098A (ko) 보행 로봇 및 그 제어방법
KR20110082391A (ko) 보행 로봇 및 그 균형 제어 방법
JP5198035B2 (ja) 脚式ロボット及びその制御方法
KR101568084B1 (ko) 이족보행로봇의 보행 모방 제어장치
KR102136330B1 (ko) 외골격 로봇 장치
Lu et al. Development of humanoid robot and biped walking based on linear inverted pendulum model
Congedo Modelling of a biped kinematics, analysis and simulation of the human walk for a future lower-limb exoskeleton
Corradi et al. Optimal control for balance assistance using a robotic rollator
US20220051779A1 (en) Dynamically altering an external geometry of body-wearable actuatable components
Karimi et al. Online Omnidirectional Gait Modifications for a Full Body Push Recovery Control of a Biped Robot
Shoushtari What strategy central nervous system uses to perform a movement balanced? Biomechatronical simulation of human lifting
González-Mejía et al. Design and Implementation of a control strategy for static balance of a lower limbs exoskeleton
Kien et al. Motion planning of a bipedal walking robot with leg-mounted ultrasonic sensors—An experimental study
LI et al. Balance analysis and optimal posture estimation during assisted walking
Yang et al. An approach to walking assist control by a multi-legged system in human gait motion