ES2912908T3 - Mapeo y planificación simultáneos por un robot - Google Patents

Mapeo y planificación simultáneos por un robot Download PDF

Info

Publication number
ES2912908T3
ES2912908T3 ES16816014T ES16816014T ES2912908T3 ES 2912908 T3 ES2912908 T3 ES 2912908T3 ES 16816014 T ES16816014 T ES 16816014T ES 16816014 T ES16816014 T ES 16816014T ES 2912908 T3 ES2912908 T3 ES 2912908T3
Authority
ES
Spain
Prior art keywords
robot
occupancy level
planning
route
map
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
ES16816014T
Other languages
English (en)
Inventor
Aliakbar Aghamohammadi
Bardia Fallah Behabadi
Christopher Lott
Shayegan Omidshafiei
Kiran Somasundaram
Sarah Paige Gibson
Casimir Matthew Wierzynski
Saurav Agarwal
Gerhard Reitmayr
Spindola Serafin Diaz
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2912908T3 publication Critical patent/ES2912908T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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
    • 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
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3837Data obtained from a single source
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3881Tile-based structures
    • 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
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40512Real time path planning, trajectory generation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40519Motion, trajectory planning
    • 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/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0251Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Un procedimiento (800) de planificación simultánea de una ruta y mapeo de un entorno por un robot, que comprende: determinar (802) una media de un nivel de ocupación para una ubicación en un mapa; determinar (804) una función de distribución de probabilidad, PDF, del nivel de ocupación; calcular (806) una función de costo en base al nivel medio de ocupación y una varianza del nivel de ocupación obtenida a partir de la PDF; y simultáneamente planificar (808) la ruta y mapear el entorno en base a la función de costo.

Description

DESCRIPCIÓN
Mapeo y planificación simultáneos por un robot
Antecedentes
Campo
Ciertos aspectos de la presente divulgación generalmente se relacionan con el aprendizaje automático y, más particularmente, con la mejora de sistemas y procedimientos de planificación y mapeo simultáneos de un entorno por porción de un robot.
Antecedentes
Los robots pueden estar diseñados para realizar comportamientos o tareas con un alto grado de autonomía. Un robot puede usar diferentes módulos y componentes para realizar varias tareas. Por ejemplo, el robot puede tener diferentes componentes para localización, mapeo y planificación. La localización está dirigida a resolver el problema de determinar dónde se encuentra el robot. El robot recibe información de sus sensores para comprender dónde se encuentra dentro del entorno.
El mapeo está dirigido a construir una representación del entorno. Por ejemplo, el mapeo se usa para determinar qué porción del entorno está ocupada y qué partes son espacio libre. Además, el mapeo puede evitar que el robot choque con obstáculos.
Un mapa generado a través del enfoque por lotes se puede generar inmediatamente después de que se hayan recopilado varias mediciones de sensores en un entorno que se va a mapear. Es decir, en el enfoque por lotes, todos los datos de un entorno a mapear se recopilan antes de calcular el mapa. Todavía, en algunos casos, es posible que un robot no pueda recopilar todos los datos en un entorno antes de calcular el mapa.
Por lo tanto, en algunos casos, se especifica un enfoque incremental para generar un mapa. Se puede calcular un mapa generado a través del enfoque incremental en base a los datos iniciales recopilados de los alrededores del robot y actualizado con cada nueva medición del sensor. Cada nueva medición del sensor puede basarse en que el robot cambie su ubicación, mida un área diferente desde la misma ubicación o realice la misma medición por redundancia. Para el enfoque incremental, las mediciones del sensor son independientes entre sí. Por lo tanto, el robot puede usar suposiciones al calcular el mapa. Por lo tanto, puede haber cierta incertidumbre al calcular un mapa incremental.
La planificación está dirigida a determinar cómo realizar una tarea después de que el robot conozca el diseño del entorno y cómo viajará del punto A al B. Es decir, en algunos casos, antes de moverse de una posición actual a un objetivo, es conveniente determinar la trayectoria (por ejemplo, ruta) hacia el objetivo con el costo más bajo de múltiples trayectorias candidatas evaluadas durante una fase de planificación. Es decir, al seleccionar una trayectoria, el robot incluye evaluar una densidad predicha para cada vóxel a lo largo de cada una de una pluralidad de trayectorias candidatas. El costo considera la varianza de vóxeles y los recursos utilizados para viajar desde la posición actual hasta el objetivo. Por lo tanto, al determinar una trayectoria, puede ser conveniente determinar un nivel de ocupación para cada ubicación en un mapa y también determinar una función de distribución de probabilidad (PDF) del nivel de ocupación. Además, puede ser conveniente determinar una función de costo en base a la PDF para mejorar la planificación de la ruta. El documento US5,111,401A describe un sistema de control de navegación para dirigir un vehículo autónomo que pretende abordar el problema de la degradación del modelo mundial debido a los errores de navegación a estima acumulados. Agha-Mohammadi Ali-Akbar y otros: "Robust online belief space planning in changing environments: Applications to physical mobile robots", Conferencia Internacional IEEE sobre Robótica y Automatización (2014), describe un procedimiento para un esquema de replanificación en línea en un espacio de creencias en un robot móvil físico que es resistente a los cambios en el entorno y a las grandes perturbaciones. Amato, NM y otros: "Probabilistic roadmap methods are embarrassingly parallel" Conferencia internacional IEEE sobre robótica y automatización (1999), describe técnicas para paralelizar tipos de cálculos comúnmente realizados en algoritmos de planificación de movimiento y dificultades para paralelizar procedimientos de planificación y movimiento secuencial.
Breve descripción de los dibujos
La Figura 1 ilustra una implementación de ejemplo de planificación simultánea de una ruta y mapeo de un entorno por un robot que usa un sistema en un chip (SOC), que incluye un procesador de propósito general de acuerdo con ciertos aspectos de la presente divulgación.
La Figura 2 ilustra una implementación de ejemplo de un sistema de acuerdo con aspectos de la presente divulgación.
Las Figuras 3A, 3B y 3C ilustran ejemplos de un robot que realiza mediciones de acuerdo con aspectos de la presente divulgación.
La Figura 4 ilustra un ejemplo de un entorno a mapear de acuerdo con aspectos de la presente divulgación. Las Figuras 5A, 5B y 5C ilustran varios aspectos de una trayectoria de acuerdo con aspectos de la presente divulgación.
Las Figuras 6A-6G son ejemplos de un robot en un área mapeada de acuerdo con aspectos de la presente divulgación.
La Figura 7 es un diagrama de bloques que ilustra diferentes módulos/medios/componentes en un aparato ejemplar.
La Figura 8 ilustra un diagrama de flujo para un procedimiento para planificar simultáneamente una ruta y mapear un entorno por un robot de acuerdo con aspectos de la presente divulgación.
Descripción detallada
Para los sistemas autónomos, como los robots, es conveniente construir un mapa preciso del entorno del robot. El mapa puede generarse a través de un sensor, tal como un sensor de visión estéreo. Además, cuando se construyen mapas para entornos grandes, se aumentan los tamaños de vóxel para mantener el cálculo manejable.
En una configuración, para determinar un mapa, el mapa puede dividirse en vóxeles (por ejemplo, celdas). Cada vóxel puede tener un estado de estar ocupado (por ejemplo, lleno), parcialmente ocupado o vacío. Al generar un mapa utilizando el enfoque incremental (por ejemplo, datos incrementales), las técnicas convencionales pueden calcular mapas inconsistentes, pueden no tener en cuenta la incertidumbre en un determinado nivel de ocupación de un vóxel y/o pueden no determinar el nivel de ocupación (por ejemplo, total, parcialmente llena o vacía) de vóxeles. Por ejemplo, en los sistemas convencionales, cuando se calcula un mapa utilizando el enfoque incremental, un vóxel es cero (por ejemplo, vacío) o uno (por ejemplo, lleno). Los sistemas convencionales no tienen en cuenta el nivel de ocupación de un vóxel al calcular un mapa. En la presente divulgación, el nivel de ocupación puede referirse a la proporción de ocupación sobre un espacio. Además, el nivel de ocupación también puede denominarse ocupación y/o densidad.
Los aspectos de la presente divulgación determinan el nivel de ocupación de un vóxel y también determinan una función de distribución de probabilidad (PDF) de un nivel de ocupación dado los datos observados por un dispositivo autónomo, como un robot. Además, los aspectos de la presente divulgación determinan una función de costo en base a la PDF. Finalmente, los aspectos de la presente divulgación planifican una ruta y mapean el entorno con base en la función de costo. En una configuración, la planificación y el mapeo de rutas se realizan simultáneamente. La Figura 1 ilustra un ejemplo de implementación del procedimiento mencionado anteriormente de mapeo y planificación por un robot que utiliza un sistema en un chip (SOC) 100, que puede incluir un procesador de propósito general xPU) o procesadores de propósito general de múltiples núcleos xPU) 102 de acuerdo con ciertos aspectos de la presente divulgación. Las variables (por ejemplo, señales neuronales y pesos sinápticos), los parámetros del sistema asociados con un dispositivo computacional (por ejemplo, una red neuronal con pesos), los retrasos, la información de intervalos de frecuencia y la información de tareas pueden almacenarse en un bloque de memoria asociado con una unidad de procesamiento neuronal (NPU) 108, en un bloque de memoria asociado con una CPU 102, en un bloque de memoria asociado con una unidad de procesamiento de gráficos (GPU) 104, en un bloque de memoria asociado con un procesador de señal digital (DSP) 106, en un bloque de memoria dedicado 118, o puede distribuirse en varios bloques. Las instrucciones ejecutadas en el procesador de propósito general 102 pueden cargarse desde una memoria de programa asociada con la CPU 102 o pueden cargarse desde un bloque de memoria dedicado 118.
El SOC 100 también puede incluir bloques de procesamiento adicionales adaptados a funciones específicas, como una GPU 104, un dSp 106, un bloque de conectividad 110, que puede incluir conectividad de evolución a largo plazo de cuarta generación (LTE 4G), conectividad Wi-Fi sin licencia, conectividad USB, conectividad Bluetooth y similares, y un procesador multimedia 112 que puede, por ejemplo, detectar y reconocer gestos. En una implementación, la NPU se implementa en la CPU, DSP y/o GPU. El SOC 100 también puede incluir un procesador de sensor 114, procesadores de señales de imagen (ISP) y/o navegación 120, que puede incluir un sistema de posicionamiento global.
El SOC 100 puede basarse en un conjunto de instrucciones ARM. En un aspecto de la presente divulgación, las instrucciones cargadas en el procesador de propósito general 102 pueden comprender un código para determinar una función de distribución de probabilidad (PDF) de un nivel de ocupación para una ubicación. Las instrucciones cargadas en el procesador de propósito general 102 también pueden comprender un código para calcular una función de costo en base a la p Df . Las instrucciones cargadas en el procesador de propósito general 102 también pueden comprender código para planificar simultáneamente la ruta y mapear el entorno en base a la función de costo.
La Figura 2 ilustra una implementación de ejemplo de un sistema 200 de acuerdo con ciertos aspectos de la presente divulgación. Como se ilustra en la Figura 2, el sistema 200 puede tener múltiples unidades de procesamiento local 202 que pueden realizar varias operaciones de procedimientos descritos en la presente memoria. Cada unidad de procesamiento local 202 puede comprender una memoria de estado local 204 y una memoria de parámetros local 206 que puede almacenar parámetros de una red neuronal. Además, la unidad de procesamiento local 202 puede tener una memoria de programa modelo (LMP) local (neurona) 208 para almacenar un programa modelo local, una memoria de programa de aprendizaje local 210 (LLP) para almacenar un programa de aprendizaje local y una memoria de conexión local 212. Además, como se ilustra en la Figura 2, cada unidad de procesamiento local 202 puede interactuar con una unidad de procesamiento de configuración 214 para proporcionar configuraciones para memorias locales de la unidad de procesamiento local, y con una unidad de procesamiento de conexión de enrutamiento 216 que proporciona enrutamiento entre las unidades de procesamiento local 202.
En una configuración, se configura un modelo de aprendizaje automático determinando una media de un nivel de ocupación para una ubicación en un mapa, determinando una función de distribución de probabilidad (PDF) del nivel de ocupación, calculando una función de costo en base a la PDF y/o simultáneamente planificar la ruta y mapear el entorno en base a la función de costo. El modelo incluye un medio de determinación, un medio de cálculo y/o simultáneamente un medio de mapeo y planificación. En un aspecto, los medios antes mencionados pueden ser el procesador de uso general 102, la memoria de programa asociada con el procesador de uso general 102, el bloque de memoria 118, las unidades de procesamiento local 202 y/o las unidades de procesamiento de conexión de enrutamiento 216 configuradas para realizar las funciones enumeradas. En otra configuración, los medios antes mencionados pueden ser cualquier módulo o cualquier aparato configurado para realizar las funciones enumeradas por los medios antes mencionados.
De acuerdo con ciertos aspectos de la presente divulgación, cada unidad de procesamiento local 202 puede configurarse para determinar los parámetros del modelo en función de una o más características funcionales deseadas del modelo, y desarrollar una o más características funcionales hacia las características funcionales deseadas como el los parámetros determinados se adaptan, ajustan y actualizan aún más.
Mapeo y planificación simultáneos por un robot
Como se discutió anteriormente, los aspectos de la presente divulgación están dirigidos a determinar un nivel de ocupación de cada vóxel y determinar un nivel de confianza de un nivel de ocupación determinado. El nivel de confianza puede denominarse función de distribución de probabilidad (PDF) de un vóxel con datos observados por un dispositivo, como un robot (por ejemplo, un dispositivo autónomo). Un nivel de confianza de un mapa puede basarse en el nivel de confianza de cada uno de los vóxeles del mapa. Además, de acuerdo con la PDF, el robot puede planificar una ruta con la menor probabilidad de colisión con un objeto (por ejemplo, la ruta más segura). La ruta más segura puede determinarse en base a una función de costo.
En una configuración, se especifica un módulo de mapeo para un dispositivo, como un robot. El módulo de mapeo puede ser un procesador de señales digitales (DSP), un procesador de aplicaciones, una unidad de procesamiento de gráficos (GPU) y/u otro módulo. El módulo de mapeo se puede especificar para mejorar la precisión de los mapas generados usando datos incrementales. Además, el módulo de mapeo puede procesar el nivel de ocupación de vóxeles (por ejemplo, habilitar vóxeles grandes y reducir la complejidad computacional) y/o incorporar un modelo de sensor, como un modelo de sensor estocástico, en la construcción del mapa. Además, el módulo de mapeo puede procesar los niveles de ocupación de vóxeles en un mapa y determinar el nivel de confianza de la ocupación determinada. Finalmente, el módulo de mapeo puede usarse para mejorar la planificación bajo incertidumbre. Los aspectos de la presente divulgación están dirigidos a generar un mapa para un robot y seleccionar una trayectoria con el costo más bajo. Todavía, los mapas no se limitan a ser generados por un robot y están contemplados para cualquier tipo de dispositivo, como por ejemplo un coche, avión, barco y/o humano. Además, en una configuración, el dispositivo es autónomo.
Las Figuras 3A, 3B y 3C ilustran ejemplos de un robot que realiza mediciones de acuerdo con aspectos de la presente divulgación. La Figura 3A ilustra un ejemplo de un robot 300 que realiza mediciones a través de uno o más sensores (no mostrados) del robot 300. Las mediciones pueden referirse a una medición obtenida en base a si un rayo es interceptado por un vóxel. Por supuesto, los aspectos de la presente divulgación no se limitan a los rayos de medición y también se contemplan para otros tipos de mediciones. Como se muestra en la Figura 3A, el sensor del robot 300 puede tener un cono de medición 302 de modo que el sensor reciba mediciones de un área 304 dentro del cono 302.
Como se muestra en la Figura 3B, de acuerdo con un aspecto de la presente divulgación, el robot 300 puede colocarse en un entorno para mapear 306. El entorno a mapear 306 puede incluir múltiples vóxeles 308. Como se muestra en la Figura 3B, en base a las mediciones del sensor, el sensor puede determinar un nivel de ocupación de cada vóxel 308 dentro del cono de medición 302. Cabe señalar que los vóxeles 308 de la Figura 3B tienen fines ilustrativos, los vóxeles de la presente divulgación no se limitan al tamaño o número de vóxeles que se muestran en la Figura 3B.
Como se muestra en la Figura 3C, de acuerdo con un aspecto de la presente divulgación, el robot 300 puede realizar mediciones en diferentes ubicaciones. Para un enfoque incremental, el mapa se genera en base a las mediciones obtenidas en una primera ubicación y el mapa generado se actualiza a medida que el robot se mueve a diferentes ubicaciones en el entorno para mapear 306. Las mediciones en diferentes lugares se realizan en diferentes momentos (por ejemplo, diferentes pasos de tiempo). Por ejemplo, un robot 300 puede realizar una primera medición en un primer lugar en un primer momento y una segunda medición en un segundo lugar en un segundo momento.
La Figura 4 ilustra un ejemplo de un entorno a mapear 400 de acuerdo con aspectos de la presente divulgación. Como se muestra en la Figura 4, un robot (que no se muestra) puede crear una cuadrícula del entorno para mapear 400. La cuadrícula forma múltiples vóxeles 402. Además, en este ejemplo, un objeto 404 está dentro del entorno a mapear 400. Así, como se muestra en la Figura 4, algunos de los vóxeles 402 están vacíos, algunos de los vóxeles 402A-402F están parcialmente ocupados y un vóxel 402G está completamente ocupado.
Como se muestra en las Figuras 3B, 3C y 4, un entorno que va a mapearse puede representarse como una cuadrícula. Cada celda de la cuadrícula puede denominarse vóxel. Además, como se mencionó anteriormente, cada vóxel tiene un nivel de ocupación. El nivel de ocupación puede denominarse ocupación y/o densidad. El nivel de ocupación (d) puede ser una variable, como una variable aleatoria, con una media y una varianza. La media se refiere al nivel de ocupación esperado dadas las mediciones que ha recopilado el sensor desde el paso de tiempo 0 hasta el paso de tiempo k (zo-k). La varianza se refiere a la certeza del nivel de ocupación dadas las mediciones que ha recopilado el sensor desde el paso de tiempo 0 hasta el paso de tiempo k (zo-k).
La media del nivel de ocupación se puede calcular a partir de:
Figure imgf000005_0001
La varianza del nivel de ocupación se puede calcular a partir de:
ad - Var[d\zok\
La media y la varianza se determinan a partir de todas las medidas obtenidas (zo.k). En los sistemas convencionales no se especifica la incertidumbre para las medidas de vóxeles. Por ejemplo, en sistemas convencionales, si el nivel de ocupación notificado (por ejemplo, celda posterior) es 0,5, un planificador de rutas puede no determinar si el 0,5 es el resultado de unas pocas mediciones o de cientos de mediciones. Por lo tanto, se desconoce la confiabilidad del nivel de ocupación. Por lo tanto, los sistemas convencionales pueden generar mapas inconsistentes debido a suposiciones inexactas.
Después de determinar un nivel de ocupación, tal como un nivel de ocupación medio, de cada vóxel de múltiples vóxeles, es conveniente determinar un nivel de confianza (por ejemplo, probabilidad) del nivel de ocupación determinado. Por ejemplo, si varias mediciones han indicado que un vóxel está ocupado, existe una alta probabilidad de que el vóxel esté ocupado en comparación con una situación en la que solo una medición ha indicado que un vóxel está ocupado. Además, si un nivel de ocupación de un vóxel tiene un nivel de confianza bajo (por ejemplo, un nivel de confianza por debajo de un umbral), el robot puede moverse a varios lugares para tomar medidas adicionales para mejorar la confianza en el nivel de ocupación.
En una configuración, se especifica una regla de actualización para determinar la probabilidad (p) de un nivel de ocupación (d) para un vóxel i de un mapa (m). La probabilidad (p) puede denominarse función de distribución de probabilidad (PDF) que incluye la media y la varianza (por ejemplo, confianza del nivel de ocupación). En una configuración, la media y la varianza se pueden extraer de la PDF del nivel de ocupación de un vóxel. Además, se puede planificar una ruta en base a la media y la varianza. Es decir, en base a la media y la varianza se determina un costo para cada ruta. En una configuración, el robot selecciona la ruta con el costo más bajo. El costo puede basarse en el nivel medio de ocupación, la varianza y/o los recursos utilizados para recorrer la ruta. Los recursos pueden referirse a los recursos utilizados para recorrer una ruta, como combustible y/o energía.
La Figura 5A ilustra un ejemplo de una ruta 500 con una posición inicial 502 y una posición final 504. Además, como se muestra en la Figura 5B, el robot predice los vóxeles 506 que serán interceptados por la ruta 500. Si los vóxeles 506 están en un área que ya ha sido mapeada, entonces la media y la varianza de cada vóxel 506 se conocen en base a las mediciones que ha recopilado el sensor desde el paso de tiempo 0 hasta el paso de tiempo k (zo-k).
En algunos casos, uno o más vóxeles 506 pueden estar en un área no mapeada. Además, es posible que sea necesario actualizar las medidas de los vóxeles 506 en el área mapeada. Por ejemplo, un vóxel puede estar en un área mapeada; sin embargo, es posible que el robot solo haya realizado una medición en el vóxel. Como otro ejemplo, los datos de ruido recibidos de los sensores del robot pueden no ser completamente confiables. Por ejemplo, la interferencia ruidosa captada por los sensores del robot puede inducir a error a un robot a determinar que un espacio está ocupado cuando en realidad está libre. Por lo tanto, puede haber una gran variación en la medición del vóxel. Por lo tanto, al planificar una ruta, el robot puede determinar los pasos de tiempo a lo largo de la ruta que brindan oportunidades para que el robot obtenga mediciones en cada vóxel 506.
La Figura 5C ilustra un ejemplo de pasos de tiempo 508-524 donde el robot tiene oportunidades para obtener mediciones de los vóxeles 506 (no mostrados en la Figura 5C) a lo largo de la ruta 500. Como ejemplo, la distancia entre cada paso de tiempo desde un primer paso de tiempo 508 hasta un sexto paso de tiempo 518 en una primera porción 526 de la ruta 500 es menor que la distancia entre cada paso de tiempo desde el séptimo paso de tiempo 520 hasta un noveno paso de tiempo. paso 524 en una segunda porción 528 de la ruta 500. Es decir, como se muestra en la Figura 5C, la primera porción 526 de la trayectoria 500 se curva. Por lo tanto, el robot puede viajar a una velocidad reducida para navegar por la curva. En función de la velocidad reducida, el robot puede aumentar las oportunidades de obtener mediciones a lo largo de la ruta. Es decir, se reduce la distancia entre los pasos de tiempo 508-518 en la primera porción 526 de la ruta 500. Como resultado de la distancia reducida entre los pasos de tiempo 508-516 en la primera porción 526, la precisión de las mediciones puede aumentar en la primera porción 526. Un número de pasos de tiempo entre un primer punto y un segundo punto puede ser indicativo de la velocidad de un robot.
Además, como se muestra en la Figura 5C, la segunda porción 528 de la ruta 500 es una línea sustancialmente recta. Por lo tanto, el robot puede viajar a mayor velocidad a lo largo de la línea recta. En función del aumento de la velocidad, el robot puede disminuir las oportunidades de obtener mediciones a lo largo de la ruta. Es decir, se incrementa la distancia entre los pasos de tiempo 520-524 en la segunda porción 528 de la ruta 500. Como resultado de la mayor distancia entre los pasos de tiempo 520-524 en la segunda porción 528, la precisión de las mediciones puede disminuir en la segunda porción 528.
De acuerdo con un aspecto de la presente divulgación, el robot no viaja desde un primer punto a un segundo punto cuando planifica una ruta. Por ejemplo, al planificar la ruta 500, el robot no viaja desde una posición inicial 502 y una posición final 504. Más bien, el robot determina los vóxeles, como los vóxeles 506 de la Figura 5B, y predice los pasos de tiempo, como los pasos de tiempo 508-524 de la Figura 5C, que estarán disponibles a lo largo de la ruta.
Como se discutió anteriormente, un nivel de ocupación puede actualizarse en base a las observaciones de cada paso de tiempo. Por lo tanto, al planificar una ruta, el robot determina el número de pasos de tiempo (por ejemplo, oportunidades para observaciones) a lo largo de la ruta. Los pasos de tiempo pueden predecirse en base a la velocidad del robot. El robot también puede considerar su orientación (por ejemplo, una dirección a la que se enfrentará el robot) en cada paso de tiempo. Para cada paso de tiempo previsto, el robot puede predecir el nivel de ocupación de los vóxeles basándose en el paso de tiempo actual.
Además, después de determinar un nivel de ocupación, tal como un nivel medio de ocupación, de cada vóxel de múltiples vóxeles, es conveniente determinar un nivel de confianza (por ejemplo, probabilidad) del nivel de ocupación determinado. Una función de distribución de probabilidad puede utilizar el nivel de ocupación determinado. Además, se calcula una función de costo para cada trayecto en base al nivel medio de ocupación y la varianza de los vóxeles. El robot puede determinar una función de costo para múltiples rutas y puede seleccionar una ruta que tenga el costo más bajo.
En una configuración, se especifica una regla de actualización para determinar la probabilidad (p) de un nivel de ocupación (d) de un mapa (m). La probabilidad (p) puede denominarse función de distribución de probabilidad (PDF) que incluye la media y la varianza (por ejemplo, la confianza del nivel de ocupación). La PDF para un nivel de ocupación de un vóxel i se puede calcular de la siguiente manera:
Figure imgf000006_0001
En la ecuación 1, zo:k son las medidas previstas que recopilará el sensor desde el paso de tiempo 0 hasta el paso de tiempo k. Es decir, la ecuación 1 determina recursivamente la probabilidad del nivel de ocupación (d) en el paso de tiempo k dadas las mediciones del sensor desde el paso de tiempo 0 hasta el paso de tiempo k (zo: k). El nivel de ocupación (d) es para todo el mapa. Es decir, d es la colección de todos los vóxeles en el mapa d1 para dgramo, donde g es el número de vóxeles en el mapa. En la ecuación 1, p(zk|d) es la probabilidad de obtener una medida (z) en el paso de tiempo k dado el nivel de ocupación (d) de todos los vóxeles del mapa. Además, en la ecuación 1, p(d|z0:k-1) es el nivel de ocupación calculado previamente (d) de un mapa en el paso de tiempo k dadas las mediciones del sensor desde el paso de tiempo 0 hasta el paso de tiempo k-1 (zo.ki). Por supuesto, debido a que el robot no se mueve a lo largo de la ruta al determinar el costo de cada ruta, la PDF de la ecuación 1 se basa en las medidas previstas.
Después de calcular la PDF, el robot puede determinar la probabilidad (p) de tener un mapa (m) en el paso de tiempo dado (k). Un mapa (m) incluye vóxeles l para norte. La PDF para la existencia de un mapa (m) en el paso de tiempo (k) se puede calcular de la siguiente manera:
Como se discutió anteriormente, la PDF del mapa y/o cada vóxel puede actualizarse después de cada paso de tiempo. Por ejemplo, un vóxel puede tener un primer PDF en un primer paso de tiempo, luego la PDF se actualiza de acuerdo con las mediciones realizadas en un segundo paso de tiempo para generar un segundo PDF, y el segundo PDF se actualiza nuevamente de acuerdo con las mediciones realizadas en un segundo paso de tiempo. tercer paso de tiempo para generar un tercer PDF. Se puede generar un mapa en cada paso de tiempo, de modo que el mapa se actualice de forma incremental en base a los PDF actualizados de los vóxeles del mapa. La ecuación 2 se puede
expresar como (^fc+l< ^fc+i) — d (^ k ’ ) centrarse en la media y la varianza de la distribución p(d|zo:k).
Como se discutió anteriormente, un mapa (m) incluye vóxeles i a n. Por lo tanto, el nivel de ocupación (d) de un mapa (m) (por ejemplo, mapa completo) en el paso de tiempo k se puede representar como
¿k — Es decir, dk representa el nivel de ocupación de todos los vóxeles i a n en el paso de tiempo k. Se puede determinar un nivel medio de ocupación y una varianza para cada vóxel basándose en la PDF de cada vóxel.
Como se mencionó anteriormente, al planificar una ruta, el robot determina los vóxeles que intersecarán la ruta. Además, al planificar la ruta, el robot también determina el número de pasos de tiempo (por ejemplo, oportunidades para observaciones) a lo largo de la ruta. Por lo tanto, para cada ubicación a lo largo de la ruta (x), el robot puede determinar un vóxel que corresponda a una ubicación (x) y el robot puede extraer la media prevista y la varianza asociada con el vóxel específico. Es decir, en lugar de utilizar los valores estáticos para la media y la varianza de los vóxeles a lo largo de la ruta, se predicen la media y la varianza de la densidad para los vóxeles a lo largo de la ruta. Una vez que se conoce la probabilidad de todos los vóxeles en un paso de tiempo particular, se pueden calcular las probabilidades del mapa en el siguiente paso de tiempo.
La media y la varianza de un vóxel (x) en una ubicación se puede extraer de la siguiente manera:
(á, <7d) = Den(x) = (d(x), o d (x)) (3)
En la ecuación 3, la función (d(x), od(x)) devuelve el nivel medio de ocupación (d) y la varianza (od) asociado con un vóxel (x) para una ubicación en la ruta (por ejemplo, trayectoria). La ubicación puede ser cualquier ubicación en el mapa o a lo largo de la trayectoria. El robot puede determinar qué vóxel (x) cae dentro de la ubicación. La función Den() puede usarse para determinar qué vóxel (x) se encuentra dentro de la ubicación y devuelve la media y la varianza de ese vóxel.
Después de determinar el nivel medio de ocupación (d) y la varianza (od) asociado con un vóxel para una ubicación x en la ruta, un costo x) está asociado con una acción (u) en un lugar (x) en el paso de tiempo k. La función de costo puede ser una combinación lineal o no lineal del nivel medio de ocupación y la varianza. El costo x) se puede determinar de la siguiente manera:
c(xk,uk) = c{xk,uk,d k) = adk(xk) (3ag(xk) y\\u\ (4)
En la ecuación 4, el nivel medio de ocupación (d) en la ubicación (x) en el paso de tiempo k es penalizado por a. Es decir, si el nivel medio de ocupación (d) es alto (por ejemplo, mayor que un umbral), es más probable que el vóxel esté ocupado. Por lo tanto, para evitar una colisión, el nivel medio de ocupación (d) se penaliza para evitar la selección de un lugar en el trayecto que tenga una mayor probabilidad de ser ocupado.
Además, en la ecuación 4, la varianza (cf1) del vóxel (d) asociado con la ubicación (x) en el paso de tiempo k ( ° j f ) es penalizado por /3. Es decir, si la varianza (cf1) es alto (por ejemplo, mayor que un umbral), existe una mayor probabilidad de que la medición de la ocupación sea incorrecta. Específicamente, una varianza es inversamente proporcional a la confianza de una medida, de modo que una varianza alta indica una confianza baja en una medida (por ejemplo, nivel de ocupación) y una varianza baja indica una confianza alta en una medida. Por lo tanto, para evitar una colisión o ingresar a un vóxel con un puntaje de confianza bajo, la varianza (od) se penaliza para evitar la selección de una ubicación en la ruta que tenga una puntuación de confianza reducida.
Además, en la ecuación 4, una acción (u) es sancionado con y. La acción puede referirse al uso de recursos o al costo de control, como el combustible. La acción (u) se penaliza para evitar el gasto excesivo de recursos. Por ejemplo, una ruta puede evitar obstáculos, pero la ruta puede aumentar la cantidad de recursos utilizados para moverse desde una primera ubicación a una segunda ubicación. Por lo tanto, la acción (u) es penalizado para evitar la selección de una ruta que aumente el uso de recursos, como el combustible. Los coeficientes de penalización a, p y y son variables que pueden ajustarse en base al rendimiento deseado. Cada coeficiente de penalización a, p y y puede determinar la importancia de cada factor (por ejemplo, media, varianza y costo). La media puede ser penalizada porque una media más baja corresponde a una menor probabilidad de colisión. La varianza puede verse penalizada porque una varianza más baja corresponde a una confianza más alta. Además, el costo puede verse penalizado porque el bajo costo corresponde a un menor consumo de combustible.
El costo x) puede determinarse para cada acción (u) en cada lugar (x). Por lo tanto, cada ruta está asociado a una serie de ubicaciones X t y una serie de acciones ut-i moverse desde una primera ubicación X t-i a una segunda ubicación X t. Por ejemplo, una ruta, como la ruta 500 de las Figuras 5A-5C, se puede representar de la siguiente manera:
ruta = (Xq.Uq. X í .U! , ... , x t _ í i u t _ 1, x t ')
La función de costo se calcula para todas las ubicaciones (x) y acciones (u) a lo largo de una ruta. Por lo tanto, el costo de una ruta se puede calcular de la siguiente manera:
Figure imgf000008_0001
Como se muestra en la ecuación 5, el costo (C) de una ruta es la suma de la función de costo x(xk , Uk, dk)) para cada ubicación y acción. Además, debido a que los cálculos se basan en predicciones, a diferencia de los cálculos reales, la suma es el promedio E (por ejemplo, valor esperado) de la suma de los costos. En una configuración, después de calcular el costo x) de cada ruta, el robot selecciona la ruta con el costo más bajo.
La Figura 6A ilustra un ejemplo de un robot 604 en un área mapeada 600 de acuerdo con un aspecto de la presente divulgación. El área mapeada 600 se refiere a un área que ha sido mapeada a través de los sensores del robot. Es decir, el robot 604 ha visto el área mapeada 600 usando los sensores del robot. Además, existe un área desconocida más allá del borde del área mapeada 600. El área desconocida es un área que no ha sido vista por los sensores del robot. Tanto el área mapeada 600 como el área desconocida pueden incluir obstáculos 602. Los obstáculos 602 en el área mapeada 600 pueden ser conocidos por el robot y los obstáculos en el área desconocida no son conocidos. Un robot 604 tiene un campo de visión 606 basado en la orientación del robot y/o la orientación de los sensores del robot. Además, el robot 604 puede ser dirigido para moverse desde su posición actual a una ubicación de destino 608.
La Figura 6B ilustra otro ejemplo del robot 604 en el área mapeada 600 de acuerdo con un aspecto de la presente divulgación. Específicamente, la Figura 6B ilustra un ejemplo de una trayectoria para que el robot 604 se mueva desde su posición actual hasta el objetivo 608. En este ejemplo, para la trayectoria seleccionada, el campo de visión 606 del robot se mantiene en una vista frontal mientras el robot 604 se mueve hacia los lados, en relación con el campo de visión 606, para alcanzar la ubicación objetivo 608. Además, como se muestra en la Figura 6B, se pueden especificar múltiples pasos de tiempo T1B-T4B para que el robot viaje desde su ubicación actual hasta el objetivo 608. Como se discutió anteriormente, cada paso de tiempo se refiere a una oportunidad para que el robot realice mediciones.
En el ejemplo de la Figura 6B, el robot 604 no está viendo la dirección de viaje 620, sino que el robot 604 está viendo una dirección de avance 622 que es diferente de la dirección de viaje 620. Por lo tanto, debido a que el robot 604 no está viendo la dirección de viaje 620 hacia un área desconocida, el robot 604 puede chocar con obstáculos desconocidos. En consecuencia, cuando el robot se mueve hacia el área desconocida con una dirección 622 del campo de visión 606 diferente de la dirección de desplazamiento 620, la variación de las medidas obtenidas por el robot es alta. Como se discutió anteriormente para la ecuación 4, la varianza (od) del vóxel (d) asociado con la ubicación (x) en el paso de tiempo k O es penalizado por p. Por lo tanto, en este ejemplo, se penaliza la alta varianza por lo que el costo de la trayectoria de la Figura 6B es alto. Una trayectoria con un alto costo puede ser inconveniente.
La Figura 6C ilustra otro ejemplo más del robot 604 en el área mapeada 600 de acuerdo con un aspecto de la presente divulgación. Específicamente, la Figura 6C ilustra un ejemplo de una trayectoria para que el robot 604 se mueva desde su posición actual hasta un objetivo 632 a mayor velocidad. En el ejemplo de la Figura 6C, la dirección 622 del campo de visión 606 del robot está sustancialmente alineada con la dirección de desplazamiento 630 hacia el objetivo 632. La velocidad del robot puede reflejarse en el número de pasos de tiempo T1C-T4C entre la posición inicial del robot y el objetivo 632. Es decir, un menor número de pasos de tiempo entre la posición actual y una posición de destino se correlaciona con una mayor velocidad de desplazamiento del robot. En una configuración, la función de costo penaliza el aumento de la velocidad (por ejemplo, un movimiento rápido) a través de una región desconocida. Es decir, el número de oportunidades de medición puede reducirse como resultado de la mayor velocidad de los robots 604. La reducción de las oportunidades de medición (por ejemplo, pasos de tiempo T1C-T4C) aumenta la varianza de las mediciones. Como se discutió previamente, una varianza alta es penalizada. Por lo tanto, debido a la gran variación que resulta del aumento de la velocidad de la trayectoria de la Figura 6C, el costo de la trayectoria de la Figura 6C es alto.
La Figura 6D ilustra otro ejemplo más del robot 604 en el área mapeada 600 de acuerdo con un aspecto de la presente divulgación. Específicamente, la Figura 6D ilustra una ruta en el que el robot toma un mayor número de pasos de tiempo en comparación con el número de pasos del ejemplo de la Figura 6C para alcanzar el objetivo 632. Además, en el ejemplo de la Figura 6D, la dirección 622 del campo de visión 606 del robot está sustancialmente alineada con la dirección de desplazamiento 630 hacia el objetivo 632. El mayor número de pasos de tiempo puede ser una trayectoria más favorable porque el robot 604 viaja hacia el objetivo 632 a una velocidad moderada (por ejemplo, reducida) además de que el robot tiene su campo de visión 606 sustancialmente alineado con la dirección de viaje 630 al objetivo 632.
La velocidad del robot puede reflejarse en el número de pasos de tiempo T1D-T9D entre la posición inicial del robot y el objetivo 632. Es decir, en la Figura 6C el robot usó cuatro pasos de tiempo (T1C-T4C) para alcanzar el objetivo 632. Por el contrario, en el ejemplo actual de la Figura 6D, el robot utiliza nueve pasos de tiempo (T1D-T9D) para alcanzar el objetivo 632. Debido a los pasos de tiempo aumentados, el robot 604 puede aumentar el número de observaciones de modo que se reduzca el nivel de incertidumbre. La reducción del nivel de incertidumbre provoca una varianza reducida para las observaciones de los vóxeles entre la posición inicial del robot y el objetivo 632. Por ejemplo, de acuerdo con el aumento de las observaciones, si el robot observa un obstáculo en la ruta, el robot tiene tiempo suficiente para reaccionar en consecuencia. Por lo tanto, es conveniente una variación baja. Por lo tanto, debido a la baja varianza resultante del aumento de las observaciones de la trayectoria de la Figura 6D, el costo de la trayectoria de la Figura 6D es bajo. En los presentes ejemplos, el robot 604 no puede predecir el nivel medio de ocupación de los vóxeles en el área desconocida. Por lo tanto, al determinar el costo de una trayectoria, el robot 604 puede suponer que los vóxeles en el área desconocida están libres. Todavía, en base a los pasos de tiempo y/o la orientación del robot a lo largo de una trayectoria, el robot 604 puede predecir la variación a lo largo de la trayectoria.
La Figura 6E ilustra otro ejemplo más del robot 604 en el área mapeada 600 de acuerdo con un aspecto de la presente divulgación. Al determinar el costo de una trayectoria, el robot 604 también puede tener en cuenta un modelo de sensor. Por ejemplo, como se muestra en la Figura 6E, en base al número de pasos de tiempo (T1E-T6E) entre la posición inicial del robot 604 y el objetivo 638, el robot 604 planea moverse a una velocidad moderada. Además, como se muestra en la Figura 6E, la dirección de desplazamiento 630 del robot 604 es sustancialmente similar a la dirección 622 del campo de visión 606 del robot.
Todavía, como se muestra en la Figura 6E, algunos de los pasos tomados por el robot 604 están ubicados en el borde del campo de visión 606 del paso anterior. Por ejemplo, cuando se mueve del paso de tiempo T4E al T5E, el robot 604 se mueve a la derecha del campo de visión 606 del paso de tiempo T4E. Es decir, en el paso de tiempo T5E, el robot 604 se mueve a un área que no se observó durante un paso de tiempo anterior (por ejemplo, el paso de tiempo T4E). En la mayoría de los casos, el borde del sensor no es fiable. Por lo tanto, la variación puede aumentar porque el robot 604 se mueve hacia el borde de un campo de visión 606. En una configuración, la función de costo tiene en cuenta el movimiento a lo largo del borde del campo de visión y penaliza dicho movimiento aumentando la varianza de los pasos de tiempo. El aumento de la varianza se puede proporcionar a través de un modelo de sensor que tenga en cuenta las variables, como la ubicación del robot en relación con el campo de visión de un paso de tiempo anterior. Por lo tanto, debido a la gran variación que resulta del movimiento a lo largo del borde del campo de visión 606, el costo de la trayectoria de la Figura 6E es alto.
El modelo de sensor predice una salida de un sensor dado el estado de un robot. El estado se refiere a la ubicación del robot en un entorno y el nivel de ocupación de vóxeles del mapa correspondiente a la ubicación del robot. El mapa puede ser un mapa estocástico con un nivel de incertidumbre. Por lo tanto, en base a la incertidumbre, el modelo del sensor predice la salida del sensor.
Las Figuras 6F y 6G ilustran otros ejemplos del robot 604 en el área mapeada 600 de acuerdo con aspectos de la presente divulgación. El ejemplo ilustrado en la Figura 6F incluye obstáculos. En base al campo de visión 606, durante la trayectoria desde la posición inicial del robot hasta el objetivo 640, el robot 604 puede observar todos los obstáculos 602. Cuando hay obstáculos 602 en el campo de visión 606 del robot, el robot no puede ver a través del obstáculo 602. En particular, como se muestra en la Figura 6G, el obstáculo 602a bloquea una porción del campo de visión 606 del robot de modo que el robot no puede ver el objetivo 640. Es decir, una primera porción 652 del campo de visión 606 no está obstruida y una segunda porción 650 está obstruida por el obstáculo 602a. Por lo tanto, debido a que una segunda porción 650 del campo de visión 606 está obstruida, el robot puede informar que el vóxel está ocupado con alguna variación o desocupado con alguna variación.
Además, para la segunda porción 650 del campo de visión 606 que es desconocida para el robot 604, el robot 604 puede predecir que informará del vóxel correspondiente al campo de visión 606 como ocupado. Todavía, el robot 604 no sabe si podrá ver a través del obstáculo 602a porque podría no haber ningún obstáculo. Es decir, la presencia del obstáculo 602a fue inferida por el robot 604. El sistema de procesamiento 720 incluye un procesador 704 acoplado a un medio legible por ordenador 714. El procesador 704 es responsable del procesamiento general, incluida la ejecución del software almacenado en el medio legible por ordenador 714. El software, cuando lo ejecuta el procesador 704, hace que el sistema de procesamiento 720 realice las diversas funciones descritas para cualquier aparato en particular. El medio legible por ordenador 714 también puede usarse para almacenar datos que son manipulados por el procesador 704 cuando se ejecuta el software.
El módulo sensor 702 puede usarse para obtener mediciones a través de un sensor 728. El sensor 728 puede ser un sensor de visión estéreo, para realizar mediciones, como una cámara estereoscópica. Por supuesto, los aspectos de la presente divulgación no se limitan a un sensor de visión estereoscópica ya que también se contemplan otros tipos de sensores, como, por ejemplo, radar, térmico, sonar y/o láser para realizar mediciones. Las mediciones del sensor 728 pueden ser procesadas por uno o más del procesador 704, el módulo de comunicación 708, el módulo de ubicación 706, el módulo de locomoción 710, el medio legible por ordenador 714 y otros módulos 730 732 734. Además, las medidas del sensor 728 pueden ser transmitidas a un dispositivo externo por el transceptor 716. El sensor 728 no se limita a estar definido fuera del aparato 700, como se muestra en la Figura 7, el sensor 728 también puede estar definido dentro del aparato 700.
El módulo de ubicación 706 puede usarse para determinar una ubicación del aparato 700. El módulo de ubicación 706 puede usar GPS u otros protocolos para determinar la ubicación del aparato 700. El módulo de comunicación 708 puede usar el transceptor 716 para enviar y recibir información, como la ubicación del aparato 700, a un dispositivo externo. El módulo de locomoción 710 puede usarse para proporcionar locomoción al aparato 700. Como ejemplo, la locomoción se puede proporcionar a través de las ruedas 712. Por supuesto, los aspectos de la presente divulgación no se limitan a proporcionar locomoción a través de las ruedas 712 y se contemplan para cualquier otro tipo de componente para proporcionar ubicación.
El sistema de procesamiento 720 incluye un módulo de determinación 730 para determinar una media de un nivel de ocupación para una ubicación en un mapa. El módulo de determinación también puede determinar una función de distribución de probabilidad del nivel de ocupación. El sistema de procesamiento 720 también incluye un módulo de cálculo 732 para calcular una función de costo basada en la función de distribución de probabilidad. El sistema de procesamiento 720 incluye además un módulo de planificación 734 para planificar simultáneamente la ruta y mapear el entorno en base a la función de costo. Los módulos pueden ser módulos de software que se ejecutan en el procesador 704, residentes/almacenados en el medio legible por ordenador 714, uno o más módulos de hardware acoplados al procesador 704, o alguna combinación de los mismos.
La Figura 8 ilustra un procedimiento 800 para planificar simultáneamente una ruta y mapear un entorno por un robot. En el bloque 802, un robot determina una media de un nivel de ocupación para una ubicación en un mapa. En el bloque 804, el robot determina una función de distribución de probabilidad (PDF) del nivel de ocupación.
Además, en el bloque 806, el robot calcula una función de costo en base a la PDF. En algunos aspectos, la función de costo puede calcularse con base en el nivel medio de ocupación y una varianza del nivel de ocupación obtenida de la PDF.
Además, en el bloque 808, el robot planifica simultáneamente la ruta y mapea el entorno basándose en la función de costo. En algunos aspectos, el entorno puede mapearse en base al nivel medio de ocupación y la PDF. La ruta puede planificarse en base a los mapas predichos.
En algunos aspectos, el robot puede evaluar opcionalmente una densidad predicha para cada vóxel a lo largo de cada una de una pluralidad de trayectorias candidatas, en el bloque 810.
Además, en algunos aspectos, el robot puede seleccionar opcionalmente una trayectoria en base a la planificación y el mapeo simultáneos, en el bloque 812.
En algunos aspectos, el procedimiento 800 puede ser realizado por el SOC 100 (Figura 1) o el sistema 200 (Figura 2). Es decir, cada uno de los elementos del procedimiento 800 puede, por ejemplo, pero sin limitación, ser realizado por el SOC 100 o el sistema 200 o uno o más procesadores (por ejemplo, CPU 102 y unidad de procesamiento local 202) y/u otros componentes incluido en el mismo.
Las diversas operaciones de los procedimientos descritos anteriormente pueden realizarse mediante cualquier medio adecuado capaz de realizar las funciones correspondientes. Los medios pueden incluir varios componentes y/o módulos de hardware y/o software, que incluyen, pero no se limitan a, un circuito, un circuito integrado de aplicación específica (ASIC), o un procesador. Generalmente, cuando hay operaciones ilustradas en las figuras, esas operaciones pueden tener componentes correspondientes de medios más funciones equivalentes con numeración similar.
Como se usa en la presente memoria, el término "determinar" abarca una amplia variedad de acciones. Por ejemplo, "determinar" puede incluir calcular, computar, procesar, derivar, investigar, buscar (por ejemplo, buscar en una tabla, una base de datos u otra estructura de datos), determinar y similares. Además, "determinar" puede incluir recibir (por ejemplo, recibir información), acceder (por ejemplo, acceder a datos en una memoria) y similares. Además, "determinar" puede incluir resolver, seleccionar, elegir, establecer y similares.
Ciertos aspectos pueden comprender un producto de programa informático para realizar las operaciones presentadas en la presente memoria. Por ejemplo, tal producto de programa informático puede comprender un medio legible por ordenador que tiene instrucciones que se almacenan (y/o codificadas) en el mismo, siendo las instrucciones ejecutables por uno o más procesadores para realizar las operaciones que se describen en la presente memoria.

Claims (15)

REIVINDICACIONES
1. Un procedimiento (800) de planificación simultánea de una ruta y mapeo de un entorno por un robot, que comprende:
determinar (802) una media de un nivel de ocupación para una ubicación en un mapa;
determinar (804) una función de distribución de probabilidad, PDF, del nivel de ocupación;
calcular (806) una función de costo en base al nivel medio de ocupación y una varianza del nivel de ocupación obtenida a partir de la PDF; y
simultáneamente planificar (808) la ruta y mapear el entorno en base a la función de costo.
2. El procedimiento de la reivindicación 1, que comprende además mapear el entorno en base al nivel medio de ocupación y la PDF.
3. El procedimiento de la reivindicación 1, en el que la planificación simultánea comprende además evaluar una densidad predicha para cada vóxel a lo largo de cada una de una pluralidad de trayectorias candidatas.
4. El procedimiento de la reivindicación 1, que comprende además planificar la ruta en base a mapas predichos.
5. El procedimiento de la reivindicación 1, que comprende además seleccionar una trayectoria en base a la planificación y el mapeo simultáneos.
6. Un aparato (100, 700) para planificar simultáneamente una ruta y mapear un entorno, comprendiendo el aparato:
medios para determinar (802) una media de un nivel de ocupación para una ubicación en un mapa; medios para determinar (804) una función de distribución de probabilidad, PDF, del nivel de ocupación; medios para calcular (806) una función de costo en base al nivel medio de ocupación y una varianza del nivel de ocupación obtenida a partir de la PDF; y
medios para planificar (808) simultáneamente la ruta y mapear el entorno en base a la función de costo.
7. El aparato de la reivindicación 6, que comprende además medios para mapear el entorno en base al nivel medio de ocupación y la PDF.
8. El aparato de la reivindicación 6, que comprende además medios para evaluar una densidad predicha para cada vóxel a lo largo de cada una de una pluralidad de trayectorias candidatas.
9. El aparato de la reivindicación 6, que comprende además medios para planificar la ruta en base a mapas predichos.
10. El aparato de la reivindicación 6, que comprende además medios para seleccionar una trayectoria en base a la planificación y el mapeo simultáneos.
11. Un medio legible por ordenador no transitorio (714) que tiene un código de programa grabado en el mismo para planificar simultáneamente una ruta y mapear un entorno para un robot, siendo ejecutado el código de programa por un procesador y que comprende:
código de programa para determinar (802) una media de un nivel de ocupación para una ubicación en un mapa;
código de programa para determinar (804) una función de distribución de probabilidad, PDF, del nivel de ocupación;
código de programa para calcular (806) una función de costo en base al nivel medio de ocupación y una varianza del nivel de ocupación obtenida de la PDF; y
código de programa para planificar simultáneamente (808) la ruta y mapear el entorno en base a la función de costo.
12. El medio legible por ordenador no transitorio de la reivindicación 11, en el que el código de programa comprende además un código de programa para mapear el entorno en base al nivel medio de ocupación y la PDF.
13. El medio legible por ordenador no transitorio de la reivindicación 11, en el que el código de programa comprende además un código de programa para evaluar una densidad predicha para cada vóxel a lo largo de cada una de una pluralidad de trayectorias candidatas.
14. El medio legible por ordenador no transitorio de la reivindicación 11, en el que el código de programa comprende además un código de programa para planificar la ruta en base a mapas predichos.
15. El medio legible por ordenador no transitorio de la reivindicación 11, en el que el código de programa comprende además un código de programa para seleccionar una trayectoria en base a la planificación y el mapeo simultáneos.
ES16816014T 2015-12-02 2016-11-03 Mapeo y planificación simultáneos por un robot Active ES2912908T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562262275P 2015-12-02 2015-12-02
US15/192,719 US10093021B2 (en) 2015-12-02 2016-06-24 Simultaneous mapping and planning by a robot
PCT/US2016/060400 WO2017095591A1 (en) 2015-12-02 2016-11-03 Simultaneous mapping and planning by a robot

Publications (1)

Publication Number Publication Date
ES2912908T3 true ES2912908T3 (es) 2022-05-30

Family

ID=57589136

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16816014T Active ES2912908T3 (es) 2015-12-02 2016-11-03 Mapeo y planificación simultáneos por un robot

Country Status (5)

Country Link
US (1) US10093021B2 (es)
EP (1) EP3384360B1 (es)
CN (1) CN108292139B (es)
ES (1) ES2912908T3 (es)
WO (1) WO2017095591A1 (es)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10723024B2 (en) 2015-01-26 2020-07-28 Duke University Specialized robot motion planning hardware and methods of making and using same
US10613546B2 (en) 2015-12-02 2020-04-07 Qualcomm Incorporated Stochastic map-aware stereo vision sensor model
US10372968B2 (en) * 2016-01-22 2019-08-06 Qualcomm Incorporated Object-focused active three-dimensional reconstruction
EP3252658B1 (en) * 2016-05-30 2021-08-11 Kabushiki Kaisha Toshiba Information processing apparatus and information processing method
US11204610B2 (en) * 2016-05-30 2021-12-21 Kabushiki Kaisha Toshiba Information processing apparatus, vehicle, and information processing method using correlation between attributes
JP7181092B2 (ja) 2016-06-10 2022-11-30 デューク・ユニバーシティ 自律型車両用動作計画及び再構成可能な動作計画プロセッサ
US10043076B1 (en) 2016-08-29 2018-08-07 PerceptIn, Inc. Visual-inertial positional awareness for autonomous and non-autonomous tracking
US10162362B2 (en) 2016-08-29 2018-12-25 PerceptIn, Inc. Fault tolerance to provide robust tracking for autonomous positional awareness
US11314262B2 (en) * 2016-08-29 2022-04-26 Trifo, Inc. Autonomous platform guidance systems with task planning and obstacle avoidance
JP6705977B2 (ja) * 2017-01-31 2020-06-03 株式会社安川電機 ロボットパス生成装置及びロボットシステム
KR102241404B1 (ko) * 2017-02-09 2021-04-16 구글 엘엘씨 시각 입력을 이용한 에이전트 네비게이션
US10293485B2 (en) * 2017-03-30 2019-05-21 Brain Corporation Systems and methods for robotic path planning
US10303180B1 (en) * 2017-04-20 2019-05-28 X Development Llc Generating and utilizing non-uniform volume measures for voxels in robotics applications
US10940587B2 (en) * 2017-04-28 2021-03-09 Technion Research & Development Foundation Ltd. Data association aware belief space planning and perception
CN107861508B (zh) * 2017-10-20 2021-04-20 纳恩博(北京)科技有限公司 一种移动机器人局部运动规划方法及装置
DE102017223632A1 (de) * 2017-12-21 2019-06-27 Continental Automotive Gmbh System zur Berechnung einer Fehlerwahrscheinlichkeit von Fahrzeugsensordaten
WO2019139815A1 (en) 2018-01-12 2019-07-18 Duke University Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
TWI822729B (zh) 2018-02-06 2023-11-21 美商即時機器人股份有限公司 用於儲存一離散環境於一或多個處理器之一機器人之運動規劃及其改良操作之方法及設備
CN108491427B (zh) * 2018-02-08 2021-05-18 中国人民解放军61540部队 Pdf瓦片地图及制作方法
PL3769174T3 (pl) 2018-03-21 2022-10-24 Realtime Robotics, Inc. Planowanie przemieszczania robota do różnych środowisk i zadań oraz jego ulepszone działanie
CN109141437B (zh) * 2018-09-30 2021-11-26 中国科学院合肥物质科学研究院 一种机器人全局重定位方法
US11256261B1 (en) * 2018-10-16 2022-02-22 Amazon Technologies, Inc. System for movement of autonomous mobile device
CN109359777A (zh) * 2018-10-31 2019-02-19 西南交通大学 用于需求井喷下的快递企业城市配送方法
US11774983B1 (en) 2019-01-02 2023-10-03 Trifo, Inc. Autonomous platform guidance systems with unknown environment mapping
DE102019203214B4 (de) * 2019-03-08 2022-01-20 Robert Bosch Gmbh Verfahren zum Betreiben eines Roboters in einem Multiagentensystem, Roboter und Multiagentensystem
US11179850B2 (en) * 2019-04-24 2021-11-23 Intrinsic Innovation Llc Robot motion planning
EP3739361A1 (en) * 2019-05-13 2020-11-18 Aptiv Technologies Limited Method and system for fusing occupancy maps
US11634126B2 (en) 2019-06-03 2023-04-25 Realtime Robotics, Inc. Apparatus, methods and articles to facilitate motion planning in environments having dynamic obstacles
US11673265B2 (en) 2019-08-23 2023-06-13 Realtime Robotics, Inc. Motion planning for robots to optimize velocity while maintaining limits on acceleration and jerk
US20210080970A1 (en) * 2019-09-16 2021-03-18 X Development Llc Using adjustable vision component for on-demand vision data capture of areas along a predicted trajectory of a robot
US11348332B2 (en) * 2019-09-25 2022-05-31 Toyota Research Institute, Inc. Object location analysis
US11288509B2 (en) * 2019-11-12 2022-03-29 Toyota Research Institute, Inc. Fall detection and assistance
US11713977B2 (en) * 2019-12-19 2023-08-01 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and medium
CN111061278B (zh) * 2019-12-31 2022-12-30 苏州极智嘉机器人有限公司 一种路径规划方法、装置、计算机设备及存储介质
TW202146189A (zh) 2020-01-22 2021-12-16 美商即時機器人股份有限公司 於多機器人操作環境中之機器人之建置
CN111811532B (zh) * 2020-07-02 2022-03-25 浙江大学 基于脉冲神经网络的路径规划方法和装置
US11931900B2 (en) 2020-07-24 2024-03-19 Samsung Electronics Co., Ltd. Method of predicting occupancy of unseen areas for path planning, associated device, and network training method
US11720117B1 (en) * 2020-10-28 2023-08-08 Amazon Technologies, Inc. System to facilitate autonomous mobile device movement
CN113156970B (zh) * 2021-05-08 2023-06-09 珠海一微半导体股份有限公司 一种通行区域的路径融合规划方法、机器人及芯片
US20240142985A1 (en) * 2022-10-28 2024-05-02 Zebra Technologies Corporation De-centralized traffic-aware navigational planning for mobile robots

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111401A (en) 1990-05-19 1992-05-05 The United States Of America As Represented By The Secretary Of The Navy Navigational control system for an autonomous vehicle
JP4479372B2 (ja) * 2004-06-25 2010-06-09 ソニー株式会社 環境地図作成方法、環境地図作成装置、及び移動型ロボット装置
US8965578B2 (en) * 2006-07-05 2015-02-24 Battelle Energy Alliance, Llc Real time explosive hazard information sensing, processing, and communication for autonomous operation
KR100791386B1 (ko) * 2006-08-18 2008-01-07 삼성전자주식회사 이동 로봇의 영역 분리 방법 및 장치
JP4661838B2 (ja) * 2007-07-18 2011-03-30 トヨタ自動車株式会社 経路計画装置及び方法、コスト評価装置、並びに移動体
CN101413806B (zh) * 2008-11-07 2011-05-25 湖南大学 一种实时数据融合的移动机器人栅格地图创建方法
NZ598500A (en) * 2009-08-31 2013-11-29 Neato Robotics Inc Method and apparatus for simultaneous localization and mapping of mobile robot environment
US8948913B2 (en) * 2009-10-26 2015-02-03 Electronics And Telecommunications Research Institute Method and apparatus for navigating robot
JP5560794B2 (ja) * 2010-03-16 2014-07-30 ソニー株式会社 制御装置、制御方法およびプログラム
US9020637B2 (en) * 2012-11-02 2015-04-28 Irobot Corporation Simultaneous localization and mapping for a mobile robot
CN104154925A (zh) * 2014-08-25 2014-11-19 正量电子科技(苏州)有限公司 基于射频识别的制导导航方法
FR3025325B1 (fr) * 2014-09-01 2016-12-30 Valeo Schalter & Sensoren Gmbh Dispositif et procede de localisation et de cartographie
US9630319B2 (en) * 2015-03-18 2017-04-25 Irobot Corporation Localization and mapping using physical features
US9868211B2 (en) * 2015-04-09 2018-01-16 Irobot Corporation Restricting movement of a mobile robot

Also Published As

Publication number Publication date
WO2017095591A1 (en) 2017-06-08
CN108292139A (zh) 2018-07-17
US10093021B2 (en) 2018-10-09
US20170157769A1 (en) 2017-06-08
EP3384360A1 (en) 2018-10-10
CN108292139B (zh) 2020-05-12
EP3384360B1 (en) 2022-04-06

Similar Documents

Publication Publication Date Title
ES2912908T3 (es) Mapeo y planificación simultáneos por un robot
KR102226350B1 (ko) 자율 시각 내비게이션
CN111201448B (zh) 用于产生反演传感器模型的方法和设备以及用于识别障碍物的方法
US11512975B2 (en) Method of navigating an unmanned vehicle and system thereof
KR20220078563A (ko) 중간 웨이포인트 생성기
KR102174873B1 (ko) 스토캐스틱 맵 인식 입체 시각 센서 모델
US11656083B2 (en) Autonomous tunnel navigation with a robotic system
Nuss et al. Consistent environmental modeling by use of occupancy grid maps, digital road maps, and multi-object tracking
CN112506200B (zh) 机器人定位方法、装置、机器人及存储介质
CN109903367A (zh) 构建地图的方法、装置和计算机可读存储介质
Khan et al. Sonar-based SLAM using occupancy grid mapping and dead reckoning
Almanza-Ojeda et al. Occupancy map construction for indoor robot navigation
Khan et al. Simultaneous localization and mapping (SLAM) with an autonomous robot
Pavlovsky A heuristic algorithm for isolated obstacle detection by a mobile robot based on ranging data
Mohammed et al. Exploration of Unknown Map for Gas Searching and Picking Up Objects using Khepera Mobile Robots.
Van Breda Vector field histogram star obstacle avoidance system for multicopters
Fox et al. A generic path planning strategy for autonomous vehicles
GB2562769A (en) Apparatus and method for determining a cost map
Rozman et al. Path planning and traversable area marking for stereo vision–based 3D map building
Hasegawa Continuous observation planning for autonomous exploration
Zakardissnehf et al. Localisation and mapping in smoke filled environments: A study of robot perception in harsh conditionsusing practical experiments
WO2020096511A1 (en) Method and device for determining the position of a moving object
Kamphans et al. Leaving an unknown maze using an error-prone compass
Paul Curvilinear Traverse Generation Module for an AGV
Lazarus et al. Unstructured environmental mapping using low cost sensors