ES3038372T3 - Zone engine for providing context-augmented map layer - Google Patents
Zone engine for providing context-augmented map layerInfo
- Publication number
- ES3038372T3 ES3038372T3 ES19780106T ES19780106T ES3038372T3 ES 3038372 T3 ES3038372 T3 ES 3038372T3 ES 19780106 T ES19780106 T ES 19780106T ES 19780106 T ES19780106 T ES 19780106T ES 3038372 T3 ES3038372 T3 ES 3038372T3
- Authority
- ES
- Spain
- Prior art keywords
- zone
- robots
- rule
- space
- robot
- 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
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/246—Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0234—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
- G05D1/0291—Fleet control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
- G05D1/0291—Fleet control
- G05D1/0297—Fleet control by controlling means in a control room
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/244—Arrangements for determining position or orientation using passive navigation aids external to the vehicle, e.g. markers, reflectors or magnetic means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/60—Intended control result
- G05D1/617—Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/60—Intended control result
- G05D1/69—Coordinated control of the position or course of two or more vehicles
- G05D1/698—Control allocation
- G05D1/6987—Control allocation by centralised control off-board any of the vehicles
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D2101/00—Details of software or hardware architectures used for the control of position
- G05D2101/10—Details of software or hardware architectures used for the control of position using artificial intelligence [AI] techniques
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D2109/00—Types of controlled vehicles
- G05D2109/10—Land vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Business, Economics & Management (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Game Theory and Decision Science (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Electromagnetism (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
Los sistemas y métodos para mapear contextualmente zonas dentro de un espacio para regular la navegación robótica dentro del espacio incluyen definir, mediante al menos un marcador fiducial posicionado dentro del espacio, una zona dentro del espacio, asociar una regla con la zona, la regla dictando al menos parcialmente la operación de uno o más robots dentro de la zona, y operar el uno o más robots dentro de la zona de acuerdo con la regla. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Motor de zonas para proporcionar una capa de mapa aumentada según el contexto
REFERENCIA CRUZADA A SOLICITUDES RELACIONADAS
[0001] Esta solicitud reivindica el beneficio de prioridad de la Solicitud de Patente de EE. UU. con número de Serie 16/135,329, depositada el 19 de septiembre de 2018.
CAMPO DE LA INVENCIÓN
[0002] Esta invención se refiere a la regulación de la navegación del robot y más particularmente a un motor de zona para proporcionar una capa de mapa aumentada según el contexto para regular la navegación del robot. ANTECEDENTES DE LA INVENCIÓN
[0003] Ordenar productos a través de Internet para la entrega a domicilio es una forma muy popular de comprar. Cumplir dichos pedidos de manera oportuna, precisa y eficiente es, por decir lo menos, un desafío logístico. Al hacer clic en el botón "pagar" en un carrito de compras virtual, se crea un "pedido". El pedido incluye una lista de artículos que se enviarán a una dirección en particular. El proceso de "cumplimiento" implica tomar o "recoger" físicamente estos artículos de un gran almacén, empacarlos y enviarlos a la dirección designada. Por lo tanto, un objetivo importante del proceso de cumplimiento de pedidos es enviar tantos artículos en el menor tiempo posible.
[0004] El proceso de cumplimiento de pedidos típicamente se lleva a cabo en un gran almacén que contiene muchos productos, incluidos los que se enumeran en el pedido. Por lo tanto, entre las tareas de cumplimiento de pedidos está la de atravesar el almacén para encontrar y recoger los diversos artículos enumerados en un pedido. Además, los productos que en última instancia se enviarán primero deben recibirse en el almacén y almacenarse o "colocarse" en contenedores de almacenamiento de manera ordenada en todo el almacén para que puedan recuperarse fácilmente para su envío.
[0005] En un gran almacén, los productos que se entregan y solicitan pueden almacenarse en el almacén muy separados entre sí y dispersarse entre una gran cantidad de otros productos. Con un proceso de cumplimiento de pedidos que usa solo operadores humanos para colocar y recoger los productos, los operadores deben caminar mucho y puede ser ineficiente y llevar mucho tiempo. Dado que la eficiencia del proceso de cumplimiento es una función de la cantidad de artículos enviados por unidad de tiempo, aumentar el tiempo reduce la eficiencia.
[0006] Para aumentar la eficiencia, los robots pueden usarse para realizar funciones de seres humanos o pueden usarse para complementar las actividades humanas. Por ejemplo, a los robots se les puede asignar "colocar" una cantidad de artículos en diversas ubicaciones dispersas por todo el almacén o "recoger" artículos de diversas ubicaciones para su embalaje y envío. La recogida y colocación puede ser realizada por el robot solo o con la ayuda de operadores humanos. Por ejemplo, en el caso de una operación de recogida, el operador humano seleccionaría artículos de los estantes y los colocaría en los robots o, en el caso de una operación de colocar, el operador humano seleccionaría artículos del robot y los colocaría en los estantes.
[0007] En la medida en que los robots navegan simultáneamente por un espacio de almacén junto con operadores humanos y otros robots, en espacios de tamaño y carga de tráfico variables, el riesgo de colisión puede aumentar o disminuir dependiendo de la ubicación instantánea del robot. Por ejemplo, durante una operación de cumplimiento de un pedido, un robot puede navegar entre espacios grandes con poco tráfico donde el riesgo de colisión es mínimo y espacios estrechos con mucho tráfico donde el riesgo de colisión es alto. Además, en la medida en que se introduzcan en el entorno del almacén obstáculos de construcción, mantenimiento, no navegables, productos desplazados, palés, contenedores o estantes u otros impedimentos temporales o permanentes similares, la navegación del robot puede verse afectada.
[0008] El documento EP1 898289 A2 proporciona un sistema modular para construir una infraestructura para controlar un aparato de procesamiento de superficies que tiene un conjunto de instrucciones, al menos un elemento de marcado y un dispositivo de control en un entorno que tiene al menos una superficie de trabajo. El documento US 2014/100693 A1 proporciona un sistema de robot móvil que incluye una estación de acoplamiento que tiene al menos dos marcadores de referencia que definen la pose. El documento US 2017/029213 A1 proporciona un procedimiento para realizar tareas en elementos ubicados en un espacio usando un robot, estando los elementos ubicados cerca de marcadores de referencia, y cada marcador de referencia tiene una identificación de referencia.
BREVE RESUMEN DE LA INVENCIÓN
[0009] En esta invención se proporcionan sistemas y procedimientos para un motor de zonas para proporcionar una capa de mapa aumentada según el contexto para regular la navegación del robot.
[0010] Según la presente invención, se proporciona un procedimiento para mapear contextualmente zonas dentro de un espacio para regular la navegación robótica dentro del espacio, como se define en la reivindicación independiente 1. El procedimiento incluye definir, a través de al menos un marcador de referencia posicionado dentro del espacio, una zona dentro del espacio. El procedimiento también incluye la asociación de una regla a la zona, la cual dicta, al menos parcialmente, el funcionamiento de uno o más robots dentro de ella. El procedimiento también incluye el funcionamiento de uno o más robots dentro de la zona según la regla. El al menos un marcador de referencia dentro del espacio está correlacionado con una pose que tiene una posición relativa al marcador de referencia. La posición relativa se representa a través de un conjunto de coordenadas de un sistema de coordenadas definido por el espacio. Un límite de la zona está definido, al menos parcialmente, por la pose. El procedimiento también incluye la redefinición automática de la zona dentro del espacio en respuesta a un reposicionamiento o reorientación detectado del marcador de referencia.
[0011] En algunas realizaciones, la regla dicta al menos uno de los siguientes: si la zona está abierta o cerrada, un tipo de zona, una ocupación máxima de la zona, una velocidad máxima de la zona, una direccionalidad del flujo de tráfico de la zona, un comportamiento de parada y espera al entrar o salir de la zona, si una definición de la zona se ha actualizado dinámicamente, una expiración de la zona o combinaciones de estos. En algunas realizaciones, la etapa de asociación comprende además la generación de una tabla de búsqueda que correlaciona la zona con al menos un marcador de referencia y la regla. En algunas realizaciones, el procedimiento también incluye la asociación de una o más reglas adicionales con la zona, las cuales dictan, al menos parcialmente, el funcionamiento de uno o más robots dentro de la zona. En algunas realizaciones, el procedimiento también incluye el funcionamiento de uno o más robots dentro de la zona según las reglas adicionales. En algunas realizaciones, las reglas adicionales dictan, al menos, si la zona está abierta o cerrada, el tipo de zona, la ocupación máxima de la zona, la velocidad máxima de la zona, la direccionalidad del flujo de tráfico, el comportamiento de parada y espera al entrar o salir de la zona, si la definición de la zona se ha actualizado dinámicamente, la expiración de la zona o combinaciones de estos.
[0012] En algunas realizaciones, la etapa de asociar una o más reglas adicionales comprende además generar una tabla de búsqueda que correlaciona la zona con el al menos un marcador de referencia, la regla y las reglas adicionales. En algunas realizaciones, el procedimiento también incluye la detección de al menos una de las siguientes situaciones: superposición o adyacencia de la zona con respecto a una segunda zona. En algunas realizaciones, el procedimiento también incluye la identificación de un conflicto entre un valor de la regla y un valor correspondiente de una regla correspondiente de la segunda zona. En algunas realizaciones, el procedimiento también incluye la generación de una regla de resolución de conflictos para su asociación con una zona de superposición definida por uno o más marcadores de referencia compartidos entre la zona y la segunda zona. En algunas realizaciones, la etapa de generación de la regla de resolución de conflictos también incluye la selección del valor mayor o menor entre el valor y el valor correspondiente. En algunas realizaciones, la etapa de generación de la regla de resolución de conflictos también incluye la definición de un valor objetivo entre el valor y el valor correspondiente. En algunas realizaciones, la etapa de generación de la regla de resolución de conflictos también incluye la asociación del valor objetivo con una tolerancia de valor correspondiente, de modo que esta tolerancia abarque tanto el valor como el valor correspondiente.
[0013] En algunas realizaciones, el procedimiento también incluye la redefinición automática de la zona dentro del espacio en respuesta a la detección de un reposicionamiento o reorientación del al menos un marcador de referencia. En algunas realizaciones, el procedimiento también incluye la modificación automática de la regla o la adición automática de una regla adicional en respuesta a los datos recibidos de uno o más robots, un sistema de gestión de almacén, un usuario o una fuente de datos externa.
[0014] En algunas realizaciones, la etapa de operación comprende además la notificación periódica, desde uno o más robots a un controlador central, de la posición de dichos robots dentro del espacio. En algunas realizaciones, la etapa de operación comprende además la instrucción, por parte del controlador central, de que, en respuesta al posicionamiento informado de uno o más robots dentro de la zona, estos operen según lo dictado por la regla. En algunas realizaciones, la posición de uno o más robots dentro del espacio no se determina a través de la lectura del al menos un marcador de referencia. En algunas realizaciones, la etapa de operación comprende además la detección periódica, por parte de cada uno de los robots, de su posición dentro del espacio. En algunas realizaciones, la etapa de operación comprende además la operación, en respuesta a la detección de la posición del robot dentro de la zona, del robot según lo dictado por la regla. En algunas realizaciones, la posición de uno o más robots dentro del espacio no se determina a través de la lectura del al menos un marcador de referencia.
[0015] Según la presente invención, se proporciona un sistema para mapear contextualmente zonas dentro de un espacio con el fin de regular la navegación robótica, según se define en la reivindicación independiente 9.
[0016] El sistema incluye un procesador. El sistema también incluye una memoria que almacena instrucciones que, al ser ejecutadas por el procesador, hacen que el sistema defina, a través de al menos un marcador de referencia posicionado dentro del espacio, una zona dentro del mismo, asocie una regla con dicha zona, la cual dicta, al menos parcialmente, el funcionamiento de uno o más robots dentro de la zona, y opere dichos robots según la regla. El al menos un marcador de referencia dentro del espacio está correlacionado con una pose que tiene una pose relativa al marcador de referencia. La posición relativa se representa a través de un conjunto de coordenadas de un sistema de coordenadas definido por el espacio. Un límite de la zona está definido, al menos parcialmente, por la pose. El procesador también está configurado para redefinir la zona dentro del espacio en respuesta a un reposicionamiento o reorientación detectado del al menos un marcador de referencia.
[0017] En algunas realizaciones, la memoria almacena además instrucciones que, al ser ejecutadas por el procesador, hacen que el sistema genere en la memoria una tabla de búsqueda que correlaciona la zona con el al menos un marcador de referencia y la regla. En algunas realizaciones, la memoria almacena además instrucciones que, al ser ejecutadas por el procesador, hacen que el sistema asocie una o más reglas adicionales con la zona. Estas reglas adicionales dictan, al menos parcialmente, el funcionamiento de uno o más robots dentro de la zona, y que operen el o los robots dentro de la zona según las reglas adicionales. En algunas realizaciones, la memoria almacena además instrucciones que, al ser ejecutadas por el procesador, hacen que el sistema genere en la memoria una tabla de búsqueda que correlaciona la zona con el al menos un marcador de referencia, la regla y las reglas adicionales. En algunas realizaciones, la memoria almacena además instrucciones que, al ser ejecutadas por el procesador, hacen que el sistema modifique automáticamente la regla o añada automáticamente una regla adicional en respuesta a los datos recibidos de uno o más robots, un sistema de gestión de almacén, un usuario o una fuente de datos externa. En algunas realizaciones, la posición de uno o más robots dentro del espacio no se determina a través de la lectura del marcador de referencia. En un aspecto, la invención presenta un procedimiento para...
[0018] Estas y otras características de la invención serán evidentes a partir de la siguiente descripción detallada y las figuras adjuntas, donde:
BREVE DESCRIPCIÓN DE LAS FIGURAS
[0019]
La FIG. 1 es una vista en planta superior de un almacén de cumplimiento de pedidos;
La FIG. 2A es una vista en alzado frontal de una base de uno de los robots usados en el almacén mostrado en la FIG. 1;
La FIG. 2B es una vista en perspectiva de una base de uno de los robots usados en el almacén que se muestra en la FIG. 1;
La FIG. 3 es una vista en perspectiva del robot de las FIGS. 2A y 2B equipado con una armadura y estacionado frente a un estante que se muestra en la FIG. 1;
La FIG. 4 es un mapa parcial del almacén de la FIG. 1 creado usando un radar láser en el robot;
La FIG. 5 es un diagrama de flujo que representa el proceso para localizar marcadores de referencia dispersos por todo el almacén y almacenar poses de marcadores de referencia;
La FIG. 6 es una tabla de identificación de referencia para el mapeo de poses;
La FIG. 7 es una tabla de la ubicación de contenedores para el mapeo de identificación de referencias;
La FIG. 8 es un diagrama de flujo que representa el proceso de mapeo de SKU de producto a pose;
La FIG. 9 es una vista en planta superior de un almacén de cumplimiento de pedidos que tiene una pluralidad de zonas;
La FIG. 10 es una tabla de mapeo de ID de zona a ID de referencia con propiedades de zona correspondientes; La FIG. 11 es un diagrama de flujo que representa un procedimiento para la resolución de conflictos entre zonas superpuestas;
La FIG. 12 es un diagrama de bloques de un ejemplo de sistema informático; y
La FIG. 13 es un diagrama de red de un ejemplo de red distribuida.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
[0020] La descripción y las diversas características y detalles ventajosos de esta se explican más completamente con referencia a las realizaciones y ejemplos no limitantes que se describen y/o ilustran en los dibujos adjuntos y se detallan en la siguiente descripción. Cabe destacar que las características ilustradas en los dibujos no están necesariamente dibujadas a escala, y las características de una realización pueden emplearse con otras realizaciones como reconocería el experto en la materia, incluso si no se indican explícitamente en esta invención. Las descripciones de componentes y técnicas de procesamiento bien conocidos pueden omitirse para no complicar innecesariamente las realizaciones de la descripción. Los ejemplos usados en esta invención pretenden simplemente facilitar la comprensión de las formas en que puede ponerse en práctica la descripción y permitir además que los expertos en la técnica pongan en práctica las realizaciones de la descripción. Por consiguiente, los ejemplos y realizaciones en esta invención no se deben interpretar como limitativos del alcance de la descripción. Además, se observa que los números de referencia similares representan partes similares a lo largo de las diversas vistas de los dibujos.
[0021] La invención está dirigida a un motor de zona para proporcionar una capa de mapa aumentada según el contexto para regular la navegación del robot. Aunque no se limita a ninguna aplicación de robot en particular, una aplicación adecuada donde puede usarse la invención es el cumplimiento de pedidos. Se describirá el uso de robots en esta solicitud para proporcionar contexto para el motor de zona, pero no se limita a esa aplicación.
[0022] Con referencia a la FIG. 1, un almacén típico de cumplimiento de pedidos 10 incluye estantes 12 llenos de los diversos artículos que podrían incluirse en un pedido. En funcionamiento, un flujo entrante de pedidos 16 desde el servidor de gestión de almacén 15 llega a un servidor de pedidos 14. El servidor de pedidos 14 puede priorizar y agrupar pedidos, entre otras cosas, para su asignación a los robots 18 durante un proceso de inducción. A medida que los operadores introducen los robots, en una estación de procesamiento (por ejemplo, la estación 100), los pedidos 16 se asignan y comunican a los robots 18 de manera inalámbrica para su ejecución. Los expertos en la materia entenderán que el servidor de pedidos 14 puede ser un servidor separado con un sistema de software discreto configurado para interoperar con el servidor del sistema de gestión de almacén 15 y el software de gestión de almacén o la funcionalidad del servidor de pedidos puede integrarse en el software de gestión de almacén y ejecutarse en el servidor de gestión de almacén 15.
[0023] En una realización preferida de la invención, un robot 18, mostrado en las FIGS. 2A y 2B, incluye una base con ruedas autónoma 20 que tiene un radar láser 22. La base 20 también cuenta con un transceptor (no mostrado) que permite que el robot 18 reciba instrucciones y transmita datos al servidor de pedidos 14 y/u otros robots, y un par de cámaras ópticas digitales 24a y 24b. La base del robot también incluye un puerto de carga eléctrica 26 para recargar las baterías que alimentan la base autónoma con ruedas 20. La base 20 presenta además un procesador (no mostrado) que recibe datos del radar láser y las cámaras 24a y 24b para capturar información representativa del entorno del robot. Hay una memoria (no mostrada) que funciona con el procesador para llevar a cabo diversas tareas asociadas con la navegación dentro del almacén 10, así como para navegar hasta el marcador de referencia 30 colocado en los estantes 12, como se muestra en la FIG. 3. El marcador de referencia 30 (por ejemplo, un código de barras bidimensional) corresponde al contenedor/ubicación de un artículo pedido. La estrategia de navegación de esta invención se describe en detalle a continuación con respecto a las FIGS. 4-8. Los marcadores de referencia también se usan para identificar las estaciones de carga según un aspecto de esta invención y la navegación a dichos marcadores de referencia de la estación de carga es la misma que la navegación al contenedor/ubicación de los artículos pedidos. Una vez que los robots navegan a una estación de carga, se usa una estrategia de navegación más precisa para acoplar el robot con la estación de carga y dicha estrategia de navegación se describe a continuación.
[0024] Con referencia de nuevo a la FIG. 2B, la base 20 incluye una superficie superior 32 donde se podría almacenar una cubeta o contenedor para transportar artículos. También se muestra un acoplamiento 34 que se acopla a cualquiera de una pluralidad de armaduras intercambiables 40, una de las cuales se muestra en la FIG. 3. La armadura particular 40 en la FIG. 3 cuenta con un soporte para cubetas 42 (en este caso un estante) para transportar una cubeta 44 que recibe artículos, y un soporte para tableta 46 (u ordenador portátil/otro dispositivo de entrada de usuario) para soportar una tableta 48. En algunas realizaciones, la armadura 40 soporta una o más cubetas para transportar artículos. En otras realizaciones, la base 20 soporta una o más cubetas para transportar artículos recibidos. Como se usa en esta invención, el término "cubeta" incluye, sin limitación, soportes de carga, contenedores, jaulas, estantes, barras de las cuales pueden colgarse artículos, carritos, cajones, bastidores, soportes, caballetes, contenedores, cajas, botes, recipientes y repositorios.
[0025] Aunque un robot 18 es excelente para moverse por el almacén 10, con la tecnología de robot actual, no es muy bueno para recoger de manera rápida y eficiente los artículos de un estante y colocarlos en la cubeta 44 debido a las dificultades técnicas asociadas con la manipulación robótica de objetos. Una forma más eficiente de recoger artículos es usar un operador local 50, que es típicamente humano, para llevar a cabo la tarea de retirar físicamente un artículo pedido de un estante 12 y colocarlo en el robot 18, por ejemplo, en la cubeta 44. El robot 18 comunica la orden al operador local 50 a través de la tableta 48 (u ordenador portátil/otro dispositivo de entrada de usuario), que el operador local 50 puede leer, o transmitiendo la orden a un dispositivo portátil usado por el operador local 50.
[0026] Al recibir un pedido 16 del servidor de pedidos 14, el robot 18 avanza a una primera ubicación de almacén, por ejemplo, mostrada en la FIG. 3. Lo hace basándose en el software de navegación almacenado en la memoria y llevado a cabo por el procesador. El software de navegación se basa en datos relacionados con el entorno, como los recopila el radar láser 22, una tabla interna en la memoria que identifica la identificación de referencia(Identification,ID) del marcador de referencia 30 que corresponde a una ubicación en el almacén 10 donde puede encontrarse un artículo particular, y las cámaras 24a y 24b para navegar.
[0027] Al llegar a la ubicación correcta (pose), el robot 18 se estaciona frente a un estante 12 donde se almacena el artículo y espera a que un operador local 50 recupere el artículo del estante 12 y lo coloque en la cubeta 44. Si el robot 18 tiene otros artículos para recuperar avanza a esas ubicaciones. El artículo o artículos recuperados por el robot 18 se entregan a continuación a una estación de procesamiento 100, FIG. 1, donde se embalan y envían. Si bien la estación de procesamiento 100 se ha descrito con respecto a esta figura como capaz de incorporar y descargar/empaquetar robots, puede configurarse de modo que los robots sean incorporados o descargados/empaquetados en una estación, es decir, pueden restringirse a realizar una única función.
[0028] Los expertos en la materia entenderán que cada robot puede completar uno o más pedidos y cada pedido puede consistir en uno o más artículos. Típicamente, se incluiría alguna forma de software de optimización de ruta para aumentar la eficiencia, pero esto está más allá del alcance de esta invención y, por lo tanto, no se describe en esta invención.
[0029] Para simplificar la descripción de la invención, se describe un único robot 18 y un operador 50. Sin embargo, como es evidente por la FIG. 1, una operación de cumplimiento típica incluye muchos robots y operadores que trabajan entre sí en el almacén para completar un flujo continuo de pedidos.
[0030] La estrategia base de navegación de esta invención, así como el mapeo semántico de una SKU de un artículo que se recuperará a una ID/pose de referencia asociada con un marcador de referencia en el almacén donde se ubica el artículo, se describe en detalle a continuación con respecto a las Figs. 4-8.
[0031] Usando uno o más robots 18, se debe crear un mapa del almacén 10 y se debe determinar la ubicación de diversos marcadores de referencia dispersos por todo el almacén. Para ello, uno o más de los robots 18 mientras navegan por el almacén están construyendo/actualizando un mapa 10a, FIG. 4, usando su radar láser 22 y localización y mapeo simultáneos(Simultaneous Localization and Mapping,SLAM), que es un problema computacional de construir o actualizar un mapa de un entorno desconocido. Los procedimientos de solución aproximada SLAM populares incluyen el filtro de partículas y el filtro Kalman extendido. La estrategia SLAP GMapping es la estrategia preferida, pero puede usarse cualquier estrategia SLAM adecuada.
[0032] El robot 18 usa su radar láser 22 para crear el mapa 10a del almacén 10 a medida que el robot 18 viaja a través del espacio identificando, el espacio abierto 112, las paredes 114, los objetos 116 y otros obstáculos estáticos, tales como el estante 12, en el espacio basándose en los reflejos que recibe cuando el radar láser escanea el entorno.
[0033] Durante la construcción del mapa 10a (o su actualización posterior), uno o más robots 18 navegan a través del almacén 10 usando la cámara 26 para escanear el entorno para localizar marcadores de referencia (códigos de barras bidimensionales) dispersos por todo el almacén en estantes de contenedores cercanos, tales como 32 y 34, FIG. 3, donde se almacenan los artículos. Los robots 18 usan un punto de partida u origen conocido como referencia, tal como el origen 110. Cuando un marcador de referencia, tal como el marcador de referencia 30, FIGS. 3 y 4, es localizado por el robot 18 usando su cámara 26, se determina la ubicación en el almacén en relación con el origen 110.
[0034] A través del uso de codificadores de rueda y sensores de rumbo, puede determinarse el vector 120 y la posición del robot en el almacén 10. Al usar la imagen capturada de un marcador de referencia/código de barras bidimensional y su tamaño conocido, el robot 18 puede determinar la orientación y la distancia con respecto al robot del marcador de referencia/código de barras bidimensional, el vector 130. Con los vectores 120 y 130 conocidos, puede determinarse el vector 140, entre el origen 110 y el marcador de referencia 30. A partir del vector 140 y la orientación determinada del marcador de referencia/código de barras bidimensional en relación con el robot 18, puede determinarse la pose (posición y orientación) definida por un cuaternión (x, y, z, w) para el marcador de referencia 30.
[0035] Se describe el diagrama de flujo 200, Fig. 5, que describe el proceso de localización del marcador de referencia. Esto se realiza en un modo de mapeo inicial y cuando el robot 18 encuentra nuevos marcadores de referencia en el almacén mientras realiza tareas de recogida, colocación y/u otras tareas. En la etapa 202, el robot 18 que usa la cámara 26 captura una imagen y en la etapa 204 busca marcadores de referencia dentro de las imágenes capturadas. En la etapa 206, si se encuentra un marcador de referencia en la imagen (etapa 204) se determina si el marcador de referencia ya está almacenado en la tabla de referencia 300, Fig. 6, que se encuentra en la memoria 34 del robot 18. Si la información de referencia ya está almacenada en la memoria, el diagrama de flujo vuelve a la etapa 202 para capturar otra imagen. Si no está en la memoria, la pose se determina según el proceso descrito anteriormente y en la etapa 208, se agrega a la referencia de la tabla de búsqueda de poses 300.
[0036] En la tabla de búsqueda 300, que puede almacenarse en la memoria de cada robot, se incluye para cada marcador de referencia una identificación de referencia, 1, 2, 3, etc., y una pose para el marcador de referencia/código de barras asociado con cada identificación de referencia. La pose consta de las coordenadas x, y, z en el almacén junto con la orientación o el cuaternión (x, y, z, w).
[0037] En otra tabla de búsqueda 400, Fig. 7, que también puede almacenarse en la memoria de cada robot, es una lista de ubicaciones de contenedores (por ejemplo, 402a-f) dentro del almacén 10, que se correlacionan con las ID de referencia particulares 404, por ejemplo, el número "11". Las ubicaciones de los contenedores, en este ejemplo, consisten en siete caracteres alfanuméricos. Los primeros seis caracteres (por ejemplo, L01001) pertenecen a la ubicación del estante dentro del almacén y el último carácter (por ejemplo, A-F) identifica el contenedor particular en la ubicación del estante. En este ejemplo, hay seis ubicaciones de contenedores diferentes asociadas con la ID de referencia "11". Puede haber uno o más contenedores asociados con cada ID/marcador de referencia.
[0038] Las ubicaciones de los contenedores alfanuméricos son comprensibles para los seres humanos, por ejemplo, el operador 50, Fig. 3, como corresponde a una ubicación física en el almacén 10 donde se almacenan los artículos. Sin embargo, no tienen significado para el robot 18. Al mapear las ubicaciones a las ID de referencia, el robot 18 puede determinar la pose de la ID de referencia usando la información de la tabla 300, Fig. 6, y a continuación navegar a la pose como se describe en esta invención.
[0039] El proceso de cumplimiento de pedidos según esta invención se representa en el diagrama de flujo 500,
[0040] Fig. 8. En la etapa 502, desde el sistema de gestión de almacén 15, el servidor de pedidos 14 obtiene un pedido, que puede consistir en uno o más artículos a recuperar. Cabe señalar que el proceso de asignación de pedidos es bastante complejo y va más allá del alcance de la presente descripción. Uno de estos procesos de asignación de pedidos se describe en la Solicitud de Patente de EE. UU. de propiedad común con N. ° de Serie 15/807.672, titulada Agrupación de pedidos en operaciones de cumplimiento de pedidos de almacén, depositada el 1 de septiembre de 2016, que se incorpora en esta invención como referencia en su totalidad. También debe tenerse en cuenta que los robots pueden tener conjuntos de cubetas que permiten que un solo robot ejecute múltiples pedidos, uno por contenedor o compartimento. Se describen ejemplos de dichos conjuntos de cubetas en la Solicitud de Patente de EE. UU. Número de Serie 15/254,321, titulada "Conjunto de almacenamiento de artículos para base móvil en operaciones de cumplimiento de pedidos asistidas por robot", depositada el 1 de septiembre de 2016, que se incorpora al presente documento como referencia en su totalidad.
[0041] Continuando con la Fig. 8, en la etapa 504 el sistema de gestión de almacén 15 determina el número o números de SKU de los artículos, y a partir del número o números de SKU, se determinan las ubicaciones de los contenedores en la etapa 506. Una lista de ubicaciones del contenedor del pedido se transmite a continuación al robot 18. En la etapa 508, el robot 18 correlaciona las ubicaciones del contenedor con las ID de referencia y, a partir de las ID de referencia, la pose de cada ID de referencia se obtiene en la etapa 510. En la etapa 512, el robot 18 navega hacia la pose como se muestra en la Fig. 3, donde un operador puede recoger el artículo que se va a recuperar del contenedor apropiado y colocarlo en el robot.
[0042] La información específica del artículo, tal como el número de SKU y la ubicación del contenedor, obtenida por el sistema de gestión de almacén 15/servidor de pedidos 14, puede transmitirse a la tableta 48 en el robot 18 para que el operador 50 pueda ser informado de los artículos particulares que se van a recuperar cuando el robot llega a cada ubicación del marcador de referencia.
[0043] Con el mapa SLAM y la pose de las ID de referencia conocidas, el robot 18 puede navegar fácilmente a cualquiera de las ID de referencia usando diversas técnicas de navegación del robot. La estrategia preferida implica establecer una ruta inicial a la pose del marcador de referencia dado el conocimiento del espacio abierto 112 en el almacén 10 y las paredes 114, los estantes (como el estante 12) y otros obstáculos 116. A medida que el robot comienza a atravesar el almacén usando su radar láser 26, determina si hay algún obstáculo en su ruta, ya sea fijo o dinámico, tal como otros robots 18 y/u operadores 50, y actualiza iterativamente su ruta a la pose del marcador de referencia. El robot vuelve a planificar su ruta aproximadamente una vez cada 50 milisegundos, buscando constantemente la ruta más eficiente y efectiva, evitando obstáculos.
[0044] Con la SKU del producto/ID de referencia a la técnica de mapeo de pose de referencia combinada con la técnica de navegación SLAM descrita en esta invención, los robots 18 pueden navegar de manera muy eficiente y efectiva por el espacio del almacén sin tener que usar estrategias de navegación más complejas que típicamente se usan, que involucran líneas de cuadrícula y marcadores de referencia intermedios para determinar la ubicación dentro del almacén.
[0045] Como se describió anteriormente, un problema que puede surgir con múltiples robots navegando por diferentes zonas dentro de un espacio junto a personas, equipos y otros obstáculos puede presentar riesgo de colisiones o atascos. La regulación dinámica de la navegación del robot, basada en zonas, puede efectuarse a través de una capa de mapa aumentada por contexto proporcionada por un motor de zonas. El motor de zonas, en algunas realizaciones, puede ser un módulo del sistema de gestión de almacén 15 o del servidor de pedidos 14 o, en otras, puede implementarse en un servidor o sistema de zonas independiente. El motor de zonas se usa para proporcionar una capa de mapa aumentada por contexto(Context-Augmented Map Layer,CAML) correspondiente al mapa SLAM y almacenada en la memoria del robot 18 para su uso al recorrer un espacio de navegación. La CAML puede incluir varias zonas definibles dinámicamente, cada una asociada a una o más reglas de navegación para su observación por cualquier robot dentro de la zona respectiva. En el nivel más alto, como se describe con mayor detalle a continuación, las reglas de navegación pueden definirse en dos categorías: 1) Zonas "abiertas" o navegables que los robots 18 pueden entrar y atravesar, y 2) Zonas "cerradas" o "de acceso restringido" que los robots 18 no pueden atravesar ni entrar. Otras regulaciones y restricciones correspondientes a cada zona pueden incluir, por ejemplo, límites de velocidad, límites mínimos de velocidad, limitaciones en la dirección de desplazamiento, restricciones de ocupación máxima, requisitos de parada y espera, o cualquier otra regulación o limitación para la navegación y el desplazamiento de los robots dentro de un espacio de navegación (por ejemplo, el almacén 10). Además, las zonas pueden proporcionarse con un conjunto personalizado configurado de regulaciones/limitaciones o pueden asignarse a una o más categorías preconfiguradas como, por ejemplo, zonas prohibidas, zonas de pasillos, zonas de un solo sentido, zonas de atraque, zonas de colas, zonas de pose o cualquier otra categoría preconfigurada adecuada.
Además, las zonas pueden ser permanentes (por ejemplo, la zona permanecerá establecida hasta que el usuario la elimine del CAML) o temporales (por ejemplo, la zona expirará después de un tiempo predeterminado o al reposicionar o remover una o más referencias u objetos de un área específica).
[0046] En términos más generales, el propósito del CAML es añadir una capa flexible de metainformación a los mapas de navegación(Simultaneous Localization and Mapping,SLAM) usados por los robots 18 descritos anteriormente. Al incorporar esta regulación dinámica de navegación basada en zonas, los robots 18 pueden operar adecuadamente en base al contexto de su ubicación. En algunas realizaciones, esto se logra porque el CAML marca eficazmente el mapa con zonas o regiones asociadas con propiedades que influyen en el comportamiento del robot dentro de los límites definidos de la zona.
[0047] En general, el límite de la zona que delimita los puntos límite puede calcularse combinando las posiciones de cada punto límite y cualquier zona de amortiguación asociada (por ejemplo, la separación entre el marcador de referencia y la pose asociada). A continuación, pueden aplicarse propiedades de inflación, deflación o sesgo a la geometría del límite calculada según sea necesario. En algunas realizaciones, donde los marcadores de referencia ya están situados en un mapa de 'cuadrícula de ocupación'(Simultaneous Localization and Mapping,SLAM) del sitio, el área que rodea al marcador de referencia puede analizarse para determinar la direccionalidad de un área 'delante' del de referencia (es decir, desde donde el de referencia es visible) y el área detrás del de referencia, que generalmente es algún obstáculo sólido e infranqueable, como un estante o un contenedor. En algunas realizaciones, para simplificar y facilitar la automatización en la definición de zonas, cuando se usa un conjunto de referencias para proporcionar los puntos límite que definen una zona, si las referencias de los puntos límite están enfrentados, el límite puede dibujarse para delimitar el espacio entre ellos, capturando así el pasillo de espacio libre como la zona definida. Cuando las referencias de los puntos límite están enfrentados, el límite puede delimitar las estructuras físicas sobre las que se montan (por ejemplo, estantes, contenedores, etc.) como una zona prohibida definida. En algunas realizaciones, pueden generarse límites más complejos cuando la orientación de las referencias y la presencia de estructuras físicas en sus zonas individuales requieren una geometría más compleja. Por ejemplo, en algunas realizaciones, una zona que abarca varios pasillos puede descomponerse automáticamente en zonas de espacio libre y ocupado relevantes. En algunas realizaciones, dicha descomposición puede realizarse internamente en el sistema robótico y, por lo tanto, de manera transparente para el usuario o programador responsable de definir las zonas.
[0048] En general, el sistema de motor de zonas puede proporcionar la capa de mapa aumentada por contexto usando una definición de zona que, aunque finalmente se mapea en un marco de referencia cartesiano en un mapa de cuadrícula más grande, se define a un nivel superior en base a la posición de los marcadores de referencia de los puntos límite. Ventajosamente, al proporcionar esta definición de zona de nivel superior, en algunas realizaciones, el límite de la zona puede recalcularse automáticamente según sea necesario. Por lo tanto, si en mapas o actualizaciones posteriores la posición de los puntos límite de referencia ha cambiado, a continuación, es posible reubicar automáticamente las zonas y modificar sus dimensiones sin intervención del usuario. Esto puede variar desde un cambio menor en el límite hasta un reposicionamiento completo del límite dentro del espacio, si, por ejemplo, la/las de referencia(s) se ha(n) movido a un pasillo adyacente. En particular, esta disposición permite la reestructuración y modificación automática de zonas sin necesidad de intervención humana, más allá de su definición según los marcadores de referencia de los puntos límite. Esto permite un sistema mucho más flexible y dinámico que el que se obtendría si las zonas se definieran a nivel de usuario en un marco de referencia cartesiano.
[0049] A la luz de la presente descripción, resulta evidente que, en algunas realizaciones, una zona puede definirse, al menos parcialmente, usando coordenadas cartesianas fijas basadas en el origen de un mapa del sitio específico. Sin embargo, este enfoque es menos flexible que el uso de marcadores de referencia de los puntos límite y solo es recomendable si no se dispone de marcadores de referencia o si la zona está estrechamente vinculada a la infraestructura física del sitio y, por lo tanto, no se prevé que se mueva con el tiempo.
[0050] La FIG. 9 ilustra un ejemplo de espacio de navegación 900 (p. ej., el almacén 10) con una o más zonas 901, 903, 905 y 907. Cada zona puede estar definida por uno o más puntos límite 901a-b, 903a-d, 905a y 907a-d, cada punto límite corresponde a uno de los marcadores de referencia 30 dentro del espacio de navegación 900. En particular, cada zona 901, 903, 905 y 907 puede definirse a través de un conjunto de 0 a n puntos límite 901a-b, 903ad, 905a y 907a-d.
[0051] Cada punto límite 901a-b, 903a-d, 905a y 907a-d corresponde a un marcador de referencia 30 y/o a una ubicación de pose correlacionada presente en el almacén, definiendo así, al menos parcialmente, la geometría de la zona. En particular, como se describió anteriormente, cada marcador de referencia 30 puede correlacionarse con una pose, que puede incluir una posición y orientación dentro del espacio de navegación 900 con respecto al marcador de referencia 30 asociado a la pose. Además, como se describió anteriormente, la correlación entre el marcador de referencia 30 y la pose facilita la navegación del robot 18 a través del espacio de navegación 900 y facilita la recogida, la carga u otras actividades del robot 18. Por lo tanto, la correspondencia ventajosa de cada uno de los puntos límite 901a-b, 903a-d, 905a y 907a-d con un marcador de referencia 30 o una pose, como se mencionó anteriormente, permite una reconfiguración automática, dinámica y flexible de las zonas en respuesta, por ejemplo, al movimiento del marcador de referencia 30 y/o la pose. Además, dado que los puntos límite 901a-b, 903a-d, 905a y 907a-d y las poses están correlacionados con los marcadores de referencia 30, los tres conjuntos de datos de ubicación y orientación ya están descritos e integrados en el sistema de navegación y se actualizarán dinámicamente entre sí. Por lo tanto, cualquier cambio (por ejemplo, el reposicionamiento de un marcador de referencia 30) puede impulsar automáticamente la actualización en todo el sistema, en lugar de requerir un proceso ineficiente y propenso a errores de actualización de los tres conjuntos de datos (marcador de referencia, pose y punto límite) por separado.
[0052] Una vez determinados los puntos límite de la zona 901a-b, 903a-d, 905a y 907a-d, puede influirse en la geometría final de la zona a través de la aplicación de restricciones geométricas con respecto a dichos puntos límite 901a-b, 903a-d, 905a y 907a-d. En general, la geometría de la zona puede determinarse de cualquier manera adecuada. Por ejemplo, la zona puede extenderse en una o más direcciones desde un borde formado por dos o más puntos límite, puede extenderse hacia afuera para rodear un único punto límite y definir una zona circular o poligonal, puede formar una zona dentro de un perímetro definido por tres o más puntos límite, y/o puede extenderse hacia afuera desde al menos una parte de un perímetro definido por tres o más puntos límite. En cada caso, puede proporcionarse una definición más detallada, como, por ejemplo, la distancia que la zona se extiende desde un punto o borde, la forma (p. ej., circular o poligonal) de una zona en particular y/o la forma de uno o más bordes (p. ej., convexo, cóncavo, recto).
[0053] Por ejemplo, como se muestra en la FIG. 9, una zona de autopista 901 se extiende desde un borde 902 formado entre los puntos límite 901a-b hacia una pared (u otra estructura permanente) del almacén 10. Como se muestra en la FIG. 9, la zona de autopista 901 se establece a lo largo de una calzada relativamente ancha exterior a los estantes de recogida y almacenamiento 12. Dado que hay amplio espacio y probablemente menos tráfico de personas y robots en la zona de autopista 901, puede ser razonable que los robots 18 dentro de la zona de autopista 901 realicen desplazamientos bidireccionales mientras operan a máxima velocidad.
[0054] Como se muestra además en la FIG. 9, en algunas realizaciones, puede proporcionarse una zona unidireccional 903. Como se muestra en la FIG. 9, la zona unidireccional puede, por ejemplo, ser interior a un perímetro definido por los puntos límite de las esquinas (p. ej., como en la zona 903 formada entre los puntos límite 903a-d). La zona unidireccional 903 puede ser, por ejemplo, una zona relativamente estrecha o con mucho tráfico, como un pasillo estrecho entre dos estantes 12 muy próximos, donde el tráfico bidireccional de robots no es viable sin un riesgo excesivo de colisión. Por lo tanto, como se muestra en la FIG. 9, la zona unidireccional 903 puede restringirse en el CAML de forma que los robots 18 solo puedan atravesarla entrando por un primer borde 904a, que se extiende entre los puntos límite 903a y 903b, y saliendo por un segundo borde 904b, que se extiende entre los puntos límite 903c y 903d. Además, por ejemplo, una zona estrecha y concurrida, como la zona unidireccional 903, puede imponer límites de velocidad reducidos para proporcionar tiempo adicional tanto a los recolectores humanos como a los robots 18 para realizar actividades de prevención de colisiones, como desviarse o detenerse. En algunas realizaciones, la zona unidireccional 903 puede incluir una restricción de ocupación máxima para reducir las aglomeraciones dentro de la zona 903.
[0055] También se muestra en la FIG. 9 que una zona de carga 905 puede especificar un radio predeterminado que se extiende desde un único punto límite 905a para formar una zona circular que rodea una o más estaciones de carga. Como alternativa, en algunas realizaciones, la forma de la zona puede ser cualquier forma adecuada que rodee el punto límite 905a, como, por ejemplo, un rectángulo, un cuadrado, cualquier otro polígono, una elipse o cualquier otra forma adecuada, o combinaciones de estas. Dado que los robots 18 necesitan recargarse periódicamente, un conjunto de estaciones de carga suele experimentar un alto tráfico de robots. Por lo tanto, la zona de carga 905 puede incluir un límite de velocidad relativamente bajo. Además, como se describió anteriormente, en algunas realizaciones, a medida que un robot 18 se acerca a una estación de carga, puede activarse un enfoque de navegación más preciso para realizar los ajustes de posición más precisos necesarios para acoplarlo a la estación de carga. Por ejemplo, en algunas realizaciones, dentro de la zona de carga 905, puede proporcionarse un sistema de coordenadas local más granular de modo que las coordenadas locales (x, y, z, w) usadas para maniobras de alta precisión (por ejemplo, acoplamiento entre el robot 18 y una estación de carga) proporcionen un ajuste posicional más fino del robot 18 que el que se usa para la navegación ordinaria.
[0056] Una zona de evasión de obstáculos 907, como se muestra en la FIG. 9, puede, en algunas realizaciones, definirse como cerrada y ocupada dentro de un perímetro definido por los puntos límite 907a-d. En algunas realizaciones (no mostradas), la zona de evasión de obstáculos puede definir además una ruta de desvío que rodea al menos parcialmente el perímetro, extendiéndose dicha ruta hacia afuera desde uno o más bordes del perímetro. En dichas realizaciones, la zona de evasión de obstáculos puede incluir reglas de navegación que prohíben la navegación del robot dentro del perímetro y exigen su desplazamiento alrededor del perímetro a lo largo de la ruta de desvío.
[0057] Haciendo referencia ahora a la FIG. 10, una Tabla de búsqueda de propiedades de zona 950, puede almacenarse en la memoria de cada robot 18, incluyendo la tabla de búsqueda 950 un listado de cada zona 901, 903, 905 y 907 dentro de un espacio de navegación 900 tal como el almacén 10. Cada zona 901, 903, 905 y 907 se correlaciona en la tabla con los identificadores de referencia 4-14, identificados como los puntos límite 901a-b, 903ad, 905a y 907a-d asociados a la zona 901, 903, 905 y 907.
[0058] Como se describió anteriormente, pueden asociarse múltiples propiedades o regulaciones/restricciones de navegación a zonas definidas, algunas de las cuales pueden ser obligatorias y otras opcionales. En general, ya sean obligatorias u opcionales, las zonas deben definirse de forma que se evite la aplicación de propiedades mutuamente excluyentes. Por ejemplo, una zona no puede ser abierta y cerrada a la vez. Algunos ejemplos de propiedades obligatorias asignables a todas las zonas incluyen el tipo de zona, la ocupación y el límite máximos de velocidad. Algunos ejemplos de propiedades de zona opcionales incluyen el flujo de tráfico (p. ej., tráfico unidireccional o bidireccional, punto de entrada y punto de salida), parada y espera, actualización dinámica y expiración. En general, el tipo identifica la categoría o el tipo de zona que se define (p. ej., abierta, cerrada, prohibida, pasillo, cola, dársena o personalizada). Cada tipo puede incluir un conjunto específico de propiedades predeterminadas, que pueden ser fijas o editables parcial o totalmente por el usuario. Además, cada tipo puede incluir un conjunto diferente de propiedades obligatorias y/u opcionales.
[0059] Volviendo a la tabla de búsqueda de propiedades de zona 950 de la FIG. 10, la tabla 950 incluye las propiedades ID de zona, ID de punto límite, Abierto/Cerrado, Tipo de zona, Ocupación máxima, Velocidad máxima, Flujo de tráfico, Detener y esperar, Actualización dinámica y Expiración. Como se muestra en la FIG. 10, no todos los tipos de zona incluyen todas las propiedades. Por ejemplo, solo la zona unidireccional incluye un valor en la propiedad Flujo de tráfico. Estas propiedades se describen con más detalle a continuación.
[0060] La propiedad abierta/cerrada determina si una zona en particular es navegable o está cerrada a la entrada del robot. Además, cuando una zona se define como cerrada, se debe establecer una propiedad adicional de "ocupación" para indicar si la zona está cerrada debido a una barrera física o si, en principio, aún es transitable. Al diferenciar entre barreras físicas y virtuales, el sistema puede proporcionar instrucciones adecuadas en caso de emergencia. Por ejemplo, un robot puede ser colocado o entrar inadvertidamente en una zona cerrada. En tales situaciones, se debe indicar al robot 18 si debe intentar salir de la zona para no infringir la prohibición o si debe permanecer en el mismo lugar y evitar posibles peligros. Esta determinación puede realizarse según la propiedad de ocupación, de modo que el robot pueda salir de una zona cerrada desocupada de la forma más rápida y eficiente posible, mientras que puede permanecer estacionario dentro de una zona cerrada ocupada para evitar obstáculos o peligros.
[0061] La propiedad de ocupación máxima determina el número máximo de robots 18 o, alternativamente, el número máximo combinado de robots y humanos permitidos en la zona en un momento dado. Además de reducir las colisiones y la congestión, las zonas con límites máximos de ocupación pueden proporcionar una guía de planificación de alto nivel, de modo que los sistemas de planificación y/u optimización de rutas desaconsejen el enrutamiento de los robots 18 a través de dichas zonas en tránsito a otra ubicación. De este modo, el sistema puede evitar que las agrupaciones de robots en tránsito creen congestión dentro de lo que normalmente sería una zona de alto uso (por ejemplo, cuando se recogen artículos con frecuencia dentro de la zona).
[0062] La propiedad de velocidad máxima determina la velocidad máxima permitida para los robots 18 que operan dentro de una zona. La velocidad máxima de operación del robot puede limitarse, por ejemplo, en tipos de zonas más sensibles (colas o dársenas, por ejemplo) o para reducir la velocidad en áreas con mayor tráfico peatonal, espacios reducidos o que no son adecuadas para operaciones a alta velocidad. Como alternativa, la velocidad máxima también puede establecerse muy alta para permitir que los robots usen zonas de "autopista", donde pueden alcanzarse y mantenerse velocidades más altas. En algunas realizaciones, una zona de autopista puede construirse como un tipo de zona independiente. Sin embargo, a la luz de la presente descripción, será evidente que, en algunas realizaciones, la zona de autopista, en lugar de ser un tipo independiente, puede estar implícita en una alta velocidad máxima permitida. Dichas zonas de autopista son ventajosas, por ejemplo, en sitios más grandes donde las recogidas están separadas por una distancia de recorrido significativa y donde, al menos, una parte de esa distancia puede recorrerse por pasillos rectos y anchos. De igual manera, el desplazamiento desde una tarea de recogida hasta una cola de descarga, una cola de inducción o una dársena de carga puede requerir una distancia de recorrido significativa y puede agilizarse a través del uso de zonas de autopista.
[0063] La propiedad del flujo de tráfico puede determinar la direccionalidad del desplazamiento dentro de una zona. En algunas realizaciones, la propiedad del flujo puede establecerse, como se muestra en la tabla de la FIG. 10, a través de la identificación de un par de listas de ID de borde asociadas con la zona. Generalmente, la primera lista de ID de borde puede especificar los bordes de entrada permitidos para la zona y la segunda lista de ID de borde puede especificar los bordes de salida permitidos. Una vez que el robot 18 selecciona el borde de entrada deseado y el borde de salida correspondiente, puede determinarse un vector de dirección, por ejemplo, conectando los centros de ambos bordes.
[0064] En algunas realizaciones, el flujo puede determinarse a través de una propiedad de dirección y un valor de tolerancia correspondiente. La propiedad de dirección puede representarse como el ángulo objetivo de un vector de desplazamiento del robot con respecto a la orientación global de la zona. El valor de tolerancia correspondiente puede indicar una desviación angular aceptable de la propiedad de dirección objetivo. Combinando el valor de tolerancia correspondiente con la propiedad de dirección, puede determinarse un intervalo de ángulos de desplazamiento aceptables dentro de la zona. Por ejemplo, para un valor de dirección de -90° con un valor de tolerancia correspondiente de /- 5°, los vectores de desplazamiento aceptables del robot dentro de la zona pueden variar entre -85° y -95°.
[0065] La propiedad de parada y espera puede determinar un comportamiento de parada y espera del robot en uno o más bordes de una zona específica antes de cruzar el borde para entrar o salir de la zona. La propiedad de parada puede, en algunas realizaciones, incluir propiedades asociadas, como la duración de la parada o una condición de avance que debe cumplirse para reanudar el progreso. La propiedad de parada puede usarse, por ejemplo, en una intersección entre un pasillo principal y un pasillo de estantes. En estas realizaciones, el robot 18 deberá detenerse en el borde de la intersección y realizar un escaneo para verificar que no haya robots ni personas aproximándose a una proximidad predefinida. Si el escaneo está libre, el robot 18 puede continuar. Si detecta tráfico en sentido contrario, el robot debe esperar un tiempo predefinido y volver a escanear, repitiendo el proceso hasta que la intersección esté libre.
[0066] La propiedad de actualización dinámica identifica si la ubicación, el tamaño y la forma actuales de la zona coinciden con la zona original definida por el usuario o si el sistema la ha actualizado dinámicamente. Por ejemplo, si uno o más de los puntos límite del marcador de referencia asociados a una zona se trasladaran a una nueva ubicación física dentro del almacén, dicha nueva ubicación se detectaría durante las actualizaciones del mapa SLAM, actualizando automáticamente la ubicación del punto límite del marcador de referencia y generando la correspondiente actualización del tamaño, la forma y la ubicación de la zona. Por lo tanto, la propiedad de actualización dinámica registra si la zona definida por el usuario se ha actualizado para que el usuario pueda recibir notificaciones o consultar dichos cambios.
[0067] La propiedad de expiración indica el tiempo restante hasta que el servidor de zonas elimine o reconfigure automáticamente esta zona. Por ejemplo, un pasillo bloqueado por mantenimiento programado puede bloquearse solo durante un período prescrito hasta que se complete dicho mantenimiento. En estas realizaciones, la zona de mantenimiento puede definirse temporalmente como cerrada y, una vez transcurrido el período designado, puede reabrirse. En algunas realizaciones, el tiempo prescrito puede basarse en otros datos o eventos del sistema, como un programa de mantenimiento almacenado en un sistema de gestión de almacén. En otro ejemplo, puede preverse la limpieza de una zona resbaladiza debido a un derrame en un plazo de horas prescrito. En algunas realizaciones, la propiedad de expiración puede actualizarse o restablecerse dinámicamente en respuesta a los datos proporcionados, por ejemplo, por uno o más robots 18, un sistema de gestión de almacén, un usuario u otras fuentes de datos (p. ej., un robot que indica que el derrame aún no se ha limpiado).
[0068] A la luz de la presente descripción, resulta evidente que, en algunas realizaciones, pueden añadirse propiedades adicionales para describir cualquier restricción o normativa adicional asociada a una zona en particular. Asimismo, resulta evidente que cualquier propiedad puede actualizarse dinámicamente en respuesta a los datos proporcionados por uno o más robots 18, un sistema de gestión de almacén, un usuario u otras fuentes de datos como, por ejemplo, internet, una base de datos de proveedores, una base de datos de clientes o cualquier otra fuente de datos adecuada. Por ejemplo, en algunas realizaciones, las zonas cerradas pueden estar ocupadas por estantes que contienen artículos de stock seleccionables. Estas zonas pueden incluir propiedades para el seguimiento de datos relacionados con el propio stock, donde se espera que dichos datos afecten al comportamiento del robot. Por ejemplo, la rotación rápida o lenta de un artículo en stock (alta o baja demanda) puede afectar las zonasabiertasadyacentes que usan los robots para acceder a él. Por lo tanto, si el stock promedio en una zona en particular es de rotación rápida, la ocupación máxima de la zona puede aumentar automáticamente para proporcionar un mayor rendimiento del robot. Como consecuencia del aumento del tráfico de robots y personas que recogen los pedidos, la zona abierta también puede actualizarse para convertirse en una zona unidireccional y reducir el riesgo de colisión y congestión.
[0069] En la medida en que las zonas estén relacionadas como zona principal y subzona, como, por ejemplo, cuando una zona de recogida que abarca varios estantes y pasillos se subdivide en varias zonas abiertas (pasillos) y cerradas (estantes), puede incluirse una propiedad de referencia principal para capturar la relación de cada zona con las subzonas que contiene o las zonas principales a las que pertenece.
[0070] En algunas realizaciones, donde una o más zonas se intersecan, puede que no haya una relación padrehijo fácilmente identificable. Sin embargo, la superposición de propiedades debe resolverse para que la intersección tenga reglas válidas y no conflictivas. Estas circunstancias suelen presentarse cuando zonas del mismo tipo se superponen o son adyacentes. Sin embargo, la intersección/superposición generalmente puede ocurrir entre dos o más tipos o cuando las zonas tienen versiones localizadas especiales de propiedades globales. Por lo tanto, el sistema de análisis de zonas puede configurarse para generar un único conjunto válido de propiedades para el área de intersección, independientemente del tipo y de si la intersección está designada como zona independiente o no.
[0071] En algunas realizaciones, la determinación de las propiedades de la intersección puede incluir un proceso de dos etapas, como se describe en el diagrama de flujo de la FIG. 11. En primer lugar, el sistema de análisis de zonas puede identificar 1201 uno o más conflictos entre los valores de las propiedades de dos o más zonas superpuestas. Inicialmente, el sistema puede agregar las propiedades de las zonas superpuestas. Durante la agregación, pueden compararse y filtrarse las propiedades relevantes asociadas a cada zona superpuesta. Por ejemplo, en algunas realizaciones, cualquier punto límite identificado como único para una sola de las zonas superpuestas, o ubicado a más de una distancia predeterminada de la intersección, puede ignorarse por ser irrelevante. En algunas realizaciones, cualquier propiedad identificada como única para una sola de las zonas superpuestas puede conservarse como propiedad del área de intersección siempre que no sea mutuamente excluyente ni entre en conflicto con otras propiedades similares, o bien puede descartarse en conjunto por ser inaplicable. Como alternativa, solo pueden conservarse ciertas propiedades únicas según una o más reglas predefinidas. Cualquier propiedad identificada como idéntica y aplicable a todas las zonas superpuestas en el área de intersección puede conservarse como aplicable dentro del área de intersección siempre que no sea mutuamente excluyente ni entre en conflicto con otras propiedades similares. Cuando al menos dos de las zonas superpuestas incluyan un valor diferente o conflictivo para la misma propiedad o propiedades, dichos valores pueden identificarse 1201 y procesarse posteriormente para la segunda etapa de resolución de conflictos.
[0072] Siguiendo con la FIG. 11, la resolución de conflictos puede usarse para evaluar y a continuación generar 1203 un valor único resuelto para propiedades donde las zonas superpuestas tienen valores diferentes. Generalmente, este valor único debe ser compatible con los valores originales de la zona. Dichas propiedades pueden incluir, por ejemplo, límites de velocidad y límites de ocupación, que suelen asignarse específicamente a cada zona y probablemente tengan definiciones que se intersecan y difieren. Dichas propiedades también pueden incluir la direccionalidad de la circulación, en particular cuando se intersecan zonas de un solo sentido, zonas de doble sentido o zonas prohibidas.
[0073] Con respecto a los valores cuantitativos, como los límites de velocidad o los límites de ocupación, la resolución de conflictos suele lograrse a través de un enfoque general. Volviendo a la FIG. 11, uno de estos enfoques puede incluir la selección 1205 del valor de propiedad conflictivo más alto o bajo de las zonas superpuestas. Por ejemplo, una estrategia conservadora puede aplicar la propiedad de menor valor al área de intersección (por ejemplo, la velocidad máxima más baja o la ocupación máxima más baja). El enfoque conservador probablemente reducirá el riesgo de accidentes o colisiones entre robots, pero también probablemente ralentizará y reducirá la eficiencia de la recolección. Como alternativa, un enfoque menos conservador puede usar por defecto los valores de propiedad más altos de la zona (siempre que los valores proporcionados no creen condiciones inherentemente peligrosas), lo que puede aumentar ligeramente el riesgo de accidentes o colisiones entre robots, pero permite una recolección más rápida y eficiente.
[0074] En cuanto a la resolución de conflictos más complejos, como los valores de direccionalidad, las tolerancias en los valores de propiedad pueden facilitar su resolución. En particular, las tolerancias, al proporcionar un intervalo de valores de propiedad aceptables, pueden permitir una superposición parcial entre intervalos de valores de propiedad en conflicto donde, de otro modo, el conflicto sería irresoluble. Por lo tanto, como en la FIG. 11, la resolución del conflicto puede lograrse definiendo 1207 un valor objetivo entre los valores de propiedad de las zonas superpuestas y una tolerancia de valor correspondiente, de modo que esta abarque los valores de propiedad de las zonas superpuestas. Por ejemplo, en el caso de zonas unidireccionales que se intersecan, siempre que no haya superposición de intervalos de valores de direccionalidad (p. ej., cuando zonas unidireccionales con direccionalidad de flujo de tráfico opuesta comparten un borde de salida), no es posible resolverlos. Para estos conflictos irresolubles, el motor de zonas debe identificarlos y pueden resolverse automáticamente modificando las propiedades de una o más zonas superpuestas o alertando al usuario sobre la necesidad de reconfigurar el mapa de zonas.
[0075] Para otras zonas, estas tolerancias pueden configurarse para permitir el desplazamiento del robot de una zona a otra. Por ejemplo, en una realización con dos zonas unidireccionales que se intersecan, una con un valor de propiedad de dirección de 90° (este) y otra con un valor de propiedad de dirección de 135° (sureste). En ausencia de un intervalo de tolerancia, estos valores direccionales son incompatibles. Sin embargo, para promover la máxima flexibilidad de navegación del robot dentro de cada zona, los valores de tolerancia pueden establecerse tan altos como sea razonable y seguro. De esta forma, en una zona unidireccional puede usarse un valor de tolerancia máximo asociado al movimiento continuo del robot en la dirección "correcta". Para ello, dicho valor de tolerancia puede establecerse en /- 89° con respecto al valor objetivo de la propiedad direccional. En referencia al ejemplo descrito anteriormente, dicha tolerancia permitiría, para la primera zona con un valor de propiedad direccional de 90°, un intervalo de movimiento direccional de entre 1° y 179°, y para la segunda zona con un valor de propiedad direccional de 135°, un intervalo de movimiento direccional de entre 46° y 224°. La superposición entre estos intervalos es de 46° a 179°, que puede asignarse al área de intersección como las propiedades resueltas de valor de propiedad direccional = 112,5° y valor de tolerancia = /- 66,5°.
[0076] En realizaciones donde se definen zonas con dirección limitada usando bordes de entrada y salida, la resolución de conflictos para bordes compartidos o partes de bordes compartidos de dichas zonas de intersección se realizará como parte del procesamiento de la definición de zona por parte del motor de zonas. Por ejemplo, si las definiciones de bordes para las zonas que se intersecan causan efectos de bloqueo (por ejemplo, un borde de entrada para una subzona unidireccional está ubicado en el medio de un pasillo y está en conflicto con un borde de salida definido en el mismo pasillo por una zona principal (o viceversa). En tales casos, el motor de zonas intentará resolver las propiedades de los bordes que no estén en conflicto, si existen. Si no hay una solución disponible, se notificará al usuario que es necesario reconfigurar el mapa de zonas.
[0077] En algunas realizaciones, incluso las zonas que no se intersecan ni tienen una relación padre-hijo pueden afectarse entre sí, lo que requiere la modificación de las propiedades de las zonas relacionadas. Dichas relaciones suelen definirse por la proximidad de la zona y la presencia de propiedades que se ven afectadas por dicha proximidad. En algunas realizaciones, estas relaciones pueden ocurrir cuando las propiedades de las zonas cerradas (por ejemplo, zonas prohibidas) afectan las propiedades de las zonas "abiertas" adyacentes. Por ejemplo, si un pasillo se designa como zona cerrada desocupada, el motor de zonas puede modificar (automáticamente o en respuesta a las instrucciones del usuario) la ocupación máxima del pasillo abierto o de los pasillos adyacentes al pasillo prohibido para dar cabida a robots adicionales que transiten por la zona prohibida. Además, si se sigue recogiendo producto de la zona prohibida, puede aumentarse la ocupación máxima del pasillo o pasillos adyacentes "abiertos" para dar cabida a la cola de robots cerca de la zona prohibida.
[0078] De igual forma, si una estante u otra ubicación de almacenamiento de artículos se designa como zona ocupada y cerrada, y el motor de zonas determina, ya sea automáticamente a través del análisis de la lista de selección o a través de la entrada del usuario, que uno o más artículos almacenados en dicha estante/ubicación tendrán una alta demanda (por ejemplo, donde se almacena un obsequio con cada compra o donde se almacena un producto nuevo de moda con altas ventas iniciales previstas), el motor de zonas puede modificar (automáticamente o siguiendo las instrucciones del usuario) la ocupación máxima del pasillo o pasillos "abiertos" adyacentes a la estante/ubicación de almacenamiento para dar cabida a robots adicionales que circulan y hacen cola cerca de la zona ocupada y cerrada.
[0079] Será evidente a la vista de la presente descripción que los ejemplos de zonas se describen anteriormente solo con fines ilustrativos y que cualquier otra zona de cualquier tamaño y forma, definida por cualquier número de marcadores de referencia y que tenga cualquier número o tipo de propiedades, regulaciones de navegación, relaciones con otras zonas o restricciones puede implementarse según varias realizaciones.
Ejemplos de dispositivos informáticos no limitativos
[0080] La FIG. 12 es un diagrama de bloques de un ejemplo de dispositivo informático 1010 tal como puede usarse, o partes de este, según diversas realizaciones como se ha descrito anteriormente con referencia a las FIGS.
1-11. El dispositivo informático 1010 incluye uno o más medios legibles por ordenador no transitorios para almacenar una o más instrucciones o software ejecutables por ordenador para implementar realizaciones ejemplares. Los medios legibles por ordenador no transitorios pueden incluir, pero no se limitan a, uno o más tipos de memoria de hardware, medios tangibles no transitorios (por ejemplo, uno o más discos de almacenamiento magnético, uno o más discos ópticos, una o más unidades flash) y similares. Por ejemplo, la memoria 1016 incluida en el dispositivo informático 1010 puede almacenar instrucciones o software legibles y ejecutables por ordenador para realizar las operaciones descritas en esta invención. Por ejemplo, la memoria puede almacenar la aplicación de software 1040 que está programada para realizar varias de las operaciones descritas como se analiza con respecto a las FIGS. 1-11. El dispositivo informático 1010 también puede incluir un procesador configurable y/o programable 1012 y un núcleo asociado 1014, y opcionalmente, uno o más dispositivos de procesamiento configurables y/o programables adicionales, por ejemplo, procesador(es) 1012' y núcleo(s) asociado(s) 1014' (por ejemplo, en el caso de dispositivos informáticos que tienen múltiples procesadores/núcleos), para ejecutar instrucciones o software legibles por ordenador y ejecutables por ordenador almacenados en la memoria 1016 y otros programas para controlar el hardware del sistema. El procesador 1012 y el procesador o procesadores 1012' pueden ser cada uno un procesador de un solo núcleo o un procesador de múltiples núcleos (1014 y 1014').
[0081] La virtualización puede emplearse en el dispositivo informático 1010 para que la infraestructura y los recursos en el dispositivo informático puedan compartirse dinámicamente. Puede proporcionarse una máquina virtual 1024 para manejar un proceso que se ejecuta en múltiples procesadores, de modo que el proceso parezca estar usando solo un recurso informático en lugar de múltiples recursos informáticos. También pueden usarse múltiples máquinas virtuales con un procesador.
[0082] La memoria 1016 puede incluir una memoria de dispositivo computacional o una memoria de acceso aleatorio, tal como, pero sin limitarse a, DRAM, SRAM, EDO RAM y similares. La memoria 1016 también puede incluir otros tipos de memoria, o combinaciones de estos.
[0083] Un usuario puede interactuar con el dispositivo informático 1010 a través de un dispositivo de visualización 1001, 111A-D, tal como un monitor de ordenador, que puede mostrar una o más interfaces de usuario 1002 que pueden proporcionarse según realizaciones ejemplares. El dispositivo informático 1010 puede incluir otros dispositivos de E/S para recibir entradas de un usuario, por ejemplo, un teclado o cualquier interfaz táctil multipunto 1018 adecuada, un dispositivo señalador 1020 (por ejemplo, un ratón). El teclado 1018 y el dispositivo señalador 1020 pueden acoplarse al dispositivo de visualización 1001. El dispositivo informático 1010 puede incluir otros periféricos de E/S convencionales adecuados.
[0084] El dispositivo informático 1010 también puede incluir uno o más dispositivos de almacenamiento 1034, tales como, pero sin limitarse a, un disco duro, CD-ROM u otros medios legibles por ordenador, para almacenar datos e instrucciones y/o software legibles por ordenador que realizan las operaciones descritas en esta invención. El ejemplo de dispositivo de almacenamiento 1034 también puede almacenar una o más bases de datos para almacenar cualquier información adecuada requerida para implementar realizaciones ejemplares. Las bases de datos pueden actualizarse de manera manual o automática en cualquier momento adecuado para añadir, eliminar y/o actualizar uno o más elementos de las bases de datos.
[0085] El dispositivo informático 1010 puede incluir una interfaz de red 1022 configurada para interactuar a través de uno o más dispositivos de red 1032 con una o más redes, por ejemplo, una red de área local(Local Area Network,LAN), una red de área amplia(Wide Area Network,WAN) o Internet a través de una variedad de conexiones que incluyen, pero no se limitan a, líneas telefónicas estándar, enlaces LAN o WAN (por ejemplo, 802.11, T1, T3, 56 kb, X.25), conexiones de banda ancha (por ejemplo, ISDN, Frame Relay, ATM), conexiones inalámbricas, red de área de controlador(Controller Area Network,CAN), o alguna combinación de cualquiera o todos los anteriores. La interfaz de red 1022 puede incluir un adaptador de red integrado, una tarjeta de interfaz de red, una tarjeta de red PCMCIA, un adaptador de red de bus de tarjeta, un adaptador de red inalámbrica, un adaptador de red USB, un módem o cualquier otro dispositivo adecuado para interconectar el dispositivo informático 1010 con cualquier tipo de red capaz de comunicarse y realizar las operaciones descritas en esta invención. Además, el dispositivo informático 1010 puede ser cualquier dispositivo informático, tal como una estación de trabajo, un ordenador de escritorio, un servidor, un ordenador portátil, un ordenador de escritorio, una tableta u otra forma de dispositivo informático o de telecomunicaciones que sea capaz de comunicarse y que tenga suficiente energía de procesador y capacidad de memoria para realizar las operaciones descritas en esta invención.
[0086] El dispositivo informático 1010 puede ejecutar cualquier sistema operativo 1026, tal como cualquiera de las versiones de los sistemas operativos Microsoft® Windows® (Microsoft, Redmond, Wash.), las diferentes versiones de los sistemas operativos Unix y Linux, cualquier versión del sistema operativo MAC OS® (Apple, Inc., Cupertino, Calif.) para ordenadores Macintosh, cualquier sistema operativo integrado, cualquier sistema operativo en tiempo real, cualquier sistema operativo de código abierto, cualquier sistema operativo propietario o cualquier otro sistema operativo capaz de ejecutarse en el dispositivo informático y realizar las operaciones descritas en esta invención. En algunas realizaciones ejemplares, el sistema operativo 1026 puede ejecutarse en modo nativo o modo emulado. En una realización ejemplar, el sistema operativo 1026 puede ejecutarse en una o más instancias de máquina en la nube.
[0087] La FIG. 13 es un ejemplo de diagrama de bloques de dispositivo computacional de determinadas realizaciones distribuidas. Aunque las FIGS. 1 a 11 y partes del ejemplo de discusión anterior hacen referencia a un sistema de gestión de almacén 15, un servidor de pedidos 14 y un servidor de zona, cada uno de los cuales opera en un dispositivo informático individual o común, se reconocerá que cualquiera del sistema de gestión de almacén 15, el servidor de pedidos 14 o el servidor de zona pueden, en cambio, estar distribuidos a través de una red 1105 en sistemas de servidores separados 1101a-d y posiblemente en sistemas de usuario, tales como un quiosco, un dispositivo informático de escritorio 1102 o un dispositivo informático móvil 1103. Por ejemplo, el servidor de pedidos 14 y/o el servidor de zonas pueden estar distribuidos entre las tabletas 48 de los robots 18. En algunos sistemas distribuidos, los módulos del software del sistema de gestión de almacén, del software del servidor de pedidos y del motor de zonas pueden ubicarse por separado en los sistemas de servidores 1101a-d y comunicarse entre sí a través de la red 1105.
Claims (14)
1. Un procedimiento para mapear contextualmente zonas dentro de un espacio con el fin de regular la navegación robótica, comprendiendo:
definir, a través de al menos un marcador de referencia (30) posicionado dentro del espacio y una restricción geométrica, una zona dentro del espacio con un límite;
asociar una regla a la zona, la cual dicta al menos parcialmente el funcionamiento de uno o más robots (18) dentro de la zona, indicando si el robot puede entrar o atravesar la zona;
operar uno o más robots (18) dentro de la zona según la regla; caracterizado por detectar al menos una superposición o adyacencia de la zona con respecto a una segunda zona; identificar un conflicto entre un valor de la regla y un valor correspondiente de una regla correspondiente de la segunda zona; y
generar una regla con resolución de conflictos para la asociación con zonas de superposición definidas por uno o más marcadores de referencia compartidos entre la zona y la segunda zona,
donde, durante un modo de mapeo inicial, se determina una pose que incluye una posición y una orientación dentro del espacio con relación a cada uno de los al menos un marcador de referencia (30) para que el robot (18) se estacione, la pose está representada por un conjunto de coordenadas de un sistema de coordenadas en el espacio, donde el límite de la zona está definido por la pose y la restricción geométrica; y, en respuesta a un reposicionamiento o reorientación detectados de los marcadores de referencias (30), actualizar automáticamente la pose asociada con el marcador de referencia (30) reposicionado o reorientado y redefinir automáticamente la zona dentro del espacio basándose en la pose actualizada, y donde la etapa de generar la regla de resolución de conflictos comprende, además:
asignar valores de propiedad de conflicto a las zonas de superposición;
seleccionar el mayor o el menor de los valores de propiedad de conflicto y el valor correspondiente; o definir un valor objetivo entre los valores de propiedad de conflicto y el valor correspondiente. y asociar el valor objetivo con una tolerancia de valor acompañante de modo que la tolerancia de valor acompañante abarque tanto los valores de propiedad del conflicto como el valor correspondiente.
2. El procedimiento según la reivindicación 1, donde la regla dicta al menos uno de si la zona está abierta o cerrada, un tipo de zona, una ocupación máxima de la zona, una velocidad máxima de la zona, una direccionalidad del flujo de tráfico de la zona, un comportamiento de parada y espera al entrar o salir de la zona, si una definición de la zona se ha actualizado dinámicamente, una expiración de la zona o combinaciones de estos.
3. El procedimiento según la reivindicación 1, donde la etapa de asociación comprende además generar una tabla de búsqueda (300) que correlaciona la zona con el al menos un marcador de referencia (30) y la regla.
4. El procedimiento según la reivindicación 1, comprendiendo, además:
asociar una o más reglas adicionales a la zona, dictando las reglas adicionales al menos parcialmente el funcionamiento de uno o más robots (18) dentro de la zona; y
operar uno o más robots (18) dentro de la zona según las reglas adicionales, donde las reglas adicionales dictan al menos uno de si la zona está abierta o cerrada, un tipo de zona, una ocupación máxima de la zona, una velocidad máxima de la zona, una direccionalidad del flujo de tráfico de la zona, un comportamiento de parada y espera al entrar o salir de la zona, si una definición de la zona se ha actualizado dinámicamente, una expiración de la zona o combinaciones de estos, y
donde la etapa de asociar una o más reglas adicionales comprende además generar una tabla de búsqueda (300) que correlaciona la zona con el al menos un marcador de referencia (30), la regla y las reglas adicionales.
5. El procedimiento según la reivindicación 1, comprendiendo además al menos uno de los siguientes: modificar automáticamente la regla o añadir automáticamente una regla adicional en respuesta a los datos recibidos de uno o más robots (18), un sistema de gestión de almacén (15), un usuario o una fuente de datos externa.
6. El procedimiento según la reivindicación 1, donde la etapa de operación comprende, además: informar periódicamente, desde uno o más robots (18) a un controlador central, de la posición de uno o más robots dentro del espacio; y, a través del controlador central, instruir a uno o más robots, en respuesta a la posición informada de uno o más robots (18) dentro de la zona, para que operen según lo dictado por la regla.
7. El procedimiento según la reivindicación 1, donde la posición de uno o más robots dentro del espacio no se determina a través de la lectura del al menos un marcador de referencia.
8. El procedimiento según la reivindicación 1, donde la etapa de operación comprende, además: detectar periódicamente, por cada uno respectivo de los uno o más robots (18), una posición del robot (18) dentro del espacio; y
operar, en respuesta a la detección del posicionamiento del robot (18) dentro de la zona, el robot (18) según lo dicta la regla,
donde la posición de uno o más robots (18) dentro del espacio no se determina a través de la lectura del al menos un marcador de referencia (30).
9. Un sistema para mapear contextualmente zonas dentro de un espacio para regular la navegación robótica dentro del espacio comprendiendo:
un procesador (1012); y
una memoria (1016) que almacena instrucciones que, al ser ejecutadas por el procesador (1012), hacen que el sistema:
defina, a través de al menos un marcador de referencia (30) posicionado dentro del espacio y una restricción geométrica, una zona dentro del espacio con un límite de zona;
asocie una regla a la zona, la cual dicta al menos parcialmente el funcionamiento de uno o más robots (18) dentro de la zona, indicando si el robot puede entrar o atravesar la zona; operar uno o más robots (18) dentro de la zona según la regla; caracterizado por detectar al menos una superposición o adyacencia de la zona con respecto a una segunda zona;
identifique un conflicto entre un valor de la regla y un valor correspondiente de una regla correspondiente de la segunda zona; y genere una regla de resolución de conflictos para la asociación con zonas de superposición definidas por uno o más marcadores de referencia compartidos entre la zona y la segunda zona. En este modo, durante un modo de mapeo inicial, se determina una pose que incluye una posición y una orientación dentro del espacio con respecto a cada uno de los al menos un marcador de referencia (30) para que el robot se estacione. La pose se representa a través de un conjunto de coordenadas de un sistema de coordenadas en el espacio, donde el límite de la zona se define por la pose y la restricción geométrica,
en respuesta a un reposicionamiento y/o reorientación detectados del al menos un marcador de referencia (30), actualice automáticamente la pose asociada con el al menos un marcador de referencia (30) reposicionado y/o reorientado y redefina automáticamente la zona dentro del espacio basándose en la pose actualizada, y donde la etapa de generar la regla resuelta por conflicto comprende, además:
asignar valores de propiedad de conflicto a las zonas de superposición;
seleccionar el mayor o el menor de los valores de propiedad de conflicto y el valor correspondiente; o definir un valor objetivo entre los valores de propiedad de conflicto y el valor correspondiente. y asociar el valor objetivo con una tolerancia de valor acompañante de modo que la tolerancia de valor acompañante abarque tanto los valores de propiedad del conflicto como el valor correspondiente.
10. El sistema según la reivindicación 9, donde la memoria (1016) almacena además instrucciones que, cuando las ejecuta el procesador (1012), hacen que el sistema:
genere, en la memoria (1016), una tabla de búsqueda (300) que correlaciona la zona con el al menos un marcador de referencia (30) y la regla.
11. El sistema según la reivindicación 9, donde la memoria almacena además instrucciones que, cuando las ejecuta el procesador (1012), hacen que el sistema:
asocie una o más reglas adicionales con la zona, dictando las reglas adicionales al menos parcialmente el funcionamiento de uno o más robots (18) dentro de la zona; y
opere uno o más robots (18) dentro de la zona según las reglas adicionales.
12. El sistema según la reivindicación 9, donde la memoria almacena además instrucciones que, cuando las ejecuta el procesador (1012), hacen que el sistema:
genere, en la memoria (1016), una tabla de búsqueda (300) que correlaciona la zona con el al menos un marcador de referencia (30), la regla y las reglas adicionales.
13. El sistema según la reivindicación 9, donde la memoria almacena además instrucciones que, cuando las ejecuta el procesador (1012), hacen que el sistema:
al menos uno de modificar automáticamente la regla o agregar automáticamente una regla adicional en respuesta a los datos recibidos de uno o más de los robots (18), un sistema de gestión de almacén (15), un usuario o una fuente de datos externa.
14. El sistema según la reivindicación 9, donde la posición de uno o más robots dentro del espacio no se determina a través de la lectura del al menos un marcador de referencia (30).
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/135,329 US11256259B2 (en) | 2018-09-19 | 2018-09-19 | Zone engine for providing context-augmented map layer |
| PCT/US2019/051826 WO2020061250A1 (en) | 2018-09-19 | 2019-09-19 | Zone engine for providing context-augmented map layer |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3038372T3 true ES3038372T3 (en) | 2025-10-13 |
Family
ID=68104796
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19780106T Active ES3038372T3 (en) | 2018-09-19 | 2019-09-19 | Zone engine for providing context-augmented map layer |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US11256259B2 (es) |
| EP (1) | EP3837592B1 (es) |
| JP (1) | JP7161040B2 (es) |
| KR (1) | KR102502325B1 (es) |
| CN (1) | CN112805646B (es) |
| CA (1) | CA3113099C (es) |
| ES (1) | ES3038372T3 (es) |
| WO (1) | WO2020061250A1 (es) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210263532A1 (en) * | 2018-11-16 | 2021-08-26 | Hewlett-Packard Development Company, L.P. | Telepresence session initiation locations |
| US11724395B2 (en) * | 2019-02-01 | 2023-08-15 | Locus Robotics Corp. | Robot congestion management |
| CN111947673B (zh) * | 2019-05-17 | 2022-09-06 | 北京京东振世信息技术有限公司 | 无人车路径控制方法、装置和系统 |
| WO2021152470A1 (en) * | 2020-01-29 | 2021-08-05 | Everseen Limited | System and method for direct store distribution |
| KR102337531B1 (ko) | 2020-07-08 | 2021-12-09 | 네이버랩스 주식회사 | 로봇의 경로 계획을 위한 노드 지정 방법 및 시스템 |
| US20220083062A1 (en) * | 2020-09-11 | 2022-03-17 | Locus Robotics Corp. | Robot navigation management between zones in an environment |
| CN112114587B (zh) * | 2020-11-23 | 2021-02-05 | 炬星科技(深圳)有限公司 | 一种分布式拥堵控制方法和机器人 |
| US11960282B2 (en) | 2021-01-05 | 2024-04-16 | Abb Schweiz Ag | Systems and methods for servicing a data center using autonomous vehicle |
| US12233910B2 (en) * | 2021-02-22 | 2025-02-25 | Volkswagen Group of America Investments, LLC | Indoor localization of autonomous vehicles |
| US11981517B2 (en) | 2021-03-30 | 2024-05-14 | Dexterity, Inc. | Robotic line kitting system safety features |
| US12157644B2 (en) | 2021-03-30 | 2024-12-03 | Dexterity, Inc. | Autonomous and safe integration of human task in robotic operation |
| US11897706B2 (en) * | 2021-03-30 | 2024-02-13 | Dexterity, Inc. | Robotic system with zone-based control |
| JP7375791B2 (ja) * | 2021-05-19 | 2023-11-08 | 村田機械株式会社 | 走行車システム |
| CN113776537B (zh) * | 2021-09-07 | 2024-01-19 | 山东大学 | 无标记复杂场景中的去中心化多智能体导航方法及系统 |
| GB2613554B (en) * | 2021-12-03 | 2024-03-27 | Caterpillar Inc | Charging management for electric work vehicles |
| TWI790934B (zh) * | 2022-03-03 | 2023-01-21 | 優式機器人股份有限公司 | 機器人避障方法 |
| US20230356947A1 (en) * | 2022-05-06 | 2023-11-09 | Nasir Khalil Memon | Warehouse automation using autonomous mobile robots |
| CN117114256A (zh) * | 2022-05-12 | 2023-11-24 | 灵动科技(北京)有限公司 | 用于机器人工作环境的区域划分的方法和设备 |
| EP4307231A1 (en) * | 2022-07-15 | 2024-01-17 | Captron Electronic GmbH | System and method for localizing articles in an intralogistics environment |
| US12472627B2 (en) * | 2024-02-02 | 2025-11-18 | Futronics (Na) Corporation | System and method for multi-robot fleet control in healthcare environment |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050238465A1 (en) | 2004-04-27 | 2005-10-27 | Razumov Sergey N | Robotic retail facility |
| JP4411248B2 (ja) * | 2005-06-15 | 2010-02-10 | セコム株式会社 | 移動監視ロボット |
| DE102006041485A1 (de) * | 2006-09-02 | 2008-03-13 | Inmach Intelligente Maschinen Gmbh | Baukasten zum Aufbau einer Infrastruktur für eine Steuerung eines Flächenbearbeitungsgeräts |
| TWI344439B (en) | 2008-01-29 | 2011-07-01 | Univ Da Yeh | Automatic load system and operation method of the same |
| US20110200420A1 (en) | 2010-02-17 | 2011-08-18 | Velociti Alliance North America, Inc. | Warehouse dynamic picking slots |
| EP2724202B1 (en) | 2011-06-24 | 2017-03-29 | Seegrid Corporation | Robot-enabled case picking |
| US20130317642A1 (en) | 2012-05-28 | 2013-11-28 | Well.Ca Inc. | Order processing systems using picking robots |
| JP2014069897A (ja) * | 2012-09-27 | 2014-04-21 | Sankyu Inc | 荷役装置の走行エリア識別システム |
| JP2015535373A (ja) | 2012-10-05 | 2015-12-10 | アイロボット コーポレイション | 移動ロボットを含むドッキングステーション姿勢を決定するためのロボット管理システムとこれを用いる方法 |
| US8965561B2 (en) * | 2013-03-15 | 2015-02-24 | Cybernet Systems Corporation | Automated warehousing using robotic forklifts |
| US9463927B1 (en) | 2013-09-23 | 2016-10-11 | Vecna Technologies, Inc. | Transporting and/or sorting items with mobile robot(s) |
| US9574883B2 (en) * | 2015-03-24 | 2017-02-21 | X Development Llc | Associating semantic location data with automated environment mapping |
| US9758305B2 (en) * | 2015-07-31 | 2017-09-12 | Locus Robotics Corp. | Robotic navigation utilizing semantic mapping |
| US9864377B2 (en) * | 2016-04-01 | 2018-01-09 | Locus Robotics Corporation | Navigation using planned robot travel paths |
| US10037029B1 (en) * | 2016-08-08 | 2018-07-31 | X Development Llc | Roadmap segmentation for robotic device coordination |
| US10217232B2 (en) * | 2017-02-08 | 2019-02-26 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems and methods for locally aligning map data |
| US10012996B1 (en) * | 2017-09-15 | 2018-07-03 | Savioke, Inc. | Route planning for a mobile robot using configuration-based preferences |
-
2018
- 2018-09-19 US US16/135,329 patent/US11256259B2/en active Active
-
2019
- 2019-09-19 JP JP2021515212A patent/JP7161040B2/ja active Active
- 2019-09-19 CN CN201980061736.0A patent/CN112805646B/zh active Active
- 2019-09-19 ES ES19780106T patent/ES3038372T3/es active Active
- 2019-09-19 WO PCT/US2019/051826 patent/WO2020061250A1/en not_active Ceased
- 2019-09-19 EP EP19780106.1A patent/EP3837592B1/en active Active
- 2019-09-19 KR KR1020217011385A patent/KR102502325B1/ko active Active
- 2019-09-19 CA CA3113099A patent/CA3113099C/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CA3113099C (en) | 2024-04-16 |
| CN112805646A (zh) | 2021-05-14 |
| EP3837592A1 (en) | 2021-06-23 |
| JP7161040B2 (ja) | 2022-10-25 |
| CN112805646B (zh) | 2024-05-28 |
| WO2020061250A1 (en) | 2020-03-26 |
| CA3113099A1 (en) | 2020-03-26 |
| KR20210057172A (ko) | 2021-05-20 |
| US11256259B2 (en) | 2022-02-22 |
| US20200089237A1 (en) | 2020-03-19 |
| EP3837592B1 (en) | 2025-06-04 |
| JP2022501715A (ja) | 2022-01-06 |
| KR102502325B1 (ko) | 2023-02-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3038372T3 (en) | Zone engine for providing context-augmented map layer | |
| ES2863656T3 (es) | Operaciones de poner en cola a robots para cumplimiento de pedidos | |
| KR102580084B1 (ko) | 로봇 혼잡 관리 | |
| US9317034B2 (en) | System and method for inventory management using mobile drive units | |
| ES3047090T3 (en) | Robot dwell time minimization in warehouse order fulfillment operations | |
| CN113574553B (zh) | 机器人辅助的人员路由 | |
| KR102906369B1 (ko) | 환경에서의 존들 사이의 로봇 내비게이션 관리 | |
| CN110998620B (zh) | 排队完成订单操作的机器人 | |
| CN111557013A (zh) | 仓库订单履行操作中的订单分组 | |
| CN113632121A (zh) | 仓库订单履行操作中的搬运箱引导 | |
| CN113678078B (zh) | 接近机器人对象检测和躲避 | |
| CN116472542A (zh) | 用于对订单中的物品执行功能的顺序调整 | |
| JP2026052989A (ja) | 搬送システム、制御装置及び制御方法 | |
| TW202124990A (zh) | 移動載具及其狀態估測與感測融合切換方法 |