ES2746498T3 - Movimiento restrictivo de un robot móvil - Google Patents

Movimiento restrictivo de un robot móvil Download PDF

Info

Publication number
ES2746498T3
ES2746498T3 ES15195596T ES15195596T ES2746498T3 ES 2746498 T3 ES2746498 T3 ES 2746498T3 ES 15195596 T ES15195596 T ES 15195596T ES 15195596 T ES15195596 T ES 15195596T ES 2746498 T3 ES2746498 T3 ES 2746498T3
Authority
ES
Spain
Prior art keywords
robot
controller
virtual barrier
environment
barrier
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
ES15195596T
Other languages
English (en)
Inventor
Marcus Williams
Ping-Hong Lu
Joseph M Johnson
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.)
iRobot Corp
Original Assignee
iRobot Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=54695558&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2746498(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by iRobot Corp filed Critical iRobot Corp
Application granted granted Critical
Publication of ES2746498T3 publication Critical patent/ES2746498T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • 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/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Abstract

Un robot (100, 200) que comprende: un cuerpo (102, 202) que se puede mover en relación con una superficie (10); uno o más dispositivos de medición (112, 133, 134) dentro del cuerpo (102, 202) para emitir información basándose en una orientación del cuerpo (102, 202) en una ubicación inicial en la superficie (10); y un controlador (390) dentro del cuerpo para determinar la orientación del cuerpo (102, 202) basándose en la información, y caracterizado por que el controlador (330) está configurado además para restringir el movimiento del cuerpo (102, 202) a un área impidiendo el movimiento del cuerpo (102, 202) más allá de una barrera virtual que define un límite que el robot (100, 200) no puede cruzar que es creado basándose en la orientación del cuerpo (102, 202) y la ubicación inicial, y el controlador (330) está configurado además para almacenar la barrera virtual que ha de ser utilizada subsiguientemente para restringir el movimiento del robot.

Description

DESCRIPCIÓN
Movimiento restrictivo de un robot móvil
CAMPO TÉCNICO
Esta memoria descriptiva se refiere en general al movimiento restrictivo de un robot móvil.
ANTECEDENTES
Un robot móvil puede maniobrar alrededor de superficies definidas por objetos, obstáculos, paredes, y otras estructuras en su entorno. En algunos casos, puede ser deseable restringir el movimiento del robot a regiones particulares de su entorno. Para hacer esto, se pueden levantar barreras para impedir que el robot pase a regiones restringidas. Por ejemplo, una baliza que es detectable por el robot puede ser colocada en el entorno para restringir la entrada del robot en las regiones restringidas.
La solicitud de los EE.UU publicada US 2012/0259465 A1 describe un sistema de limpieza que incluye una primera pared virtual, una segunda pared virtual y un robot de limpieza. La primera pared virtual incluye un primer patrón específico. Cuando una luz emite el primer patrón específico, se genera una primera luz reflejada específica. La segunda pared virtual incluye un segundo patrón específico. Cuando la luz emite el segundo patrón específico, se genera una segunda luz reflejada específica. El robot de limpieza, basándose en la primera y segunda luces reflejadas específicas obtiene y registra posiciones de la primera y segunda paredes virtuales. El robot de limpieza define una primera línea virtual de acuerdo con las posiciones registradas. Una trayectoria de desplazamiento del robot de limpieza está limitada por la primera línea virtual.
La solicitud de los EE.UU publicada US 2007/0179670 A1 describe un sistema de detección de pared virtual que comprende un detector omnidireccional y una unidad de transmisión autónoma (no mostrada) que transmite un haz de confinamiento dirigido axialmente.
La patente de los EE.UU US 6.690.134 B1 describe un sistema y método para confinar un robot a un espacio particular. El sistema incluye un transmisor único de barrera portátil que produce una señal de barrera principalmente a lo largo de un eje, y un robot móvil capaz de evitar la señal de barrera tras la detección de la señal de barrera.
La solicitud de los EE.UU publicada US 2006/0020369 A1 describe un sistema de limpieza robotizado que incluye un limpiador robotizado y unidades de barrera. El limpiador robotizado puede incluir un sensor táctil, tal como sensores en el parachoques. Las unidades de barrera pueden ser utilizadas para impedir que el limpiador robotizado pase a través de una región, tal como la entrada definida por la pared.
RESUMEN
Un robot ejemplar puede identificar áreas de un entorno que no se pueden atravesar aunque no exista un límite estructural, tal como una pared, obstáculo u otra superficie, para impedir la entrada a esas áreas. El robot puede generar una barrera virtual para impedir el movimiento hacia esas áreas. Se han descrito en este documento diferentes técnicas para generar tal barrera virtual. En un aspecto, la presente invención se refiere a un robot como se ha descrito en la reivindicación 1. El robot puede incluir una o más de las siguientes características, ya sean solas o en combinación. La barrera puede extenderse a través de una entrada, y la posición inicial del robot puede estar dentro de la entrada. El cuerpo puede incluir una parte frontal y una parte posterior. La barrera puede extenderse a lo largo de una línea que es paralela a la parte posterior del robot. La línea puede ser tangencial a la parte posterior del robot. La línea puede intersecar el cuerpo del robot en una ubicación indicada por un indicador visual en el robot. La barrera puede incluir una primera línea que se extiende paralela a la parte posterior del robot y una segunda línea que se extiende perpendicular a la parte posterior del robot. La ubicación inicial del robot puede colocar la parte posterior del cuerpo adyacente a la primera línea y un lado del cuerpo adyacente a la segunda línea. El controlador puede ser programado para restringir el movimiento del cuerpo controlando el cuerpo para realizar operaciones que incluyen girar en un ángulo en relación con la orientación inicial, y atravesar el área de la superficie a lo largo de las trayectorias que son sustancialmente paralelas a la barrera.
El controlador puede ser programado para restringir el movimiento del cuerpo realizando operaciones que incluyen generar un mapa que represente un área que ha de ser limpiada y designar una barrera virtual en el mapa que pueda indicar una ubicación que el robot tiene prohibido cruzar. La barrera puede ser designada designando coordenadas correspondientes a la barrera como que no se pueden atravesar.
Las operaciones para determinar la orientación y restringir el movimiento pueden ser realizadas tras la entrada en un modo de protocolo de enlace. El controlador puede ser programado para reconocer el modo de protocolo de enlace en respuesta a una o más operaciones iniciadas por el usuario en el robot.
En un segundo aspecto, la presente invención se refiere a un método para generar una cuadrícula de ocupación de al menos parte de un entorno que se puede atravesar por un robot como se ha descrito en la reivindicación 12. Las ventajas de lo anterior pueden incluir, pero no están limitadas a, las siguientes. El usuario puede controlar el robot y las áreas a través de las cuales navega el robot. El robot puede estar restringido a áreas donde el robot puede moverse libremente mientras reduce el riesgo de daños a los objetos en el área. En algunas implementaciones, el robot funciona de manera autónoma y el usuario no necesita vigilar el robot cuando que cubre una habitación con el fin de mantener el robot fuera de áreas particulares de la habitación.
Cualquiera de las dos o más características descritas en esta memoria descriptiva, incluida en esta sección de resumen, puede ser combinada para formar implementaciones que no se han descrito específicamente en este documento.
Los robots y las técnicas descritos en este documento, o partes de los mismos, pueden ser controlados mediante un producto de programa informático que incluye instrucciones que son almacenadas en uno o más medios de almacenamiento legibles por máquina no transitorios, y que son ejecutables en uno o más dispositivos de procesamiento para controlar (por ejemplo, para coordinar) las operaciones descritas en este documento. Los robots descritos en este documento, o partes de los mismos, pueden ser implementados como todo o parte de un aparato o sistema electrónico que puede incluir uno o más dispositivos de procesamiento y memoria para almacenar instrucciones ejecutables para implementar diferentes operaciones.
Los detalles de una o más implementaciones se han expuesto en los dibujos adjuntos y en la descripción en este documento. Otras características y ventajas serán evidentes a partir de la descripción y los dibujos, y de las reivindicaciones.
DESCRIPCIÓN DE LOS DIBUJOS
La fig. 1 muestra una vista de un robot en una habitación.
La fig. 2A muestra una vista en perspectiva de un robot.
La fig. 2B muestra una vista lateral en corte del robot de la fig. 2A.
La fig. 3A muestra una vista en perspectiva de otro robot.
La fig. 3B muestra una vista lateral del robot de la fig. 3A.
La fig. 4 es un ejemplo de sistema de control para utilizar con robots móviles.
Las figs. 5A a 5C incluyen ilustraciones y un diagrama de flujo que muestran un proceso mediante el cual un robot móvil crea una barrera invisible o virtual para el robot.
Las figs. 6A a 6C incluyen ilustraciones y un diagrama de flujo que muestran otro proceso mediante el cual un robot móvil crea una barrera invisible o virtual para el robot.
Las figs. 7A a 7C incluyen ilustraciones y un diagrama de flujo que muestran otro proceso mediante el cual un robot móvil crea una barrera invisible o virtual para el robot.
Las figs. 8A a 8C incluyen ilustraciones y un diagrama de flujo que muestran otro proceso mediante el cual un robot móvil crea una barrera invisible o virtual para el robot.
Los números de referencia similares en diferentes figuras indican elementos similares.
DESCRIPCIÓN DETALLADA
Se han descrito en este documento robots ejemplares configurados para atravesar (o para navegar en) superficies, tales como suelos, alfombras, césped, u otros materiales y realizar diferentes operaciones que incluyen, pero no están limitadas a, aspirar, limpiar en húmedo o en seco, pulir y similares. El movimiento de los robots ejemplares descritos en este documento puede estar restringido. Por ejemplo, un robot puede levantar una barrera virtual, que define un límite que el robot no puede cruzar. Por ejemplo, un usuario puede seleccionar una ubicación para una barrera virtual para impedir que el robot entre a un espacio en particular. Como se ha mostrado en la fig. 1, el robot es posicionado en un baño y se genera una barrera virtual (mostrada en cuadrados hash) para impedir que el robot entre al dormitorio. Como se ha descrito en este documento, la barrera virtual puede ser creada por el propio robot (por ejemplo, basándose en la orientación y ubicación del robot), o por el robot en combinación con uno o más elementos, tales como marcadores que el robot puede reconocer como que definen una barrera virtual que el robot no puede cruzar. Los marcadores pueden ser retirados después de que el robot haya detectado inicialmente los marcadores durante una utilización inicial. En consecuencia, los marcadores no necesitan permanecer en el entorno para utilizaciones posteriores del robot.
El robot puede implementar otros procesos para crear una barrera virtual. En algunas implementaciones, el robot puede registrar las ubicaciones de una barrera virtual en una cuadrícula de ocupación que sirve como un mapa del entorno del robot, y de este modo retiene en la memoria las ubicaciones de las barreras virtuales durante su navegación y/o entre misiones. Una cuadrícula de ocupación puede ser un mapa del entorno como una agrupación de celdas que varían en tamaño de 5 a 50 cm manteniendo cada celda un valor de probabilidad (por ejemplo, una probabilidad de que la celda esté ocupada) u otra información indicativa del estado de la celda. La cuadrícula de ocupación puede representar un mapa del entorno como un campo uniformemente espaciado de variables aleatorias binarias que representan cada una la presencia de un obstáculo en esa ubicación del entorno. Aunque algunos de los ejemplos descritos en este documento utilizan una cuadrícula de ocupación para proporcionar al robot un mapa del entorno, podrían utilizarse otras técnicas de mapeo. Por ejemplo, una representación de mapa diferente, tal como un gráfico, donde la barrera virtual está representada como un segmento de línea compuesto por dos o más coordenadas o un polígono virtual compuesto por tres o más coordenadas o podría utilizarse cualquier otra forma geométrica o forma de "lazo" con los métodos y sistemas descritos en este documento.
Las barreras virtuales pueden evitar que un robot salga o entre en un área en particular, por ejemplo, para impedir que un robot de limpieza se mueva desde un área del baño al área de la sala de estar. Las barreras virtuales pueden ser temporales en el sentido de que, tras la satisfacción de una o más condiciones, se le puede permitir al robot cruzar las barreras virtuales. Por ejemplo, si un robot determina que ha limpiado la totalidad de una habitación, entonces se le puede permitir al robot cruzar una barrera virtual ubicada al otro lado de la salida de esa habitación. En este ejemplo, se puede prohibir que el robot vuelva a cruzar la habitación previamente limpiada debido a la barrera virtual (a menos que, por ejemplo, la base de carga del robot esté ubicada en la habitación).
Las técnicas descritas en este documento pueden ser utilizadas para restringir el movimiento de cualquier tipo apropiado de robot u otro aparato, incluyendo los robots móviles autónomos que pueden limpiar una superficie del suelo de una habitación navegando por la habitación. Un ejemplo de tal robot es el robot 100 de limpieza de suelos mostrado en la fig. 2A. El robot 100 incluye un cuerpo 102, una parte delantera 104, y una parte trasera 106. El robot 100 puede moverse a través de una superficie del suelo de un entorno físico a través de diferentes combinaciones de movimientos en relación con tres ejes mutuamente perpendiculares definidos por el cuerpo 102: un eje transversal X, un eje delantero y trasero Y, y un eje vertical central Z. Una dirección de accionamiento hacia delante a lo largo del eje delantero y trasero Y es designada F (en lo sucesivo denominada hacia delante), y una dirección de accionamiento hacia atrás a lo largo del eje delantero y trasero Y es designada A (en los sucesivo denominada hacia atrás). El eje transversal X se extiende entre un lado derecho R y un lado izquierdo L del robot 100.
Una interfaz 110 de usuario está ubicada en una parte superior del cuerpo 102 y está configurada para aceptar uno o más comandos de usuario y/o presentar el estado del robot. La parte superior del cuerpo 102 también puede incluir una cámara 109 que el robot 100 puede utilizar para capturar imágenes del entorno. El robot puede detectar características en el entorno basándose en las imágenes capturadas por la cámara 109. La cámara 109 puede estar inclinada hacia arriba en relación con una superficie que soporta el robot (por ejemplo, un suelo) para que la cámara 109 pueda capturar imágenes de las superficies de las paredes del entorno. Como se ha descrito en este documento, en algunas implementaciones, la cámara 109 puede detectar marcadores de identificación de barrera que se pueden posicionar por el usuario y extraíbles, tales como pegatinas u otros dispositivos de identificación visual en las superficies de la pared (u otras) del entorno, y basándose en estos marcadores de identificación de barrera, generar límites virtuales que el robot 100 tiene instrucciones de no cruzar.
Un sensor 113 de seguimiento de pared en el lado derecho del robot 100puede incluir un sensor de IR que puede emitir señales para utilizar en determinar cuándo el robot 100 está siguiendo una pared. El lado izquierdo L del robot 100 también puede tener un sensor de seguimiento de pared de este tipo. La parte delantera 104 del cuerpo 102 incluye un parachoques 115, que es utilizado para detectar obstáculos en una trayectoria de accionamiento del robot 100. El parachoques 115 y/o el cuerpo 102 de robot pueden incluir sensores que detectan la compresión del parachoques 115 en relación con el cuerpo 102 de robot, tal como la compresión basada en el contacto con un obstáculo. En algunas implementaciones, la parte superior del robot 100 incluye un transceptor 118 omnidireccional de infrarrojos (IR) que puede detectar la radiación infrarroja emitida por los objetos en el entorno. Estos sensores pueden cooperar con otras entradas de usuario para proporcionar instrucciones al robot 100 sobre límites u obstáculos en el entorno.
Con referencia a la fig. 2B, un rodillo frontal 122a y un rodillo posterior 122b cooperan para recuperar residuos de una superficie de limpieza. Más particularmente, el rodillo posterior 122b gira en el sentido contrario a las agujas del reloj CC, y el rodillo frontal 122a gira en el sentido de las agujas del reloj C. El robot 100 incluye además una rueda orientable 130 dispuesta para soportar la parte posterior 106 del cuerpo 102 de robot. La parte inferior del cuerpo 102 de robot incluye las ruedas 124 que soportan el cuerpo 102 de robot cuando el robot 100 navega por una superficie 10 del suelo. Cuando las ruedas 124 son accionadas, los codificadores giratorios 112 miden la posición de un árbol motor que acciona las ruedas, lo que puede ser utilizado para estimar la distancia recorrida por el robot 100.
La parte inferior del cuerpo 102 de robot incluye un sensor óptico 133 de ratón que incluye una fuente de luz y una cámara de baja resolución. El robot 100 puede utilizar el sensor óptico 133 de ratón para estimar la deriva en las direcciones x e y cuando el robot 100 navega por el entorno.
El cuerpo 102 de robot aloja además una unidad 134 de medición inercial (IMU), por ejemplo, un acelerómetro de tres ejes y un giroscopio de tres ejes para medir (i) aceleración x, y, y z y (ii) rotación alrededor de los ejes x-, y-, y z- (por ejemplo, cabeceo, guiñada, y balanceo), respectivamente. El acelerador de la IMU 134 puede ser utilizado para estimar la deriva en las direcciones x e y, y el giroscopio de la IMU 134 puede ser utilizado para estimar la deriva en la orientación 0 del robot 100. Estos dispositivos de medición, por ejemplo, la IMU 134 , el sensor óptico 133 de ratón, y los codificadores giratorios 112, cooperan para proporcionar, al controlador, información (por ejemplo, mediciones representadas como señales) acerca de la ubicación y orientación del robot que el controlador utiliza para determinar la ubicación y orientación aproximadas del robot 100 en su entorno. En algunas implementaciones, estos dispositivos de medición pueden ser combinados en un solo dispositivo o en dos dispositivos.
Las figs. 3A y 3B muestran otro ejemplo de un robot móvil que puede crear barreras virtuales de acuerdo con las técnicas ejemplares descritas en este documento. Con referencia a la fig. 3A, en algunas implementaciones, un robot móvil 200 pesa menos de 5 libras (por ejemplo, menos de 2,26 kg). El robot 200 está configurado para navegar y limpiar una superficie del suelo. El robot 200 incluye un cuerpo 202 soportado por un accionamiento (no mostrado) que puede maniobrar el robot 200 a través de la superficie del suelo basándose, por ejemplo, en un comando de accionamiento que tiene los componentes x, y, y 0. Como se ha mostrado, el cuerpo de robot 202 tiene una forma cuadrada y define un eje X y un eje Y. El eje X define una dirección hacia la derecha R y una dirección hacia la izquierda L. El eje Y define una dirección hacia atrás A y una dirección hacia adelante F del robot 200. También con referencia a la fig. 3B, una parte inferior 207 del cuerpo 202 de robot mantiene una almohadilla 220 de limpieza unida, que soporta una parte delantera 204 del robot 200. La parte inferior 207 incluye ruedas 221 que soportan giratoriamente una porción trasera 206 del cuerpo 202 de robot cuando el robot 200 navega por la superficie del suelo. El robot móvil 200 también puede incluir una IMU, un sensor óptico de ratón y codificadores giratorios, como se ha descrito en este documento, para enviar, al controlador, información que represente la orientación y ubicación actuales del robot.
El cuerpo 202 incluye un parachoques móvil 210 para detectar colisiones en las direcciones longitudinales (A, F) o laterales (L, R). Es decir, el parachoques 210 es móvil en relación con el cuerpo 202 del robot, y este movimiento puede ser utilizado para detectar colisiones detectando cuándo el parachoques 210 está comprimido.
La parte superior 208 del robot 200 incluye un asa 235 para que un usuario transporte el robot 200. El usuario puede presionar un botón 240 de limpieza para encender y apagar el robot 200 y para instruir al robot 200 para, por ejemplo, comenzar una operación de limpieza o marcar una barrera virtual en su cuadrícula de ocupación. En algunas implementaciones, la parte superior 208 también incluye luces 242a y 242b u otros indicadores visuales alineados a lo largo de una línea paralela al lado posterior 202A del cuerpo 202 de robot. Las luces 242a y 242b pueden ser diodos emisores de luz (LED). Como se ha descrito en este documento, las luces 242a y 242b pueden servir como una línea de referencia para que un usuario determine la colocación de una barrera virtual en una cuadrícula de ocupación del robot 200.
Con referencia a la fig. 4, un robot (por ejemplo, el robot 100, el robot 200 y otro robot móvil apropiado, incluidos los descritos en este documento) incluye un sistema de control 300 ejemplar que incluye un sistema de alimentación 350, un accionamiento 360, un sistema de navegación 370, un sistema de sensor 380, un sistema de comunicaciones 385, un circuito controlador 390 (en este documento también denominado controlador) y un elemento 395 de almacenamiento de memoria. El sistema de alimentación 350, que incluye una fuente de alimentación, proporciona energía eléctrica a los sistemas operables con el robot.
El accionamiento 360 puede maniobrar al robot a través de la superficie del suelo. El accionamiento 360 puede controlar los motores para accionar las ruedas (por ejemplo, las ruedas 124, 221) de tal manera que las ruedas puedan impulsar el robot en cualquier dirección de accionamiento a lo largo de la superficie del suelo. Las ruedas pueden ser hechas funcionar de manera diferencial de tal manera que el robot pueda girar basándose en un nivel de accionamiento suministrado a cada rueda de accionamiento.
El sistema de navegación 370, que puede ser un sistema basado en el comportamiento ejecutado en el controlador 390, puede enviar instrucciones al sistema de accionamiento 360 para que el robot pueda usar el accionamiento 360 para navegar en un entorno. El sistema de navegación 370 se comunica con el sistema de sensores 380 para emitir comandos de accionamiento al accionamiento 360.
En algunas implementaciones, el sistema de sensores 380 incluye sensores dispuestos en el robot (por ejemplo, sensores de detección de obstáculos, los codificadores de rueda 112 , el sensor óptico 133 de ratón, la IMU 134) que generan señales indicativas de datos relacionados con características de elementos estructurales en el entorno, permitiendo de este modo que el sistema de navegación 370 determine un modo o comportamiento a utilizar para navegar por el entorno para permitir la cobertura completa de una habitación o celda. El modo o comportamiento puede ser utilizado para evitar posibles obstáculos en el entorno, que incluyen las superficies de las paredes, las superficies de obstáculos, los voladizos bajos, las repisas y las superficies irregulares del suelo. El sistema de sensores 380 crea una percepción del entorno del robot suficiente para permitir que el robot tome decisiones inteligentes acerca de las acciones (por ejemplo, acciones de navegación, acciones de accionamiento) para tomar dentro del entorno. El sistema de sensores 380 recopila los datos para permitir que el robot genere una cuadrícula de ocupación del entorno.
En algunas implementaciones, el sistema de sensores 380 puede incluir sensores de detección de obstáculos para evitar obstáculos (ODOA), sensores de sonar oscilantes, sensores de proximidad, sensores de radar, LIDAR (Detección de Luz y Oscilación, que puede implicar detección remota óptica que mide las propiedades de la luz dispersada para encontrar sensores de oscilación y/u otra información de un objetivo distante), una cámara (por ejemplo, la cámara 109 , formación de imágenes de nubes de puntos volumétricos, formación de imágenes tridimensionales (3D) o sensores de mapas de profundidad, cámara de luz visible y/o cámara infrarroja), y sensores de caída de ruedas operables con ruedas orientables (por ejemplo, la rueda orientable 130). El sistema de sensores 380 también puede incluir sensores de comunicación, sensores de navegación, sensores de contacto, un escáner láser y/u otros sensores para facilitar la navegación, la detección de obstáculos y otras tareas del robot. Los sensores de proximidad pueden adoptar la forma de sensores de contacto (por ejemplo, un sensor que detecta un impacto de un parachoques en el robot con una barrera física, tal como un sensor capacitivo o un sensor de interruptor mecánico) y/o sensores de proximidad que detectan cuándo el robot está muy cerca de objetos cercanos.
El controlador 390 opera con los otros sistemas del robot comunicándose con cada sistema para proporcionar y recibir parámetros de entrada y salida. El controlador 390 puede facilitar la comunicación entre el sistema de alimentación 350, el sistema de accionamiento 360, el sistema de navegación 370, el sistema de sensores 380, el sistema de comunicaciones 385 y el elemento 395 de almacenamiento de memoria. Por ejemplo, el controlador 390 puede instruir al sistema de alimentación 350 para proporcionar energía eléctrica a los motores del sistema de accionamiento 360 para mover el robot en la dirección de de accionamiento hacia delante F, para entrar en un modo de carga de alimentación y/o para proporcionar un nivel específico de potencia (por ejemplo, un porcentaje de potencia total) a sistemas individuales. El controlador 390 también puede operar el sistema de comunicaciones 385, que puede incluir un transceptor inalámbrico que incluye un transmisor que puede comunicarse con dispositivos móviles o una red informática central. Como se ha descrito en este documento, el controlador 390 puede cargar una cuadrícula de ocupación generada durante una operación de limpieza del robot a la red informática central o dispositivos móviles individuales. El sistema de comunicaciones 385 también puede recibir instrucciones de un usuario.
El controlador 390 puede ejecutar instrucciones para mapear el entorno y reubicar regularmente el robot en el mapa del entorno. Los comportamientos incluyen comportamiento de seguimiento de pared y comportamiento de cobertura.
En general, durante el comportamiento de seguimiento de la pared, el robot detecta una pared, obstáculo (por ejemplo, mueble, barra de desayuno, rodapiés de armario, etc.) u otra estructura (por ejemplo, chimenea, borde de la escalera, etc.) en el entorno (utilizando, por ejemplo, el parachoques 115), y sigue los contornos de la pared, obstáculo u otra estructura.
Durante el comportamiento de cobertura, el controlador instruye al robot para cubrir (por ejemplo, atravesar o navegar la extensión de) y para limpiar la superficie del suelo del entorno. El robot puede cubrir la superficie del suelo del entorno utilizando técnicas de trayectoria de cobertura, tales como un patrón de bustrofedón o de trenza africana, un patrón en espiral o una cobertura de rebote pseudoaleatoria. Cuando el robot cubre el suelo, el controlador 390 puede generar una cuadrícula de ocupación.
En algunas implementaciones, el controlador 390 puede utilizar, por ejemplo, información (por ejemplo, señales) de los codificadores 112, el sensor óptico 133 de ratón y la IMU 134 para generar datos de odometría que pueden ser utilizados para determinar (por ejemplo, estimar) la posición y orientación (pose) del robot. Por ejemplo, el controlador puede recibir señales de giroscopio del giroscopio de 3 ejes de la IMU 134. Las señales del giroscopio pueden estar basadas en una orientación y posición del cuerpo del robot a medida que el robot navega por una superficie del suelo. El controlador también puede mejorar la estimación utilizando señales procedentes de los codificadores 112, que entregan señales de codificador basándose en la distancia recorrida por el robot. De manera similar, el sensor óptico 133 de ratón genera señales que pueden ser utilizadas para determinar la cantidad de deriva del robot cuando el robot navega por la superficie del suelo.
El elemento 395 de almacenamiento de memoria puede incluir un módulo de mapeo 397 que almacena una cuadrícula de ocupación de una habitación o habitaciones que navega el robot. La cuadrícula de ocupación puede ser cargada a un dispositivo informático remoto utilizando el sistema de comunicaciones 385 después de una operación de limpieza. En algunas implementaciones, la cuadrícula de ocupación incluye un mapa virtual generado por el controlador 390 y utilizado por el controlador 390 para instruir al robot 100 para navegar dentro de límites predeterminados, límites físicos y otros límites (por ejemplo, barreras o límites virtuales o establecidos por el usuario). La cuadrícula de ocupación puede incluir el diseño físico del entorno. Por ejemplo, la cuadrícula de ocupación puede incluir datos indicativos del diseño físico del área y representar tanto áreas abiertas como obstáculos. La cuadrícula de ocupación puede incluir un límite del entorno, límites de obstáculos en el mismo, límites generados antes de comenzar una operación de limpieza que pueden corresponder o no a obstáculos físicos en el entorno, y/o al espacio interior del suelo atravesado por el robot.
La cuadrícula de ocupación puede ser implementada de cualquier manera apropiada, incluyendo sin limitación, como un mapa de ubicaciones de propiedades, utilizar técnicas de base de datos, utilizar una variedad de estructuras de datos asociativas, o cualquier otro método de organización de datos. Por lo tanto, el mapa resultante no necesita ser un mapa visible, sino que puede estar definido a través de datos almacenados en la memoria legible por ordenador no transitoria. Un mapa puede corresponder a una superficie real con diferentes grados de precisión y/o exactitud. La precisión puede verse afectada, por ejemplo, por la utilización de celdas de mapa discretas que corresponden a una parte de la superficie. El tamaño de esas celdas, que pueden corresponder cada una a una parte de 10 cm x 10 cm de la superficie, o una parte de 5 cm x 5 cm de la superficie (por ejemplo, no es necesario que sean cuadrados o incluso todos del mismo tamaño) puede afectar a la precisión imponiendo limitaciones en la granularidad de las propiedades observadas. La precisión puede verse afectada por la calidad del sensor y similares, incluyendo otros factores diferentes mencionados en este documento.
En algunas implementaciones, la cuadrícula de ocupación es una cuadrícula de ocupación que incluye una cuadrícula en 2D de celdas teniendo cada celda una variable asociada indicativa del estado del área para atravesar o limpiar. A cada celda en la cuadrícula de ocupación se le puede asignar un valor que indica si la celda se puede atravesar o no. A cada celda de la cuadrícula se le pueden asignar coordenadas (x, y) basadas en una celda de origen elegida (0, 0) en el entorno. El origen elegido puede ser, por ejemplo, el muelle de carga del robot o una ubicación particular en la habitación. Cada celda puede representar un área cuadrada con cuatro lados que coinciden con los lados de otras celdas. Las celdas pueden tener una longitud lateral de entre 1 y 100 cm en algunas implementaciones. Por ejemplo, la cuadrícula puede ser una cuadrícula de celdas, cada una de 10 cm x 10 cm. Las celdas de la cuadrícula de ocupación pueden ser llenadas antes de una operación de limpieza y durante la operación de limpieza. En algunos casos, las celdas llenadas de una operación de limpieza pueden ser almacenadas y utilizadas para una operación de limpieza posterior. Antes de una operación de limpieza, un subconjunto de celdas de la cuadrícula de ocupación puede ser marcado como que no se puede atravesar. En algunos casos, las celdas forman una barrera virtual establecida por el usuario que representa un límite que no se puede atravesar por el robot (por ejemplo, la barrera virtual puede estar definida por una línea de celdas que no se pueden atravesar en la cuadrícula de ocupación). Como se ha descrito en este documento, las celdas pueden ser marcadas como parte de una operación de limpieza previa, o el robot puede recibir instrucciones para llenar previamente algunas celdas de la cuadrícula de ocupación como que no se pueden atravesar. En otra implementación, la cuadrícula de ocupación puede ser un gráfico de ocupación donde la barrera virtual está representada como un segmento de línea definido por dos o más coordenadas, un polígono virtual definido por tres o más coordenadas, o cualquier otra forma geométrica o forma de “lazo” definida por múltiples coordenadas.
Durante una operación de limpieza, el controlador 390 almacena las coordenadas (x, y) de cada celda atravesada por el robot. Durante el comportamiento de seguimiento de pared, por ejemplo, el controlador 390 puede marcar todas las celdas debajo de la huella del robot como celdas que se pueden atravesar y marcar todas las celdas correspondientes a la pared que es seguida como que no se puede atravesar para indicar que el robot 100 no puede pasar la pared. Como se ha descrito en este documento, el controlador 390 puede estar configurado para reconocer secuencias específicas, combinaciones, grupos, etc., de celdas que representan características de los elementos estructurales en el entorno (por ejemplo, paredes, obstáculos, etc.). En algunas implementaciones, antes de determinar el valor de las celdas en el mapa, el controlador 390 puede preestablecer los valores de todas las celdas para que sean desconocidos. Luego, cuando se acciona el robot durante el comportamiento de seguimiento de pared o durante el comportamiento de cobertura, los valores de todas las celdas a lo largo de su trayectoria son establecidos para poder ser atravesados, determinándose la ubicación de las celdas por la distancia al origen. En algunos casos durante la operación de limpieza, el sistema de sensores 380 puede responder adicional o alternativamente a características (por ejemplo, marcadores) ubicadas en la habitación, y el controlador 390 puede indicar una barrera virtual en la cuadrícula de ocupación basándose en la detección de las características.
Además de marcar las celdas como que no se pueden atravesar como se ha descrito en este documento, también se han descrito en este documento diferentes métodos para generar barreras virtuales y celdas que no se pueden atravesar. Durante una operación de limpieza, el controlador puede instruir al robot para evitar las áreas designadas en la cuadrícula de ocupación como no que no se pueden atravesar. Mientras que la cuadrícula de ocupación a menudo es almacenada en el robot (por ejemplo, en el elemento 395 de almacenamiento de memoria), la cuadrícula de ocupación puede ser transmitida a través del sistema de comunicaciones 385 y almacenada en un servidor de red, un dispositivo móvil, u otro dispositivo informático remoto.
Los ejemplos en este documento describen un entorno y una cuadrícula de ocupación correspondiente para el entorno. Las cuadrículas de ocupación en las figs. 5A, 5B, 6A, 6B, 7A, 8A y 8B utilizan celdas hash para identificar áreas que no se pueden atravesar, las celdas en blanco para identificar áreas que se pueden atravesar y áreas que de otra manera no están marcadas con celdas para identificar áreas desconocidas. El robot mostrado en la cuadrícula de ocupación correspondiente identifica la estimación del controlador de la ubicación actual del robot en el entorno.
Mientras que las rejillas de ocupación descritas en las figs. 5A, 5B, 6A, 6B, 7A, 8A, y 8B muestran ejemplos de cuadrículas de ocupación que incluyen celdas para indicar áreas que se pueden atravesar y que no se pueden atravesar del entorno, en otras implementaciones, el controlador puede generar una cuadrícula de ocupación que se basa en valores de coordenadas correspondientes a ubicaciones dentro del entorno. Por ejemplo, una barrera virtual puede ser un conjunto de dos o más coordenadas bidimensionales que indican los vértices de una línea o región que el robot no puede cruzar.
En algunas implementaciones, el robot puede ejecutar múltiples operaciones de limpieza para limpiar múltiples habitaciones en un entorno. Con referencia a la fig. 5a , cuando un robot 400 navega por la superficie del suelo 10 de un entorno 410 que contiene una primera habitación 412 y una segunda habitación 414 (por ejemplo, como se ha mostrado en la parte 421 de la fig. 5A), el controlador 390 del robot 400 genera una cuadrícula de ocupación 420 correspondiente (por ejemplo, una cuadrícula de ocupación almacenada en el elemento 395 de almacenamiento de memoria, como se ha mostrado en la parte 423 de la fig. 5A) del entorno 410. Una entrada 415 separa la primera habitación 412 y la segunda habitación 414. Como se ha descrito con más detalle en este documento, el robot 400 puede limpiar primero la primera habitación 412 y luego proceder a limpiar la segunda habitación 414 sin volver a la primera habitación 412.
El robot 400 ejecuta un patrón de trenza africana a lo largo de una trayectoria 425. La trayectoria 425 puede estar restringida generalmente a una primera región 430a. Las regiones 430a y 430b pueden ser regiones de igual anchura que el robot 400 establecidas con el fin de segmentar un entorno. Las regiones pueden ser seleccionadas arbitrariamente y por lo tanto pueden corresponder o no a límites físicos, obstáculos o estructuras dentro del entorno.
Cuando el robot 400 sigue el comportamiento de cobertura ejecutando el patrón de trenza africana a lo largo de la trayectoria 425, para restringirlo a la región 430a, el robot 400 puede detenerse para no entrar en una región 430b del entorno. El controlador 390 puede instruir al robot 400 para evitar entrar en la región 430b y dar la vuelta durante la ejecución de las filas del patrón de trenza africana. En la cuadrícula de ocupación 420, el controlador 390 indica celdas que no se pueden atravesar que corresponden a paredes del entorno e indica celdas que se pueden atravesar como áreas que el robot 400 fue capaz de cubrir durante el comportamiento de cobertura.
Cuando el controlador 390 ha determinado que el robot 400 ha sido capaz de cubrir las áreas que se pueden atravesar de la región 430a, el robot 400 puede ejecutar el comportamiento de seguimiento de pared para avanzar a otra región del entorno 410, por ejemplo, la región 430b. El controlador 390 puede determinar que el robot 400 ha completado la cobertura de la primera región 430a determinando que el robot 400 ha cumplido una o más condiciones. Con referencia a la fig. 5B, como se ha mostrado en la parte 421, el robot 400 puede seguir una trayectoria 440 para realizar el seguimiento de pared. El robot 400 comienza en una posición inicial 440a que corresponde a la posición del robot 400 cuando ha completado el comportamiento de cobertura. En una posición 440b a lo largo de la trayectoria 440, el robot 400 cruza desde la primera región 430a a la segunda región 430b. En este punto, el controlador 390 determina que el robot 400 ha entrado en una nueva región. El controlador 390 puede hacer esta determinación, por ejemplo, determinando que el robot 400 se ha movido desde una celda que se puede atravesar a una celda desconocida. El controlador 390 también puede determinar que el robot 400 ha salido de la primera región 430a y ha entrado en la segunda región 430b.
Con el fin de impedir que el robot 400 regrese a la región 430a, donde ya ha ejecutado una operación de limpieza, el controlador 390 puede establecer una barrera virtual 450 que marca las regiones que el robot 400 ya ha limpiado, como se ha mostrado en la parte 423. Por ejemplo, el controlador 390 puede actualizar la cuadrícula de ocupación 420 para identificar una ubicación o límite del área previamente limpiada para prohibir que el robot 400 regrese al área. Durante una operación de limpieza (por ejemplo, sin acoplamiento) y/o puede marcar todas las celdas limpiadas en la cuadrícula de ocupación 420 para prohibir que el robot 400 vuelva a limpiar esas celdas durante la operación de limpieza. En algunos ejemplos, el controlador 390 puede marcar celdas perimetrales que forman el perímetro de la habitación 412 como que no se pueden atravesar en la cuadrícula de ocupación 420. En algunos casos, el controlador 390 marca las celdas que abarcan las celdas que se pueden atravesar de la región 430a como que no se pueden atravesar para impedir que el robot 400 regrese a las regiones que el robot 400 ya ha limpiado. En otros casos, el controlador 390 puede indicar todas las celdas en la región 430a como que no se pueden atravesar.
Con referencia a la fig. 5C, un diagrama de flujo 460 ilustra un método para que un robot limpie una primera área y una segunda área. En la operación 462, el robot ejecuta una primera operación de limpieza en una primera área. El robot puede ejecutar la primera operación de limpieza en respuesta a las instrucciones emitidas por un controlador del robot. El robot puede ejecutar un comportamiento de cobertura descrito en este documento, que puede incluir seguir un patrón de trenza africana u otros patrones para cubrir la primera área. Cuando el robot realiza el comportamiento de cobertura, el controlador puede marcar celdas en una cuadrícula de ocupación almacenada en el robot (por ejemplo, en un elemento de almacenamiento de memoria operable con el controlador) correspondiente a partes de la primera área atravesada por el robot como que se pueden atravesar. La operación de limpieza puede ser ejecutada por un robot de limpieza en seco, tal como el robot 100, un robot de limpieza en húmedo, tal como el robot 200, otro robot móvil configurado para navegar por un entorno.
En la operación 464, el robot, a través del controlador, determina que la primera operación de limpieza está completa. El controlador puede determinar la finalización basándose en una o más condiciones descritas en este documento.
En la operación 466, el robot navega a una segunda área. En algunos ejemplos, el robot puede atravesar un perímetro de la primera área para identificar la segunda área. En otros ejemplos, la primera área puede estar limitada artificialmente (por ejemplo, tener una anchura máxima) y la segunda área puede ser una región adyacente a la primera área. El controlador puede instruir al robot para realizar la navegación. Generalmente, el controlador puede tratar de determinar que el robot ha salido de un área que ya ha limpiado y ha entrado en un área que no ha limpiado. El controlador puede instruir al robot para atravesar el perímetro después de que el robot haya completado la operación de limpieza de la primera área. El controlador puede determinar que el robot ha completado la operación de limpieza basándose en la detección de que el robot ha cumplido una o más condiciones. En algunos casos, el robot puede continuar la operación de limpieza hasta que el robot haya cubierto un porcentaje del área de la primera habitación, por ejemplo, 50% a 75%, 75% a 100%, 100% a 150%, 150% a 200%, 250 % a 300%. En algunos casos, el robot puede continuar la operación de limpieza hasta que tenga el área varias veces, por ejemplo, una, dos, tres o cuatro veces. Tras completar la cobertura deseada, el controlador puede instruir al robot para cruzar la barrera virtual y comenzar una segunda operación de limpieza en la segunda habitación.
En algunas implementaciones, el robot puede continuar la operación de limpieza hasta que el robot haya alcanzado un cierto porcentaje de carga límite inferior, por ejemplo, 10%, 5% o menos. Tras alcanzar el porcentaje de carga límite inferior, el controlador puede instruir al robot para regresar a un muelle de carga o estación de carga para recargar una batería del robot. En tales implementaciones, el robot puede ser capaz de atravesar barreras virtuales almacenadas en la cuadrícula de ocupación para regresar al muelle de carga.
En algunos casos, la primera área es una habitación y el perímetro de la primera área puede así corresponder a las paredes de la habitación. En otras implementaciones, la primera área es una región (como se ha descrito en este documento), y el perímetro de la primera región puede corresponder al borde de la extensión de la primera región. Como se ha descrito con respecto a las figs. 5A a 5B, cuando el robot 400 ejecuta el comportamiento de seguimiento de pared, el controlador 390 puede determinar que ha atravesado un perímetro de la primera habitación 412 o la primera región 430a, por ejemplo, (i) detectando que el robot 400 ha salido de la primera región 430a o (ii) detectando que el robot 400 se ha movido de una celda que se puede atravesar a una celda desconocida. El robot puede atravesar el perímetro de la primera área en respuesta a las instrucciones del controlador.
En la operación 468, el controlador establece una barrera virtual que, por ejemplo, separa la primera área y la segunda área. El controlador puede indicar la barrera virtual en una cuadrícula de ocupación almacenada en un elemento de almacenamiento de memoria operable con el controlador. Por ejemplo, en algunas implementaciones, el controlador puede indicar en la cuadrícula de ocupación que las celdas desconocidas adyacentes a las celdas que se pueden atravesar (por ejemplo, una fila o una columna de celdas que se pueden atravesar, dos o más celdas que se pueden atravesar que forman una fila o columna de celdas) en la primera área no se pueden atravesar (por ejemplo, que las celdas que no se pueden atravesar definen una barrera virtual). Como resultado, las celdas que no se pueden atravesar pueden formar una fila o columna de celdas que no se pueden atravesar. También se pueden utilizar otros métodos para definir el límite que no dependen de la cuadrícula de ocupación. En algunos casos, el controlador puede indicar que las celdas que se pueden atravesar en la primera área adyacentes a las celdas desconocidas ahora no se pueden atravesar.
En la operación 470, el robot ejecuta una segunda operación de limpieza para limpiar la segunda área sin atravesar la barrera virtual. Por ejemplo, el robot puede limpiar la segunda área sin atravesar una barrera virtual que marca el perímetro de la primera área. El controlador puede emitir una instrucción al robot para ejecutar la segunda operación de limpieza. La segunda operación de limpieza puede ser una ejecución de un comportamiento de cobertura. Para evitar que entre en la primera región, el controlador puede impedir que el robot atraviese la barrera virtual establecida en la operación 468.
En algunos ejemplos, un usuario puede desear establecer un límite virtual para el robot. Por ejemplo, el usuario puede querer mantener el robot fuera de una habitación o área en particular. Permitir que el usuario establezca la ubicación de un límite virtual puede proporcionar la ventaja de darle al usuario un control adicional de dónde limpia el robot. En algunas implementaciones, el controlador puede recibir instrucciones de un usuario para limitar la navegación del robot dentro de un área del entorno. El usuario puede entregar las instrucciones activando sensores (por ejemplo, presionando uno o más botones) en el robot. En algunos casos, el usuario puede utilizar un dispositivo móvil, tal como un teléfono inteligente, tableta u otro dispositivo informático, para entregar las instrucciones al controlador utilizando una conexión inalámbrica para establecer la ubicación de la barrera virtual. El usuario puede tratar de evitar que el robot salga de una habitación a través de una entrada y puede instruir así al controlador para generar una barrera virtual ubicada en la entrada que impida que el robot salga a través de la entrada. En algunas implementaciones, el usuario introduce información para restringir el movimiento del robot a través de la interfaz de usuario del robot.
En el ejemplo ilustrado en las figs. 6A a 6C, un usuario coloca un robot (por ejemplo, el robot 200 descrito con respecto a las figs. 3A a 3B) en un entorno 502 antes de que el robot 200 ejecute una operación de limpieza para limpiar la superficie 10 del suelo del entorno 502. Un controlador (por ejemplo, el controlador 390) del robot 200 genera una cuadrícula de ocupación 518 correspondiente al entorno 502. En este ejemplo, el usuario puede desear limpiar secuencialmente una primera habitación 504 durante una primera operación de limpieza y una segunda habitación 506 durante una segunda operación de limpieza. El usuario puede buscar que el robot 200, en una operación de limpieza, limpie la primera habitación 504 sin limpiar la segunda habitación 506 en el entorno 502.
Con referencia a la fig. 6A, el usuario posiciona el robot 200 en el entorno 502 de modo que el lado posterior 202A del cuerpo 202 del robot 200 es colocado paralelo a una pared 512 y una entrada 517 en el entorno 502, como se ha mostrado en la parte 521. Luego, el usuario emite una instrucción al controlador 390 para generar una barrera virtual 516 en la cuadrícula de ocupación 518, como se ha mostrado en la parte 523. En algunos ejemplos, la barrera virtual 516 puede manifestarse en la cuadrícula de ocupación 518 como una línea (por ejemplo, una fila o columna) de celdas que no se pueden atravesar basada en la posición inicial y la orientación del robot 200 en el entorno 502. La barrera virtual 516 puede ser paralela al lado posterior 202A del robot 200.
En algunos casos, la barrera virtual 516 pasa a través del lado posterior 202A del robot 200. En otros casos, la barrera virtual 516 interseca el cuerpo de robot, por ejemplo, la barrera virtual pasa a través de las luces 242a y 242b que permiten al usuario alinear las luces con la ubicación de la barrera virtual. Las luces 242a y 242b, por lo tanto, pueden servir como indicadores visuales de la ubicación de la barrera virtual 516. La barrera virtual 516 puede impedir que el robot 200 pase desde la primera habitación 504 a través de una entrada 517 hacia la habitación 506 del entorno 502. En algunas implementaciones, el robot puede ser colocado en la entrada 517 de modo que el controlador genere la barrera virtual 516 que impide que el robot 200 pase a través de la entrada 517.
Después de que el usuario haya completado sus instrucciones al controlador para generar la barrera virtual 516, sin reposicionar el robot, el usuario puede iniciar la operación de limpieza en la habitación 504. Cuando el robot 200 comienza la operación de limpieza, con referencia ahora a la fig.6B, el robot 200 puede girar 90 grados de tal manera que la dirección de avance F del robot 200 sea paralela a la barrera virtual 516 (por ejemplo, como se ha mostrado en la parte 523 de la fig. 6B). El giro de 90 grados asegura que, en el comportamiento de cobertura, el robot 200 ejecuta la primera fila del patrón de trenza africana adyacente a la barrera virtual 516. En algunos casos, la deriva afecta mínimamente a la primera fila del patrón de trenza africana, por lo que hacer que el robot 200 ejecute la primera fila paralela a la barrera virtual 516 es ventajoso porque no es probable que el robot 200 cruce la barrera virtual. Además, el giro de 90 grados impide que los giros de 180 grados en el patrón de trenza africana se produzcan en la barrera virtual 516. Después de que el robot 200 gire, el robot 200 puede luego proceder a ejecutar un comportamiento de cobertura (por ejemplo, realizar el patrón de trenza africana). En algunos casos, el robot 200 puede moverse en la dirección de accionamiento hacia delante una corta distancia (por ejemplo, 2 a 5 cm, 5 a 10 cm, 10 a 15 cm) y luego girar 90 grados para alinear un lado lateral del robot 200 para ser paralelo con la barrera virtual 516. Por ejemplo, el robot moverse hacia delante la distancia entre los indicadores visuales (por ejemplo, las luces 242, 242b) y el lado posterior del robot 200.
El usuario puede proporcionar las instrucciones al robot 200 a través de varios métodos y mecanismos. El controlador puede responder a un disparador que coloca al robot 200 en un modo de protocolo de enlace o de barrera virtual donde el controlador está preparado para llenar una cuadrícula de ocupación con las barreras virtuales. Cuando el robot 200 está en el modo de protocolo de enlace, el controlador coloca la barrera virtual 516. El disparador puede ser, por ejemplo, el usuario que comprime simultáneamente el parachoques 210 del robot 200 y presiona el botón 240 de limpieza del robot 200 mientras el robot está dentro o fuera del suelo (por ejemplo, como se ha determinado detectando el suelo que utiliza sensores apropiados, como se ha descrito en este documento). El usuario puede manipular el robot 200 de otras maneras también para alternar el disparador e iniciar el modo de protocolo de enlace. Por ejemplo, el usuario puede activar el acelerómetro o giroscopio del robot 200 sacudiendo el robot 200, y tras detectar el temblor, el robot 200 entra en el modo de protocolo de enlace para colocar una o ambas barreras virtuales. En algunos casos, el usuario puede instruir al robot 200 utilizando un dispositivo móvil. El usuario puede posicionar el robot 200 en el entorno y luego instruir al robot 200, por ejemplo, utilizando una aplicación cargada en el dispositivo móvil. En algunas implementaciones, el controlador, tras colocar el robot en el modo de protocolo de enlace, espera más instrucciones del usuario para generar la barrera virtual. El usuario puede emitir otra instrucción, después de instruir al robot para que entre en el modo de protocolo de enlace, para colocar la barrera virtual 516 en la cuadrícula de ocupación.
En algunas implementaciones, el controlador puede generar una segunda barrera virtual que puede ser perpendicular o de otra manera angulada en relación con la primera barrera virtual 516. La segunda barrera virtual puede restringir la entrada del robot en una región que puede ser un área difícil de limpiar o un área con muebles frágiles o artículos para el hogar. La segunda barrera virtual puede ser una barrera virtual de celdas que no se pueden atravesar en la cuadrícula de ocupación 518. La barrera virtual puede ser generada basándose en la posición inicial y/u orientación del robot 200. En algunos ejemplos, la primera y segunda barreras virtuales pueden formar una L de celdas que no se pueden atravesar. En algunos casos, la segunda barrera virtual puede coincidir con el lado derecho 202R o el lado izquierdo 202L del cuerpo 202 de robot. En otros ejemplos, el controlador puede generar la segunda barrera virtual de tal manera que la segunda barrera virtual pase a través de la luz 242a o la luz 242b. El controlador puede generar la segunda barrera virtual en respuesta a la instrucción para generar la primera barrera virtual. En otras implementaciones, el controlador genera la segunda barrera virtual en respuesta a una segunda instrucción del usuario para generar una barrera virtual. En algunos casos, el controlador coloca la segunda barrera virtual cuando el usuario coloca el robot en el modo de protocolo de enlace por primera vez o por segunda vez. En los casos en que el controlador genera dos barreras virtuales, el robot 200 puede iniciar la operación de limpieza sin girar para resultar paralelo con la barrera virtual 516. En algunos casos, el robot 200 puede iniciar la operación de limpieza girando de tal manera que el robot 200 es paralelo a la barrera virtual generada.
Con referencia a la fig. 6C, un diagrama de flujo 560 ilustra un método para que un robot genere una barrera virtual basada en una instrucción de un usuario. El diagrama de flujo incluye operaciones 565 de usuario correspondientes a operaciones ejecutadas por el usuario y operaciones 570 de robot correspondientes a operaciones ejecutadas por el robot.
En la operación 572, el usuario posiciona el robot dentro de un entorno. La posición del robot servirá como la ubicación inicial del robot y la ubicación de la barrera virtual. Como tal, el usuario puede posicionar el robot de modo que una característica del robot esté alineada con (por ejemplo, paralela a) un borde en el entorno que el usuario no quiere que el robot cruce (por ejemplo, a través del cual se ha de levantar una barrera virtual). Por ejemplo, como se ha descrito en este documento, la característica pueden ser luces en el robot o una superficie del cuerpo de robot. En algunos casos, el usuario puede desear crear dos barreras virtuales (por ejemplo, perpendiculares) de modo que el robot no cruce dos bordes en el entorno, y en tales casos, el robot puede tener dos características, cada una indicando una posición y orientación de una barrera virtual.
En la operación 574, el usuario le instruye al robot entrar en un modo de barrera virtual. El usuario puede emitir esta instrucción utilizando cualquiera de los métodos descritos en este documento, o cualquier otro método apropiado, que active el robot para entrar en el modo de protocolo de enlace. En la operación 576, un controlador del robot recibe la instrucción y coloca al robot en el modo de barrera virtual.
En la operación 578, el usuario instruye al robot para generar una barrera virtual. La instrucción para generar la barrera virtual puede ser la instrucción para colocar el robot en el modo de barrera virtual (por ejemplo, para colocar el robot en el modo de protocolo de enlace). En algunos casos, el usuario puede emitir una instrucción posterior además de la instrucción de colocar el robot en el modo de barrera virtual, para generar la barrera virtual. Por ejemplo, el usuario puede activar sensores adicionales para enviar las instrucciones para crear la barrera virtual.
En la operación 580, el controlador recibe las instrucciones para crear la barrera virtual. El controlador puede recibir las instrucciones detectando que los sensores han sido activados de las maneras descritas en este documento. En algunos casos, el robot puede incluir un transceptor inalámbrico que permite que el controlador se comunique con un dispositivo móvil para recibir instrucciones del usuario.
En la operación 582, el controlador genera la barrera virtual. Por ejemplo, el controlador puede definir celdas en una cuadrícula de ocupación como siendo parte de la barrera virtual. Por ejemplo, la barrera virtual puede corresponder a una o más celdas designadas como que no se pueden atravesar. En algunas implementaciones, la barrera virtual puede no estar definida en términos de celdas en la cuadrícula de ocupación. En su lugar, la barrera virtual puede estar definida basándose en coordenadas en la cuadrícula de ocupación o algunas otras características que están dentro, o fuera, del contexto de la cuadrícula de ocupación. Por ejemplo, la barrera virtual es definida basándose en la orientación inicial y la posición del robot. Se pueden obtener mediciones de esta orientación, por ejemplo, basándose en las señales emitidas desde el giroscopio alojado dentro del cuerpo del robot. El controlador puede conocer la ubicación inicial del robot, o una parte de la misma, en la cuadrícula de ocupación inmediatamente después del protocolo de enlace. Utilizando esta información, en concreto la orientación y la ubicación inicial, el controlador puede crear la barrera virtual definiendo un límite (por ejemplo, una línea recta) en la cuadrícula de ocupación (o en cualquier otro lugar) que el robot no pueda cruzar. En algunos casos, el controlador puede generar más de una barrera virtual como se ha descrito en este documento. En algunos ejemplos, el usuario puede seleccionar la longitud de la barrera virtual proporcionando al controlador los parámetros apropiados o bien directamente en el robot o bien a través de una interfaz remota. Por ejemplo, el usuario puede seleccionar una longitud de barrera de 3 a 5 pies (0,9 a 1,6 metros) para prohibir que el robot pase a través de una puerta. En algunos ejemplos, el usuario puede instruir al robot para colocar una barrera de celdas de longitud completa en una fila/columna para subdividir un espacio abierto. En otro caso, el usuario puede seleccionar una región rectangular que rodea al robot, formando cuatro barreras virtuales que el robot no debe cruzar.
En la operación 584, el controlador puede proporcionar una indicación visual de la generación de la barrera virtual. Por ejemplo, el controlador puede instruir a las luces del robot para que se iluminen o puede emitir una alerta audible.
En la operación 586, el usuario instruye al robot para limpiar el entorno. El usuario puede instruir al robot para limpiar presionando el botón de limpieza en el robot o utilizando el dispositivo móvil para controlar el robot de forma remota. La barrera virtual puede ser presentada en un mapa presentado en un dispositivo móvil de un usuario.
En la operación 588, el controlador recibe las instrucciones para limpiar el entorno sin atravesar la barrera virtual. El robot puede ejecutar las instrucciones para limpiar el entorno ejecutando el comportamiento de trenza africana u otros patrones de movimiento para cubrir una superficie del suelo del entorno. El controlador puede instruir al robot para girar de tal manera que la dirección de accionamiento hacia delante del robot sea paralela a la barrera virtual. En algunas implementaciones, el controlador instruye al robot para girar sustancialmente 90 grados para orientar el robot en paralelo a la barrera virtual.
Mientras que los ejemplos ilustrados en las figs. 6A a 6C han sido descritos para utilizar el robot 200 descrito en las figs. 3A a 3B, el robot 100 y otros robots móviles que tienen otras configuraciones pueden implementar fácilmente los métodos descritos en este documento. El robot utilizado para implementar los métodos de las figs. 6A a 6C puede tener otras superficies o características distintivas que el usuario puede utilizar como una referencia para la colocación de la barrera virtual. Aunque se ha descrito que el robot 200 es un robot cuadrado, en algunos casos, el robot que implementa los métodos descritos en este documento puede ser un robot redondo o triangular. Como resultado, la barrera virtual generada puede ser tangencial a una superficie posterior del robot. El robot también puede tener sensores adicionales o alternativos que el usuario puede activar con el fin de instruir al controlador para generar la barrera virtual.
Los métodos descritos en este documento para generar una barrera virtual pueden ocurrir antes de que el robot inicie una operación de limpieza. En algunas implementaciones, el robot comienza la operación de limpieza y navega por de un entorno antes de que el robot genere la barrera virtual o se pueda(n) generar barrera(s) virtual(es) adicional(es) durante la limpieza. Por ejemplo, el robot puede detectar características, marcadores, u otros indicios visuales ubicados en el entorno y responder a las características llenando la cuadrícula de ocupación con una barrera virtual o definiendo de otra manera una o más barreras virtuales que el robot no puede cruzar. Un ejemplo de tal indicador puede ser una pegatina o etiqueta que sea identificable por la máquina y pueda ser posicionada en el entorno.
El robot 100, como se ha descrito anteriormente, incluye la cámara 109 para formar imágenes de las superficies de la pared del entorno. Con referencia a la fig. 7A, en un ejemplo, el robot 100 está ejecutando un comportamiento de cobertura a lo largo de la superficie 10 del suelo de un entorno 602 (por ejemplo, como se ha mostrado en la parte 621) como parte de una operación de limpieza. Ejecutando el patrón de trenza africana, el robot 100 sigue una trayectoria 604 y designa las celdas en una cuadrícula de ocupación 606 como que se pueden atravesar o que no se pueden atravesar (por ejemplo, como se ha mostrado en la parte 623). El entorno 602 incluye una primera habitación 607 y una segunda habitación 608. El robot 100 está ejecutando la operación de limpieza para limpiar la primera habitación 607. A lo largo de la trayectoria 604, el robot 100 puede detectar (por ejemplo, capturar una imagen de) una superficie 609 de pared del entorno 602 utilizando la cámara 109.
En un punto 604a a lo largo de la trayectoria 604, el robot 100 detecta los marcadores 610a, 610b ubicados en la superficie 609 de pared. Un usuario puede colocar los marcadores 610a, 610b en la superficie 609 de pared para impedir que el robot 100 entre en una región del entorno. Por ejemplo, los marcadores 610a, 610b pueden indicar que un área que se puede atravesar por el robot 100 debería ser marcada como que no se puede atravesar en la cuadrícula de ocupación 606 del robot 100. Los marcadores 610a, 610b pueden estar fijados a la superficie 609 de pared a través de, por ejemplo, un adhesivo o respaldo estático. Los marcadores 610a, 610b pueden incluir ventosas que pueden generar una fuerza de succión para fijar las ventosas a las superficies del entorno 602. En algunas implementaciones, los marcadores 610a, 610b incluyen puntos infrarrojos o tinta que puede ser detectable por un transceptor infrarrojo del robot 100 sin ser perceptible por el ser humano en condiciones normales.
En el ejemplo mostrado en las figs. 7A a 7B, la característica es una entrada 611 que conecta la primera habitación 607 a la segunda habitación 608. El usuario coloca los marcadores 610a, 610b aproximadamente 1 m a 2 m por encima de la superficie del suelo en la superficie 609 de pared de modo que el robot 100 pueda detectar los marcadores 610a, 610b utilizando la cámara 109, que está en ángulo ascendente hacia la superficie 609 de pared. En algunos ejemplos, los marcadores 610a, 610b pueden estar por encima de la entrada o estar colocados en el interior de la entrada. Por ejemplo, el usuario puede colocar los marcadores 610a, 610b a lo largo de una superficie horizontal por encima de la entrada y mirando hacia abajo hacia la superficie del suelo de modo que la cámara 109 en ángulo ascendente pueda detectar los marcadores 610a, 610b. La colocación de los marcadores 610a, 610b adyacentes a la entrada 611 puede establecer la ubicación de una barrera virtual y asegurarse de que el robot 100 solo limpie la primera habitación 607 y no entre en la segunda habitación 608.
A lo largo de la trayectoria 604 en el punto 604a, ahora también con referencia a la fig. 7B, el robot 100 detecta los marcadores 610a, 610b en la superficie 609 de pared utilizando la cámara 109. Los marcadores 610a, 610b incluyen características distintivas o información legible por máquina que pueden ser detectadas por la cámara 109. Por lo tanto, algunos marcadores 610a, 610b pueden indicar la ubicación de una barrera virtual mientras que otros marcadores pueden ser utilizados para transmitir otros tipos de información al robot 100. La información o característica legible por máquina puede representar un nombre de una ubicación correspondiente a la estructura u obstáculo en el entorno. En algunos casos, la información legible por máquina puede representar un nombre de una ubicación correspondiente a la estructura u obstáculo en el entorno. La característica o la información legible por máquina puede ser un color, una imagen, u otra característica que pueda ser detectada por la cámara 109. Y, en algunas implementaciones, la cámara 109 puede responder a la radiación fuera del rango de luz visible y por lo tanto también puede ser capaz de detectar, por ejemplo, las características infrarrojas de los marcadores 610a, 610b. Mientras que la cámara 109 ha sido descrita como el sensor para detectar los marcadores 610a, 610b, en algunas implementaciones, el robot 100 puede utilizar otros sensores para detectar los marcadores 610a, 610b, tales como sensores ultrasónicos, de infrarrojos y otros sensores de haz direccional.
Las características distintivas pueden indicar atributos del entorno 602 y/o la superficie 609 de pared. Estas características pueden ser utilizadas con propósitos de identificación además o como una alternativa para establecer una barrera virtual. El elemento 395 de almacenamiento de memoria puede incluir una biblioteca de características de referencia con las cuales el controlador 390 puede comparar los marcadores 610a, 610b de los que se ha formado una imagen. El controlador 390 puede entonces determinar si los marcadores 610a, 610b incluyen características dentro de la biblioteca de características de referencia.
En algunos ejemplos, las características de los marcadores 610a, 610b pueden indicar que el entorno 602 a través del cual navega el robot 100 está navegando es una habitación particular, tal como una cocina, un baño, un dormitorio, una sala de estar, etc. Por ejemplo, los marcadores 610a, 610b pueden incluir un icono de refrigerador que indica que la primera habitación 607 es una cocina, y un icono de televisión que indica que la segunda habitación es una sala de estar. En algunos casos, los marcadores 610a, 610b pueden indicar que existe un tipo de estructura entre los marcadores 610a, 610b. Por ejemplo, en algunos casos, los marcadores 610a, 610b pueden indicar que la entrada 611 se encuentra entre los marcadores 610a, 610b. En otros casos, los marcadores 610a, 610b pueden ser colocados en el entorno 602 de tal manera que el robot no entre en un área difícil de limpiar o en un área con muebles o artículos para el hogar frágiles. Los marcadores 610a, 610b pueden estar colocados sobre lámparas, muebles u otros objetos domésticos de los que se haya podido formar una imagen mediante la cámara 109. Por ejemplo, un tipo de marcador podría establecer una zona de exclusión de una distancia predefinida desde marcador (por ejemplo, 0.25 m a 0.5 m, 0.5 m a 1 m, 1 m a 1.5 m). Los marcadores 610a, 610b pueden tener un color particular para atributos específicos, o una imagen específica para habitaciones particulares. En algunas implementaciones, los marcadores 610a, 610b pueden incluir imágenes distintivas para servir como las características distintivas de los marcadores 610a, 610b.
Las características distintivas también pueden ser nombres de la habitación que marcan los marcadores 610a, 610b, nombres de los obstáculos que marcan los marcadores 610a, 610b, o nombres de las ubicaciones que marcan los marcadores 610a , 610b. Por ejemplo, en implementaciones donde el robot 100 tiene mapas generados a partir de operaciones de limpieza anteriores, los marcadores 610a, 610b pueden indicar que el robot 100 está en la cocina, y el robot 100 puede utilizar entonces un mapa correspondiente a la cocina que fue generado previamente. En algunos casos, el robot 100 puede no comenzar una operación de limpieza hasta que detecta los marcadores 610a, 610b. Cuando el robot 100 detecta los marcadores 610a, 610b, el robot 100 puede comenzar una operación de limpieza basándose en la información de los marcadores 610a, 610b. La información proporcionada por las características distintivas puede ser transmitida a un dispositivo móvil de modo que un usuario pueda ver la información y seleccionar las operaciones del robot 100 basándose en la información.
El controlador puede procesar posteriormente las imágenes generadas de los marcadores 610a, 610b antes de identificar los marcadores 610a, 610 b. Por ejemplo, el controlador puede rectificar las imágenes utilizando una transformación afín o algún otro proceso de visión por ordenador para la rectificación de imágenes. Después de transformar las imágenes de los marcadores 610a, 610b, el controlador puede comparar las imágenes con las imágenes de referencia almacenadas en, por ejemplo, la biblioteca de características de referencia en el elemento 395 de almacenamiento de memoria del robot 100 con el fin de confirmar que el robot 100 ha detectado los marcadores 610a, 610b. La comparación también puede permitir que el controlador 390 determine el tipo de información proporcionada por los marcadores 610a, 610b (por ejemplo, atributos del entorno 602 y la superficie 609 de pared). En algunas implementaciones, los marcadores 610a, 610b pueden tener múltiples partes que transportan diferentes tipos de información. Una parte de cada uno de los marcadores 610a, 610b puede indicar el tipo de la primera habitación 607en la que el robot 100 se encuentra actualmente, y otra parte de cada uno de los marcadores 610a, 610b puede indicar el tipo de la segunda habitación 608 conectada a la entrada 611.
En los ejemplos en los que los marcadores 610a, 610b son utilizados para establecer barreras virtuales, tras detectar los marcadores 610a, 610b y confirmar que el robot ha detectado los marcadores 610a, 610b, el robot 100 puede designar una barrera virtual 612 (por ejemplo, un conjunto de celdas que no se pueden atravesar) en la cuadrícula de ocupación 606 basándose en las posiciones de los marcadores 610a, 610b. Por ejemplo, el controlador puede calcular una línea 614 que pasa a través tanto del marcador 610a como del marcador 610b. La línea 614 es paralela a la barrera virtual 612 que el controlador designa en la cuadrícula de ocupación 606. Mientras que la barrera virtual 612 en la cuadrícula de ocupación 606 es mostrada entre los marcadores 610a, 610b, en algunas implementaciones, la barrera virtual 612 generada a partir de la detección de los marcadores 610a, 610b puede abarcar una longitud mayor que la línea 614 que conecta los marcadores 610a, 610b.
Los marcadores 610a, 610b puede indicar al robot 100 que la entrada 611 existe entre los marcadores 610a, 610b. En tales casos, tras finalizar la operación de limpieza de la primera habitación 607, el robot 100 puede, en una operación de limpieza posterior, moverse hacia la barrera virtual 612 y comenzar una operación de limpieza posterior para limpiar la segunda habitación 608. La barrera virtual 612 puede persistir, pero, en lugar de limpiar la primera habitación 607 en el lado derecho de la barrera virtual 612, el robot 100 limpia la segunda habitación 608.
El robot 100 puede continuar limpiando la primera habitación 607 dentro de los límites de la barrera virtual 612 y la superficie 609 de pared física hasta que se cumplan una o más condiciones. La una o más condiciones pueden incluir, por ejemplo, cubrir un porcentaje del área definida y/u otras condiciones descritas en este documento.
En algunas implementaciones, el robot 100 puede recordar la barrera virtual 612 en una operación de limpieza posterior (por ejemplo, en una cuadrícula de ocupación persistente). El usuario puede quitar los marcadores 610a, 610b después de la primera operación de limpieza cuando el robot 100 detecta los marcadores 610a, 610b, y la barrera virtual 612 como parte de la primera operación de limpieza persiste. El robot 100, por ejemplo, almacena la barrera virtual 612 y la utiliza para la operación de limpieza posterior. Tras comenzar la operación de limpieza posterior en la primera habitación 607, el robot 100 permanece en la primera habitación 607 y no pasa a través de la entrada 611 a la segunda habitación 608.
Con referencia a la fig. 7C, un diagrama de flujo 660 ilustra un método para utilizar marcadores en un entorno para instruir a un robot para generar una barrera virtual en una cuadrícula de ocupación almacenada en el robot. El diagrama de flujo 660 incluye operaciones de usuario 665 correspondientes a operaciones ejecutadas por el usuario y operaciones de robot 670 correspondientes a operaciones ejecutadas por el robot.
En la operación 672, el usuario coloca los marcadores en el entorno. El usuario puede colocar los marcadores de tal manera que flanqueen una característica específica en el entorno que el usuario no desea que atraviese, tal como una entrada, umbral, u otra abertura. Los marcadores pueden estar colocados en una superficie en el entorno para identificar un artículo de la habitación. La superficie puede ser la superficie de una pared, obstáculo, u otro objeto en el entorno.
En la operación 674, el usuario instruye al robot para comenzar una primera operación de limpieza. El usuario puede utilizar un dispositivo móvil o puede presionar un botón en el robot para instruir al robot para comenzar la primera operación de limpieza.
En la operación 676, un controlador del robot recibe la instrucción para comenzar la primera operación de limpieza. En la operación 678, el robot ejecuta la primera operación de limpieza. En algunos casos, el controlador comienza la primera operación de limpieza, por ejemplo, instruyendo al robot para comenzar la operación de limpieza. Durante la operación de limpieza, el robot puede ejecutar el patrón de trenza africana, como se ha descrito en este documento, o algún otro patrón de movimiento para cubrir una superficie del suelo del entorno.
En la operación 680, el robot detecta los marcadores en el entorno. El controlador puede utilizar una cámara, un sensor ultrasónico, o algún otro sensor en el robot para detectar los marcadores. En algunos casos, como se ha descrito en este documento, la cámara puede detectar un color, una imagen, u otra característica distintiva de los marcadores. El controlador puede recibir datos de imagen de la cámara correspondientes a la detección de los marcadores.
En la operación 682, el controlador determina si los marcadores detectados son marcadores de barrera virtual. El controlador también puede procesar posteriormente los datos de imagen de los marcadores detectados y hacer una determinación de si los datos de imagen corresponden a imágenes de referencia que el controlador puede esperar a partir de la detección de los marcadores. El controlador puede comparar los datos de imagen con imágenes de referencia en una biblioteca almacenada en un elemento de almacenamiento de memoria operable con el controlador. El controlador puede determinar si los marcadores detectados indican una barrera virtual, una ubicación, u otra información acerca del entorno.
Si el controlador determina que los marcadores detectados son marcadores de barrera virtual, en la operación 684, el controlador genera una barrera virtual en una cuadrícula de ocupación que, por ejemplo, corresponde a la ubicación de los marcadores detectados. La barrera virtual, como se ha descrito en este documento, puede corresponder a un conjunto de celdas que no se pueden atravesar que han de ser marcadas en la cuadrícula de ocupación. En algunos casos, la longitud o anchura de la barrera que no se puede atravesar pueden depender de las características distintivas detectadas en los marcadores. Si el controlador determina que el marcador detectado no es un marcador de barrera virtual, en la operación 686, el controlador almacena datos relacionados con el marcador detectado en la cuadrícula de ocupación. Los datos pueden ser, por ejemplo, un nombre de la habitación, un nombre de la ubicación de los marcadores detectados. En algunas implementaciones, el controlador puede determinar que el controlador ha identificado erróneamente los marcadores detectados y que los marcadores detectados no indican información acerca del entorno. En algunos ejemplos, el controlador puede determinar que los marcadores detectados indican tanto una barrera virtual como datos relacionados con el nombre de la habitación o la ubicación de los marcadores detectados.
En la operación 688, el controlador determina si la primera operación de limpieza está completa. El controlador puede evaluar si el robot ha cumplido una o más condiciones como se ha descrito en este documento. Si el controlador determina que la primera operación de limpieza está completa, en la operación 690, el robot completa la primera operación de limpieza. Si el controlador determina que la primera operación de limpieza no está completa, en la operación 692, el robot continúa la primera operación de limpieza. El controlador puede instruir al robot para continuar la primera operación de limpieza. El robot puede entonces continuar detectando marcadores en el entorno, o en algunos casos, el robot continúa la primera operación de limpieza y luego completa la primera operación de limpieza sin detectar marcadores adicionales y procede a la operación 690.
En algunas implementaciones, el controlador puede almacenar la barrera virtual para ser utilizada en una operación de limpieza posterior. Como resultado, en la operación 694, el usuario puede retirar los marcadores del entorno. En algunas implementaciones, el usuario puede mantener los marcadores en el entorno, y las detecciones posteriores de los marcadores por la cámara del robot pueden aumentar la confianza de que la cámara ha detectado los marcadores.
Luego, en la operación 696, el usuario puede instruir al robot para comenzar una segunda operación de limpieza. En algunos casos, el usuario instruye al robot para comenzar la segunda operación de limpieza en el entorno que el robot limpió durante la primera operación de limpieza. En otros casos, el usuario instruye al robot para comenzar la operación de limpieza en otro entorno. En la operación 698, el controlador recibe la instrucción para comenzar la segunda operación de limpieza utilizando la cuadrícula de ocupación generada durante la primera operación de limpieza. El controlador luego instruye al robot para comenzar la segunda operación de limpieza. Si el robot comienza la segunda operación de limpieza en el entorno limpiado durante las operaciones 678 y 692, el robot limpia las mismas áreas y no cruza la barrera virtual. Si el robot comienza la segunda operación de limpieza en otro entorno, el robot puede limpiar un área diferente al área limpiada durante la primera operación de limpieza, y la barrera virtual impide de manera eficaz que el robot regrese el área limpiada durante la operación 678 y 692.
Mientras que los ejemplos ilustrados en las figs. 7A a 7C han sido descritos con respecto al robot 100 descrito en las figs. 2A a 2B, otros robots móviles que tienen otras configuraciones apropiadas pueden implementar los métodos descritos en este documento. Por ejemplo, el robot 200 puede incluir una cámara que puede ejecutar las funciones descritas en este documento. En algunas implementaciones, la cámara 109 puede capturar imágenes que el controlador puede utilizar para identificar características geométricas características de las entradas (por ejemplo, una abertura rectangular que se extiende desde el suelo a través de una parte de la pared). El controlador puede colocar una barrera virtual correspondiente a la ubicación de la geometría de la entrada detectada por la cámara 109.
El robot 100, como se ha descrito en este documento, incluye el transceptor 118 de infrarrojos para detectar la radiación infrarroja emitida en el entorno. Con referencia a la fig. 8A, una baliza 701 de entrada está ubicada en la superficie 10 del suelo de un entorno 702 que incluye una primera habitación 704 y una segunda habitación 706 (por ejemplo, como se ha mostrado en la parte 721 de la fig. 8A). Una entrada 707 separa la primera habitación 704 de la segunda habitación 706. La baliza 701 de entrada emite un haz 708 de entrada de infrarrojos detectable por el transceptor 118 de infrarrojos. Un usuario puede colocar la baliza 701 de entrada en el entorno 702 y puede orientar la baliza 701 de entrada de tal manera que el haz 708 de entrada apunte en una dirección específica. Por ejemplo, el haz 708 de entrada puede ser dirigido a lo largo de la entrada 707.
Mientras limpia la primera habitación 704, el robot 100 puede ejecutar un patrón de trenza africana en la forma de una trayectoria 709. Cuando el robot 100 navega por la primera habitación 704 a lo largo de la trayectoria 709, el robot 100 puede detectar el haz 708 de entrada cuando el robot 100 pasa por el haz 708 de entrada utilizando, por ejemplo, el transceptor 118 de infrarrojos. El robot 100 puede detectar el haz 708 de entrada e interpretar las ubicaciones donde el robot 100 detecta el haz 708 de entrada como una barrera virtual 710 (por ejemplo, un conjunto de celdas que no se pueden atravesar) en una cuadrícula de ocupación 712 del robot 100 (por ejemplo, como se ha mostrado en la parte 723 de la fig. 8A). Aunque que la fig. 8A muestra que la trayectoria 709 pasa cerca del haz 708 de entrada, en otras implementaciones, la trayectoria 709 puede pasar a través del haz 708 de entrada. La baliza 701 de entrada y su haz 708 de entrada impiden así que el robot 100 pase a través de la entrada 707.
Con referencia a la fig. 8B, el robot 100, en una operación de limpieza posterior, el robot 100 puede almacenar la ubicación de la barrera virtual 710 en, por ejemplo, memoria o en un dispositivo informático remoto como parte de un mapa persistente (por ejemplo, como se ha mostrado en la parte 723 de la fig. 8B). Como resultado, cuando la baliza 701 de entrada colocada en el entorno 702 en la fig. 8A es retirada del entorno para operaciones de limpieza posteriores, se puede impedir aún que el robot 100 cruce la barrera virtual 710. En algunos casos, el robot 100 puede estar colocado en la primera habitación 704 y volver a limpiar la primera habitación 704 sin cruzar la barrera virtual 710 hacia la segunda habitación 706. En otros casos, el robot 100 puede estar colocado en la segunda habitación 706 y puede limpiar la segunda habitación 706 sin limpiar nuevamente la primera habitación 704.
Con referencia a la fig. 8C, un diagrama de flujo 760 ilustra un método para utilizar una baliza de entrada en un entorno para instruir a un robot para generar una barrera virtual en una cuadrícula de ocupación almacenada en el robot. El diagrama de flujo 760 incluye operaciones 765 de usuario correspondientes a operaciones ejecutadas por el usuario y operaciones 770 de robot correspondientes a operaciones ejecutadas por el robot.
En la operación 772, el usuario coloca la baliza de entrada en el entorno. El usuario puede colocar la baliza de entrada en la superficie del suelo del entorno de tal manera que el haz de entrada marque una característica o ubicación específica en el entorno que el usuario no desea que el robot atraviese, tal como una entrada, umbral u otra abertura.
En la operación 774, el usuario instruye al robot para comenzar una primera operación de limpieza. El usuario puede utilizar un dispositivo móvil o presionar un botón en el robot para instruir al robot para comenzar la primera operación de limpieza.
En la operación 776, el controlador del robot recibe la instrucción para comenzar la primera operación de limpieza. En la operación 778, el controlador comienza la primera operación de limpieza.
En la operación 780, un transceptor del robot detecta el haz de entrada en el entorno. El transceptor puede ser un transceptor de infrarrojos.
En la operación 782, el controlador genera una barrera virtual en una cuadrícula de ocupación u otro mapa persistente. La barrera virtual, como se ha descrito en este documento, puede corresponder a una línea de celdas que no se pueden atravesar que han de ser marcadas en la cuadrícula de ocupación. En algunas implementaciones, la barrera virtual puede ser un conjunto de coordenadas que definen una línea o curva en una cuadrícula de ocupación. En algunos casos, la longitud o anchura de la barrera que no se puede atravesar pueden depender de la fuerza de la señal que el robot detecta cuando detecta el haz de entrada en la operación 780.
En la operación 784, el controlador completa la primera operación de limpieza. El controlador puede completar la primera operación de limpieza, por ejemplo, determinando que el robot ha cumplido una o más condiciones tales como, por ejemplo, cubrir un porcentaje del área definida y/o satisfacer otras condiciones descritas en este documento.
En algunas implementaciones, el robot puede almacenar la barrera virtual en un mapa persistente que ha de ser utilizado en una operación de limpieza posterior. Como resultado, en la operación 786, el usuario puede retirar la baliza de entrada del entorno. Luego, en la operación 788, el usuario puede instruir al robot para comenzar una segunda operación de limpieza. En algunos casos, el usuario instruye al robot para comenzar la segunda operación de limpieza en el entorno que el robot limpió durante la primera operación de limpieza. En otros casos, el usuario instruye al robot para comenzar la operación de limpieza en otro entorno. En la operación 790, el robot comienza la segunda operación de limpieza utilizando la cuadrícula de ocupación generada durante la primera operación de limpieza. Si el robot comienza la segunda operación de limpieza en el entorno limpiado durante la operación 778, el robot generalmente limpia las mismas áreas y no cruza la barrera virtual. Si el robot comienza la segunda operación de limpieza en otro entorno, el robot puede limpiar un área diferente al área limpiada durante la primera operación de limpieza, y la barrera virtual impide de manera eficaz que el robot regrese al área limpiada durante la operación 778.
Mientras que los ejemplos ilustrados en las figs. 8A a 8C han sido descritos para utilizar el robot 100 descrito en las figs. 2A a 2B, otros robots móviles que tienen otras configuraciones apropiadas pueden implementar los métodos descritos en este documento. Por ejemplo, el robot 200 puede incluir un transceptor de infrarrojos que puede ejecutar las funciones descritas en este documento.
Mientas que las barreras virtuales generadas en este documento han sido descritas como paredes rectas, en algunas implementaciones, las barreras virtuales pueden ser circulares. Por ejemplo, colocar el robot en el modo de protocolo de enlace descrito con respecto a las figs. 6A a 6C puede hacer que el controlador genere una barrera virtual sustancialmente circular que puede, por ejemplo, restringir un robot a una alfombra de área circular. En algunos casos, el usuario puede instruir al controlador para generar una barrera virtual circular utilizando un dispositivo informático móvil que pueda comunicarse con el sistema de comunicaciones del robot. En algunos casos, el robot puede continuar la operación de limpieza en el área circular hasta que el controlador haya determinado que el robot ha satisfecho una o más condiciones, tales como, por ejemplo, cubrir un porcentaje del área definida y/o satisfacer otras condiciones descritas en este documento. En otros ejemplos, la barrera virtual puede establecer una zona de exclusión circular.
El controlador puede utilizar las barreras virtuales para dividir un entorno en dos o más regiones que han de ser cubiertas por separado. Por ejemplo, la barrera virtual puede dividir el entorno en dos regiones, donde una región corresponde, por ejemplo, a una cocina, un baño, una alfombra, etc., y una segunda región corresponde a un dormitorio, una sala de estar, un suelo de madera, etc. El controlador puede instruir al robot para limpiar la primera región en una operación de limpieza y luego limpiar la segunda región en una operación de limpieza posterior. En algunos casos, el controlador puede instruir al robot para limpiar una región en un modo de limpieza más profundo donde el robot repetirá una operación de limpieza múltiples veces en la región. En algunas implementaciones, el usuario puede etiquetar las regiones individuales del entorno como habitaciones particulares en una casa, tales como una cocina, un dormitorio o un baño. Como se ha descrito en este documento, el controlador también puede detectar características en los marcadores 610a, 610b que pueden permitir que el controlador asocie etiquetas con regiones del entorno. El usuario puede utilizar el dispositivo informático móvil para instruir al robot para limpiar una región etiquetada. El usuario también puede instruir al robot que se mantenga fuera de una región etiquetada mientras que el robot limpia otra región etiquetada.
Aunque al menos en algunos de los ejemplos descritos en este documento, las barreras virtuales fueron almacenadas en una cuadrícula de ocupación utilizada por el robot para la localización, las barreras virtuales podrían ser almacenadas en otros tipos de mapas utilizados por el robot para la localización y la navegación.
El sistema puede ser controlado o implementado, al menos en parte, utilizando uno o más productos de programa informático, por ejemplo, uno o más programas informáticos incorporados de forma tangible en uno o más soportes de información, tales como uno o más medios legibles por máquina no transitorios, para ejecución mediante, o para controlar el funcionamiento de, uno o más aparatos de procesamiento de datos, por ejemplo, un procesador programable, un ordenador, múltiples ordenadores y/o componentes lógicos programables.
Un programa informático puede estar escrito en cualquier forma de lenguaje de programación, incluyendo los lenguajes compilados o interpretados, y puede ser implementado en cualquier forma, incluyendo como un programa independiente o como un módulo, componente, subrutina, u otra unidad adecuada para utilizar en un entorno informático.
Las acciones asociadas con implementar todo o parte del mecanismo de control descrito en este documento pueden ser realizadas por uno o más procesadores programables que ejecutan uno o más programas informáticos para realizar las funciones descritas en este documento. Todo o parte del mecanismo de control descrito en este documento puede ser implementado utilizando un circuito lógico de propósito especial, por ejemplo, una FPGA (matriz de puerta programable por campo) y/o un ASIC (circuito integrado de aplicación específica).
Los procesadores adecuados para la ejecución de un programa informático incluyen, a modo de ejemplo, microprocesadores de propósito general y especial, y uno o más procesadores de cualquier tipo de ordenador digital. Generalmente, un procesador recibirá instrucciones y datos desde un área de almacenamiento de solo lectura o un área de almacenamiento de acceso aleatorio o ambos. Los elementos de un ordenador incluyen uno o más procesadores para ejecutar instrucciones y uno o más dispositivos de área de almacenamiento para almacenar instrucciones y datos. Generalmente, un ordenador también incluirá, o estará acoplado operativamente para recibir datos desde, o transferir datos a, o ambos, uno o más medios de almacenamiento legibles por máquina, tales como PCB en masa para almacenar datos, por ejemplo, discos magnéticos, discos magneto-ópticos, o discos ópticos. Los medios de almacenamiento legibles por máquina adecuados para incorporar instrucciones y datos de programas informáticos incluyen todas las formas de área de almacenamiento no volátil, incluyendo a modo de ejemplo, dispositivos de área de almacenamiento semiconductores, por ejemplo, EPROM, EEPROM, y dispositivos de área de almacenamiento flash; discos magnéticos, por ejemplo, discos duros internos o discos extraíbles; discos magneto-ópticos; y discos CD-ROM y DVD-ROM.

Claims (15)

REIVINDICACIONES
1. Un robot (100, 200) que comprende:
un cuerpo (102, 202) que se puede mover en relación con una superficie (10);
uno o más dispositivos de medición (112, 133, 134) dentro del cuerpo (102, 202) para emitir información basándose en una orientación del cuerpo (102, 202) en una ubicación inicial en la superficie (10); y un controlador (390) dentro del cuerpo para determinar la orientación del cuerpo (102, 202) basándose en la información, y
caracterizado por que el controlador (330) está configurado además para restringir el movimiento del cuerpo (102, 202) a un área impidiendo el movimiento del cuerpo (102, 202) más allá de una barrera virtual que define un límite que el robot (100, 200) no puede cruzar que es creado basándose en la orientación del cuerpo (102, 202) y la ubicación inicial, y
el controlador (330) está configurado además para almacenar la barrera virtual que ha de ser utilizada subsiguientemente para restringir el movimiento del robot.
2. El robot (100, 200) de la reivindicación 1, en el que la barrera virtual se extiende a través de una entrada (517), y la posición inicial del robot está dentro de la entrada (517).
3. El robot (100, 200) de la reivindicación 1, en el que el cuerpo comprende una parte frontal y una parte posterior (202A); y
en el que la barrera virtual se extiende a lo largo de una línea que es paralela a la parte posterior (202A) del robot.
4. El robot (100, 200) de la reivindicación 3, en el que la línea es tangencial a la parte posterior (202A) del robot.
5. El robot (100, 200) de la reivindicación 3, en el que la línea interseca el cuerpo (102, 202) del robot en una ubicación indicada por un indicador visual (242a, 242b) en el robot (100, 200).
6. El robot (100, 200) de la reivindicación 1 o la reivindicación 2, en el que el cuerpo (102, 202) comprende una parte frontal y una parte posterior (202A); y
en el que la barrera virtual comprende una primera línea que se extiende paralela a la parte posterior del robot (100, 200) y una segunda línea que se extiende perpendicular a la parte posterior (202A) del robot (100, 200).
7. El robot (100, 200) de la reivindicación 6, en el que la ubicación inicial del robot (100, 200) coloca la parte posterior (202A) del cuerpo (102, 202) adyacente a la primera línea y un lado del cuerpo (102, 202) adyacente a la segunda línea.
8. El robot (100, 200) de la reivindicación 6 o la reivindicación 7, en el que el controlador (390) está programado para restringir el movimiento del cuerpo (102, 202) controlando el cuerpo (102, 202) para realizar operaciones que comprenden:
girar en un ángulo en relación con la orientación inicial; y
atravesar el área de la superficie (10) a lo largo de las trayectorias que son paralelas a la barrera virtual.
9. El robot (100, 200) de cualquiera de las reivindicaciones anteriores, en el que el controlador (390) está programado para restringir el movimiento del cuerpo (102, 202) realizando operaciones que comprenden:
generar un mapa (518) que represente un área que ha de ser limpiada; y
designar una barrera virtual (516) en el mapa (518) que indica una ubicación que el robot (100, 200) tiene prohibido cruzar.
10. El robot (100, 200) de cualquiera de las reivindicaciones anteriores, en donde la barrera virtual es designada designando coordenadas que corresponden a la barrera virtual como que no se pueden atravesar.
11. El robot (100, 200) de cualquiera de las reivindicaciones anteriores, en el que la determinación de la orientación y la restricción del movimiento son realizadas tras la entrada en un modo de protocolo de enlace, estando programado el controlador (390) para reconocer el modo de protocolo de enlace en respuesta a una o más operaciones iniciadas por el usuario en el robot (100, 200).
12. Un método para generar una cuadrícula de ocupación (518) de al menos parte de un entorno (502) que se puede atravesar por un robot (100, 200), comprendiendo el método:
determinar, mediante un controlador (390) dentro del robot (100, 200), una ubicación inicial y orientación del robot (100, 200) dentro del entorno (502); y
llenar, mediante el controlador (390), la cuadrícula de ocupación (518) con una barrera virtual de celdas (516) que no se pueden atravesar que definen un límite que el robot (100, 200) no puede cruzar,
en el que la barrera de celdas (516) que no se puede atravesar está basada al menos en la ubicación inicial y la orientación del robot (100, 200),
en el que el controlador (330) está configurado además para almacenar la barrera virtual que ha de ser utilizada posteriormente para restringir el movimiento del robot.
13. El método de la reivindicación 12, que comprende además;
reconocer, mediante el controlador (390), un modo de protocolo de enlace en respuesta a una o más operaciones iniciadas por el usuario en el robot (100, 200); y
determinar, mediante el controlador (390), la ubicación y la orientación del robot (100, 200) tras la entrada en el modo de protocolo de enlace.
14. El método de la reivindicación 12 o la reivindicación 13, que comprende además:
restringir el movimiento del robot (100, 200) haciendo que el robot (100, 200) gire en un ángulo en relación con la orientación inicial y haciendo que el robot (100, 200) atraviese un área de una superficie (10) de suelo del entorno (502) a lo largo de trayectorias que son paralelas a la barrera (516).
15. El método de cualquiera de las reivindicaciones 12 a 14, en el que llenar la cuadrícula de ocupación (518) con la barrera de celdas (516) que no se puede atravesar comprende llenar la cuadrícula de ocupación (518) con la barrera de celdas (516) que no se puede atravesar que se extiende a lo largo de una línea que es paralela a una parte posterior (202A) del robot (100, 200).
ES15195596T 2015-04-09 2015-11-20 Movimiento restrictivo de un robot móvil Active ES2746498T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/682,658 US9868211B2 (en) 2015-04-09 2015-04-09 Restricting movement of a mobile robot

Publications (1)

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

Family

ID=54695558

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15195596T Active ES2746498T3 (es) 2015-04-09 2015-11-20 Movimiento restrictivo de un robot móvil

Country Status (9)

Country Link
US (4) US9868211B2 (es)
EP (2) EP3079030B1 (es)
JP (2) JP6746309B2 (es)
KR (1) KR102401899B1 (es)
CN (3) CN110888448A (es)
AU (1) AU2015390843B2 (es)
CA (1) CA2981943C (es)
ES (1) ES2746498T3 (es)
WO (1) WO2016164071A1 (es)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11835343B1 (en) * 2004-08-06 2023-12-05 AI Incorporated Method for constructing a map while performing work
US10579066B1 (en) * 2015-03-30 2020-03-03 AI Incorporated System and method for establishing virtual boundaries for robotic devices
US11347239B1 (en) 2014-10-01 2022-05-31 AI Incorporated System and method for establishing virtual boundaries for robotic devices
US9722640B2 (en) 2015-01-06 2017-08-01 Discovery Robotics Method and system for determining precise robotic position and orientation using near-simultaneous radio frequency measurements
US10518407B2 (en) 2015-01-06 2019-12-31 Discovery Robotics Apparatus and methods for providing a reconfigurable robotic platform
US11400595B2 (en) 2015-01-06 2022-08-02 Nexus Robotics Llc Robotic platform with area cleaning mode
US10328573B2 (en) 2015-01-06 2019-06-25 Discovery Robotics Robotic platform with teach-repeat mode
US9868211B2 (en) 2015-04-09 2018-01-16 Irobot Corporation Restricting movement of a mobile robot
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
KR102398330B1 (ko) * 2015-06-12 2022-05-16 엘지전자 주식회사 이동 로봇 및 그 제어방법
DE102015109775B3 (de) 2015-06-18 2016-09-22 RobArt GmbH Optischer Triangulationssensor zur Entfernungsmessung
DE102015114883A1 (de) 2015-09-04 2017-03-09 RobArt GmbH Identifizierung und Lokalisierung einer Basisstation eines autonomen mobilen Roboters
US10496262B1 (en) * 2015-09-30 2019-12-03 AI Incorporated Robotic floor-cleaning system manager
DE102015119501A1 (de) 2015-11-11 2017-05-11 RobArt GmbH Unterteilung von Karten für die Roboternavigation
DE102015119865B4 (de) 2015-11-17 2023-12-21 RobArt GmbH Robotergestützte Bearbeitung einer Oberfläche mittels eines Roboters
US10093021B2 (en) * 2015-12-02 2018-10-09 Qualcomm Incorporated Simultaneous mapping and planning by a robot
DE102015121666B3 (de) 2015-12-11 2017-05-24 RobArt GmbH Fernsteuerung eines mobilen, autonomen Roboters
DE102016102644A1 (de) 2016-02-15 2017-08-17 RobArt GmbH Verfahren zur Steuerung eines autonomen mobilen Roboters
US11353326B2 (en) * 2016-03-06 2022-06-07 Arizona Board Of Regents On Behalf Of The University Of Arizona Traverse and trajectory optimization and multi-purpose tracking
US10011016B1 (en) * 2016-05-11 2018-07-03 X Development Llc Surface markers and methods for use
US11726487B1 (en) * 2016-06-06 2023-08-15 AI Incorporated Method for robotic devices to identify doorways using machine learning
USD869108S1 (en) 2016-07-14 2019-12-03 Discovery Robotics Robot comprising a service module
CN106142090B (zh) * 2016-09-21 2018-11-20 苏州瑞得恩光能科技有限公司 机器人在矩形斜坡上行驶的路径导航控制方法
CN108226386B (zh) * 2016-12-14 2020-11-10 盟立自动化股份有限公司 环境侦测系统
CN108481320B (zh) * 2017-01-09 2020-03-27 广东宝乐机器人股份有限公司 一种机器人的移动控制方法及机器人
DE102017100366A1 (de) * 2017-01-10 2018-07-12 Vorwerk & Co. Interholding Gmbh Verfahren zum Betrieb eines Bodenbearbeitungsgerätes
KR20180082264A (ko) * 2017-01-10 2018-07-18 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR20180096059A (ko) 2017-02-20 2018-08-29 엘지전자 주식회사 객체의 특성이 적용된 맵을 작성하는 방법 및 이를 구현하는 로봇
EP3974934A1 (de) * 2017-03-02 2022-03-30 Robart GmbH Verfahren zur steuerung eines autonomen, mobilen roboters
USD846536S1 (en) * 2017-03-15 2019-04-23 Al Incorporated Robot confinement transceiver
CN106840168B (zh) * 2017-03-16 2019-10-01 苏州大学 清洁机器人及其动态环境下全覆盖路径规划方法
CN108803589A (zh) * 2017-04-28 2018-11-13 深圳乐动机器人有限公司 机器人虚拟墙系统
US20180344116A1 (en) * 2017-06-02 2018-12-06 Irobot Corporation Scheduling and control system for autonomous robots
KR102024092B1 (ko) * 2017-07-12 2019-09-23 엘지전자 주식회사 이동 로봇 시스템 및 그 제어방법
JP6475788B2 (ja) * 2017-07-20 2019-02-27 マツダエース株式会社 自動搬送装置
CN107329476A (zh) * 2017-08-02 2017-11-07 珊口(上海)智能科技有限公司 一种房间拓扑地图构建方法、系统、装置及扫地机器人
US10140530B1 (en) * 2017-08-09 2018-11-27 Wipro Limited Method and device for identifying path boundary for vehicle navigation
CN107479551B (zh) * 2017-08-22 2020-11-10 北京小米移动软件有限公司 控制移动的方法和装置
US10583561B2 (en) * 2017-08-31 2020-03-10 Neato Robotics, Inc. Robotic virtual boundaries
DE102017120218A1 (de) * 2017-09-01 2019-03-07 RobArt GmbH Bewegungsplanung für autonome mobile roboter
EP3682305B1 (de) * 2017-09-12 2023-04-12 Robart GmbH Exploration einer unbekannten umgebung durch einen autonomen mobilen roboter
WO2019063066A1 (en) 2017-09-26 2019-04-04 Aktiebolaget Electrolux CONTROL FOR MOVING A ROBOTIC CLEANING DEVICE
US10422648B2 (en) * 2017-10-17 2019-09-24 AI Incorporated Methods for finding the perimeter of a place using observed coordinates
JP7013212B2 (ja) * 2017-11-14 2022-01-31 Tvs Regza株式会社 電子装置、マーカ、電子装置の制御方法及びプログラム
US11014238B2 (en) * 2017-11-27 2021-05-25 Amazon Technologies, Inc. Dynamic navigation of autonomous vehicle with safety infrastructure
CN107997690B (zh) * 2017-12-04 2020-02-07 深圳市无限动力发展有限公司 室内区域划分方法及扫地机器人
WO2019109225A1 (zh) * 2017-12-04 2019-06-13 深圳市沃特沃德股份有限公司 室内区域划分方法及扫地机器人
JP7014586B2 (ja) * 2017-12-13 2022-02-01 東芝ライフスタイル株式会社 自律走行体
JP2019109853A (ja) * 2017-12-20 2019-07-04 東芝ライフスタイル株式会社 自律走行体および自律走行体システム
US11413755B2 (en) * 2017-12-31 2022-08-16 Sarcos Corp. Covert identification tags viewable by robots and robotic devices
US10878294B2 (en) * 2018-01-05 2020-12-29 Irobot Corporation Mobile cleaning robot artificial intelligence for situational awareness
US11614746B2 (en) 2018-01-05 2023-03-28 Irobot Corporation Mobile cleaning robot teaming and persistent mapping
CN108247647B (zh) 2018-01-24 2021-06-22 速感科技(北京)有限公司 一种清洁机器人
USD879775S1 (en) * 2018-02-08 2020-03-31 AI Incorporated Virtual barrier device
EP3782001A4 (en) * 2018-04-16 2021-06-02 Growponics Greenhouse Technology Ltd. GREENHOUSE CONTROL SYSTEM
US11126199B2 (en) * 2018-04-16 2021-09-21 Baidu Usa Llc Learning based speed planner for autonomous driving vehicles
WO2019203878A1 (en) * 2018-04-20 2019-10-24 Discovery Robotics Apparatus and methods of a service robotic platform
EP3928329B1 (en) 2018-04-23 2024-04-03 SharkNinja Operating LLC Techniques for bounding cleaning operations of a robotic surface cleaning device within a region of interest
CN108968825B (zh) * 2018-08-17 2020-12-11 深圳领贝智能科技有限公司 一种扫地机器人和机器人扫地方法
JP2020042726A (ja) * 2018-09-13 2020-03-19 株式会社東芝 Ogm圧縮回路、ogm圧縮伸長システム、および移動体システム
US11256261B1 (en) * 2018-10-16 2022-02-22 Amazon Technologies, Inc. System for movement of autonomous mobile device
JP2020075032A (ja) * 2018-11-09 2020-05-21 東芝ライフスタイル株式会社 自律型電気掃除機
WO2020117766A1 (en) * 2018-12-03 2020-06-11 Sharkninja Operating Llc Optical indicium for communicating information to autonomous devices
KR102115194B1 (ko) * 2018-12-12 2020-05-27 엘지전자 주식회사 로봇 청소기 및 그 제어방법
EP3671261A1 (en) * 2018-12-21 2020-06-24 Leica Geosystems AG 3d surveillance system comprising lidar and multispectral imaging for object classification
CN111459153B (zh) * 2019-01-03 2022-09-06 科沃斯机器人股份有限公司 动态区域划分与区域通道识别方法及清洁机器人
JP7012040B2 (ja) * 2019-03-28 2022-01-27 本田技研工業株式会社 動作領域制限方法、及びロボット制御装置
CN109991980B (zh) * 2019-04-01 2022-07-08 珠海一微半导体股份有限公司 充电座的信号量化分布图的形成方法
JP7351638B2 (ja) * 2019-04-23 2023-09-27 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置、画像表示システム、および情報提示方法
CN110202570B (zh) * 2019-05-13 2022-07-05 深圳创动科技有限公司 机器人及其运动控制方法以及存储介质
US11266287B2 (en) 2019-05-29 2022-03-08 Irobot Corporation Control of autonomous mobile robots
JP7260402B2 (ja) * 2019-05-31 2023-04-18 ファナック株式会社 ケーブルの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法
CN110450152A (zh) * 2019-06-24 2019-11-15 广东宝乐机器人股份有限公司 区域识别方法、机器人和存储介质
KR102305206B1 (ko) * 2019-07-11 2021-09-28 엘지전자 주식회사 인공 지능을 통해 바닥 상황을 고려하여 청소하는 로봇 청소기 및 그 방법
KR102298582B1 (ko) * 2019-07-12 2021-09-08 엘지전자 주식회사 센서 데이터를 이용하여 청소 동선을 결정하는 인공 지능 로봇 및 그 방법
US11288883B2 (en) * 2019-07-23 2022-03-29 Toyota Research Institute, Inc. Autonomous task performance based on visual embeddings
JP7410150B2 (ja) * 2019-07-23 2024-01-09 本田技研工業株式会社 自律作業機、自律作業機の制御方法及びプログラム
KR102054301B1 (ko) * 2019-08-09 2020-01-22 엘지전자 주식회사 객체의 특성이 적용된 맵을 작성하는 방법 및 이를 구현하는 로봇
US11327483B2 (en) 2019-09-30 2022-05-10 Irobot Corporation Image capture devices for autonomous mobile robots and related systems and methods
US11467585B2 (en) 2019-11-08 2022-10-11 Irobot Corporation Control of autonomous mobile robots
US11436940B2 (en) 2020-02-28 2022-09-06 Irobot Corporation Mobile cleaning robot hardware recommendations
US20210282613A1 (en) * 2020-03-12 2021-09-16 Irobot Corporation Control of autonomous mobile robots
CN111523334B (zh) * 2020-04-09 2023-09-19 美智纵横科技有限责任公司 虚拟禁区的设置方法、装置、终端设备、标签和存储介质
JP7411897B2 (ja) * 2020-04-10 2024-01-12 パナソニックIpマネジメント株式会社 掃除機システム、および掃除機
WO2022034686A1 (ja) * 2020-08-14 2022-02-17 日本電気株式会社 動作範囲設定装置、動作範囲設定方法及び記録媒体
US11730328B2 (en) * 2020-08-14 2023-08-22 Irobot Corporation Visual fiducial for behavior control zone
CN112438661A (zh) * 2020-11-25 2021-03-05 浙江欣奕华智能科技有限公司 智能设备运动控制方法、装置、设备及计算机存储介质
WO2023053602A1 (ja) * 2021-09-29 2023-04-06 日本電産株式会社 自律走行装置および自律走行装置の制御方法
US11720122B1 (en) * 2022-10-27 2023-08-08 Tompkins Robotics, Inc. Robotic vehicle navigaton system and method
CN116202512B (zh) * 2023-05-06 2023-07-21 湖北工业大学 一种基于计算机视觉的ar导航装置

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4196727A (en) 1978-05-19 1980-04-08 Becton, Dickinson And Company See-through anesthesia mask
EP0007790A1 (en) 1978-08-01 1980-02-06 Imperial Chemical Industries Plc Driverless vehicle carrying non-directional detectors auto-guided by light signals
US4482960A (en) 1981-11-20 1984-11-13 Diffracto Ltd. Robot tractors
US4700301A (en) 1983-11-02 1987-10-13 Dyke Howard L Method of automatically steering agricultural type vehicles
US4679152A (en) 1985-02-20 1987-07-07 Heath Company Navigation system and method for a mobile robot
US4662854A (en) 1985-07-12 1987-05-05 Union Electric Corp. Self-propellable toy and arrangement for and method of controlling the movement thereof
SE451770B (sv) 1985-09-17 1987-10-26 Hyypae Ilkka Kalevi Sett for navigering av en i ett plan rorlig farkost, t ex en truck, samt truck for utovning av settet
NO864109L (no) 1985-10-17 1987-04-21 Knepper Hans Reinhard Fremgangsmaate for automatisk foering av selvgaaende gulvrengjoeringsmaskiner samt gulvrengjoeringsmaskin for utfoerelse av fremgangsmaaten.
KR900003080B1 (ko) 1987-03-30 1990-05-07 마쓰시다덴기산교 가부시기가이샤 전기소제기의 바닥노즐
US4933864A (en) 1988-10-04 1990-06-12 Transitions Research Corporation Mobile robot navigation employing ceiling light fixtures
JPH0313611A (ja) 1989-06-07 1991-01-22 Toshiba Corp 自動清掃装置
US5109566A (en) 1990-06-28 1992-05-05 Matsushita Electric Industrial Co., Ltd. Self-running cleaning apparatus
US5307273A (en) 1990-08-29 1994-04-26 Goldstar Co., Ltd. Apparatus and method for recognizing carpets and stairs by cleaning robot
IL123225A (en) 1992-01-12 1999-07-14 Israel State Large area movement robot
US5440216A (en) 1993-06-08 1995-08-08 Samsung Electronics Co., Ltd. Robot cleaner
KR100197676B1 (ko) 1993-09-27 1999-06-15 윤종용 로보트 청소기
US5471391A (en) 1993-12-08 1995-11-28 Caterpillar Inc. Method and apparatus for operating compacting machinery relative to a work site
JPH08326025A (ja) 1995-05-31 1996-12-10 Tokico Ltd 清掃ロボット
US5819008A (en) 1995-10-18 1998-10-06 Rikagaku Kenkyusho Mobile robot sensor system
JPH10105236A (ja) 1996-09-30 1998-04-24 Minolta Co Ltd 移動体の位置決め装置および移動体の位置決め方法
US5974348A (en) 1996-12-13 1999-10-26 Rocks; James K. System and method for performing mobile robotic work operations
US5995884A (en) 1997-03-07 1999-11-30 Allen; Timothy P. Computer peripheral floor cleaning system and navigation method
SE510524C2 (sv) 1997-09-19 1999-05-31 Electrolux Ab Elektroniskt avgränsningssystem
SE511504C2 (sv) 1997-10-17 1999-10-11 Apogeum Ab Sätt och anordning för associering av anonyma reflektorer till detekterade vinkellägen
DE69804253T2 (de) 1997-11-27 2002-11-21 Solar & Robotics Bruessel Brux Verbesserungen bei beweglichen robotern und bei ihren steuerungssystemen
US6532404B2 (en) 1997-11-27 2003-03-11 Colens Andre Mobile robots and their control system
AUPP299498A0 (en) 1998-04-15 1998-05-07 Commonwealth Scientific And Industrial Research Organisation Method of tracking and sensing position of objects
IL124413A (en) 1998-05-11 2001-05-20 Friendly Robotics Ltd System and method for area coverage with an autonomous robot
US6112143A (en) 1998-08-06 2000-08-29 Caterpillar Inc. Method and apparatus for establishing a perimeter defining an area to be traversed by a mobile machine
US6108076A (en) 1998-12-21 2000-08-22 Trimble Navigation Limited Method and apparatus for accurately positioning a tool on a mobile machine using on-board laser and positioning system
GB2350696A (en) 1999-05-28 2000-12-06 Notetry Ltd Visual status indicator for a robotic machine, eg a vacuum cleaner
ATE268196T1 (de) 1999-06-17 2004-06-15 Solar & Robotics S A Automatische vorrichtung zum sammeln von gegenständen
DE19938639B4 (de) * 1999-08-14 2006-08-24 Pilz Gmbh & Co. Kg Vorrichtung zur Absicherung eines Gefahrenbereichs, insbesondere des Gefahrenbereichs einer automatisiert arbeitenden Maschine
IL149558A0 (en) 1999-11-18 2002-11-10 Procter & Gamble Home cleaning robot
JP2001191283A (ja) 1999-12-31 2001-07-17 Sony Corp ロボット装置及びその制御方法
US6594844B2 (en) 2000-01-24 2003-07-22 Irobot Corporation Robot obstacle detection system
US7155308B2 (en) 2000-01-24 2006-12-26 Irobot Corporation Robot obstacle detection system
US8412377B2 (en) 2000-01-24 2013-04-02 Irobot Corporation Obstacle following sensor scheme for a mobile robot
US6481515B1 (en) 2000-05-30 2002-11-19 The Procter & Gamble Company Autonomous mobile surface treating apparatus
US6539284B2 (en) 2000-07-25 2003-03-25 Axonn Robotics, Llc Socially interactive autonomous robot
US6690134B1 (en) * 2001-01-24 2004-02-10 Irobot Corporation Method and system for robot localization and confinement
US7571511B2 (en) 2002-01-03 2009-08-11 Irobot Corporation Autonomous floor-cleaning robot
US6883201B2 (en) 2002-01-03 2005-04-26 Irobot Corporation Autonomous floor-cleaning robot
WO2002096184A1 (fr) 2001-05-28 2002-12-05 Solar & Robotics Sa Amelioration a une tondeuse robotique
US7429843B2 (en) 2001-06-12 2008-09-30 Irobot Corporation Method and system for multi-mode coverage for an autonomous robot
EP2287696B1 (en) 2001-06-12 2018-01-10 iRobot Corporation Method and system for multi-code coverage for an autonomous robot
US6604021B2 (en) 2001-06-21 2003-08-05 Advanced Telecommunications Research Institute International Communication robot
EP1331537B1 (en) * 2002-01-24 2005-08-03 iRobot Corporation Method and system for robot localization and confinement of workspace
US9128486B2 (en) 2002-01-24 2015-09-08 Irobot Corporation Navigational control system for a robotic device
US6658354B2 (en) 2002-03-15 2003-12-02 American Gnc Corporation Interruption free navigator
WO2004025947A2 (en) 2002-09-13 2004-03-25 Irobot Corporation A navigational control system for a robotic device
KR100468107B1 (ko) 2002-10-31 2005-01-26 삼성광주전자 주식회사 외부충전장치를 갖는 로봇청소기 시스템 및 로봇청소기의외부충전장치 접속방법
KR100485696B1 (ko) 2003-02-07 2005-04-28 삼성광주전자 주식회사 로봇청소기의 위치인식표지 검출방법 및 이 검출방법을적용한 로봇청소기
US20040204792A1 (en) 2003-03-14 2004-10-14 Taylor Charles E. Robotic vacuum with localized cleaning algorithm
JP2005211359A (ja) * 2004-01-30 2005-08-11 Funai Electric Co Ltd 自律走行ロボットクリーナーシステム
US20060020369A1 (en) 2004-03-11 2006-01-26 Taylor Charles E Robot vacuum cleaner
WO2006002385A1 (en) * 2004-06-24 2006-01-05 Irobot Corporation Programming and diagnostic tool for a mobile robot
KR20060023068A (ko) 2004-09-08 2006-03-13 삼성전자주식회사 청소기 및 이를 이용한 청소방법
JP4086024B2 (ja) * 2004-09-14 2008-05-14 ソニー株式会社 ロボット装置及びその行動制御方法
ES2346343T3 (es) 2005-02-18 2010-10-14 Irobot Corporation Robot autonomo de limpieza de superficies para una limpieza en seco y en mojado.
US7389156B2 (en) 2005-02-18 2008-06-17 Irobot Corporation Autonomous surface cleaning robot for wet and dry cleaning
TWI278731B (en) 2005-05-09 2007-04-11 Infinite Electronics Inc Self-propelled apparatus for virtual wall system
JP4300199B2 (ja) 2005-06-13 2009-07-22 株式会社東芝 移動ロボット、移動ロボットの位置姿勢算出方法、移動ロボットの自律走行システム
EP2544066B1 (en) 2005-12-02 2018-10-17 iRobot Corporation Robot system
US8868237B2 (en) 2006-03-17 2014-10-21 Irobot Corporation Robot confinement
KR101458752B1 (ko) * 2007-05-09 2014-11-05 아이로보트 코퍼레이션 소형 자율 커버리지 로봇
KR20090077547A (ko) * 2008-01-11 2009-07-15 삼성전자주식회사 이동 로봇의 경로 계획 방법 및 장치
US8961695B2 (en) * 2008-04-24 2015-02-24 Irobot Corporation Mobile robot for cleaning
JP5241306B2 (ja) 2008-04-24 2013-07-17 パナソニック株式会社 自律移動装置
EP2918212B1 (en) * 2008-04-24 2016-06-08 iRobot Corporation Application of localization, positioning & navigation systems for robotic enabled mobile products
JP2009301247A (ja) 2008-06-12 2009-12-24 Hitachi Appliances Inc 自律移動ロボットの仮想壁システム
KR100997656B1 (ko) 2008-06-18 2010-12-01 한양대학교 산학협력단 로봇의 장애물 검출방법 및 그 장치
US8706297B2 (en) * 2009-06-18 2014-04-22 Michael Todd Letsky Method for establishing a desired area of confinement for an autonomous robot and autonomous robot implementing a control system for executing the same
US8364309B1 (en) 2009-07-14 2013-01-29 Bailey Bendrix L User-assisted robot navigation system
EP3550393B1 (en) * 2009-11-06 2023-03-01 iRobot Corporation Method and system for covering a surface by an autonomous robot
RU2526672C2 (ru) 2009-12-23 2014-08-27 Колгейт-Палмолив Компани Устройство для идентификации заболеваний ротовой полости
KR20110119118A (ko) 2010-04-26 2011-11-02 엘지전자 주식회사 로봇 청소기, 및 이를 이용한 원격 감시 시스템
KR101021267B1 (ko) 2010-09-20 2011-03-11 주식회사 모뉴엘 청소로봇 시스템 및 그 제어 방법
CN201840423U (zh) 2010-10-11 2011-05-25 洋通工业股份有限公司 自走吸尘器的充电座
TW201240636A (en) * 2011-04-11 2012-10-16 Micro Star Int Co Ltd Cleaning system
TW201305761A (zh) * 2011-07-21 2013-02-01 Ememe Robot Co Ltd 自走機器人及其定位方法
JP5457485B2 (ja) * 2012-03-02 2014-04-02 アイロボット コーポレイション デブリセンサを備えた清浄装置
US9146560B2 (en) 2012-03-30 2015-09-29 Irobot Corporation System and method for implementing force field deterrent for robot
CN103076802B (zh) * 2012-10-09 2016-01-20 江苏大学 机器人虚拟边界建立与识别方法及系统
CN103082934B (zh) * 2012-12-28 2015-12-09 暨南大学 基于足式爬壁的智能玻璃清洁机器人
US9235780B2 (en) 2013-01-02 2016-01-12 Samsung Electronics Co., Ltd. Robust keypoint feature selection for visual search with self matching score
US9375847B2 (en) * 2013-01-18 2016-06-28 Irobot Corporation Environmental management systems including mobile robots and methods using same
KR101490170B1 (ko) * 2013-03-05 2015-02-05 엘지전자 주식회사 로봇 청소기
KR102020215B1 (ko) * 2013-03-23 2019-09-10 삼성전자주식회사 로봇 청소기 및 로봇 청소기의 제어방법
CN104460663A (zh) * 2013-09-23 2015-03-25 科沃斯机器人科技(苏州)有限公司 智能手机控制清扫机器人的方法
JP6378962B2 (ja) 2014-07-31 2018-08-22 シャープ株式会社 自走式電子機器
US9868211B2 (en) * 2015-04-09 2018-01-16 Irobot Corporation Restricting movement of a mobile robot

Also Published As

Publication number Publication date
US20160297072A1 (en) 2016-10-13
US20200238520A1 (en) 2020-07-30
KR20160121373A (ko) 2016-10-19
US10639793B2 (en) 2020-05-05
WO2016164071A1 (en) 2016-10-13
US11465284B2 (en) 2022-10-11
CN106037591B (zh) 2020-01-17
CN205458451U (zh) 2016-08-17
CA2981943C (en) 2021-05-25
EP3079030A1 (en) 2016-10-12
KR102401899B1 (ko) 2022-05-24
AU2015390843B2 (en) 2020-08-20
CA2981943A1 (en) 2016-10-13
CN110888448A (zh) 2020-03-17
JP7184435B2 (ja) 2022-12-06
US20230064687A1 (en) 2023-03-02
CN106037591A (zh) 2016-10-26
JP6746309B2 (ja) 2020-08-26
US20180065253A1 (en) 2018-03-08
JP2016201095A (ja) 2016-12-01
EP3617830A1 (en) 2020-03-04
US9868211B2 (en) 2018-01-16
EP3079030B1 (en) 2019-07-24
JP2020126691A (ja) 2020-08-20
AU2015390843A1 (en) 2017-08-24

Similar Documents

Publication Publication Date Title
ES2746498T3 (es) Movimiento restrictivo de un robot móvil
ES2779998T3 (es) Sistema de limpieza de pisos autónomo
US10390483B2 (en) Autonomous mobile robot
US9278690B2 (en) Autonomous mobile robot
JP6679506B2 (ja) ロボット芝刈り境界線決定
CN106200633B (zh) 使用物理特征定位和制图
EP3104194B1 (en) Robot positioning system
JP6772129B2 (ja) 移動ロボットにおける光学式走行距離センサの使用のためのシステム及び方法
US9339163B2 (en) Mobile robot and operating method thereof
JP2019515393A (ja) 清掃ロボット及びその制御方法
US20150115876A1 (en) Mobile robot, charging apparatus for the mobile robot, and mobile robot system
CN112004645A (zh) 智能清洁机器人
US20230157506A1 (en) Trajectory-based localization and mapping
ES2942627T3 (es) Procedimiento para la navegación y la autolocalización de un dispositivo de tratamiento que se desplaza de forma autónoma
CN113841098A (zh) 使用线阵列检测物体