ES2827192T3 - Sistema de gestión de tareas para una flota de robots móviles autónomos - Google Patents
Sistema de gestión de tareas para una flota de robots móviles autónomos Download PDFInfo
- Publication number
- ES2827192T3 ES2827192T3 ES13746935T ES13746935T ES2827192T3 ES 2827192 T3 ES2827192 T3 ES 2827192T3 ES 13746935 T ES13746935 T ES 13746935T ES 13746935 T ES13746935 T ES 13746935T ES 2827192 T3 ES2827192 T3 ES 2827192T3
- Authority
- ES
- Spain
- Prior art keywords
- task
- mobile robot
- robot
- management system
- request
- 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
- 230000015654 memory Effects 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000004519 manufacturing process Methods 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 20
- 239000000463 material Substances 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- 230000002349 favourable effect Effects 0.000 claims description 4
- 238000010521 absorption reaction Methods 0.000 claims description 3
- 238000005086 pumping Methods 0.000 claims description 3
- 238000005507 spraying Methods 0.000 claims description 3
- 238000007639 printing Methods 0.000 claims description 2
- 230000001052 transient effect Effects 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 180
- 238000012384 transportation and delivery Methods 0.000 description 45
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000004590 computer program Methods 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 11
- 238000013439 planning Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 9
- 101000873785 Homo sapiens mRNA-decapping enzyme 1A Proteins 0.000 description 6
- 238000013459 approach Methods 0.000 description 6
- 102100035856 mRNA-decapping enzyme 1A Human genes 0.000 description 6
- 238000004806 packaging method and process Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 239000000969 carrier Substances 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000005553 drilling Methods 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000007789 gas Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 241001061260 Emmelichthys struhsakeri Species 0.000 description 1
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000249 desinfective effect Effects 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000011012 sanitization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002341 toxic gas Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063114—Status monitoring or status determination for a person or group
-
- 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/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
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H40/00—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
- G16H40/20—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the management or administration of healthcare resources or facilities, e.g. managing hospital staff or surgery rooms
-
- 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/0238—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
- G05D1/024—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
-
- 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/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing 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/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/0255—Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S901/00—Robots
- Y10S901/01—Mobile robot
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Automation & Control Theory (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Theoretical Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Health & Medical Sciences (AREA)
- Epidemiology (AREA)
- Biomedical Technology (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Primary Health Care (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
Abstract
Un procedimiento para procesar solicitudes de tarea en un sistema de gestión de tareas (110,205,1205) en un entorno físico que comprende el sistema de gestión de tareas (110,205,1205) y una flota (290) de robots móviles (102a-102e,295a-295n), donde el sistema de gestión de tareas (110,205,1205) incluye un gestor de colas (206,1225), una memoria (202) y una interfaz de red (230), comprendiendo el procedimiento: a) almacenar en la memoria (202) un mapa (208,710) que (i) define un plano de planta (210,712) correspondiente al entorno físico y (ii) define una ubicación de tarea virtual (216) con respecto al plano de planta (210,712), donde la ubicación de tarea virtual (216) representa una ubicación de tarea real en el entorno físico, caracterizado por que el mapa (208,710) (iii) comprende una asociación entre una operación de tarea virtual (218) y la ubicación de tarea virtual (216), donde la operación de tarea virtual (218) representa una operación de tarea real en el entorno físico; comprendiendo además el procedimiento: b) después de almacenar el mapa en la memoria, recibir una solicitud de tarea por parte del gestor de colas (206,1225), donde la solicitud de tarea incluye solo una de la ubicación de tarea virtual (216) en el mapa (208,710), o la operación de tarea virtual (218); c) con el gestor de colas (206,1225), seleccionar automáticamente un robot móvil (102a-102e,295a-295n) de la flota (290) para gestionar la solicitud de tarea recibida; y d) transmitir uno o más comandos al robot móvil seleccionado (102a-102e,295a-295n) a través de la interfaz de red (230) para hacer que el robot móvil seleccionado (102a-102e,295a-295n) (A) se desplace automáticamente hasta la ubicación de tarea real, (B) ejecute automáticamente la operación de tarea real, o (C) lleve a cabo automáticamente tanto (A) como (B); e) donde, si la solicitud de tarea no incluye la ubicación de tarea virtual (216), entonces el gestor de colas (206,1225) determina la ubicación de tarea real en función de la asociación proporcionada por el mapa (208,710) y la operación de tarea virtual (218), y f) si la solicitud de tarea no incluye la operación de tarea virtual (218), entonces el gestor de colas (206,1225) determina la operación de tarea real en función de la asociación proporcionada por el mapa (208,710) y la ubicación de tarea virtual (216).
Description
DESCRIPCIÓN
Sistema de gestión de tareas para una flota de robots móviles autónomos
Campo de la invención
La presente invención se refiere a sistemas y procedimientos para procesar solicitudes de tarea en un entorno físico automatizado. Más en particular, la presente invención se refiere a un sistema de gestión de tareas que recibe y procesa solicitudes de tarea en un entorno físico automatizado, tal como un almacén, una fábrica, un hospital, un edificio de oficinas, una instalación de procesamiento de correo o de pedidos en línea, o empresa similar, donde el entorno físico incluye una flota de robots móviles para la gestión automatizada de las solicitudes de tarea.
Técnica relacionada
En un entorno de procesamiento de pedidos típico, operarios humanos pueden transportar mercancías en torno a un centro de distribución o almacén empujando, tirando de o conduciendo contenedores móviles, vehículos de transporte, carros, pequeños contenedores de mercancía o carretillas elevadoras de una ubicación a otra. El uso de operarios humanos para transportar de esta manera artículos de un lugar a otro en el entorno físico tiene muchas desventajas, que incluyen, por ejemplo: problemas para llevar un registro de las ubicaciones físicas de los artículos transportados; dificultades para trasladar artículos dentro de la fábrica o almacén de acuerdo con las planificaciones establecidas por componentes automatizados en el sistema de procesamiento de pedidos; exponer a los operarios humanos a mayores riesgos de lesiones físicas o muerte; mayor riesgo de daños a equipos e inventario caros o exclusivos; y exponer los artículos transportados y el equipo de fabricación a mayores niveles de contaminación causados por la presencia de los operarios humanos. En algunos entornos, incluidos entornos de fabricación automatizados, en lugar de usar personas para transportar artículos terminados e inacabados y mercancía dentro la fábrica o almacén, se utilizan cintas transportadoras y/o sistemas de transporte de productos suspendidos (por ejemplo, un sistema de monorraíl suspendido del techo). Las desventajas de usar cintas transportadoras y sistemas de transporte suspendido incluyen: limitarse a un trayecto de entrega fija (lineal); no poder entregar productos a estaciones de trabajo situadas aguas abajo si una estación de trabajo situada aguas arriba en el proceso está fuera de servicio; y tener que trasladar y/o hacer cambios costosos en el sistema de cintas transportadoras o sistema de transporte suspendido si una sola estación de trabajo en el proceso tiene que trasladarse a una ubicación diferente.
Para ayudar a trasladar materiales entre ubicaciones en la fábrica o almacén de manera más eficiente, se han introducido flotas de robots móviles, también denominados vehículos guiados automatizados (o "AGV"), en centros de procesamiento de pedidos, instalaciones de fabricación, hospitales y edificios de oficinas. Pero la utilidad y flexibilidad de las flotas convencionales de robots móviles para estos entornos ha sido hasta ahora muy limitada debido a varias deficiencias operativas significativas, que incluyen, por ejemplo: (1) tener que instalar marcadores, rieles, cables o cuadrículas en el suelo, el techo y/o paredes de las instalaciones para que la flota de robots móviles pueda utilizarlos para la navegación; (2) los robots móviles de la flota tienen poca o ninguna capacidad de determinar de forma independiente sus rutas a destinos específicos (es decir, para navegar de forma autónoma); (3) los robots móviles de la flota tienen poca o ninguna capacidad de modificar una ruta seleccionada a un destino especificado en respuesta a encontrarse con otros objetos no estacionarios, incluidas personas y otros robots móviles mientras se desplazan al destino especificado; y (4) los robots móviles de la flota tienen poca o ninguna capacidad de determinar y llevar a cabo automáticamente una tarea u operación particular al llegar a un destino especificado, por nombrar solo algunos ejemplos. Otra deficiencia significativa de las soluciones existentes basadas en robots móviles es que tienden a confiar en que los robots móviles de la flota puedan desplazarse en líneas perfectamente rectas. Sin embargo, las fábricas, almacenes y centros de distribución generalmente no están dispuestos en líneas perfectamente rectas porque tienden a expandirse hacia el exterior desde el centro en múltiples direcciones y a diferente ritmo de acuerdo con la necesidad y el financiamiento. Por lo tanto, las soluciones existentes basadas en flota de robots móviles tienden a ser menos útiles, menos eficientes y menos productivas en situaciones en las que las herramientas y estaciones de trabajo que la flota de robots móviles tiene que atender tienen diferentes formas y tamaños, o están físicamente desplazadas entre sí.
Debido a las limitaciones y deficiencias descritas anteriormente asociadas a las flotas de robots móviles convencionales, los sistemas convencionales de gestión de tareas, que controlan y gestionan las flotas de robots móviles, también han tenido una utilidad y flexibilidad muy limitadas. Por ejemplo, muchos de los sistemas convencionales de gestión de tareas deben supervisar y controlar constantemente todos los aspectos del progreso de cada robot móvil, con una especificidad rígida y exigente, instruyendo explícitamente a cada robot móvil de la flota acerca de: (1) cómo llegar a un destino especificado y (2) cuándo realizar una tarea una vez que se alcanza el destino previsto. Una serie de dichos instrucciones podría incluir, por ejemplo, los siguientes comandos:
"recoger mercancía"
"retroceder 0,5 metros"
"girar a la derecha 90 grados
"desplazarse 10 metros hacia adelante"
"girar a la derecha 45 grados
"desplazarse 50 metros hacia adelante
"pararse durante 7 segundos"(mientras pasa otro robot móvil);
"desplazarse 8 metros hacia adelante;'
"girar a la izquierda 60 grados;'
"pararse durante 5 segundos"(mientras pasa otro robot móvil)
"desplazarse 3 metros hacia adelante;”
"retroceder 0,2 metros;"y
"descargar mercancía"
Por lo tanto, los sistemas existentes de gestión de tareas no solo deben distribuir las solicitudes de tarea a determinados robots móviles de la flota, sino que también deben proporcionar funciones de navegación, evitación de obstáculos y gestión del tráfico a todos los robots de la flota. El resultado es que, aunque son útiles hasta cierto punto, los sistemas convencionales de gestión de tareas para flotas de robots móviles no permiten una delegación, una gestión y una finalización verdaderamente "inteligentes" de solicitudes de tarea dentro de un entorno operativo dado.
Otro problema asociado a los sistemas existentes de gestión automatizada de almacenes que involucran flotas de robots móviles es que tienden a utilizar una flota de robots móviles homogéneos, todos con el mismo conjunto de funciones, capacidades y limitaciones. Como resultado, los sistemas convencionales de gestión de tareas tienden a distribuir las solicitudes de tarea a los robots móviles de la flota en función de un conjunto muy limitado de criterios, tales como la posición actual del robot móvil en el entorno físico en relación con la ubicación de tareas especificada para la solicitud de tarea. Por lo tanto, lo que se necesita es un sistema de gestión de tareas para procesar solicitudes de tarea en un entorno en el que los robots móviles de la flota son heterogéneos y tienen un conjunto diverso de capacidades y funciones.
Resumen de la invención
El sistema de gestión de tareas (JMS) de la presente invención recibe, coordina y gestiona solicitudes de tarea en un entorno físico, tal como una fábrica, una instalación de procesamiento de pedidos, un centro de distribución, un hospital o un edificio de oficinas. El sistema de gestión de tareas recibe y prioriza las solicitudes de tarea, y selecciona unidades individuales de una flota de una o más unidades robóticas móviles de navegación autónoma heterogéneas para llevar a cabo las solicitudes de tarea. Las solicitudes de tarea para los robots móviles pueden especificar una ubicación de tarea virtual (es decir, correlacionada) que representa una ubicación de tarea real en el entorno físico, una operación de tarea virtual (correlacionada) que representa una operación de tarea real en el entorno físico, o tanto una ubicación de tarea virtual como una operación de tarea real. El sistema de gestión de tareas determina automáticamente las ubicaciones de tarea reales y las operaciones de tarea asociadas a las ubicaciones y operaciones de tarea virtuales, y selecciona automáticamente un robot móvil adecuado de la flota para gestionar cada solicitud de tarea.
En algunas formas de realización, el sistema de gestión de tareas selecciona el robot móvil para gestionar la solicitud de tarea en función del estado actual del robot móvil seleccionado, la configuración actual del robot móvil seleccionado o tanto el estado actual como la configuración actual del robot móvil seleccionado. El sistema de gestión de tareas también envía uno o más comandos al robot móvil seleccionado para hacer que el robot móvil seleccionado se desplace automáticamente hasta la ubicación de tarea real, si es necesario, y realice automáticamente la operación de tarea real. En algunos casos, el sistema de gestión de tareas envía uno o más comandos que hacen que el robot móvil seleccionado ejecute ambas etapas de desplazamiento hasta la ubicación de tarea real y realice la operación de tarea solicitada.
Las operaciones de tarea pueden abarcar cualquier tarea adecuada para el desempeño de un robot móvil o industrial, que incluyen, por ejemplo, recoger, transportar y soltar objetos y materiales, así como otras tareas no relacionadas con el transporte de objetos y materiales, tales como perforar, estampar o cortar un objeto, o limpiar (sanear o desinfectar) un área. Por consiguiente, los robots móviles de la flota pueden tener diferentes configuraciones físicas, que incluyen, por ejemplo, estar equipados con una variedad de diferentes cintas transportadoras, manejadores, manipuladores, plataformas de soporte, portadores de carga útil, remolques o cajas. El sistema de gestión de tareas y los robots móviles también pueden configurarse para procesar una solicitud para entregar una "carga útil digital" a una ubicación de tarea especificada en el entorno físico. Por ejemplo, si la solicitud de tarea requiere seleccionar un robot móvil que tiene ciertos tipos de equipo (por ejemplo, un sensor, cámara, proyector, máquina de rayos X, pantalla LCD y/o altavoz), entonces la operación de tarea puede incluir tareas tales como grabar o proyectar luz, sonido o datos de vídeo, o detectar y muestrear señales inalámbricas, gases tóxicos o líquidos.
En formas de realización preferidas, para cada solicitud de tarea recibida, el sistema de gestión de tareas selecciona un robot móvil adecuado de la flota en función de la solicitud de tarea y los estados y configuraciones actuales de los robots móviles de la flota, y envía una instrucción de comando al robot móvil seleccionado que hace que el robot móvil seleccionado se desplace automáticamente hasta la ubicación de tarea adecuada, si es necesario, y en algunos casos realice automáticamente la operación de tarea especificada. En algunos escenarios, la flota de robots móviles puede estar configurado, por ejemplo, para realizar una o más tareas de acuerdo con la ubicación física donde se invoca o envía el robot móvil. Por ejemplo, en una aplicación de seguridad, el sistema puede programarse de manera que cuando un robot equipado con capacidad de detección de movimiento se envía a una determinada ubicación, el robot
trazará una ruta hacia esa ubicación, se desplazará hasta esa ubicación y, a continuación, encenderá su equipo de detección de movimiento para comenzar a supervisar el movimiento en esa área.
En algunas formas de realización, el sistema de gestión de tareas de la presente invención se puede utilizar para gestionar, controlar y supervisar solicitudes de tarea para una flota de robots móviles que comprende decenas, cientos o incluso miles de unidades robóticas de navegación autónoma individuales. Sin embargo, debe entenderse que la "flota" también puede comprender un único robot móvil de navegación autónoma. Por lo tanto, a menos que se indique o se dicte de otro modo por el contexto, el término "flota de robots móviles", tal como se usa a lo largo de esta divulgación, debe interpretarse como que abarca una flota de cualquier número de robots móviles, incluida una flota de solo un robot móvil. Unidades robóticas móviles de navegación autónoma adecuadas para su adaptación y uso con formas de realización de la presente invención son fabricadas y vendidas por Adept Technologies, Inc., de Pleasanton, California, EE. UU.
En un aspecto de la presente invención, se proporciona un sistema de gestión de tareas para procesar solicitudes de tarea en un entorno físico, tal como un laboratorio, una planta de fabricación, una instalación de procesamiento de pedidos, un centro de distribución, un hospital o un edificio de oficinas. En general, el sistema de gestión de tareas comprende una memoria; un microprocesador acoplado a la memoria; un mapa (o archivo de mapa) almacenado en la memoria para definir un plano de planta correspondiente al entorno físico; un gestor de colas que funciona de forma conjunta con el microprocesador y la memoria para seleccionar un robot móvil de la flota y determinar una ubicación de tarea real y/o una operación de tarea real asociada a la solicitud, todo de acuerdo con el mapa, y un dispositivo de interfaz de red para transmitir uno o más comandos al robot móvil seleccionado para hacer que el robot seleccionado lleve a cabo la solicitud de tarea. El mapa también define un conjunto de ubicaciones de tarea virtuales con respecto al plano de planta, donde cada ubicación de tarea virtual representa una ubicación de tarea real en el entorno físico, y también asocia un conjunto de operaciones de tarea virtuales a una o más de las ubicaciones de tarea virtuales del conjunto de ubicaciones de tarea virtuales, donde cada operación de tarea virtual representa una operación de tarea real en el entorno físico. Por ejemplo, el operario del sistema puede crear y colocar una ubicación de tarea virtual en el plano de planta denominada "estación de carga de baterías", que representa una estación de carga de batería real en una planta de la fábrica del entorno físico del mundo real. El operario del sistema puede crear además una operación de tarea virtual, denominada "cargar baterías", y asociar la operación de tarea virtual recién creada ("cargar baterías") con la ubicación de tarea virtual recién creada ("estación de carga de baterías"). Posteriormente, los robots móviles pueden utilizar copias del mapa con la ubicación de tarea virtual y la operación de tarea virtual de manera que los robots móviles sepan automáticamente que deben comenzar a ejecutar la operación de tarea de "cargar baterías" al ser enviados o convocados a la ubicación de tarea de "estación de carga de baterías". Debe entenderse que, dependiendo de la situación, algunas ubicaciones de tarea virtuales pueden no tener operaciones de tarea virtuales asociadas, mientras que otras ubicaciones de tarea virtuales pueden tener una, docenas o incluso cientos de operaciones de tarea virtuales asociadas.
Cuando el gestor de colas en el sistema de gestión de tareas recibe una solicitud de tarea, la solicitud de tarea puede especificar (1) una ubicación de tarea virtual sin especificar una operación de tarea virtual, (2) una operación de tarea virtual sin especificar una ubicación de tarea virtual, o (3) una ubicación de tarea virtual y una operación de tarea virtual. Si la solicitud contiene solo una ubicación de tarea virtual, el sistema de gestión de tareas de la presente invención utilizará el mapa y la ubicación de tarea virtual especificada para determinar la operación de tarea real en el entorno físico para la solicitud de tarea. Dicho de otra manera, el mapa indica al sistema de gestión de tareas qué operaciones de tarea virtuales, si las hay, están asociadas a la ubicación de tareas virtuales especificada. El mapa también indica al sistema de gestión de tareas (así como a los robots móviles) la ubicación de tarea real en el entorno físico. Si la solicitud contiene solo una operación de tarea virtual, el sistema de gestión de tareas de la presente invención utilizará el mapa y la operación de tarea virtual especificada para determinar la ubicación de tarea real en el entorno físico para la solicitud de tarea.
En formas de realización preferidas, la memoria también contiene un perfil de estado y un perfil de configuración para cada robot móvil. El perfil de estado puede comprender un archivo o una estructura de datos almacenados en la memoria que incluye registros y/o campos adecuados para almacenar y/o indicar uno o más de una amplia variedad de valores o condiciones de estado actual diferentes para cada robot móvil de la flota, que incluyen, sin limitación, lo siguiente: un identificador de robot; una posición de robot; un rumbo de robot; una velocidad de robot actual; un identificador de tarea actual; un estado de tarea actual; una ubicación de tarea actual; una proximidad a la ubicación de tarea actual; un trayecto de destino de tarea actual; un tiempo estimado de llegada; un tiempo estimado de salida; un tiempo de inactividad de robot; un nivel de rendimiento de robot; un nivel de seguridad de robot; un nivel de carga de batería de robot; un estado de carga útil de robot; una condición de error de carga útil de robot; un estado de carga de robot y/o una capacidad de carga de robot. El perfil de configuración puede comprender un archivo o una estructura de datos almacenados en la memoria que incluye registros y/o campos adecuados para almacenar y/o indicar una o más de una amplia variedad de configuraciones actuales diferentes para cada robot móvil de la flota, que incluyen lo siguiente: una capacidad de manejo de materiales; una capacidad de elevación de materiales; una capacidad de transporte de materiales; una capacidad de manipulación; una capacidad de transporte de objetos; una capacidad de medición; una capacidad de detección; una capacidad de bombeo; una capacidad de pulverización; una capacidad de vacío; una capacidad de perforación; una capacidad de grabación de vídeo; una capacidad de grabación de sonido; una capacidad de producción de sonido; una capacidad de navegación; una capacidad de entrada de datos; una
capacidad de salida de datos; una capacidad de comunicación de datos; una capacidad de impresión; una capacidad de visualización; una capacidad de creación de planos de planta; una capacidad de absorción de energía; una capacidad de producción de energía; una capacidad de carga útil máxima; una capacidad de carga útil mínima; una velocidad de desplazamiento máxima; una velocidad de desplazamiento mínima; una altura máxima; una altura mínima; una restricción de ubicación; una restricción de zona; una operación prohibida; una operación permitida; y/o un requisito de espacio libre mínimo.
Habiendo determinado la ubicación de tarea real o la operación de tarea real para la solicitud de tarea, el sistema de gestión de tareas selecciona automáticamente un robot móvil de la flota para gestionar la solicitud de tarea en función de los perfiles de estado y los perfiles de configuración almacenados en la memoria. Por lo tanto, el gestor de colas determina, en función de los datos del perfil de estado o el perfil de configuración, por ejemplo, si el robot móvil seleccionado tiene un estado actual y una configuración actual que es compatible con la solicitud de tarea. El gestor de colas genera además una instrucción de comando que, cuando es recibida por el robot móvil seleccionado, hará que el robot móvil seleccionado se desplace automáticamente hasta la ubicación de tarea real de acuerdo con el plano de planta definido por el mapa y/o realice automáticamente la operación de tarea real.
Como se indicó anteriormente, el gestor de colas selecciona un robot móvil de la flota para gestionar la solicitud de tarea en función de si el perfil de estado, el perfil de configuración o tanto el perfil de estado como el perfil de configuración indican que el estado actual y/o la configuración actual del robot móvil seleccionado son compatibles con la solicitud de tarea. El estado actual puede considerarse "compatible" con la solicitud de tarea actual, por ejemplo, si el perfil de estado del robot móvil seleccionado muestra que el estado actual del robot móvil seleccionado está "completamente cargado" y "no está realizando actualmente otra solicitud de tarea asignada." Por otro lado, el estado actual de un robot móvil puede considerarse "incompatible" con la solicitud de tarea cuando el perfil de estado indica que la capacidad de carga actual del robot móvil es "ninguna" y la solicitud de tarea requiere recoger y transportar un artículo a otra ubicación. De manera similar, en formas de realización específicas del sistema de gestión de tareas, el gestor de colas podría determinar, en función del perfil de configuración actual del robot móvil seleccionado, que el robot móvil seleccionado tiene una configuración actual que es compatible con la solicitud de tarea. La configuración actual puede considerarse "compatible" con la solicitud de tarea cuando el perfil de configuración del robot móvil seleccionado indica, por ejemplo, que el robot móvil seleccionado tiene el equipo adecuado, el tamaño y peso adecuados y/o las características y capacidades adecuadas para gestionar tanto el desplazamiento hasta la ubicación de tarea real como la realización de la operación de tarea de la solicitud de tarea.
Por ejemplo, si la solicitud de tarea recibida por el sistema de gestión de tareas incluye una ubicación de tarea que requiere un desplazamiento por un pasillo muy estrecho e inclinado, y también incluye una operación de tarea que requiere grabar vídeo y agarrar y manipular un objeto en la ubicación de tarea especificada, el gestor de colas usará los perfiles de configuración almacenados en la memoria para garantizar que el robot móvil seleccionado para gestionar la solicitud de tarea (a) esté equipado con una cámara de vídeo, (b) esté equipado con un manipulador, (c) tenga dimensiones físicas adecuadas para caber en el pasillo estrecho y (d) tenga suficientes características de locomoción, potencia, equilibrio y estabilidad para abordar de forma segura la pendiente en línea del pasillo.
En algunos casos, dos o más robots móviles de la flota tendrán estados y configuraciones que son compatibles con la ubicación de tarea y la operación de tarea en la solicitud de tarea. En estas situaciones, el gestor de colas puede estar configurado para determinar automáticamente, de acuerdo con un criterio establecido basado en estado, un criterio establecido basado en configuración, o ambos, cuál de los dos o más robots móviles compatibles de la flota tiene un estado y configuración más favorables para la solicitud de tarea. Por ejemplo, se puede considerar que un robot móvil particular tiene un estado y configuración más favorables que cualquiera de los otros candidatos porque está más cerca de la ubicación de tarea, es capaz de moverse con una velocidad más alta, tiene un nivel más alto de carga de batería, hace menos ruido y/o tiene acoplada al mismo una cámara de resolución más alta que cualquiera de los otros candidatos de robot móvil.
Además, en formas de realización específicas del sistema de gestión de tareas, el gestor de colas podría recibir con la solicitud de tarea un tiempo específico para la ejecución de la solicitud de tarea. En este caso, el gestor de colas puede estar configurado para determinar, en función del perfil de estado del robot móvil seleccionado, si el estado actual del robot móvil seleccionado es compatible con el tiempo especificado para la ejecución. Puede determinarse que el estado actual del robot móvil seleccionado tiene un estado actual que es compatible con el tiempo especificado para la realización porque, por ejemplo, el robot móvil seleccionado estará inactivo y no se acoplará de otro modo en el tiempo especificado para la ejecución. De manera similar, el gestor de colas podría determinar, en función del perfil de configuración almacenado en la memoria para el robot móvil seleccionado, si la configuración actual del robot móvil seleccionado es compatible con el tiempo especificado para la ejecución.
Además, en formas de realización específicas del sistema de gestión de tareas, el gestor de colas podría recibir una prioridad especificada para la solicitud de tarea y determinar, en función del perfil de estado del robot móvil seleccionado, si el estado actual del robot móvil seleccionado es compatible con la prioridad especificada. De manera similar, el gestor de colas podría determinar, en función del perfil de configuración actual almacenado en la memoria para el robot móvil seleccionado, si la configuración actual del robot móvil seleccionado es compatible con la prioridad especificada. Por ejemplo, el gestor de colas puede considerar que un robot móvil de la flota tiene una configuración
actual que es "incompatible" con la prioridad especificada porque ese robot móvil no puede desplazarse a través del entorno físico a velocidades dictadas por la prioridad especificada.
En formas de realización específicas del sistema de gestión de tareas, el gestor de colas podría recibir una combinación especificada de ubicaciones de tarea y de operaciones de tarea y determinar, en función del perfil de estado del robot móvil seleccionado, si el estado actual del robot móvil seleccionado es compatible con la combinación especificada de ubicaciones de tarea y de operaciones de tarea. De manera similar, el gestor de colas podría determinar, en función del perfil de configuración actual almacenado en la memoria para el robot móvil seleccionado, si la configuración actual del robot móvil seleccionado es compatible con la combinación especificada de ubicaciones de tarea y de operaciones de tarea.
Además, en formas de realización específicas del sistema de gestión de tareas, el gestor de colas podría recibir una ruta especificada entre ubicaciones de tarea y determinar, en función del perfil de estado del robot móvil seleccionado, si el estado actual del robot móvil seleccionado es compatible con la ruta especificada. De manera alternativa, el gestor de colas podría determinar, en función del perfil de configuración actual almacenado en la memoria para el robot móvil seleccionado, si la configuración actual del robot móvil seleccionado es compatible con la ruta especificada.
En formas de realización específicas del sistema de gestión de tareas, el gestor de colas podría recibir una solicitud para asignar un robot móvil particular para gestionar la solicitud de tarea y determinar, en función del perfil de estado del robot móvil particular, si el estado actual del robot móvil particular es compatible con la solicitud de tarea. En ese sentido, se podría seleccionar automáticamente un robot móvil diferente para la solicitud de tarea si el perfil de estado del robot móvil particular no es compatible con la solicitud de tarea. De manera similar, el gestor de colas podría determinar, en función del perfil de configuración actual almacenado en la memoria para el robot móvil particular, si la configuración actual del robot móvil particular es compatible con la solicitud de tarea. En ese sentido, se podría seleccionar automáticamente un robot móvil diferente para la solicitud de tarea si el perfil de configuración del robot móvil particular no es compatible con la solicitud de tarea.
En algunas formas de realización del sistema de gestión de tareas, la cola también puede estar configurada para recibir periódicamente actualizaciones de perfiles de estado y/o actualizaciones de perfiles de configuración para el robot móvil seleccionado, así como para cada robot móvil de la flota. Además, en formas de realización específicas del sistema de gestión de tareas, el gestor de colas podría recibir un primer trayecto planificado que el robot móvil seleccionado planea usar para desplazarse hasta la ubicación de tarea especificada y un segundo trayecto planificado que un segundo robot móvil de la flota planea usar. El gestor de colas podría entonces determinar si el primer trayecto planificado interseca el segundo trayecto planificado y si selecciona un robot móvil diferente para gestionar la solicitud de tarea.
En formas de realización específicas del sistema de gestión de tareas, el gestor de colas podría recibir una señal que indica que no hay ningún robot móvil en la flota disponible para gestionar la solicitud de tarea y, en ese caso, retrasar automáticamente la selección de un robot móvil de la flota para gestionar la solicitud de tarea hasta que esté disponible un robot móvil de la flota. Además, en formas de realización específicas del procedimiento, el gestor de colas podría recibir una señal que indica que el robot móvil seleccionado no pudo gestionar la solicitud de tarea y, en ese caso, seleccionar automáticamente un robot móvil diferente de la flota para gestionar la solicitud de tarea en función del perfil de estado y del perfil de configuración almacenados en la memoria para el robot móvil diferente.
En otro aspecto de la presente invención, se proporciona un procedimiento para procesar solicitudes de tarea en un sistema de gestión de tareas en un entorno físico. La primera etapa del procedimiento comprende la etapa de almacenar en una memoria un mapa que define un plano de planta para el entorno físico, una ubicación de tarea virtual con respecto al plano de planta, donde la ubicación de tarea virtual representa una ubicación de tarea real en el entorno físico, y asociar una o más operaciones de tarea virtual a la ubicación de tarea virtual, donde cada operación de tarea virtual representa una operación de tarea real en el entorno físico. A continuación, el procedimiento almacena en la memoria un perfil de estado y un perfil de configuración para cada robot móvil de la flota, y recibe una solicitud de tarea por parte del gestor de colas, donde la solicitud de tarea comprende una operación de tarea especificada, una ubicación de tarea especificada, o ambas. En la siguiente etapa del procedimiento, el gestor de colas selecciona automáticamente un robot móvil de la flota para gestionar la solicitud de tarea recibida en función de un perfil de estado y un perfil de configuración almacenados en la memoria para el robot móvil seleccionado. Y finalmente, en la última etapa, se utiliza una interfaz de red para transmitir automáticamente una instrucción de comando al robot móvil seleccionado para hacer que el robot móvil seleccionado se desplace automáticamente hasta la ubicación de tarea real de acuerdo con el plano de planta, realice automáticamente la operación de tarea real, o tanto se desplace hasta la ubicación de tarea real como realice la operación de tarea real.
En aún otro aspecto de la presente invención, se proporciona un medio de almacenamiento no transitorio legible por ordenador, tal como un disco duro, un dispositivo de memoria flash, un CDROM u otro dispositivo de almacenamiento de memoria, donde el medio de almacenamiento tiene un programa ejecutable para procesar solicitudes de tarea en un entorno físico que comprende una flota de robots móviles. El programa ejecutable incluye un conjunto de instrucciones de programa que, cuando son ejecutadas por uno o más microprocesadores en un sistema informático, harán que los microprocesadores: (a) almacenen en un dispositivo de memoria del sistema informático un mapa que
(i) define un plano de planta correspondiente al entorno físico, (ii) definan una ubicación de tarea virtual con respecto al plano de planta, donde la ubicación de tarea virtual representa una ubicación de tarea real en el entorno físico, y (iii) asocien una operación de tarea virtual a la ubicación de tarea virtual, donde la operación de tarea virtual representa una operación de tarea real en el entorno físico. Las instrucciones de programa se disponen además para hacer que el sistema informático reciba una solicitud de tarea, donde la solicitud de tarea incluye la operación de tarea virtual en el mapa, la ubicación de tarea virtual en el mapa, o ambas cosas. Por tanto, las instrucciones de programa harán que el sistema informático: seleccione automáticamente un robot móvil de la flota para gestionar la solicitud de tarea recibida; determine automáticamente la ubicación de tarea real en función del mapa y la operación de tarea virtual si la solicitud de tarea no incluye la ubicación de tarea virtual; determine automáticamente la operación de tarea real en función del mapa y la ubicación de tarea virtual si la solicitud de tarea no incluye la operación de tarea virtual; y transmita uno o más comandos del sistema informático al robot móvil seleccionado para hacer que el robot móvil seleccionado (i) se desplace automáticamente hasta la ubicación de tarea real representada por la ubicación de tarea virtual, (ii) ejecute automáticamente la operación de tarea real representada por la operación de tarea virtual, o (iii) lleve a cabo automáticamente ambas etapas de desplazamiento hasta la ubicación de tarea real y ejecución de la operación de tarea real.
Breve descripción de las figuras
Los dibujos adjuntos, que se incorporan en la memoria descriptiva y forman parte de la misma, ilustran formas de realización preferidas de la invención y, junto con la descripción, sirven para explicar los principios de la presente invención. En los dibujos, números de referencia similares indican elementos idénticos o funcionalmente similares.
La FIG. 1 muestra un diagrama que ilustra un ejemplo de un entorno físico en el que un sistema de gestión de tareas de la presente invención se puede implantar de manera beneficiosa para recibir, gestionar, procesar y asignar solicitudes de tarea entrantes, donde el entorno físico incluye una flota de robots móviles para gestionar las solicitudes de tarea entrantes.
La FIG. 2 muestra un diagrama de bloques de alto nivel que ilustra los principales componentes funcionales de un sistema de gestión de tareas configurado para funcionar, de acuerdo con una forma de realización ejemplar de la presente invención, dentro de un sistema de automatización de fábrica que incluye una flota de robots móviles.
La FIG. 3 ilustra, a modo de ejemplo, parte del contenido de datos de un archivo de mapa que define un plano de planta para el entorno físico. El archivo de mapa se almacena en la memoria del robot móvil de acuerdo con formas de realización de la invención.
La FIG. 4 muestra una representación gráfica del archivo de mapa ilustrado en la FIG. 3.
Las FIGS. 5 y 6 muestran formas de realización ejemplares de robots móviles configurados para funcionar de acuerdo con la presente invención
La FIG. 7 contiene un diagrama de bloques de alto nivel que ilustra, a modo de ejemplo no limitativo, algunos de los componentes físicos y lógicos primarios en un robot móvil ejemplar configurado para funcionar de acuerdo con formas de realización de la presente invención.
Las FIGS. 8 - 12 muestran diagramas de bloques de alto nivel que ilustran la disposición y conectividad de los principales componentes físicos del entorno físico automatizado mostrado en la FIG. 1.
Las FIGS. 13 y 14 muestran diagramas de flujo que ilustran algoritmos implementados por ordenador ejemplares para priorizar nuevas solicitudes de tarea y enviar solicitudes de tarea en cola, respectivamente, mediante un sistema de gestión de tareas que funciona de acuerdo con formas de realización de la presente invención.
La FIG. 15 muestra un diagrama de flujo que ilustra un algoritmo ejemplar implementado por ordenador que los robots móviles de la flota pueden utilizar para cargar sus baterías y gestionar asignaciones de tareas delegadas por el sistema de gestión de tareas en respuesta a solicitudes de tarea recibidas.
Descripción detallada de formas de realización ejemplares de la invención
Como se indicó anteriormente, los sistemas de gestión de tareas que funcionan de acuerdo con formas de realización de la presente invención son capaces de recibir solicitudes de tarea desde múltiples fuentes, que incluyen, sin limitación:
• Otros sistemas de automatización enviados directamente al gestor de colas;
• Botones de llamada ubicados en toda la instalación;
• Dispositivos de llamada basados en software, tales como una aplicación que se ejecuta en un dispositivo de escritorio, un dispositivo portátil o un dispositivo manual, ubicados en toda la instalación o en ubicaciones remotas;
• Dispositivos de entrada/salida montados a bordo de cada robot móvil (es decir, una pantalla táctil, botones pulsadores); y
• Robots móviles de la flota.
El sistema de gestión de tareas prioriza las solicitudes de transporte, de modo que algunas solicitudes se puedan atender antes que otras. El sistema de gestión de tareas también está configurado para aceptar y poner en cola una variedad de solicitudes entrantes para los robots móviles de la flota, incluidas solicitudes que hacen que un robot móvil de la flota:
• Informe a una sola ubicación
• Informe a una sola ubicación con un destino de entrega predeterminado
• Informe a una sola ubicación con un destino de entrega desconocido y haga que la entrega se indique después de su llegada
• Informe a una sola ubicación con un destino de entrega desconocido y haga que se indiquen múltiples entregas después de su llegada
• Informe a una sola ubicación con un destino de entrega desconocido y haga que se indiquen múltiples entregas después de su llegada. Durante la entrega, se pueden añadir nuevos destinos al itinerario del robot
• Ejecute una ruta aleatoria o definida para buscar artículos que recoger y ejecute una serie de entregas
• En cualquier momento, añada destinos adicionales a su itinerario
• Cancele un destino asignado previamente
Las solicitudes de tarea en cola se pueden asignar a los robots móviles de manera eficiente en función de los estados actuales y las configuraciones actuales de los robots móviles. Los estados y configuraciones que se pueden utilizar para determinar la idoneidad de un robot particular para una tarea particular pueden incluir, por ejemplo:
• Proximidad al lugar de recogida
• Nivel de carga de batería en el vehículo
• Tiempo de inactividad del vehículo
• Tiempo estimado de llegada (teniendo en cuenta el tráfico)
• Capacidad de carga
• Altura y/o ancho del robot móvil
• Capacidad para atravesar pendientes
• Capacidad de evitar obstáculos
• Capacidad de agarre
Las formas de realización preferidas del sistema de gestión de tareas incluyen un módulo de optimización configurado para optimizar el manejo de la cola para reducir los tiempos de respuesta y los tiempos de desplazamiento. Si un robot en la flota está gestionando una solicitud de recogida y se recibe una nueva solicitud, pero no es justo la siguiente, entonces las formas de realización de la presente invención pueden optar por procesar la solicitud fuera de orden porque un robot diferente ya está cerca del punto de recogida. En comparación con los sistemas de transporte de fábrica convencionales, las formas de realización de la presente invención proporcionan una estructura simplificada y un conjunto de reglas que, sin embargo, es capaz de gestionar una amplia variedad de solicitudes complejas de recogida, entrega y planificación.
En algunas formas de realización, se puede lograr una estructura y gestión más simplificadas y eficientes mediante el uso de módulos de procesamiento de solicitudes que cumplan con las siguientes reglas o enfoques. Sin embargo, estas reglas y enfoques son opcionales y no necesariamente requeridos en todas las formas de realización.
• Todas las solicitudes, ya sean enviadas directamente a un robot móvil o enviadas directamente al gestor de colas, son recibidas en última instancia por el gestor de colas. Esto permite que el sistema gestione todas las solicitudes en una sola ubicación.
• Los elementos de cola basados en la recogida, entrega y ruta se pueden rastrear en una sola cola. De nuevo, esto facilita la gestión y el seguimiento de los artículos transportados, así como de los robots.
• Las solicitudes no tienen que especificar qué tipo de robot móvil se requiere. Esta determinación se realiza en el momento de la asignación por el sistema de gestión de tareas y utiliza las operaciones de tarea asociadas a la operación de tarea para determinar qué tipo de vehículo se necesita. Este enfoque simplifica el formato de las solicitudes de cola y permite que todas las solicitudes estén en un formato común.
En formas de realización preferidas, las asignaciones de solicitudes de tarea en cola se manejan mediante una rutina de gestión de colas que es independiente del entorno de trabajo o la industria. Esto permite una fácil modificación y mejora de la rutina de gestión de colas sin tener que hacer una prueba de regresión en cada rutina específica de la aplicación. Los robots móviles de la flota pueden configurarse para recibir comandos y asignaciones del sistema de gestión de tareas y enviar actualizaciones al sistema de gestión de tareas a través de una variedad de diferentes procedimientos, protocolos o normas de comunicación de datos, que incluyen, sin limitación, las normas 802.11, 802.15.4, banda ancha o LTE, por nombrar algunos.
En un ejemplo de un sistema de gestión de tareas que funciona de acuerdo con determinadas formas de realización de la presente invención, el sistema de gestión de tareas (que también se puede denominar en algunas industrias "sistema de gestión de almacenes" o "sistema de ejecución de fabricación") se utiliza para coordinar y gestionar solicitudes de tarea para tareas asociadas al transporte de materiales y equipos en un entorno físico, tal como una instalación de fabricación, producción, envío o distribución. En este entorno, los robots móviles de la flota pueden configurarse para recoger y entregar automáticamente artículos, productos, material, datos u otra mercancía a diversas ubicaciones y/o estaciones de trabajo (que a veces se denominan "destinos") en la instalación, y también pueden configurarse para interactuar con personas y equipos, si es necesario, mientras dan servicio a esas ubicaciones y/o estaciones de trabajo. Los robots móviles pueden comunicarse e interactuar con personas, por ejemplo, a través de dispositivos de interfaz hombre-máquina, tales como monitores de visualización, altavoces, pantallas táctiles, micrófonos, teclados, botones, impresoras, interruptores, dispositivos de reconocimiento de voz y comando de voz, acoplados a los robots móviles. Los robots móviles también pueden configurarse para comunicarse e interactuar con equipos en la instalación, tales como máquinas, ordenadores, estaciones de trabajo, puertas automáticas, elevadores, transportadores, transmisores y receptores inalámbricos, portadores y revestimientos de materiales, a través de interfaces de comunicación inalámbrica, sensores, accionadores y/o manipuladores acoplados a los robots móviles.
La FIG. 1 muestra un diagrama que ilustra un ejemplo de un entorno físico 100 en el que un sistema de gestión de tareas 110 de la presente invención se puede implantar de manera beneficiosa para recibir, gestionar, procesar y asignar solicitudes de tarea entrantes asociadas con el uso de una flota de robots móviles 102a - 102e para transportar elementos empaquetados 103a-103l a diversas ubicaciones de tarea en una empresa, tal como una instalación de fabricación, producción, envío o distribución. En el ejemplo ilustrado, el entorno físico 100 puede ser una planta de fábrica 101, donde productos terminados se empaquetan en una estación de empaquetado 104 (un ejemplo de una "ubicación de tarea" tal como se usa ese término en el contexto de esta divulgación) y, posteriormente, se transportan a un área de envío 164 (otro ejemplo de una ubicación de tarea) mediante robots móviles 102a - 102e de la flota. Una multitud de otros tipos de entornos físicos o empresas, que incluyen, sin limitación, centros de procesamiento de pedidos, instalaciones de fabricación, laboratorios, hospitales, edificios de oficinas, instalaciones educativas, etc., también podrían emplear sistemas de gestión de tareas de la presente invención para recibir, gestionar y distribuir solicitudes de tarea para trasladar elementos, datos o materiales.
Como se muestra en la FIG. 1, el entorno físico 100 incluye una planta de fábrica 101 organizada en una pluralidad de ubicaciones de tarea distintas, que incluyen una estación de empaquetado 104, una estación de trabajo supervisora 160, una sala de servidores 162, un área de envío 164 y un área de carga 166. El sistema de gestión de tareas 110 está ubicado, en este caso, en la sala de servidores 162, aunque podría ubicarse en otra parte de la planta de fábrica 101 o en otra parte del entorno físico 100. El sistema de gestión de tareas 110 podría ubicarse incluso fuera del entorno físico 100, tal como en la Nube de Internet 173, siempre y cuando esté acoplado comunicativamente a la red de área local (LAN) Ethernet 172 del entorno físico 100 de modo que se habilite la comunicación con los robots móviles 102a - 102e, así como con otros dispositivos de la LAN 172. En el ejemplo ilustrado en la FIG. 1, los robots móviles 102a -102e están configurados para transportar elementos empaquetados 103a - 103l entre las diversas ubicaciones de tarea en la planta de fábrica 101 en respuesta a asignaciones y comandos de alto nivel generados y transmitidos a los robots móviles 102a - 102e desde el sistema de gestión de tareas 110. Como se muestra en la FIG. 1, el sistema de gestión de tareas 110 está configurado para transmitir los comandos de alto nivel a los robots móviles y recibir solicitudes de tarea e informes de estado desde los robots móviles 102a - 102e, a través de una red de área local (LAN) Ethernet 172 que comprende una conexión TCP/IP 174 y conexiones Wi-Fi 168a-168c.
El sistema de gestión de tareas 110 incluye un dispositivo de interfaz de red (no mostrado en la FIG. 1) configurado para recibir las solicitudes de tarea desde un sistema de solicitud de tareas 108, que, en este ejemplo, también está ubicado en la sala de servidores 162 y conectado al dispositivo de interfaz de red en el sistema de gestión de tareas 110 mediante una conexión TCP/IP 111. El sistema de solicitud de tareas 108 puede comprender, por ejemplo, un sistema de gestión de almacenes ("WMS"), un sistema de ejecución de fabricación ("MES"), un sistema de procesamiento de pedidos en línea o por correo y/o un sistema de fabricación automatizado, conocidos en la técnica, o cualquier otro tipo de sistema o dispositivo capaz de generar y enviar solicitudes de tarea electrónicas al sistema de gestión de tareas 110. El sistema de solicitud de tareas 108 también puede incluir uno o más dispositivos menos complejos para generar solicitudes de tarea, tal como un ordenador personal, un teléfono inteligente, un dispositivo de entrada/salida, un conjunto de botones de llamada o una interfaz hombre-máquina. Por ejemplo, una báscula 176 ubicada en la estación de empaquetado 104 podría conectarse electrónicamente al sistema de gestión de tareas 110 a través de la LAN Ethernet 172 de modo que se llame automáticamente a un robot móvil 102d de la flota para que acuda a la estación de empaquetado 104 cada vez que el operador de báscula 178 pese un elemento empaquetado 103h. El sistema de gestión de tareas 110 también puede estar configurado para recibir solicitudes de tarea desde
una pluralidad de botones de llamada basados en Ethernet e IEEE 802.11, 118a - 118b, ubicados en la planta de fábrica 101, que están conectados de forma comunicativa a uno o más dispositivos de interfaz de red del sistema de gestión de tareas 110 a través de la LAN Ethernet 172, la conexión TCP/IP 174 y la conexión Wi-Fi 169. Por lo tanto, un empleado de envío 180 que trabaja en el área de envío 164 puede activar el botón de llamada basado en 802.11, 118b, para enviar automáticamente una solicitud de tarea al sistema de gestión de tareas 110 para que un robot móvil 102e de la flota se dirija de forma autónoma al área de envío 164. Los botones de llamada 118a - 118b también pueden implementarse usando el protocolo IEEE 802.15.4, en cuyo caso el botón de llamada se comunicaría con el sistema de gestión de tareas 110 a través de una estación maestra de E/S remota 124 en la red.
En formas de realización preferidas, la flota de robots móviles 102a - 102e comprende uno o más de una variedad de tipos diferentes (heterogéneos) de robots móviles de navegación autónoma configurados para realizar automáticamente una variedad de tareas diferentes en el entorno físico 100. Preferentemente, los robots móviles 102a - 102e son capaces de realizar de forma autónoma todas las funciones de navegación (por ejemplo, localización y planificación de trayectos) necesarias para que los robots móviles 102a - 102e se dirijan automáticamente desde una ubicación de tarea a otra ubicación de tarea en la planta de fábrica 101 y eviten automáticamente, mientras tanto, colisionar con obstáculos estacionarios y/o no estacionarios, incluidos trabajadores humanos de planta de fábrica 170. Los robots móviles 102a - 102e también pueden estar equipados con dispositivos, inteligencia y equipos de entrada/salida adicionales, tales como interfaces hombre-máquina a bordo, lectores RFID, sensores de supervisión ambiental, cámaras y accionadores, para comunicarse e interactuar con equipos y trabajadores humanos de planta de fábrica 170 y llevar a cabo solicitudes de tarea recibidas desde el sistema de gestión de tareas 110. Ejemplos de robots móviles adecuados para su uso con la presente invención se analizan y describen posteriormente de manera mucho más detallada con referencia a las FIGS. 5, 6 y 7.
La FIG. 2 muestra un diagrama de bloques de alto nivel que ilustra los principales componentes funcionales de un sistema de automatización de fábrica 200 y un sistema de gestión de tareas 205 configurados para funcionar de acuerdo con una forma de realización ejemplar de la presente invención. Como se muestra en la FIG. 2, el sistema de automatización de fábrica 200 incluye el sistema de gestión de tareas 205, que está acoplado comunicativamente a un sistema de solicitud de tareas 260, un terminal operativo JMS 270 y una flota 290 de robots móviles de navegación autónoma 295a - 295n. El sistema de automatización de fábrica 200 también puede incluir una variedad de otros dispositivos (no mostrados), tales como ordenadores personales, estaciones de trabajo, herramientas de fabricación y procesamiento de pedidos, configurados para comunicarse con el sistema de gestión de tareas 205 para facilitar el procesamiento y la gestión automatizados de solicitudes de tarea generadas de manera mecánica y electrónica. Como se indicó anteriormente, el sistema de gestión de tareas 205 puede estar configurado para comunicarse con el sistema de solicitud de tareas 260 y la flota 290 de robots móviles de navegación autónoma 295a - 295n a través de una pluralidad de conexiones de red de área local, que incluyen, sin limitación, conexiones TCP/IP, 802.11 y 802.15.4.
El sistema de solicitud de tareas 260 puede incluir uno o más dispositivos para generar solicitudes de tarea específicas y enviar esas solicitudes de tarea al sistema de gestión de tareas 205. Por ejemplo, el sistema de solicitud de tareas 260 podría incluir un sistema de gestión de almacenes ("WMS") 262 que genera y envía solicitudes de tarea al sistema de gestión de tareas 205; uno o más ordenadores (por ejemplo, ordenadores personales o "PC") 263; uno o más botones de llamada 265, que pueden estar ubicados, por ejemplo, en los escritorios de los usuarios, en determinadas ubicaciones de tarea o acoplados a paredes en el entorno físico; una o más aplicaciones que residen en varios teléfonos inteligentes 266 u otros dispositivos informáticos móviles de los usuarios (por ejemplo, ordenadores portátiles, tabletas electrónicas, unidades de solicitud de tarea portátiles dedicadas, etc.); dispositivos de interfaz hombre-máquina ("HMI") 264, tales como dispositivos de entrada con panel táctil basados en LCD; y dispositivos de entrada/salida ("E/S") 267, tales como, por ejemplo, escáneres, lectores, sensores, etc. utilizados en conexión con procesos automatizados. El WMS 262, los ordenadores personales 263, la HMI 264, los botones de llamada 265, los teléfonos inteligentes 266 y los dispositivos de E/S 267 pueden estar ubicados en la planta de fábrica o en cualquier otra parte del entorno físico en el que el sistema de gestión de tareas 205 de la presente invención está configurado para funcionar, siempre y cuando los dispositivos estén acoplados comunicativamente al sistema de gestión de tareas 205 a través de enlaces y conexiones en el sistema de automatización de fábrica 200.
Además, el sistema de automatización de fábrica 200 incluye, de manera adecuada, uno o más terminales operativos JMS 270 configurados para comunicarse con el sistema de gestión de tareas 205. Este terminal operativo 270 ejecuta una variedad de programas de configuración y ajustes, mediante los cuales un supervisor u otro operario humano puede establecer, modificar y gestionar mapas, listas, reglas y preferencias en el sistema de gestión de tareas 205, generar nuevas solicitudes de tarea para el sistema de gestión de tareas 205, así como supervisar el progreso y los estados de la flota 290 de robots móviles 295a - 295n a medida que se llevan a cabo operaciones de tarea asociadas a las solicitudes de tarea. Por lo tanto, el terminal operativo JMS 270 incluye preferentemente al menos un programa de configuración de robot 272 para establecer y gestionar configuraciones de robot, un programa de configuración de mapa 274 para crear y/o modificar el mapa 208 (descrito con más detalle posteriormente), un programa de supervisión de robots 276 mediante el cual el operador puede "observar" los robots a medida que se desplazan por la planta de la fábrica, y un programa solicitante de tareas 278 mediante el cual el operario puede crear nuevas solicitudes de tarea. En formas de realización preferidas, el terminal operativo JMS 270 utiliza programas informáticos ejecutables por PC, tales como MobilePlanner™, disponibles en Adept Technologies, Inc., de Pleasanton, California, EE. UU., para crear mapas y planos de planta, para definir y establecer ubicaciones de tarea, operaciones de tarea, zonas y sectores en
el mapa 208, y para establecer características físicas, capacidades y restricciones de robot en los perfiles de configuración de robot 222. Una vez completada la configuración inicial, otro programa informático, tal como MobileEyes™, también disponible en Adept Technologies, Inc., de Pleasanton, California, EE. UU., se puede usar para supervisar dónde están ubicados todos los robots móviles 295a - 295n durante la operación.
En términos generales, el sistema de gestión de tareas 205 comprende una memoria 202, un microprocesador 204 acoplado a la memoria 202 y un gestor de colas 206 que funciona de forma cooperativa con el microprocesador 204 y la memoria 202 para recibir y procesar solicitudes de tarea mediante la selección y asignación inteligentes de robots móviles de la flota 290 para llevar a cabo operaciones de tarea en respuesta a las solicitudes de tarea recibidas. El sistema de gestión de tareas 205 también incluye diversos programas informáticos 232 o módulos de software; varias listas de reglas y preferencias 252 y uno o más dispositivos de almacenamiento de datos (o bases de datos), almacenados en la memoria 202, que contiene datos e información, descritos con mayor detalle más adelante, que son utilizados por el gestor de colas 206 para coordinar y supervisar el funcionamiento de los diversos robots móviles 295a -295n en el sistema de automatización de fábrica 200. Además, el sistema de gestión de tareas 205 incluye un dispositivo de interfaz de red 230, tal como un adaptador Ethernet cableado o inalámbrico, que proporciona conectividad con otros diversos componentes del sistema de automatización de fábrica 200. Como reconocerán los expertos en la técnica, el sistema de gestión de tareas 205 puede implementarse utilizando cualquier dispositivo informático digital programable de propósito general que incluye, por ejemplo, un ordenador personal, un controlador de lógica programable, un sistema de control distribuido u otro dispositivo informático. El sistema informático puede incluir una unidad central de procesamiento (CPU) o microprocesador, memoria de acceso aleatorio (RAM), almacenamiento secundario no volátil (por ejemplo, un disco duro o dispositivo de memoria flash) y varios tipos de dispositivos de interfaz de red (por ejemplo, tarjetas Ethernet cableadas o inalámbricas y tarjetas de entrada/salida digitales y/o analógicas). El código de programa y las instrucciones de los programas informáticos 232 y los datos del almacenamiento secundario no volátil que comprende la memoria 202 pueden cargarse en la RAM y proporcionarse al microprocesador 204 para su ejecución. Los programas informáticos 232 pueden generar resultados para su visualización, salida, transmisión o almacenamiento. Los programas informáticos 232, que pueden comprender uno o más módulos de software, contienen instrucciones ejecutables por ordenador que hacen que el microprocesador 204 realice una variedad de tareas específicas necesarias para recibir diversas solicitudes de tarea, coordinar la ejecución de las diversas tareas solicitadas y enviar robots móviles 295a - 295n para llevar a cabo las operaciones de tarea asociadas a las diversas ubicaciones de tarea y solicitudes de tarea. Los programas informáticos 232, el microprocesador 204 y la memoria 202 son flexibles y pueden configurarse para usar una gran variedad de diferentes reglas y preferencias predefinidas 252 establecidas por un operario del sistema a través del terminal operativo JMS 270.
Los programas informáticos 232 del sistema de gestión de tareas 205 incluyen una interfaz de programación de aplicaciones (API) 234, que es, en esencia, una "biblioteca" de llamadas a funciones y subrutinas que permiten que los otros diversos programas o módulos de software del sistema de automatización de fábrica 200 se comuniquen entre sí. Otro programa informático 232 que funciona en el sistema de gestión de tareas 205 es el gestor de colas 206, que selecciona robots móviles particulares de la flota 290 para llevar a cabo solicitudes de tarea, como se describirá con mucho más detalle posteriormente. Con este fin, el gestor de colas 206 comprende un gestor de estado de robot 224 (es decir, un conjunto o módulo de instrucciones de programa ejecutables por ordenador) que supervisan los estados actuales de los robots móviles de la flota 290, un selector de robot 226 que selecciona el robot móvil adecuado para gestionar la solicitud de tarea en función de la solicitud de tarea, las configuraciones y estados de los robots móviles 295a - 295n de la flota 290, y un gestor de robots 228 que transmite señales de comando a la flota 290 de robots móviles 295a - 295n a través de la interfaz de red 230 para hacer que los robots móviles seleccionados se desplacen a las ubicaciones físicas asociadas a las ubicaciones de tarea virtuales de las solicitudes de tarea recibidas y/o lleven a cabo operaciones de tarea físicas asociadas a las operaciones de tarea virtuales en las solicitudes de tarea recibidas.
Preferentemente, los programas informáticos 232 que se ejecutan en el sistema de gestión de tareas 205 también incluyen un módulo de gestión de tráfico 236, que ayuda a controlar el flujo de tráfico dentro del entorno físico para evitar, si es posible, una situación en la que demasiados robots móviles 295a - 295n intentan moverse a través de la misma área en el entorno físico, aumentando así la posibilidad de "atascos de tráfico" de robots móviles. El módulo de gestión de tráfico 236 no traza las rutas de desplazamiento para los robots móviles 295a - 295n. En cambio, normalmente obtiene suficiente información acerca del estado actual, el rumbo actual y las rutas planificadas de cada robot móvil de la flota 290 de robots móviles 295a - 295n, y difunde esta información a través de los enlaces de comunicaciones cableados e inalámbricos usando la interfaz de red 230 para permitir que todos los robots móviles 295a - 295n "sepan" a dónde se dirigen otros robots móviles de la flota 290. Armado con esta información, cada robot móvil 295a - 295n de la flota 290 puede trazar su propio trayecto hacia su ubicación de tarea prevista para evitar acercarse o entrar en contacto con otros robots móviles de la flota 290, evitando así posibles atascos de tráfico.
El módulo de gestión de tráfico 236 también está configurado para usar esta difusión de trayecto para ayudar a los robots móviles 295a - 295n a funcionar juntos en espacios reducidos. Aunque en realidad no planifica trayectos o rutas a través del entorno físico para los robots móviles, el módulo de gestión de tráfico 236 del sistema de gestión de tareas 205 puede estar configurado para determinar qué robots móviles tendrán una prioridad relativamente mayor mientras intenta atravesar las mismas áreas físicas en el entorno físico simultáneamente. Por ejemplo, si dos robots se
desplazan en la misma dirección en un espacio reducido, uno detrás del otro, y el robot móvil situado en posición trasera lleva a cabo una solicitud de tarea que tiene una prioridad mayor que la solicitud de tarea llevada a cabo el robot móvil situado en posición delantera, entonces el módulo de gestión de tráfico 236 incluye preferentemente instrucciones de programa dispuestas para enviar una instrucción de comando al robot móvil situado en posición delantera que hace que el robot móvil situado en posición delantera reduzca su velocidad o se detenga para que el robot móvil situado en posición trasera pueda pasar. Por otro lado, si es importante que el robot móvil situado en posición delantera no se retrase, entonces el módulo de gestión de tráfico 236 puede estar configurado para reducir la prioridad del robot móvil situado en posición trasera, o aumentar la prioridad del robot móvil situado en posición delantera, de modo que el robot móvil situado en posición trasera no intente adelantar al robot móvil situado en posición delantera.
La memoria 202 incluye una o más tablas, listas y/o bases de datos utilizadas por el sistema de gestión de tareas 205 para rastrear solicitudes de tarea, robots móviles y asignaciones de tareas delegadas a los robots móviles. Estas tablas, listas y bases de datos pueden comprender, por ejemplo, una base de datos de listas de robots 240, una base de datos de mapas 208 y una base de datos de solicitudes de taras 242. La base de datos de listas de robots 240 incluye registros de identificación 221, perfiles de configuración de robot 222, perfiles de estado de robot 220 y asignaciones de tareas actuales 223 para cada robot móvil 295a - 295n de la flota 290.
Los robots móviles 295a - 295n de la flota 290 pueden tener diferentes características físicas, que incluyen, por ejemplo, estar equipados con una variedad de diferentes accionadores, cintas transportadoras, manejadores, manipuladores, plataformas de soporte, portadores de carga útil, remolques o cajas. Los perfiles de configuración de robot 222 rastrean las características físicas actuales de cada robot móvil de la flota 290, lo que incluye, por ejemplo, cualquier equipo acoplado al robot móvil, así como cualquier restricción o capacidad asociada al robot móvil o al equipo acoplado. Por lo tanto, el perfil de configuración del robot 222 para un robot dado puede estar configurado para comprobar, por ejemplo, si el robot, tal como está configurado y equipado actualmente, es apto para el manejo de materiales, elevación de materiales, transporte de materiales, manipulación, porte, medición, detección, bombeo, pulverización, aspiración, perforación, grabación de vídeo, grabación de sonido, producción de sonido, navegación, entrada de datos, salida de datos, comunicación de datos, impresión, visualización, correlación de planos de planta, absorción de energía o producción de energía. El perfil de configuración de robot 222 también se puede utilizar para realizar un seguimiento de determinadas limitaciones o restricciones asociadas a un robot móvil de la flota, tal como una carga útil máxima, una carga útil mínima, una velocidad de desplazamiento máxima, una velocidad de desplazamiento mínima, una altura máxima, una altura mínima, una restricción de ubicación, una restricción de zona, una operación prohibida, una operación permitida y/o un requisito de espacio libre mínimo. En formas de realización preferidas, el gestor de colas 206 en el sistema de gestión de tareas 205 comprende instrucciones de programa ejecutables en el microprocesador 204 que, cuando son ejecutadas por el microprocesador 204, hacen que el microprocesador seleccione un robot móvil de la flota 290 para gestionar cada solicitud de tarea en función, al menos en parte, de si la información almacenada en los perfiles de configuración de robot 222 indica que el robot móvil seleccionado tiene el equipo y/o configuración adecuados para gestionar la solicitud de tarea.
Los perfiles de estado de robot 220 comprueban los estados actuales de los robots móviles 295a - 295n de la flota 290 de modo que cuando se asigna una tarea a un robot móvil seleccionado, el robot móvil seleccionado puede permanecer en contacto con el sistema de gestión de tareas 205, a través del dispositivo de interfaz de red 230 y el API 234, de modo que el robot móvil puede proporcionar al sistema de gestión de tareas 205 actualizaciones de estado acerca del progreso y la finalización de esa tarea. Por ejemplo, si alguna mercancía está cargada en el robot móvil, entonces el robot móvil puede transmitir una actualización de estado al sistema de gestión de tareas 205 que indica que el área de carga del robot móvil contiene una mercancía. Esta actualización de estado se almacenaría en el perfil de estado de robot 220 para el robot móvil y sería utilizada por el gestor de colas 206, si es necesario, para evitar que el gestor de colas 206 asigne otra tarea al robot móvil que requiera que el robot móvil tenga un área de carga vacía. Cuando el robot móvil finaliza la tarea al descargar el área de carga, envía otra actualización de estado al sistema de gestión de tareas 205 para que se almacene en el perfil de estado 220 del robot móvil, donde el gestor de colas 206 puede confiar en el mismo cuando el gestor de colas 206 necesita seleccionar otro robot móvil para gestionar otra solicitud de tarea entrante. Además del estado del área de carga de cada robot móvil, el perfil de estado de robot 220 de la base de datos de listas de robots 240 se puede utilizar para rastrear y proporcionar información de estado actualizada acerca de otros muchos estados importantes asociados al robot móvil, que incluyen, por ejemplo, el número de identificación, posición, rumbo, velocidad actual, tarea actual, estado de tarea actual, ubicación de tarea actual, proximidad a la ubicación de tarea actual, trayecto de destino de tarea actual, tiempo estimado de llegada, tiempo estimado de salida, tiempo estimado de finalización de tarea, longitud de tiempo en estado de inactividad, nivel de rendimiento, nivel de seguridad, nivel de carga de batería, estado de carga útil, condición de error de carga útil y capacidad de carga restante del robot móvil. En formas de realización preferidas, el gestor de colas 206 en el sistema de gestión de tareas 205 comprende instrucciones de programa ejecutables en el microprocesador 204 que, cuando son ejecutadas por el microprocesador 204, hacen que el microprocesador seleccione un robot móvil de la flota 290 para gestionar cada solicitud de tarea en función, al menos en parte, de si la información almacenada en los perfiles de estado de robot 220 indica que el estado actual del robot móvil seleccionado es compatible con la solicitud de tarea.
La base de datos de solicitudes de tarea 242 realiza un seguimiento de información acerca de las solicitudes de tarea actuales, que incluyen, por ejemplo, ubicaciones de solicitud de tarea actuales 244, operaciones de solicitud de tarea
actuales 246, tipos de solicitud de tarea actuales 248 y asignaciones de robot actuales 250 para cada solicitud de tarea. Por lo tanto, la base de datos de solicitudes de tarea 242 identifica todas las diversas solicitudes de tarea que se han recibido, por ejemplo, a través de un número de código de solicitud de tarea, y realiza un seguimiento del estado actual de cada una de esas tareas. La información de estado para cada solicitud de tarea podría incluir, por ejemplo, si una solicitud de tarea dada ha sido asignada a un robot móvil y, de ser así, el robot al que se ha asignado; cuál es el subestado de la tarea; etc. En cuanto al estado o subestado de la tarea, podría incluir estados como "pendiente", que significa que la solicitud de tarea aún no ha sido asignada a un robot; "en curso", que significa que la solicitud de tarea ha sido asignada a un robot y el robot la está ejecutando; etc. Además, dependiendo de la naturaleza de la solicitud de tarea (por ejemplo, si un robot simplemente necesita transportar un artículo a una ubicación dada para que alguien use el artículo o si el robot realmente necesita realizar alguna tarea adicional (tal como como perforar o cortar)), el estado podría incluir identificadores de subestado más específicos, tales como "en ruta" o "desplazándose"; "en destino"; "realizando una función"; o "completado". La información de tipos de solicitud de tarea 248 puede incluir, por ejemplo, si la solicitud de tarea es una solicitud de "recogida", una solicitud de "entrega" o una solicitud de "recogida y entrega". Por lo tanto, a medida que el sistema de gestión de tareas 205 recibe las diversas solicitudes de tarea desde el sistema de solicitud de tareas 260, las solicitudes de tarea se añaden a la base de datos de solicitudes de tarea 242, y a medida que las solicitudes de tarea se asignan a varios robots, se utilizan registros de la base de datos de solicitudes de tarea 242 y de la base de datos de listas de robots 240 para realizar un seguimiento de esta información. También puede ser deseable registrar en la memoria datos históricos de solicitudes de tarea y eventos 254, tal como cuándo se recibió una solicitud de tarea, cuándo se asignó a un robot móvil particular y cuándo se completó la solicitud de tarea, con el fin de evaluar el funcionamiento y solucionar problemas del sistema.
El mapa 208 almacenado en la memoria 202 define un plano de planta 210 para el entorno físico. El mapa 208 puede ser creado y almacenado en la memoria 202 por el gestor de colas 206, por otro programa de aplicación que se ejecuta en el sistema de gestión de tareas 205, o un programa de configuración de mapas 274 que puede ser invocado y ejecutado, por ejemplo, en el terminal operativo JMS 270 por un operario humano. La FIG. 3 muestra un ejemplo del contenido de datos de un archivo informático que comprende el mapa 208. La FIG. 4 muestra una representación gráfica del mapa 208. En formas de realización preferidas, el mapa 208 también define un conjunto de zonas configurables por operario 212 en el entorno físico, que se pueden utilizar para controlar dónde los robots móviles 295a - 295n de la flota 290 pueden y no pueden ir en el entorno físico representado por el plano de planta 210, y opcionalmente imponen ciertas restricciones operativas a esos robots móviles. Por ejemplo, el mapa 208 podría definir una zona "PROHIBIDA" en una sección del plano de planta 210 que hará que un sistema de navegación automática que se ejecuta a bordo de los robots móviles siempre trace un rumbo alrededor de esa zona en lugar de atravesarla. De manera similar, el mapa 208 podría incluir una zona "UNIDIRECCIONAL" para una parte del plano de planta 210 que hace que los sistemas de navegación a bordo de los robots móviles siempre se desplacen a través de esa zona en la misma dirección. El mapa 208 también puede incluir información de coordenadas acerca de otros obstáculos estacionarios que los robots móviles deben evitar, tales como muebles y maquinaria.
En formas de realización preferidas, el mapa 208 también define un conjunto de una o más ubicaciones de tarea virtuales 216 con respecto al plano de planta 210, donde cada ubicación de tarea virtual representa una ubicación de tarea real en el entorno físico. Para al menos algunas de las ubicaciones de tarea virtuales 216 del plano de planta 210, el mapa 208 también define un conjunto de una o más operaciones de tarea virtuales 218 que se realizarán automáticamente en esa ubicación de tarea virtual, donde cada operación de tarea virtual representa una operación de tarea real que se realizará en el entorno físico. Las ubicaciones de tarea y las operaciones de tarea en el mapa se denominan ubicaciones de tarea "virtuales" y operaciones de tarea "virtuales" porque se definen con respecto al mapa 208 y el plano de planta 210, que a su vez son representaciones abstractas del entorno físico real. Sin embargo, se entiende que los robots móviles 295a - 295n se desplazan y encuentran sus destinos previstos en el entorno físico haciendo referencia al mapa 208 y al plano de planta 210. Por lo tanto, una ubicación de tarea virtual se puede considerar como un "lugar" designado, en el plano de planta definido del mapa, que representa un "lugar" designado correspondiente en el entorno físico representado por el plano de planta del mapa. Del mismo modo, una operación de tarea virtual puede considerarse una operación designada en los datos de mapa, que representa una operación designada correspondiente en el mundo real del entorno físico, operación designada que puede ser realizada por uno o más de los robots móviles 295a - 295n de la flota 290. El mapa 208 puede contener, por ejemplo, datos que definen dónde está una ubicación de tarea particular en términos de coordenadas que delinean el plano de planta 210, así como ciertas operaciones de tarea 218 que deben llevarse a cabo automáticamente al llegar a esa ubicación de tarea particular.
En respuesta a la recepción de una asignación de tarea desde el sistema de gestión de tareas 205, los sistemas de navegación a bordo de los robots móviles 295a - 295n pueden configurarse para usar una copia del mapa 208, una copia del plano de planta 210 y las coordenadas del plano de planta 210 para dirigir el robot móvil hacia un conjunto de coordenadas del plano de planta 210, tal como se define en el mapa 208, provocando así que el robot móvil se desplace por sí mismo hasta una ubicación de tarea real en el mundo real del entorno físico. Así, por ejemplo, si el mapa 208 define una ubicación de tarea virtual denominada "Área de empaquetado", que representa un área de empaquetado real en el mundo real del entorno físico donde tiene lugar el empaquetado, y el mapa 208 también identifica, en términos de coordenadas de plano de planta, dónde está ubicada el "Área de empaquetado" en el plano de planta 210, entonces los sistemas de navegación a bordo en la flota 290 de robots móviles 295a - 295n están configurados para usar copias del mapa 208, copias del plano de planta 210 y las coordenadas para desplazarse de
forma automática y autónoma al área de empaquetado concreta del mundo real representada por el área de empaquetado virtual definida por el mapa 208.
En otro ejemplo, el sistema de gestión de tareas 205 puede enviar una señal de comando a un robot móvil de la flota 290 para hacer que el robot móvil realice una determinada operación de tarea definida (virtual), tal como "Cargar mercancía", sin identificar, en la propia señal de comando, ninguna ubicación de tarea virtual particular donde se debería realizar la operación de tarea "Cargar mercancía". Pero el mapa 208 puede tener una entrada para la operación "Cargar mercancía", que asocia la operación "Cargar mercancía" a una ubicación de tarea virtual en el mapa 208, donde la ubicación de tarea puede denominarse, por ejemplo, "Almacenamiento de mercancía." Las copias del mapa 208, y todas sus ubicaciones de tarea virtuales y operaciones de tareas virtuales asociadas, se descargan en las memorias de los robots móviles 295a - 295n. Como resultado, los robots móviles 295a - 295n conocen la asociación entre la operación de tarea "Cargar mercancía" y la ubicación de tarea "Almacenamiento de mercancía". Conocer la asociación permite que los sistemas de navegación a bordo de los robots móviles 295a - 295n deduzcan la(s) ubicación(es) de tareas reales para llevar a cabo el comando para realizar la operación "Cargar mercancía".
De manera similar, si el sistema de gestión de tareas 205 envía un comando a un robot móvil de la flota 290 para realizar la operación "Cargar batería", el sistema de navegación a bordo del robot móvil usará una copia del mapa 208 para obtener las ubicaciones actuales de las estaciones de carga de batería con respecto al plano de planta 210, así como la disponibilidad actual de las estaciones de carga de batería cercanas, y en función de esta información, dirigirá automáticamente el robot móvil a la estación de carga de batería más cercana que no esté siendo utilizada actualmente por otro robot móvil.
El mapa 208 también puede dictaminar a través de sus definiciones que ciertas operaciones de tareas virtuales 218 se producirán en ciertas ubicaciones de tarea virtuales 216. En este caso, cuando el sistema de gestión de tareas 205 envía un comando a un robot móvil de la flota 290 que le indica al robot móvil que vaya a una ubicación particular del plano de planta 210, la instrucción de comando no tiene que especificar necesariamente qué operaciones de tarea debe llevar a cabo el robot móvil al llegar ya que el mapa 208 en la memoria 202 del robot móvil ya ha asociado una o más operaciones de tarea 218 a esa ubicación de tarea particular. Por lo tanto, si el sistema de gestión de tareas 205 envía una instrucción de comando a un robot móvil de la flota 290 que especifica una ubicación de tarea virtual, tal como "Ir a la estación de carga de batería n.° 5", sin especificar una operación de tarea virtual que realizar al llegar a la ubicación de tarea virtual especificada, el robot móvil puede estar configurado para iniciar automáticamente la carga de su batería al llegar porque las definiciones y atributos almacenados en el mapa 208 indican que la carga de batería es una de las operaciones de tarea asociadas a la estación de carga de batería n.° 5.
Por lo tanto, utilizando el plano de planta definido 210 del mapa, así como la ubicación de tarea 216 y las operaciones de tarea 218 del mapa 208, los sistemas de gestión de tareas de la presente invención son capaces de generar y enviar a los robots móviles 295a - 295n de la flota 290: (a) solicitudes de tarea que especifican ubicaciones de tarea sin especificar operaciones de tarea, (b) asignaciones de tarea que especifican operaciones de tarea sin especificar ubicaciones de tarea, y (c) asignaciones de tarea que especifican tanto ubicaciones de tarea como operaciones de tarea.
La memoria 202 también contiene perfiles de estado de robot 220 y perfiles de configuración de robot 222 para cada robot móvil 295a - 295n de la flota 290. Normalmente, aunque no necesariamente, los perfiles de configuración de robot 222 serán establecidos en el sistema de gestión de tareas 205 por un operario de sistema que interactúa con un programa de configuración de robot 272 ejecutado en el terminal operativo JMS 270. Cuando el sistema de gestión de tareas 205 recibe una solicitud de tarea que incluye una operación de tarea especificada y/o una ubicación de tarea especificada, el gestor de colas 206 selecciona automáticamente un robot móvil 295a - 295n de la flota 290 para gestionar la solicitud de tarea en función de los perfiles de estado de robot 220 y los perfiles de configuración de robot 222 almacenados en la memoria 202. Por lo tanto, el gestor de colas 206 determina, en función de los datos del perfil de estado de robot 220 o el perfil de configuración de robot 222, por ejemplo, si el robot móvil seleccionado tiene un estado actual y una configuración actual que es compatible con la solicitud de tarea recibida. El gestor de colas 206 genera además una instrucción de comando que, cuando es recibida por el robot móvil seleccionado de la flota 290, hará que el robot móvil seleccionado se desplace automáticamente hasta la ubicación de tarea especificada de acuerdo con el plano de planta 210 definido por el mapa 208 y/o realice automáticamente la operación de tarea especificada de acuerdo con las operaciones de tarea 218 almacenadas en el mapa 208.
Como se indicó anteriormente, el gestor de colas 206 incluye instrucciones de programa para un selector de robot 226, un gestor de robots 228 y un estado de robot 224, que juntos son responsables de procesar las solicitudes de tarea que se están rastreando actualmente en la base de datos de solicitudes de tarea 242 y asignar esas solicitudes de tarea a los robots móviles 295a - 295n adecuados de la flota 290. Ese proceso de selección se puede realizar en función de diversos factores y/o preferencias diferentes, que incluyen los estados actuales y las configuraciones actuales de los robots móviles 295a - 295n de la flota 290. Por lo tanto, por ejemplo, si la solicitud de tarea requiere un robot móvil que tenga una cinta transportadora o un manipulador en la parte superior, entonces el selector de robot 226 y el gestor de robots 228 del gestor de colas 206, de acuerdo con la información obtenida de los perfiles de configuración de robot 222, solo seleccionarán y asignarán un robot móvil que tenga una cinta transportadora o un manipulador. Si la solicitud de tarea también requiere que el robot móvil seleccionado funcione de manera continua
durante un largo período de tiempo, o recorra una distancia relativamente grande para llevar a cabo la solicitud de tarea, entonces el selector de robot 226, el gestor de robots 228 y el gestor de estado de robot 224 del gestor de colas 206, de acuerdo con la información obtenida de los perfiles de estado de robot 220, solo seleccionarán y asignarán un robot móvil que tenga una carga de batería suficiente para llevar a cabo la tarea, evitando así la selección de un robot móvil que podría no ser capaz de completar el trabajo sin detenerse para realizar una carga de batería.
El orden de procesamiento de solicitudes de tarea por parte de los módulos del gestor de colas 206 puede optimizarse de acuerdo con la aplicación particular donde se está utilizando el sistema de gestión de tareas 205 y/o de acuerdo con la preferencia del operario. Por ejemplo, las solicitudes de tarea se podrían gestionar según el orden de "primer en entrar primero en salir" (FIFO), de modo que cada solicitud de tarea se gestione de acuerdo con el orden en que se reciben. Sin embargo, se podrían utilizar otros esquemas de procesamiento, mediante los cuales las solicitudes de tarea se procesan en un orden diferente. Si, por ejemplo, la siguiente solicitud de tarea en llegar a la cola requiere que un robot móvil se envíe a un destino muy distante en el entorno físico para recoger un artículo, entonces el gestor de colas 206 puede estar configurado para asignar de manera productiva y eficiente robots móviles para gestionar primero solicitudes de tarea que llegan posteriormente, porque hacerlo permitirá que un solo robot móvil entregue otros artículos a destinos cercanos mientras el robot móvil está en ruta hacia el destino lejano, permitiendo así que un solo robot móvil gestione múltiples solicitudes de tarea a la vez. Este tipo de optimización de gestión de solicitudes de tarea reside típicamente en los módulos de selector de robot 226 y de gestor de robots 228 del gestor de colas 206. Preferentemente, el gestor de colas 206 también está configurado para poder reasignar un robot móvil que está en medio de la ejecución una solicitud de tarea, en función de una determinación tomada por los módulos de selector de robots 226 y de gestor de estado de robot 224 de que puede ser mejor tener un servicio de robot móvil diferente a la solicitud de tarea asignada previamente.
Las FIGS. 5 y 6 muestran ejemplos de robots móviles de navegación autónoma adecuados para su uso en la flota 290 de robots móviles 295a - 295n gestionados y controlados por el sistema de gestión de tareas 205 de acuerdo con la presente invención. Tal como se muestra mejor en la Figura 5, una forma de realización del robot móvil 500 incluye una base de robot 505 configurada para transportar una carga útil de robot 510. En este ejemplo, la carga útil de robot 510 incluye un accionador de brazo mecánico articulado 515 configurado para identificar, agarrar y elevar bloques funcionales de interfaz de fabricación estándar "SMIF" 520 utilizadas en la fabricación de obleas semiconductoras y en entornos de sala limpia. Como se muestra en la Fig. 6, el robot móvil 600 también comprende una carga útil de robot 610 que tiene un accionador de brazo mecánico articulado 615. El accionador de brazo mecánico articulado 615 está configurado para retirar los bloques funcionales SMIF 620 de una plataforma 623 en la estación de trabajo 625 y colocar los bloques funcionales SMIF 620 en soportes 630 acoplados a la carga útil de robot 610. En formas de realización preferidas, el accionador de brazo mecánico articulado 615 puede comprender un SCARA (brazo de robot articulado de respuesta selectiva) de 4 grados de libertad o un brazo articulado de 6 grados de libertad que está montado en la base de robot 605 del robot móvil 600.
El controlador de base de robot en la base de robot 605 está programado para activar el sistema de navegación a bordo en la base de robot 605 para que el robot móvil 600 lleve los bloques funcionales SMIF 620 directamente a otra ubicación o estación de trabajo sin seguir marcadores, rieles o cables, y sin colisionar con obstáculos estacionarios o no estacionarios. Más particularmente, el sistema de navegación a bordo en la base de robot 605 determina automáticamente, de acuerdo con un mapa almacenado en la base de robot 600, una ruta a la siguiente estación de trabajo. El sistema de navegación a bordo utiliza después el trayecto para desplazar el robot móvil 600 hasta la ubicación de la siguiente estación de trabajo, evitando obstáculos negativos y positivos, así como otros transportadores robóticos, a lo largo del camino.
La FIG. 7 contiene un diagrama de bloques de alto nivel que ilustra, a modo de ejemplo no limitativo, algunos de los componentes físicos y lógicos primarios en un robot móvil 700 ejemplar configurado para funcionar de acuerdo con formas de realización de la presente invención. Tal como se muestra en el diagrama de bloques de la FIG. 7, el robot móvil 700 ejemplar incluye una base de robot 722 y una carga útil de robot 724. La base de robot 722 comprende una variedad de componentes de hardware y software, que incluyen un controlador de base de robot 704, un sistema de navegación a bordo 708, un sistema de locomoción 718, un mapa 710 que define un plano de planta 712, una interfaz de comunicación inalámbrica 702, sensores 706, una interfaz hombre-máquina 714, una interfaz de programación de aplicaciones (API) 716 y un sistema de energía 720.
El controlador de base de robot 704 comprende instrucciones de programa informático ejecutables en un microprocesador (no mostrado) a bordo de la base de robot 722 para iniciar, coordinar y gestionar todas las funciones de automatización asociadas al robot móvil 700, que incluyen, sin limitación, la gestión de asignaciones de tareas, locomoción y navegación automáticas, comunicaciones con otros ordenadores y otros robots, activación de las funciones de carga útil de robot y funciones de control de potencia. El controlador de base de robot 704 tiene un gestor de asignaciones (no mostrado) que realiza un seguimiento de todas las asignaciones y operaciones de tarea del robot. Cuando el robot móvil 700 recibe una asignación de tarea, el controlador de base de robot 704 activa los otros subsistemas del robot móvil 700 para responder a la asignación de tarea. Por lo tanto, el controlador de base de robot 704 genera y distribuye las señales de comando adecuadas que hacen que otros módulos y unidades de procesamiento en el robot móvil 700 comiencen a llevar a cabo la tarea solicitada. Por lo tanto, por ejemplo, cuando el robot móvil 700 recibe una asignación de tarea desde el sistema de gestión de tareas que requiere que el robot
móvil 700 se desplace por sí mismo hasta una determinada ubicación en el entorno físico, es el controlador de base de robot 704 el que genera la señal de comando que hace que el sistema de navegación a bordo 708 comience a desplazar el robot móvil 700 al destino especificado. El controlador de base de robot 704 también proporciona una señal de activación para la carga útil de robot 724, si es necesario, para hacer que la carga útil de robot 724 realice una operación particular en la ubicación de tarea especificada. El controlador de base de robot 704 también gestiona y actualiza el mapa 710 y el plano de planta 712, cuando corresponde, en función de la información actualizada de mapa o de plano de planta recibida desde otros sistemas informáticos u otros robots de la red informática. El controlador de base de robot 704 también recibe información de estado de asignación, si la hubiera, a partir de la carga útil de robot 724 y, si corresponde, transmite la información de estado a un sistema remoto de gestión de tareas (no mostrado), que típicamente delega asignaciones de tareas al robot móvil 700. Normalmente, el controlador de base de robot 704 se comunicará con el sistema de gestión de tareas a través de una interfaz de programación de aplicaciones (API) 716 y una interfaz de comunicaciones inalámbricas 702.
El robot móvil 700 también incluye un mapa 710 que define un plano de planta 712 correspondiente al entorno físico, y también define un conjunto de ubicaciones de tarea en lo que respecta al plano de planta 712. El mapa 710 también asocia una o más operaciones de tarea a una o más de las ubicaciones de tarea del conjunto de ubicaciones de tarea. Por lo tanto, el mapa 710 del robot móvil 700 es sustancialmente una copia del mapa 208 del sistema de gestión de tareas 205. La FIG. 3 muestra un ejemplo del contenido de datos de un archivo informático que comprende el mapa 710. La FIG. 4 muestra una representación gráfica del mapa 710. Cada ubicación de tarea en el plano de planta 712 corresponde a una ubicación real en el entorno físico. Algunas de las ubicaciones de tarea del plano de planta 712 también tendrán asociado un conjunto de una o más operaciones de tarea que el robot móvil 700 llevará a cabo automáticamente después de que el robot móvil 700 llegue a la ubicación real. El controlador de base de robot 704 puede obtener el mapa 710 a partir del sistema remoto de gestión de tareas (no mostrado) o, de manera alternativa, a partir de otro robot móvil o de un terminal operativo independiente para la red (no mostrado). Determinadas operaciones de tarea en el plano de planta 710 pueden tener múltiples ubicaciones en el entorno físico. Sin embargo, se entiende que no todas las operaciones de tarea deben programarse previamente en el mapa 710. También es posible que el controlador de base de robot 704, o el sistema remoto de gestión de tareas, dirija las operaciones de tarea según sea necesario, independientemente de si la operación de tarea está definida o no en el mapa 710.
El sistema de navegación a bordo 708, que funciona bajo el control del controlador de base de robot 704, gestiona todas las funciones de localización, planificación de trayectos, seguimiento de trayecto y evitación de obstáculos para el robot móvil 700. Si el sistema incluye un motor de evitación de obstáculos positivos y negativos para ayudar al robot móvil 700 a evitar que colisione con objetos que pueden estar apoyados en el suelo pero cuya forma no está identificada adecuadamente por el láser de exploración horizontal del robot móvil, y para evitar dirigirse hacia huecos en el suelo, esta funcionalidad está incluida en el sistema de navegación a bordo 708. El sistema de navegación a bordo 708 determina automáticamente la ubicación de tarea para la asignación de tarea en función del mapa y la asignación de tarea. Utilizando los sensores 706, el sistema de navegación a bordo 708 también detecta que al desplazar el robot móvil a lo largo de un trayecto seleccionado desde la posición actual del robot móvil hasta una ubicación real en el entorno físico hará, hará que el robot móvil toque, colisione con o se acerque demasiado a uno o más de los obstáculos estacionarios o no estacionarios del entorno físico. Cuando el sistema de navegación a bordo 708 determina que puede producirse contacto con un obstáculo, puede planificar automáticamente un segundo trayecto hacia la ubicación de tarea deseada, de acuerdo con el mapa, para evitar el contacto. La planificación de trayectos se puede lograr usando una cualquiera de diversas técnicas de planificación de trayectos de robots conocidas en la técnica. Una de estas técnicas de planificación de trayectos se analiza en detalle en el capítulo 7 del libro "Artificial Intelligence and Mobile Robots", Primera Edición, publicado en 1998 por AAAI Press y editado por David Kortenkamp, R. Peter Bonnaso y Robin Murphy. A los efectos de la presente invención, el motor de planificación de trayectos planifica un trayecto que evita todas las ubicaciones que se ha identificado que contienen obstáculos. El sistema de navegación a bordo 708 también puede usar láseres de detección para muestrear objetos en el entorno físico y comparar las muestras con información en el mapa 710. Este proceso se denomina "localización láser" o "localización de Monte Carlo con un láser." Otra técnica conocida, denominada localización de luz (descrita en la patente estadounidense n.° 7.650.013 otorgada a Dietsch et al.), implica usar una cámara para encontrar luces en el techo y después comparar las luces encontradas con las luces identificadas en el mapa 710. Todas estas técnicas diferentes se pueden emplear para ayudar al sistema de navegación a bordo 708 a determinar su posición actual con respecto a la ubicación de tarea.
Después de que el sistema de navegación a bordo 708 determine un segundo trayecto alternativo hacia la ubicación de plano de planta que representa la ubicación de tarea real, funciona en combinación con el sistema de locomoción 718 para desplazar el robot móvil 700 desde su ubicación actual hasta la ubicación de tarea real usando el segundo trayecto. En algunas formas de realización, el sistema de navegación a bordo 708 puede determinar posteriormente que desplazar el robot móvil 700 hasta la ubicación de tarea real a lo largo del segundo trayecto puede hacer que el robot móvil 700 entre en contacto con otro obstáculo estacionario o no estacionario, en cuyo caso el sistema de navegación a bordo 708 crea y utiliza una tercera trayectoria, de acuerdo con el mapa, para evitar el contacto. Por lo tanto, el sistema de navegación a bordo 708 es capaz de generar y cambiar los trayectos de desplazamiento de la ubicación actual del robot móvil y la ubicación en plano de planta (que representa la ubicación de tarea real en el entorno físico) tantas veces como sea necesario, para lograr desplazar el robot móvil 700 hasta la ubicación de tarea real. Por otra parte, si el sistema de navegación a bordo 708 determina, a través de su motor de planificación de
trayecto interno, que no existe un trayecto hacia la ubicación de tarea real, puede estar programado opcionalmente para enviar un mensaje de error al controlador de base de robot 704, que notifica el estado de error a un sistema remoto de gestión de tareas, si corresponde.
La API 716 se puede hacer funcionar con el controlador de base de robot 704 y la interfaz de comunicación inalámbrica 702 para proporcionar información y comandos al controlador de base de robot 704, así como recuperar el estado de asignación de tareas e información de ruta del controlador de base de robot 704. Por ejemplo, si la carga útil de robot 724 necesita enviar información acerca del estado de la carga en el área de carga 740 al sistema de gestión de tareas (no mostrado), la información de carga puede transmitirse desde el controlador de carga útil de robot 736 al controlador de base de robot 704 a través de la API 716. Después, el controlador de base de robot 704 transmitirá la información de carga al sistema remoto de gestión de tareas a través de la misma API 716. En formas de realización preferidas, la API 716 es ARCL o ArInterface, una interfaz de programación de aplicaciones distribuida por Adept Technology, Inc. de Pleasanton, California. Sin embargo, otras API pueden adaptarse y usarse adecuadamente para proporcionar comunicación entre el robot móvil 700 y otros sistemas informáticos.
Los sensores 706 pueden comprender un conjunto de diferentes sensores, tales como escáneres láser, sensores de sonar, parachoques, cámaras, sensores de gas, sensores de humo, sensores de movimiento, etc., y se pueden usar para realizar diversas funciones diferentes. Estos sensores también se pueden utilizar para mitigar el tráfico mediante la redirección del robot móvil 700 cuando se detectan otros robots móviles en el entorno inmediato. Otros elementos en la base de robot incluyen potencia 720, que típicamente incluye una batería y software para gestionar la batería.
El sistema de locomoción 718 incluye hardware y dispositivos electrónicos necesarios para hacer que el robot móvil 700 se mueva, que incluyen, por ejemplo, motores, ruedas, mecanismos de retroalimentación para los motores y ruedas, y codificadores. El sistema de navegación a bordo 708 típicamente "desplaza" el robot móvil 700 mediante el envío de comandos hasta las ruedas y motores a través del sistema de locomoción 718.
La interfaz hombre-máquina, o HMI 714, típicamente incluye hardware y dispositivos electrónicos, tal como botones, interruptores, pantallas táctiles, paneles táctiles, altavoces, así como controladores de software para botones, interruptores, pantallas táctiles, paneles táctiles y altavoces, que permiten que el robot móvil 700 proporcione datos y reciba comandos y otros datos introducidos por operarios humanos.
En referencia ahora a los componentes de la carga útil de robot 724, los sensores de carga 738 proporcionan señales al controlador de carga útil de robot 736 y, posiblemente, directamente al controlador de base de robot 704 mediante la API 716, que permiten que el controlador de carga útil de robot 736 y/o el controlador de base de robot 704 tomen decisiones programáticas acerca de si el robot móvil 700 ha completado una asignación o está disponible para adquirir más carga. La HMI 726 puede incluir botones, interruptores, teclados, pantallas táctiles, etc., o alguna combinación de botones, interruptores, teclados y pantallas táctiles, utilizados para comunicarse con un operario humano. Los operarios humanos pueden, por ejemplo, usar la HMI 726 para introducir nuevas solicitudes de tarea que harían que el robot móvil 700 avanzara hasta una ubicación especificada en el entorno físico seleccionando la ubicación en el mapa interno del robot móvil 710. Para facilitar la selección de una nueva ubicación, el robot móvil 700 puede estar configurado para mostrar ubicaciones, planos de planta, zonas y sectores definidos por el mapa 710 en una HMI 726 que comprende una pantalla de visualización.
Sensores de carga útil 732 pueden incluir, por ejemplo, sensores de temperatura o gas, cámaras, lectores de RFID, sensores ambientales, sensores de detección Ethernet inalámbricos, etc. Los sensores de carga útil 732 se pueden utilizar para proporcionar información acerca del estado de la carga útil de robot 724, el estado de la carga en el área de carga 740, el estado del entorno físico, la proximidad del robot móvil 700 a objetos físicos o alguna combinación de toda esta información.
Los accionadores 730 pueden incluir una amplia gama de dispositivos, que incluyen, sin limitación, accionadores lineales, unidades de visión panorámica e inclinación, brazos mecánicos articulados, cintas transportadoras, robots industriales no móviles, manipuladores, elevadores, taladros, bombas y pulverizadores, o cualquier otro sistema o dispositivo útil para mover, manipular, fijar, examinar, distribuir, recoger, detectar o muestrear sustancias, objetos o materiales en el entorno físico.
La carga útil de robot 724 también puede incluir una interfaz de comunicaciones inalámbricas 734, que envía información a y recibe información desde otros dispositivos o redes. Las aplicaciones de telepresencia, que permiten, por ejemplo, que los médicos vean y hablen con pacientes mediante el uso de robots móviles controlados de forma remota que transportan equipos de grabación de vídeo y audio, pueden utilizar la interfaz de comunicaciones inalámbricas 734, por ejemplo, para transmitir las señales de vídeo y audio desde el robot móvil 700 al médico ubicado de forma remota.
El controlador de carga útil de robot 736 procesa señales de comando y operación que se introducen en la carga útil de robot 724 y, generalmente, controla y coordina todas las funciones realizadas por la carga útil de robot 724. En formas de realización preferidas, el controlador de carga útil de robot 736 también puede cancelar una asignación de tarea. Por ejemplo, si el robot móvil 700 llega a una ubicación de trabajo especificada para recoger un artículo, tal
como un bloque funcional SMIF, y se percata, a través de sensores o tecnología de visión acoplada a la carga útil de robot 724, de que el bloque funcional SMIF no está presente en esa ubicación, entonces el controlador de carga útil de robot 736 puede cancelar la asignación de tarea generando una señal de cancelación de tarea y transmitiéndola al controlador de base de robot 704 en la base de robot 722, junto con una cadena de datos que indica el motivo de la cancelación. El controlador de base de robot 704 típicamente transmite esa señal de cancelación al sistema de gestión de tareas para informar al sistema de gestión de tareas de que el robot móvil 700 está ahora disponible para recibir una nueva asignación de tarea. Cuando se hace con una asignación, el controlador de carga útil de robot 736 envía una señal de finalización al controlador de base de robot 704, o alternativamente, conmuta un bit de E/S en la memoria de la base de robot 722, que informa al controlador de base de robot 704 de que la asignación de tarea se ha completado.
La FIG. 8 muestra un diagrama de bloques de alto nivel que ilustra con más detalle la disposición y conectividad de los principales componentes físicos de un entorno físico automatizado, tal como el entorno físico automatizado mostrado en la FIG. 1, incluidos enlaces físicos y conexiones entre esos componentes. Como se muestra en la FIG.
8, se puede utilizar una variedad de diferentes tipos de conexiones físicas, que incluyen, por ejemplo, TCP/IP a través de Ethernet, TCP/IP a través de 802.11 y RCP a través de 802.15.4, para la comunicación entre dispositivos y sistemas informáticos en el entorno físico.
La FIG. 9 muestra otro diagrama de bloques de alto nivel que ilustra la disposición y conectividad de los principales componentes físicos del entorno físico automatizado mostrado en la FIG. 1. Sin embargo, en lugar de mostrar los tipos de conexión física, la FIG. 9 muestra los protocolos específicos que podrían usarse para comunicarse a través de cada medio de comunicación.
La FIG. 10 muestra otro diagrama de bloques adicional de alto nivel que ilustra la disposición y conectividad de los principales componentes físicos del entorno físico automatizado mostrado en la FIG. 1. Sin embargo, en lugar de mostrar el tipo de conexiones físicas como en la FIG. 8, o el protocolo utilizado para la comunicación a través de esa conexión física como en la FIG. 9, la FIG. 10 proporciona una descripción general de la finalidad de cada conexión física.
La FIG. 11 muestra otro diagrama de bloques adicional de alto nivel que ilustra la disposición y conectividad de los principales componentes físicos del entorno físico automatizado mostrado en la FIG. 1. Sin embargo, en lugar de mostrar el tipo de conexiones físicas como en la FIG. 8, el protocolo utilizado para la comunicación a través de esa conexión física como en la FIG. 9, o la descripción general de los fines de las conexiones físicas como en la FIG. 10, la FIG. 11 muestra cómo fluyen las solicitudes de tareas, comandos, actualizaciones de estado, actualizaciones de eventos y actualizaciones de tráfico entre los componentes físicos del entorno físico automatizado a través de las conexiones físicas.
La FIG. 12 contiene un diagrama de bloques de alto nivel que ilustra los principales componentes funcionales de los módulos de software en formas de realización ejemplares de un sistema de gestión de tareas, así como los principales componentes funcionales de los módulos de software que se ejecutan en un robot móvil de navegación autónoma ejemplar, donde ambos funcionan de acuerdo con los principios de la presente invención, así como las conexiones entre los principales componentes funcionales del sistema de gestión de tareas y del robot móvil. Como se muestra en la FIG. 12, el sistema de gestión de tareas 1205 incluye un gestor de objetos central 1210, un gestor de configuración 1215, un gestor de comunicaciones de robot 1220 y un gestor de colas 1225. El gestor de objetos central 1210 realiza un seguimiento de las señales de entrada/salida, así como de los objetos de mapa dinámicos, tales como acoplamientos de robots móviles, sectores prohibidos, etc., y proporciona esta información a cada robot móvil de la flota. El gestor de configuración 1215 gestiona el archivo de mapa y los parámetros operativos más recientes, y los sincroniza con los mapas almacenados en las memorias de los robots móviles. El gestor de comunicaciones de robot 1220 realiza un seguimiento de las ubicaciones y trayectos de robot móvil y proporciona esta información a los robots móviles de la flota, el gestor de colas 1225 y las estaciones de supervisión. El gestor de colas 1225 recibe, prioriza y envía solicitudes de tarea, y proporciona actualizaciones de estado para solicitudes de tarea.
El robot móvil 1260 incluye un motor de navegación autónomo 1230, un módulo de gestión de tareas 1235, un módulo de gestión de carga 1240, un módulo de gestión de notificaciones y retroalimentación 1245 y un controlador de carga útil/módulo HMI 1250. El motor de navegación autónomo 1230 se encarga de la localización, planificación de trayectos, evitación de obstáculos y tareas similares del robot móvil 1260. El módulo de gestión de tareas 1235 gestiona la ejecución y los cambios de modo relacionados con la ejecución de tareas robóticas no relacionadas con la navegación. El módulo de gestión de carga 1240 supervisa y acopla automáticamente el robot móvil cuando el nivel de energía de la batería es bajo, y el módulo de gestión de notificaciones y retroalimentación 1245 proporciona información en tiempo real acerca del robot móvil 1260 al sistema de gestión de tareas 1205, tal como posición, velocidad, estado de tarea y nivel de batería.
A continuación se expone la finalidad de cada una de las conexiones físicas, identificadas por las etiquetas 1 -27 en la FIG. 12.
1) pulsaciones del botón de llamada, que pueden llegar a través de un protocolo de E/S remota. Las pulsaciones del botón se envían al gestor de colas 1225 a través de (11) para introducirse en la cola.
2) Datos de entrada de peligro. Pueden ser introducidos por un operario u otro equipo y se utilizan para indicar una situación predefinida, tal como "el pasillo 1 está bloqueado", "DETENER todo el equipo", etc. Estos datos de entrada se envían al gestor de objetos central 1210 a través de (10).
3) E/S de propósito general (GPIO). El enlace 3a es para enviar datos de entrada desde el equipo, tal como un ojo fotoeléctrico, un interruptor de límite o similar. El enlace 3b es para configurar salidas, tal como activar un abridor de puerta automático, elevador o transportador.
4) Conexión ArInterface desde el robot móvil 1260 al sistema de gestión de tareas 1205. Esta conexión de interfaz de programación de aplicaciones (API) sirve como el conducto principal para pasar datos del robot móvil 1260 al sistema de gestión de tareas 1205. Los datos pueden incluir, por ejemplo, entradas de la HMI a bordo, estados en tiempo real (posición, velocidad, carga de batería, etc.) y retroalimentación de estados y eventos.
5) Conexión ArInterface desde el sistema de gestión de tareas 1205 al robot móvil 1260. Esta conexión API es el conducto principal para enviar datos del sistema de gestión de tareas 1205 al robot móvil 1260. Estos datos pueden incluir, por ejemplo, cambios de mapa y configuración, información de tráfico acerca de otros robots móviles, comandos de envío, cambios en objetos globales, etc.
6a) Datos de entrada de la interfaz del operario. Esto puede ser con el propósito de realizar cambios en la configuración, proporcionar controles manuales, como sería necesario durante el mantenimiento, y comandos para interactuar con la cola (consultar, cancelar, etc.).
6b) Datos de entrada de la interfaz del operador (nuevas solicitudes de cola, enviadas a través de ARCL al gestor de colas 1225).
7) Datos de salida del sistema de gestión de tareas 1205 a una interfaz de un operador (puede proporcionar datos tales como: posiciones y estado del robot, estado de la tarea, datos de mapa, etc.).
8) Datos de salida de automatización de fábrica - pueden ser elementos tales como solicitudes de RECOGIDA o RECOGIDA-ENTREGA activadas automáticamente de un PLC que está supervisando una herramienta. Se puede proporcionar retroalimentación opcional a ese equipo, si es necesario.
9) Datos de entrada del botón de llamada - dispositivos basados en Ethernet pueden enviar comandos ARCL directamente al sistema de gestión de tareas 1205. Estos comandos se pueden utilizar para enviar llamadas directas para un robot móvil y para enviar una solicitud de RECOGIDA.
10) Línea para transferir comandos recibidos por la interfaz de E/S remota entrante a una rutina de gestión de objetos globales.
11) Línea para transferir comandos recibidos por la interfaz de E/S remota entrante al gestor de colas 1225.
12) Línea para transferir comandos recibidos por ArInterface al gestor de configuración 1215. Esta línea permite realizar cambios de configuración en el sistema.
13) Línea para transferir datos de configuración a los robots y operarios conectados.
14) Línea para transferir datos de tráfico del sistema de gestión de tareas 1205 al robot móvil 1260 a través de una conexión API de ArInterface.
15) Línea para transferir comandos de envío del gestor de colas 1225 al robot móvil 1260 a través de una conexión API de ArInterface
16) Línea para transferir actualizaciones de eventos del gestor de colas 1225 a clientes conectados (WMS/MES, aplicaciones personalizadas, E/S remota basada en Ethernet, etc.).
17) Línea para transferir comandos de cola entrantes de clientes conectados (WMS/MES, aplicaciones personalizadas, E/S remota basada en Ethernet, etc.)
18) Línea para transferir información acerca del tráfico y objetos globales del sistema de gestión de tareas 1205 al motor de navegación autónoma 1230.
19) Línea para transferir información del gestor de colas 1225 al módulo de gestión de tareas a bordo 1235 del robot móvil 1260.
20) Línea para transferir solicitudes de cola generadas localmente en la conexión ArInterface al sistema de gestión de tareas 1205. Las solicitudes de colas locales son generadas por HMI integradas y, en última instancia, terminan en la cola a bordo del sistema de gestión de tareas 1205.
21) Línea para transferir información de estado acerca del robot al sistema de gestión de tareas 1205. Esto se utilizará para funciones tales como la gestión de tráfico para determinar el robot más apropiado que enviar.
22) Proporciona datos de salida acerca del robot móvil 1260 a dispositivos conectados localmente. Los datos podrían incluir la posición actual del robot móvil, la velocidad, el modo de funcionamiento actual, el estado de cola actual, etc.
23) Proporciona datos de entrada desde el controlador de carga útil a bordo y/o dispositivos HMI para generar solicitudes de cola específicas de robot y proporcionar actualizaciones de información de estado (es decir, errores, IO). Estas solicitudes no se procesan localmente, sino que se transfieren al sistema de gestión de tareas 1205 y se introducen en la cola principal.
24) Proporciona datos de salida a la HMI a bordo, tales como estados de robots móviles, eventos de cola, etc.
25) Conexión desde el sistema de gestión de tareas 1205 a los sistemas WMS/MES. Proporciona retroalimentación acerca del estado de la cola y actualizaciones de eventos a medida que se procesan las tareas.
26) Conexión desde WMS/MES al sistema de gestión de tareas 1205. Esto proporciona solicitudes de envío y consulta entrantes desde el sistema principal de gestión de planificación y automatización del sitio.
27) Los enlaces 27a/b son comparables a los enlaces 3a/b, excepto que utilizan Ethernet para comunicarse directamente con ARCL en el sistema de gestión de tareas 1205 en lugar del protocolo de E/S remota.
Las FIGS. 13 y 14 muestran diagramas de flujo que ilustran algoritmos implementados por ordenador ejemplares para priorizar nuevas solicitudes de tarea y enviar solicitudes de tarea en cola, respectivamente, mediante un sistema de gestión de tareas que funciona de acuerdo con formas de realización de la presente invención. La FIG. 15 muestra un diagrama de flujo que ilustra un algoritmo ejemplar implementado por ordenador que los robots móviles de la flota pueden utilizar para cargar sus baterías y gestionar asignaciones de tareas delegadas por el sistema de gestión de tareas en respuesta a solicitudes de tarea recibidas. Para el propósito de los algoritmos ejemplares, las solicitudes de tarea tienen una prioridad asociada, que puede ser asignada por una aplicación solicitante o asignada de otro modo por defecto. Las solicitudes de tarea también se clasifican como "recogida" o "entrega". Una recogida es una solicitud de tarea que puede ser atendida por cualquier robot; una entrega es una solicitud de tarea que debe ser atendida por un robot específico, suponiendo que, cuando una recogida está en curso, el área de carga del robot móvil seleccionado está presumiblemente vacía y cualquier robot móvil puede encargarse de esa tarea de recogida. Sin embargo, una vez que la carga útil de un robot móvil contiene una mercancía, esa mercancía específica tiene que ir a un destino particular. Por lo tanto, una entrega siempre está vinculada a una carga útil física en un robot móvil particular.
En formas de realización preferidas, una cola única gestiona todas las solicitudes de tarea, y un procedimiento de recogida-entrega utiliza las prioridades de la cola para llevar a cabo una solicitud de tarea. Esto garantiza que toda solicitud de tarea de entrega para un robot móvil específico se realice antes de cualquier recogida. En el modo de funcionamiento preferido, una solicitud de tarea de entrega no está realmente en cola en el sistema hasta después de que se haya realizado la solicitud de tarea de recogida correspondiente. Sin embargo, este no es un modo de funcionamiento requerido. Por lo tanto, si hay una tarea de entrega existente en la cola para un robot móvil particular, la entrega debe producirse antes de que se le ordene a ese robot móvil realizar cualquier recogida. Esto garantiza que el robot móvil entregue su carga antes de recoger y cargar otra mercancía.
La FIG. 13 muestra un diagrama de flujo de alto nivel que ilustra las etapas que podría realizar el sistema de gestión de tareas, de acuerdo con una forma de realización de la invención, para introducir una solicitud de tarea en la cola. Como se muestra en la FIG. 13, el sistema determina en primer lugar, en las etapas 1302 y 1314, si la solicitud de tarea entrante es una solicitud de recogida-entrega o una solicitud de recogida o entrega. Si la solicitud entrante es una solicitud de recogida-entrega, entonces el sistema recorre una lista de tareas ordenadas, seleccionando la siguiente tarea de la lista (etapa 1304). A continuación, en la etapa 1306, el sistema determina si la tarea seleccionada de la lista es una recogida-entrega. Si no lo es, entonces el control vuelve a la etapa 1304 para seleccionar la siguiente tarea de la lista. Sin embargo, si la tarea es una recogida-entrega, entonces el sistema determina, en la etapa 1308, si la tarea seleccionada está pendiente o en curso. Si la tarea seleccionada no está pendiente o en curso, el control pasa de nuevo a la etapa 1304 para seleccionar otra tarea de la lista. Sin embargo, si se determina en la etapa 1308 que la tarea está pendiente o en curso, entonces el sistema determina, en la etapa 1310, si la parte de entrega de la tarea coincide con el lugar de recogida de la tarea solicitada. Si no coinciden, entonces el control vuelve a la etapa 1304 para seleccionar otra tarea de la lista. Pero si hay una coincidencia, el sistema vincula ambas tareas de recogidaentrega entre sí (etapa 1312).
A continuación, en las etapas 1316, 1318 y 1320, el sistema crea tareas de recogida y entrega individuales para la recogida-entrega solicitada, establece banderas para vincular las tareas de recogida y entrega individuales e inserta la parte de recogida de la tarea en la cola. Después, en la etapa 1322, el sistema comienza a recorrer de nuevo la lista de tareas ordenadas seleccionando la siguiente tarea de la lista. Si la tarea seleccionada tiene una prioridad inferior a la prioridad de la solicitud de tarea entrante, entonces la solicitud de tarea entrante se inserta en la cola antes de la tarea seleccionada, etapas 1324 y 1326. Después, si el sistema determina, en la etapa 1328, que la solicitud actual no es la parte de recogida de una solicitud de recogida-entrega, el procesamiento de la solicitud de tarea entrante finaliza. Pero si es la parte de recogida de una solicitud de recogida-entrega, entonces el sistema vuelve a la etapa 1322 para insertar la tarea de entrega en la cola y seleccionar la siguiente tarea de la lista. Volviendo a la etapa 1302, si se determina que la solicitud entrante no es una solicitud de recogida-entrega, el sistema determina entonces, en la etapa 1314, si la solicitud es solo una entrega. Si es así, entonces el sistema establece un campo en la memoria que indica que se debe asignar un robot específico para gestionar la solicitud de tarea. De no ser así, entonces el sistema pasa a la etapa 1322 para verificar la prioridad de la solicitud entrante frente a la prioridad de otras solicitudes de tarea que ya se encuentran en la cola.
La FIG. 14 contiene un diagrama de flujo de alto nivel que muestra un algoritmo e ilustra las etapas que podría realizar el procesador en un sistema de gestión de tareas, de acuerdo con una forma de realización de la invención, para asignar solicitudes de tarea a un robot móvil particular en la flota, teniendo en cuenta factores tales como la energía de batería restante, las capacidades del robot (es decir, la configuración) y la distancia entre la posición actual del robot móvil y la ubicación de recepción. Los expertos en la técnica reconocerán y apreciarán que también se podrían utilizar otros factores de estado y configuración para determinar asignaciones, tales como espacio de carga útil disponible, condiciones de tráfico a lo largo de la ruta, tareas críticas de alta prioridad, el tiempo de llegada requerido, si las entregas se pueden agrupar, etc. Usando una combinación de estos factores, el sistema puede determinar, por ejemplo, que el mejor robot móvil para asignar a una tarea particular puede no ser el robot móvil que está actualmente más cerca de donde se realizará esa tarea.
Como se muestra en la FIG. 14, el sistema mantiene una lista ordenada de solicitudes de tarea (la cola de solicitudes de tarea) y, en la primera etapa, etapa 1402, el sistema selecciona la siguiente solicitud de tarea de la cola. Si no hay más solicitudes de tarea en la cola, la rutina de asignación de solicitudes de tarea se detiene. En cambio, si hay una solicitud de tarea en la cola, el sistema determina a continuación, en función de la información de estado recibida desde robots móviles de la flota, por ejemplo, si la tarea está pendiente o ha fallado (etapa 1404). Si la tarea no está pendiente o ha fallado, entonces el control vuelve a la etapa 1402, donde se selecciona la siguiente tarea de la cola para su procesamiento. En cambio, si la tarea está pendiente o ha fallado, entonces, en la etapa 1406, el sistema determina si la tarea es una recogida. Sin embargo, si se trata de una solicitud de tarea de recogida, el sistema examina a continuación datos de estado y de perfil de configuración de todos los robots móviles de la flota para determinar qué robots móviles son adecuados para la solicitud de tarea en función de la disponibilidad, el nivel de carga y las capacidades, creando así una lista de posibles cesionarios de robots móviles para gestionar la solicitud de trabajo. Etapas 1408, 1410, 1414 y 1416. Cuando se completa la lista de posibles cesionarios, el sistema revisa la lista para encontrar el robot móvil más cercano a la ubicación de tarea y asigna ese robot a la solicitud de tarea. Véanse las etapas 1428, 1430 y 1432.
Volviendo a la etapa 1406, si se determina que la tarea en la solicitud de tarea no es una recogida, entonces se clasifica en la etapa 1418 como una entrega, tras lo cual el sistema determinará a continuación si la tarea de entrega está asociada a una tarea de recogida y si esa tarea de recogida se ha completado (etapa 1420). Si existe una parte de recogida asociada y completada, entonces el sistema asignará la solicitud de tarea al siguiente robot móvil disponible que tenga suficiente energía de batería (etapas 1422, 1424 y 1432). Sin embargo, si la solicitud de tarea de entrega no está asociada a una solicitud de tarea de recogida, o si no hay ningún robot disponible, o si ningún robot tiene una carga de batería suficiente, entonces el sistema de gestión de tareas dejará la tarea sin asignar y pendiente mientras regresa a la etapa inicial, etapa 1402, para procesar más solicitudes de tarea de la cola.
Se pueden utilizar diversos enfoques diferentes para determinar el orden en el que las solicitudes se eliminan de la cola y se asignan a robots para su ejecución. En algunas formas de realización, las solicitudes se envían de acuerdo con el orden "primero en entrar primero en salir" (FIFO). En otras formas de realización, las solicitudes se pueden enviar de acuerdo con una bandera de prioridad asociada a cada solicitud. En aún otras formas de realización, el enfoque combina prioridad con FIFO (es decir, las tareas de mayor prioridad se asignan primero, y cuando dos trabajos tienen la misma prioridad, el que llegó primero se asigna primero). Aunque el algoritmo mostrado en la FIG. 14 refleja un enfoque que combina prioridad y FIFO, los expertos en la técnica, tras leer esta divulgación, entenderán que se podría utilizar un esquema de priorización diferente sin apartarse del alcance de la invención. Por ejemplo, el sistema de gestión de tareas puede configurarse para asignar y enviar solicitudes, teniendo en cuenta, por ejemplo, la rapidez con la que un robot cercano puede llegar al lugar de recogida, el tiempo de desplazamiento y el rendimiento y prestaciones generales del sistema.
En formas de realización preferidas del sistema de gestión de tareas, los robots móviles de navegación autónoma son capaces de determinar cuándo es el momento de recargar sus baterías y desplazarse a una estación de carga para recargarse sin recibir una instrucción específica del sistema de gestión de tareas para hacerlo. La FIG. 15 muestra un diagrama de flujo de alto nivel que ilustra un algoritmo ejemplar que podría ejecutarse a bordo de uno o más de los robots móviles de navegación autónoma de la flota para gestionar el procedimiento de carga de batería. Como se muestra en la FIG. 15, cuando el robot móvil está encendido, el sistema a bordo identifica el robot móvil como "DISPONIBLE." (Etapa 1502). A continuación, en las etapas 1504, 1506 y 1508, el robot móvil determina si el nivel de carga de batería está por debajo de un umbral especificado y, de ser así, cambia su estado a "NO DISPONIBLE" y se acopla a una estación de carga de batería hasta que se completa la recarga, momento en el cual el robot móvil cambia su estado nuevamente a "DISPONIBLE" en la etapa 1510. Sin embargo, si se determina en la etapa 1504 que la batería del robot móvil ya tiene una carga suficiente, entonces el sistema a bordo comprueba su tiempo de inactividad (etapa 1512), si hay un nuevo comando procedente del sistema de gestión de tareas (etapa 1516) y si hay nuevos comandos manuales (etapa 1532) que procesar.
Si no hay nuevos comandos del sistema de gestión de tareas ni comandos manuales, el procesamiento vuelve a la etapa 1504, donde se vuelve a verificar el umbral de la batería. Sin embargo, si hay un nuevo comando del sistema de gestión de tareas, entonces el robot móvil entra en el estado "EN CURSO" (etapa 1518), vuelve a verificar el nivel de batería para ver si está por debajo de un umbral de batería inferior (etapa 1520) y, en caso negativo, completa la tarea y vuelve a entrar en el estado "DISPONIBLE" (etapa1530). No obstante, si se determina en la etapa 1520 que se ha cruzado el umbral inferior de la batería, el robot móvil se acoplará y cargará su batería mientras permanece en el estado "EN CURSO". Etapa 1522. Cuando el nivel de carga de batería es suficiente, etapa 1524, el robot móvil se desacoplará automáticamente de la estación de recarga e intentará completar la tarea. (Etapas 1528 y 1530).
Como se indicó anteriormente, el sistema de gestión de tareas de la presente invención está configurado típicamente para recibir y responder a solicitudes recibidas desde un sistema de planificación de fábrica u otra aplicación de procesamiento de pedidos que está acoplada al JMS a través de un sistema de automatización de fábrica, que incluye, sin limitación, una red de área local (LAN), una red de área amplia (WAN), una intranet corporativa o Internet. Aunque se pueden utilizar otros procedimientos para intercambiar comandos, respuestas y datos, el JMS y el sistema de planificación de fábrica (o sistema de procesamiento de pedidos) se comunican preferentemente entre sí a través de
un conjunto de llamadas a funciones programáticas (también conocidas como "interfaz de programación de aplicaciones" o API). A continuación se proporciona un conjunto ejemplar de llamadas a funciones adecuadas para este propósito.
QueueCancel
Descripción:
Cancela un elemento que está en la cola
Uso:
queuecancel <canceltype> <cancelvalue> [echo_string] [reason]
Argumentos:
<canceltype> puede ser <id> <jobid> <robotname> <status>
<cancelvalues> válidos para <canceltype>=estados son <inprogress> <pending> <interrupted> Si se proporciona [echo_string], se devolverá con cualquier respuesta generada a partir de este comando. Se puede utilizar como "ID de transacción"
[reason] es una cadena opcional que se puede usar para proporcionar un motivo de cancelación Devuelve (para un artículo pendiente):
queuecancel cancelling <cancelvalue> <canceltype> <echostring> <reason> from queue QueueCancel: <id> <jobid> <priority> <status = Cancelled> <subStatus = None> Goal <"goal_name"> <"robotname"> <queued date> <queued time> <completed date> <completed time> <echostring> Devuelve (para un artículo en curso):
queuecancel cancelling <cancelvalue> <canceltype> <echostring> <reason> from queue QueueCancel: <id> <jobid> <priority> <status = Cancelling> <subStatus = = reason_or_None > Goal <"goal_name"> <"robotname"> <queued date> <queued time> <completed date = None> <completed time = None> <echostring>
QueueUpdate: <id> <jobid> <priority> <status = Interrupted> <subStatus = = reason_or_None > Goal <"goal_name"> <"robotname"> <queued date> <queued time> <completed date = None> <completed time = None> <failed count>
QueueUpdate: <id> <jobid> <priority> <status = Cancelled> <subStatus = = reason_or_None > Goal <"goal_name"> <"robotname"> <queued date> <queued time> <completed date> <completed time> <failed count>
QueuePickup
Descripción:
Indica al sistema de gestión de trabajos que se solicita una nueva RECOGIDA en un destino particular. Cualquier robot responderá.
Uso:
queuepickup <goal_name> [priority] [job_id]
Argumentos:
Si [priority] no está asignada, se utilizará una predeterminada.
Si [job_id] no está asignado, se utilizará uno predeterminado.
Devuelve:
queuepickup goal <"goal_name"> with priority <priority>, id <id> and job_id <job_id> successfully queued
QueueUpdate: <id> <job_id> <priority> <status = Pending> <substatus = None> Goal <"goal_name"> <assigned robot_name = None> <queued date> <queued time> <completed date = None> <completed time = None> <failed count>
QueueUpdate: <id> <job_id> <priority> <status = InProgress> <substatus = None> Goal <"goal_name"> <"robot_name"> <queued date> <queued time> <completed date = None> <completed time = None> <failed count>
QueueUpdate: <id> <job_id> <priority> <status = Completed> <substatus = None> Goal <"goal_name"> <"robot_name"> <queued date> <queued time> <completed date> <completed time> <failed count> QueuePickupDropoff
Descripción:
Indica al sistema de gestión de trabajos que se solicita una nueva RECOGIDA en un destino particular (PICKUPgoal_name) y que la ENTREGA debe realizarse en un destino predeterminado (DROPOFFgoal_name). Cualquier robot responderá.
Uso:
queuepickupdropoff <PICKUPgoal_name> <DROPOFFgoal_name> [PICKUPpriority] [DROPOFFpriority] [job_id]
Argumentos:
Si [PICKUPpriority] o [DROPOFFpriority] no están asignadas, se utilizarán las predeterminadas.
Si [job_id] no está asignado, se utilizará uno predeterminado.
Devuelve:
queuepickupdropoff goals <"PICKUPgoal"> and <"DROPOFFgoal"> with priorities <PICKUPpriority> and <DROPOFFpriority> ids <PICKUPid> and <DROPOFFid> job_id <jobid> successfully queued QueueUpdate: <id> <job_id> <priority> <status=Pending> <substatus=None> Goal <"goal_name"> <robot_name> <queued date> <queued time> <completed date=None> <completed time=None> <failed count>
QueueUpdate: <id> <job_id> <priority> <status=lnProgress> <substatus=None> Goal <"goal_name"> <robot_name> <queued date> <queued time> <completed date=None> <completed time=None> <failed count>
QueueUpdate: <id> <job_id> <priority> <status=Completed> <substatus=None> Goal <"goal_name"> <robot_name> <queued date> <queued time> <completed date> <completed time> <failed count> QueueUpdate: <id> <job_id> <priority> <status=lnProgress> <substatus=None> Goal <"goal_name"> <robot_name> <queued date> <queued time> <completed date=None> <completed time=None> <failed count>
QueueUpdate: <id> <job_id> <priority> <status=Completed> <substatus=None> Goal <"goal_name"> <robot_name> <queued date> <queued time> <completed date> <completed time> <failed count> QueueQuery
Descripción:
Consulta el estado de las entradas en las colas del sistema de gestión de tareas. Los elementos se pueden seleccionar con una variedad de criterios, tales como JobID (ID de tarea), destino, nombre de robot, etc.
Uso:
queuequery <querytype> <queryvalue> [echo_string]
Argumentos:
<querytype> puede ser <id> <jobid> <goal> <robotname> <status> <priority>
<queryvalue> para querytype=estados son <inprogress> <pending> <interrupted> <completed> <cancelled> <failed> <docked>
Si se proporciona [echo_string], se devolverá con cualquier respuesta generada a partir de este comando. Se puede utilizar como "ID de transacción"
Devuelve:
QueueQuery: <id> <jobid> <priority> <status> <substatus> Goal <"goal_name">
<robotName> <queued date> <queued time> <completed date> <completed time>
<echostring> <failed count>
QueueShow
Descripción:
Notifica todas las entradas de la cola, incluido el estado de cada robot de la flota
Uso:
queueshow [echo_string]
Argumentos:
Si se proporciona [echo_string], se devolverá con cualquier respuesta generada a partir de este comando. Se puede utilizar como "ID de transacción"
Devuelve:
QueueRobot: <robotname> <robotstatus> <robotsubstatus> <echo_string>
QueueRobot: <robotname> <robotstatus> <robotsubstatus> <echo_string>
QueueShow: <id> <jobid> <priority> <status> <substatus> Goal <"goal_name">
<"robotName"> <queued date> <queued time> <completed date> <completed time> <echostring> <failed count>
QueueShowRobot
Descripción:
Informa del estado de todos los robots de la flota
Uso:
queueshowrobot [robot_name_or_"default"] [echo_string]
Argumentos:
Si se proporciona [robot_name], devuelve el estado de ese robot en particular. Si el campo está vacío o está "predeterminado", devuelve el estado de todos los robots de la flota.
Si se proporciona [echo_string], se devolverá con cualquier respuesta generada a partir de este comando. Se puede utilizar como "ID de transacción"
Devuelve:
QueueRobot: <robotname> <robotstatus> <robotsubstatus> <echostring>
Estados y subestatos
Estados de tarea
Los siguientes estados y subestaciones se aplican a la tarea, y también al robot cuando sea pertinente:
Pending None
Available Available
Interrupted None
InProgress UnAllocated
InProgress Allocated
InProgress BeforePickup
InProgress BeforeDropoff
InProgress EveryBefore
InProgress Before
InProgress Driving
InProgress After
InProgress EveryAfter
InProgress AfterPickup
InProgress AfterDropoff
Completed None
Estados de robot adicionales
Los siguientes estados adicionales se aplican a los robots que no tienen una tarea asignada:
Available Available
UnAvailable NotUsingEnterpriseManager
UnAvailable UnknownBatteryType
UnAvailable ForcedDocked
UnAvailable Lost
UnAvailable EStopPressed
UnAvailable Interrupted
UnAvailable InterruptedButNotYetldle
UnAvailable Fault_Driving_Application_<application_provided_string>
Tipos de datos
ID de tarea
Si no se proporciona la tarea, entonces se genera automáticamente en el siguiente formato: JOBxx
Comandos ARCL que están habilitados en cada robot:
QueueCancelLocal
Descripción:
Igual que QueueCancel en el sistema de gestión de tareas, pero solo se aplica a los elementos en cola para este robot en particular
QueueDropoff
Descripción:
Indica a un robot que haga una ENTREGA en un destino determinado. Solo debe utilizarse desde una interfaz de usuario a bordo, tal como una pantalla táctil a bordo o PLC.
Uso:
queuedropoff <goal_name> [priority] [job_id]
Devuelve:
queuedropoff attempting to queue goal <goal_name> <priority> <job_id>
queuedropoff goal <goal_name> with priority <priority>, id <id> and job_id <job_id> successfully queued to Fleet Manager
QueueUpdate: <id> <job_id> <priority> <status> <substatus> Goal <goal_name> <robot_name> <queued date> <queued time> <completed date> <completed time> <failed count>
QueueQueryLocal
Descripción:
Consulta el estado de las entradas en las colas del sistema de gestión de tareas. Los elementos se pueden seleccionar con una variedad de criterios, tales como JobID (ID de tarea), destino, nombre de robot, etc.
Uso:
queuequerylocal <querytype> <queryvalue> [echo_string]
Argumentos:
<querytype> puede ser <id> <jobid> <goal> <robotname> <status> <priority>
<queryvalue> para querytype=estados son <inprogress> <pending> <interrupted> <completed> <cancelled> <failed> <docked>
Si se proporciona [echo_string], se devolverá con cualquier respuesta generada a partir de este comando. Se puede utilizar como "ID de transacción"
Devuelve:
QueueQuery: <id> <jobid> <priority> <status> <substatus> Goal <"goal_name">
<robotName> <queued date> <queued time> <completed date> <completed time>
<echostring>
QueueShowRobotLocal
Descripción:
Consulta el estado del robot.
Uso:
queueshowrobotlocal [echo_string]
Argumentos:
Si se proporciona [echo_string], se devolverá con cualquier respuesta generada a partir de este comando. Se puede utilizar como "ID de transacción"
Devuelve:
QueueRobot: <robotname> <robotstatus> <robotsubstatus> <echostring>
Ejemplos
A continuación se presentan varios ejemplos para demostrar el uso de los diversos comandos. Las líneas que comienzan con "QueueUpdate:" son mensajes transmitidos por el sistema de gestión de tareas.
Ejemplos de QueueCancel
Ejemplo 1 - cancelación de un elemento pendiente:
QueueUpdate: PICKUP11 JOB11 10 Pending None Goal "t" None 12/19/2011 06:50:45 None None 0 queuecancel goal t abc
QueueCancel: PICKUP11 JOB11 10 Cancelling None Goal "w20" None 12/16/2011 13:19:07 None None abc QueueUpdate: PICKUP11 JOB11 10 Cancelled None Goal "t" None 12/19/2011 06:50:45 12/19/2011 06:50:58 0
Ejemplo 2 - cancelación de un elemento en curso
QueueUpdate: PICKUP8 JOB8 10 InProgress None Goal "w20" "MT-490" 12/16/2011 13:19:07 None None 0 queuecancel goal w20 abc
QueueCancel: PICKUP8 JOB8 10 Cancelling None Goal "w20" None 12/16/2011 13:19:07 None None abc QueueUpdate: PICKUP8 JOB8 10 Interrupted None Goal "w20" None 12/16/2011 13:19:07 None None 0
QueueUpdate: PICKUP8 JOB810 Cancelled None Goal "w20" None 12/16/2011 13:19:0712/16/2011 13:19:13 0
Ejemplo 3 - cancelación de un elemento en curso con un motivo
QueueUpdate: PICKUP8 JOB8 10 InProgress None Goal "w20" "MT-490" 12/16/2011 13:19:07 None None 0 queuecancel goal w20 abc cancelreason
QueueCancel: PICKUP8 JOB8 10 Cancelling cancelreason Goal "w20" None 12/16/2011 13:19:07 None None abc
QueueUpdate: PICKUP8 JOB8 10 Interrupted None Goal "w20" None 12/16/2011 13:19:07 None None 0 QueueUpdate: PICKUP8 JOB8 10 Cancelled cancelreason Goal "w20" None 12/16/2011 13:19:07 12/16/2011 13:19:13 0
Ejemplos de QueuePickup
Ejemplo 1- queuepickup con prioridad e ID de tarea
queuepickup z 11 xyz
queuepickup goal "z" with priority 11, id PICKUP13 and job_id xyz successfully queued
QueueUpdate: PICKUP13 xyz 11 Pending None Goal "z" None 12/19/2011 06:54:18 None None 0 QueueUpdate: PICKUP13 xyz 11 InProgress UnAllocated Goal "z" None 12/19/2011 06:54:18 None None 0 QueueUpdate: PICKUP13 xyz 11 InProgress Allocated Goal "z" None 12/19/2011 06:54:18 None None 0 QueueUpdate: PICKUP13 xyz 11 InProgress BeforePickup Goal "z" "Adept_Telepresence_Robot" 12/19/2011 06:54:18 None None 0
QueueUpdate: PICKUP13 xyz 11 InProgress EveryBefore Goal "z" "Adept_Telepresence_Robot" 12/19/2011 06:54:18 None None 0
QueueUpdate: PICKUP13 xyz 11 InProgress Before Goal "z" "Adept_Telepresence_Robot" 12/19/2011 06:54:18 None None 0
QueueUpdate: PICKUP13 xyz 11 InProgress Driving Goal "z" "Adept_Telepresence_Robot" 12/19/2011 06:54:18 None None 0
QueueUpdate: PICKUP13 xyz 11 InProgress After Goal "z" "Adept_Telepresence_Robot" 12/19/2011 06:54:18 None None 0
QueueUpdate: PICKUP13 xyz 11 InProgress AfterEvery Goal "z" "Adept_Telepresence_Robot" 12/19/2011 06:54:18 None None 0
QueueUpdate: PICKUP13 xyz 11 InProgress AfterPickup Goal "z" None 12/19/2011 06:54:18 None None 0 QueueUpdate: PICKUP13 xyz 11 Completed None Goal "z" "Adept_Telepresence_Robot" 12/19/2011 06:54:18 12/19/2011 06:54:340
Ejemplo 2 - queuepickup con prioridad predeterminada e ID de tarea
queuepickup x default myjob1
queuepickup goal "x" with priority 10, id PICKUP14 and job_id myjob1 successfully queued QueueUpdate: PICKUP14 myjob1 10 Pending None Goal "x" None 12/19/2011 06:56:13 None None 0 QueueUpdate: PICKUP14 myjob1 10 InProgress UnAllocated Goal "x" "Adept_Telepresence_Robot" 12/19/2011 06:56:13 None None 0
QueueUpdate: PICKUP14 myjobl 10 InProgress Allocated Goal "x" "Adept_Telepresence_Robot" 12/19/2011 06:56:13 None None 0
QueueUpdate: PICKUP14 myjob1 10 InProgress Driving Goal "x" "Adept_Telepresence_Robot" 12/19/2011 06:56:13 None None 0
QueueUpdate: PICKUP14 myjob1 10 Completed None Goal "x" "Adept_Telepresence_Robot" 12/19/2011 0 6:56:13 12/19/2011 06:56:300
Ejemplo 3 - queuepickup con prioridad predeterminada e ID de tarea predeterminado
queuepickup t
queuepickup goal "t" with priority 10, id PICKUP15 and job_id JOB15 successfully queued QueueUpdate: PICKUP15 JOB15 10 Pending None Goal "t" None 12/19/2011 06:58:12 None None 0 QueueUpdate: PICKUP15 JOB15 10 InProgress UnAllocated Goal "t" "MT-490" 12/19/2011 06:58:12 None None 0
QueueUpdate: PICKUP15 JOB15 10 InProgress Allocated Goal "t" "MT-490" 12/19/2011 06:58:12 None None 0
QueueUpdate: PICKUP15 JOB15 10 InProgress Driving Goal "t" "MT-490" 12/19/2011 06:58:12 None None 0 QueueUpdate: PICKUP15 JOB15 10 Completed None Goal "t" "MT-490" 12/19/2011 06:58:12 12/19/2011 06:58:120
Ejemplos de QueuePickupDropoff
Ejemplo 1 - queuepickupdropoff con prioridad 1 y prioridad 2 e ID de tarea
queuepickupdropoff x y 1011 abc
queuepickupdropoff goals "x" and "y" with priorities 10 and 11 ids PICKUP22 and DROPOFF23 job_id abc successfully queued
QueueUpdate: PICKUP22 abc 10 Pending None Goal "x" None 12/19/2011 07:24:02 None None 0 QueueUpdate: DROPOFF23 abc 11 Pending None Goal "y" "None" 12/19/2011 07:24:29 None None 0 QueueUpdate: PICKUP22 abc 10 InProgress UnAllocated Goal "x" "Adept_Telepresence_Robot" 12/19/2011 07:24:02 None None 0
QueueUpdate: PICKUP22 abc 10 InProgress Allocated Goal "x" "Adept_Telepresence_Robot" 12/19/2011 07:24:02 None None 0
QueueUpdate: PICKUP22 abc 10 InProgress Driving Goal "x" "Adept_Telepresence_Robot" 12/19/2011 07:24:02 None None 0
QueueUpdate: PICKUP22 abc 10 Completed None Goal "x" "Adept_Telepresence_Robot" 12/19/2011 07:24:02 12/19/2011 07:24:29 0
QueueUpdate: DROPOFF23 abc 11 InProgress UnAllocated Goal "y" "Adept_Telepresence_Robot" 12/19/2011 07:24:29 None None 0
QueueUpdate: DROPOFF23 abc 11 InProgress Allocated Goal "y" "Adept_Telepresence_Robot" 12/19/2011 07:24:29 None None 0
QueueUpdate: DROPOFF23 abc 11 InProgress Driving Goal "y" "Adept_Telepresence_Robot" 12/19/2011 07:24:29 None None 0
QueueUpdate: DROPOFF23 abc 11 Completed None Goal "y" "Adept_Telepresence_Robot" 12/19/2011 07:24:29 12/19/2011 07:24:520
Ejemplo 1 - Bloque funcional intercambiado
queuepickupdropoff x y
queuepickupdropoff goals "x" and "y" with priorities 10 and 20 ids PICKUP12 and DROPOFF13 job_id JOB12 successfully queued
QueueUpdate: PICKUP12 JOB12 10 Pending None Goal "x" "None" 08/16/2012 14:32:54 None None 0 QueueUpdate: DROPOFF13 JOB1220 Pending None Goal "y" "None" 08/16/2012 14:32:54 None None 0 QueueUpdate: PICKUP12 JOB1210 InProgress UnAllocated Goal "x" "mt400" 08/16/201214:32:54 None None 0
queuepickupdropoff y t
queuepickupdropoff goals "y" and "t" with priorities 10 and 20 ids PICKUP14 and DROPOFF15 job_id JOB14 successfully queued
QueueUpdate: PICKUP14 JOB14 10 Pending None Goal "y" "mt400" 08/16/2012 14:33:01 None None 0 QueueUpdate: DROPOFF15 JOB1420 Pending None Goal "t" "mt400" 08/16/2012 14:33:01 None None 0 QueueUpdate: PICKUP12 JOB12 10 InProgress Allocated Goal "x" "mt400" 08/16/2012 14:32:54 None None 0
QueueUpdate: PICKUP12 JOB12 10 InProgress Driving Goal "x" "mt400" 08/16/2012 14:32:54 None None 0 QueueUpdate: PICKUP12 JOB12 10 Completed None Goal "x" "mt400" 08/16/2012 14:32:54 08/16/2012 14:33:15 0
QueueUpdate: DROPOFF13 JOB12 20 InProgress UnAllocated Goal "y" "mt400" 08/16/2012 14:32:54 None None 0
QueueUpdate: DROPOFF13 JOB1220 InProgress Allocated Goal "y" "mt400" 08/16/2012 14:32:54 None None 0
QueueUpdate: DROPOFF13 JOB12 20 InProgress Driving Goal "y" "mt400" 08/16/2012 14:32:54 None None 0
QueueUpdate: DROPOFF13 JOB12 20 Completed None Goal "y" "mt400" 08/16/2012 14:32:54 08/16/2012 14:33:27 0
QueueUpdate: PICKUP14 JOB14 10 Completed None Goal "y" "mt400" 08/16/2012 14:33:01 08/16/2012 14:33:27 0
QueueUpdate: DROPOFF15 JOB14 20 InProgress UnAllocated Goal "t" "mt400" 08/16/2012 14:33:01 None None 0
QueueUpdate: DROPOFF15 JOB1420 InProgress Allocated Goal "t" "mt400" 08/16/2012 14:33:01 None None 0
QueueUpdate: DROPOFF15 JOB1420 InProgress Driving Goal "t" "mt400" 08/16/2012 14:33:01 None None 0 QueueUpdate: DROPOFF15 JOB14 20 Completed None Goal "t" "mt400" 08/16/2012 14:33:01 08/16/2012 14:33:35 0
Ejemplos de QueueQuery
Ejemplo:
queuequery status completed xyz
QueueQuery: DROPOFF18 y4rt 22 Completed None Goal "x" "MT-490" 12/19/2011 07:07:53 12/19/2011 07:08:07 xyz 0
QueueQuery: DROPOFF16 abc 20 Completed None Goal "x" "MT-490" 12/19/2011 07:06:00 12/19/2011 07:06:16 xyz 0
QueueQuery: DROPOFF17 JOB17 20 Completed None Goal "z" "MT-490" 12/19/2011 07:06:21 12/19/2011 07:06:35 xyz 0
QueueQuery: DROPOFF19 yyy 20 Completed None Goal "x" "MT-490" 12/19/2011 07:08:49 12/19/2011 07:08:49 xyz 0
QueueQuery: DROPOFF20 yyy 20 Completed None Goal "x" "MT-490" 12/19/2011 7:09:08 12/19/2011 7:09:09 xyz 1
QueueQuery: DROPOFF21 JOB21 20 Completed None Goal "x" "MT-490" 12/19/2011 7:09:33 12/19/2011 7:09:34 xyz 0
QueueQuery: PICKUP12 xyz 11 Completed None Goal "t" "MT-490" 12/19/2011 06:53:51 12/19/2011 06:54:02 xyz 5
QueueQuery: PICKUP13 xyz 11 Completed None Goal "z" "Adept_Telepresence_Robot" 12/19/2011 06:54:18 12/19/2011 06:54:34 xyz 0
Ejemplos de QueueShow
Ejemplo:
QueueRobot: "Adept_Telepresence_Robot" Unavailable
InterruptedButNotYetIdle""
QueueRobot: MT-490 Available Available ""
QueueRobot: MT-490 Available Available ""
QueueRobot: "patrolbot" UnAvailable
Fault_Driving_Application_faultName ""
QueueShow: PICKUP22 abc 10 Completed None Goal "x" "Adept_Telepresence_Robot" 12/19/2011 07:24:02 12/19/2011 07:24:29 " " 2
Ejemplos de QueueDropoff
Ejemplo 1- queuedropoff con prioridad e ID de tarea
queuedropoff x 22 y4rt
queuedropoff attempting to queue goal "x" with priority 22
queuedropoff goal "x" with priority 22, id DROPOFF18 and job_id y4rt successfully queued to Fleet Manager QueueUpdate: DROPOFF18 y4rt 22 Pending None Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0 Going to X
QueueUpdate: DROPOFF18 y4rt 22 InProgress UnAllocated Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0
QueueUpdate: DROPOFF18 y4rt 22 InProgress Allocated Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0
QueueUpdate: DROPOFF18 y4rt 22 InProgress BeforeDropoff Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0
QueueUpdate: DROPOFF18 y4rt 22 InProgress EveryBefore Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0
QueueUpdate: DROPOFF18 y4rt 22 InProgress Before Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0 QueueUpdate: DROPOFF18 y4rt 22 InProgress Driving Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0 QueueUpdate: DROPOFF18 y4rt 22 InProgress After Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0
QueueUpdate: DROPOFF18 y4rt 22 InProgress AfterEvery Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0
QueueUpdate: DROPOFF18 y4rt 22 InProgress AfterPickup Goal "x" "MT-490" 12/19/2011 07:07:53 None None 0
Arrived at X
QueueUpdate: DROPOFF18 y4rt 22 Completed None Goal "x" "MT-490" 01/19/2011 07:07:53 01/19/2011 07:08:070
Ejemplo 2 - queuedropoff con prioridad predeterminada e ID de tarea
queuedropoff x default yyy
queuedropoff attempting to queue goal "x" using default priority
queuedropoff goal "x" with priority 20, id DROPOFF20 and job_id yyy successfully queued to Fleet Manager QueueUpdate: DROPOFF20 yyy 20 Pending None Goal "x" "MT-490" 12/19/2011 07:09:08 None None 0 Going to X
QueueUpdate: DROPOFF20 yyy 20 InProgress UnAllocated Goal "x" "MT-490" 12/19/2011 07:09:08 None None 0
QueueUpdate: DROPOFF20 yyy 20 InProgress Allocated Goal "x" "MT-490" 12/19/2011 07:09:08 None None 0
QueueUpdate: DROPOFF20 yyy 20 InProgress Driving Goal "x" "MT-490" 12/19/2011 07:09:08 None None 0 Arrived at X
QueueUpdate: DROPOFF20 yyy 20 Completed None Goal "x" "MT-490" 12/19/2011 07:09:08 12/19/2011 07:09:090
Ejemplo 3 - queuedropoff con prioridad predeterminada e ID de tarea predeterminado
queuedropoff x
queuedropoff attempting to queue goal "x" using default priority queuedropoff goal "x" with priority 20, id DROPOFF21 and job_id JOB21 successfully queued to Fleet Manager
QueueUpdate: DROPOFF21 JOB21 20 Pending None Goal "x" "MT-490" 12/19/2011 7:09:33 None None 0 Going to X
QueueUpdate: DROPOFF21 JOB21 20 InProgress UnAllocated Goal "x" "MT-490" 12/19/2011 7:09:33 None None 0
QueueUpdate: DROPOFF21 JOB21 20 InProgress Allocated Goal "x" "MT-490" 12/19/2011 7:09:33 None None 0
QueueUpdate: DROPOFF21 JOB21 20 InProgress Driving Goal "x" "MT-490" 12/19/2011 7:09:33 None None 0
Arrived at X
QueueUpdate: DROPOFF21 JOB21 20 Completed None Goal "x" "MT-490" 12/19/2011 07:09:33 12/19/2011 07:09:340
Ejemplo de QueueShowRobot
Ejemplo:
Queueshowrobot default echoit
QueueRobot: "Robot1" UnAvailable EStopPressed "echoit"
QueueRobot: "Robot2" UnAvailable Interrupted "echoit" QueueRobot: "Robot3" UnAvailable InterruptedButNotYetIdle "echoit" QueueRobot: "Robot4" Available Available "echoit"
QueueRobot: "Robot5" InProgress Driving "echoit"
QueueRobot: "Robot6" UnAvailable NotUsingEnterpriseManager "echoit" QueueRobot: "Robot7" UnAvailable UnknownBatteryType "echoit" QueueRobot: "Robot8" UnAvailable ForcedDocked "echoit" QueueRobot: "Robot9" UnAvailable NotLocalized "echoit" QueueRobot: "patrolbot" UnAvailable
Fault Driving Application faultName ""
EndQueueShowRobot
Ejemplo de QueueShowRobotLocal
Ejemplo:
queueshowrobotlocal echoit
QueueRobot: "Robot1" UnAvailable EStopPressed "echoit"
EndQueueShowRobot
Claims (32)
1. Un procedimiento para procesar solicitudes de tarea en un sistema de gestión de tareas (110,205,1205) en un entorno físico que comprende el sistema de gestión de tareas (110,205,1205) y una flota (290) de robots móviles (102a-102e,295a-295n), donde el sistema de gestión de tareas (110,205,1205) incluye un gestor de colas (206,1225), una memoria (202) y una interfaz de red (230), comprendiendo el procedimiento:
a) almacenar en la memoria (202) un mapa (208,710) que (i) define un plano de planta (210,712) correspondiente al entorno físico y (ii) define una ubicación de tarea virtual (216) con respecto al plano de planta (210,712), donde la ubicación de tarea virtual (216) representa una ubicación de tarea real en el entorno físico,
caracterizado por que el mapa (208,710) (iii) comprende una asociación entre una operación de tarea virtual (218) y la ubicación de tarea virtual (216), donde la operación de tarea virtual (218) representa una operación de tarea real en el entorno físico;
comprendiendo además el procedimiento:
b) después de almacenar el mapa en la memoria, recibir una solicitud de tarea por parte del gestor de colas (206.1225) , donde la solicitud de tarea incluye solo una de la ubicación de tarea virtual (216) en el mapa (208.710) , o la operación de tarea virtual (218);
c) con el gestor de colas (206,1225), seleccionar automáticamente un robot móvil (102a-102e,295a-295n) de la flota (290) para gestionar la solicitud de tarea recibida; y
d) transmitir uno o más comandos al robot móvil seleccionado (102a-102e,295a-295n) a través de la interfaz de red (230) para hacer que el robot móvil seleccionado (102a-102e,295a-295n) (A) se desplace automáticamente hasta la ubicación de tarea real, (B) ejecute automáticamente la operación de tarea real, o (C) lleve a cabo automáticamente tanto (A) como (B);
e) donde, si la solicitud de tarea no incluye la ubicación de tarea virtual (216), entonces el gestor de colas (206.1225) determina la ubicación de tarea real en función de la asociación proporcionada por el mapa (208.710) y la operación de tarea virtual (218), y
f) si la solicitud de tarea no incluye la operación de tarea virtual (218), entonces el gestor de colas (206,1225) determina la operación de tarea real en función de la asociación proporcionada por el mapa (208,710) y la ubicación de tarea virtual (216).
2. El procedimiento según la reivindicación 1, que comprende además:
a) almacenar en la memoria (202) un perfil de estado (220) para cada robot móvil (102a-102e,295a-295n) de la flota (290), donde el perfil de estado (220) define un estado actual para cada dicho robot móvil (102a-102e,295a-295n);
b) determinar, en función del perfil de estado (220) del robot móvil seleccionado (102a-102e,295a-295n), que el estado actual del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la solicitud de tarea.
3. El procedimiento según la reivindicación 1, que comprende además:
a) almacenar en la memoria (202) un perfil de configuración (222) para cada robot móvil (102a-102e,295a-295n) de la flota (290), donde el perfil de configuración (222) define una configuración actual para cada dicho robot móvil (102a-102e,295a-295n); y
b) determinar, en función del perfil de configuración (222) del robot móvil seleccionado (102a-102e,295a-295n), que la configuración actual del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la solicitud de tarea.
4. El procedimiento según la reivindicación 2 o la reivindicación 3, que comprende además:
a) establecer en el sistema de gestión de tareas (110,205,1205) criterios de preferencia basados en estado y/o basados en configuración; y
b) si dos o más robots móviles (102a-102e,295a-295n) de la flota (290) tienen estados y/o configuraciones actuales que son compatibles con la solicitud de tarea, seleccionar el robot móvil (102a-102e,295a-295n) de acuerdo con los criterios de preferencia basados en estado y/o basados en configuración.
5. El procedimiento según la reivindicación 4, que comprende además comparar automáticamente los perfiles de estado y/o de configuración (220,222) para dichos dos o más robots móviles (102a-102e,295a-295n) para identificar cuál de dichos dos o más robots móviles (102a-102e,295a-295n) tiene un perfil de estado y/o de configuración más favorable (220,222) para la ubicación de tarea real.
6. El procedimiento según la reivindicación 2 o la reivindicación 3, que comprende además:
a) recibir mediante el gestor de colas (206,1225) un tiempo especificado para la ejecución de la solicitud de tarea; y
b) determinar mediante el gestor de colas (206,1225), en función del perfil de estado y/o de configuración (220.222) del robot móvil seleccionado (102a-102e,295a-295n), que el estado y/o la configuración actuales del robot móvil seleccionado (102a-102e,295a-295n) es compatible con el tiempo especificado para la ejecución.
7. El procedimiento según la reivindicación 2 o la reivindicación 3, que comprende además:
a) recibir mediante el gestor de colas (206,1225) una combinación especificada de ubicaciones de tarea y operaciones de tarea; y
b) determinar mediante el gestor de colas (206,1225), en función del perfil de estado (220) y/o la configuración actual del robot móvil seleccionado (102a-102e,295a-295n), que el estado y/o la configuración actuales del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la combinación especificada de ubicaciones de tarea y operaciones de tarea.
8. El procedimiento según la reivindicación 2 o la reivindicación 3, que comprende además:
a) recibir mediante el gestor de colas (206,1225) una ruta especificada entre ubicaciones de tarea; y b) determinar mediante el gestor de colas (206,1225), en función del perfil de estado y/o de configuración (220.222) del robot móvil seleccionado (102a-102e,295a-295n), que el estado y/o la configuración actuales del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la ruta especificada.
9. El procedimiento según la reivindicación 2 o la reivindicación 3, que comprende además:
a) recibir mediante el gestor de colas (206,1225) una solicitud para asignar un robot móvil particular (102a-102e,295a-295n) para gestionar la solicitud de tarea; y
b) determinar mediante el gestor de colas (206,1225), en función del perfil de estado y/o de configuración (220.222) del robot móvil particular (102a-102e,295a-295n), que el estado y/o la configuración actuales del robot móvil particular (102a-102e,295a-295n) es compatible con la solicitud de tarea.
10. El procedimiento según la reivindicación 9, que comprende además seleccionar automáticamente un robot móvil diferente (102a-102e,295a-295n) para la solicitud de tarea si el perfil de estado y/o de configuración (220,222) del robot móvil particular (102a-102e,295a-295n) no es compatible con la solicitud de tarea.
11. El procedimiento según la reivindicación 2 o la reivindicación 4, que comprende además recibir periódicamente mediante el gestor de colas (206,1225) una actualización del perfil de estado y/o de configuración para dicho robot móvil seleccionado (102a-102e,295a-295n).
12. El procedimiento según la reivindicación 2 o la reivindicación 4, que comprende además recibir periódicamente mediante el gestor de colas (206,1225), una actualización del perfil de estado y/o de configuración para cada robot móvil (102a-102e,295a-295n) de la flota (290).
13. El procedimiento según la reivindicación 2, que comprende además:
a) recibir mediante el gestor de colas (206,1225) una prioridad especificada para la solicitud de tarea; y b) determinar mediante el gestor de colas (206,1225), en función del perfil de estado y/o de configuración (220.222) del robot móvil seleccionado (102a-102e,295a-295n), que el estado y/o la configuración actuales del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la prioridad especificada.
14. El procedimiento según la reivindicación 1, que comprende además:
a) recibir, mediante la interfaz de red (230), un primer trayecto planificado que el robot móvil seleccionado (102a-102e,295a-295n) planea usar para desplazarse hasta la ubicación de tarea real;
b) recibir, mediante la interfaz de red (230), un segundo trayecto planificado que un segundo robot móvil (102a-102e,295a-295n) de la flota (290) planea usar;
c) detectar, en el sistema de gestión de tareas (110,205,1205), que el primer trayecto planificado interseca el segundo trayecto planificado, y
d) en respuesta a la detección de la intersección, seleccionar mediante el gestor de colas (206,1225) un robot móvil diferente (102a-102e,295a-295n) para gestionar la solicitud de tarea.
15. El procedimiento según la reivindicación 1, que comprende además:
a) recibir, mediante el gestor de colas (206,1225), una señal de que ningún robot móvil (102a-102e,295a-295n) de la flota (290) está disponible para gestionar la solicitud de tarea; y
b) retrasar automáticamente, mediante el gestor de colas (206,1225), la selección de un robot móvil (102a-102e,295a-295n) de la flota (290) para gestionar la solicitud de tarea hasta que esté disponible un robot móvil (102a-102e,295a-295n) de la flota (290).
16. El procedimiento según la reivindicación 1, que comprende además:
c) recibir, mediante el gestor de colas (206,1225), una señal de que el robot móvil seleccionado (102a-102e,295a-295n) no pudo gestionar la solicitud de tarea; y
d) seleccionar automáticamente, con el gestor de colas (206,1225), un robot móvil diferente (102a-102e,295a-295n) de la flota (290) para gestionar la solicitud de tarea, donde el gestor de colas (206,1225) selecciona el robot móvil diferente (102a-102e,295a-295n) en función del perfil de estado (220) y del perfil de configuración (222) almacenados en la memoria (202) para el robot móvil diferente (102a-102e,295a-295n).
17. Un sistema de gestión de tareas (110,205,1205) para procesar solicitudes de tarea en un entorno físico que comprende una flota (290) de robots móviles (102a-102e,295a-295n), comprendiendo el sistema de gestión de tareas (110,205,1205):
a) una memoria (202);
b) un microprocesador (204) acoplado a la memoria (202);
caracterizado por que el sistema de gestión de tareas comprende además:
c) un gestor de colas (206,1225), que puede hacerse funcionar con el microprocesador (204) y la memoria (202) para:
(i) almacenar en la memoria (202) un mapa (208,710) que (A) define un plano de planta (210,712) correspondiente al entorno físico, (B) definir una ubicación de tarea virtual (216) con respecto al plano de planta (210,712), donde la ubicación de tarea virtual (216) representa una ubicación de tarea real en el entorno físico, y (C) hacer que el mapa comprenda una asociación entre una operación de tarea virtual (218) y la ubicación de tarea virtual (216), donde la operación de tarea virtual (218) representa una operación de tarea real en el entorno físico,
(ii) después de que el mapa se almacene en la memoria, recibir una solicitud de tarea, donde la solicitud de tarea incluye solo una de la operación de tarea virtual (218) en el mapa (208,710), o la ubicación de tarea virtual (216),
(iii) seleccionar automáticamente un robot móvil (102a-102e,295a-295n) de la flota (290) para gestionar la solicitud de tarea recibida,
(iv) determinar automáticamente la ubicación de tarea real en función de la asociación proporcionada por el mapa (208,710) y la operación de tarea virtual (218) si la solicitud de tarea no incluye la ubicación de tarea virtual (216), y
(v) determinar automáticamente la operación de tarea real en función de la asociación proporcionada por el mapa (208,710) y la ubicación de tarea virtual (216) si la solicitud de tarea no incluye la operación de tarea virtual (218); y
d) una interfaz de red (230) para transmitir uno o más comandos desde el gestor de colas (206,1225) al robot móvil seleccionado (102a-102e,295a-295n) para hacer que el robot móvil seleccionado (102a-102e,295a-295n) (i) se desplace automáticamente hasta la ubicación de tarea real, (ii) ejecute automáticamente la operación de tarea real, o (iii) lleve a cabo automáticamente tanto d)(i) como d)(ii).
18. El sistema de gestión de tareas según la reivindicación 17, que comprende además:
a) un perfil de estado (220) almacenado en la memoria (202) para cada robot móvil (102a-102e,295a-295n) de la flota (290), donde el perfil de estado (220) define un estado actual para cada dicho robot móvil (102a-102e,295a-295n);
b) en el que el gestor de colas (206,1225) determina, en función del perfil de estado (220) del robot móvil seleccionado (102a-102e,295a-295n), que el estado actual del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la solicitud de tarea.
19. El sistema de gestión de tareas (110,205,1205) según la reivindicación 18, en el que el perfil de estado (220) comprende uno o más de: un identificador de robot, una posición de robot, un rumbo de robot, una velocidad de robot actual, un identificador de tarea actual, un estado de tarea actual, una ubicación de tarea actual, una proximidad con respecto a la ubicación de tarea actual, un trayecto de destino de tarea actual, un tiempo estimado de llegada, un tiempo estimado de salida, un tiempo de inactividad de robot, un nivel de rendimiento de robot, un nivel de seguridad de robot, un nivel de carga de batería de robot, un estado de carga útil de robot, una condición de error de carga útil de robot, un estado de carga de robot y una capacidad de carga de robot.
20. El sistema de gestión de tareas (110,205,1205) según la reivindicación 17, en el que:
a) la memoria (202) almacena un perfil de configuración (222) para cada robot móvil (102a-102e,295a-295n) de la flota (290), donde el perfil de configuración (222) define una configuración actual para cada dicho robot móvil (102a-102e,295a-295n); y
b) el gestor de colas (206,1225) determina, en función del perfil de configuración (222) del robot móvil seleccionado, que la configuración actual del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la solicitud de tarea.
21. El sistema de gestión de tareas (110,205,1205) según la reivindicación 20, en el que el perfil de configuración (222) comprende uno o más de: una capacidad de manejo de materiales, una capacidad de elevación de materiales, una capacidad de transporte de materiales, una capacidad de manipulación, una capacidad de transporte de objetos, una capacidad de medición, una capacidad de detección, una capacidad de bombeo, una capacidad de pulverización, una capacidad de vacío, una capacidad de perforación, una capacidad de grabación de vídeo, una capacidad de grabación de sonido, una capacidad de producción de sonido, una capacidad de navegación, una capacidad de entrada de datos, una capacidad de salida de datos, una capacidad de comunicación de datos, una capacidad de impresión, una capacidad de visualización, una capacidad de creación de planos de planta, una capacidad de absorción de energía, una capacidad de producción de energía, una capacidad de carga útil máxima, una capacidad de carga útil mínima, una velocidad de desplazamiento máxima, una velocidad de desplazamiento mínima, una altura máxima, una altura mínima, una restricción de ubicación, una restricción de zona, una operación prohibida, una operación permitida y un requisito de espacio libre mínimo.
22. El sistema de gestión de tareas (110,205,1205) según la reivindicación 19 o la reivindicación 21, que comprende además:
a) criterios de preferencia basados en estado y/o basados en configuración; y
a) el sistema de gestión de cola está configurado para seleccionar el robot móvil (102a-102e,295a-295n) de acuerdo con los criterios de preferencia basados en estado y/o basados en configuración si dos o más robots móviles (102a-102e,295a-295n) de la flota (290) tienen configuraciones actuales que son compatibles con la solicitud de tarea.
23. El sistema de gestión de tareas (110,205,1205) según la reivindicación 19 o la reivindicación 21, en el que el gestor de colas (206,1225) está configurado además para comparar los perfiles de estado y/o de configuración (220,222) para dichos dos o más robots móviles (102a-102e,295a-295n) para identificar cuál de dichos dos o más robots móviles (102a-102e,295a-295n) tiene un perfil de estado y/o de configuración más favorable (220,222) para la operación de tarea real.
24. El sistema de gestión de tareas (110,205,1205) según la reivindicación 19 o la reivindicación 21, en el que:
a) el gestor de colas (206,1225) recibe un tiempo especificado para la ejecución de la solicitud de tarea; y a) el gestor de colas (206,1225) determina, en función del perfil de estado y/o de configuración (220,222) almacenado en la memoria (202) para el robot móvil seleccionado (102a-102e,295a-295n), que el estado y/o la configuración actuales del robot móvil seleccionado (102a-102e,295a-295n) es compatible con el tiempo especificado para la ejecución.
25. El sistema de gestión de tareas (110,205,1205) según la reivindicación 19 o la reivindicación 21, en el que:
a) el gestor de colas (206,1225) recibe una prioridad especificada para la solicitud de tarea; y
b) el gestor de colas (206,1225) determina, en función del perfil de estado y/o de configuración (220,222) del robot móvil seleccionado (102a-102e,295a-295n), que el estado y/o la configuración actuales del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la prioridad especificada.
26. El sistema de gestión de tareas (110,205,1205) según la reivindicación 19 o la reivindicación 21, en el que:
a) el gestor de colas (206,1225) recibe una combinación especificada de ubicaciones de tarea y operaciones de tarea; y
b) el gestor de colas (206,1225) determina, en función del perfil actual de estado y/o de configuración (220,222) almacenado en la memoria (202) para el robot móvil seleccionado (102a-102e,295a-295n), que el estado y/o la configuración actuales del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la combinación especificada.
27. El sistema de gestión de tareas (110,205,1205) según la reivindicación 19 o la reivindicación 21, en el que:
a) el gestor de colas (206,1225) recibe una ruta especificada que el robot móvil seleccionado (102a-102e,295a-295n) utilizará para desplazarse hasta la ubicación de tarea real; y
b) el gestor de colas (206,1225) determina, en función del perfil actual de estado y/o de configuración (220,222) almacenado en la memoria (202) para el robot móvil seleccionado (102a-102e,295a-295n), que el estado y/o
la configuración actuales del robot móvil seleccionado (102a-102e,295a-295n) es compatible con la ruta especificada.
28. El sistema de gestión de tareas (110,205,1205) según la reivindicación 19 o la reivindicación 21, en el que: a) la solicitud de tarea incluye una solicitud para asignar un robot móvil particular (102a-102e,295a-295n) para gestionar la solicitud de tarea; y
b) el gestor de colas (206,1225) determina, en función del perfil actual de estado y/o de configuración (220,222) almacenado en la memoria (202) para el robot móvil particular (102a-102e,295a-295n), que el estado y/o la configuración actuales del robot móvil particular (102a-102e,295a-295n) es compatible con la solicitud de tarea.
29. El sistema de gestión de tareas (110,205,1205) según la reivindicación 28, en el que el gestor de colas (206,1225) determina automáticamente un robot móvil diferente (102a-102e,295a-295n) para la solicitud de tarea si el perfil de configuración (222) del robot móvil particular (102a-102e,295a-295n) no es compatible con la solicitud de tarea.
30. El sistema de gestión de tareas (110,205,1205) según la reivindicación 19 o la reivindicación 21, en el que el perfil de configuración (222) almacenado en la memoria (202) para dicho robot móvil seleccionado (102a-102e,295a-295n) se actualiza periódicamente.
31. El sistema de gestión de tareas (110,205,1205) según la reivindicación 19 o la reivindicación 21, en el que: a) el sistema de gestión de tareas (110,205,1205) recibe un primer trayecto planificado que el robot móvil seleccionado (102a-102e,295a-295n) planea usar para desplazarse hasta la ubicación de tarea real;
b) el sistema de gestión de tareas (110,205,1205) recibe un segundo trayecto planificado que un segundo robot móvil (102a-102e,295a-295n) de la flota (290) planea usar;
c) el sistema de gestión de tareas (110,205,1205) detecta que el primer trayecto planificado interseca el segundo trayecto planificado, y
d) en respuesta a la detección de la intersección, el gestor de colas (206,1225) selecciona un robot móvil diferente (102a-102e,295a-295n) para gestionar la solicitud de tarea.
32. Un medio de almacenamiento no transitorio legible por ordenador con un programa ejecutable para procesar solicitudes de tarea en un entorno físico que comprende una flota (290) de robots móviles (102a-102e,295a-295n), donde el programa ejecutable comprende instrucciones de programa para hacer que uno o más microprocesadores en un sistema informático realicen el procedimiento según cualquiera de las reivindicaciones 1 a 16.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261596685P | 2012-02-08 | 2012-02-08 | |
PCT/US2013/025336 WO2013119942A1 (en) | 2012-02-08 | 2013-02-08 | Job management sytem for a fleet of autonomous mobile robots |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2827192T3 true ES2827192T3 (es) | 2021-05-20 |
Family
ID=48948055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13746935T Active ES2827192T3 (es) | 2012-02-08 | 2013-02-08 | Sistema de gestión de tareas para una flota de robots móviles autónomos |
Country Status (7)
Country | Link |
---|---|
US (1) | US10089586B2 (es) |
EP (1) | EP2791748B8 (es) |
DK (1) | DK2791748T3 (es) |
ES (1) | ES2827192T3 (es) |
PL (1) | PL2791748T3 (es) |
SG (1) | SG11201400963SA (es) |
WO (1) | WO2013119942A1 (es) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210272225A1 (en) * | 2017-04-19 | 2021-09-02 | Global Tel*Link Corporation | Mobile correctional facility robots |
US20220236742A1 (en) * | 2021-01-28 | 2022-07-28 | Toyota Jidosha Kabushiki Kaisha | Autonomous mobile system, autonomous mobile method, and storage medium |
Families Citing this family (227)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9440356B2 (en) * | 2012-12-21 | 2016-09-13 | Crosswing Inc. | Customizable robotic system |
SG11201400958XA (en) * | 2012-01-25 | 2014-04-28 | Adept Technology Inc | Autonomous mobile robot for handling job assignments in a physical environment inhabited by stationary and non-stationary obstacles |
US10054933B2 (en) * | 2012-03-27 | 2018-08-21 | Sirqul, Inc. | Controlling distributed device operations |
US9397518B1 (en) * | 2013-02-22 | 2016-07-19 | Daniel Theobald | Wirelessly transferring energy to a mobile device |
US10482550B1 (en) * | 2013-03-27 | 2019-11-19 | Vecna Robotics, Inc. | Mobile robot for performing hospitality service(s) for guest(s) of a hospitatlity business |
US20160271803A1 (en) * | 2013-05-03 | 2016-09-22 | Michael Stewart | Robotic disinfection system |
ES2968379T3 (es) | 2013-09-09 | 2024-05-09 | Dematic Corp | Recogida móvil autónoma |
FR3013927B1 (fr) * | 2013-11-22 | 2017-03-31 | Schneider Electric Ind Sas | Dispositif de commande pouvant se connecter a un reseau de communication reliant une interface de commande a un equipement |
CN105745585B (zh) * | 2013-11-26 | 2018-05-08 | 西门子公司 | 卸载人机交互任务 |
US8825226B1 (en) | 2013-12-17 | 2014-09-02 | Amazon Technologies, Inc. | Deployment of mobile automated vehicles |
US9405533B2 (en) * | 2014-01-07 | 2016-08-02 | Schlumberger Technology Corporation | Unmanned vehicle systems and methods of operation |
US12075957B2 (en) | 2014-03-24 | 2024-09-03 | Intelligent Cleaning Equipment Holdings Co. Ltd. | Floor cleaning machines having intelligent systems, associated sub-assemblies incorporating intelligent systems, and associated methods of use |
US9446512B1 (en) * | 2014-03-26 | 2016-09-20 | Stc.Unm | iAnt swarm robotic platform and evolutionary algorithms |
US9643779B2 (en) * | 2014-03-31 | 2017-05-09 | Panasonic Intellectual Property Corporation Of America | Article management system and transport robot |
CN106457569B (zh) * | 2014-04-10 | 2019-03-12 | 宽射咨询公司 | 机器人系统及操作机器人系统的方法 |
US10858202B1 (en) | 2014-04-14 | 2020-12-08 | Amazon Technologies, Inc. | Air cushioned materials handling system |
GB201409883D0 (en) | 2014-06-03 | 2014-07-16 | Ocado Ltd | Methods, systems, and apparatus for controlling movement of transporting devices |
GB201410025D0 (en) | 2014-06-05 | 2014-07-16 | Ocado Ltd | Systems and methods for communication |
US10363656B1 (en) * | 2014-06-25 | 2019-07-30 | Santa Clara University | Multi-robot gradient based adaptive navigation system |
US10754352B1 (en) * | 2014-06-25 | 2020-08-25 | Santa Clara University | Multi-robot gradient based adaptive navigation system |
EP2962890B1 (en) | 2014-06-30 | 2016-05-11 | ABB Technology Ltd | Energy storage robot |
US9665432B2 (en) | 2014-08-07 | 2017-05-30 | Microsoft Technology Licensing, Llc | Safe data access following storage failure |
US9847918B2 (en) * | 2014-08-12 | 2017-12-19 | Microsoft Technology Licensing, Llc | Distributed workload reassignment following communication failure |
US10517234B2 (en) * | 2014-08-27 | 2019-12-31 | Ponsse Oyj | Method, arrangement and user interface for presenting data describing forest work unit operation |
WO2016061255A1 (en) | 2014-10-14 | 2016-04-21 | Harvest Automation, Inc. | Storage material handling system |
US10845822B2 (en) * | 2014-10-31 | 2020-11-24 | Clearpath Robotics Inc. | Systems and methods for utilizing fleets of robots |
US9606544B2 (en) * | 2014-10-31 | 2017-03-28 | Clearpath Robotics, Inc. | System, computing device and method for unmanned vehicle fleet control |
US10022867B2 (en) | 2014-11-11 | 2018-07-17 | X Development Llc | Dynamically maintaining a map of a fleet of robotic devices in an environment to facilitate robotic action |
US9928474B1 (en) * | 2014-12-12 | 2018-03-27 | Amazon Technologies, Inc. | Mobile base utilizing transportation units for delivering items |
US10518407B2 (en) | 2015-01-06 | 2019-12-31 | Discovery Robotics | Apparatus and methods for providing a reconfigurable robotic platform |
US11400595B2 (en) | 2015-01-06 | 2022-08-02 | Nexus Robotics Llc | Robotic platform with area cleaning mode |
EP3265884A4 (en) * | 2015-02-12 | 2018-12-12 | Melonee Wise | System and method for order fulfillment using robots |
US9864371B2 (en) * | 2015-03-10 | 2018-01-09 | John Bean Technologies Corporation | Automated guided vehicle system |
FR3034410B1 (fr) * | 2015-04-02 | 2020-10-23 | Gebo Packaging Solutions France | Dispositif de convoyage par chariot autonome |
US9494439B1 (en) | 2015-05-13 | 2016-11-15 | Uber Technologies, Inc. | Autonomous vehicle operated with guide assistance of human driven vehicles |
US9547309B2 (en) * | 2015-05-13 | 2017-01-17 | Uber Technologies, Inc. | Selecting vehicle type for providing transport |
US10304025B2 (en) | 2015-05-26 | 2019-05-28 | Locanis Ag | Controlling industrial trucks in a warehouse |
US20160349754A1 (en) * | 2015-05-29 | 2016-12-01 | Clearpath Robotics, Inc. | Method, system and apparatus for controlling self-driving vehicles |
US10406045B2 (en) * | 2015-06-22 | 2019-09-10 | Stryker Corporation | Patient support apparatuses with navigation and guidance systems |
US9922282B2 (en) * | 2015-07-21 | 2018-03-20 | Limitless Computing, Inc. | Automated readiness evaluation system (ARES) for use with an unmanned aircraft system (UAS) |
US9945677B1 (en) * | 2015-07-23 | 2018-04-17 | X Development Llc | Automated lane and route network discovery for robotic actors |
US9592964B2 (en) * | 2015-07-23 | 2017-03-14 | Pinc Solutions | System and method for determining and controlling status and location of an object |
DE102015216272A1 (de) | 2015-08-26 | 2017-03-02 | Airbus Operations Gmbh | Modularer Roboter-Bausatz, Schwarm modularisierter Roboter und Verfahren zum Erledigen von Aufgaben durch einen Schwarm modularisierter Roboter |
US10195740B2 (en) | 2015-09-10 | 2019-02-05 | X Development Llc | Using object observations of mobile robots to generate a spatio-temporal object inventory, and using the inventory to determine monitoring parameters for the mobile robots |
US10016897B2 (en) * | 2015-09-14 | 2018-07-10 | OneMarket Network LLC | Robotic systems and methods in prediction and presentation of resource availability |
US10168711B2 (en) | 2015-09-16 | 2019-01-01 | Omron Adept Technologies, Inc. | Method and apparatus for autonomous conveyance of transport carts |
US10139828B2 (en) | 2015-09-24 | 2018-11-27 | Uber Technologies, Inc. | Autonomous vehicle operated with safety augmentation |
EP3362865B1 (en) | 2015-10-13 | 2021-07-21 | Starship Technologies OÜ | Method and system for autonomous or semi-autonomous delivery |
US10048697B1 (en) | 2015-10-29 | 2018-08-14 | Vecna Technologies, Inc. | Mobile robot with conveyor system |
EP3370978B1 (en) | 2015-11-02 | 2020-06-03 | Starship Technologies OÜ | Obstacle traversing mobile robot |
CN108349301B (zh) | 2015-11-02 | 2021-12-28 | 星船科技私人有限公司 | 用于越过竖向障碍物的系统和方法 |
US9688472B1 (en) | 2015-12-10 | 2017-06-27 | Amazon Technologies, Inc. | Mobile robot manipulator |
US9740207B2 (en) * | 2015-12-23 | 2017-08-22 | Intel Corporation | Navigating semi-autonomous mobile robots |
FR3046245B1 (fr) | 2015-12-24 | 2018-02-16 | Partnering 3.0 | Systeme de surveillance de qualite d'air et station d'accueil pour robot mobile equipe de capteurs de qualite d'air |
US11163311B2 (en) | 2015-12-24 | 2021-11-02 | Partnering 3.0 | Robotic equipment including a mobile robot, method for recharging a battery of such mobile robot, and mobile robot docking station |
AU2016384096B2 (en) * | 2016-01-04 | 2019-10-24 | Zhejiang Libiao Robots Co., Ltd. | Method and device for returning robots from site |
US10513033B2 (en) * | 2016-03-25 | 2019-12-24 | Locus Robotics Corp. | Robot queuing in order fulfillment operations |
US10078330B2 (en) | 2016-03-25 | 2018-09-18 | International Business Machines Corporation | Coordinating robotic apparatus deliveries |
JP6738555B2 (ja) * | 2016-05-23 | 2020-08-12 | 富士ゼロックス株式会社 | ロボット制御システム |
US10108193B2 (en) * | 2016-05-27 | 2018-10-23 | Glen C Wernersbach | Mover system |
AU2017270574A1 (en) | 2016-05-27 | 2018-12-13 | Uber Technologies, Inc. | Facilitating rider pick-up for a self-driving vehicle |
EP3258433A1 (en) | 2016-06-17 | 2017-12-20 | Starship Technologies OÜ | Method and system for delivering items |
JP2019530034A (ja) * | 2016-07-01 | 2019-10-17 | イノベーション マトリックス, インコーポレイテッドInnovation Matrix, Inc. | ロボットフリート派遣要求システム |
WO2018013538A1 (en) * | 2016-07-13 | 2018-01-18 | Discovery Robotics | Apparatus and methods for providing a reconfigurable robotic platform |
WO2018009981A1 (en) | 2016-07-15 | 2018-01-18 | Fastbrick Ip Pty Ltd | Brick/block laying machine incorporated in a vehicle |
US10928792B2 (en) * | 2016-07-25 | 2021-02-23 | Leridge Corporation | Parallel manufacturing systems and methods |
US10482527B2 (en) * | 2016-07-28 | 2019-11-19 | OneMarket Network LLC | Systems and methods to predict resource availability |
US10071856B2 (en) * | 2016-07-28 | 2018-09-11 | X Development Llc | Inventory management |
US11880784B2 (en) | 2016-08-05 | 2024-01-23 | Starship Technologies Oü | System and mobile freight station and method for distribution, delivery, and collection of freight |
WO2018039337A1 (en) | 2016-08-23 | 2018-03-01 | Canvas Technology, Inc. | Autonomous cart for manufacturing and warehouse applications |
US9663292B1 (en) * | 2016-09-09 | 2017-05-30 | Amazon Technologies, Inc. | Forecasted robotic drive unit dispatch |
US10353395B2 (en) * | 2016-09-26 | 2019-07-16 | X Development Llc | Identification information for warehouse navigation |
WO2018099930A1 (en) | 2016-12-02 | 2018-06-07 | Starship Technologies Oü | System and method for securely delivering packages to different delivery recipients with a single vehicle |
EP3330908A1 (en) | 2016-12-02 | 2018-06-06 | Starship Technologies OÜ | System and method for securely delivering packages to different delivery recipients with a single vehicle |
EP3333419A3 (en) * | 2016-12-08 | 2018-09-12 | Panasonic Intellectual Property Management Co., Ltd. | Actuator device |
WO2018108832A1 (en) | 2016-12-14 | 2018-06-21 | Starship Technologies Oü | Robot, system and method detecting and/or responding to transitions in height |
US10585440B1 (en) * | 2017-01-23 | 2020-03-10 | Clearpath Robotics Inc. | Systems and methods for using human-operated material-transport vehicles with fleet-management systems |
CA3051474A1 (en) * | 2017-01-30 | 2018-08-02 | Walmart Apollo, Llc | Distributed autonomous robot interfacing systems and methods |
US10159181B2 (en) * | 2017-02-02 | 2018-12-25 | Robin Technologies, Inc. | Automated secure door for robotic mower |
EP3373231A1 (en) * | 2017-03-07 | 2018-09-12 | Siemens Aktiengesellschaft | Operating industrial plant machines preventing collisions |
JP6624139B2 (ja) * | 2017-03-24 | 2019-12-25 | カシオ計算機株式会社 | 自律移動装置、自律移動方法及びプログラム |
US10928835B2 (en) | 2017-03-27 | 2021-02-23 | Clearpath Robotics Inc. | Systems and methods for flexible manufacturing using self-driving vehicles |
WO2018178875A1 (en) * | 2017-03-27 | 2018-10-04 | Clearpath Robotics, Inc. | Systems and methods for autonomous provision replenishment |
US10990919B2 (en) | 2017-03-27 | 2021-04-27 | Clearpath Robotics Inc. | Systems and methods for autonomous lineside parts delivery to an assembly line process |
US10470841B2 (en) | 2017-03-28 | 2019-11-12 | Steris Inc. | Robot-based rack processing system |
US10805068B1 (en) | 2017-04-05 | 2020-10-13 | State Farm Mutual Automobile Insurance Company | Systems and methods for feature-based rating via blockchain |
DE102017206291B4 (de) * | 2017-04-12 | 2024-05-23 | Audi Ag | Verfahren zum Betreiben eines Transportsystems sowie entsprechendes Transportsystem |
US20180299899A1 (en) * | 2017-04-13 | 2018-10-18 | Neato Robotics, Inc. | Localized collection of ambient data |
DE102017207167A1 (de) * | 2017-04-28 | 2018-10-31 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zum Betrieb von Transportsystemen |
DE102017207341A1 (de) | 2017-05-02 | 2018-11-08 | Henkel Ag & Co. Kgaa | Verfahren zur Steuerung von Reinigungsgeräten |
WO2018206514A1 (en) | 2017-05-11 | 2018-11-15 | Starship Technologies Oü | A signalling device and system for increasing visibility of a mobile robot |
US10850395B2 (en) * | 2017-05-19 | 2020-12-01 | Stc.Unm | System and methods for multiple-place swarm foraging with dynamic depots |
EP3631363A1 (en) | 2017-05-24 | 2020-04-08 | Starship Technologies OÜ | Device and method for detection and localization of vehicles |
WO2018213931A1 (en) | 2017-05-25 | 2018-11-29 | Clearpath Robotics Inc. | Systems and methods for process tending with a robot arm |
WO2018215581A1 (en) | 2017-05-26 | 2018-11-29 | Starship Technologies Oü | A battery and a system for swapping and/or charging a battery of a mobile robot |
WO2018215579A1 (en) | 2017-05-26 | 2018-11-29 | Starship Technologies Oü | A device, method and system for swapping and/or charging a battery of a mobile robot |
RU2662297C1 (ru) * | 2017-05-31 | 2018-07-25 | Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный университет аэрокосмического приборостроения" | Способ группового вождения дорожных дронов и система для его осуществления |
US20180370028A1 (en) * | 2017-06-24 | 2018-12-27 | Elizabeth Marie De Zulueta | Autonomous Robotic Aide |
US11760221B2 (en) | 2017-06-27 | 2023-09-19 | A9.Com, Inc. | Charging systems and methods for autonomous carts |
US10793369B2 (en) | 2017-07-12 | 2020-10-06 | A9.Com, Inc. | Conveyor system for autonomous robot |
WO2019018337A1 (en) * | 2017-07-20 | 2019-01-24 | Walmart Apollo, Llc | TASK MANAGEMENT OF AUTONOMOUS PRODUCT DELIVERY VEHICLES |
US11119476B2 (en) * | 2017-07-26 | 2021-09-14 | Clearpath Robotics Inc. | Systems and methods for monitoring a self driving vehicle |
US10507787B2 (en) * | 2017-07-28 | 2019-12-17 | Nuro, Inc. | System and mechanism for upselling products on autonomous vehicles |
EP3659104B1 (en) | 2017-07-28 | 2024-01-17 | Starship Technologies OÜ | Device and system for secure package delivery by a mobile robot |
EP3441837B1 (en) * | 2017-08-07 | 2023-11-15 | Nokia Solutions and Networks Oy | Unmanned vehicles |
CN107527115A (zh) * | 2017-08-14 | 2017-12-29 | 震坤行工业超市(上海)有限公司 | 智能仓储管理方法、装置、系统、及无人智能仓储设备 |
US20210016438A1 (en) | 2017-08-17 | 2021-01-21 | Fastbrick Ip Pty Ltd | Interaction system configuration |
JP6875228B2 (ja) * | 2017-08-23 | 2021-05-19 | 株式会社日立製作所 | ロボット調達装置、及びロボット調達方法 |
US10282995B2 (en) | 2017-09-05 | 2019-05-07 | Starship Technologies Oü | Mobile robot having collision avoidance system for crossing a road from a pedestrian pathway |
DE102017215745A1 (de) * | 2017-09-07 | 2019-03-07 | Koenig & Bauer Ag | Verfahren zum Betreiben einer Druckmaschine |
WO2019053162A1 (en) | 2017-09-15 | 2019-03-21 | Starship Technologies Oü | SYSTEM AND METHOD FOR ARTICLE DISTRIBUTION BY A MOBILE ROBOT |
DE102017008866A1 (de) * | 2017-09-20 | 2019-03-21 | Grenzebach Maschinenbau Gmbh | Datentechnisches System zur Organisation von Arbeitsabläufen bei dem die Zusammenarbeit von Menschen und Maschinen bei optimaler Schutzwirkung der beteiligten Menschen intralogistisch gesteuert wird und Verfahren zu dessen Installation. |
JP2019059004A (ja) * | 2017-09-28 | 2019-04-18 | セイコーエプソン株式会社 | ロボットシステム |
WO2019063816A1 (en) | 2017-09-29 | 2019-04-04 | Roeq Aps | SYSTEM FOR CONNECTING AN AUTONOMOUS MOBILE ROBOT |
WO2019068634A1 (en) | 2017-10-02 | 2019-04-11 | Starship Technologies Oü | DEVICE AND METHOD FOR DISTRIBUTING ARTICLES CONSUMABLE BY A MOBILE ROBOT |
WO2019084686A1 (en) | 2017-10-31 | 2019-05-09 | Clearpath Robotics Inc. | Systems and methods for operating robotic equipment in controlled zones |
EP3704555B1 (en) | 2017-11-02 | 2023-07-19 | Starship Technologies OÜ | Visual localization and mapping in low light conditions |
JP6939448B2 (ja) * | 2017-11-13 | 2021-09-22 | トヨタ自動車株式会社 | 環境改善システムおよび環境改善方法、ならびにそれに用いられるサーバおよびプログラム |
US10343286B2 (en) | 2017-12-01 | 2019-07-09 | Starship Technologies Oü | Storage system, use and method with robotic parcel retrieval and loading onto a delivery vehicle |
US10157396B1 (en) * | 2017-12-19 | 2018-12-18 | Capital One Services, Llc | Allocation of service provider resources based on a capacity to provide the service |
US10606269B2 (en) | 2017-12-19 | 2020-03-31 | X Development Llc | Semantic obstacle recognition for path planning |
US11176630B2 (en) * | 2017-12-21 | 2021-11-16 | Wing Aviation Llc | Dynamic UAV transport tasks |
CN109968352B (zh) * | 2017-12-28 | 2021-06-04 | 深圳市优必选科技有限公司 | 一种机器人控制方法及机器人、具有存储功能的装置 |
US11738947B2 (en) | 2017-12-31 | 2023-08-29 | Bionichive Ltd. | Method for predicting energy consumption of motors |
WO2019140536A1 (en) * | 2018-01-22 | 2019-07-25 | Clearpath Robotics Inc. | Systems and methods for measuring fleets of self-driving industrial vehicles |
WO2019144222A1 (en) | 2018-01-24 | 2019-08-01 | Clearpath Robotics Inc. | Systems and methods for maintaining vehicle state information |
EP3525374B1 (en) * | 2018-02-07 | 2021-10-06 | Volkswagen Aktiengesellschaft | Method for data communication between at least two participants of a wireless communication system, corresponding control unit and vehicle equipped with a control unit as well as computer program |
US11256270B2 (en) | 2018-02-07 | 2022-02-22 | Clearpath Robotics Inc. | Communication systems for self-driving vehicles, and methods of providing thereof |
US11144051B2 (en) | 2018-02-28 | 2021-10-12 | Clearpath Robotics Inc. | Systems and methods for remote viewing of self-driving vehicles |
US10754346B2 (en) * | 2018-03-03 | 2020-08-25 | Fetch Robotics, Inc. | System and method for preventing depletion of a robotic energy source |
WO2019195121A1 (en) * | 2018-04-03 | 2019-10-10 | Walmart Apollo, Llc | Digital worker management system |
US10908950B1 (en) * | 2018-04-20 | 2021-02-02 | Automation Anywhere, Inc. | Robotic process automation system with queue orchestration and task prioritization |
US11354164B1 (en) | 2018-04-20 | 2022-06-07 | Automation Anywhere, Inc. | Robotic process automation system with quality of service based automation |
JP7052546B2 (ja) * | 2018-05-11 | 2022-04-12 | トヨタ自動車株式会社 | 自律移動システム、自律移動体、充電ドック、制御方法、及びプログラム |
CA3100279C (en) * | 2018-05-21 | 2023-08-22 | Beijing Geekplus Technology Co., Ltd. | Order processing method and device, server, and storage medium |
EP3797377A1 (en) | 2018-05-22 | 2021-03-31 | Starship Technologies OÜ | Method and system for analyzing robot surroundings |
WO2019242652A1 (zh) * | 2018-06-21 | 2019-12-26 | 北京极智嘉科技有限公司 | 机器人调度、机器人路径的控制方法、服务器和存储介质 |
WO2020005828A1 (en) * | 2018-06-25 | 2020-01-02 | Walmart Apollo, Llc | Universal robot and device support system |
US11353869B2 (en) * | 2018-07-11 | 2022-06-07 | Jacob Mizrahi | Methods and systems for defined autonomous services |
JP2020030476A (ja) * | 2018-08-20 | 2020-02-27 | 富士ゼロックス株式会社 | 情報処理システム、自走式移動装置及びプログラム |
US11532228B2 (en) | 2018-08-22 | 2022-12-20 | Starship Technologies Oü | Method and system for traffic light signal detection and usage |
CN109002027B (zh) * | 2018-08-31 | 2020-06-23 | 北京图森智途科技有限公司 | 一种中控方法和中控系统 |
WO2020056125A1 (en) * | 2018-09-14 | 2020-03-19 | Human Automation Teaming Solutions, Inc. | Coordination of remote vehicles using automation level assignments |
US10671064B2 (en) * | 2018-09-17 | 2020-06-02 | Wing Aviation Llc | Unmanned aerial vehicle fleet management |
US10867275B1 (en) * | 2018-09-17 | 2020-12-15 | Amazon Technologies, Inc. | Optimized package loading |
US11092973B2 (en) * | 2018-09-28 | 2021-08-17 | Invia Robotics, Inc. | Coordinated operation of autonomous robots |
WO2020078900A1 (en) | 2018-10-15 | 2020-04-23 | Starship Technologies Oü | Method and system for operating a robot |
WO2020086974A1 (en) * | 2018-10-26 | 2020-04-30 | Walmart Apollo, Llc | Automatic power source charging and swapping system for an autonomous vehicle (av) |
CN109279252B (zh) * | 2018-10-30 | 2022-10-11 | 北京极智嘉科技股份有限公司 | 货物拣选系统和方法 |
US10710239B2 (en) * | 2018-11-08 | 2020-07-14 | Bank Of America Corporation | Intelligent control code update for robotic process automation |
CN109560766B (zh) * | 2018-11-09 | 2020-05-22 | 苏州瑞得恩光能科技有限公司 | 一种机器人调度方法 |
CN111275370A (zh) * | 2018-12-04 | 2020-06-12 | 北京京东尚科信息技术有限公司 | Agv动态调度方法、系统、设备及存储介质 |
US11945651B2 (en) * | 2019-01-03 | 2024-04-02 | Lg Electronics Inc. | Method of controlling robot system |
WO2020170595A1 (ja) * | 2019-02-20 | 2020-08-27 | パナソニックIpマネジメント株式会社 | 待機位置決定装置および待機位置決定方法 |
WO2020200854A1 (en) | 2019-04-01 | 2020-10-08 | Starship Technologies Oü | System and method for vending items |
US11308534B2 (en) * | 2019-04-05 | 2022-04-19 | Packsize Llc | Automated third-party cost estimation and production |
WO2020217365A1 (ja) * | 2019-04-24 | 2020-10-29 | パナソニックIpマネジメント株式会社 | 統合ナビゲーションシステムおよび作業指示方法 |
US11892848B2 (en) | 2019-05-16 | 2024-02-06 | Starship Technologies Oü | Method, robot and system for interacting with actors or item recipients |
US11822864B2 (en) * | 2019-05-20 | 2023-11-21 | Schlumberger Technology Corporation | Digital avatar platform |
TWI699636B (zh) * | 2019-05-21 | 2020-07-21 | 華邦電子股份有限公司 | 協同型機器人控制系統和方法 |
CN113272842A (zh) * | 2019-05-27 | 2021-08-17 | 松下知识产权经营株式会社 | 信息处理方法以及信息处理系统 |
FR3098936B1 (fr) | 2019-07-15 | 2021-06-18 | Stanley Robotics | Procédé de gestion d’une flotte de robots autonomes de parking par un superviseur. |
DE102019211245A1 (de) * | 2019-07-29 | 2021-02-04 | Kuka Deutschland Gmbh | Transportbehältergreifer |
US20210072027A1 (en) * | 2019-09-09 | 2021-03-11 | Caci, Inc. - Federal | Systems and methods for providing localization and navigation services |
CN110706397A (zh) * | 2019-10-03 | 2020-01-17 | 重庆市炙热科技发展有限公司 | 一种基于分批定量服务排队安排方案的评估方法 |
WO2021076579A1 (en) | 2019-10-18 | 2021-04-22 | Off-World, Inc. | Industrial robotic platforms |
WO2022133330A1 (en) * | 2020-12-18 | 2022-06-23 | Strong Force Vcn Portfolio 2019, Llc | Robot fleet management and additive manufacturing for value chain networks |
WO2022240906A1 (en) * | 2021-05-11 | 2022-11-17 | Strong Force Vcn Portfolio 2019, Llc | Systems, methods, kits, and apparatuses for edge-distributed storage and querying in value chain networks |
JP7172964B2 (ja) * | 2019-11-25 | 2022-11-16 | トヨタ自動車株式会社 | 管理システム、管理方法、プログラム、自律移動装置 |
US11809200B1 (en) * | 2019-12-06 | 2023-11-07 | Florida A&M University | Machine learning based reconfigurable mobile agents using swarm system manufacturing |
JP6825686B1 (ja) * | 2019-12-17 | 2021-02-03 | 株式会社安川電機 | 生産システム、生産方法、及びプログラム |
JP7251467B2 (ja) * | 2019-12-25 | 2023-04-04 | トヨタ自動車株式会社 | システムおよび情報処理装置 |
US11526823B1 (en) | 2019-12-27 | 2022-12-13 | Intrinsic Innovation Llc | Scheduling resource-constrained actions |
SG10201914066TA (en) | 2019-12-31 | 2021-07-29 | Delta Electronics Int’L Singapore Pte Ltd | Automated guided vehicle management system and method |
US20230021649A1 (en) * | 2020-01-24 | 2023-01-26 | Tetsuya Ono | Information processing device, information processing method, and program |
US10814489B1 (en) * | 2020-02-28 | 2020-10-27 | Nimble Robotics, Inc. | System and method of integrating robot into warehouse management software |
US11961027B2 (en) * | 2020-03-06 | 2024-04-16 | Caterpillar Inc. | Methods and systems for effective utilization of autonomous machines |
EP4118500A1 (de) * | 2020-03-13 | 2023-01-18 | Sew-Eurodrive GmbH & Co. KG | Verfahren zum betreiben einer technischen anlage und technische anlage |
US11593747B2 (en) * | 2020-03-16 | 2023-02-28 | Otis Elevator Company | Automated sort area using robots |
CN111429030B (zh) * | 2020-04-16 | 2023-08-18 | 蓓安科仪(北京)技术有限公司 | 一种自主移动机器人集成调度系统及集成调度方法 |
WO2021235324A1 (ja) * | 2020-05-18 | 2021-11-25 | ファナック株式会社 | ロボット制御装置及びロボットシステム |
US20220130281A1 (en) * | 2020-07-08 | 2022-04-28 | Pixart Imaging Inc. | Electronic device control method and electronic device control system applying the electronic device control method |
US11947437B2 (en) | 2020-07-29 | 2024-04-02 | International Business Machines Corporation | Assignment of robotic devices using predictive analytics |
DE102020209746A1 (de) * | 2020-07-31 | 2022-02-03 | Airbus Operations Gmbh | Unbemanntes bodengebundenes fahrzeug zur aufrechterhaltungvon hygiene und verfahren zur verbesserung von hygienebedingungen |
US12008496B1 (en) * | 2020-08-24 | 2024-06-11 | Amazon Technologies, Inc. | Centralized fleet management system for optimizing task assignment |
US12122367B2 (en) | 2020-09-10 | 2024-10-22 | Rockwell Automation Technologies, Inc. | Systems and methods for operating one or more self-driving vehicles |
US11551183B2 (en) | 2020-09-21 | 2023-01-10 | 6 River Systems, Llc | Systems and methods for managing exceptions to orders collected by autonomous vehicles |
US11866258B2 (en) | 2020-10-19 | 2024-01-09 | Gideon Brothers d.o.o. | User interface for mission generation of area-based operation by autonomous robots in a facility context |
CN112363470A (zh) * | 2020-11-05 | 2021-02-12 | 苏州工业园区卡鲁生产技术研究院 | 用户协作型机器人控制系统 |
US20220147059A1 (en) * | 2020-11-12 | 2022-05-12 | Accenture Global Solutions Limited | Fault tolerant systems for distributed supervision of robots |
SE2051440A1 (en) * | 2020-12-11 | 2022-06-12 | Husqvarna Ab | Improved operation for a robotic work tool |
JP7367665B2 (ja) * | 2020-12-17 | 2023-10-24 | トヨタ自動車株式会社 | 情報処理装置、情報処理システム、およびプログラム |
US20230297904A1 (en) * | 2020-12-18 | 2023-09-21 | Strong Force Vcn Portfolio 2019, Llc | Clustering-Based Intelligence Service Layer for Robotic Fleet Maintenance |
TWI778474B (zh) * | 2020-12-21 | 2022-09-21 | 研能科技股份有限公司 | 室內氣體汙染過濾方法 |
CN112766723B (zh) * | 2021-01-19 | 2022-12-20 | 广州赛特智能科技有限公司 | 消毒机器人调度方法 |
CN112801622A (zh) * | 2021-02-01 | 2021-05-14 | 上海高仙自动化科技发展有限公司 | 工作站的状态管理方法及装置、工作站及可读存储介质 |
JP2024509387A (ja) * | 2021-02-23 | 2024-03-01 | 横河電機株式会社 | ロボット群の管理ためのシステム及び方法 |
US11640580B2 (en) | 2021-03-11 | 2023-05-02 | Target Brands, Inc. | Inventory ready date trailer prioritization system |
US11703861B1 (en) * | 2021-03-24 | 2023-07-18 | Amazon Technologies, Inc. | Inventory system with high-speed corridors for autonomous surface vehicles |
US20220316116A1 (en) * | 2021-04-06 | 2022-10-06 | Yong Jin | Agile manufacturing system and methods |
JP7559662B2 (ja) * | 2021-04-14 | 2024-10-02 | トヨタ自動車株式会社 | ロボット制御システム、ロボット制御方法、及びプログラム |
US20230222531A1 (en) | 2021-04-16 | 2023-07-13 | Strong Force Vcn Portfolio 2019, Llc | Autonomous Contingency-Responsive Smart Contract Configuration System |
US11179849B1 (en) | 2021-04-25 | 2021-11-23 | Elisha Ben-Ezra | System and method for automated item dispersal |
AU2022274234A1 (en) * | 2021-05-11 | 2023-12-07 | Strong Force Vcn Portfolio 2019, Llc | Systems, methods, kits, and apparatuses for edge-distributed storage and querying in value chain networks |
GB2606752A (en) | 2021-05-20 | 2022-11-23 | Continental Automotive Gmbh | Robot fleet management method and system using a graph neural network |
CN113485323B (zh) * | 2021-06-11 | 2024-04-12 | 同济大学 | 一种级联多移动机器人灵活编队方法 |
US12086760B2 (en) | 2021-06-16 | 2024-09-10 | Ocado Innovation Limited | Systems and methods for dynamic management of consolidation orders |
US12093866B2 (en) * | 2021-06-16 | 2024-09-17 | Ocado Innovation Limited | Systems and methods for optimizing assembly of product kits in an order fulfillment center using autonomous vehicles |
US11676101B2 (en) * | 2021-06-16 | 2023-06-13 | 6 River Systems, Llc | Systems and methods for using kits as a source of inventory in a fulfillment center |
CN113359586A (zh) * | 2021-06-22 | 2021-09-07 | 筑橙科技(深圳)有限公司 | 外墙施工机器人实时监控方法及系统 |
US11681983B2 (en) * | 2021-07-23 | 2023-06-20 | 6 River Systems, Llc | Systems and methods for prioritizing pick jobs while optimizing efficiency |
CN113592173B (zh) * | 2021-07-28 | 2024-02-27 | 安徽大学 | 一种应用于大型公共场所的多个消毒机器人调度系统及方法 |
US20230031992A1 (en) * | 2021-07-29 | 2023-02-02 | Shopify Inc. | Systems and methods for automatic printing of shipping labels for orders bypassing stowage in a warehouse |
CN113744618A (zh) * | 2021-09-17 | 2021-12-03 | 南京东道电子装备技术研究院有限公司 | 一种沙盘式的智能工厂模拟演示系统 |
US11803805B2 (en) | 2021-09-23 | 2023-10-31 | Target Brands, Inc. | Supply chain management system and platform |
CN115277742A (zh) * | 2022-02-23 | 2022-11-01 | 智能清洁设备控股有限公司 | 用于管理机器人的系统和方法 |
CN114859883A (zh) * | 2022-03-18 | 2022-08-05 | 成都盛锴科技有限公司 | 一种检修机器人多机协作控制方法、系统及储存介质 |
US12124240B1 (en) | 2022-03-31 | 2024-10-22 | Amazon Technologies, Inc. | Heterogenous robot fleet manager |
US11774977B1 (en) | 2022-04-04 | 2023-10-03 | 6 River Systems, Llc | Systems, apparatus, and methods for optimization of autonomous vehicle workloads |
EP4286965A4 (en) * | 2022-04-11 | 2024-05-01 | Contemporary Amperex Technology Co., Limited | AGV SHIPPING CONTROL SYSTEM AND PROCEDURES |
CN114900511B (zh) * | 2022-04-25 | 2023-02-03 | 湖南大学 | 工业机器人数据同步采集加载中间件装置及方法 |
CN115061462B (zh) * | 2022-05-18 | 2024-09-24 | 安徽亚珠金刚石股份有限公司 | 一种人造金刚石车间用agv车体自动充电规划系统 |
WO2024102292A1 (en) * | 2022-11-08 | 2024-05-16 | Seegrid Corporation | System and method for optimized traffic flow through intersections with conditional convoying based on path network analysis |
WO2024115986A1 (en) * | 2022-11-29 | 2024-06-06 | Amol Mohan Bhore | A system and a method for real-time task management and context switching |
US20240182282A1 (en) * | 2022-12-05 | 2024-06-06 | Seegrid Corporation | Hybrid autonomous system and human integration system and method |
US20240184302A1 (en) * | 2022-12-05 | 2024-06-06 | Seegrid Corporation | Visualization of physical space robot queuing areas as non-work locations for robotic operations |
CN117519213B (zh) * | 2024-01-04 | 2024-04-09 | 上海仙工智能科技有限公司 | 一种多机器人协同货运控制方法及系统、存储介质 |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0078357A1 (fr) | 1981-10-29 | 1983-05-11 | "Inter-Béton" société anonyme | Procédé de réalisation d'ouvrages, en particulier d'ouvrages de protection de berges et talus, et installation pour la mise en oeuvre de ce procédé |
GB8313338D0 (en) | 1983-05-14 | 1983-06-22 | Gen Electric Co Plc | Vehicle control |
US4674048A (en) | 1983-10-26 | 1987-06-16 | Automax Kabushiki-Kaisha | Multiple robot control system using grid coordinate system for tracking and completing travel over a mapped region containing obstructions |
US4763055A (en) * | 1986-11-20 | 1988-08-09 | Westinghouse Electric Corp. | Digital robot control having high performance servo control system |
US5610815A (en) | 1989-12-11 | 1997-03-11 | Caterpillar Inc. | Integrated vehicle positioning and navigation system, apparatus and method |
US5279672A (en) | 1992-06-29 | 1994-01-18 | Windsor Industries, Inc. | Automatic controlled cleaning machine |
US5324948A (en) | 1992-10-27 | 1994-06-28 | The United States Of America As Represented By The United States Department Of Energy | Autonomous mobile robot for radiologic surveys |
US5559696A (en) | 1994-02-14 | 1996-09-24 | The Regents Of The University Of Michigan | Mobile robot internal position error correction system |
JPH07281753A (ja) | 1994-04-15 | 1995-10-27 | Toshiba Corp | 移動ロボット |
US5764014A (en) | 1996-02-01 | 1998-06-09 | Mannesmann Dematic Rapistan Corp. | Automated guided vehicle having ground track sensor |
US6853877B1 (en) | 1996-09-06 | 2005-02-08 | Nomadic Technologies | Method and apparatus for mobile robot motion control |
US5897595A (en) | 1996-12-19 | 1999-04-27 | Caterpillar Inc. | System and method for managing access of a fleet of mobile machines to a resource having multiple entry points |
US5931875A (en) * | 1996-12-19 | 1999-08-03 | Caterpillar Inc. | System and method for managing a fleet of mobile machines for dumping at a plurality of dump points |
AUPP299498A0 (en) | 1998-04-15 | 1998-05-07 | Commonwealth Scientific And Industrial Research Organisation | Method of tracking and sensing position of objects |
US6614427B1 (en) | 1999-02-01 | 2003-09-02 | Steve Aubrey | Process for making stereoscopic images which are congruent with viewer space |
US6374155B1 (en) | 1999-11-24 | 2002-04-16 | Personal Robotics, Inc. | Autonomous multi-platform robot system |
SE0004466D0 (sv) | 2000-12-04 | 2000-12-04 | Abb Ab | Mobile Robot |
US6667592B2 (en) | 2001-08-13 | 2003-12-23 | Intellibot, L.L.C. | Mapped robot system |
US6580246B2 (en) | 2001-08-13 | 2003-06-17 | Steven Jacobs | Robot touch shield |
US6895301B2 (en) | 2002-07-15 | 2005-05-17 | Distrobot Systems, Inc. | Material handling system using autonomous mobile drive units and movable inventory trays |
US6748292B2 (en) | 2002-07-15 | 2004-06-08 | Distrobot Systems, Inc. | Material handling method using autonomous mobile drive units and movable inventory trays |
US7054716B2 (en) | 2002-09-06 | 2006-05-30 | Royal Appliance Mfg. Co. | Sentry robot system |
US8386081B2 (en) | 2002-09-13 | 2013-02-26 | Irobot Corporation | Navigational control system for a robotic device |
US7015831B2 (en) | 2002-12-17 | 2006-03-21 | Evolution Robotics, Inc. | Systems and methods for incrementally updating a pose of a mobile device calculated by visual simultaneous localization and mapping techniques |
WO2004106009A1 (ja) * | 2003-06-02 | 2004-12-09 | Matsushita Electric Industrial Co., Ltd. | 物品操作システムおよび方法、並びに物品管理システムおよび方法 |
US7026954B2 (en) | 2003-06-10 | 2006-04-11 | Bellsouth Intellectual Property Corporation | Automated parking director systems and related methods |
US7250907B2 (en) | 2003-06-30 | 2007-07-31 | Microsoft Corporation | System and methods for determining the location dynamics of a portable computing device |
WO2005015466A1 (ja) | 2003-08-07 | 2005-02-17 | Matsushita Electric Industrial Co., Ltd. | 生活支援システム及びその制御用プログラム |
US7591630B2 (en) | 2003-08-29 | 2009-09-22 | Casepick Systems, Llc | Materials-handling system using autonomous transfer and transport vehicles |
US7117068B2 (en) | 2003-09-29 | 2006-10-03 | Quantum Corporation | System and method for library robotics positional accuracy using parallax viewing |
WO2005074362A2 (en) | 2004-02-03 | 2005-08-18 | F. Robotics Aquisitions Ltd. | Robot docking station |
US7908040B2 (en) | 2004-07-15 | 2011-03-15 | Raytheon Company | System and method for automated search by distributed elements |
US7650013B2 (en) | 2004-11-15 | 2010-01-19 | Mobilerobots Inc. | System and method for map and position-determination enhancement |
JP4621073B2 (ja) * | 2005-05-23 | 2011-01-26 | 本田技研工業株式会社 | ロボット制御装置 |
US7456596B2 (en) | 2005-08-19 | 2008-11-25 | Cisco Technology, Inc. | Automatic radio site survey using a robot |
ATE522330T1 (de) | 2005-09-30 | 2011-09-15 | Irobot Corp | Robotersystem mit kabelloser kommunikation mittels tcp/ip übertragung |
CA2837477C (en) | 2005-10-14 | 2016-06-21 | Aethon, Inc. | Robotic ordering and delivery apparatuses, systems and methods |
JP4375320B2 (ja) | 2005-10-27 | 2009-12-02 | 株式会社日立製作所 | 移動ロボット |
US7693654B1 (en) | 2005-11-23 | 2010-04-06 | ActivMedia Robotics/MobileRobots | Method for mapping spaces with respect to a universal uniform spatial reference |
US7912633B1 (en) | 2005-12-01 | 2011-03-22 | Adept Mobilerobots Llc | Mobile autonomous updating of GIS maps |
US20070140821A1 (en) | 2005-12-19 | 2007-06-21 | Betzalel Robotics, Llc | Autonomous load/unload robot |
US7873469B2 (en) | 2006-06-19 | 2011-01-18 | Kiva Systems, Inc. | System and method for managing mobile drive units |
US8073564B2 (en) | 2006-07-05 | 2011-12-06 | Battelle Energy Alliance, Llc | Multi-robot control interface |
US8355818B2 (en) | 2009-09-03 | 2013-01-15 | Battelle Energy Alliance, Llc | Robots, systems, and methods for hazard evaluation and visualization |
US8271132B2 (en) * | 2008-03-13 | 2012-09-18 | Battelle Energy Alliance, Llc | System and method for seamless task-directed autonomy for robots |
US7894393B2 (en) | 2006-09-26 | 2011-02-22 | Via Telecom, Inc. | Systems and methods for determining slotted mode operation timing in a hybrid access terminal |
US7966093B2 (en) * | 2007-04-17 | 2011-06-21 | Yefim Zhuk | Adaptive mobile robot system with knowledge-driven architecture |
WO2009040777A2 (en) | 2007-09-27 | 2009-04-02 | Koninklijke Philips Electronics, N.V. | Leader robot election in collaborative robot groups |
WO2009118043A1 (en) | 2008-03-26 | 2009-10-01 | Genova Robot Srl | A method and a device for determining of a vehicle for the autonomous driving of a vehicle, in particular a robotized vehicle |
EP2303085B1 (en) | 2008-04-24 | 2017-07-26 | iRobot Corporation | Application of localization, positioning & navigation systems for robotic enabled mobile products |
KR101021836B1 (ko) | 2008-10-09 | 2011-03-17 | 한국전자통신연구원 | 동적 행위 바인딩을 통한 다수 로봇의 협업 구현 시스템 및그 구현 방법 |
US8169596B2 (en) | 2009-08-17 | 2012-05-01 | Seegrid Corporation | System and method using a multi-plane curtain |
SG11201400958XA (en) | 2012-01-25 | 2014-04-28 | Adept Technology Inc | Autonomous mobile robot for handling job assignments in a physical environment inhabited by stationary and non-stationary obstacles |
-
2013
- 2013-02-08 ES ES13746935T patent/ES2827192T3/es active Active
- 2013-02-08 SG SG11201400963SA patent/SG11201400963SA/en unknown
- 2013-02-08 US US14/370,383 patent/US10089586B2/en active Active
- 2013-02-08 PL PL13746935T patent/PL2791748T3/pl unknown
- 2013-02-08 DK DK13746935.9T patent/DK2791748T3/da active
- 2013-02-08 EP EP13746935.9A patent/EP2791748B8/en active Active
- 2013-02-08 WO PCT/US2013/025336 patent/WO2013119942A1/en active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210272225A1 (en) * | 2017-04-19 | 2021-09-02 | Global Tel*Link Corporation | Mobile correctional facility robots |
US20220236742A1 (en) * | 2021-01-28 | 2022-07-28 | Toyota Jidosha Kabushiki Kaisha | Autonomous mobile system, autonomous mobile method, and storage medium |
US12032387B2 (en) * | 2021-01-28 | 2024-07-09 | Toyota Jidosha Kabushiki Kaisha | Autonomous mobile robot, autonomous mobile method, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US20140365258A1 (en) | 2014-12-11 |
EP2791748A4 (en) | 2016-01-20 |
EP2791748A1 (en) | 2014-10-22 |
EP2791748B1 (en) | 2020-09-16 |
SG11201400963SA (en) | 2014-04-28 |
DK2791748T3 (da) | 2020-11-09 |
WO2013119942A1 (en) | 2013-08-15 |
PL2791748T3 (pl) | 2021-04-06 |
US10089586B2 (en) | 2018-10-02 |
EP2791748B8 (en) | 2020-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2827192T3 (es) | Sistema de gestión de tareas para una flota de robots móviles autónomos | |
ES2812568T3 (es) | Robot móvil autónomo para ejecutar asignaciones de trabajo en un entorno físico en el que hay obstáculos estacionarios y no estacionarios | |
US11016493B2 (en) | Planning robot stopping points to avoid collisions | |
US10926410B2 (en) | Layered multi-agent coordination | |
JP6531968B2 (ja) | 移動ロボットマニピュレータ | |
US10994418B2 (en) | Dynamically adjusting roadmaps for robots based on sensed environmental data | |
Culler et al. | A prototype smart materials warehouse application implemented using custom mobile robots and open source vision technology developed using emgucv | |
US9881276B2 (en) | Ultrasonic bracelet and receiver for detecting position in 2D plane | |
US9881277B2 (en) | Wrist band haptic feedback system | |
JP6956192B2 (ja) | ロボットアドホックネットワーク | |
US10330480B1 (en) | Deployable sensors | |
US10322802B1 (en) | Deployable sensors | |
CN113678078B (zh) | 接近机器人对象检测和躲避 | |
JP7318713B2 (ja) | 搬送システム、制御装置、搬送方法及びプログラム | |
JP2019219735A (ja) | 自律移動体、および自律移動体の制御プログラム | |
US20240231390A9 (en) | Automated Recovery Assistance for Incapacitated Mobile Robots | |
CN116583801A (zh) | 环境中各区之间的机器人导航管理 | |
US12032387B2 (en) | Autonomous mobile robot, autonomous mobile method, and storage medium | |
US12008496B1 (en) | Centralized fleet management system for optimizing task assignment | |
WO2017172347A1 (en) | Wrist band haptic feedback system |