ES2900495T3 - Enfoque dinámico de ventana usando un punto crítico de pérdida óptimo de evitación de colisiones recíprocas - Google Patents

Enfoque dinámico de ventana usando un punto crítico de pérdida óptimo de evitación de colisiones recíprocas Download PDF

Info

Publication number
ES2900495T3
ES2900495T3 ES18811094T ES18811094T ES2900495T3 ES 2900495 T3 ES2900495 T3 ES 2900495T3 ES 18811094 T ES18811094 T ES 18811094T ES 18811094 T ES18811094 T ES 18811094T ES 2900495 T3 ES2900495 T3 ES 2900495T3
Authority
ES
Spain
Prior art keywords
robot
speed
candidate
path
preferred
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES18811094T
Other languages
English (en)
Inventor
Thomas Moore
Bradley Powers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Locus Robotics Corp
Original Assignee
Locus Robotics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Locus Robotics Corp filed Critical Locus Robotics Corp
Application granted granted Critical
Publication of ES2900495T3 publication Critical patent/ES2900495T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/08Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0217Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/0278Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using satellite positioning signals, e.g. GPS
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control 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/0289Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling with means for avoiding collisions between vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • G08G1/164Centralised systems, e.g. external to vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • G08G1/166Anti-collision systems for active traffic, e.g. moving vehicles, pedestrians, bikes

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Electromagnetism (AREA)

Abstract

Un método para navegar un robot a lo largo de un trayecto objetivo y evitar obstáculos, que comprende: recibir una posición objetivo de un primer robot; determinar un trayecto objetivo para el primer robot; recibir un mapa de obstáculos; recibir la posición del primer robot; recibir la posición de uno o más de los otros robots; generar un conjunto de velocidades candidatas para el primer robot; evaluar, usando una primera función objetivo, el conjunto de velocidades candidatas; caracterizado por: seleccionar del conjunto de velocidades candidatas, basándose en la primera función objetivo, una primera velocidad preferida del primer robot; crear un conjunto de obstáculos de velocidad basándose en la(s) posición(es) del uno o más de los otros robots y la primera velocidad preferida del primer robot; evaluar, utilizando una segunda función objetivo que utilice los obstáculos de velocidad y la primera velocidad preferida, el conjunto de velocidades candidatas; seleccionar del conjunto de velocidades candidatas, basándose en la segunda función objetivo, una segunda velocidad preferida para el primer robot; y mover el primer robot basándose en la segunda velocidad preferida.

Description

DESCRIPCIÓN
Enfoque dinámico de ventana usando un punto crítico de pérdida óptimo de evitación de colisiones recíprocas
Referencia cruzada a solicitudes relacionadas
Esta solicitud reivindica el beneficio de la fecha de prioridad de la solicitud US 15/712.256, presentada el 22 de septiembre de 2017, que se relaciona con la solicitud US 15/712.222 presentada el 22 de septiembre de 2017 y titulada “ Multi-Resolution Scan Matching With Exclusion Zones” .
Campo de la invención
La invención descrita en la presente descripción se refiere, generalmente, a la navegación de robots a lo largo de un trayecto objetivo hacia una ubicación objetivo en presencia de obstáculos móviles y fijos. Específicamente, la presente invención es un método mejorado para determinar la trayectoria de un movimiento incremental de un robot que evite colisiones con obstáculos, a la vez que maximiza el avance a lo largo del trayecto objetivo.
Antecedentes de la invención
En muchas aplicaciones, los robots se usan para realizar funciones en lugar de humanos o para ayudar a humanos a aumentar la productividad y la eficiencia. Una de tales aplicaciones es el cumplimiento de órdenes, que se realiza, típicamente, en un almacén grande lleno de productos para ser enviados a clientes que han realizado sus órdenes en Internet para la entrega doméstica. Cumplir tales órdenes de manera oportuna, precisa y eficaz es, al menos, un desafío logístico.
Por ejemplo, en una aplicación de compras por Internet en línea, hacer clic en el botón de “ comprar” en un carrito de compras virtual crea un “ pedido” . La orden incluye un listado de artículos que se enviarán a una dirección específica. El proceso de “ cumplimiento” implica tomar o “ recoger” físicamente estos artículos de un almacén grande, empaquetarlos y enviarlos a la dirección designada.
Un objetivo importante del proceso de cumplimiento de la orden es, por lo tanto, enviar el máximo número de productos en el menor tiempo como sea posible. El proceso de recibir una orden, planificar su cumplimiento, encontrar el anaquel o depósito de almacenamiento, recoger el producto y repetir el proceso para cada artículo en la orden, entregando entonces el pedido a una estación de envío es repetitivo e intensivo. En un almacén de existencias con miles o decenas de miles de artículos de inventario que gira rápidamente, los robots juegan un papel fundamental para asegurar el cumplimiento oportuno y eficiente de la orden. Además, los productos que finalmente serán enviados, primero necesitan ser recibidos en el almacén y ser almacenados o “ colocados” en depósitos de almacenamiento de manera ordenada a lo largo del almacén para que puedan ser recuperados fácilmente para su envío.
El uso de robots para realizar funciones de recogida y colocación puede realizarse solo mediante el robot o con la ayuda de operadores humanos. Las funciones de recogida y colocación o de existencias, se realicen o no con interacción humana, requiere que el robot navegue desde su ubicación actual hasta un almacenamiento de productos objetivo o ubicación del “ depósito” . A lo largo del trayecto objetivo del robot desde la ubicación actual hasta el depósito de almacenamiento de productos, el robot encuentra, típicamente, obstáculos fijos y móviles tales como paredes, anaqueles, estructura de soporte, personas y otros robots. Además, a medida que se almacena y se agota un nuevo producto, a medida que se añaden y se retiran nuevos anaqueles y depósitos, y a medida que se introducen objetos misceláneos en el espacio compartido por las personas y los robots, la naturaleza dinámica de un almacén de preparación de pedidos requiere una actualización constante de información sobre el almacén y sus contenidos.
Evitar obstáculos mientras se navega por el trayecto objetivo del robot implica calcular una serie de movimientos incrementales usando información sobre obstáculos fijos y móviles cercanos. El movimiento incremental no debe accionar al robot contra un obstáculo, fijo o móvil, y la trayectoria del robot para dirigir su movimiento debe calcularse dentro de un tiempo de ciclo fijo. Sin embargo, los métodos conocidos de navegación de robots eligen entre enfoques más adecuados para hacerse camino por obstáculos fijos y enfoques más adecuados para hacerse camino por obstáculos móviles, es decir, robots. Lo que se necesita es un método computacionalmente eficaz para la navegación de robots considerando obstáculos tanto móviles como fijos, mejorando por lo tanto la capacidad del robot para avanzar hacia su ubicación objetivo en el tiempo de ciclo asignado para cada movimiento incremental.
Breve descripción de la invención
Los beneficios y ventajas de la presente invención serán fácilmente evidentes a partir de la Breve descripción de la invención y la Descripción detallada a continuación. Una persona con experiencia en la materia apreciará que las enseñanzas de la presente invención pueden practicarse con realizaciones distintas de las resumidas o descritas a continuación.
La invención se expone en las reivindicaciones independientes 1 y 8.
En un primer aspecto, se propone un método para navegar un robot a lo largo de un trayecto objetivo y evitar obstáculos que comprende: recibir una posición objetivo para un primer robot; determinar un trayecto objetivo para el primer robot; recibir un mapa de obstáculos; recibir la posición del primer robot; recibir la posición de uno o más de los otros robots; generar un conjunto de velocidades candidatas para el primer robot; evaluar, usando una primera función objetivo, el conjunto de velocidades candidatas; seleccionar del conjunto de velocidades candidatas, basándose en la primera función objetivo, una primera velocidad preferida del primer robot; crear un conjunto de obstáculos de velocidad basándose en la(s) posición(es) del uno o más de los otros robots y la primera velocidad preferida del primer robot; evaluar, usando una segunda función objetivo que utilice los obstáculos de velocidad y la primera velocidad preferida, el conjunto de velocidades candidatas; seleccionar del conjunto de velocidades candidatas, basándose en la segunda función objetivo, una segunda velocidad preferida para el primer robot; y mover el primer robot basándose en la segunda velocidad preferida.
En una realización, el trayecto objetivo puede ser un trayecto desde una posición actual del primer robot hasta la posición objetivo del primer robot. La posición objetivo del robot puede ser la posición de un depósito de producto asociado fiduciario en una aplicación para un almacén de preparación de pedidos.
En algunas realizaciones, la posición del primer robot puede estar determinada por una o más de muchas multiresolution scan matching (coincidencias de exploración de múltiples resoluciones - M3RSM), adaptative monte carlo localization (localización de monte carlo adaptativa - AMCL), geo-positioning satellite (satélite de geoposicionamiento - GPS), información fiduciaria y sensores de robot basados en la odometría.
En una realización preferida, generar el conjunto de velocidades candidatas para el primer robot incluye suponer una velocidad candidata durante una o más etapas temporales aplicando restricciones de movimiento, obstáculos e inerciales para generar solamente velocidades candidatas que tengan trayectorias admisibles.
En otra realización, la primera función objetivo comprende una o más funciones de pérdida de la forma G(v,w) = a * cabecera(v,w) p * dist(v,w) y * velocidad(v,w), donde G(v,w) es la función objetivo; a, p, y son pesos; cabecera(v,w) es una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia hasta el obstáculo más cercano (su “ espacio” ); y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata (v,w) dada. La primera función objetivo puede incluir, además, una o más de una función de pérdida de trayecto que puntúa cuánto se distribuiría radialmente la velocidad candidata desde el trayecto objetivo; una función de pérdida de obstáculos que puntúa la proximidad a obstáculos; o una función de pérdida de oscilación que asigna pérdidas más altas a los cambios en la velocidad de rotación de una velocidad preferida previa. Las funciones de pérdida de la primera función objetivo pueden invalidar una velocidad candidata al asignar una puntuación de pérdida más alta a la velocidad candidata.
Aún en otra realización, crear el conjunto de objetos de velocidad incluye transformar la velocidad preferida de una velocidad no holonómica a una velocidad holonómica. Transformar la velocidad preferida a una velocidad holonómica puede incluir aumentar el radio del uno o más robots en una distancia máxima entre una trayectoria preferida y una trayectoria en línea recta.
En una realización preferida, la segunda función objetivo comprende una o más funciones de pérdida de la forma ORCA/DWA = Cdwa oorca * Corca, donde Cdwa se define como Cdwa = a * cabecera (v,w) + p * dist(v,w) + y * velocidad(v,w) con a, ¡3, y como pesos; cabecera(v,w) una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia al obstáculo más cercano; y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata (v,w) dada, y donde Corca se define como Corca = av (vt - vpref) + penalización + ad * d (P, vt), en donde ad y av son pesos; vt es una velocidad candidata que está siendo evaluada; vpref es la velocidad preferida; P es el polígono formado por la unión de VO; d (P, vt) es una medida de cuánto incumple una velocidad candidata los VO; y penalización es un coste de penalización impuesto cuando una velocidad candidata vt incumple un VO. Además, la función de pérdida d (P, vt) es una función de la distancia mínima desde el perímetro del polígono P hasta un punto definido por la trayectoria t alcanzada por la velocidad candidata vt.
En un segundo aspecto de la invención, se propone un sistema robótico para navegar un robot a lo largo de un trayecto objetivo y evitar obstáculos que comprende: un transceptor; un dispositivo de almacenamiento de datos; un procesador de datos y un dispositivo de almacenamiento de datos que tiene instrucciones almacenadas en él para su ejecución por parte del procesador de datos para: recibir una posición objetivo de un primer robot; determinar un trayecto objetivo para el primer robot; recibir un mapa de obstáculos; recibir la posición del primer robot; recibir la posición de uno o más de los otros robots; generar un conjunto de velocidades candidatas para el primer robot; evaluar, usando una primera función objetivo, el conjunto de velocidades candidatas; seleccionar del conjunto de velocidades candidatas, basándose en la primera función objetivo, una primera velocidad preferida del primer robot; crear un conjunto de obstáculos de velocidad basándose en la(s) posición(es) del uno o más de los otros robots y la primera velocidad preferida del primer robot; evaluar, usando una segunda función objetivo que utiliza los obstáculos de velocidad y la primera velocidad preferida, el conjunto de velocidades candidatas; seleccionar del conjunto de velocidades candidatas, basándose en la segunda función objetivo, una segunda velocidad preferida para el primer robot; y mover el primer robot basándose en la segunda velocidad preferida.
En una realización de este segundo aspecto, el trayecto objetivo puede ser un trayecto desde una posición actual del primer robot hasta la posición objetivo del primer robot. La posición objetivo del robot puede ser la posición de un depósito de producto asociado fiduciario en una aplicación para un almacén de preparación de pedidos.
En una realización preferida, generar el conjunto de velocidades candidatas para el primer robot incluye suponer una velocidad candidata durante una o más etapas temporales aplicando restricciones de movimiento, obstáculos e inerciales para generar solamente velocidades candidatas que tengan trayectorias admisibles.
En otra realización, la primera función objetivo comprende una o más funciones de pérdida de la forma G(v,w) = a * cabecera(v,w) p * dist(v,w) y * velocidad(v,w), donde G(v,w) es la función objetivo; a, p, y son pesos; cabecera(v,w) es una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia hasta el obstáculo más cercano (su “ espacio” ); y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata (v,w) dada. La primera función objetivo puede incluir, además, una o más de una función de pérdida de trayecto que puntúa cuánto se distribuiría radialmente la velocidad candidata desde el trayecto objetivo; una función de pérdida de obstáculos que puntúa la proximidad a obstáculos; o una función de pérdida de oscilación que asigna pérdidas más altas a los cambios en la velocidad de rotación de una velocidad preferida previa. Las funciones de pérdida de la primera función objetivo pueden invalidar una velocidad candidata al asignar una puntuación de pérdida más alta a la velocidad candidata. Aún en otra realización, crear el conjunto de objetos de velocidad incluye transformar la velocidad preferida de una velocidad no holonómica a una velocidad holonómica. Transformar la velocidad preferida a una velocidad holonómica puede incluir aumentar el radio del uno o más robots en una distancia máxima entre una trayectoria preferida y una trayectoria en línea recta.
En una realización preferida, la segunda función objetivo comprende una o más funciones de pérdida de la forma ORCA/DWA = Cdwa + gíorca * Corca, donde Cdwa se define como Cdwa = a * cabecera (v,w) + p * dist(v,w) + y * velocidad(v,w) con a, ¡3, y como pesos; cabecera(v,w) una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia al obstáculo más cercano; y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata dada (v,w), y en donde Corca se define como Corca = av (vt - vpref) + penalización + ad * d (P, vt), en donde ad y av son pesos; vt es una velocidad candidata que está siendo evaluada; vpref es la velocidad preferida; P es el polígono formado por la unión de VO; d (P, vt) es una medida de cuánto incumple una velocidad candidata los VO; y penalización es un coste de penalización impuesto cuando una velocidad candidata vt incumple un VO. Además, la función de pérdida d (P, vt) es una función de la distancia mínima desde el perímetro del polígono P hasta un punto definido por la trayectoria t alcanzada por la velocidad candidata vt.
En otra realización de la invención, existe un sistema robótico que incluye una pluralidad de robots bajo la supervisión de un sistema de supervisión para realizar los métodos del primer aspecto.
Breve descripción de las figuras
Las realizaciones de la presente invención se describirán ahora, a manera de ejemplo solamente, con referencia a las figuras adjuntas, en donde:
la Fig. 1 es una vista en planta superior de un almacén de preparación de pedidos;
la Fig.2A es una vista frontal en alzado de una base de uno de los robots usados en el almacén mostrado en la Fig. 1; la Fig. 2B es una vista en perspectiva de una base de uno de los robots usados en el almacén mostrado en la Fig. 1; la Fig. 3 es una vista en perspectiva del robot en las Figs. 2A y 2B equipado con un armazón y estacionado delante de un anaquel mostrado en la Fig. 1;
la Fig. 4 es un mapa parcial del almacén de la Fig. 1 creado mediante el uso de radar láser en el robot;
la Fig. 5 es un diagrama de flujo que representa el proceso para localizar marcadores fiduciarios dispersos por todo el almacén y almacenar las posiciones de los marcadores fiduciarios;
la Fig. 6 es una tabla de la identificación fiduciaria para mapear posiciones;
la Fig. 7 es una tabla del mapeo de la ubicación del depósito con la identificación fiduciaria;
la Fig. 8 es un diagrama de flujo que representa la SKU del producto para el proceso de mapeo de posiciones; la Fig. 9 muestra una realización de un sistema robótico para usar con los métodos y sistemas de la presente invención;
la Fig. 10 representa la navegación generalizada de un robot desde una ubicación actual hasta una ubicación objetivo a través de un entorno representado por un mapa espacial;
la Fig. 11 representa la navegación del robot en relación con un mapa SLAM del entorno de la Fig. 10, según un aspecto de la invención;
la Fig. 12 representa la navegación y el movimiento incremental de un robot que navega cerca de obstáculos y otros robots;
la Fig. 13 es un diagrama de flujo que ilustra una realización para navegar un robot a lo largo de un trayecto objetivo según la presente invención;
la Fig. 14 es un diagrama de flujo que ilustra una realización para realizar ORCA/DWA según la presente invención;
la Fig. 15 ilustra un aspecto de la invención para usar la velocidad preferida no holonómica de DWA en el análisis del objeto de velocidad de ORCA;
las Figs. 16A-C ilustran aspectos para determinar una función de pérdida de distancia y penalización para aplicar a velocidades candidatas con respecto al espacio de velocidad de ORCA para usar en la función de pérdida de ORCA.
Descripción detallada de la invención
La invención descrita en la presente descripción está dirigida a métodos y sistemas para usar con un robot autónomo o semiautónomo para la navegación mejorada del robot desde una ubicación actual hasta una ubicación objetivo a lo largo de su “trayecto objetivo” dentro de un entorno que contiene obstáculos y espacio libre. Concretamente, los métodos y sistemas de la presente invención proporcionan una mejora eficaz computacionalmente sobre la técnica anterior para determinar con precisión la siguiente velocidad instantánea para aplicar al control de propulsión del robot usando una combinación de métodos para evitar obstáculos basados en restricciones.
La descripción y las diversas características y detalles ventajosos de esta se explican más completamente con referencia a las realizaciones y ejemplos no limitantes que se describen y/o ilustran en las figuras adjuntas y se detallan en la siguiente descripción. Cabe señalar que las características ilustradas en las figuras no están necesariamente dibujadas a escala, y las características de una realización pueden emplearse con otras realizaciones como reconocerá el técnico con experiencia, aun cuando no se mencione explícitamente en la presente descripción. Además, se observa que números de referencia similares representan partes similares a lo largo de las diversas vistas de las figuras.
Las descripciones de componentes muy conocidos y técnicas de procesamiento pueden omitirse para no oscurecer innecesariamente las realizaciones de la descripción. Los ejemplos usados en la presente descripción pretenden simplemente facilitar una comprensión de las maneras en las que la descripción puede ponerse en práctica y permitir, además, que los expertos en la técnica pongan en práctica las realizaciones de la descripción. En consecuencia, los ejemplos y realizaciones de la presente descripción no deben interpretarse como limitantes del alcance de la descripción.
Un experto en la técnica apreciará que las presentes enseñanzas pueden practicarse con realizaciones distintas de las descritas. Aunque la descripción proporcionada en la presente descripción se centra en recoger artículos de ubicaciones en el almacén para cumplir una orden de envío a un cliente, el sistema es igualmente aplicable al almacenamiento o la colocación de artículos recibidos en el almacén en ubicaciones en todo el almacén para su posterior recuperación y envío a un cliente. La invención también es aplicable a tareas de control de inventarios asociadas con tal sistema de almacén, tales como consolidación, recuento, verificación, inspección y limpieza de productos.
Los métodos y sistemas de la presente invención también pueden aplicarse en otros tipos de entornos con otros tipos de obstáculos para otros tipos de aplicaciones. Cualquier objeto o estructura físico, fijo o dinámico, puede considerarse un “ obstáculo” en una aplicación de la presente invención. Los obstáculos pueden incluir, además, personas y otros robots que trabajen dentro del entorno, y la ubicación de las personas y otros robots puede ser ubicaciones actuales o ubicaciones objetivo en el rendimiento de tareas cooperativas. Las ubicaciones objetivo pueden incluir una o más ubicaciones dentro del entorno para posicionar uno o más robots para realizar o para ayudar a una persona a realizar una tarea o sucesión de tareas.
Estos y otros beneficios y ventajas serán fácilmente evidentes a partir de los ejemplos e ilustraciones que se describen a continuación.
Con referencia a la Fig. 1, un almacén 10 de preparación de pedidos típico incluye anaqueles 12 llenos con los diversos artículos que podrían incluirse en un pedido 16. En funcionamiento, la orden 16 desde el servidor de administración de almacén 15 llega a un servidor 14 de órdenes. El servidor 14 de órdenes comunica la orden 16 a un robot 18 seleccionado de una pluralidad de robots que monitorizan el almacén 10. También se muestra un área 19 de carga, que es donde pueden ubicarse una o más estaciones de carga según un aspecto de la invención.
En una realización preferida, un robot 18, mostrado en las Figs. 2A y 2B, incluye una base 20 con ruedas autónoma que tiene un radar láser 22. La base 20 presenta, además, un transceptor (no se muestra) que permite que el robot 18 reciba instrucciones desde el servidor 14 de órdenes y un par de cámaras ópticas digitales 24a y 24b. La base del robot también incluye un puerto 26 de carga eléctrica para recargar las baterías que alimentan la base 20 con ruedas autónoma. La base 20 presenta, además, un procesador (no se muestra) que recibe datos del radar láser 22 y de las cámaras 24a y 24b para capturar información representativa del entorno del robot. Existe una memoria (no se muestra) que funciona con el procesador para realizar diversas tareas asociadas con la navegación dentro del almacén 10, así como para navegar al marcador fiduciario 30 colocado en los anaqueles 12, como se muestra en la Fig. 3. El marcador fiduciario 30 (p. ej., un código de barras bidimensional) corresponde al depósito/ubicación de un elemento ordenado. El enfoque de navegación de esta invención se describe en detalle más adelante con respecto a las Figs. 4-8. Los marcadores fiduciarios también se usan para identificar estaciones de carga según un aspecto de esta invención, y la navegación a tales marcadores fiduciarios de estación de carga es la misma que la navegación al depósito/a la ubicación de los artículos pedidos. Una vez que los robots navegan a una estación de carga, se usa un enfoque de navegación más preciso para fijar el robot con la estación de carga y dicho enfoque de navegación se describe a continuación.
Otra vez con referencia a la Fig. 2B, la base 20 incluye una superficie superior 32 en donde podría almacenarse una bolsa o depósito para portar artículos. También se muestra un acoplamiento 34 que acopla uno cualquiera de una pluralidad de armazones 40 intercambiables, uno de los cuales se muestra en la Fig. 3. El armazón 40 particular de la Fig. 3 presenta un soporte de bolsa 42 (en este caso un anaquel) para portar una bolsa 44 que recibe artículos, y un soporte de tableta 46 (u ordenador portátil/otro dispositivo de entrada de usuario) para soportar una tableta 48. En algunas realizaciones, el armazón 40 soporta una o más bolsas para llevar artículos. En otras realizaciones, la base 20 soporta una o más bolsas para transportar los artículos recibidos. Como se usa en la presente descripción, el término “ bolsa” incluye, sin limitarse a, soportes de carga, cajones, jaulas, anaqueles, varillas de las cuales se pueden colgar artículos, chaflanes, cajas, sacos, soportes, botes, contenedores y repositorios.
Aunque un robot 18 destaca por moverse alrededor del almacén 10, con la tecnología robótica actual, no es muy bueno para recoger artículos rápida y eficientemente de un anaquel y colocarlos en la bolsa 44 debido a las dificultades técnicas asociadas a la manipulación robótica de objetos. Una manera más eficiente de recoger elementos es usar un operador local 50, que es típicamente humano, para llevar a cabo la tarea de retirar físicamente un elemento ordenado de un anaquel 12 y colocarlo en el robot 18, por ejemplo, en la bolsa 44. El robot 18 comunica la orden al operador local 50 a través de la tableta 48 (o portátil/otro dispositivo de entrada de usuario), que el operador local 50 puede leer, o transmite la orden a un dispositivo portátil usado por el operador local 50.
Al recibir una orden 16 desde el servidor 14 de órdenes, el robot 18 avanza a una primera ubicación de depósito, p. ej., como se muestra en la Fig. 3. Lo hace basándose en el software de navegación almacenado en la memoria y llevado a cabo por el procesador. El software de navegación depende de los datos relativos al entorno, según lo recogido por el láser-radar 22, una tabla interna en la memoria que identifica la identificación fiduciaria (“ID” ) del marcador fiduciario 30 que corresponde a una ubicación en el almacén 10 donde puede encontrarse un artículo particular, y las cámaras 24a y 24b para navegar.
Después de alcanzar la ubicación correcta, el robot 18 se asienta delante de un anaquel 12 en el cual se almacena el elemento y espera que un operador local 50 recupere el elemento del anaquel 12 y lo coloque en una bolsa 44. Si el robot 18 tiene otros elementos para recuperar, avanza a esas ubicaciones. El(los) elemento(s) recuperado(s) por el robot 18 se entrega(n) después a una estación de empaquetado 100, Fig. 1, en donde se empaquetan y se envían.
Los expertos en la técnica entenderán que cada robot puede cumplir una o más órdenes y cada orden puede consistir en uno o más elementos. Típicamente, se incluiría alguna forma de software de optimización de ruta para aumentar la eficacia, pero esto está más allá del alcance de esta invención y, por lo tanto, no se describe en la presente descripción.
Para simplificar la descripción de la invención, se describe un solo robot 18 y operador 50. Sin embargo, como es evidente a partir de la Fig. 1, una operación de cumplimiento típica incluye muchos robots y operadores que trabajan entre sí en el almacén para llenar un flujo continuo de órdenes.
El enfoque de navegación de esta invención, así como el mapeo semántico de una SKU de un elemento que se recuperará en un ID fiduciario/posición asociado con un marcador fiduciario en el almacén en donde se localiza el elemento, se describen detalladamente a continuación con respecto a las Figs. 4-8. Como se mencionó anteriormente, el mismo enfoque de navegación puede usarse para permitir que el robot navegue a una estación de carga para recargar su batería.
Mediante el uso de uno o más robots 18, debe crearse un mapa del almacén 10 y actualizarse dinámicamente para determinar la ubicación de objetos, tanto estáticos como dinámicos, así como las ubicaciones de varios marcadores fiduciarios dispersos en todo el almacén. Para hacer esto, uno de los robots 18 navega por el almacén y construye/actualiza un mapa 10a, Fig. 4, mediante el uso de su láser radar 22 y simultaneous localization and mapping (localización y mapeo simultáneos - SLAM), que es un método computacional para construir o actualizar un mapa de un entorno desconocido. Los métodos de solución aproximada SLAM incluyen los métodos de gráfico de posición, de filtro de partículas y de filtro de Kalman extendido. El enfoque SLAM GMapping es el enfoque preferido, pero puede usarse cualquier enfoque SLAM adecuado. Una explicación sobre SLAM puede encontrarse en Frese, U., Wagner, R., Rofer, T., “A SLAM overview from a user 's perspective” , Künstliche Intelligenz 24(3), 191-198 (2010).
Preparación del pedido
El robot 18 usa su radar láser 22 para crear/actualizar el mapa 10a del almacén 10 a medida que el robot 18 se desplaza por todo el espacio que identifica el espacio abierto 112, las paredes 114, los objetos 116 y otros obstáculos estáticos, tales como los anaqueles 12a en el espacio, basándose en las reflexiones que recibe a medida que el radar láser explora el entorno.
Mientras se construye el mapa 10a o después de eso, uno o más robots 18 navegan a través del almacén 10 mediante el uso de cámaras 24a y 24b para explorar el entorno para localizar marcadores fiduciarios (códigos de barras bidimensionales) dispersos en todo el almacén en anaqueles próximos a los depósitos, tales como 32 y 34, Fig. 3, en los cual se almacenan artículos. Los robots 18 usan un punto u origen de referencia conocidos para referencia, tal como el origen 110. Cuando un marcador fiduciario, tal como un marcador fiduciario 30, Figs. 3 y 4, se localiza mediante el robot 18 mediante el uso de sus cámaras 24a y 24b, se determina la ubicación en el almacén con relación al origen 110. Mediante el uso de dos cámaras, una a cada lado de la base del robot, como se muestra en la Fig. 2A, el robot 18 puede tener un campo visual relativamente amplio que se extiende desde ambos lados del robot. Esto permite que el robot vea, por ejemplo, marcadores fiduciarios en ambos lados del robot a medida que se desplaza hacia arriba y hacia abajo de los pasillos de anaqueles.
Mediante el uso de codificadores de rueda y sensores de cabecera, puede determinarse el vector 120, y la posición del robot en el almacén 10. Mediante el uso de la imagen capturada de un marcador fiduciario/código de barras bidimensional y su tamaño conocido, el robot 18 puede determinar la orientación con respecto a y la distancia del robot del vector de marcador fiduciario/código de barras bidimensional 130. Con los vectores 120 y 130 conocidos, puede determinarse el vector 140, entre el origen 110 y el marcador fiduciario 30. A partir del vector 140 y la orientación determinada del marcador fiduciario/código de barras bidimensional con relación al robot 18, puede determinarse la posición (posicionamiento y orientación) definida por las coordenadas x,y,z con relación al origen 110 y por un cuaternión (x, y, z, w) para el marcador fiduciario 30. Una explicación sobre el uso de cuaterniones para representar y efectuar orientaciones se encuentra en Berthold K. P. Horn, “ Closed-form solution of absolute orientation using unit quaternions” , Journal of the Optical Society of America, 4(4), abril de 1987, págs. 629-642. Un experto en la técnica reconocería que pueden usarse otros sistemas y técnicas de coordenadas para la determinación del posicionamiento y orientación del marcador fiduciario, y que la posición puede determinar un posicionamiento y/u orientación absolutos o relativos desde un origen arbitrario.
El diagrama de flujo 200, Fig. 5, que describe el proceso de ubicación del marcador fiduciario. Esto se realiza en un modo de mapeo inicial y a medida que el robot 18 encuentra nuevos marcadores fiduciarios en el almacén mientras se realiza la recogida, colocación y/u otras tareas. En la etapa 202, el robot 18 mediante el uso de las cámaras 24a y 24b captura una imagen y en la etapa 204 busca marcadores fiduciarios dentro de las imágenes capturadas. En la etapa 206, si se encuentra un marcador fiduciario en la imagen (etapa 204), se determina si el marcador fiduciario ya está almacenado en la tabla fiduciario 300, Fig. 6, que se ubica en la memoria del robot 18. Si la información fiduciaria ya se almacena en la memoria, el diagrama de flujo regresa a la etapa 202 para capturar otra imagen. Si no está en la memoria, la posición se determina según el proceso descrito anteriormente y en la etapa 208, se añade a la tabla 300 de búsqueda fiduciaria para posicionarse.
En la tabla 300 de búsqueda, que puede almacenarse en la memoria de cada robot, se incluye para cada marcador fiduciario una identificación fiduciario, 1, 2, 3, etc., y una posición para el marcador fiduciario/código de barras asociado con cada identificación fiduciario. La posición consiste en las coordenadas x,y,z en el almacén con relación al origen 110, junto con la orientación o el cuaternión (x,y,z, w).
En otra Tabla 400 de consulta, Fig. 7, que también puede almacenarse en la memoria de cada robot, hay una lista de ubicaciones de depósitos (p. ej. 402a-f) dentro del almacén 10 que se correlacionan con ID fiduciarios 404 particulares, p. ej. el número “ 11” . Las ubicaciones de los depósitos, en este ejemplo, consisten en siete caracteres alfanuméricos. Los primeros seis caracteres (p. ej., L01001) corresponden a la ubicación del anaquel dentro del almacén y el último carácter (p. ej., A-F) identifica el depósito específico en la ubicación del anaquel. En este ejemplo, hay seis ubicaciones de depósitos diferentes asociadas al ID fiduciario “ 11” . Puede haber uno o más depósitos asociados con cada ID/marcador fiduciario. Estaciones de carga ubicadas en el área 19 de carga, Fig. 1, puede almacenarse, además, en la Tabla 400 y correlacionarse con identificadores fiduciarios. A partir de los identificadores fiduciarios, la base de la estación de carga puede encontrarse en la tabla 300, Fig. 6.
Las ubicaciones de los depósitos alfanumérico son comprensibles para los seres humanos, p. ej., el operador 50, Fig. 3, como corresponde a una ubicación física en el almacén 10 donde se almacenan los artículos. Sin embargo, no tienen que significar al robot 18. Mediante el mapeo de las ubicaciones a los ID fiduciarios, el robot 18 puede determinar la posición del ID fiduciario mediante el uso de la información en la Tabla 300, Fig. 6 y, después, navegar hasta la posición como se describe en la presente descripción.
El proceso de preparación de pedidos según esta invención se representa en el diagrama de flujo 500, Fig. 8. En la etapa 502, el warehouse management system (sistema 15 de gestión de almacén - WMS), la Fig. 1, obtiene una orden, que puede consistir en uno o más artículos a recuperar. En la etapa 504, el número o números SKU de los artículos es determinado por el sistema de gestión del almacén 15 y, a partir del número o números SKU, la(s) ubicación(es) de los depósitos se determina(n) en la etapa 506. Una lista de ubicaciones de los depósitos para el pedido se transmite después al robot 18. En la etapa 508, el robot 18 correlaciona las ubicaciones de los depósitos con ID fiduciario y a partir del ID fiduciario, se obtiene el aspecto de cada ID fiduciario en la etapa 510. En la etapa 512, el robot 18 navega hasta la posición, como se muestra en la Fig. 3, donde un operador puede elegir el elemento que va a recuperarse del depósito apropiado y colocarlo en el robot.
La información específica de un elemento, tal como el número SKU y la ubicación del depósito, obtenida por el sistema de gestión del almacén 15, puede transmitirse a la tableta 48 en el robot 18, de manera que el operador 50 pueda ser informado de los elementos particulares a recuperar cuando el robot llega a cada ubicación de marcador fiduciario.
Con el mapa SLAM y la posición del ID fiduciario conocido, el robot 18 puede navegar fácilmente a cualquiera de los ID fiduciarios mediante el uso de varias técnicas de navegación de robot. El enfoque preferido implica establecer una ruta inicial al marcador fiduciario planteado dado el conocimiento del espacio abierto 112 en el almacén 10 y las paredes 114, anaqueles (tal como el anaquel 12) y otros obstáculos 116. A medida que el robot comienza a atravesar el almacén mediante el uso de su radar láser 22, determina si hay obstáculos en su trayecto, ya sea fijos o dinámicos, tales como otros robots 18 y/u operadores 50, y actualiza iterativamente su trayecto a la posición del marcador fiduciario. El robot replanea su ruta aproximadamente una vez cada 50 milisegundos, buscando constantemente el trayecto más eficiente y eficaz, al mismo tiempo que evita obstáculos.
Generalmente, la localización del robot dentro del almacén 10a se logra mediante el sistema de muchas multiresolution scan matching (coincidencias de exploración de múltiples resoluciones - M3RSM) que opera en el mapa SLAM. En comparación con los métodos de fuerza bruta, el M3RSM reduce drásticamente el tiempo computacional para que un robot realice la coincidencia de exploración para determinar la posición actual del robot. Una explicación sobre M3RSM se puede encontrar en Edwin Olson, “ M3RSM: Many-to-many multi-resolution scan matching” , Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), junio de 2015. La localización del robot mejora aún más al minimizar el espacio de búsqueda M3RSM según los métodos descritos en la solicitud de la patente relacionada US 15/71 2.222.
Con el producto SKU/ID fiduciario para la técnica de mapeo de posición fiduciario combinado con la técnica de navegación SLAM, ambas descritas en la presente descripción, los robots 18 pueden navegar de manera muy eficiente y eficaz el espacio del almacén sin tener que usar enfoques de navegación más complejos, que típicamente implican líneas de cuadrícula y marcadores fiduciarios intermedios para determinar la ubicación dentro del almacén.
Generalmente, la navegación en presencia de otros robots y obstáculos móviles en el almacén se logra mediante métodos de prevención de colisiones que incluyen el dynamic window approach (enfoque dinámico de ventana -DWA) y optimal reciprocal collision avoidance (prevención de colisiones recíprocas óptimas - ORCA). DWA calcula entre los trayectos de movimiento del robot factibles un movimiento incremental que evita colisiones con obstáculos y favorece el trayecto deseado para el marcador fiduciario objetivo. ORCA evita óptimamente colisiones con otros robots en movimiento sin requerir comunicación con el(los) otro(s) robot(s). La navegación procede como una serie de movimientos incrementales a lo largo de trayectos calculados en los intervalos de actualización de aproximadamente 50 ms. La evitación de colisiones puede mejorarse aún más mediante las técnicas descritas en la presente descripción.
Sistema robótico
La Fig. 9 ilustra una vista del sistema de una realización del robot 18 para usar en la aplicación para un almacén de preparación de pedidos descrita anteriormente. El sistema robótico 600 comprende un procesador 620 de datos, un almacenamiento 630 de datos, unos módulos 640 de procesamiento y unos módulos 660 de soporte del sensor. Los módulos 640 de procesamiento pueden incluir un módulo 642 de planificación de trayecto, un módulo 644 de control de accionamiento, un módulo 646 de procesamiento de mapas, un módulo 648 de localización y un módulo 650 de estimación de estado. Los módulos 660 de soporte del sensor pueden incluir un módulo 662 de sensor de rango, un módulo 664 de codificador de tren de accionamiento/rueda y un módulo 668 de sensor inercial.
El procesador 620 de datos, los módulos 642 de procesamiento y los módulos 660 de soporte del sensor son capaces de comunicarse con cualquiera de los componentes, dispositivos o módulos en la presente descripción mostrados o descritos para el sistema robótico 600. Puede incluirse un módulo transceptor 670 para transmitir y recibir datos. El módulo transceptor 670 puede transmitir y recibir datos e información hacia y desde un sistema supervisor o hacia y desde uno u otros robots. La transmisión y la recepción de datos puede incluir datos de mapa, datos de trayecto, datos de búsqueda, datos de sensor, datos de ubicación y orientación, datos de velocidad e instrucciones o código del módulo de procesamiento, parámetros robóticos y configuraciones de entorno, y otros datos necesarios para la operación del sistema robótico 600.
En algunas realizaciones, el módulo 662 sensor de rango puede comprender uno o más de un láser de barrido, radar, localizador de rango láser, localizador de rango, detector de obstáculo ultrasónico, un sistema de estereovisión, un sistema de visión monocular, una cámara y una unidad de formación de imágenes. El módulo 662 sensor de rango puede escanear un entorno alrededor del robot para determinar una ubicación de uno o más obstáculos con respecto al robot. En una realización preferida, los codificadores de tren de accionamiento/rueda 664 comprenden uno o más sensores para codificar la posición de la rueda y un accionador para controlar la posición de una o más ruedas (p. ej., ruedas de acoplamiento a tierra). El sistema robótico 600 puede incluir también un sensor de velocidad terrestre que comprende un medidor de velocidad o sensor basado en radar o un sensor de velocidad de rotación. El sensor de velocidad de rotación puede comprender la combinación de un acelerómetro y un integrador. El sensor de velocidad de rotación puede proporcionar una velocidad de rotación observada para el procesador 620 de datos, o cualquier módulo de este.
En algunas realizaciones, los módulos 660 de soporte del sensor pueden proporcionar datos traslacionales, datos de posición, datos de rotación, datos de nivel, datos inerciales y datos de encabezado, que incluyen datos históricos de medidas instantáneas de la velocidad, traslación, posición, rotación, nivel, encabezado y datos inerciales en el tiempo. La velocidad de traslación o rotación puede detectarse con referencia a uno o más puntos de referencia fijos u objetos fijos en el entorno robótico. La velocidad de traslación puede expresarse como una velocidad absoluta en una dirección o como una primera derivada de la posición del robot con respecto al tiempo. La velocidad de rotación puede expresarse como una velocidad en unidades angulares o como la primera derivada de la posición angular en comparación con el tiempo. La velocidad de traslación y rotación puede expresarse con respecto a un origen 0,0 (p. ej., Fig. 1, 110) y soporte de 0 grados con respecto a un sistema de coordenadas absoluto o relativo. Los módulos 640 de procesamiento pueden usar la velocidad de traslación observada (o mediciones de posición en comparación con tiempo) combinada con la velocidad de rotación detectada para estimar la velocidad de rotación observada en el robot.
En algunas realizaciones, el sistema robótico 600 puede incluir un receptor GPS, un receptor GPS con corrección diferencial u otro receptor para determinar la ubicación de un robot con respecto a satélite o balizas terrestres que transmiten señales inalámbricas. Preferiblemente, en aplicaciones interiores tales como la aplicación del almacén descrita anteriormente o donde la recepción satelital es poco fiable, el sistema robótico 600 usa sensores no GPS como se describió anteriormente y técnicas descritas en la presente descripción para mejorar la localización donde no se proporciona información de posición absoluta fiablemente mediante un sensor o sistema global o local.
En otras realizaciones, los módulos que no se muestran en la Fig. 9 pueden comprender un sistema de dirección, un sistema de frenado y un sistema de propulsión. El sistema de frenado puede comprender un sistema de frenado hidráulico, un sistema de frenado electrohidráulico, un sistema de frenado electromecánico, un accionador electromecánico, un sistema de frenado eléctrico, un sistema de frenado por cable, u otro sistema de frenado en comunicación con el control 644 de accionamiento. El sistema de propulsión puede comprender un motor eléctrico, un motor de propulsión, un motor de corriente alterna, un motor de inducción, un motor de imán permanente, un motor de corriente continua u otro motor adecuado para propulsar un robot. El sistema de propulsión puede comprender un controlador de motor (p. ej., un inversor, cortador, generador de ondas, un controlador multifase, un oscilador de frecuencia variable, suministro de corriente variable o suministro de voltaje variable) para controlar al menos una de la velocidad, torsión y dirección de rotación del vástago del motor del motor eléctrico. Preferiblemente, el control 644 de accionamiento y el sistema de propulsión (no mostrado) es un control de differential drive (accionamiento diferencial -DD) y un sistema de propulsión. En un sistema de control DD, el control robot no es holonómico (NH), caracterizado por restricciones en el trayecto incremental alcanzable dada una velocidad de traslación y angular deseada. El control de accionamiento 644 en comunicación con el sistema de propulsión puede accionar el movimiento incremental del robot al convertir una o más velocidades instantáneas determinadas por el módulo 642 de planificación de trayectos o procesador 620 de datos.
Un experto en la técnica reconocería que otros sistemas y técnicas para el procesamiento de robots, almacenamiento de datos, detección, control y propulsión pueden emplearse sin pérdida de aplicabilidad de la presente invención descrita en la presente descripción.
Navegación
La navegación por un robot autónomo o semiautónomo requiere alguna forma de modelo espacial del entorno del robot. Los modelos espaciales pueden representarse mediante mapas de bits, mapas de objetos, mapas de puntos de referencia y otras formas de representaciones digitales bi- y tridimensionales. Un modelo espacial de una instalación de almacén, como se muestra en la Fig. 10, por ejemplo, puede representar un almacén y obstáculos tales como paredes, techos, soportes de techo, ventanas y puertas, anaqueles y depósitos de almacenamiento. Los obstáculos pueden ser fijos o móviles, por ejemplo, tales como otros robots o maquinaria que funcionan dentro del almacén, o relativamente fijos pero cambiantes, tales como particiones temporales, tarimas, estantes y cajones a medida que los artículos de almacén se almacenan, recogen y reponen.
Los modelos espaciales en una instalación de almacén pueden representar, además, ubicaciones objetivo, tales como un anaquel o depósito marcado con una fidualidad al que un robot puede dirigirse para escoger producto o para realizar alguna otra tarea, o a un lugar de mantenimiento temporal o a la ubicación de una estación de carga. Por ejemplo, la Fig. 10 representa la navegación del robot 18 desde una ubicación inicial 702 hasta ubicaciones intermedias 704, 706 hasta la ubicación objetivo o destino 708 a lo largo de su trayecto 712, 714, 716. Aquí el modelo espacial captura características del entorno a través del cual debe navegar el robot, incluyendo características de una estructura en un destino 718 que puede ser un anaquel o depósito o estación de carga de robot.
El modelo espacial usado más comúnmente para la navegación robótica es un mapa de bits de un área o instalación. La Fig. 11, por ejemplo, representa un mapa de bits bidimensional del modelo espacial mostrado en la Fig. 10. El mapa 720 puede representarse mediante mapas de bits que tienen valores de píxel en un rango binario 0,1, que representan negro o blanco, o mediante un rango de valores de píxel, por ejemplo, 0-255 que representa un rango de escala de grises de negro (0) a blanco (255) o mediante rangos de color, cuyos rangos pueden representar incertidumbres en si una característica está presente en la ubicación representada por los valores de píxel. La escala y granularidad del mapa 720 puede ser cualquier escala y dimensiones que sean adecuadas para el alcance y detalle del entorno. Por ejemplo, en algunas realizaciones de la presente invención, cada píxel en el mapa puede representar 5 centímetros cuadrados (cm2). En otras realizaciones, cada píxel puede representar un rango de 1 cm2 a 5 cm2. Sin embargo, la resolución espacial de un mapa para usar con la presente invención puede ser mayor o menor sin pérdida de generalidad o beneficio a la aplicación de sus métodos.
Como se ilustra en la Fig. 11, el robot puede usar el mapa 720 para determinar su ubicación y orientación dentro del entorno y para planificar y controlar sus movimientos a lo largo del trayecto 712, 714, 716 y, al mismo tiempo, evitar obstáculos (se muestra en negro). Tales mapas pueden ser “ mapas locales” que representen características espaciales en el área adyacente inmediata del robot o ubicación objetivo, o “ mapas globales” que representen características de un área o instalación que abarca el rango operativo de uno o más robots. Uno o más robots pueden mapear cooperativamente un entorno compartido, el mapa resultante se mejora aún más a medida que los robots navegan, recopilan y comparten información sobre el entorno. Los mapas pueden proporcionarse a un robot desde un sistema de supervisión o un robot puede construir su mapa usando sensores de localización y ubicación de rango integrado.
En algunas realizaciones, el sistema de supervisión puede comprender un servidor central que realiza la supervisión de una pluralidad de robots en un almacén de fabricación u otra instalación, o el sistema de supervisión puede comprender un sistema de supervisión distribuido que consiste en uno o más servidores que operan dentro o sin la instalación completa o parcialmente sin pérdida de generalidad en la aplicación de los métodos y sistemas descritos en la presente descripción. El sistema de supervisión puede incluir un servidor o servidores que tienen al menos un procesador informático y una memoria para ejecutar un sistema de supervisión y puede incluir, además, uno o más transceptores para comunicar información a uno o más robots que operan en el almacén u otra instalación. Los sistemas de supervisión pueden alojarse en servidores informáticos o pueden alojarse en la nube y comunicarse con los robots locales a través de un transceptor local configurado para recibir y transmitir mensajes hacia y desde los robots y el sistema de supervisión a través de medios de comunicación cableados y/o inalámbricos, incluso a través de Internet.
Un experto en la materia reconocería que el mapeo robótico para los propósitos de la presente invención podría realizarse mediante el uso de métodos conocidos en la materia sin pérdida de generalidad. Una explicación adicional de métodos para el mapeo robótico puede encontrarse en Sebastian Thrun, “ Robotic Mapping: A Survey” , Carnegie-Mellon University, CMU-CS-02-111, febrero de 2002.
Evitación de obstáculos
Para navegar con éxito por el trayecto objetivo y llegar al depósito de producto objetivo en presencia de obstáculos dinámicos, el robot debe recalibrar continuamente su trayectoria. En cada recalibración, se usa una velocidad instantánea para hacer avanzar el robot con un movimiento incremental a lo largo del trayecto objetivo. Por ejemplo, como se muestra en la Fig. 12, el robot 18 se mueve a lo largo del trayecto 714 (cada guion en la línea representa un movimiento incremental, exagerado) para alcanzar la posición objetivo 708. A lo largo del trayecto 714 el robot encuentra obstáculos 722. Además, a lo largo del trayecto 714 el robot 18 se encuentra con el robot 20 que se mueve a lo largo del trayecto 726 cerca del obstáculo 724. Evitando obstáculos 722 y 724 y evitando la colisión con el robot 20, el robot 18 finalmente llega a la posición 706 y continúa hasta la posición objetivo 708 a lo largo del trayecto 716. Asimismo, el robot 20, también operando autónomamente, evita el obstáculo 724 y al robot 18 navegando a lo largo del trayecto 726 a lo largo de su trayecto objetivo hasta la posición objetivo del robot 20 (no se muestra).
El movimiento incremental del robot en una trayectoria que colisione con otros robots puede evitarse mediante métodos tales como la optimal reciprocal collision avoidance (prevención de colisiones recíprocas óptimas -ORCA). ORCA garantiza que un robot no colisione con otro suponiendo que cada robot también calcula su siguiente movimiento incremental usando ORCA. De esta manera, los robots pueden navegar de manera totalmente autónoma y, al mismo tiempo, asegurar un trayecto óptimo libre de colisiones para cada uno. Una explicación de ORCA se describe en Jur van den Berg, Stephen J. Guy, Ming Lin y Dinesh Manocha, “ Reciprocal n-body collision avoidance” , en Robotics Research: The 14th International Symposium ISRR, Cédric Pradalier, Roland Siegwart y Gerhard Hirzinger (eds.), Springer Tracts in Advanced Robotics, Vol. 70, Springer-Verlag, mayo de 2011, págs. 3-19.
El enfoque dinámico de ventana (DWA) también es conocido en la técnica para evitar obstáculos. DWA considera un conjunto de N velocidades instantáneas posibles para el movimiento incremental del robot a lo largo del trayecto objetivo. DWA entonces puntúa la trayectoria tomada por el robot asumiendo un movimiento incremental según cada velocidad instantánea tomada durante una o más etapas temporales. Se puntúa cada trayectoria según una función objetivo que toma en cuenta los obstáculos no robóticos y otros factores. Por ejemplo, puede puntuarse cada trayectoria según la adherencia al trayecto objetivo ponderada para evitar una gran proximidad a los obstáculos. Como otro ejemplo, puede desearse ajustar el comportamiento del robot en presencia de personas que trabajen entre los robots. Una explicación de DWA se proporciona en D. Fox, W. Burgard, y S. Thrun, “The Dynamic Window Approach to Collision Avoidance” , en Robotics & Automation Magazine, IEEE, vol. 4, núm. 1, (marzo de 1997), págs.
23-33.
Si bien DWA proporciona un enfoque flexible para controlar el comportamiento del robot, lo hace sacrificando una respuesta óptima cuando se encuentran con robots accionados por ORCA. Asimismo, si bien ORCA proporciona una determinación notablemente óptima y computacionalmente eficaz de la siguiente velocidad instantánea del robot, ORCA no tiene en cuenta obstáculos que no sean robots y otros factores importantes para optimizar el comportamiento del robot cuando navega hasta la ubicación objetivo a lo largo del trayecto objetivo.
ORCA/DWA
La Fig. 13 ilustra una realización de la presente invención como método para mover el robot a lo largo del trayecto objetivo hasta su ubicación objetivo o “ posición objetivo” . El diagrama de flujo se describe con referencia a los robots 18, 20, 22 y 24 de la Fig. 12, comprendiendo cada uno de los robots un sistema robótico 600 como se ha descrito anteriormente con referencia a la Fig. 9. Los “ otros” robots pueden implementarse en algunas realizaciones con variaciones en el sistema robótico 600, y algunas realizaciones pueden incluir robots no accionados por ORCA en donde se emplee algún otro método para evitar obstáculos sin pérdida de la generalidad para la aplicación de la presente invención a un sistema de robots que tenga uno o más robots que usen métodos basados en ORCA.
Comenzando en la etapa 802, el sistema robótico 600 recibe un mapa de obstáculos a través del módulo transceptor 670, que puede almacenarse en el almacenamiento 630 de datos. El mapa de obstáculos puede ser un mapa de SLAM u otro mapa, tal como un mapa de costes cubierto de obstáculos. Alternativamente, el mapa de obstáculos puede ser cualquier modelo espacial capaz de representar obstáculos fijos dentro del entorno del robot. El mapa de obstáculos puede almacenarse y recuperarse posteriormente del almacenamiento 630 de datos mediante el procesador 620 de datos o el módulo 646 de procesamiento de mapas o el módulo 642 de planificación de trayectos.
En la etapa 806, el sistema robótico 600 recibe una posición objetivo y después genera, en la etapa 808, el trayecto objetivo hasta la posición objetivo usando el módulo 646 de planificación de trayecto. El módulo 642 de planificación de trayecto puede generar el trayecto objetivo desde la posición actual hasta la posición objetivo por una variedad de técnicas conocidas por los profesionales en la técnica que incluyen los algoritmos de exploración de trayecto A * y D *. Alternativamente, el robot puede recibir un trayecto objetivo a través del módulo transceptor 670 o puede recuperar un trayecto objetivo desde el almacenamiento 630 de datos. Después de recibir el mapa de obstáculos y generar el trayecto objetivo, el sistema robótico 600 puede proceder después a mover el robot incrementalmente a lo largo del trayecto objetivo de la siguiente manera.
En la etapa 810, el sistema robótico 600 recibe la posición y velocidad actuales de todos los robots en el área. Al conocer la posición de todos los demás robots con relación a su posición, el robot puede ignorar los robots lejos de su área operativa. Alternativamente, el robot puede recibir solo las posiciones de robots que operen cerca del robot sin pérdida de la generalidad de la etapa 810. Por ejemplo, con referencia nuevamente a la Fig. 12, el robot 18 en la posición 704 puede recibir la posición y velocidad actuales de los robots 20, 22 y 24. Alternativamente, el robot 18 puede recibir la posición y velocidad del robot 20 solo cuando esté muy cerca de la posición 720, por ejemplo, o cuando se aproxime al robot 20 cerca del obstáculo 724.
De forma adicional, en la etapa 810 el robot recibe su propia posición. Preferiblemente, el estado del robot, que incluye su posición, puede ser determinado por el sistema robótico 600 usando la odometría del robot en sí, los codificadores 664 del tren de rodamiento/ruedas y/o el sensor inercial 668 u otros módulos sensores 660 o mediante módulos 640 de procesamiento que operen en otros sensores o información recibida. La posición del robot puede estar determinada por una fusión de las entradas mencionadas anteriormente y/o por muchas multiresolution scan matching (coincidencias de exploración de múltiples resoluciones - M3RSM), la adaptative monte-carlo localization (localización de monte carlo adaptativa - AMCL), el geo-positioning satellite (satélite de geoposicionamiento - GPS), información fiduciaria, o la posición del robot puede recibirse desde un sistema de supervisión a través del transceptor 670.
En la etapa 812, el proceso 800 continúa realizando ORCA/DWA, como se describe particularmente más adelante y en relación con la Fig. 14, encontrando una siguiente velocidad para aplicar como el control para accionar el siguiente movimiento incremental del robot a lo largo del trayecto objetivo. En la etapa 816 el robot se mueve incrementalmente a lo largo del trayecto objetivo hasta alcanzar su posición objetivo. Si en la etapa 818 no se alcanza la posición objetivo, el sistema robótico 600 puede repetirse en el siguiente ciclo temporal (etapa 820), recibir las posiciones de los otros robots (etapa 810) como se ha descrito anteriormente, realizar ORCA/DWA (etapa 812) y mover el robot (etapa 816) en el siguiente ciclo temporal hasta alcanzar la posición objetivo (etapa 818). Después de cada movimiento incremental, el sistema robótico 600 puede determinar su posición como se ha descrito anteriormente y transmitir su estado actual, incluyendo su posición actual, a un servidor central a través del transceptor 670. Cada uno de los robots 18, 20, 22 y 24 de la Fig. 9 que operan mediante el proceso 800, como se describe en la presente descripción, hace que las posiciones de todos los robots estén disponibles para la recepción por parte de cada uno de los otros robots en el siguiente ciclo temporal.
La Fig. 14 ilustra el proceso A para realizar ORCA/DWA (etapa 812 de la Fig. 13) para determinar una velocidad óptima usando una combinación novedosa de los principios de los algoritmos para evitar obstáculos DWA y ORCA como se introdujeron anteriormente.
Comenzando en la etapa 852, según una realización, el conjunto de velocidades posibles o “ candidatas” se genera según DWA. Las velocidades candidatas pueden expresarse como un conjunto de trayectos o “ curvaturas” determinadas únicamente por el vector de velocidad (v, w), donde v es el movimiento hacia adelante o lineal del robot y w es la velocidad de rotación del robot. El conjunto de velocidades candidatas puede ser un conjunto finito de velocidades de muestra del conjunto de trayectorias posibles que hacen avanzar al robot desde la posición actual del robot, o el conjunto de trayectorias puede definir una curvatura definida por los movimientos instantáneos discretos del robot que avanza con una velocidad constante (v, w) durante uno o más intervalos de tiempo a continuación.
Por lo tanto, el método en la etapa 812 genera el conjunto de N velocidades instantáneas posibles para que el robot adopte como su control para el siguiente movimiento en la siguiente etapa temporal. Al iterar sobre cada una de las velocidades candidatas, el método estima la posición final del robot, como si el robot procediera con la velocidad candidata durante los próximos T segundos a incrementos de t segundos. Sin pérdida de generalidad y con el propósito de ilustrar la presente invención, T puede ser 1,5 segundos y el incremento del tiempo t puede ser 0,1 segundos. Por lo tanto, como mero ejemplo, si la velocidad candidata es de 0,25 metros/s de velocidad lineal y 0,785 rad/s de velocidad de rotación, el proceso estima la posición a la que llegaría el robot aplicando su vector de velocidad de control (v, w) = (0,25, 0,785) en cada una de las etapas temporales de 0,1, 0,2, 0,3... 1,5 segundos. El conjunto de posiciones en cada etapa temporal conforma la trayectoria que puntuarán las funciones objetivo ORCA/dWa que se describirán más adelante.
La discretización mediante DWA en la generación de las velocidades candidatas selecciona necesariamente menos que el número infinito de trayectorias que un robot podría hacer en la siguiente sucesión de etapas temporales. El conjunto de velocidades candidatas puede reducirse aún más eliminando del conjunto aquellas velocidades cuyas curvaturas se intersecarían con un obstáculo en el intervalo de tiempo siguiente o en los n intervalos de tiempo siguientes, suponiendo que el robot continuara con una velocidad candidata seleccionada. Al recortar el conjunto de velocidades candidatas a velocidades admisibles que no colisionen con obstáculos, se reduce el espacio de búsqueda para determinar una velocidad preferida. El conjunto de velocidades candidatas puede reducirse aún más manteniendo solamente las velocidades admisibles. Las velocidades admisibles pueden incluir solamente aquellas velocidades que permitirían que un robot parara antes de colisionar con un obstáculo. Las velocidades admisibles pueden incluir solo aquellas velocidades dentro de la ventana dinámica del robot o dentro de una velocidad de seguridad máxima permitida para el robot. La ventana dinámica del robot puede incluir solamente velocidades que puedan alcanzarse dentro del siguiente intervalo de tiempo dada la aceleración limitada del robot. Alternativamente, el conjunto de velocidades candidatas puede generarse o recortarse mediante otros métodos, tales como el model predictive control (control predictivo del modelo -MPC) u otro algoritmo basado en restricciones.
Volviendo a la Fig. 14, a la etapa 854, cada velocidad candidata ( v, w) en el conjunto de velocidades candidatas se evalúa según una función objetivo:
G(v,w) = a * cabecera(v,w) p * dist(v,w) y * velocidad(v,w),
donde G(v,w) es la función objetivo, a, 3, y son pesos; cabecera(v,w) es una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia hasta el obstáculo más cercano (su “ espacio” ); y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata (v,w) dada. Una explicación detallada de la evaluación de una función objetivo G(v,w) en virtud de DWA se encuentra en D. Fox y col., “ The Dynamic Window Approach to Collision Avoidance” . Un experto en la técnica entenderá que las variaciones de la función objetivo pueden aplicarse sin pérdida de la generalidad de la presente invención.
Al evaluar la función objetivo G(v,w) para cada una de las velocidades candidatas se determina una velocidad preferida vpref puntuando cada velocidad candidata (v,w) en el conjunto de velocidades candidatas. Cada velocidad candidata (v,w) está asociada a una trayectoria o curvatura, como se ha descrito anteriormente. Preferiblemente, la función objetivo G(v,w) se implementa como una función de pérdida con funciones de componentes ponderadas que representan uno o más puntos críticos de pérdida. En la realización con punto crítico de pérdida, la velocidad preferida vpref es la mínima G(v,w) sobre el conjunto de velocidades candidatas determinadas en la etapa 856 de la Fig. 14. Por lo tanto, como se observa a partir de la relación de velocidades con las trayectorias descritas anteriormente, la trayectoria preferida tpref es la trayectoria del robot suponiendo que vpref se aplique como un control para mover el robot incrementalmente a la velocidad vpref durante cada uno de los próximos t segundos durante un período de T segundos.
Los puntos críticos de pérdida en algunas realizaciones pueden incluir una función de pérdida dist(v,w) que use obstáculos inflados en el mapa de obstáculos (p. ej. inflados por el radio o diámetro del robot) para asegurar que todos los robots pasen de manera segura junto a obstáculos estáticos. Los puntos críticos de pérdida pueden incluir una función de pérdida de oscilación que asigne pérdidas más altas a los cambios en la magnitud o dirección de rotación. Los puntos críticos de pérdida pueden incluir, además, en una realización preferida, un punto crítico de pérdida de trayecto que pondere la distancia del robot desde el trayecto objetivo y/o cómo de lejos a lo largo del trayecto objetivo estaría el robot con una velocidad candidata dada, o cuánto haría la velocidad candidata que el robot se distribuyera radialmente desde el trayecto objetivo.
La velocidad preferida vpref determinada por la aplicación de la función objetivo G(v,w) de DWA es, por lo tanto, la mínima velocidad candidata de pérdida después de la evaluación de todos los puntos críticos de pérdida de DWA. Un experto en la técnica apreciaría que los pesos a, ¡3, y para las funciones de pérdida de G(v,w) anteriores pueden establecerse según las preferencias para el comportamiento del robot. Cada una de las funciones componente de la función objetivo G(v,w) puede tener su propio peso o no tener ponderación (peso = 1). Preferiblemente, uno o más puntos críticos de pérdida tienen “ poder de veto” para invalidar una velocidad candidata añadiendo un valor de penalización relativamente alto a cualquier puntuación de función de pérdida de una velocidad candidata que incumpla criterios predeterminados.
Como se ha explicado anteriormente, la trayectoria preferida tpref determinada por DWA en la etapa 858 de la Fig. 14 es una curvatura definida por un vector de velocidad (v,w) como se aplica al control del robot durante intervalos de tiempo sucesivos. La Fig. 15 ilustra esta relación entre vpref y tpref. Como se muestra, la velocidad preferida vpref para el robot 18 en la posición Pa es el vector de velocidad (v,w). La trayectoria preferida tpref es la curvatura definida por el trayecto del robot movido incrementalmente por vpref. El vector de velocidad (v,w) aplicado al control de robots no holonómicos, tal como el que se encuentra en los sistemas de propulsión de robots de differential drive (accionamiento diferencial - DD), movería por lo tanto el robot 18 a lo largo de la curvatura Pa-Pb.
Recordando que, en la etapa 810 de la Fig. 13, el sistema robótico 600 ya ha recibido las posiciones de los otros robots, el proceso continúa en la etapa 858 generando objetos de velocidad (o “VO” ) de ORCA. Según métodos conocidos como aquellos a los que se ha hecho referencia anteriormente, los VO se generan en relación con otro robot (p. ej. 20, 22, 24) basándose en la velocidad preferida vpref del robot 18. Aquí, para realizar ORCA/DWA para el robot 18, el sistema robótico 600 usa la velocidad preferida vpref determinada en la etapa 856 para generar los VO de ORCA.
Sin embargo, ORCA, en al menos una realización, requiere la velocidad preferida vpref como entrada y transforma todas las velocidades (v,w) en velocidades holonómicas (x,y). Es decir, ORCA asume que el robot puede moverse en cualquier dirección (x,y). Como entenderá un experto en la técnica, ORCA utiliza vectores de velocidad holonómica en su análisis, mientras que vpref generada por DWA asume el control del robot no holonómico, como en caso de robots de accionamiento diferencial. Por lo tanto, debe ajustarse para algún error cuando se transforme la velocidad preferida vpref no holonómica en el vector holonómico (x, y) para usar en la generación de los VO de ORCA.
La Fig. 15 ilustra este ajuste según un aspecto de la presente invención. La corrección para el uso de una velocidad preferida vpref no holonómica en ORCA se ajusta inflando el tamaño de los otros robots cuando se genera cada uno de sus respectivos VO. Como se ilustra en la Fig. 15, el aumento en el radio de cada robot se hace aproximadamente igual a la distancia de error máxima d entre el vector de línea recta (x,y) y la trayectoria preferida tpref. Inflar los radios de los otros robots por el error máximo d entre la trayectoria holonómica y la trayectoria no holonómica garantiza el movimiento sin colisiones del robot 18 cerca de los otros robots. Un experto en la técnica entenderá que las modificaciones de ORCA, incluidas las versiones no holonómicas de ORCA, pueden sustituirse con una modificación adecuada de los métodos de la presente descripción, p. ej. ORCA-NH (no holonómica) no requiere ajuste al usar la trayectoria preferida como una velocidad vpref no holonómica.
Como entenderá un experto en la técnica, crear los VO y después unir estos VO forma un polígono en el espacio de velocidad definido por la intersección de los planos medios de cada uno de los VO. Una explicación sobre la creación de los VO y su unión en la aplicación de ORCA se encuentra en Jur van den Berg y col., “ Reciprocal n-body collision avoidance” . Por ejemplo, la Fig. 16A representa el polígono P formado por la unión de los planos medios de los objetos de velocidad VOa-VOe. Cada uno de los VO corresponde a otros robots a-e cuyas posiciones son conocidas por el robot para moverse según los métodos descritos en la presente descripción. Cabe recordar que, según ORCA, el polígono formado por la unión de los VO define colisiones en el espacio de velocidad (no hay espacio de posición), cualquier velocidad del robot que esté dentro del polígono se considera segura y asegura la evitación de colisiones de los otros robots; cualquier velocidad que caiga fuera del polígono no es segura y puede hacer que el robot colisione con uno o más de los otros robots.
Teniendo en cuenta lo anterior, el proceso continúa en la Fig. 14 en la etapa 860 evaluando las velocidades candidatas generadas por DWA usando una función objetivo combinada de ORCA/DWA. La función objetivo ORCA/DWA combinada comprende una función de pérdida Cdwa combinada con un punto crítico de pérdida Corca, con peso gíorca, de la siguiente manera:
ORCA/DWA = Cdwa + gíorca * Corca
Cdwa se define como:
Cdwa = a * cabecera(v,w) p * dist(v,w) y * veloádad(v,o>),
donde a, 3, y son pesos; cabecera(v,w) es una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia hasta el obstáculo más cercano; y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata (v,w) dada. Cdwa y G(v,o>), como se usaron anteriormente para determinar vpref para la generación de los VO de ORCA, pueden implementarse como la misma función, con los mismos pesos o como funciones diferentes con pesos diferentes o por combinaciones de otras funciones de pérdida sin pérdida de la generalidad en la aplicación a la presente invención.
Corca se define de la siguiente manera:
Corca = av (vt- vpref) + penalización ad * d (P, vt)
donde ad y av son pesos; vt es una velocidad candidata que se evalúa; vpref es la velocidad preferida; P es el polígono formado por la unión de los VO; d (P, vt) es una medida de cuánto incumple una velocidad candidata los VO; y penalización es un coste de penalización impuesto cuando una velocidad candidata vt incumple un VO.
En la evaluación con puntos críticos de pérdida Corca, todas las velocidades candidatas vt obtienen una pérdida base av (vt - vpref) como una medida de cuánto difieren de la velocidad preferida vpref. Por ejemplo, como se representa en la Fig. 16A, si la velocidad candidata vt está dentro del polígono P formado por los VO pero la distancia desde vt hasta vpref es grande, el coste av (vt - vpref) es grande pero no se añade penalización. Si como se muestra en la Fig. 16B la velocidad candidata vt está dentro del polígono P y la distancia hasta vpref es pequeña, el coste av (vt - vpref) es pequeño y nuevamente no se añade penalización. Sin embargo, cuando la velocidad candidata vt incumple al menos un obstáculo de velocidad (es decir, está fuera del polígono P y, por lo tanto, es “ insegura” ) se añade una penalización al término de pérdida base a v (vt - vpref) + penalización.
Además, en una realización preferida, se puede imponer una penalización adicional en vt basándose en la distancia d (P, vt) desde vt hasta el borde del polígono P. Por ejemplo, como se muestra en la Fig. 16C, la función de pérdida d (P, vt) es una función de la distancia mínima desde el perímetro del polígono P hasta un punto definido por la trayectoria t alcanzado por la velocidad candidata vt. En el ejemplo mostrado vt está fuera del polígono P, incurriendo en una primera penalización, y relativamente lejos de vpref, incurriendo en una pérdida todavía mayor av (vt - vpref), e incurre además en una penalización adicional basada en la magnitud del incumplimiento, es decir, la distancia desde vt hasta el polígono P. Por lo tanto, en la evaluación de Corca para este ejemplo, av (vt - vpref) + penalización penalización * d (P, vt) grava una alta pérdida en vt cuando se añade a la función objetivo combinada ORCA/DWA.
Al combinar los puntos críticos de pérdida ORCA y DWA y tomar la pérdida mínima ponderada:
mín. (Cdwa + a orca * Corca)
retorna la velocidad candidata óptima del conjunto de velocidades candidatas. Volviendo a la etapa 816 de la Fig. 13, el siguiente control es la velocidad instantánea asociada a la velocidad candidata que tiene la pérdida mínima determinada por la función de pérdida combinada ORCA/DWA. Al aplicar el control al control de accionamiento del robot, el robot se mueve incrementalmente a lo largo del trayecto objetivo (etapa 818) y el proceso se repite (etapa 820) hasta que el robot alcanza su posición objetivo.
Si bien la descripción anterior de la invención permite a un experto en la materia elaborar y usar lo que se considera actualmente el mejor modo de la misma, los expertos en la materia entenderán y apreciarán la existencia de variaciones, combinaciones y equivalentes de las realizaciones y ejemplos específicos de la presente descripción. Las realizaciones descritas anteriormente de la presente invención pretenden ser solamente ejemplos. Aquellos con experiencia en la materia pueden efectuar alteraciones, modificaciones y variaciones a las realizaciones particulares sin apartarse del alcance de la invención, que se define únicamente por las reivindicaciones anexas a la presente descripción.
Debe entenderse que la presente invención puede implementarse con software y/o hardware. En consecuencia, los aspectos de la presente invención pueden adoptar la forma de una realización totalmente de hardware, una realización totalmente de software (incluidos firmware, software residente, microcódigo, etc.) o una realización que combine aspectos de software y hardware que generalmente pueden denominarse en la presente descripción como “ circuito” , “ módulo” o “ sistema” . Como apreciará una persona con experiencia en la materia, los aspectos de la invención pueden incorporarse como un sistema, método o producto de programa informático.
Aspectos de la presente invención se describen con referencia a diagramas de flujo, ilustraciones y/o diagramas de bloques de métodos y aparatos (sistemas). Los diagramas de flujo y diagramas de bloque pueden ilustrar arquitectura, funcionalidad u operaciones del sistema según diversas realizaciones de la invención. Cada etapa del diagrama de flujo puede representar un módulo, que comprende una o más instrucciones ejecutables para implementar la(s) función(es) especificada(s). En algunas implementaciones, las etapas mostradas en sucesión pueden, de hecho, ejecutarse sustancialmente de manera simultánea. Las etapas pueden realizarse mediante sistemas basados en hardware de propósito especial que realizan las funciones o actos especificados, o combinaciones de hardware de propósito especial e instrucciones informáticas.
Las instrucciones informáticas para la ejecución por un procesador que realiza operaciones de la presente invención pueden escribirse en uno o más lenguajes de programación, que incluyen lenguajes de programación orientados a objetos tales como C#, C++, Python, o lenguajes de programación Java. Las instrucciones de programa informático pueden almacenarse en un medio legible por ordenador que puede dirigir el sistema robótico a través del procesador de datos para funcionar de una manera particular, que incluye ejecutar instrucciones que implementan las etapas especificadas en un diagrama de flujo y/o diagrama en bloque del sistema descritos en la presente descripción. Un medio de almacenamiento legible por ordenador puede ser cualquier medio tangible que pueda contener, o almacenar instrucciones para su uso por o en conexión con el procesador de datos. Un medio legible por ordenador puede incluir, además, una señal de datos propagados con código de programa legible por ordenador incorporado en el mismo.

Claims (7)

  1. REIVINDICACIONES
    i. Un método para navegar un robot a lo largo de un trayecto objetivo y evitar obstáculos, que comprende:
    recibir una posición objetivo de un primer robot;
    determinar un trayecto objetivo para el primer robot;
    recibir un mapa de obstáculos;
    recibir la posición del primer robot;
    recibir la posición de uno o más de los otros robots;
    generar un conjunto de velocidades candidatas para el primer robot;
    evaluar, usando una primera función objetivo, el conjunto de velocidades candidatas; caracterizado por:
    seleccionar del conjunto de velocidades candidatas, basándose en la primera función objetivo, una primera velocidad preferida del primer robot;
    crear un conjunto de obstáculos de velocidad basándose en la(s) posición(es) del uno o más de los otros robots y la primera velocidad preferida del primer robot;
    evaluar, utilizando una segunda función objetivo que utilice los obstáculos de velocidad y la primera velocidad preferida, el conjunto de velocidades candidatas;
    seleccionar del conjunto de velocidades candidatas, basándose en la segunda función objetivo, una segunda velocidad preferida para el primer robot; y
    mover el primer robot basándose en la segunda velocidad preferida.
  2. 2. El método de la reivindicación 1, en donde el trayecto objetivo comprende un trayecto desde una posición actual del primer robot hasta la posición objetivo del primer robot y/o en donde la posición objetivo del robot es la posición de un depósito de producto asociado fiduciario en una aplicación para un almacén de preparación de pedidos.
  3. 3. El método de la reivindicación 1, en donde la posición del primer robot es determinada por una o más de muchas multiresolution scan matching (coincidencias de exploración de múltiples resoluciones - M3RSM), adaptative monte carlo localization (localización de monte carlo adaptativa - a Mc L), geo-positioning satellite (satélite de geoposicionamiento - GPS), información fiduciaria y sensores de robot basados en la odometría, y/o en donde la generación del conjunto de velocidades candidatas para el primer robot asume una velocidad candidata durante una o más etapas temporales que aplican restricciones de movimiento, obstáculo e inerciales para generar solamente velocidades candidatas que tengan trayectorias admisibles.
  4. 4. El método de la reivindicación 1, en donde la primera función objetivo comprende una o más funciones de pérdida de la forma:
    G(v,w) = a * cabecera (v,w) p * dist(v,w) y * velocidad(v,w), donde G(v,w) es la función objetivo, a, 3, y son pesos; cabecera(v,w) es una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia hasta el obstáculo más cercano (su “ espacio” ); y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata (v,w) dada.
  5. 5. El método de la reivindicación 4, en donde la primera función objetivo incluye además uno o más de:
    una función de pérdida de trayecto que puntúa cuánto se distribuiría radialmente la velocidad candidata desde el trayecto objetivo;
    una función de pérdida de obstáculos que puntúa la proximidad a obstáculos; y una función de pérdida de oscilación que asigna pérdidas más altas a los cambios en la velocidad de rotación de una velocidad preferida anterior,
    y/o en donde la una o más funciones de pérdida invalidan una velocidad candidata al asignar una puntuación de pérdida más alta a la velocidad candidata.
  6. 6. El método de la reivindicación 1, en donde crear el conjunto de objetos de velocidad incluye transformar la velocidad preferida de una velocidad no holonómica a una velocidad holonómica y/o en donde transformar la velocidad preferida en una velocidad holonómica incluye aumentar el radio del uno o más de los otros robots en una distancia máxima entre una trayectoria preferida y una trayectoria en línea recta.
  7. 7. El método de la reivindicación 1, en donde la segunda función objetivo comprende una o más funciones de pérdida de la forma:
    ORCA/DWA - Cdwa + aORCA * Corca
    donde Cdwa se define como:
    Cdwa = a * cabecera(v,w) p * dist(v,w) y * velocidad(v,w),
    donde a, 3, y son pesos; cabecera(v,w) es una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia hasta el obstáculo más cercano; y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata (v,w) dada; y
    Corca se define como:
    Corca = av(vt - vpref) penalización ad * d(P,vt)
    donde ad y av son pesos; vt es una velocidad candidata que se evalúa; vp e es la velocidad preferida; P es el polígono formado por la unión de VO; d(P, vt) es una medida de cuánto incumple una velocidad candidata los VO; y penalización es un coste de penalización impuesto cuando una velocidad candidata vt incumple un VO, y/o
    en donde la función de pérdida d (P, vt) es una función de la distancia mínima desde el perímetro del polígono P hasta un punto definido por la trayectoria t alcanzada por la velocidad candidata vt.
    Un sistema robótico para navegar un robot a lo largo de un trayecto objetivo y evitar obstáculos, que comprende:
    un transceptor;
    un dispositivo de almacenamiento de datos;
    un procesador de datos y un dispositivo de almacenamiento de datos que tiene instrucciones almacenadas en él para su ejecución por parte del procesador de datos para:
    recibir una posición objetivo de un primer robot;
    determinar un trayecto objetivo para el primer robot;
    recibir un mapa de obstáculos;
    recibir la posición del primer robot;
    recibir la posición de uno o más de otros robots;
    generar un conjunto de velocidades candidatas para el primer robot;
    evaluar, usando una primera función objetivo, el conjunto de velocidades candidatas; caracterizado por que las instrucciones almacenadas se disponen adicionalmente cuando se ejecutan para:
    seleccionar del conjunto de velocidades candidatas, basándose en la primera función objetivo, una primera velocidad preferida del primer robot;
    crear un conjunto de obstáculos de velocidad basándose en la(s) posición(es) del uno o más de otros robots y la primera velocidad preferida del primer robot; evaluar, utilizando una segunda función objetivo que utilice los obstáculos de velocidad y la primera velocidad preferida, el conjunto de velocidades candidatas;
    seleccionar del conjunto de velocidades candidatas, basándose en la segunda función objetivo, una segunda velocidad preferida para el primer robot; y mover el primer robot basándose en la segunda velocidad preferida.
    El sistema de la reivindicación 8, en donde el trayecto objetivo comprende un trayecto desde una posición actual del primer robot hasta la posición objetivo del primer robot y/o en donde la posición objetivo del robot es la posición de un depósito de producto asociado fiduciario en una aplicación para un almacén de preparación de pedidos.
    El sistema de la reivindicación 8, en donde la posición del primer robot es determinada por una o más de muchas multiresolution scan matching (coincidencias de exploración de múltiples resoluciones - M3RSM), adaptative monte carlo localization (localización de monte carlo adaptativa - a Mc L), geo-positioning satellite (satélite de geoposicionamiento - GPS), información fiduciaria y sensores de robot basados en la odometría, y/o en donde la generación del conjunto de velocidades candidatas para el primer robot asume una velocidad candidata durante una o más etapas temporales que aplican restricciones de movimiento, obstáculo e inerciales para generar solamente velocidades candidatas que tengan trayectos admisibles.
    El sistema de la reivindicación 8, en donde la primera función objetivo comprende una o más funciones de pérdida de la forma:
    G(v,w) = a * cabecera (v,w) p * dist(v,w) y * velocidad(v,w),
    donde G(v,w) es la función objetivo, a, p, y son pesos; cabecera(v,w) es una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia hasta el obstáculo más cercano (su “ espacio” ); y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata (v,w) dada.
    El sistema de la reivindicación 11, en donde la primera función objetivo incluye además uno o más de: una función de pérdida de trayecto que puntúa cuánto se distribuiría radialmente la velocidad candidata desde el trayecto objetivo;
    una función de pérdida de obstáculos que puntúa la proximidad a obstáculos; y
    una función de pérdida de oscilación que asigna pérdidas más altas a los cambios en la velocidad de rotación de una velocidad preferida anterior y/o
    en donde la una o más funciones de pérdida invalidan una velocidad candidata al asignar una puntuación de pérdida más alta a la velocidad candidata.
    El sistema de la reivindicación 8, en donde crear el conjunto de objetos de velocidad incluye transformar la velocidad preferida de una velocidad no holonómica a una velocidad holonómica y/o en donde transformar la velocidad preferida en una velocidad holonómica incluye aumentar el radio del uno o más robots en una distancia máxima entre una trayectoria preferida y una trayectoria en línea recta.
    El sistema de la reivindicación 8, en donde la segunda función objetivo comprende una o más funciones de pérdida de la forma:
    ORCA/DWA - Cdwa + Qorca * Corca
    donde Cdwa se define como:
    Cdwa - a * cabecera(v,w) p * dist(v,w) y * velocidad(v,w),
    donde a, p, y son pesos; cabecera(v,w) es una medida de avance a lo largo del trayecto objetivo; dist(v,w) es la distancia hasta el obstáculo más cercano; y velocidad(v,w) es la velocidad hacia delante del robot para una velocidad candidata (v,w) dada; y
    CORCA se define como:
    Corca = av(vt - Vpref) + penalización ad * d(P, vt)
    donde ad y av son pesos; vt es una velocidad candidata que se evalúa; vpref es la velocidad preferida; P es el polígono formado por la unión de los VO; d (P, vt) es una medida de cuánto incumple una velocidad candidata los VO; y penalización es un coste de penalización impuesto cuando una velocidad candidata vt incumple un VO, y/o en donde la función de pérdida d (P, vt) es una función de la distancia mínima desde el perímetro del polígono P hasta un punto definido por la trayectoria t alcanzada por la velocidad candidata vt.
    Un sistema, que comprende una pluralidad de robots y un sistema de supervisión en donde uno o más robots, bajo la supervisión del sistema de supervisión, realizan el método de la reivindicación 1.
ES18811094T 2017-09-22 2018-09-21 Enfoque dinámico de ventana usando un punto crítico de pérdida óptimo de evitación de colisiones recíprocas Active ES2900495T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/712,256 US10429847B2 (en) 2017-09-22 2017-09-22 Dynamic window approach using optimal reciprocal collision avoidance cost-critic
PCT/US2018/052165 WO2019060679A1 (en) 2017-09-22 2018-09-21 DYNAMIC WINDOW APPROACH USING AN OPTIMUM RECIPROCAL COLLISION AVIATION COST CRITICAL

Publications (1)

Publication Number Publication Date
ES2900495T3 true ES2900495T3 (es) 2022-03-17

Family

ID=64500438

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18811094T Active ES2900495T3 (es) 2017-09-22 2018-09-21 Enfoque dinámico de ventana usando un punto crítico de pérdida óptimo de evitación de colisiones recíprocas

Country Status (8)

Country Link
US (1) US10429847B2 (es)
EP (1) EP3684664B1 (es)
JP (1) JP6987226B2 (es)
KR (1) KR102385257B1 (es)
CN (1) CN111511620B (es)
CA (1) CA3076498C (es)
ES (1) ES2900495T3 (es)
WO (1) WO2019060679A1 (es)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461912B2 (en) 2016-01-05 2022-10-04 California Institute Of Technology Gaussian mixture models for temporal depth fusion
US11217107B2 (en) * 2017-10-05 2022-01-04 California Institute Of Technology Simultaneous representation of moving and static obstacles for automatically controlled vehicles
US10831188B2 (en) * 2017-11-07 2020-11-10 Zoox, Inc. Redundant pose generation system
US10775790B2 (en) * 2018-02-09 2020-09-15 Baidu Usa Llc Methods and systems for model predictive control of autonomous driving vehicle
CN110941258A (zh) * 2018-09-21 2020-03-31 日本电产株式会社 移动体的控制方法及移动体的控制系统
US11724395B2 (en) 2019-02-01 2023-08-15 Locus Robotics Corp. Robot congestion management
JP7469850B2 (ja) * 2019-03-25 2024-04-17 本田技研工業株式会社 経路決定装置、ロボット及び経路決定方法
US11602857B2 (en) * 2019-04-05 2023-03-14 IAM Robotics, LLC Autonomous mobile robotic systems and methods for picking and put-away
CN110162063A (zh) * 2019-06-12 2019-08-23 北京洛必德科技有限公司 一种用于机器人自动充电的路径规划方法和装置
CN111813100B (zh) * 2019-07-04 2022-07-15 中国科学技术大学 一种局部路径规划算法及装置
CN110296698B (zh) * 2019-07-12 2023-04-28 贵州电网有限责任公司 一种以激光扫描为约束的无人机路径规划方法
CN110398964B (zh) * 2019-07-16 2022-02-01 浙江大学 一种低能量损耗机器人全覆盖路径规划方法及系统
CN110470306B (zh) * 2019-08-27 2023-03-10 中山大学 一种可保证连通性约束的基于深度强化学习的多机器人编队导航方法
CN110609559B (zh) * 2019-10-25 2020-08-25 江苏恒澄交科信息科技股份有限公司 用于无人船路径跟随和避障的改进dwa动态窗口法
CN113580155B (zh) * 2019-10-31 2023-07-18 灵动科技(北京)有限公司 自主移动装置及仓储物流系统
CN112744268B (zh) * 2019-10-31 2022-04-15 比亚迪股份有限公司 车辆的控制方法、装置和车辆
JP7450206B2 (ja) 2019-11-08 2024-03-15 三菱重工業株式会社 複数のビークルの移動制御方法、移動制御装置、移動制御システム、プログラム及び記録媒体
CN110727272B (zh) * 2019-11-11 2023-04-18 广州赛特智能科技有限公司 一种多台机器人的路径规划调度系统及方法
CN111060116B (zh) * 2019-12-04 2023-07-18 江西洪都航空工业集团有限责任公司 一种基于视觉的草场自主建图系统
US11493925B2 (en) * 2020-03-05 2022-11-08 Locus Robotics Corp. Robot obstacle collision prediction and avoidance
CN111367283B (zh) * 2020-03-11 2023-04-14 郴州职业技术学院 一种基于障碍物构型重构的无人车避障方法及系统
CN111399506B (zh) * 2020-03-13 2023-04-25 大连海事大学 一种基于动力学约束的全局-局部混合无人船路径规划方法
EP4118632A4 (en) * 2020-03-13 2024-02-21 Brain Corp SYSTEMS AND METHODS FOR ROUTE SYNCHRONIZATION FOR ROBOTIC DEVICES
CN111580518B (zh) * 2020-05-12 2022-08-02 哈尔滨工程大学 一种基于改进果蝇优化和动态窗口法的无人艇分层避障方法
CN111709633B (zh) * 2020-06-09 2022-09-06 吉林大学 一种碰撞危险度确定方法、装置、设备以及可存储介质
CN111665847A (zh) * 2020-06-24 2020-09-15 上海应用技术大学 一种基于模糊逻辑的动态窗口避障算法
CN113960995A (zh) * 2020-07-20 2022-01-21 炬星科技(深圳)有限公司 一种避障规划方法、系统及设备
CN111951552B (zh) * 2020-08-11 2021-10-15 腾讯科技(深圳)有限公司 一种自动驾驶中风险管理的方法以及相关装置
US20220083062A1 (en) 2020-09-11 2022-03-17 Locus Robotics Corp. Robot navigation management between zones in an environment
US11741564B2 (en) 2020-09-11 2023-08-29 Locus Robotics Corp. Sequence adjustment for executing functions on hems in an order
US11550827B2 (en) * 2020-09-22 2023-01-10 International Business Machines Corporation Graph enabled location optimization
CN112241171A (zh) * 2020-10-09 2021-01-19 国网江西省电力有限公司检修分公司 一种可绕障碍的轮式机器人直线轨迹跟踪方法
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
CN112330959B (zh) * 2020-10-30 2022-02-22 东北大学 一种用于无人驾驶车辆的最优对等碰撞避免方法
CN112526991B (zh) * 2020-11-25 2022-05-24 中国科学技术大学 机器人运动方法、装置、电子设备及存储介质
CN112378408B (zh) * 2020-11-26 2023-07-25 重庆大学 一种实现轮式移动机器人实时避障的路径规划方法
CN112327885B (zh) * 2020-12-01 2024-04-09 大连海事大学 一种无人船自适应全局-局部混合路径规划的方法
CN112798304A (zh) * 2020-12-07 2021-05-14 北京云迹科技有限公司 一种机器人避让性能测试方法及装置
CN112486183B (zh) * 2020-12-09 2022-11-18 上海机器人产业技术研究院有限公司 一种室内移动机器人的路径规划算法
CN112506199B (zh) * 2020-12-12 2022-12-02 江西洪都航空工业集团有限责任公司 一种基于动态窗口法且适用于阿克曼模型机器人的局部路径规划方法
CN112612295B (zh) * 2020-12-23 2022-07-12 长光卫星技术股份有限公司 一种遥感卫星地面站测控和数传资源自动分配方法
CN113156933B (zh) * 2020-12-30 2022-05-03 徐宁 一种机器人行进控制系统和方法
RU2769710C1 (ru) * 2021-01-14 2022-04-05 Автономная некоммерческая образовательная организация высшего образования «Сколковский институт науки и технологий» Способ построения маршрута движения и управления движением мобильного сервисного робота в торговом помещении
CN113253717B (zh) * 2021-03-17 2022-10-11 武汉科技大学 一种基于动态障碍物的室内移动机器人局部路径规划方法
CN113050646B (zh) * 2021-03-22 2022-09-23 西安工业大学 一种用于室内移动机器人动态环境路径规划方法
JP2022157259A (ja) * 2021-03-31 2022-10-14 株式会社小松製作所 システム、方法および作業車両
WO2022232415A1 (en) * 2021-04-28 2022-11-03 Rutgers, The State University Of New Jersey Reactive collision avoidance for autonomous vehicles considering physical constraints
US20220363273A1 (en) * 2021-05-13 2022-11-17 Ford Global Technologies, Llc Scenario Discriminative Hybrid Motion Control for Mobile Robots
CN113295167B (zh) * 2021-05-14 2022-07-15 山东新一代信息产业技术研究院有限公司 一种室内机器人避障方法
CN113296521B (zh) * 2021-05-26 2021-11-05 紫清智行科技(北京)有限公司 一种基于动态窗口的障碍物局部避障方法
CN113341991B (zh) * 2021-06-18 2022-08-09 重庆大学 一种基于动态窗口和冗余节点过滤的路径优化方法
CN114019912B (zh) * 2021-10-15 2024-02-27 上海电机学院 一种群体机器人运动规划控制方法及系统
WO2023076242A1 (en) * 2021-10-29 2023-05-04 Rutgers, The State University Of New Jersey Collision-free dynamic window approach for moving obstacles
CN113858212A (zh) * 2021-11-09 2021-12-31 南京工程学院 一种非接触式多机器人协作坐标系转换装置及方法
CN114200943A (zh) * 2021-12-13 2022-03-18 哈尔滨工业大学芜湖机器人产业技术研究院 一种动态避让方法及移动机器人
CN114326720B (zh) * 2021-12-20 2023-08-22 上海大学 一种无人艇实时避障方法及系统
CN114237256B (zh) * 2021-12-20 2023-07-04 东北大学 一种适用于欠驱动机器人的三维路径规划与导航方法
WO2023136020A1 (en) * 2022-01-13 2023-07-20 Nec Corporation Pathfinding apparatus, pathfinding method, and non-transitory computer-readable storage medium
CN117480463A (zh) * 2022-05-23 2024-01-30 北京小米机器人技术有限公司 移动设备及其速度控制方法、装置、存储介质
GB2620909A (en) * 2022-07-04 2024-01-31 Opteran Tech Limited Method and system for determining the structure, connectivity and identity of a physical or logical space or attribute thereof
CN115345450A (zh) * 2022-07-27 2022-11-15 北京极智嘉科技股份有限公司 容器搬运任务的分配方法及装置
CN115016510A (zh) * 2022-08-08 2022-09-06 武汉工程大学 一种机器人导航避障方法、装置以及存储介质
EP4332712A1 (en) * 2022-08-29 2024-03-06 Nokia Technologies Oy Autonomous vehicle control
US20240135585A1 (en) * 2022-10-21 2024-04-25 Dexterity, Inc. Camera calibration process and interface
CN115542953B (zh) * 2022-12-05 2023-03-24 广东电网有限责任公司东莞供电局 一种基于无人机的巡检方法、装置、设备以及介质
CN116533236B (zh) * 2023-05-09 2024-04-12 北京航空航天大学 一种基于离散工作空间的服务机器人操作评估策略

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5006988A (en) 1989-04-28 1991-04-09 University Of Michigan Obstacle-avoiding navigation system
KR100843085B1 (ko) 2006-06-20 2008-07-02 삼성전자주식회사 이동 로봇의 격자지도 작성 방법 및 장치와 이를 이용한영역 분리 방법 및 장치
JP5080333B2 (ja) 2007-04-06 2012-11-21 本田技研工業株式会社 自律移動体のための物体認識装置
US8060306B2 (en) 2007-10-04 2011-11-15 Deere & Company Method and system for obstacle avoidance for a vehicle
CA2859112C (en) 2009-08-31 2017-08-15 Neato Robotics, Inc. Method and apparatus for simultaneous localization and mapping of mobile robot environment
US8209143B1 (en) 2009-09-15 2012-06-26 Google Inc. Accurate alignment of multiple laser scans using a template surface
DE102010012749A1 (de) 2010-03-25 2011-09-29 Kuka Laboratories Gmbh Verfahren zum Betreiben eines autonomen Flurförderfahrzeugs
US8723872B2 (en) 2010-06-09 2014-05-13 Disney Enterprises, Inc. Display with robotic pixels
US9067320B2 (en) 2010-06-09 2015-06-30 Disney Enterprises, Inc. Robotic texture
US9286810B2 (en) 2010-09-24 2016-03-15 Irobot Corporation Systems and methods for VSLAM optimization
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
US9412173B2 (en) 2013-06-21 2016-08-09 National University Of Ireland, Maynooth Method for mapping an environment
US9216745B2 (en) 2013-09-16 2015-12-22 Disney Enterprises, Inc. Shared control of semi-autonomous vehicles including collision avoidance in multi-agent scenarios
US9329597B2 (en) * 2014-01-17 2016-05-03 Knightscope, Inc. Autonomous data machines and systems
KR101664582B1 (ko) * 2014-11-12 2016-10-10 현대자동차주식회사 자율주행차량의 주행경로 생성장치 및 방법
JP2017004373A (ja) 2015-06-12 2017-01-05 株式会社リコー 情報処理装置、情報処理プログラム、および情報処理システム
US9758305B2 (en) * 2015-07-31 2017-09-12 Locus Robotics Corp. Robotic navigation utilizing semantic mapping
FR3048517B1 (fr) * 2016-03-07 2022-07-22 Effidence Robot autonome motorise avec anticipation d'obstacle
US20170270466A1 (en) 2016-03-18 2017-09-21 Jusda International Logistics (TAIWAN) CO.,LTD Method and system using with automated guided vehicle
CN106156742A (zh) * 2016-07-06 2016-11-23 尚艳燕 一种平衡车障碍物规避方法和装置
US10108194B1 (en) 2016-09-02 2018-10-23 X Development Llc Object placement verification
US10650270B2 (en) 2017-04-21 2020-05-12 X Development Llc Methods and systems for simultaneous localization and calibration

Also Published As

Publication number Publication date
JP6987226B2 (ja) 2021-12-22
JP2020534621A (ja) 2020-11-26
WO2019060679A1 (en) 2019-03-28
EP3684664B1 (en) 2021-11-03
CA3076498A1 (en) 2019-03-28
US20190094866A1 (en) 2019-03-28
CN111511620B (zh) 2023-06-06
US10429847B2 (en) 2019-10-01
KR102385257B1 (ko) 2022-04-11
CN111511620A (zh) 2020-08-07
KR20200089654A (ko) 2020-07-27
CA3076498C (en) 2022-10-18
EP3684664A1 (en) 2020-07-29

Similar Documents

Publication Publication Date Title
ES2900495T3 (es) Enfoque dinámico de ventana usando un punto crítico de pérdida óptimo de evitación de colisiones recíprocas
ES2903525T3 (es) Coincidencia de barridos multirresolución con zonas de exclusión
ES2901143T3 (es) Localización de acoplamiento de un cargador de robot
KR102497430B1 (ko) 로봇 충전기 도킹 제어
CN110220524A (zh) 路径规划方法、电子设备、机器人及计算机可读存储介质
US11493925B2 (en) Robot obstacle collision prediction and avoidance
US20220083062A1 (en) Robot navigation management between zones in an environment