ES2746754T3 - Robot humanoide con ruedas omnidireccionales basado en un controlador de posición y velocidad lineal predictivo - Google Patents

Robot humanoide con ruedas omnidireccionales basado en un controlador de posición y velocidad lineal predictivo Download PDF

Info

Publication number
ES2746754T3
ES2746754T3 ES14305585T ES14305585T ES2746754T3 ES 2746754 T3 ES2746754 T3 ES 2746754T3 ES 14305585 T ES14305585 T ES 14305585T ES 14305585 T ES14305585 T ES 14305585T ES 2746754 T3 ES2746754 T3 ES 2746754T3
Authority
ES
Spain
Prior art keywords
robot
state
angular velocity
humanoid robot
tilt
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
ES14305585T
Other languages
English (en)
Inventor
Jory Lafaye
Cyrille Collette
Pierre-Brice Wieber
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.)
Institut National de Recherche en Informatique et en Automatique INRIA
Aldebaran SAS
Original Assignee
SoftBank Robotics Europe SAS
Institut National de Recherche en Informatique et en Automatique INRIA
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, Institut National de Recherche en Informatique et en Automatique INRIA filed Critical SoftBank Robotics Europe SAS
Application granted granted Critical
Publication of ES2746754T3 publication Critical patent/ES2746754T3/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
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • 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
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/08Control of attitude, i.e. control of roll, pitch, or yaw
    • G05D1/0891Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for land vehicles

Abstract

Un robot (100) humanoide con un cuerpo (190) unido a una base (140) de suelo móvil omnidireccional equipado con: - un sensor de posición de cuerpo, un sensor de posición de base y un sensor de velocidad angular para proporcionar medidas, - accionadores (212) que comprenden motores de articulaciones y al menos 3 ruedas ubicadas en la base móvil omnidireccional, con al menos una rueda omnidireccional, - extractores (211) para convertir medidas detectadas, - un supervisor (500) para calcular comandos de posición, velocidad y aceleración a partir de los datos extraídos, - medios para convertir comandos en instrucciones para los accionadores, caracterizado porque el supervisor comprende: - un controlador (501) de estado de no inclinación que usa un modelo de robot en el que el ángulo de inclinación del robot es nulo, un controlador (502) de estado de inclinación que usa un modelo de robot que tiene en cuenta el movimiento de inclinación y un controlador (503) de estado de aterrizaje para controlar el robot cuando está en fase de aterrizaje, comprendiendo cada controlador medios para calcular, a partir de los datos extraídos, posición pre-ordenada y referencias de velocidad, y un ángulo de inclinación y referencias de velocidad angular establecidas en 0, comandos de posición, velocidad y aceleración basados en el modelo de robot de punto de masa doble y una ley de control predictiva de modelo lineal con un tiempo discretizado de acuerdo con un periodo de tiempo de muestreo T y un número N de muestras previstas, expresado como una formulación de optimización cuadrática con una suma ponderada de objetivos, y un conjunto de limitaciones lineales predefinidas, - un estimador (504) de un tiempo (ti) de un impacto del robot humanoide con el suelo, y una velocidad angular del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo y - medios para elegir uno de dicho controlador de estado de no inclinación, controlador de estado de inclinación y controlador de estado de aterrizaje según una velocidad angular estimada del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo y velocidad angular extraída.

Description

DESCRIPCIÓN
Robot humanoide con ruedas omnidireccionales basado en un controlador de posición y velocidad lineal predictivo
La presente invención se refiere al campo de los sistemas de programación de robots. Más específicamente, se aplica al control de movimientos de robots que se mueven alrededor en extremidades articuladas o las usan, notablemente robots de forma humana o animal. Un robot puede estar cualificado como humanoide desde el momento en el que cierta apariencia humana se le atribuye: una cabeza, un tronco, dos brazos, dos manos, etc. Un robot humanoide puede, sin embargo, ser más o menos sofisticado. Sus extremidades pueden ser un mayor o menor número de articulaciones. Puede controlar su propio equilibrio de forma estática y dinámica y rodar sobre una base. Puede recoger señales del entorno (“escuchar”, “ver”, “tocar”, “sentir”, etc.) y reaccionar de acuerdo con comportamientos más o menos sofisticados, e interactuar con otros robots o humanos, ya sea por habla o por gestos. Para una generación actual de robots humanoides, los programadores son capaces de crear escenarios, que pueden ser más o menos sofisticados, como secuencias de eventos/acciones a las que reacciona/ o realiza el robot. Estas acciones pueden depender de ciertos comportamientos de la gente que interactúa con el robot. Pero en estos robots humanoides de primera generación, la programación de aplicación se realiza en un kit de herramientas de desarrollo y cada aplicación necesita lanzarse por un evento de activación, cuyo suceso se ha incluido en la aplicación.
Existe por tanto la necesidad de un robot humanoide capaz de vivir una “vida autónoma”, como lo hace un humano, que es capaz de comportarse de manera determinada, dependiendo del entorno en el que evoluciona. Es un objeto de la presente invención superar las limitaciones de los robots de la técnica anterior proporcionando un robot que es capaz de determinar de forma autónoma secuencias de su vida adaptada al contexto en el que evoluciona, sin ninguna intervención del programador.
Se considera un robot con una base móvil unida a un cuerpo, también denominado cuerpo superior.
En comportamiento estándar, el robot está en contacto con todas las ruedas, y es estable dinámicamente mientras el centro de presión (CoP) que es el baricentro de las fuerzas que actúan entre el suelo y el robot, está estrictamente dentro del casco convexo definido por sus puntos de contacto de rueda. En ausencia de perturbación, este límite CoP siempre se respeta. Sin embargo, cuando aparece una perturbación, el CoP puede estar en los límites del casco de soporte. En este caso, el robot puede comenzar a inclinarse y si no se hace nada, puede caerse. Por lo que el problema es controlar el robot sobre dos modelos dinámicos: cuando el robot no se inclina, y cuando lo hace.
Cuando el robot no se inclina, se han encontrado algunos trabajos sobre el control de un robot móvil con limitaciones de estabilidad dinámica, o sobre el control de un robot humanoide de dos piernas.
Algunos trabajos recientes se ocupan del control de un robot con limitaciones dinámicas, provocado por articulaciones tal como un brazo manipulador. K. Mingeuk et al. han trabajado en la estabilización de una plataforma con ruedas usando límites dinámicos: “Estabilización de una plataforma móvil rápida de cuatro ruedas usando el procedimiento de estabilización zmp”. Esto usa un procedimiento de regulador cuadrático lineal directo (LQR) para controlar la plataforma. El inconveniente de este procedimiento es que las limitaciones dinámicas enviadas requieren que el CoP (Centro de Presión) esté en medio de la plataforma. El CoP es el baricentro de las fuerzas de contacto entre el robot y el suelo. Este procedimiento implica perder varios DoF (Grados de Libertad): de hecho, para evitar que el robot caiga, el CoP necesita solo estar en el polígono convexo definido por los puntos de contacto entre las ruedas y el suelo.
En otro trabajo, Y. Li et al. presenta un controlador simple de un robot móvil con limitaciones dinámicas: “El criterio de estabilidad dinámica en el robot humanoide basado en ruedas en función del modelado zmp”. La diferencia con la publicación de K. Mingeuk et al. es que tiene en cuenta la limitación CoP completa, que es una suma de limitaciones de desigualdad. Este controlador es un control pid repetido en un modelo completo del robot para encontrar un comando de par donde el CoP está en el polígono de soporte.
En referencia a la robótica humanoide, P. B. Wieber, H. Diedam y A. Herdt han descrito un procedimiento para controlar un robot humanoide de dos piernas con una dinámica altamente limitada: “Andar sin pensarlo”. Este enfoque más reciente se refiere al control predictivo lineal basado en un modelo de péndulo invertido lineal en 3D. Al usar un modelo simple del robot, esta ley de control predice la dinámica de su estado en el futuro, para asegurar que el comando actual enviado al robot no provocará una caída inevitable en pocos segundos. En referencia al robot humanoide bípedo NAO, una implementación de esta ley de control puede encontrarse en el trabajo escrito por D. Gouaillier, C. Collette y K. Kilner: “Camino de bucle cerrado omnidireccional para NAO”. Pero el robot NAO es pequeño y este procedimiento no proporcionaría buenos resultados notablemente para un robot humanoide mayor como se muestra en la figura 1, por ejemplo con las siguientes características:
- 20 Grados de libertad (DoF) (2 DoF en la cabeza 160, 2x6 DoF en los brazos 170, 3 DoF en la pierna 180 y 3 DoF en la base móvil 140),
- 1,37 m de altura 110,
- 0,65 m de anchura 130,
- 0,40 m de profundidad 120,
- 30 kg de masa total,
- una pierna 180 vinculada con la base omnidireccional 140 con tres ruedas 141. La base móvil tiene una forma triangular de 0,422 m de longitud y es capaz de mover el robot a una velocidad máxima de 1:4 m/s'1 y aceleración de 1:7 m/s_2 por un corto tiempo. La velocidad nominal de aceleración son 0:5 m/s’1 y 1:0 m/s’2
En referencia al caso en el que el robot se inclina, se puede vincular este problema con el control de un robot móvil de una o dos ruedas. Sin embargo, en este caso, no se quiere controlar el robot alrededor de una dirección de equilibrio inestable (generalmente vertical), como todos los robots móviles de una o dos ruedas. Muchos trabajos pueden encontrarse sobre el control de estos robots. Estos se basan en diferentes tipos de control como:
- control de fuerza PID como se describe en la publicación de J. K. Ahn y S. J. Lee “Aplicación de control de fuerza a un manipulador móvil con mecanismo de equilibrio”, 2010,
- Regulador Cuadrático Lineal como se describe en la publicación de X. Changkai, L. Ming, y P. Fangyu, “El diseño de sistema y control lqr de un robot móvil de autoequilibrio de dos ruedas”, 2011, o
- Control de Modo Deslizante como se describe en la publicación de K. Sho-Tsung, C. Wan-Jung y H. Ming-Tzu, “Equilibrio de un péndulo invertido esférico con un robot móvil omnidireccional”, Multiconferencia IEEE sobre Sistemas y Control, 2013.
Todos estos controladores tienen el objetivo de controlar el robot alrededor de una dirección de equilibrio inestable, dependiendo de la gravedad y fuerzas externas. En referencia al robot humanoide, se encuentran algunos trabajos sobre la recuperación de empuje. Los conceptos principales son gestionar cuatro posibilidades de control:
- mover el CoP usando los cuerpos superiores,
- crear un par usando el tobillo del pie,
- crear algunos momentos angulares usando los brazos, y
- dar algunos pasos.
Esto no puede aplicarse en este caso ya que depende mucho de la mecánica bípeda, lo que implica que los pies no pueden rodar o deslizarse en el suelo, y que pueden dar algunos pasos para recuperarse de un empuje. En este caso, el CoP no puede desplazarse ya que no hay superficie de contacto en la dirección de inclinación. Además, otra dificultad de este problema es tener en cuenta el interruptor discreto del modelo dinámico (presencia o ausencia de algunas fuerzas de contacto). Esto implica que algún impacto puede ocurrir. En general, gestionar el impacto es una cuestión difícil para el control en tiempo real.
Existe por tanto la necesidad de controlar tanto la base móvil de un robot humanoide como su cuerpo, mientras se tienen en cuenta sus limitaciones dinámicas y que el robot puede perturbarse en gran medida y puede inclinarse alrededor de sus ruedas.
Por eso, en lugar de proponer un controlador único que será válido en los diferentes estados dinámicos posibles, se definen dos controladores, uno cuando el robot no se inclina, y uno cuando lo hace. Para asegurar una transición correcta y suave entre los dos controladores, un tercer controlador se define para ocuparse de una fase de aterrizaje y un supervisor se define para abordarlos por consiguiente.
Para este efecto, la invención desvela un robot humanoide con un cuerpo unido a una base de suelo móvil omnidireccional, equipado con:
- un sensor de posición de cuerpo, un sensor de posición de base y un sensor de velocidad angular para proporcionar medidas,
- accionadores que comprenden motores de articulación y al menos 3 ruedas ubicadas en la base móvil omnidireccional, con al menos una rueda omnidireccional,
- extractores para convertir medidas detectadas,
- un supervisor para calcular comandos de posición, velocidad, aceleración de los datos extraídos,
- medios para convertir órdenes en instrucciones para los accionadores, caracterizado por que el supervisor comprende:
- un controlador de estado de no inclinación usando un modelo de robot en el que el ángulo de inclinación del robot es nulo, un controlador de estado de inclinación que usa un modelo de robot que tiene en cuenta el movimiento de inclinación y un controlador de estado de aterrizaje para controlar el robot cuando esté en la fase de aterrizaje, comprendiendo cada controlador medios para calcular desde los datos extraídos, posición pre-ordenada y referencias de velocidad, y un ángulo de inclinación y referencias de velocidad angular establecidas en 0, comandos de posición, velocidad y aceleración en función del modelo de robot de punto de masa doble y una ley de control predictiva de modelo lineal con un tiempo discretizado de acuerdo con un periodo de tiempo de muestra T y un número N de muestras predichas, expresado como formulación de optimización cuadrática con una suma ponderada de objetivos, y un conjunto de limitaciones lineales predefinidas,
un estimador de un tiempo (t¡) de un impacto del robot humanoide en el suelo, y una velocidad angular ""del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo y
medios para elegir uno de dicho controlador de estado de no inclinación, controlador de estado de inclinación
y controlador de estado de aterrizaje de acuerdo con una velocidad angular estimada (¥0 ' del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo y velocidad angular extraída.
Ventajosamente, el estimador asume que la base tiene una aceleración angular constante.
Ventajosamente, el controlador de no inclinación es capaz de calcular los comandos de posición, velocidad y aceleración desde los datos extraídos usando referencias pre-ordenadas, siendo los objetivos:
- un objetivo de posición de base,
- un objetivo de velocidad de base,
- un objetivo relacionado con la distancia entre el CoP y el centro de base, siendo el CoP el baricentro de las fuerzas de contacto entre el robot y el suelo,
y siendo las limitaciones:
- una velocidad y aceleración máxima de la base móvil,
- límites cinemáticos del cuerpo,
- un límite CoP.
Ventajosamente, el controlador de inclinación es capaz de calcular comandos de posición, velocidad y aceleración desde los datos extraídos usando referencias pre-ordenadas y un ángulo de inclinación y referencias de velocidad angular establecidas en 0, y los objetivos son minimización de ángulo de inclinación y minimización de velocidad angular y las limitaciones son límites cinemáticos de la base móvil, límites cinemáticos del cuerpo, un ángulo de inclinación positivo y un movimiento del cuerpo solo en el eje de velocidad angular.
Ventajosamente, un objetivo de minimización de tirón se añade a la suma ponderada de objetivos.
Ventajosamente, el controlador de aterrizaje se basa en un modelo de robot de no inclinación y es capaz de calcular comandos de posición, velocidad y aceleración de los datos extraídos usando referencias pre-ordenadas y un ángulo de inclinación y referencias de velocidad angular establecidas en 0, siendo los objetivos un objetivo relacionado con la distancia entre el CoP y el centro de base, siendo el CoP el baricentro de las fuerzas de contacto entre el robot y el suelo, y siendo las limitaciones una velocidad y aceleración máxima de la base móvil y límites cinemáticos del cuerpo y un límite CoP y un movimiento del cuerpo solo en el eje de velocidad angular.
Ventajosamente, un objetivo de velocidad de base se añade a la suma ponderada de objetivos.
Ventajosamente, los límites cinemáticos del cuerpo son nulos.
Ventajosamente, la invención también desvela un procedimiento para controlar un robot humanoide con un cuerpo unido a una base de suelo móvil omnidireccional, con accionadores que comprenden al menos tres ruedas con al menos una rueda omnidireccional que comprende:
- recuperar la medida de posición del cuerpo, medida de posición de la base, ángulo de inclinación del robot y medida de velocidad angular del robot, en tiempos de muestreo predefinidos,
- convertir estas medidas en datos extraídos,
- si uno entre la medida de ángulo de inclinación y la medida de velocidad angular es mayor que cero, estimar un
tiempo de (t¡) de un impacto del robot humanoide con la velocidad de suelo y una velocidad angular (^0 del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo,
- elegir un estado del robot entre un estado de inclinación definido, o estado de no inclinación o estado de aterrizaje del robot según dicha velocidad angular del robot humanoide en dicho tiempo del impacto y la velocidad angular extraída,
- usar los datos extraídos y, de acuerdo con dicho estado de la posición pre-ordenada del robot y referencias de velocidad, y un ángulo de inclinación y referencias de velocidad angular establecidas en 0, calcular los comandos de posición, velocidad y aceleración en función de un modelo de robot de punto de masa doble y una ley de control predictiva de modelo lineal con un tiempo discretizado según un periodo de tiempo de muestreo T y un número N de muestras predichas, y expresado como formulación de optimización cuadrática con una suma ponderada de objetivos con pesos predefinidos y un conjunto de limitaciones lineales, usando respectivamente:
- una ley de control de estado de inclinación en función de un modelo de robot que tiene en cuenta el modelo de inclinación si el estado del robot es el estado de inclinación,
- una ley de control de estado de no inclinación en función del modelo del robot en el que el ángulo de inclinación del robot es nulo si el estado del robot es el estado de no inclinación,
- una ley de control de estado de aterrizaje en función de un modelo de robot en el que el ángulo de inclinación del robot es nulo si el estado del robot es estado de aterrizaje,
- convertir estos comandos en instrucciones para los accionadores de robot.
Ventajosamente, el estado del robot se define según las siguientes etapas:
inicialmente el robot está en estado de no inclinación,
si el robot está en estado de no inclinación:
• si no hay tiempo estimado (t¡) de un impacto del robot humanoide con el suelo, cambiar a estado de inclinación;
(« )
• si la velocidad angular de impacto del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo está sobre un límite predefinido 1, cambiar al estado de inclinación;
• si la velocidad angular medida está por encima del límite predefinido 2, cambiar al estado de inclinación;
• de otra forma, si el ángulo de inclinación no es nulo, cambiar a estado de aterrizaje,
si el ángulo de inclinación es nulo permanecer en el estado de no inclinación.
cuando el robot está en estado de inclinación:
• si la velocidad angular medida está por encima del límite predefinido 2, permanecer en el estado de inclinación.
• si la velocidad de impacto estimada está por debajo del límite predefinido 1, cambiar a estado de aterrizaje, • de lo contrario, permanecer en estado de inclinación.
cuando el robot está en estado de aterrizaje:
si no existe tiempo estimado (t¡) de un impacto del robot humanoide con el suelo, cambiar a estado de inclinación;
si la velocidad angular del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo está sobre un límite predefinido 1, cambiar a estado de inclinación;
si la velocidad angular medida está por encima del límite predefinido 2, cambiar a estado de inclinación;
si el ángulo de inclinación cae a 0, y si una velocidad angular medida en el siguiente tiempo es nula, cambiar estado de no inclinación,
de lo contrario, permanecer en estado de aterrizaje.
La invención también desvela un programa informático que comprende código informático que, cuando se ejecuta en el robot humanoide según la invención, o un ordenador que comprende un puerto de salida para enviar comandos a los accionadores del robot humanoide, realiza el procedimiento según la invención.
La invención se entenderá mejor y sus diversas características y ventajas surgirán de la siguiente descripción de un número de realizaciones ejemplares y sus figuras adjuntas en las que:
- la figura 1 muestra una arquitectura física de un robot humanoide en un número de realizaciones de la invención; - la figura 2 muestra una arquitectura funcional de los módulos de software de un robot humanoide en un número de realizaciones de la invención;
- la figura 3 muestra una modelización de una repartición de masa de un robot diseñado de acuerdo con la invención, - la figura 4 muestra una modelización de la dinámica de inclinación del robot de acuerdo con la invención, - la figura 5 ilustra una representación geométrica de una limitación,
- la figura 6 representa esquemáticamente un esquema funcional de un supervisor.
De una figura a otra, los mismos elementos se etiquetan con las mismas referencias.
La figura 1 muestra una arquitectura física de un robot humanoide en un número de realizaciones de la invención.
El robot 100 específico en la figura se toma como un ejemplo solo de un robot humanoide en el que la invención puede implementarse. La extremidad 180 inferior del robot en la figura no es funcional para andar, pero puede moverse en cualquier dirección en su base 140 que rueda en la superficie en la que descansa. A modo de ejemplo, este robot tiene una altura 110 que puede ser de alrededor de 120 cm, una profundidad 120 de alrededor de 65 cm y una anchura 130 de alrededor de 40 cm. En una realización específica, el robot de la invención tiene una tablet 150 con la que puede comunicar mensajes (audio, vídeo y páginas web) a su entorno, o recibir entradas de usuarios a través de la interfaz táctil de la tablet. Además del procesador de la tablet, el robot de la invención también usa el procesador de su propia placa madre, que puede ser por ejemplo un ATOM™ Z530 de Intel™. El robot de la invención también incluye ventajosamente un procesador que se dedica a la manipulación de los flujos de datos entre la placa madre y los accionadores que controlan los motores de las articulaciones en una extremidad y las bolas que el robot usa como ruedas, en una realización específica de la invención. Los motores pueden ser de diferentes tipos, dependiendo de la magnitud y par máximo que se necesita para una articulación definida. Por ejemplo, los motores eléctricos con escobillas sin núcleo de e-minebea™ (SE24P2CTCA por ejemplo) pueden usarse, o los motores sin escobillas eléctricos de Maxon™ (EC45_70W por ejemplo). Los MRE son preferentemente del tipo que usa el efecto Hall, con una precisión de 12 o 14 bits.
En realizaciones de la invención, el robot mostrado en la figura 1 también comprende diversos tipos de sensores. Algunos de ellos se usan para controlar la posición y movimientos del robot. Este es el caso, por ejemplo, de una unidad de inercia, ubicada en el torso del robot, que comprende un girómetro de 3 ejes y un acelerómetro de 3 ejes. El robot también puede incluir dos cámaras RGB en color de 2D en la parte delantera del robot (superior e inferior) de tipo Sistema en Chip (SOC), tal como las de Shenzen V-Vision Technology Ltd™ (OV5640), con una resolución de 5 megapíxeles a 5 tramas por segundo y un campo de visión (FOV) de aproximadamente 57° horizontal y 44° vertical.
Un sensor 3D también puede incluirse detrás de los ojos del robot, tal como un sensor ASUS XTION™ SOC con una resolución de 0,3 megapíxeles a 20 tramas por segundo, con aproximadamente el mismo FOV que las cámaras en 2D. El robo de la invención también puede equiparse con generadores de líneas láser, por ejemplo tres en la cabeza y tres en la base, para ser capaces de detectar su posición relativa respecto a objetos/seres en el entorno. El robot de la invención además puede incluir micrófonos para ser capaz de detectar sonidos en el entorno. En una realización, cuatro micrófonos con una sensibilidad de 300 mV/Pa /-3 dB a 1 kHz y un intervalo de frecuencias de 300 Hz a 12 kHz (-10 dB en relación con 1 kHz) pueden implantarse en la cabeza del robot. El robot de la invención también puede incluir dos sensores de sonar, posiblemente ubicados en la parte delantera y trasera de la base, para medir la distancia de los objetos/seres humanos en el entorno. El robot también puede incluir sensores táctiles, en la cabeza y en las manos, para permitir la interacción con seres humanos.
Para traducir sus emociones y comunicarse con seres humanos en el entorno, el robot de la invención también puede incluir:
- LED por ejemplo en los ojos, orejas y en los hombros;
- Altavoces, por ejemplo dos, ubicados en las orejas.
El robot de la invención puede comunicarse con una estación base u otros robots a través de Ethernet RJ45 o una conexión WiFi 802.11.
El robot de la invención puede alimentarse por una batería de Fosfato de Hierro de Litio con energía de aproximadamente 400 Wh. El robot pueda acceder a la estación de carga adecuada para el tipo de batería incluida. La posición/movimientos del robot se controlan por sus motores, usando algoritmos que activan las cadenas definidas por cada extremidad y receptores definidos en el extremo de cada extremidad, a la vista de las mediciones de los sensores.
La figura 2 muestra una arquitectura funcional de los módulos de software de un robot humanoide en un número de realizaciones de la invención.
El objetivo de la invención es proporcionar un procedimiento para permitir a un robot humanoide realizar actividades en una forma autónoma, sin ninguna intervención de un programador para anticipar las condiciones a las que el robot se enfrentará. En la técnica anterior, el robot es capaz de ejecutar escenarios que se han programado y descargado en su placa madre. Estos escenarios pueden incluir reacciones a condiciones que varían en su entorno, pero el robot no será capaz de reaccionar a condiciones que no se han predicho e incluido en el código cargado a su placa madre o a las que se accede de forma distante. En comparación, el objetivo de la invención es permitir que el robot se comporte de forma autónoma, incluso a la vista de eventos/condiciones que no se han predicho por el programador. Este objetivo se logra por la arquitectura funcional que se muestra en la figura 2.
Esta arquitectura funcional comprende básicamente cuatro módulos de software principales.
Un módulo 210 de Servicios incluye servicios de al menos tres tipos:
- Servicios 211 de Extractor, que reciben como entrada lecturas desde los sensores del robot del tipo descrito en relación con la figura 1; estas lecturas de sensor se pre-procesan para extraer datos relevantes (también dichos datos útiles) en relación con la posición del robot, identificación de objetos/seres humanos en el entorno, distancia de dichos objetos/seres humanos, palabras pronunciadas por los seres humanos o emociones de estos; los ejemplos de Servicios de Extractor son: Percepción de la Gente para percibir la presencia de seres humanos en las proximidades del robot, Detección de Movimientos para detectar los movimientos de estos seres humanos; Localización de Sonidos para localizar un sonido, Detección Táctil para interpretar un toque del sensor táctil del robot, Reconocimiento del Habla, Reconocimiento de Emociones, para identificar la emoción expresada por un ser humano en las proximidades del robot, a través de palabras o gestos;
- Servicios 212 de Accionador, que controlan acciones físicas del robot tal como Movimiento para activar los motores de las articulaciones o la base, Rastreador para seguir el movimiento de un ser humano en el entorno del robot, iluminación de los LED del robot para comunicar emociones, Habla Animada (combinaciones de habla y gestos), Comportamientos; comportamientos que son una combinación de movimientos, palabras, iluminaciones que pueden expresar emociones del robot para permitir realizar acciones complejas;
- Servicios 213 de Sistema, que incluyen notablemente Servicios de Datos; Servicios de Datos que proporcionan datos almacenados, ya sea de forma transitoria o a largo plazo; los ejemplos de los Servicios de Datos son:
o Servicio de Sesión de Usuario, que almacena datos de usuario, y su historial de lo que ha realizado con el robot;
o Servicio de Gestor de Paquetes, que proporciona un almacenamiento escalable de procedimientos ejecutados por el robot, con su definición de alto nivel, condiciones de lanzamiento y etiquetas.
Un módulo 220 de Actividades incluye comportamientos 221 del robot que se han preprogramado. La programación de Comportamientos puede realizarse usando un entorno de desarrollo integrado gráfico (Choregaphe™) que es el objeto de la solicitud de patente europea publicada con el n.° EP2435216, que se asigna al solicitante de esta solicitud de patente. Los Comportamientos programados con Choregaphe™ combinan una lógica basada en tiempo y una lógica basada en eventos. Cada Comportamiento se etiqueta con un Manifiesto 222, que es un archivo de texto que incluye notablemente las condiciones de lanzamiento del Comportamiento. Estas condiciones de lanzamiento se basan en lo que pueden percibir los extractores 211.
Un módulo 230 de Mente está a cargo de seleccionar una o varias Actividades a lanzar. Al hacer esto, la Mente se suscribe a los Extractores y evalúa las condiciones de lanzamiento de todas las Actividades instaladas. Las variables de estas condiciones se basan en eventos. Por eso, eficazmente, solo las declaraciones de condición que contienen variables cambiadas necesitan re-evaluarse. En función de los resultados de los algoritmos de clasificación, sus prioridades y el ciclo de vida (véase a continuación), las Actividades pueden lanzarse, y algunas Actividades detenerse posiblemente.
Una Actividad ejecutada dependerá de llamadas API (acrónimo de la expresión francesa “Application Pour Interface”) a los Servicios para realizar la tarea que se ha programado. Siempre que una Actividad esté realizándose o detenida, la Mente recoge datos sobre lo que ha ocurrido, el estado actual de las condiciones, y qué realimentación de usuario parecía facilitar el aprendizaje. Si un evento de Extractor existente no es suficiente para las condiciones, los desarrolladores pueden crear un Extractor adicional para generar un nuevo evento, y distribuirlo en un paquete con su aplicación.
Para hacer esto, el Módulo 230 de Mente une los Servicios y los módulos de Actividad al controlar la selección de las Actividades, y lanzar los Accionadores en función de las lecturas de los Extractores y en algoritmos realizados en la Mente llamados Selectores. Los ejemplos de Selectores son:
- Vida 231 Autónoma, que ejecuta actividades en función del contexto de la situación, la Mente puede decir a la Vida Autónoma en qué actividad enfocarse (véanse ejemplos a continuación); cualquier Actividad tiene acceso completo a todos los procedimientos de llamada del módulo API; las Actividades pueden incluir una limitación que dirigirá a la Vida Autónoma a enfocarse en una Actividad definida;
- Conocimiento 232 básico, que se suscribe a los Servicios de Extractor tal como Percepción de la Gente, Detección de Movimiento y Localización de Sonidos para decirle al Servicio de Movimientos que se mueva; la Mente configura el Comportamiento de Conocimiento básico en función de la situación; en otro momento, el Conocimiento Básico actúa por sí mismo, o se configura por una Actividad en ejecución;
- Diálogo 233, que se suscribe al Extractor de Reconocimiento de Habla y usa el Servicio de Accionador de Habla Animada para hablar; en función del contexto de una situación, la Mente puede decir al Diálogo en qué temas enfocarse; los metadatos en manifiestos unen esta información a la mente; el Diálogo también tiene sus algoritmos para gestionar una conversación y normalmente actúa por sí mismo.
Un Motor 240 de Ejecución lanza las llamadas API para invocar los Servicios.
El objetivo de la invención es más específicamente controlar un robot humanoide con ruedas omnidireccional que puede perturbarse en gran medida e inclinarse alrededor de sus ruedas. El procedimiento se basa en dos controladores predictivos de modelo lineal, dependiendo del modelo dinámico del robot y en un tercer controlador para asegurar una transición correcta y suave entre los primeros dos controladores. Un estimador se diseña para detectar cuándo el robot entra en la dinámica de inclinación, o cuándo vuelve a su dinámica estable nominal.
Usando:
- posición pre-ordenada y referencias de velocidad, y un ángulo de inclinación y referencias de velocidad angular establecidas en 0,
- posición de cuerpo, posición base y datos de velocidad angular extraídos de las medidas detectadas, y datos útiles llamados,
cada controlador calcula los comandos de posición, velocidad y aceleración en función de:
- un modelo de robot de punto de masa doble con movimiento de inclinación como se muestra en las figuras 3 y 4.
El primer punto de masa b representa el Centro de Masa (CoM) de base móvil, y el segundo punto de masa c representa el cuerpo superior CoM; la articulación entre la base 140 móvil y el cuerpo (o cuerpo superior) 190 se considera como sin masa. Cuando el robot no se inclina, el CoM del cuerpo superior y la base móvil son cc y bc. El ángulo de inclinación es y ; h es la altura de cc. Este modelo se almacena como servicio 213 de datos de sistema. - una ley de control predictiva de modelo lineal con un tiempo discretizado según un período de tiempo de muestreo T y un número N de muestras predichas, expresado como formulación de optimización cuadrática con una suma ponderada de objetivos, y un conjunto de limitaciones lineales predefinidas. Para definir el comportamiento dinámico del cuerpo controlado y una base (c y b), se elige primero la duración de la predicción (horizonte) y el periodo entre cada instante de muestreo. Elegir un horizonte tan pequeño como sea posible y un periodo lo más grande posible reducirá el tiempo de cálculo, pero también reducirá la estabilidad y la robustez del control, dependiendo de la clase dinámica. Para conservar la linealidad del sistema, se elige una clase polinominal de orden 3 para el cuerpo y trayectorias de base para tener una trayectoria CoP continua, para evitar máximos de fuerzas en el robot. Además, en este controlador, el tiempo se muestrea, con un periodo de muestreo T. El número de muestras predichas es N. Otra ventaja de este tipo de control es que es simple de gestionar con muchas limitaciones de desigualdad, como límites cinemáticos del robot, velocidad y aceleración máxima de la base móvil y límites CoP. Esta ley de control se almacena como servicio 213 de datos del sistema que llaman a la API de Movimiento.
Calcular los comandos de posición, velocidad y aceleración implica controlar el ángulo de inclinación y la velocidad angular del robot.
El primer controlador se dedica a la situación en que el robot no se inclina: entonces el ángulo de inclinación es nulo.
Para tener un control en tiempo real, el modelo de robot necesita ser lo más simple posible. Se debe calcular una buena aproximación de las fuerzas que actúan por la base en el suelo. La repartición de las masas en el robot no puede realizarse por un modelo de punto de masa único, porque alrededor de la mitad de la masa se concentra en la base y el resto en el cuerpo superior.
Ahora se pueden escribir las ecuaciones de Newton y Euler para este sistema, donde el eje z es el eje vertical, y x e y los dos ejes horizontales:
'c (¿" ~P y) Fb/c 0 )
■b(i> + g) = Fg/b - F (2)
Lc — (b — c) x Fb/c (3)
Lb = {p-b)x Fg/b (4)
donde mc y mb son las masas respectivamente vinculadas a c y b; -^C y Lb los momentos angulares para cada punto de masa.
p xyz pxyz
b! c corresponde a las fuerzas que actúan por la base móvil en el cuerpo superior y 9¡ b corresponde a las fuerzas que actúan en el suelo en las tres ruedas de la base móvil.
p xyz
Además, p es el CoP de las fuerzas 9¡ b , que es el baricentro de ellas. Debido a su definición, p solo se define en el polígono convexo representado por los puntos de contacto de las tres ruedas.
En este modelo, se consideran directamente los momentos entre c y b (3)(4). Esto implica que se niega el momento inducido por los brazos. Se puede hacer esto porque en los casos de funcionamiento, no se mueven rápido. Al combinar las ecuaciones (1)(2)(3)(4), se puede escribir la ecuación dinámica del sistema:
Figure imgf000008_0001
Se puede apreciar en la ecuación (5) que la ecuación dinámica de dos modelos de masa es simplemente la suma de dos individuales.
Ahora, para linealizar la ecuación (5), se formulan algunas hipótesis. Primero, se puede negar el momento angular
total ~^b ya que se elige considerar solo el momento entre c y b. En segundo lugar, ya que se tiene un robot redundante, se puede mover el CoM de c alrededor de los ejes x e y sin modificar su posición en el eje z. Se considera cz limitado a un valor constante h; esta hipótesis es importante para obtener un modelo lineal pero el robot puede aún rodar sobre su base sin esta hipótesis. Además, para simplificar la descripción, se considera preferentemente un suelo plano y horizontal, por lo que pz = 0. Si no hay DoF para controlar la posición bz, se puede establecer a una constante I. Finalmente se aprecia que gx = gy = 0 y gz = g la norma de gravedad.
Usando estas hipótesis y notas, se puede reescribir la ecuación (5) como sigue:
mcg(ccy- p xy) mbg(bxy- p xy) = mchóxy mbíbxy
Se puede usar ahora la ecuación (6) para proporcionar una relación lineal entre el CoP y las posiciones y aceleraciones de la base y del cuerpo:
Figure imgf000009_0001
Se puede apreciar que este modelo no tiene en cuenta ninguna posibilidad de inclinación. Así, para asegurar la validez del modelo, una limitación de CoP debe añadirse al controlador para asegurar que el CoP está estrictamente dentro
del polígono convexo definido por las tres ruedas del robot: un criterio de robustez se define. Se considera ^ como el polígono convexo representado por el punto de contacto de cada rueda con el suelo; un ejemplo de este polígono D p xy e d '
se muestra en la figura 5. Por definición, siempre se tiene . Para tener una limitación CoP invariante por
el marco del robot centrado en b, se ha diseñado una limitación conservativa: pxy £ D ' ID)' rotación, en donde es
un círculo centrado en b de radio r, con la propiedad 6 .
Cuantificar la robustez de este sistema es una cuestión abierta. En la ausencia de cualquier modelización de las fuerzas de perturbación, no se puede realizar ninguna hipótesis sobre la dirección, la amplitud y su dinámica. La capacidad del robot para compensar una perturbación puede vincularse con el CoP y la posición CoM de c. Ya que puede moverse, el robot puede reaccionar a una perturbación fuerte. Puede apreciarse que, en la ausencia de cualquier hipótesis en la perturbación, la posición CoP y CoM de c tiene el mayor rango para moverse en cualquier dirección si está cerca de b. Se propone un criterio de robustez Z, que es igual a 0 en la robustez máxima:
Figure imgf000009_0002
donde Zf es un factor en el intervalo [0; 1] que determina qué tipo de robustez se considera más importante, para centrar el CoP o centrar el CoM de c.
Al definir este modelo de robot para abordar el caso cuando el robot no se inclina, se puede abordar la ley de control correspondiente.
Figure imgf000009_0003
Existe una consecuencia importante en la elección del periodo de muestreo T. La trayectoria puede estar fuera de las limitaciones entre dos muestras, ya que se limita la trayectoria solo en cada tiempo de muestreo. Por motivo de tiempo real, no se puede elegir un valor T demasiado pequeño. Así, es necesario tener en cuenta este sobreflujo en cada limitación como margen de seguridad.
Se considera
Figure imgf000009_0004
considera el estado inicial
Figure imgf000009_0005
Al usar las ecuaciones (9)( 10)( 11), se puede escribir la relación entre cada derivada de la trayectoria de cuerpo, (C, Ic y c ) y el comando r u - 1
Figure imgf000010_0001
Con:
Figure imgf000010_0002
La misma manera se usa para definir la dinámica de b. Se puede apreciar que Uc,
Figure imgf000010_0003
invertibles porque son matrices triangulares menores cuadradas sin cero en la diagonal.
En referencia a p, al usar la ecuación (6) se puede escribir esta relación:
Figure imgf000010_0004
Con:
Figure imgf000010_0005
Entre diferentes procedimientos que se pueden usar para solucionar el problema de determinar tal ley de control que cumple estas condiciones de posición, robustez y de comportamiento dinámico, se elige abordarlo como un problema de optimización. Y para solucionar este problema de optimización se elige formularlo como una minimización de mínimos cuadrados bajo limitaciones lineales o como una optimización cuadrática con objetivos y limitaciones lineales. Esta razón principal es que los solucionadores para este tipo de problemas son fáciles de calcular. Añadir limitaciones no lineales u objetivos de minimización no cuadrática incrementa significativamente el tiempo de cálculo.
x = ( c x c y ' B x B y y .
Las variables de optimización corresponden al cuerpo controlado y la base Por lo que cada objetivo y limitación debe expresarse como una función de X.
1) Objetivos de control:
Los objetivos Oi se expresarán como una formulación de minimización de mínimos cuadrados y un QP (Problema Cuadrático):
Figure imgf000011_0001
X4 es X cuando se transpone.
El primer objetivo es el control de rastreo. En este control, se ha elegido hacer un rastreo de posición/velocidad.
R x y ó W
Supongamos que J y son la posición y velocidad objetivo sobre el horizonte. Al usar (13), se puede escribir el objetivo de control de velocidad O í
Figure imgf000011_0002
Al usar (12) se puede escribir el objetivo de control de posición O2:
Figure imgf000011_0003
El siguiente objetivo es la maximización de robustez. Al minimizar Z se maximiza la robustez. Supongamos UPbb = UPb - Ub. Al usar (8), (12), (16) se puede escribir el objetivo de control de robustez O3:
Figure imgf000011_0004
Q 3 = C /Q 3 P ( l - C f ) Q s c (24)
Figure imgf000012_0001
Preferentemente, se define otro objetivo para evitar el pico de tirón en el robot; para eso se añade un objetivo de minimización de tirón O4 al control:
Figure imgf000012_0002
En referencia a este objetivo en adelante, se puede apreciar que cuando el robot cae, las trayectorias de c y b crecen exponencialmente. Por lo que al minimizar el tirón de estas trayectorias, se incrementa directamente evitar la divergencia exponencial de c y b, lo que contribuye a estabilizar el robot.
2) Limitaciones de control:
A continuación las limitaciones Ri se expresarán como una formulación de limitación de desigualdad lineal QP:
Ri • v~ < V¿X < Vi .
La primera limitación R1 es asegurar la estabilidad, para asegurar que el robot no se incline por sí mismo: Z debe ser inferior o igual a 1. Esta limitación no es lineal, por lo que se introduce un conjunto conservativo de limitaciones lineales
para aproximarse a esto. Se elige usar una forma octogonal de limitacio D "
_ne rs inscrita en el círculo UD' como se muestra en la figura 4: se define una limitación de límite CoP. Véase 10 Esta limitación R1 que se refiere a los límites CoP se escribe como sigue:
.Ri : P xy - B xye P"
Figure imgf000013_0001
La segunda limitación R2 se refiere a los límites cinemáticos de la base móvil. Véase bmáx y bmáx como velocidad de aceleración máxima de la base móvil. Se puede escribir la limitación R2 como sigue:
Figure imgf000013_0002
La tercera y última limitación R3 se refiere a los límites cinemáticos del cuerpo. Debido a sus articulaciones, el robot puede mover la CoM de su cuerpo superior en una zona rectangular H ‘ . alrededor del CoM de la base móvil. Supongamos que kxy son los límites de la forma rectangular H la limitación R3 se escribe como sigue:
r 3 : - k xy < Cxy - bxy < k xy (32)
Figure imgf000014_0001
Los límites cinemáticos del cuerpo pueden ser nulos. Entonces se tiene: cxy = bxy.
Para solucionar este problema de optimización con estos objetivos y limitaciones, se usa un solucionador de problemas cuadrático lineal. Alguna bibliografía sobre solucionar un QP puede encontrarse en el libro “Optimización numérica, segunda edición” de J. Nocedal y S.J. Wright 2000. Este tipo de solucionador encuentra la solución óptima de un problema como este:
f m in( X tQ X p tX)
1 v~ < V X < v
K (34)
donde Q es simétrica y definida positiva. Usando las ecuaciones (19), (21), (25), (27), (29), (31), (33), se pueden llenar los valores de Q, p, V, v- y v+:
Q= aiQi+ CI2Q2+ Q3Q3 + G4Q4 + Gs Qs (35)
p = aip i+ a2p2+a3p3 a4P4 a5p5 (36)
Figure imgf000014_0002
donde ai son las ponderaciones asociadas a cada objetivo. Esto puede elegirse experimentalmente.
La elección de los valores ai es primordial para definir el comportamiento de la ley de control. El hueco relativo entre cada ai define el objetivo a priorizar, y cuál se ignorará. Si ai y a2 son mayores que las otras ponderaciones, el rastreo de trayectoria será muy eficaz, pero la robustez será menos eficaz, y el tirón del cuerpo y de la base puede ser alto. Si a3 es mayor que las otras ponderaciones, el robot será muy robusto a otras perturbaciones. Se puede apreciar que en este modo de comportamiento, si se define una velocidad positiva como objetivo de rastreo, el robot se iniciará hacia atrás antes de moverse hacia adelante, para centrar el CoP. La ponderación a4 tiene un efecto suavizante en las trayectorias de c y b, si esta ponderación es mayor que la otra, la solución óptima será no moverse. Por tanto, esta ponderación debe ser pequeña.
Algunos otros comportamientos pueden obtenerse eligiendo ponderaciones adecuadas. Si el hueco relativo entre dos objetivos es grande (varios órdenes de magnitud), el menor objetivo se computará casi en el espacio nulo del mayor. Usar esta propiedad es útil cuando se quiere tener una pseudo limitación que puede relajarse si no se puede satisfacer. Por ejemplo, se puede añadir un objetivo de alta ponderación del CoM del cuerpo superior para centrarlo en la posición de base móvil para tener un comportamiento visual bueno. Esto tendrá el efecto de fijar el CoM en la posición de base móvil siempre que sea posible, pero en el caso de que no sea posible, esta pseudo limitación se relajará.
El conjunto de ponderación puede fijarse, lo que significa que se elige con antelación si se quiere tener un mejor rastreo o robustez de trayectoria.
En referencia a la figura 2, el modelo de robot y la ley de control se almacenan como comportamiento 221; se implementan por el motor 240 de ejecución y el módulo 210 de servicio de acuerdo con el esquema de bucle cerrado que comprende las siguientes etapas:
- recuperar la medida de posición de la medida de cuerpo y posición de la base, desde los sensores,
- convertir estas medidas de posición en medidas de posición observadas, usando extractores 211, - calcular en un servicio 213 de sistema, comandos de velocidad de cuerpo y de velocidad de base usando la ley de control descrita anteriormente,
- integrar estas velocidades de cuerpo y base, para proporcionarlas a los extractores 211,
- convertir estos comandos (posición y velocidad para el cuerpo y la base) como instrucciones para los accionadores 212 de robot: las ruedas de la base y articulaciones del robot.
El segundo controlador se dedica a la situación cuando el robot se inclina. Si el robot está a punto de inclinarse debido a una perturbación por ejemplo, el modelo definido en la sección anterior no es suficiente. Debe tenerse en cuenta el movimiento de inclinación en el modelo como se muestra en la figura 4: el ángulo de inclinación ^ no es nulo. Primero, se considera que el robot solo puede inclinarse en dos de sus ruedas. No se considera que se incline solo alrededor de una rueda porque el robot pierde demasiados DoF para controlarse apropiadamente en este caso.
Cuando el robot se inclina, el CoP solo puede variar en la línea entre dos ruedas de contacto. Para minimizar la probabilidad de inclinarse en una rueda, el CoP se limita a estar en el medio de las dos ruedas de contacto. Además, la estructura mecánica del robot se ha realizado para reducir los riesgos de que se incline en una rueda. Durante el movimiento de inclinación, el robot pierde un DoF permitido por la rueda en el aire. El resultado es que el robot se vuelve no holonómico. Algunas limitaciones en el controlador deben añadirse para solucionar esto.
Se considera T como la unidad de vector en el plano xy y ortogonal al eje de inclinación, p solo puede moverse en el eje definido por vw. Además supongamos que ^ es el ángulo de inclinación. Debido al suelo, se tiene ^ > 0. Se puede dividir c (y respectivamente b) en dos componentes: una parte controlada cc (y respectivamente bc) por los motores del robot y otra parte que depende del ángulo de inclinación por las siguientes relaciones cinemáticas:
Figure imgf000015_0001
Para simplificar estas relaciones, se hacen dos suposiciones:
c *y _ v xy
- dc puede considerarse constante porque el movimiento de c p en relación con ^ es insignificante durante el movimiento de inclinación transitorio;
- como es normal, se ignoran los efectos de Coriolis en relación con los efectos centrífugos v/COS( ^ 5s>^ /2Sen(i4J). Por esto las ecuaciones pueden reescribirse como sigue:
Figure imgf000016_0001
Finalmente, se linealizan estas ecuaciones alrededor de y = 0, considerando que el ángulo de inclinación está cerca de 0. Además, se puede considerar que h>>dcsen(Y), cuando y ~ 0. Las ecuaciones se vuelven:
cxy = c*y + v iydcxb (50)
c*y = Cxcy + vxydcé (51)
c*y = c*y 4- vx/ d j (52)
c* = h (53)
cz = 0 (54)
cz = 0 (55)
y de la misma manera para b, sustituir dc por db y h por I. Ahora al usar (7)(50)(52)(53)(55), se puede reescribir la ecuación de la dinámica como sigue:
Figure imgf000016_0002
Se aprecia que cuando la velocidad angular es nula (lo que significa que el robot está en estado de no inclinación), se obtiene la ecuación (7) de la modelización del robot descrita en relación con el controlador de no inclinación.
Se ha elegido limitar la posición de p en el medio de las dos ruedas de contacto. Así, p se define por completo por la
Figure imgf000017_0001
Tras definir el modelo de robot con inclinación, se puede abordar la ley de control correspondiente.
Se usa el mismo formalismo que en la sección previa. Así se pueden definir las trayectorias de ^:
Figure imgf000017_0002
Usando estas relaciones y la ecuación (58), se tiene:
Figure imgf000017_0003
Se aprecia que se tiene una reacción lineal directa entre t t v y C c ^ ’ B v y B usando las ecuaciones (59) (61):
Figure imgf000017_0004
Y en una forma sintética:
Esta relación es válida solo si la matriz:
Figure imgf000018_0001
invertible.
Figure imgf000018_0002
l /v y l /v son dos matrices triangulares inferiores con diagonal constante de valor ^ y T el periodo de muestreo. Así, la invertibilidad es solo válida si:
Figure imgf000018_0003
Al solucionar este sistema se tiene una condición en T para permitir la invertibilidad de esta matriz (se asume que T > 0):
Figure imgf000018_0004
Para el robot según la invención con las características descritas en el preámbulo en relación con la figura 1 se tiene T t 220 ms.
Para solucionar este problema se usa el mismo formalismo que en la sección anterior (el robot no se inclina). Las variables de optimización permanecen iguales porque a pesar de añadir la nueva variable 4 , se ha limitado el CoP p para estar en un punto. Así, el número de variables para solucionar el problema permanece sin cambios:
Figure imgf000018_0005
1) Objetivos de control:
El primer objetivo es minimizar la norma de 4 , para recuperar la inclinación. Se puede expresar la relación entre 4 y X:
Figure imgf000018_0006
Ahora, se puede escribir este objetivo O1
Figure imgf000019_0001
El segundo objetivo es la minimización de velocidad de inclinación. Para aterrizar con la menor velocidad angular, para evitar rebotes lo máximo posible y minimizar impactos mecánicos, es importante minimizar la velocidad angular durante la inclinación. Se puede expresar la relación entre ^ y X:
Figure imgf000019_0002
Ahora se puede escribir este objetivo O2:
Figure imgf000019_0003
El tercer objetivo es para estabilidad numérica, de forma similar con el caso sin inclinación:
Figure imgf000020_0001
2) Limitaciones de control:
A continuación, las limitaciones se expresarán como formulación de limitación de igualdad lineal QP:
Ri'Vi < VtX < v t . La primera limitación se refiere a los límites cinemáticos de la base móvil. Supongamos que ' max w max son velocidad y aceleración máxima de la base móvil, se puede escribir la limitación R2 como sigue:
Figure imgf000020_0002
La segunda limitación se refiere a los límites cinemáticos del cuerpo superior. Debido a sus articulaciones, el robot puede mover el CoM de su cuerpo superior en una zona rectangular alrededor del CoM de la base móvil. Supongamos H
kxy como límites de la forma rectangular , la limitación R2 se escribe como sigue:
Figure imgf000020_0003
La tercera limitación se corresponde a la presencia del suelo, que implica que el ángulo de inclinación siempre es positivo:
R 3 : tp > 0 (82)
Figure imgf000021_0001
La última limitación significa tener en cuenta la pérdida de DoF de la base móvil. Solo es posible mover b en el eje vv. La limitación R4 se escribe como sigue:
R i : «4 x bxy = o (84)
Figure imgf000021_0002
El tercer controlador se dedica a la fase de aterrizaje. Es igual que el primer controlador (estado de no inclinación), pero sin los dos objetivos de control de rastreo y con la limitación R4 del controlador de inclinación. Más precisamente, los objetivos son:
- un objetivo relacionado con la distancia entre el CoP y el centro de base, siendo el CoP el baricentro de fuerzas de contacto entre el robot y el suelo, y
- un objetivo de estabilidad numérica.
Un objetivo de velocidad de base puede añadirse a estos objetivos.
Las limitaciones son:
- una velocidad y aceleración máxima de la base móvil,
- límites cinemáticos del cuerpo,
- un límite CoP,
- un movimiento del cuerpo solo en el eje de velocidad angular.
En la vida útil del robot, se elige qué controlador (mostrado en la figura 6) se usa:
• El primero 501 para controlar el robot cuando se inclina.
• El segundo 502 usado cuando el robot se inclina, para recuperar la perturbación.
• El tercero 503 usado cuando el robot está en fase de aterrizaje.
Según estos controladores se definen tres estados del robot:
• El estado de no inclinación, cuando el primer controlador 501 se activa.
• El estado de inclinación, cuando el segundo controlador 502 se activa.
• El estado de aterrizaje, cuando el tercer controlador 503 se activa.
Se ha desarrollado un estimador 504 para predecir el comportamiento futuro del robot cuando se inclina al estimar el tiempo de impacto de aterrizaje y la velocidad angular de impacto como se describe adicionalmente.
Como se muestra en la figura 4, en cada tiempo de muestreo un supervisor 500 elije uno de estos tres estados según las siguientes etapas.
Inicialmente, el robot está en estado de no inclinación.
En cada tiempo de muestreo se mide el ángulo de inclinación y velocidad de inclinación: si uno de ellos es mayor que cero, se usa el estimador para estimar la velocidad angular de impacto y el tiempo de impacto.
A) Cuando el robot está en estado de no inclinación.
• Si no existe tiempo de impacto estimado (movimiento inestable), cambiar al estado de inclinación, ya que el robot no puede recuperarse sin hacer nada.
• Si la velocidad angular de impacto es muy alta para la seguridad del robot (=velocidad angular de impacto por encima del límite predefinido 1), cambiar al estado de inclinación, para reducir la velocidad angular de impacto.
• Si la velocidad angular medida es muy alta (=velocidad angular medida por encima del límite predefinido 2), sea cual sea la velocidad de impacto estimada, cambiar a estado de inclinación. Esta condición pretende tener menos retardo para compensar un empuje fuerte. Se asume que si se mide una velocidad angular alta, esto es porque alguien empuja el robot para tirarlo.
• De lo contrario no existe necesidad de recuperar el ángulo, pero si el ángulo de inclinación no es nulo, cambiar a estado de aterrizaje porque el robot ha perdido un DoF debido a la rueda en el aire.
• De lo contrario si el ángulo de inclinación es nulo permanecerá en este estado.
B) Cuando el robot está en estado de inclinación.
En este estado, el segundo controlador se activa para minimizar el ángulo de inclinación y la velocidad angular de inclinación del robot. En este modelo, no se modeliza el suelo que añadirá una fuerza para compensar el movimiento de inclinación en el impacto. Controlar el ángulo en 0 hace que la aceleración del robot esté a una velocidad muy alta, para compensar la gravedad que actúa en el robot en este ángulo. Por eso no se necesita esperar hasta que la inclinación termine para dejar de usar este controlador.
• Si la velocidad angular medida es muy alta (=la velocidad angular medida está por encima del límite predefinido 2), cualquiera que sea la velocidad de impacto estimada, permanecerá en este estado;
• Si la velocidad de impacto estimada está por detrás del límite, cambiar a estado de aterrizaje;
• De lo contrario, permanecer en este estado.
C) Cuando el robot está en estado de aterrizaje.
Este estado gestiona una transición suave entre el estado de inclinación y el estado no inclinación, primero para evitar una aceleración de alta base debido al suelo no modelizado en el controlador de inclinación, y en segundo lugar para dejar que la rueda en el aire caiga y el robot recupere el DoF perdido antes de reactivarse el estado de no inclinación.
• Si no existe tiempo de impacto estimado, o si la velocidad angular de impacto es muy alta, o si la velocidad angular medida es muy alta, cambiar al estado de inclinación;
• Si el ángulo de inclinación cae a 0, esperar una cantidad de tiempo pequeña, en caso de que aparezca rebote, de lo contrario, cambiar al estado de no inclinación;
• De lo contrario, permanecer en este estado.
Ahora se describe el estimador. Se ha desarrollado un estimador para conocer si el robot caerá o no, y en el caso negativo, cuál será la velocidad angular de impacto. Se usa el ángulo de inclinación medido actual ipoY la velocidad
con lo que se asume que se tiene una aceleración constante
* = - i cos{*° +<atan(¿))-
Cuando el ángulo de inclinación ip es 0, el ángulo entre el CoM de la base móvil y el punto de contacto de inclinación a t a n ¿ ) .
es Esta suposición significa que la base móvil detendrá la aceleración. Ya que este estimador se usa para conocer si se puede usar el modo de aterrizaje (que controla la aceleración de la base móvil a 0), considerar una aceleración angular constante es válido. Se puede solucionar el sistema asociado cuadrático, para encontrar el tiempo
de contacto ti y si existe, calcular la velocidad angular en este momento
Figure imgf000022_0001
Figure imgf000023_0003
Figure imgf000023_0001
Obviamente, se elige la solución donde t¡ > 0. Por esto, la velocidad de impacto estimada ^ es:
Figure imgf000023_0002
El estimador y el supervisor también pueden almacenarse como un servicio 213 de datos de sistema.

Claims (11)

REIVINDICACIONES
1. Un robot (100) humanoide con un cuerpo (190) unido a una base (140) de suelo móvil omnidireccional equipado con:
- un sensor de posición de cuerpo, un sensor de posición de base y un sensor de velocidad angular para proporcionar medidas,
- accionadores (212) que comprenden motores de articulaciones y al menos 3 ruedas ubicadas en la base móvil omnidireccional, con al menos una rueda omnidireccional,
- extractores (211) para convertir medidas detectadas,
- un supervisor (500) para calcular comandos de posición, velocidad y aceleración a partir de los datos extraídos, - medios para convertir comandos en instrucciones para los accionadores,
caracterizado porque el supervisor comprende:
- un controlador (501) de estado de no inclinación que usa un modelo de robot en el que el ángulo de inclinación del robot es nulo, un controlador (502) de estado de inclinación que usa un modelo de robot que tiene en cuenta el movimiento de inclinación y un controlador (503) de estado de aterrizaje para controlar el robot cuando está en fase de aterrizaje, comprendiendo cada controlador medios para calcular, a partir de los datos extraídos, posición pre-ordenada y referencias de velocidad, y un ángulo de inclinación y referencias de velocidad angular establecidas en 0, comandos de posición, velocidad y aceleración basados en el modelo de robot de punto de masa doble y una ley de control predictiva de modelo lineal con un tiempo discretizado de acuerdo con un periodo de tiempo de muestreo T y un número N de muestras previstas, expresado como una formulación de optimización cuadrática con una suma ponderada de objetivos, y un conjunto de limitaciones lineales predefinidas,
- un estimador (504) de un tiempo (t¡) de un impacto del robot humanoide con el suelo, y una velocidad angular
( ^ del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo y
- medios para elegir uno de dicho controlador de estado de no inclinación, controlador de estado de inclinación y
controlador de estado de aterrizaje según una velocidad angular estimada del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo y velocidad angular extraída.
2. El robot humanoide de la reivindicación 1, caracterizado porque el estimador (504) asume que la base tiene una aceleración angular constante.
3. El robot humanoide de una cualquiera de las reivindicaciones anteriores, caracterizado porque el controlador de no inclinación es capaz de calcular comandos de posición, velocidad y aceleración a partir de los datos extraídos usando referencias pre-ordenadas, y por que los objetivos son:
- un objetivo de posición de base,
- un objetivo de velocidad de base,
- un objetivo relacionado con la distancia entre el CoP y el centro de base, siendo el CoP el baricentro de las fuerzas de contacto entre el robot y el suelo,
y las limitaciones son:
- velocidad y aceleración máximas de la base móvil,
- límites cinemáticos del cuerpo,
- límite CoP.
4. El robot humanoide de una cualquiera de las reivindicaciones anteriores, caracterizado porque el controlador de inclinación es capaz de calcular comandos de posición, velocidad y aceleración a partir de los datos extraídos usando referencias pre-ordenadas y un ángulo de inclinación y referencias de velocidad angular establecidas en 0, y por que los objetivos son minimización de ángulo de inclinación y minimización de velocidad angular y las limitaciones son límites cinemáticos de la base móvil, límites cinemáticos del cuerpo, un ángulo de inclinación positivo y un movimiento del cuerpo solo en el eje de velocidad angular.
5. El robot humanoide de la reivindicación 3, caracterizado porque un objetivo de minimización de tirón se añade a la suma ponderada de objetivos.
6. El robot humanoide de una cualquiera de las reivindicaciones anteriores, caracterizado porque el controlador de aterrizaje se basa en el modelo de robot en el que el ángulo de inclinación del robot es nulo y capaz de calcular comandos de posición, velocidad y aceleración a partir de los datos extraídos usando referencias pre-ordenadas y un ángulo de inclinación y referencias de velocidad angular establecidas en 0, y por que los objetivos son un objetivo relacionado con la distancia entre el CoP y el centro de base, siendo el CoP el baricentro de las fuerzas de contacto entre el robot y el suelo, las limitaciones son una velocidad y aceleración máximas de la base móvil y límites cinemáticos del cuerpo y un límite CoP y un movimiento del cuerpo solo en el eje de velocidad angular.
7. El robot humanoide de una cualquiera de las reivindicaciones anteriores, caracterizado porque un objetivo de velocidad de base se añade a la suma ponderada de objetivos.
8. El robot humanoide de una cualquiera de las reivindicaciones 3 a 7, caracterizado porque los límites cinemáticos del cuerpo son nulos.
9. Un procedimiento para controlar un robot humanoide con un cuerpo (190) unido a una base (140) de suelo móvil omnidireccional, con accionadores que comprenden al menos tres ruedas (141) con al menos una rueda omnidireccional que comprende:
- recuperar medida de posición del cuerpo, medida de posición de la base, ángulo de inclinación del robot y medida de velocidad angular del robot, en tiempos de muestreo predefinidos,
- convertir estas medidas en datos extraídos,
- si uno entre la medida de ángulo de inclinación y/o la medida de velocidad angular es mayor que cero, estimar
un tiempo de (t¡) de un impacto del robot humanoide con la velocidad del suelo y una velocidad angular del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo,
- elegir un estado del robot entre un estado de inclinación definido, o estado de no inclinación o estado de aterrizaje del robot de acuerdo con dicha velocidad angular del robot humanoide en dicho tiempo del impacto y la velocidad angular extraída,
- usar los datos extraídos, y de acuerdo con dicho estado de la posición y velocidad pre-ordenadas del robot de referencia, y un ángulo de inclinación y velocidad angular referenciados establecidas en 0, calcular los comandos de posición, velocidad y aceleración en función de un modelo de robot de punto de masa doble y de una ley de control predictiva de modelo lineal con un tiempo discretizado según un periodo de tiempo de muestreo T y un número N de muestras previstas, y expresado como formulación de optimización cuadrática con una suma ponderada de objetivos con pesos predefinidos y un conjunto de limitaciones lineales, usando respectivamente;
- una ley de control de estado de inclinación en función de un modelo de robot que tiene en cuenta el movimiento de inclinación si el estado del robot es el estado de inclinación,
- una ley de control de estado de no inclinación en función de un modelo de robot en el que el ángulo de inclinación del robot es nulo si el estado del robot es el estado de no inclinación,
- una ley de control de estado de aterrizaje en función del modelo de robot en el que el ángulo de inclinación del robot es nulo si el estado del robot es estado de aterrizaje,
- convertir estos comandos a instrucciones para los accionadores (212) del robot.
10. El procedimiento de la reivindicación anterior, en el que el estado del robot se define de acuerdo con las siguientes etapas:
inicialmente, el robot está en estado de no inclinación,
si el robot está en estado de no inclinación:
• si no existe tiempo estimado (ti) de un impacto del robot humanoide con el suelo, cambiar a estado de inclinación;
• si la velocidad angular
Figure imgf000025_0001
del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo está por encima de un límite predefinido 1, cambiar a estado de inclinación;
• si la velocidad angular medida está por encima de un límite predefinido 2, cambiar a estado de inclinación;
• de lo contrario, si el ángulo de inclinación no es nulo, cambiar a estado de aterrizaje,
si el ángulo de inclinación es nulo permanecer en estado de no inclinación.
cuando el robot está en estado de inclinación:
• si la velocidad angular medida está por encima del límite predefinido 2, permanecer en el estado de inclinación.
• si la velocidad de impacto estimada está por debajo de un límite predefinido 1, cambiar al estado de aterrizaje, • de lo contrario, permanecer en estado de inclinación.
cuando el robot está en estado de aterrizaje:
• si no existe tiempo estimado (ti) de un impacto del robot humanoide con el suelo, cambiar a estado de inclinación;
• si la velocidad angular
Figure imgf000025_0002
del robot humanoide en dicho tiempo del impacto del robot humanoide con el suelo está por encima de un límite predefinido 1, cambiar a estado de inclinación;
• si la velocidad angular medida está por encima de un límite predefinido 2, cambiar a estado de inclinación;
• si el ángulo de inclinación cae a 0, y si una velocidad angular medida en el siguiente momento es nula, cambiar al estado de no inclinación,
de lo contrario, permanecer en estado de aterrizaje.
11. Un programa informático que comprende código informático que, cuando se ejecuta en el robot humanoide de acuerdo con cualquiera de las reivindicaciones 1 a 8, o un ordenador que comprende un puerto de salida para enviar comandos a accionadores de un robot humanoide, lleva a cabo el procedimiento de las reivindicaciones 9 o 10.
ES14305585T 2014-04-17 2014-04-17 Robot humanoide con ruedas omnidireccionales basado en un controlador de posición y velocidad lineal predictivo Active ES2746754T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP14305585.3A EP2933069B1 (en) 2014-04-17 2014-04-17 Omnidirectional wheeled humanoid robot based on a linear predictive position and velocity controller

Publications (1)

Publication Number Publication Date
ES2746754T3 true ES2746754T3 (es) 2020-03-06

Family

ID=50588609

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14305585T Active ES2746754T3 (es) 2014-04-17 2014-04-17 Robot humanoide con ruedas omnidireccionales basado en un controlador de posición y velocidad lineal predictivo

Country Status (14)

Country Link
US (1) US10232508B2 (es)
EP (1) EP2933069B1 (es)
JP (1) JP6496396B2 (es)
KR (1) KR101977912B1 (es)
CN (1) CN106573370B (es)
AU (1) AU2015248711B2 (es)
CA (1) CA2946049C (es)
ES (1) ES2746754T3 (es)
HK (1) HK1216406A1 (es)
MX (1) MX2016013016A (es)
NZ (1) NZ725275A (es)
RU (1) RU2680791C2 (es)
SG (1) SG11201608204QA (es)
WO (1) WO2015158885A2 (es)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323250B2 (en) 2011-01-28 2016-04-26 Intouch Technologies, Inc. Time-dependent navigation of telepresence robots
US9098611B2 (en) 2012-11-26 2015-08-04 Intouch Technologies, Inc. Enhanced video interaction for a user interface of a telepresence network
US9361021B2 (en) 2012-05-22 2016-06-07 Irobot Corporation Graphical user interfaces including touchpad driving interfaces for telemedicine devices
EP2852881A4 (en) * 2012-05-22 2016-03-23 Intouch Technologies Inc GRAPHIC USER INTERFACES CONTAINING TOUCH PAD TOUCH INTERFACES FOR TELEMEDICINE DEVICES
ES2746754T3 (es) * 2014-04-17 2020-03-06 Softbank Robotics Europe Robot humanoide con ruedas omnidireccionales basado en un controlador de posición y velocidad lineal predictivo
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
CN110235071B (zh) * 2016-11-10 2023-02-17 俄亥俄大学 自动汽车引导与轨迹跟踪
CN108345211A (zh) * 2017-01-23 2018-07-31 深圳市祈飞科技有限公司 双足仿人机器人及其非线性步态规划方法以及控制方法
EP3571626A1 (en) * 2017-01-23 2019-11-27 Qualcomm Incorporated Single-processor computer vision hardware control and application execution
JP7000704B2 (ja) * 2017-05-16 2022-01-19 富士フイルムビジネスイノベーション株式会社 移動式サービス提供装置及びプログラム
CN107457767B (zh) * 2017-07-07 2020-04-21 歌尔科技有限公司 一种紧急避障机器人及其设计方法
WO2019095108A1 (zh) * 2017-11-14 2019-05-23 深圳先进技术研究院 机器人的模仿学习方法、装置、机器人及存储介质
CN109960246B (zh) * 2017-12-22 2021-03-30 华为技术有限公司 动作控制方法及装置
CN109991989B (zh) * 2017-12-29 2021-12-17 深圳市优必选科技有限公司 机器人空闲状态下的动态平衡方法、装置及存储介质
KR102137173B1 (ko) * 2018-06-15 2020-07-24 엘지전자 주식회사 안내 로봇
KR20210024445A (ko) * 2018-06-22 2021-03-05 소니 주식회사 미끄러짐 검출 장치
US20210129347A1 (en) * 2018-06-22 2021-05-06 Sony Corporation Controller, control method, and program
KR102148032B1 (ko) * 2018-06-25 2020-08-26 엘지전자 주식회사 로봇
US11858129B2 (en) * 2019-01-02 2024-01-02 Lg Electronics Inc. Mobile robot
CN109514564B (zh) * 2019-01-22 2021-11-30 江西理工大学 一种复合二次型多关节机械臂最优控制方法
CN110039515B (zh) * 2019-01-28 2022-02-18 南京理工大学 一种基于代数方法的膝关节外骨骼关节状态估计方法
US11338444B2 (en) * 2019-04-04 2022-05-24 Marmon Foodservice Technologies, Inc. Robotic carrier device and system for preparing food products
CN110450159A (zh) * 2019-08-13 2019-11-15 之江实验室 一种双足机器人的足部状态检测装置以及基于该装置的斜面行走方法
CN111221318B (zh) * 2019-12-11 2023-03-28 中山大学 一种基于模型预测控制算法的多机器人状态估计方法
CN111469126A (zh) * 2020-04-08 2020-07-31 北京云迹科技有限公司 控制机器人的方法、装置以及机器人
USD936057S1 (en) * 2020-11-24 2021-11-16 Vr Media Technology, Inc. Scanner
CN112882485B (zh) * 2021-01-25 2022-04-26 河南大学 一种双足机器人逆运动学的几何计算方法
CN113050645B (zh) * 2021-03-22 2022-04-01 华中科技大学 一种双足机器人的弹簧负载倒立摆模型及步态规划方法
CN113075931B (zh) * 2021-03-30 2022-04-08 西南科技大学 一种三轮全向移动机器人及其运动控制方法
US20220331966A1 (en) * 2021-04-09 2022-10-20 Beyond Imagination Inc. Mobility surrogates
CN113284319B (zh) * 2021-05-17 2022-06-10 首都医科大学宣武医院 一种临床用防走失保护装置
CN113787502B (zh) * 2021-09-28 2023-02-07 千翼蓝犀智能制造科技(广州)有限公司 一种基于神经动力学的三轮全向移动机器人状态调整方法
CN114193467B (zh) * 2021-11-29 2023-12-22 江苏夸米智能科技有限公司 一种倾倒时自动抵撑恢复正常工作的酒店服务机器人
CN115056230B (zh) * 2022-07-15 2024-04-09 海南大学 一种基于伪逆的三轮全向移动机械臂重复运动规划方法

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4638445A (en) * 1984-06-08 1987-01-20 Mattaboni Paul J Autonomous mobile robot
US5432417A (en) * 1992-04-30 1995-07-11 Honda Giken Kogyo Kabushiki Kaisha Locomotion control system for legged mobile robot
JP2000153476A (ja) * 1998-09-14 2000-06-06 Honda Motor Co Ltd 脚式移動ロボット
US6539284B2 (en) * 2000-07-25 2003-03-25 Axonn Robotics, Llc Socially interactive autonomous robot
US7111980B2 (en) * 2001-04-19 2006-09-26 Honeywell International Inc. System and method using thermal image analysis and slope threshold classification for polygraph testing
US6507773B2 (en) * 2001-06-14 2003-01-14 Sharper Image Corporation Multi-functional robot with remote and video system
US6604021B2 (en) * 2001-06-21 2003-08-05 Advanced Telecommunications Research Institute International Communication robot
JP4043289B2 (ja) * 2002-05-27 2008-02-06 シャープ株式会社 探索ロボットシステム
US20140254896A1 (en) * 2011-07-18 2014-09-11 Tiger T G Zhou Unmanned drone, robot system for delivering mail, goods, humanoid security, crisis negotiation, mobile payments, smart humanoid mailbox and wearable personal exoskeleton heavy load flying machine
EP1586423B1 (en) * 2002-12-10 2011-10-05 Honda Motor Co., Ltd. Robot control device, robot control method, and robot control program
US20090030552A1 (en) * 2002-12-17 2009-01-29 Japan Science And Technology Agency Robotics visual and auditory system
JP2004283958A (ja) * 2003-03-20 2004-10-14 Sony Corp ロボット装置、その行動制御方法及びプログラム
JP4089512B2 (ja) * 2003-05-22 2008-05-28 トヨタ自動車株式会社 倒立振子型台車ロボット
US8077963B2 (en) * 2004-07-13 2011-12-13 Yulun Wang Mobile robot with a head-based movement mapping scheme
EP2149324B1 (en) * 2005-02-18 2011-09-07 iRobot Corporation Autonomous surface cleaning robot for wet and dry cleaning
US8935006B2 (en) * 2005-09-30 2015-01-13 Irobot Corporation Companion robot for personal interaction
KR101214715B1 (ko) * 2005-12-02 2012-12-21 아이로보트 코퍼레이션 커버리지 로봇 이동성
EP2816434A3 (en) * 2005-12-02 2015-01-28 iRobot Corporation Autonomous coverage robot
DE102005058867B4 (de) * 2005-12-09 2018-09-27 Cine-Tv Broadcast Systems Gmbh Verfahren und Vorrichtung zum Bewegen einer auf einem Schwenk- und Neigekopf angeordneten Kamera entlang einer vorgegebenen Bewegungsbahn
WO2008013568A2 (en) * 2005-12-30 2008-01-31 Irobot Corporation Autonomous mobile robot
US20070255115A1 (en) * 2006-04-27 2007-11-01 Anglin Richard L Jr Remote diagnostic & treatment system
US7668621B2 (en) * 2006-07-05 2010-02-23 The United States Of America As Represented By The United States Department Of Energy Robotic guarded motion system and method
US7801644B2 (en) * 2006-07-05 2010-09-21 Battelle Energy Alliance, Llc Generic robot architecture
US7587260B2 (en) * 2006-07-05 2009-09-08 Battelle Energy Alliance, Llc Autonomous navigation system and method
US7974738B2 (en) * 2006-07-05 2011-07-05 Battelle Energy Alliance, Llc Robotics virtual rail system and method
US7584020B2 (en) * 2006-07-05 2009-09-01 Battelle Energy Alliance, Llc Occupancy change detection system and method
US8355818B2 (en) * 2009-09-03 2013-01-15 Battelle Energy Alliance, Llc Robots, systems, and methods for hazard evaluation and visualization
US7620477B2 (en) * 2006-07-05 2009-11-17 Battelle Energy Alliance, Llc Robotic intelligence kernel
US8271132B2 (en) * 2008-03-13 2012-09-18 Battelle Energy Alliance, Llc System and method for seamless task-directed autonomy for robots
US8073564B2 (en) * 2006-07-05 2011-12-06 Battelle Energy Alliance, Llc Multi-robot control interface
US8965578B2 (en) * 2006-07-05 2015-02-24 Battelle Energy Alliance, Llc Real time explosive hazard information sensing, processing, and communication for autonomous operation
US20100243344A1 (en) * 2006-09-25 2010-09-30 Board Of Trustees Of Leland Stanford Junior University Electromechanically counterbalanced humanoid robotic system
KR100812724B1 (ko) * 2006-09-29 2008-03-12 삼성중공업 주식회사 실내 위치측정시스템을 이용한 벽면 이동 로봇
US8180486B2 (en) * 2006-10-02 2012-05-15 Honda Motor Co., Ltd. Mobile robot and controller for same
JP4418905B2 (ja) * 2007-05-02 2010-02-24 株式会社国際電気通信基礎技術研究所 コミュニケーションロボット
US8489234B2 (en) * 2007-07-18 2013-07-16 Lg Electronics Inc. Mobile robot and controlling method thereof
WO2009038797A2 (en) * 2007-09-20 2009-03-26 Evolution Robotics Robotic game systems and methods
US8140188B2 (en) * 2008-02-18 2012-03-20 Toyota Motor Engineering & Manufacturing North America, Inc. Robotic system and method for observing, learning, and supporting human activities
JP4988625B2 (ja) * 2008-02-28 2012-08-01 株式会社Ihi 移動ロボット及びその制御方法
JP5337408B2 (ja) * 2008-05-28 2013-11-06 村田機械株式会社 自律移動体及びその移動制御方法
JP5125806B2 (ja) * 2008-06-25 2013-01-23 富士通株式会社 自立走行装置
JP5111445B2 (ja) * 2008-09-10 2013-01-09 三菱電機株式会社 空気調和機
WO2010032493A1 (ja) * 2008-09-17 2010-03-25 株式会社村田製作所 転倒防止制御装置及びコンピュータプログラム
KR101553521B1 (ko) * 2008-12-11 2015-09-16 삼성전자 주식회사 지능형 로봇 및 그 제어방법
US8332068B2 (en) * 2008-12-19 2012-12-11 Honda Motor Co., Ltd. Intelligent stepping for humanoid fall direction change
US10163175B2 (en) * 2009-02-25 2018-12-25 Humana Inc. System and method for improving healthcare through social robotics
KR101026596B1 (ko) * 2009-04-06 2011-04-04 순천향대학교 산학협력단 옴니휠을 이용한 이동로봇의 주행제어 장치 및 방법
FR2946160B1 (fr) 2009-05-26 2014-05-09 Aldebaran Robotics Systeme et procede pour editer et commander des comportements d'un robot mobile.
CN101623865A (zh) * 2009-07-08 2010-01-13 北京工业大学 独轮机器人系统及其控制方法
US9120224B2 (en) * 2009-09-22 2015-09-01 GM Global Technology Operations LLC Framework and method for controlling a robotic system using a distributed computer network
US9586471B2 (en) * 2013-04-26 2017-03-07 Carla R. Gillett Robotic omniwheel
US8234010B2 (en) * 2010-02-16 2012-07-31 Deere & Company Tethered robot positioning
US8457830B2 (en) * 2010-03-22 2013-06-04 John R. Goulding In-line legged robot vehicle and method for operating
US9400503B2 (en) * 2010-05-20 2016-07-26 Irobot Corporation Mobile human interface robot
US8935005B2 (en) * 2010-05-20 2015-01-13 Irobot Corporation Operating a mobile robot
US9014848B2 (en) * 2010-05-20 2015-04-21 Irobot Corporation Mobile robot system
US8918213B2 (en) * 2010-05-20 2014-12-23 Irobot Corporation Mobile human interface robot
EP2571660B1 (en) * 2010-05-20 2018-08-15 iRobot Corporation Mobile human interface robot
EP2668008A4 (en) * 2011-01-28 2018-01-24 Intouch Technologies, Inc. Interfacing with a mobile telepresence robot
US9323250B2 (en) * 2011-01-28 2016-04-26 Intouch Technologies, Inc. Time-dependent navigation of telepresence robots
JP2012166315A (ja) * 2011-02-15 2012-09-06 Toyota Motor Corp ロボット
US20120283746A1 (en) * 2011-05-02 2012-11-08 Hstar Technologies Mobile Medical Robotic System
US8761933B2 (en) * 2011-08-02 2014-06-24 Microsoft Corporation Finding a called party
KR101913332B1 (ko) * 2011-12-23 2018-10-31 삼성전자주식회사 이동 장치 및 이동 장치의 위치 인식 방법
KR20130074143A (ko) * 2011-12-26 2013-07-04 평화산업주식회사 옴니인 휠을 구비한 라이더 로봇
DE102012003690A1 (de) * 2012-02-23 2013-08-29 Kuka Roboter Gmbh Mobiler Roboter
US9975248B2 (en) * 2012-03-21 2018-05-22 Kenneth Dean Stephens, Jr. Replicating the remote environment of a proxy robot
ES2746754T3 (es) * 2014-04-17 2020-03-06 Softbank Robotics Europe Robot humanoide con ruedas omnidireccionales basado en un controlador de posición y velocidad lineal predictivo

Also Published As

Publication number Publication date
RU2680791C2 (ru) 2019-02-26
KR20170030078A (ko) 2017-03-16
JP2017513726A (ja) 2017-06-01
SG11201608204QA (en) 2016-10-28
CN106573370A (zh) 2017-04-19
WO2015158885A3 (en) 2015-12-10
CA2946049A1 (en) 2015-10-22
NZ725275A (en) 2017-12-22
AU2015248711B2 (en) 2018-02-01
US10232508B2 (en) 2019-03-19
EP2933069A1 (en) 2015-10-21
CA2946049C (en) 2018-11-20
EP2933069B1 (en) 2019-07-03
AU2015248711A1 (en) 2016-11-03
RU2016144008A (ru) 2018-05-17
HK1216406A1 (zh) 2016-11-11
WO2015158885A2 (en) 2015-10-22
US20170144299A1 (en) 2017-05-25
MX2016013016A (es) 2017-10-04
CN106573370B (zh) 2019-06-21
KR101977912B1 (ko) 2019-05-13
RU2016144008A3 (es) 2018-05-17
JP6496396B2 (ja) 2019-04-03

Similar Documents

Publication Publication Date Title
ES2746754T3 (es) Robot humanoide con ruedas omnidireccionales basado en un controlador de posición y velocidad lineal predictivo
RU2680628C2 (ru) Всенаправленный колесный человекоподобный робот, основанный на контроллере положения и скорости с линейным прогнозированием
JP6904992B2 (ja) 自然なピッチとロール
Wiedebach et al. Walking on partial footholds including line contacts with the humanoid robot atlas
JP5845334B2 (ja) ロボット制御方法および記憶媒体
CN106457568B (zh) 用于机器人自我回正的系统和方法
Ankaralı et al. Control of underactuated planar pronking through an embedded spring-mass hopper template
Yi et al. Learning full body push recovery control for small humanoid robots
Yu et al. Closed-loop tracking control of a pendulum-driven cart-pole underactuated system
WO2012129259A1 (en) Damage reduction control for humanoid robot fall
Gamus et al. Dynamic bipedal walking under stick-slip transitions
Carlési et al. Nonlinear model predictive running control of kangaroo robot: A one-leg planar underactuated hopping robot
Muecke et al. Darwin’s evolution: Development of a humanoid robot
Uyanık Adaptive control of a one-legged hopping robot through dynamically embedded spring-loaded inverted pendulum template
Riadchykov et al. Constructive solution of the robotic chassis AnyWalker
Morlando et al. Tethering a Human with a Quadruped Robot: A Guide Dog to Help Visually Impaired People
Brăteanu-Ungureanu et al. Two wheels lego mindstorms balancing control based on discrete time delta representation
Lin et al. Design and implementation of 3-DOF dynamic balancing waist and its fuzzy control for adult-sized humanoid robot
Ryadchikov et al. AnyWalker: all-terrain robotic chassis
Lubbe State estimation of a hexapod robot using a proprioceptive sensory system
JAGTAP A Walking Controller for Humanoid Robots using Virtual Force
Nghia et al. Team “ROPE”