ES2770730T3 - Location within an environment using sensor fusion - Google Patents

Location within an environment using sensor fusion Download PDF

Info

Publication number
ES2770730T3
ES2770730T3 ES15162043T ES15162043T ES2770730T3 ES 2770730 T3 ES2770730 T3 ES 2770730T3 ES 15162043 T ES15162043 T ES 15162043T ES 15162043 T ES15162043 T ES 15162043T ES 2770730 T3 ES2770730 T3 ES 2770730T3
Authority
ES
Spain
Prior art keywords
data
type
data stream
mobile platform
environment
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
ES15162043T
Other languages
Spanish (es)
Inventor
Peter F Trautman
Hui Li
Robert P Higgins
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.)
Boeing Co
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Application granted granted Critical
Publication of ES2770730T3 publication Critical patent/ES2770730T3/en
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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • G05D1/0236Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons in combination with a laser
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/02Manipulators mounted on wheels or on carriages travelling along a guideway
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • 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/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1652Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with ranging devices, e.g. LIDAR or RADAR
    • 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/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1656Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/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/0248Control 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 in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/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/0253Control 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 relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/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 or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Abstract

Un aparato que comprende: una pluralidad de sistemas (128) de datos configurados para generar una pluralidad de flujos (126) de datos en la cual la pluralidad de flujos de datos incluye un primer tipo de flujo (132) de datos y un segundo tipo de flujo (130) de datos, en donde cada punto de datos en el primer tipo de flujo de datos incluye una medición de incertidumbre, y en donde cada punto de datos en el segundo tipo de flujo de datos no incluye una medición de incertidumbre; un modificador (120) configurado para aplicar una distribución (137) de probabilidad al segundo tipo de flujo de datos para formar un flujo (135) de datos modificado; y un estimador (118) de pose ubicado a bordo de una plataforma (104) móvil y configurado para recibir y fusionar el primer tipo de flujo de datos y el flujo de datos modificado para generar una estimación (122) de pose con un nivel deseado de precisión para la plataforma móvil con respeto a un entorno (100) alrededor de la plataforma móvil; en donde el aparato está configurado para: observar un punto de referencia actual en el entorno un número seleccionado de veces utilizando un sistema (134) de datos a bordo, a la vez que la plataforma móvil está en una ubicación actual; identificar una distancia relativa inicial entre la ubicación actual de la plataforma móvil y el punto de referencia actual; y mover la plataforma móvil a partir de la ubicación actual a una nueva ubicación lo más lejos posible hacia una ubicación deseada sin perder el punto de referencia actual dentro de un campo de visión de un sistema de sensor del sistema de datos a bordo.An apparatus comprising: a plurality of data systems (128) configured to generate a plurality of data streams (126) in which the plurality of data streams includes a first type of data stream (132) and a second type data stream (130), wherein each data point in the first type of data stream includes an uncertainty measurement, and wherein each data point in the second type of data stream does not include an uncertainty measurement; a modifier (120) configured to apply a probability distribution (137) to the second type of data stream to form a modified data stream (135); and a pose estimator (118) located aboard a mobile platform (104) and configured to receive and merge the first type of data stream and the modified data stream to generate a pose estimate (122) with a desired level precision for the mobile platform with respect to an environment (100) around the mobile platform; wherein the apparatus is configured to: observe a current landmark in the environment a selected number of times using an on-board data system (134), while the mobile platform is at a current location; identifying an initial relative distance between the current location of the mobile platform and the current reference point; and moving the mobile platform from the current location to a new location as far as possible to a desired location without losing the current reference point within a field of view of an onboard data system sensor system.

Description

DESCRIPCIÓNDESCRIPTION

Localización dentro de un entorno usando fusión de sensoresLocalization within an environment using sensor fusion

Información de antecedentesBackground information

1. Campo:1. Field:

La presente divulgación se relaciona en general con identificar la pose de una plataforma móvil en un entorno. Más particularmente, la presente divulgación se relaciona con un método y aparato para formar y fusionar flujos de datos que incluyen cada uno una medida de incertidumbre para generar una estimación de pose para la plataforma móvil dentro del entorno.This disclosure generally relates to identifying the pose of a mobile platform in an environment. More particularly, the present disclosure relates to a method and apparatus for forming and merging data streams that each include a measure of uncertainty to generate a pose estimate for the mobile platform within the environment.

2. Antecedentes:2. Background:

En algunas situaciones, puede ser deseable tener un robot móvil que pueda moverse libremente dentro de un entorno de la misma manera que lo haría un humano. Los puntos de referencia físicos, tales como pintura, cinta adhesiva o imanes, los cuales normalmente se pueden usar para ayudar a un robot móvil a moverse dentro de un entorno, pueden obligar a un robot móvil a seguir solo rutas predefinidas. Además, la instalación de este tipo de puntos de referencia físicos puede ser más lenta y costosa de lo deseado. Para moverse más libremente dentro de un entorno, un robot móvil puede necesitar realizar la localización, la cual incluye identificar la pose del robot móvil dentro del entorno. Como se usa en este documento, una “pose” incluye una posición, una orientación o ambas con respecto a un sistema de coordenadas de referencia.In some situations, it may be desirable to have a mobile robot that can move freely within an environment in the same way that a human would. Physical landmarks, such as paint, tape, or magnets, which can typically be used to help a mobile robot move within an environment, can force a mobile robot to follow only predefined routes. In addition, the installation of these types of physical landmarks can be slower and more expensive than desired. To move more freely within an environment, a mobile robot may need to perform localization, which includes identifying the pose of the mobile robot within the environment. As used herein, a "pose" includes a position, an orientation, or both with respect to a reference coordinate system.

Un robot móvil puede usar un sistema de sensor externo para realizar la localización. Sin embargo, en algunos casos, la línea de visión entre un robot móvil y el sistema de sensor externo puede ser obstruida por otros objetos, robots y/o personas dentro del entorno de fabricación. Como un ejemplo, en un entorno de fabricación de aeronaves, la línea de visión puede perderse cuando el robot móvil opera debajo de un ala de la aeronave, dentro del ala, cerca de objetos de la fábrica tales como grúas o columnas, y/o en áreas restringidas. Una vez que se pierde la línea de visión, el robot móvil puede dejar de recibir actualizaciones de pose y puede necesitar detener las operaciones hasta que se haya recuperado la línea de visión. Sin localización, el robot móvil puede ser incapaz de navegar a través del entorno con la precisión que desee.A mobile robot can use an external sensor system to perform location. However, in some cases, the line of sight between a mobile robot and the external sensor system can be obstructed by other objects, robots, and / or people within the manufacturing environment. As an example, in an aircraft manufacturing environment, line of sight can be lost when the mobile robot operates under an aircraft wing, inside the wing, near factory objects such as cranes or columns, and / or in restricted areas. Once line of sight is lost, the mobile robot may stop receiving pose updates and may need to stop operations until line of sight has recovered. Without location, the mobile robot may be unable to navigate through the environment as precisely as it wants.

Además, en un entorno dinámico, pueden moverse coches, aeronaves, estaciones de trabajo, vehículos, plataformas de equipos, otros tipos de dispositivos, operadores humanos o alguna combinación de los mismos. En consecuencia, un robot móvil puede ser incapaz de confiar únicamente en su entorno para moverse a través de este tipo de entorno o un entorno lleno de desorden o no segmentado o estructurado de manera eficiente. Los robots móviles disponibles actualmente pueden ser incapaces de operar con los niveles de rendimiento y eficiencia deseados o maniobrar alrededor de operadores humanos de una manera tan segura como se desee en estos diferentes tipos de entornos. Additionally, in a dynamic environment, cars, aircraft, workstations, vehicles, equipment platforms, other types of devices, human operators, or some combination thereof can move. Consequently, a mobile robot may be unable to rely solely on its environment to move through this type of environment or a cluttered or non-segmented or structured environment efficiently. Currently available mobile robots may be unable to operate at desired levels of performance and efficiency or maneuver around human operators as safely as desired in these different types of environments.

Además, en algunos casos, el equipo o dispositivos utilizados para la localización pueden ser más costosos, más grandes o pesados de lo deseado. En ciertas situaciones, el procesamiento requerido para realizar la localización con un nivel deseado de precisión puede llevar más tiempo o requerir más recursos de procesamiento de los deseados. Por lo tanto, sería deseable tener un método y un aparato que tomen en cuenta al menos algunos de los problemas discutidos anteriormente, así como otros posibles problemas.Also, in some cases, the equipment or devices used for locating may be more expensive, larger, or heavier than desired. In certain situations, the processing required to perform the location to a desired level of precision may take longer or require more processing resources than desired. Therefore, it would be desirable to have a method and apparatus that takes into account at least some of the problems discussed above, as well as other possible problems.

La publicación de solicitud de patente de los Estados Unidos US 2009/0024251 A1, de acuerdo con su resumen, establece: un método y aparato para estimar la pose de un robot móvil usando un filtro de partículas. El aparato incluye un odómetro el cual detecta una variación de la pose de un robot móvil, un módulo de procesamiento de características el cual extrae al menos una característica a partir de una imagen hacia arriba capturada por el robot móvil, y un módulo de filtro de partículas el cual determina las poses y pesos actuales de una pluralidad de partículas aplicando la variación de pose del robot móvil detectada por el odómetro y la característica extraída por el módulo de procesamiento de características a las poses y pesos anteriores de las partículas.The United States patent application publication US 2009/0024251 A1, according to its abstract, states: a method and apparatus for estimating the pose of a mobile robot using a particle filter. The apparatus includes an odometer which detects a variation of the pose of a mobile robot, a feature processing module which extracts at least one feature from an upward image captured by the mobile robot, and a filter module of Particles which determines the current poses and weights of a plurality of particles by applying the movable robot pose variation detected by the odometer and the feature extracted by the feature processing module to the previous poses and weights of the particles.

La publicación de solicitud de patente de los Estados Unidos US 2004/0167667 A1, de acuerdo con su resumen, establece: métodos y aparatos que usan un sensor visual y sensores de cálculo muerto para procesar la Localización y Mapeo Simultáneos (SLAM). Estas técnicas se pueden usar en la navegación de robots. Dichas técnicas visuales se pueden utilizar para generar y actualizar de forma autónoma un mapa. A diferencia de los telémetros láser, las técnicas visuales son económicamente prácticas en una amplia gama de aplicaciones y se pueden usar en entornos relativamente dinámicos, tales como los entornos en los cuales se mueven las personas. Un ejemplo utiliza múltiples partículas para mantener múltiples hipótesis con respecto a la localización y el mapeo. Además, una realización mantiene las partículas de una manera eficiente relativamente computacional, permitiendo así que los procesos SLAM se realicen en software usando sistemas informáticos con base en microprocesadores relativamente económicos. The United States patent application publication US 2004/0167667 A1, according to its abstract, states: methods and apparatus using a visual sensor and dead calculus sensors to process Simultaneous Location and Mapping (SLAM). These techniques can be used in robot navigation. These visual techniques can be used to autonomously generate and update a map. Unlike laser rangefinders, visual techniques are economically practical in a wide range of applications and can be used in relatively dynamic environments, such as the environments in which people move. An example uses multiple particles to maintain multiple hypotheses regarding location and mapping. Furthermore, one embodiment maintains the particles in a relatively computational efficient manner, thus allowing SLAM processes to be performed in software using relatively inexpensive microprocessor-based computer systems.

La publicación de solicitud de patente de los Estados Unidos US 2005/0182518 A1, de acuerdo con su resumen, establece: métodos y aparatos que permiten que las mediciones de una pluralidad de sensores se combinen o fusionen de manera robusta. Por ejemplo, los sensores pueden corresponder a sensores utilizados por un dispositivo móvil, tal como un robot, para localización y/o mapeo. Las mediciones se pueden fusionar para la estimación de una medición, tal como una estimación de pose de un robot.United States patent application publication US 2005/0182518 A1, according to its abstract, states: methods and apparatus that allow measurements from a plurality of sensors to be robustly combined or fused. For example, the sensors may correspond to sensors used by a mobile device, such as like a robot, for localization and / or mapping. Measurements can be merged to estimate a measurement, such as a pose estimate for a robot.

La Solicitud de Patente Europea EP 0570581 A1, de acuerdo con su resumen, establece: un sistema sensorial para la navegación del vehículo que emplea un sensor, tal como una brújula, o un odómetro, para detectar un parámetro de navegación de un vehículo. Se proporciona una señal a partir del sensor, que tiene un componente erróneo. Se emplea un patrón de reconocimiento libre, tal como un ordenador de navegación de inferencia difusa, para reconocer este comportamiento erróneo. Después del reconocimiento, el sensor se puede recalibrar o asignar un coeficiente de claridad. Luego, la señal se combina con otras mediciones del mismo parámetro y se somete a correspondencia de mapas antes de derivar la variable de navegación final.European Patent Application EP 0570581 A1, according to its abstract, establishes: a sensory system for vehicle navigation that employs a sensor, such as a compass, or an odometer, to detect a navigation parameter of a vehicle. A signal is provided from the sensor, which has a wrong component. A free recognition pattern, such as a fuzzy inference browser computer, is employed to recognize this erroneous behavior. After recognition, the sensor can be recalibrated or assigned a clarity coefficient. The signal is then combined with other measurements of the same parameter and mapped before deriving the final navigation variable.

La publicación de solicitud de patente de los Estados Unidos US 2007/0156286 A1, de acuerdo con su resumen, establece: un robot móvil equipado con un telémetro y un sistema de visión estéreo. El robot móvil es capaz de navegar de forma autónoma a través del terreno urbano, generar un mapa con base en datos del telémetro y transmitir el mapa al operador, como parte de diversas operaciones de reconocimiento seleccionables por el operador. El robot móvil emplea una técnica de transformación Hough para identificar características lineales en su entorno y luego se alinea con las características lineales identificadas con el fin de navegar por el terreno urbano; a la vez que, al mismo tiempo, se aplica una técnica de histograma de campo vectorial escalado a la combinación del telémetro y datos de visión estéreo para detectar e impedir obstáculos que el robot móvil encuentra al navegar de forma autónoma. Además, las misiones realizadas por el robot móvil pueden incluir parámetros de limitación con base en la distancia o el tiempo transcurrido, para garantizar la finalización de las operaciones autónomas.The United States patent application publication US 2007/0156286 A1, according to its abstract, states: a mobile robot equipped with a rangefinder and a stereo vision system. The mobile robot is capable of autonomously navigating through urban terrain, generating a map based on rangefinder data, and transmitting the map to the operator, as part of various operator-selectable reconnaissance operations. The mobile robot employs a Hough transformation technique to identify linear features in its surroundings and then aligns itself with the identified linear features in order to navigate urban terrain; At the same time, a scaled vector field histogram technique is applied to the combination of the rangefinder and stereo vision data to detect and prevent obstacles that the mobile robot encounters when navigating autonomously. In addition, the missions carried out by the mobile robot can include limitation parameters based on distance or elapsed time, to guarantee the completion of autonomous operations.

ResumenSummary

En la presente solicitud, se describe un aparato que comprende: una pluralidad de sistemas de datos configurados para generar una pluralidad de flujos de datos en los cuales la pluralidad de flujos de datos incluye un primer tipo de flujo de datos y un segundo tipo de flujo de datos, en donde cada punto de datos en el primer tipo de flujo de datos incluye una medición de incertidumbre, y en donde cada punto de datos en el segundo tipo de flujo de datos no incluye una medición de incertidumbre; un modificador configurado para aplicar una distribución de probabilidad al segundo tipo de flujo de datos para formar un flujo de datos modificado; y un estimador de pose ubicado a bordo de una plataforma móvil y configurado para recibir y fusionar el primer tipo de flujo de datos y el flujo de datos modificado para generar un estimado de pose con un nivel deseado de precisión para la plataforma móvil con respecto a un entorno alrededor de la plataforma móvil; en donde el aparato está configurado para: observar un punto de referencia actual en el entorno un número seleccionado de veces usando un sistema de datos a bordo, a la vez que la plataforma móvil está en una ubicación actual; identificar una distancia relativa inicial entre la ubicación actual de la plataforma móvil y el punto de referencia actual; y mover la plataforma móvil a partir de la ubicación actual a una nueva ubicación lo más lejos posible hacia una ubicación deseada sin perder el punto de referencia actual dentro de un campo de visión de un sistema de sensor del sistema de datos a bordo.In the present application, an apparatus is described comprising: a plurality of data systems configured to generate a plurality of data streams in which the plurality of data streams include a first type of data stream and a second type of stream data, wherein each data point in the first type of data stream includes an uncertainty measurement, and wherein each data point in the second type of data stream does not include an uncertainty measurement; a modifier configured to apply a probability distribution to the second type of data stream to form a modified data stream; and a pose estimator located aboard a mobile platform and configured to receive and merge the first type of data stream and the modified data stream to generate a pose estimate with a desired level of precision for the mobile platform with respect to an environment around the mobile platform; wherein the apparatus is configured to: observe a current landmark in the environment a selected number of times using an on-board data system, while the mobile platform is at a current location; identifying an initial relative distance between the current location of the mobile platform and the current reference point; and moving the mobile platform from the current location to a new location as far as possible to a desired location without losing the current reference point within a field of view of an onboard data system sensor system.

También se describe un método para guiar una plataforma móvil dentro de un entorno, el método comprende: generar un primer tipo de flujo de datos y un segundo tipo de flujo de datos usando una pluralidad de sistemas de datos, en donde cada punto de datos en el primer tipo de flujo de datos incluye una medición de incertidumbre, y en donde cada punto de datos en el segundo tipo de flujo de datos no incluye una medición de incertidumbre; aplicar una distribución de probabilidad al segundo tipo de flujo de datos para formar un flujo de datos modificado; fusionar el primer tipo de flujo de datos y el flujo de datos modificado para generar una estimación de pose con un nivel deseado de precisión para la plataforma móvil con respecto al entorno alrededor de la plataforma móvil; y observar un punto de referencia actual en el entorno un número seleccionado de veces usando un sistema de datos a bordo, a la vez que la plataforma móvil está en una ubicación actual; identificar una distancia relativa inicial entre la ubicación actual de la plataforma móvil y el punto de referencia actual; y mover la plataforma móvil a partir de la ubicación actual a una nueva ubicación lo más lejos posible hacia una ubicación deseada sin perder el punto de referencia actual dentro de un campo de visión de un sistema de sensor del sistema de datos a bordo.Also described is a method for guiding a mobile platform within an environment, the method comprises: generating a first type of data stream and a second type of data stream using a plurality of data systems, wherein each data point in the first type of data stream includes an uncertainty measurement, and wherein each data point in the second type of data stream does not include an uncertainty measurement; applying a probability distribution to the second type of data stream to form a modified data stream; merging the first type of data stream and the modified data stream to generate a pose estimate with a desired level of precision for the mobile platform relative to the environment around the mobile platform; and observing a current landmark in the environment a selected number of times using an on-board data system, while the mobile platform is at a current location; identifying an initial relative distance between the current location of the mobile platform and the current reference point; and moving the mobile platform from the current location to a new location as far as possible to a desired location without losing the current reference point within a field of view of an onboard data system sensor system.

También se describe una plataforma móvil que puede comprender una base, un controlador asociado con la base y un sistema de movimiento asociado con la base. El controlador puede estar configurado además para recibir flujos de datos a partir de una pluralidad de sistemas de datos en los cuales los flujos de datos pueden incluir un número del primer tipo de flujos de datos y un número del segundo tipo de flujos de datos. El controlador puede comprender un modificador y un estimador de pose. El modificador puede configurarse para aplicar una distribución de probabilidad a cada uno del número del segundo tipo de flujos de datos para formar un número de flujos de datos modificados. El estimador de pose puede configurarse para recibir el número del primer tipo de flujos de datos y el número de flujos de datos modificados. El estimador de pose puede configurarse además para fusionar la pluralidad de flujos de datos entre sí para generar una estimación de pose con una precisión de nivel deseada para la plataforma móvil con respecto a un entorno alrededor de la plataforma móvil. El sistema de movimiento puede configurarse para ser controlado por el controlador con base en la estimación de pose para mover la plataforma móvil dentro del entorno.Also described is a mobile platform that may comprise a base, a controller associated with the base and a movement system associated with the base. The controller may further be configured to receive data streams from a plurality of data systems in which the data streams may include a number of the first type of data stream and a number of the second type of data stream. The controller may comprise a modifier and a pose estimator. The modifier can be configured to apply a probability distribution to each of the number of the second type of data streams to form a number of modified data streams. The pose estimator can be configured to receive the number of the first type of data streams and the number of modified data streams. The pose estimator may further be configured to merge the plurality of data streams together to generate a pose estimate with a desired level precision for the mobile platform relative to an environment around the mobile platform. The motion system can be configured to be controlled by the controller based on the pose estimate to move the mobile platform within the environment.

Las características y funciones pueden lograrse independientemente en diversas realizaciones de la presente divulgación o pueden combinarse en aún otras realizaciones en las cuales pueden verse detalles adicionales con referencia a la siguiente descripción y dibujos. The features and functions can be independently achieved in various embodiments of the present disclosure or they can be combined in still other embodiments in which additional details can be seen with reference to the following description and drawings.

Breve descripción de los dibujosBrief description of the drawings

Las características novedosas que se creen características de las realizaciones ilustrativas se exponen en las reivindicaciones adjuntas. Sin embargo, las realizaciones ilustrativas, así como un modo de uso preferido, objetivos adicionales y características de los mismos, se entenderán mejor con referencia a la siguiente descripción detallada de una realización ilustrativa de la presente divulgación cuando se lee en conjunto con los dibujos adjuntos, en donde: la Figura 1 es una ilustración de un entorno en la forma de diagrama de bloques de acuerdo con una realización ilustrativa;Novel features believed to be characteristic of illustrative embodiments are set forth in the appended claims. However, the illustrative embodiments, as well as a preferred mode of use, additional objectives, and features thereof, will be better understood with reference to the following detailed description of an illustrative embodiment of the present disclosure when read in conjunction with the accompanying drawings. , wherein: Figure 1 is an illustration of an environment in block diagram form in accordance with an illustrative embodiment;

la Figura 2 es una ilustración de una pluralidad de sistemas de datos en la forma de diagrama de bloques de acuerdo con una realización ilustrativa;Figure 2 is an illustration of a plurality of data systems in block diagram form in accordance with an illustrative embodiment;

la Figura 3 es una ilustración de los componentes de una pluralidad de sistemas de datos que están ubicados a bordo y los componentes de una pluralidad de sistemas de datos que están ubicados fuera de borda de acuerdo con una realización ilustrativa;Figure 3 is an illustration of the components of a plurality of data systems that are located onboard and the components of a plurality of data systems that are located outboard in accordance with an illustrative embodiment;

la Figura 4 es una ilustración de un entorno de fabricación de acuerdo con una realización ilustrativa;Figure 4 is an illustration of a manufacturing environment in accordance with an illustrative embodiment;

la Figura 5 es una ilustración de un robot móvil de acuerdo con una realización ilustrativa;Figure 5 is an illustration of a mobile robot in accordance with an illustrative embodiment;

la Figura 6 es una ilustración de un proceso para generar una estimación de pose para una plataforma móvil en un entorno en la forma de un diagrama de flujo de acuerdo con una realización ilustrativa;Figure 6 is an illustration of a process for generating a pose estimate for a mobile platform in an environment in the form of a flow chart in accordance with an illustrative embodiment;

la Figura 7 es una ilustración de un proceso para guiar un robot móvil dentro de un entorno de fabricación en la forma de un diagrama de flujo de acuerdo con una realización ilustrativa;Figure 7 is an illustration of a process for guiding a mobile robot within a manufacturing environment in the form of a flow chart in accordance with an illustrative embodiment;

la Figura 8 es una ilustración de un sistema de procesamiento de datos en la forma de un diagrama de bloques de acuerdo con una realización ilustrativa;Figure 8 is an illustration of a data processing system in the form of a block diagram in accordance with an illustrative embodiment;

la Figura 9 es una ilustración de un método de fabricación y servicio de aeronaves en la forma de un diagrama de bloques de acuerdo con una realización ilustrativa; yFigure 9 is an illustration of an aircraft manufacturing and servicing method in the form of a block diagram in accordance with an illustrative embodiment; and

la Figura 10 es una ilustración de una aeronave en la forma de un diagrama de bloques de acuerdo con una realización ilustrativa.Figure 10 is an illustration of an aircraft in the form of a block diagram in accordance with an illustrative embodiment.

Descripción detalladaDetailed description

Las realizaciones ilustrativas reconocen y toman en cuenta diferentes consideraciones. Por ejemplo, las realizaciones ilustrativas reconocen y toman en cuenta que puede ser deseable tener un método y un aparato capaces de realizar una localización más precisa y rápida para un número de plataformas móviles dentro de un entorno de fabricación. Además, las realizaciones ilustrativas reconocen y toman en cuenta que puede ser deseable tener un método y un aparato para generar una estimación de pose para un robot móvil dentro de un entorno a bordo del robot móvil. Por lo tanto, las realizaciones ilustrativas proporcionan un método y un aparato para generar una estimación de pose para un robot móvil a bordo del robot móvil usando fusión de sensores. El método y el aparato proporcionados por las realizaciones ilustrativas pueden reducir el tiempo necesario para generar una estimación de pose, a la vez que aumentan la precisión de la estimación. Además, la solución proporcionada por las realizaciones ilustrativas puede ser más simple y rentable que algunas soluciones disponibles actualmente.The illustrative embodiments recognize and take into account different considerations. For example, the illustrative embodiments recognize and take into account that it may be desirable to have a method and apparatus capable of performing more accurate and rapid location for a number of mobile platforms within a manufacturing environment. Furthermore, the illustrative embodiments recognize and take into account that it may be desirable to have a method and apparatus for generating a pose estimate for a mobile robot within an environment aboard the mobile robot. Therefore, the illustrative embodiments provide a method and apparatus for generating a pose estimate for a mobile robot on board the mobile robot using sensor fusion. The method and apparatus provided by the illustrative embodiments can reduce the time required to generate a pose estimate, while increasing the accuracy of the estimate. Furthermore, the solution provided by the illustrative embodiments may be simpler and more cost effective than some currently available solutions.

Con referencia ahora a las figuras y, en particular, con referencia a la Figura 1, se representa una ilustración de un entorno de acuerdo con una realización ilustrativa. En este ejemplo ilustrativo, el entorno 100 puede ser cualquier entorno en el cual se pueda usar el número de plataformas 102 móviles. Como se usa en este documento, un “número de” elementos puede ser uno o más elementos. De esta manera, el número de plataformas 102 móviles puede incluir una o más plataformas móviles.Referring now to the figures, and in particular with reference to Figure 1, an illustration of an environment is depicted in accordance with an illustrative embodiment. In this illustrative example, environment 100 can be any environment in which the number of mobile platforms 102 can be used. As used in this document, a "number of" items can be one or more items. Thus, the number of mobile platforms 102 can include one or more mobile platforms.

En un ejemplo ilustrativo, el entorno 100 puede tomar la forma del entorno 101 de fabricación en el cual se fabrica el objeto 103. El objeto 103 puede tomar un número de formas diferentes. Por ejemplo, sin limitación, el objeto 103 puede tomar la forma de una puerta, un panel de revestimiento, un ala para una aeronave, un fuselaje para una aeronave, un componente estructural para un edificio, un conjunto de componentes o algún otro tipo de objeto.In an illustrative example, environment 100 can take the form of manufacturing environment 101 in which object 103 is manufactured. Object 103 can take a number of different forms. For example, without limitation, object 103 may take the form of a door, a skin panel, a wing for an aircraft, a fuselage for an aircraft, a structural component for a building, a set of components, or some other type of device. object.

Como se muestra, la plataforma 104 móvil puede ser un ejemplo de una implementación para una plataforma móvil en el número de plataformas 102 móviles. En este ejemplo ilustrativo, la plataforma 104 móvil puede tomar la forma del robot 106 móvil. Por supuesto, dependiendo de la implementación, la plataforma 104 móvil puede tomar la forma de cualquier tipo de plataforma, estructura, dispositivo u objeto capaz de moverse al menos parcialmente de manera autónoma dentro del entorno 100.As shown, mobile platform 104 may be an example of an implementation for a mobile platform in the number of mobile platforms 102. In this illustrative example, the mobile platform 104 may take the form of the mobile robot 106. Of course, depending on the implementation, the mobile platform 104 can take the form of any type of platform, structure, device or object capable of at least partially autonomously moving within environment 100.

Como se muestra, el robot 106 móvil puede incluir la base 108, el sistema 110 de movimiento, el número de herramientas 112 y el controlador 114. El sistema 110 de movimiento, el número de herramientas 112 y el controlador 114 pueden estar asociados con la base 108. Como se usa en este documento, cuando un componente está “asociado” con otro componente, la asociación es una asociación física en los ejemplos representados.As shown, mobile robot 106 may include base 108, motion system 110, number of tools 112, and controller 114. Motion system 110, number of tools 112, and controller 114 may be associated with base 108. As used herein, when one component is "associated" with another component, the association is a physical association in the depicted examples.

Por ejemplo, sin limitación, un primer componente, tal como el sistema 110 de movimiento, puede considerarse asociado con un segundo componente, tal como la base 108, al estar asegurado al segundo componente, unido al segundo componente, montado al segundo componente, soldado al segundo componente, sujeto al segundo componente y/o conectado al segundo componente de alguna otra manera adecuada. El primer componente también puede estar conectado al segundo componente usando un tercer componente. Además, se puede considerar que el primer componente está asociado con el segundo componente al formarse como parte y/o como una extensión del segundo componente.For example, without limitation, a first component, such as motion system 110, can be considered associated with a second component, such as base 108, by being secured to the second component, attached to the second component, mounted to the second component, welded. to the second component, attached to the second component and / or connected to the second component in some other suitable manner. The first component can also be connected to the second component using a third component. Furthermore, the first component can be considered to be associated with the second component by being formed as a part and / or as an extension of the second component.

El sistema 110 de movimiento puede usarse para mover el robot 106 móvil dentro del entorno 100. Por ejemplo, sin limitación, el sistema 110 de movimiento puede usarse para mover el robot 106 móvil dentro del entorno 101. Dependiendo de la implementación, el sistema 110 de movimiento puede incluir al menos uno de un número de ruedas, un número de rodillos, un número de patas, un número de ruedas holonómicas u otros tipos de dispositivos capaces de proporcionar movimiento.Motion system 110 can be used to move mobile robot 106 within environment 100. For example, without limitation, motion system 110 can be used to move mobile robot 106 within environment 101. Depending on the implementation, system 110 The motion device may include at least one of a number of wheels, a number of rollers, a number of legs, a number of holonomic wheels, or other types of devices capable of providing motion.

Como se usa en este documento, la frase “al menos uno de”, cuando se usa con una lista de elementos, significa que se pueden usar diferentes combinaciones de uno o más de los elementos enumerados y puede ser necesario solo uno de los elementos en la lista. El elemento puede ser un objeto, cosa o categoría en particular. En otras palabras, “al menos uno de” significa que se puede usar cualquier combinación de elementos o número de elementos de la lista, pero no todos los elementos de la lista pueden ser necesarios.As used in this document, the phrase "at least one of", when used with a list of items, means that different combinations of one or more of the listed items may be used and only one of the items may be required in the list. The item can be a particular object, thing, or category. In other words, "at least one of" means that any combination of items or number of items in the list can be used, but not all items in the list may be required.

Por ejemplo, “al menos uno del elemento A, elemento B y elemento C” puede significar el elemento A; elemento A y elemento B; elemento B; elemento A, elemento B y elemento C; o elemento B y elemento C. En algunos casos, “al menos uno del elemento A, elemento B y elemento C” puede significar, por ejemplo, sin limitación, dos del elemento A, uno del elemento B y diez del elemento C; cuatro del elemento B y siete del elemento C; o alguna otra combinación adecuada.For example, "at least one of item A, item B, and item C" can mean item A; element A and element B; element B; element A, element B and element C; or element B and element C. In some cases, "at least one of element A, element B and element C" can mean, for example, without limitation, two of element A, one of element B and ten of element C; four from element B and seven from element C; or some other suitable combination.

En este ejemplo ilustrativo, se puede usar un número de herramientas 112 para realizar un número de operaciones 116 dentro del entorno 100. Al menos uno del número de operaciones 116 se puede realizar en el objeto 103. El número de operaciones 116 puede incluir, por ejemplo, sin limitación, al menos uno de una operación de perforación, una operación de fijación, una operación de lijado, una operación de pintura, una operación de mecanizado, una operación de prueba, una operación de captura de imágenes o algún otro tipo de operación. De esta manera, el número de herramientas 112 puede incluir, por ejemplo, sin limitación, al menos uno de un dispositivo de perforación, un dispositivo de fijación, una herramienta de lijado, una herramienta de pintura, un sistema dispensador de fluido, un dispositivo de aplicación de sellante, un dispositivo de mecanizado, un dispositivo de fresado, un sistema de prueba, un dispositivo de captura de imágenes, un escáner, un marcador, un bolígrafo, un aplicador de etiquetas o algún otro tipo de herramienta.In this illustrative example, a number of tools 112 may be used to perform a number of operations 116 within environment 100. At least one of the number of operations 116 may be performed on object 103. The number of operations 116 may include, for example For example, without limitation, at least one of a drilling operation, a fixing operation, a sanding operation, a painting operation, a machining operation, a test operation, an image capture operation, or some other type of operation. Thus, the number of tools 112 may include, for example, without limitation, at least one of a drilling device, a clamping device, a sanding tool, a painting tool, a fluid dispensing system, a device. sealant application, a machining device, a milling device, a testing system, an image capture device, a scanner, a marker, a pen, a label applicator, or some other type of tool.

En este ejemplo ilustrativo, el controlador 114 puede configurarse para controlar el funcionamiento de al menos uno del número de herramientas 112. Además, el controlador 114 puede configurarse para controlar el sistema 110 de movimiento. En particular, el controlador 114 puede controlar el sistema 110 de movimiento para mover el robot 106 móvil a lo largo de la ruta 117 en el entorno 100. La ruta 117 puede estar al menos parcialmente a lo largo del piso 115 del entorno 100. Como se usa en este documento, el piso 115 puede incluir una superficie de piso, una superficie en un puente, una superficie formada por una o más paletas, una superficie de plataforma, un piso de un elevador, un piso de una cinta transportadora, algún otro tipo de superficie, o alguna combinación de los mismos.In this illustrative example, controller 114 can be configured to control the operation of at least one of the number of tools 112. Additionally, controller 114 can be configured to control motion system 110. In particular, controller 114 may control motion system 110 to move mobile robot 106 along path 117 in environment 100. Path 117 may be at least partially along floor 115 of environment 100. As used herein, floor 115 may include a floor surface, a surface on a bridge, a surface made up of one or more pallets, a platform surface, a floor of an elevator, a floor of a conveyor belt, some another type of surface, or some combination thereof.

La ruta 117 puede ser una ruta actualizada dinámicamente en que el controlador 114 puede actualizar la ruta 117 a medida que el robot 106 móvil se mueve a través del entorno 100. El controlador 114 puede actualizar la ruta 117 a medida que el robot 106 móvil se mueve a través del entorno 100 para ayudar al robot 106 móvil, por ejemplo, sin limitación, al menos uno de impedir obstáculos, moverse alrededor de objetos que se han colocado o movido recientemente dentro del entorno 100, responder a cambios en el número de operaciones 116 a realizar por el robot 106 móvil, maniobrar alrededor de operadores humanos que se encuentran en o se mueven dentro del entorno 100, o responder a algún otro tipo de circunstancia nueva o cambiada dentro del entorno 100. El controlador 114 puede usar la localización para ayudar a navegar el robot 106 móvil.Route 117 can be a dynamically updated route in which controller 114 can update route 117 as mobile robot 106 moves through environment 100. Controller 114 can update route 117 as mobile robot 106 becomes moves through environment 100 to assist mobile robot 106, for example, without limitation, at least one of preventing obstacles, moving around objects that have recently been placed or moved within environment 100, responding to changes in the number of operations 116 to be performed by mobile robot 106, maneuver around human operators who are in or moving within environment 100, or respond to some other type of new or changed circumstance within environment 100. Controller 114 may use location to help the mobile robot 106 navigate.

Como se muestra, el controlador 114 puede incluir, por ejemplo, sin limitación, el estimador 118 de pose y el modificador 120. El estimador 118 de pose puede generar la estimación 122 de pose para el robot 106 móvil. La estimación 122 de pose puede ser una estimación de pose del robot 106 móvil dentro del entorno 100. La pose del robot 106 móvil, como se usa en este documento, puede comprender al menos una posición del robot 106 móvil o una orientación del robot 106 móvil con respecto al sistema 124 de coordenadas de referencia para el entorno 100. Por lo tanto, la estimación 122 de pose puede estar compuesta por al menos una de la estimación 121 de posición y la estimación 123 de orientación del robot 106 móvil con respecto al sistema 124 de coordenadas de referencia para el entorno 100. As shown, controller 114 can include, for example, without limitation, pose estimator 118 and modifier 120. Pose estimator 118 can generate pose estimate 122 for mobile robot 106. The pose estimate 122 may be a pose estimate of the mobile robot 106 within environment 100. The pose of the mobile robot 106, as used herein, may comprise at least a position of the mobile robot 106 or an orientation of the robot 106 mobile relative to the reference coordinate system 124 for the environment 100. Therefore, the pose estimate 122 may be composed of at least one of the position estimate 121 and the orientation estimate 123 of the mobile robot 106 relative to the reference coordinate system 124 for environment 100.

El robot 106 móvil puede configurarse para moverse con seis grados de libertad en el entorno 100. Por lo tanto, la estimación 122 de pose puede ser una estimación de pose de seis grados de libertad (6DoF) para el robot 106 móvil. En algunos casos, la estimación 122 de pose puede referirse a la estimación de pose del robot 106 móvil en el espacio de seis grados de libertad del robot 106 móvil.The mobile robot 106 can be configured to move with six degrees of freedom in the environment 100. Therefore, the pose estimate 122 can be a six-degree-of-freedom (6DoF) pose estimate for the mobile robot 106. In some cases, the pose estimate 122 may refer to the pose estimate of the mobile robot 106 in the space of six degrees of freedom of the mobile robot 106.

En este ejemplo ilustrativo, el estimador 118 de pose puede fusionar una pluralidad de flujos 126 de datos para generar la estimación 122 de pose. Al menos una porción de la pluralidad de flujos 126 de datos puede recibirse a partir de una pluralidad de sistemas 128 de datos. Como se usa en este documento, un sistema de datos en una pluralidad de sistemas 128 de datos puede incluir un número de sistemas de sensor, un número de unidades de procesador o alguna combinación de los mismos. Como se usa en este documento, un “sistema de sensor” puede comprender cualquier número de dispositivos de sensor, dispositivos activos, dispositivos pasivos o una combinación de los mismos.In this illustrative example, the pose estimator 118 may merge a plurality of data streams 126 to generate the pose estimate 122. At least a portion of the plurality of data streams 126 may be received from a plurality of data systems 128. As used herein, a data system in a plurality of data systems 128 may include a number of sensor systems, a number of processor units, or some combination thereof. As used herein, a "sensor system" can comprise any number of sensor devices, active devices, passive devices, or a combination thereof.

Como se usa en este documento, “fusionar” la pluralidad de flujos 126 de datos puede significar combinar y procesar los diferentes flujos de datos en la pluralidad de flujos 126 de datos para generar una única estimación 122 de pose. Cada uno de la pluralidad de flujos 126 de datos puede estar compuesto de estimaciones generadas a lo largo del tiempo.As used herein, "merging" the plurality of data streams 126 may mean combining and processing the different data streams in the plurality of data streams 126 to generate a single pose estimate 122. Each of the plurality of data streams 126 may be composed of estimates generated over time.

El flujo 125 de datos es un ejemplo de una pluralidad de flujos 126 de datos. El flujo 125 de datos puede generarse por uno de la pluralidad de sistemas 128 de datos. En este ejemplo ilustrativo, el flujo 125 de datos puede estar compuesto por estimaciones generadas a lo largo del tiempo.Data stream 125 is an example of a plurality of data streams 126. Data stream 125 may be generated by one of the plurality of data systems 128. In this illustrative example, the data stream 125 may be comprised of estimates generated over time.

Como se usa en este documento, una “estimación” puede ser una estimación de pose de seis grados de libertad del robot 106 móvil. Esta estimación puede generarse con base en mediciones generadas en un solo punto en el tiempo o a lo largo de un período de tiempo. En algunos casos, la estimación también puede incluir metadatos. En algunos ejemplos ilustrativos, la estimación se puede denominarse como un punto de datos de salida de tal modo que el flujo 125 de datos puede estar compuesto por una pluralidad de puntos de datos de salida.As used herein, an "estimate" can be a six-degree-of-freedom pose estimate of the mobile robot 106. This estimate can be generated based on measurements generated at a single point in time or over a period of time. In some cases, the estimate may also include metadata. In some illustrative examples, the estimate may be referred to as an output data point such that the data stream 125 may be composed of a plurality of output data points.

El estimador 118 de pose puede usar una pluralidad de flujos 126 de datos y un algoritmo de estimación Bayesiano para generar la estimación 122 de pose. En particular, el estimador 118 de pose puede usar las siguientes ecuaciones de estimación Bayesianas:The pose estimator 118 may use a plurality of data streams 126 and a Bayesian estimation algorithm to generate the pose estimate 122. In particular, the pose estimator 118 can use the following Bayesian estimation equations:

p {X t+í | ZT) = f [p ( X t+1 | XT) * p (X t | ZT)j (1) p {X t + í | ZT) = f [p ( X t + 1 | XT) * p ( X t | ZT) j (1)

donde t es tiempo, xt+i es la pose del robot 106 móvil en el tiempo t+1, zt es la colección de todas las estimaciones en la pluralidad de flujos 126 de datos a lo largo del tiempo, T, p(xt+i\ZT) es la probabilidad de xt+i dado zt, xt es la pose del robot 106 móvil en el tiempo t, n es el número total de sistemas de datos en la pluralidad de sistemas 128 de datos, Z ^ - es la estimación generada por un primer sistema de datos en la pluralidad de sistemas 128 de datos en el tiempo t+1, y Z ^ j- es la estimación generada por el enésimo sistema de datos en una pluralidad de sistemas 128 de datos en el tiempo t+1. Para cualquier tiempo dado t+1, p ( Z - ^ , ... , Z ^ |X£+1) solo incluye sistemas de datos que han proporcionado estimaciones en el tiempo t+ i .where t is time, xt + i is the pose of the mobile robot 106 at time t + 1, zt is the collection of all the estimates in the plurality of data streams 126 over time, T, p ( xt + i \ ZT) is the probability of xt + i given zt, xt is the pose of the mobile robot 106 at time t, n is the total number of data systems in the plurality of data systems 128, Z ^ - is the estimate generated by a first data system in the plurality of data systems 128 at time t + 1, and Z ^ j- is the estimate generated by the nth data system in a plurality of data systems 128 at time t +1. For any given time t + 1, p ( Z - ^, ..., Z ^ | X £ + 1) only includes data systems that have provided estimates at time t + i .

El error en el estimador 118 de pose puede reducirse aún más aumentando el número de flujos de datos en la pluralidad de flujos 126 de datos utilizados para generar la estimación 122 de pose, y por lo tanto el número de sistemas de datos en la pluralidad de sistemas 128 de datos. En otras palabras, a medida que aumenta el número de flujos de datos en la pluralidad de flujos 126 de datos, disminuye el error en la estimación 122 de pose generado por el estimador 118 de pose.The error in the pose estimator 118 can be further reduced by increasing the number of data streams in the plurality of data streams 126 used to generate the pose estimate 122, and thus the number of data sets in the plurality of 128 data systems. In other words, as the number of data streams in the plurality of data streams 126 increases, the error in pose estimate 122 generated by pose estimator 118 decreases.

El uso de técnicas de estimación Bayesianas para generar la estimación 122 de pose puede requerir que todos los datos utilizados para generar la estimación 122 de pose sean probabilísticos. En otras palabras, todos los datos pueden necesitar incluir aleatoriedad o incertidumbre.The use of Bayesian estimation techniques to generate the pose estimate 122 may require that all data used to generate the pose estimate 122 be probabilistic. In other words, all data may need to include randomness or uncertainty.

Sin embargo, los flujos 127 de datos generados por la pluralidad de sistemas 128 de datos pueden incluir el número del primer tipo de flujos 132 de datos y el número del segundo tipo de flujos 130 de datos. Un “primer tipo de flujo de datos”, tal como uno del número del primer tipo de flujos 132 de datos puede incluir puntos de datos en los cuales cada punto de datos incluye, o está acoplado con, una medición de incertidumbre, con base en alguna distribución de probabilidad. En particular, un primer tipo de flujo de datos puede generarse por un sistema probabilístico, patrón o algoritmo en el cual la salida o la forma en que es dada una salida para una entrada dada toma en cuenta la aleatoriedad o un grado de incertidumbre. De esta manera, cada uno de los primeros tipos de flujos 132 de datos puede denominarse como un flujo de datos probabilístico en algunos ejemplos ilustrativos.However, the data streams 127 generated by the plurality of data systems 128 may include the number of the first type of data streams 132 and the number of the second type of data streams 130. A "first type of data stream", such as one of the number of the first type of data streams 132 may include data points in which each data point includes, or is coupled with, an uncertainty measurement, based on some probability distribution. In particular, a first type of data flow can be generated by a probabilistic system, pattern or algorithm in which the output or the way an output is given for a given input takes into account randomness or a degree of uncertainty. Thus, each of the first types of data streams 132 may be referred to as a probabilistic data stream in some illustrative examples.

Como se usa en este documento, un “segundo tipo de flujo de datos”, tal como uno del número del segundo tipo de flujos 130 de datos puede incluir puntos de datos en los cuales cada punto de datos no incluye, o no está acoplado con, una medición de incertidumbre. Por ejemplo, sin limitación, el punto de datos puede incluir solo un valor de datos único. En algunos ejemplos ilustrativos, este segundo tipo de flujo de datos puede denominarse flujo de datos pseudodeterminista.As used herein, a "second type of data stream", such as one of the number of the second type of data streams 130, may include data points in which each data point does not include, or is not coupled with , a measurement of uncertainty. For example, without limitation, the data point can include only one data value only. In some illustrative examples, this second type of data flow may be referred to as a pseudo-deterministic data flow.

El número del segundo tipo de flujos 130 de datos en los flujos 127 de datos puede ser recibido por el modificador 120 en el estimador 118 de pose. El modificador 120 puede configurarse para modificar un segundo tipo de flujo de datos para que el estimador 118 de pose pueda utilizar el flujo de datos. En particular, el modificador 120 puede convertir el número del segundo tipo de flujos 130 de datos en un número del primer tipo de flujos de datos procesados. Todo el primer tipo de flujos de datos puede ser procesado por el estimador 118 de pose para generar la estimación 122 de pose.The number of the second type of data streams 130 in data streams 127 can be received by modifier 120 in pose estimator 118. Modifier 120 can be configured to modify a second type of data stream so that pose estimator 118 can use the data stream. In particular, the modifier 120 can convert the number of the second type of data streams 130 into a number of the first type of processed data streams. All of the first type of data streams can be processed by the pose estimator 118 to generate the pose estimate 122.

Como un ejemplo ilustrativo, el segundo tipo de flujo 133 de datos puede ser generado por uno de una pluralidad de sistemas 128 de datos. En este ejemplo, el segundo tipo de flujo 133 de datos puede haberse generado usando una o más técnicas de odometría. El modificador 120 puede configurarse para modificar el segundo tipo de flujo 133 de datos para formar el flujo 135 de datos modificado que puede ser utilizado por el estimador 118 de pose. El modificador 120 puede convertir el segundo tipo de flujo 133 de datos en el flujo 135 de datos modificado usando cualquier número de técnicas. Como un ejemplo ilustrativo, el modificador 120 puede aplicar la distribución 137 de probabilidad al segundo tipo de flujo 133 de datos para formar el flujo 135 de datos modificado.As an illustrative example, the second type of data stream 133 may be generated by one of a plurality of data systems 128. In this example, the second type of data stream 133 may have been generated using one or more odometry techniques. Modifier 120 may be configured to modify the second type of data stream 133 to form modified data stream 135 that can be used by pose estimator 118. Modifier 120 can convert the second type of data stream 133 into modified data stream 135 using any number of techniques. As an illustrative example, modifier 120 may apply probability distribution 137 to the second type of data stream 133 to form modified data stream 135.

Dependiendo de la implementación, la distribución 137 de probabilidad puede ser una distribución Gaussiana o algún otro tipo de distribución de probabilidad. La distribución 137 de probabilidad puede ser una distribución de probabilidad predeterminada. Por ejemplo, sin limitación, la distribución 137 de probabilidad puede haberse determinado empíricamente, utilizando un patrón matemático, o de alguna otra manera antes de que el robot 106 móvil se utilizara para realizar un número de operaciones 116 en el entorno 100.Depending on the implementation, the probability distribution 137 can be a Gaussian distribution or some other type of probability distribution. The probability distribution 137 may be a predetermined probability distribution. For example, without limitation, the probability distribution 137 may have been determined empirically, using a mathematical pattern, or in some other way before the mobile robot 106 was used to perform a number of operations 116 in environment 100.

Al convertir el segundo tipo de flujo 133 de datos en el flujo 135 de datos modificado, puede eliminarse la necesidad de datos probabilísticos generados usando un patrón con base en la física del robot 106 móvil. En particular, el término p(x+i | xt) en la ecuación (1) descrita anteriormente puede proporcionarse utilizando al menos uno de los flujos 127 de datos de la pluralidad de sistemas 128 de datos en lugar de un patrón con base en la física. Por ejemplo, sin limitación, el estimador 118 de pose puede usar un flujo de datos de un sistema de odometría en una pluralidad de sistemas 128 de datos para proporcionar el término p(xt+i | xt) en la ecuación (1) descrita anteriormente. El término p(xt+i | xt) es la probabilidad de la pose del robot 106 móvil en el tiempo t+1 dada la pose del robot 106 móvil en el tiempo t.By converting the second type of data stream 133 to the modified data stream 135, the need for probabilistic data generated using a pattern based on the physics of the mobile robot 106 can be eliminated. In particular, the term p ( x + i | xt) in equation (1) described above can be provided using at least one of the data streams 127 of the plurality of data sets 128 rather than a pattern based on the physical. For example, without limitation, the pose estimator 118 may use a data stream from an odometry system in a plurality of data systems 128 to provide the term p ( xt + i | xt) in equation (1) described above. . The term p ( xt + i | xt) is the probability of the pose of the mobile robot 106 at time t + 1 given the pose of the mobile robot 106 at time t.

De esta manera, se puede aplicar una distribución de probabilidad a cada número del segundo tipo de flujos 130 de datos por el modificador 120 para formar el número de flujos 129 de datos modificados. Cada uno del número de flujos 129 de datos modificados puede ser igual a cada uno del número del primer tipo de flujos 132 de datos. El número de flujos 129 de datos modificados y el número del primer tipo de flujos 132 de datos juntos pueden formar una pluralidad de flujos 126 de datos utilizados por el estimador 118 de pose para formar una estimación 122 de pose.In this way, a probability distribution can be applied to each number of the second type of data streams 130 by the modifier 120 to form the number of modified data streams 129. Each of the number of modified data streams 129 may be equal to each of the number of the first type of data streams 132. The number of modified data streams 129 and the number of the first type of data streams 132 together can form a plurality of data streams 126 used by the pose estimator 118 to form a pose estimate 122.

En estos ejemplos ilustrativos, la pluralidad de sistemas 128 de datos puede incluir el número de sistemas 134 de datos a bordo y el número de sistemas 136 de datos fuera de borda. Como se usa en este documento, un “sistema de datos a bordo”, tal como uno del número de sistemas 134 de datos a bordo, pueden configurarse para generar un flujo de datos a bordo del robot 106 móvil. En algunos casos, un sistema de datos a bordo puede estar completamente separado del controlador 114. En otros ejemplos ilustrativos, al menos una porción de un sistema de datos a bordo puede implementarse o integrarse con el controlador 114. El flujo de datos generado por el sistema de datos a bordo puede ser recibido por el estimador 118 de pose o el modificador 120, dependiendo de si el flujo de datos es un segundo tipo de flujo de datos o un primer tipo de flujo de datos.In these illustrative examples, the plurality of data systems 128 may include the number of onboard data systems 134 and the number of outboard data systems 136. As used herein, an "on-board data system", such as one of the number of on-board data systems 134, can be configured to generate a data stream on board the mobile robot 106. In some cases, an on-board data system may be completely separate from the controller 114. In other illustrative examples, at least a portion of an on-board data system may be implemented or integrated with the controller 114. The data stream generated by the Onboard data system may be received by pose estimator 118 or modifier 120, depending on whether the data stream is a second type of data stream or a first type of data stream.

El sistema 144 de datos a bordo puede ser un ejemplo de uno del número de sistemas 134 de datos a bordo. El sistema 144 de datos a bordo puede incluir al menos uno de un elemento pasivo, un elemento activo, una unidad de procesador, un circuito integrado, un microprocesador, un sistema de sensor, un objetivo o algún tipo de otro dispositivo o elemento. Al menos la porción del sistema 144 de datos a bordo que genera un flujo de datos se encuentra a bordo del robot 106 móvil. De esta manera, todo el sistema 144 de datos a bordo puede ubicarse a bordo del robot 106 móvil o una porción del sistema 144 de datos a bordo puede ubicarse a bordo, a la vez que otra porción puede ubicarse fuera de borda.The onboard data system 144 may be an example of one of the number of onboard data systems 134. The on-board data system 144 can include at least one of a passive element, an active element, a processor unit, an integrated circuit, a microprocessor, a sensor system, a target, or some type of other device or element. At least the portion of the onboard data system 144 that generates a data stream is on board the mobile robot 106. In this manner, the entire onboard data system 144 may be located on board the mobile robot 106 or a portion of the onboard data system 144 may be located on board, while another portion may be located off board.

Como se usa en este documento, un “sistema de datos fuera de borda”, tal como uno del número de sistemas 136 de datos fuera de borda, puede ser un sistema de datos configurado para generar un flujo de datos de manera remota con respecto al robot 106 móvil. La corriente de datos generada por el sistema de datos fuera de borda se puede enviar al controlador 114 utilizando, por ejemplo, sin limitación, un enlace de comunicaciones inalámbricas.As used herein, an "outboard data system", such as one of number of outboard data systems 136, may be a data system configured to generate a data stream remotely from the mobile robot 106. The data stream generated by the outboard data system can be sent to controller 114 using, for example, without limitation, a wireless communications link.

El sistema 145 de datos fuera de borda puede ser un ejemplo de uno del número de sistemas 136 de datos fuera de borda. El sistema 145 de datos fuera de borda puede incluir al menos uno de un elemento pasivo, un elemento activo, una unidad de procesador, un circuito integrado, un microprocesador, un sistema de sensor, un objetivo o algún otro tipo de dispositivo o elemento. Al menos la porción del sistema 145 de datos fuera de borda que genera un flujo de datos se encuentra en el robot 106 móvil fuera de borda. De esta manera, todo el sistema 145 de datos fuera de borda puede ubicarse fuera de borda o una porción del sistema 145 de datos fuera de borda puede ubicarse fuera de borda, a la vez que otra porción puede ubicarse a bordo. The outboard data system 145 may be an example of one of the number of outboard data systems 136. The outboard data system 145 may include at least one of a passive element, an active element, a processor unit, an integrated circuit, a microprocessor, a sensor system, a target, or some other type of device or element. At least the portion of the outboard data system 145 that generates a data stream is located in the mobile outboard robot 106. In this manner, the entire outboard data system 145 may be located outboard or a portion of the outboard data system 145 may be located outboard, while another portion may be located onboard.

Además, el controlador 114 puede configurarse para reducir el error al mover el robot 106 móvil a lo largo de la ruta 117. En particular, el controlador 114 puede reducir el error aleatorio al mover el robot 106 móvil a partir de la ubicación 138 inicial a lo largo de la ruta 117 a la ubicación 140 deseada a lo largo de la ruta 117 dentro de las tolerancias seleccionadas. En un ejemplo ilustrativo, el controlador 114 puede usar uno o más del número de sistemas 134 de datos a bordo para reducir este error aleatorio.In addition, controller 114 can be configured to reduce error in moving mobile robot 106 along path 117. In particular, controller 114 can reduce random error in moving mobile robot 106 from starting location 138 to along route 117 to the desired location 140 along route 117 within selected tolerances. In an illustrative example, controller 114 may use one or more of the number of on-board data systems 134 to reduce this random error.

En particular, el controlador 114 puede usar uno o más del número de sistemas 134 de datos a bordo configurados para observar el número de puntos 142 de referencia dentro del entorno 100 para reducir el error aleatorio al mover el robot 106 móvil a partir de la ubicación 138 inicial a lo largo de la ruta 117 a la ubicación 140 deseada a lo largo de la ruta 117. Un punto de referencia en el número de puntos 142 de referencia puede ser cualquier característica reconocible en el entorno 100. Por ejemplo, sin limitación, un punto de referencia puede tomar la forma de un pilar, una plataforma, una característica estructural, una pieza de equipo, un estructura artificial, un objetivo, una etiqueta o algún otro tipo de punto de referencia.In particular, controller 114 may use one or more of the number of on-board data systems 134 configured to observe the number of reference points 142 within environment 100 to reduce random error when moving mobile robot 106 from location 138 along route 117 to the desired location 140 along route 117. A landmark in the number of waypoints 142 can be any recognizable feature in environment 100. For example, without limitation, A landmark can take the form of a pillar, a platform, a structural feature, a piece of equipment, an artificial structure, a target, a tag, or some other type of landmark.

En este ejemplo ilustrativo, el sistema 144 de datos a bordo puede incluir un sistema de sensor capaz de observar al menos uno del número de puntos 142 de referencia en el entorno 100 a la vez que el robot 106 móvil está en la ubicación 138 inicial dentro del entorno 100. Por ejemplo, sin limitación, el sistema 144 de datos a bordo puede observar el punto 146 de referencia del número de puntos 142 de referencia a la vez que está en la ubicación 138 inicial. La observación del punto 146 de referencia se puede hacer un número seleccionado de veces. Por ejemplo, se pueden hacer N observaciones del punto 146 de referencia.In this illustrative example, the on-board data system 144 may include a sensor system capable of observing at least one of the number of reference points 142 in the environment 100 while the mobile robot 106 is at the initial location 138 within of the environment 100. For example, without limitation, the on-board data system 144 may observe the reference point 146 of the number of reference points 142 at the same time that it is at the initial location 138. The observation of the reference point 146 can be done a selected number of times. For example, N observations can be made of the reference point 146.

El punto 146 de referencia puede ser un punto de referencia natural o artificial, dependiendo de la implementación. En este ejemplo ilustrativo, el punto 146 de referencia puede ser un punto de referencia estacionario. Sin embargo, en otro ejemplo ilustrativo, el punto 146 de referencia puede ser móvil y capaz de moverse dentro del entorno 100 como sea necesario. En algunos ejemplos ilustrativos, el punto 146 de referencia puede ser una persona.The landmark 146 can be a natural or artificial landmark, depending on the implementation. In this illustrative example, reference point 146 may be a stationary reference point. However, in another illustrative example, reference point 146 may be mobile and capable of moving within environment 100 as necessary. In some illustrative examples, the reference point 146 may be a person.

El sistema 144 de datos a bordo puede usarse para identificar una distancia relativa inicial entre la ubicación 138 inicial del robot 106 móvil y el punto 146 de referencia. A medida que aumenta el número de observaciones del punto 146 de referencia, disminuye el error en la distancia relativa inicial entre la ubicación inicial del robot 106 móvil y el punto 146 de referencia. La reducción en el error se basa en el teorema del límite central.The on-board data system 144 can be used to identify an initial relative distance between the home location 138 of the mobile robot 106 and the reference point 146. As the number of observations of the reference point 146 increases, the error in the initial relative distance between the initial location of the mobile robot 106 and the reference point 146 decreases. The reduction in error is based on the central limit theorem.

En particular, el teorema del límite central puede explotarse de tal modo que el error pueda reducirse por un factor de la raíz cuadrada de n, donde n es el número total de observaciones realizadas. El teorema del límite central establece que, bajo ciertas condiciones, la suma de n variables aleatorias independientes, distribuidas de manera idéntica, cuando se escala adecuadamente, puede converger en la distribución a una distribución normal estándar. Por lo tanto, en un ejemplo ilustrativo, al aumentar n, la covarianza empírica disminuirá a una velocidad dada de la siguiente manera:In particular, the central limit theorem can be exploited in such a way that the error can be reduced by a factor of the square root of n, where n is the total number of observations made. The central limit theorem states that, under certain conditions, the sum of n identically distributed independent random variables, when properly scaled, can converge in the distribution to a standard normal distribution. Therefore, in an illustrative example, as n increases, the empirical covariance will decrease at a given rate as follows:

(<r) /V ñ (3)(<r) / V ñ (3)

donde a es la desviación estándar con respecto a la media.where a is the standard deviation from the mean.

El robot 106 móvil se puede mover entonces a una nueva ubicación lo más lejos posible hacia la dirección de la ubicación 140 deseada sin perder el punto 146 de referencia dentro del campo de visión del sistema de sensor del sistema 144 de datos a bordo. El sistema 144 de datos a bordo puede identificar una nueva distancia relativa entre la nueva ubicación del robot 106 móvil y el punto 146 de referencia. La diferencia entre la distancia relativa inicial y la nueva distancia relativa puede calcularse entonces con un error mínimo y usarse para determinar la nueva ubicación del robot 106 móvil.The mobile robot 106 can then be moved to a new location as far as possible towards the direction of the desired location 140 without losing the reference point 146 within the field of view of the sensor system of the onboard data system 144. The on-board data system 144 can identify a new relative distance between the new location of the mobile robot 106 and the reference point 146. The difference between the initial relative distance and the new relative distance can then be calculated with minimal error and used to determine the new location of the mobile robot 106.

Si la nueva ubicación no es la ubicación 140 deseada dentro de las tolerancias seleccionadas, el robot 106 móvil se puede entonces mover más cerca de la ubicación 140 deseada utilizando el nuevo punto 147 de referencia. En particular, el sistema 144 de datos a bordo puede buscar el nuevo punto 147 de referencia en el número de puntos 142 de referencia, a la vez que está en la nueva ubicación. A la vez que está en la nueva ubicación, el sistema 144 de datos a bordo puede observar entonces el nuevo punto 147 de referencia el número, N, de veces seleccionado. De esta manera, el nuevo punto 147 de referencia puede considerarse “correlacionado” con el punto 146 de referencia en la nueva ubicación.If the new location is not the desired location 140 within the selected tolerances, the mobile robot 106 can then be moved closer to the desired location 140 using the new reference point 147. In particular, the onboard data system 144 can search the new reference point 147 in the number of reference points 142, while at the new location. While at the new location, the onboard data system 144 can then observe the new reference point 147 the number, N, of times selected. In this way, the new reference point 147 can be considered "correlated" with the reference point 146 at the new location.

Puede repetirse el proceso de moverse a otra ubicación lo más cerca posible a la ubicación 140 deseada y las operaciones realizadas a la vez que se encuentra en esta otra ubicación, como se describió anteriormente. Este tipo de movimiento y procesamiento puede repetirse hasta que el robot 106 móvil haya alcanzado la ubicación 140 deseada dentro de las tolerancias seleccionadas. Este tipo de proceso puede reducir el error general asociado con mover el robot 106 móvil a partir de la ubicación 138 inicial a la ubicación 140 deseada dentro de las tolerancias seleccionadas, en comparación con mover el robot 106 móvil sin usar el número de puntos 142 de referencia y observar cada punto de referencia a partir del número de puntos 142 de referencia un número, N, de veces seleccionado.The process of moving to another location as close as possible to the desired location 140 and operations performed while at this other location can be repeated, as described above. This type of movement and processing can be repeated until the mobile robot 106 has reached the desired location 140 within the selected tolerances. This type of process can reduce the overall error associated with moving the mobile robot 106 from the initial location 138 to the desired location 140 within selected tolerances, compared to moving the mobile robot 106 without using the number of points 142 of reference and observe each reference point from the number of reference points 142 a number, N, of times selected.

Con referencia ahora a la Figura 2, se representa una ilustración de la pluralidad de sistemas 128 de datos de la Figura 1 en la forma de un diagrama de bloques de acuerdo con una realización ilustrativa. Como se representa, la pluralidad de sistemas 128 de datos puede incluir el número de sistemas 134 de datos abordo y el número de sistemas 136 de datos fuera de borda.Referring now to Figure 2, an illustration of the plurality of data systems 128 of Figure 1 is depicted in the form of a block diagram in accordance with an illustrative embodiment. As represented, the plurality of data systems 128 may include the number of onboard data systems 134 and the number of outboard data systems 136.

En este ejemplo ilustrativo, la pluralidad de sistemas 128 de datos puede incluir la unidad 202 de medición inercial, el sistema 204 de odometría de color y profundidad, el sistema 206 de odometría de rueda, el sistema 208 de odometría visual, el sistema 210 de detección y medición de luz, el sistema 212 de posicionamiento global interior, el sistema 214 de captura de movimiento y el sistema 216 láser. La unidad 202 de medición inercial, el sistema 204 de odometría de color y profundidad, el sistema 206 de odometría de rueda, el sistema 208 de odometría visual y el sistema 210 de detección y medición de luz pueden ser parte del número de sistemas 134 de datos a bordo. El sistema 212 de posicionamiento global interior, el sistema 214 de captura de movimiento y el sistema 216 láser pueden ser parte del número de sistemas 136 de datos fuera de borda.In this illustrative example, the plurality of data systems 128 may include the inertial measurement unit 202, the color and depth odometry system 204, the wheel odometry system 206, the visual odometry system 208, the light sensing and measurement, indoor global positioning system 212, motion capture system 214, and laser system 216. The inertial measurement unit 202, the color and depth odometry system 204, the wheel odometry system 206, the visual odometry system 208, and the light detection and measurement system 210 can be part of the number of systems 134 of data on board. The inboard global positioning system 212, motion capture system 214, and laser system 216 may be part of the number of outboard data systems 136.

En este ejemplo ilustrativo, la unidad 202 de medición inercial puede medir el desplazamiento relativo del robot 106 móvil dentro del entorno 100 detectando la velocidad, la orientación y la aceleración. La unidad 202 de medición inercial puede generar el flujo 203 de datos que puede enviarse al controlador 114 como uno de los flujos 127 de datos. Dependiendo de la manera en la cual se implemente la unidad 202 de medición inercial, el flujo 203 de datos puede considerarse uno del número del primer tipo de flujos 132 de datos o uno del número del segundo tipo de flujos 130 de datos.In this illustrative example, the inertial measurement unit 202 can measure the relative displacement of the mobile robot 106 within the environment 100 by sensing speed, orientation, and acceleration. The inertial measurement unit 202 may generate the data stream 203 which can be sent to the controller 114 as one of the data streams 127. Depending on the way in which the inertial measurement unit 202 is implemented, the data stream 203 may be considered one of the number of the first type of data streams 132 or one of the number of the second type of data streams 130.

El sistema 204 de odometría de color y profundidad puede usarse para proporcionar datos de color y datos de profundidad para el entorno 100. El sistema 206 de odometría de rueda puede usarse para medir el desplazamiento relativo del robot 106 móvil dentro del entorno 100 cuando el sistema 110 de movimiento en la Figura 1 incluye ruedas. El sistema 208 de odometría visual puede usar cámaras para estimar el desplazamiento relativo del robot 106 móvil dentro del entorno 100. El sistema 210 de detección y medición de luz puede generar escaneos láser del entorno 100. The color and depth odometry system 204 can be used to provide color data and depth data for the environment 100. The wheel odometry system 206 can be used to measure the relative displacement of the mobile robot 106 within the environment 100 when the system 110 of motion in Figure 1 includes wheels. Visual odometry system 208 may use cameras to estimate the relative displacement of mobile robot 106 within environment 100. Light sensing and measurement system 210 may generate laser scans of environment 100.

Cada uno del sistema 204 de odometría de color y profundidad, el sistema 206 de odometría de rueda, el sistema 208 de odometría visual y el sistema 210 de detección y medición de luz pueden ubicarse completamente a bordo del robot 106 móvil. En un ejemplo ilustrativo, el sistema 204 de odometría de color y profundidad, el sistema 206 de odometría de rueda, el sistema 208 de odometría visual y el sistema 210 de detección y medición de luz pueden generar el flujo 205 de datos, el flujo 207 de datos, el flujo 209 de datos y el flujo 211 de datos, respectivamente, que pueden enviarse al controlador 114 como parte de los flujos 127 de datos. En este ejemplo ilustrativo, cada uno del flujo 205 de datos, el flujo 207 de datos, el flujo 209 de datos y el flujo 211 de datos puede incluirse en el número del primer tipo de flujos 132 de datos o en el número del segundo tipo de flujos 130 de datos, dependiendo de implementación. En este ejemplo ilustrativo, cada uno del flujo 205 de datos, el flujo 207 de datos, el flujo 209 de datos y el flujo 211 de datos pueden incluirse en el número del segundo tipo de flujos 130 de datos.Each of the color and depth odometry system 204, the wheel odometry system 206, the visual odometry system 208, and the light detection and measurement system 210 can be fully located on board the mobile robot 106. In an illustrative example, the color and depth odometry system 204, the wheel odometry system 206, the visual odometry system 208, and the light detection and measurement system 210 can generate data stream 205, stream 207 data, data stream 209 and data stream 211, respectively, which may be sent to controller 114 as part of data streams 127. In this illustrative example, each of data stream 205, data stream 207, data stream 209, and data stream 211 can be included in the number of the first type of data stream 132 or the number of the second type of data streams 130, depending on implementation. In this illustrative example, each of data stream 205, data stream 207, data stream 209, and data stream 211 can be included in the number of the second type of data streams 130.

En otros ejemplos ilustrativos, uno o más del flujo 205 de datos, el flujo 207 de datos, el flujo 209 de datos y el flujo 211 de datos generados por el sistema 204 de odometría de color y profundidad, el sistema 206 de odometría de rueda, el sistema 208 de odometría visual y el sistema 210 de detección y medición de luz, respectivamente, pueden ser enviados al localizador y al mapeador 218. El localizador y mapeador 218 puede implementarse dentro del controlador 114 en la Figura 1 o por separado del controlador 114, dependiendo de la implementación.In other illustrative examples, one or more of data stream 205, data stream 207, data stream 209, and data stream 211 generated by color and depth odometry system 204, wheel odometry system 206 , the visual odometry system 208 and the light detection and measurement system 210, respectively, can be sent to the locator and mapper 218. The locator and mapper 218 can be implemented within the controller 114 in Figure 1 or separately from the controller 114, depending on the implementation.

Además, el localizador y mapeador 218 pueden tomar la forma del localizador y mapeador 220 bidimensional o el localizador y mapeador 222 tridimensional, dependiendo de la implementación. En algunos casos, el sistema 204 de odometría de color y profundidad, el sistema 206 de odometría de rueda, el sistema 208 de odometría visual, el sistema 210 de detección y medición de luz, y el localizador y mapeador 218 pueden formar juntos el sistema 224 de localización y mapeo. El sistema 224 de localización y mapeo puede considerarse un sistema de datos a bordo en el número de sistemas 134 de datos a bordo.In addition, the locator and mapper 218 may take the form of the two-dimensional locator and mapper 220 or the three-dimensional locator and mapper 222, depending on the implementation. In some cases, the color and depth odometry system 204, the wheel odometry system 206, the visual odometry system 208, the light detection and measurement system 210, and the locator and mapper 218 may together form the system. 224 location and mapping. The location and mapping system 224 can be considered an on-board data system in the number of on-board data systems 134.

El localizador y mapeador 218 pueden configurarse para estimar simultáneamente un mapa métrico del entorno 100 y una estimación de una pose del robot 106 móvil dentro de este mapa métrico con base en todos los flujos de datos recibidos en el localizador y el mapeador 218. El mapa métrico puede ser bidimensional o tridimensional, dependiendo de la implementación. En un ejemplo ilustrativo, el localizador y mapeador 218 pueden denominarse un sistema de localización y mapeo simultáneo (SLAM). En estos ejemplos, la estimación del mapa métrico del entorno 100 y la estimación de pose del robot 106 móvil dentro de este mapa métrico pueden enviarse en la forma de flujo 213 de datos al controlador 114 en la Figura 1 como uno de los flujos 127 de datos. El flujo 213 de datos puede ser uno del número del primer tipo de flujos 132 de datos o uno del número del segundo tipo de flujos 130 de datos.The locator and mapper 218 can be configured to simultaneously estimate a metric map of the environment 100 and an estimate of a pose of the mobile robot 106 within this metric map based on all data streams received at the locator and the mapper 218. The map Metric can be two-dimensional or three-dimensional, depending on the implementation. In an illustrative example, locator and mapper 218 may be referred to as a simultaneous location and mapping (SLAM) system. In these examples, the environment 100 metric map estimate and the mobile robot 106 pose estimate within this metric map can be sent in the form of data stream 213 to controller 114 in Figure 1 as one of the stream 127 of data. The data stream 213 may be one of the number of the first type of data streams 132 or one of the number of the second type of data streams 130.

En este ejemplo ilustrativo, el sistema 212 de posicionamiento global interior incluye el número de dispositivos 226 de sensor, el número de transmisores 228 y el servidor 230. El número de transmisores 228 pueden ubicarse fuera de borda, a la vez que el número de dispositivos 226 de sensor pueden ubicarse a bordo del robot 106 móvil.In this illustrative example, the indoor global positioning system 212 includes the number of sensor devices 226, the number of transmitters 228, and the server 230. The number of transmitters 228 can be located outboard, as well as the number of devices Sensor 226 can be located on board mobile robot 106.

El número de transmisores 228 pueden configurarse para generar el número de señales 229 luminosas. El número de señales 229 luminosas puede incluir al menos una de una señal láser, una señal infrarroja o algún otro tipo de señal luminosa. El número de dispositivos 226 sensores puede ser pasivo y usarse para detectar el número de señales 229 luminosas transmitidas a partir del número de transmisores 228. El número de dispositivos 226 sensores puede enviar datos 231 luminosos sobre el número detectado de señales 229 luminosas al servidor 230. The number of transmitters 228 can be configured to generate the number of light signals 229. The number of light signals 229 may include at least one of a laser signal, an infrared signal, or some other type of light signal. The number of sensor devices 226 can be passive and used to detect the number of light signals 229 transmitted from the number of transmitters 228. The number of sensor devices 226 can send data 231 about the detected number of light signals 229 to the server 230 .

El servidor 230 puede configurarse para usar estos datos para estimar la pose del robot 106 móvil dentro del entorno 100 a lo largo del tiempo. Las estimaciones generadas a lo largo del tiempo pueden formar el flujo 233 de datos que puede enviarse al controlador 114 como uno de los flujos 127 de datos. El flujo 233 de datos puede ser uno del número del primer tipo de flujos 132 de datos o uno del número del segundo tipo de flujos 130 de datos, dependiendo de la implementación. El servidor 230 puede estar ubicado fuera de borda. De esta manera, el servidor 230 puede ser una fuente de datos fuera de borda la cual hace que el sistema 212 de posicionamiento global interior sea uno del número de sistemas 136 de datos fuera de borda.Server 230 can be configured to use this data to estimate the pose of mobile robot 106 within environment 100 over time. Estimates generated over time can form data stream 233 that can be sent to controller 114 as one of data streams 127. The data stream 233 may be one of the number of the first type of data streams 132 or one of the number of the second type of data streams 130, depending on the implementation. Server 230 may be located outboard. In this manner, the server 230 can be an outboard data source which makes the inboard global positioning system 212 one of the number of outboard data systems 136.

El sistema 214 de captura de movimiento puede incluir el objetivo 232 de captura de movimiento, el sistema 234 de captura de imágenes y el servidor 236 de captura de movimiento. El objetivo 232 de captura de movimiento puede ser pasivo y estar ubicado a bordo del robot 106 móvil. El sistema 234 de captura de imágenes puede ubicarse fuera de borda dentro del entorno 100 en la Figura 1 y usarse para generar datos 235 de captura de movimiento para y rastrear el objetivo 232 de captura de movimiento. Los datos 235 de captura de movimiento generados por el sistema 214 de captura de movimiento pueden enviarse al servidor 236 de captura de movimiento para su posterior procesamiento. The motion capture system 214 may include the motion capture target 232, the image capture system 234, and the motion capture server 236. The motion capture target 232 may be passive and located aboard the mobile robot 106. Image capture system 234 can be located outboard within environment 100 in Figure 1 and used to generate motion capture data 235 for and track motion capture target 232. The motion capture data 235 generated by the motion capture system 214 can be sent to the motion capture server 236 for further processing.

El servidor 236 de captura de movimiento puede entonces enviar datos 235 de captura de movimiento en la forma de flujo 237 de datos al controlador 114 como uno de los flujos 127 de datos. En algunos casos, el servidor 236 de captura de movimiento puede procesar datos 235 de captura de movimiento para formar el flujo 237 de datos. El flujo 237 de datos puede ser uno del número del primer tipo de flujos 132 de datos o uno del número del segundo tipo de flujos 130 de datos, dependiendo de la implementación. El servidor 236 de captura de movimiento puede ubicarse fuera de borda dentro del entorno 100. De esta manera, el servidor 236 de captura de movimiento puede considerarse una fuente de datos fuera de borda, lo cual hace que el sistema 214 de captura de movimiento sea uno del número de sistemas 136 de datos fuera de borda.Motion capture server 236 may then send motion capture data 235 in the form of data stream 237 to controller 114 as one of data streams 127. In some cases, the motion capture server 236 may process motion capture data 235 to form the data stream 237. The data stream 237 may be one of the number of the first type of data streams 132 or one of the number of the second type of data streams 130, depending on the implementation. The motion capture server 236 can be located outboard within the environment 100. In this way, the motion capture server 236 can be considered an outboard data source, which makes the motion capture system 214 one of number of outboard data systems 136.

Como se muestra, el sistema 216 láser puede incluir el objetivo 238 láser y el sensor 240 láser. El objetivo 238 láser puede ser pasivo y estar ubicado a bordo del robot 106 móvil. El sensor 240 láser puede ubicarse fuera de borda dentro del entorno 100 y usarse para rastrear el movimiento del objetivo 238 láser. El sensor 240 láser puede medir la posición del objetivo 238 láser y procesar estos datos para generar una estimación de una pose del robot 106 móvil, la cual puede formar el flujo 241 de datos a lo largo del tiempo. El flujo 241 de datos puede ser uno del número del primer tipo de flujos 132 de datos o uno del número del segundo tipo de flujos 130 de datos, dependiendo de la implementación. El sensor 240 láser puede enviar el flujo 241 de datos al controlador 114 como uno de los flujos 127 de datos.As shown, laser system 216 may include laser target 238 and laser sensor 240. Laser target 238 can be passive and located on board mobile robot 106. Laser sensor 240 can be located outboard within environment 100 and used to track the movement of laser target 238. The laser sensor 240 can measure the position of the laser target 238 and process this data to generate an estimate of a pose of the mobile robot 106, which can form the data stream 241 over time. The data stream 241 may be one of the number of the first type of data streams 132 or one of the number of the second type of data streams 130, depending on the implementation. Laser sensor 240 may send data stream 241 to controller 114 as one of data streams 127.

De esta manera, se pueden usar diversos tipos de sistemas y dispositivos de sensor para generar flujos 127 de datos. El número del segundo tipo de flujos 130 de datos en los flujos 127 de datos puede procesarse por el modificador 120 en la Figura 1 para formar el número de flujos 129 de datos modificados. En conjunto, el número de flujos 129 de datos modificados en la Figura 1 y el número del primer tipo de flujos 132 de datos pueden formar una pluralidad de flujos 126 de datos en la Figura 1 utilizados por el estimador 118 de pose para generar una estimación 122 de pose. In this manner, various types of sensor systems and devices can be used to generate streams 127 of data. The number of the second type of data streams 130 in the data streams 127 may be processed by the modifier 120 in Figure 1 to form the number of modified data streams 129. Together, the number of modified data streams 129 in Figure 1 and the number of the first type of data streams 132 can form a plurality of data streams 126 in Figure 1 used by pose estimator 118 to generate an estimate 122 pose.

Con referencia ahora a la Figura 3, se representa una ilustración de los componentes de la pluralidad de sistemas 128 de datos que se encuentran a bordo y los componentes de la pluralidad de sistemas 128 de datos que se encuentran fuera de borda como se describe en la Figura 2 de acuerdo con una realización ilustrativa. Como se muestra, algunos de los componentes de la pluralidad de sistemas 128 de datos de la Figura 2 están ubicados a bordo 300, a la vez que otros componentes de la pluralidad de sistemas 128 de datos de la Figura 2 están ubicados fuera 302 de borda. En la Figura 3, a bordo 300 significa a bordo del robot 106 móvil en la Figura 1 y fuera 302 de borda significa fuera de borda con respecto al robot 106 móvil en la Figura 1.Referring now to Figure 3, an illustration is depicted of the components of the plurality of onboard data systems 128 and the components of the plurality of data systems 128 that are outboard as described in the Figure 2 according to an illustrative embodiment. As shown, some of the components of the plurality of data systems 128 of Figure 2 are located onboard 300, while other components of the plurality of data systems 128 of Figure 2 are located offboard 302. . In Figure 3, onboard 300 means aboard mobile robot 106 in Figure 1 and outboard 302 means outboard with respect to mobile robot 106 in Figure 1.

En particular, la unidad 202 de medición inercial, el sistema 204 de odometría de color y profundidad, el sistema 206 de odometría de rueda, el sistema 208 de odometría visual, el sistema 210 de detección y medición de luz, y el localizador y mapeador 218 de la Figura 2 se encuentran a bordo 300. Además, el número de dispositivos 226 de sensor, el objetivo 232 de captura de movimiento y el objetivo 238 láser de la Figura 2 también se encuentran a bordo 300. El número de transmisores 228, el servidor 230, el sistema 234 de captura de imágenes, el servidor 236 de captura de movimiento y el sensor 240 láser pueden ubicarse fuera de borda.In particular, the inertial measurement unit 202, the color and depth odometry system 204, the wheel odometry system 206, the visual odometry system 208, the light detection and measurement system 210, and the locator and mapper. 218 of Figure 2 are on board 300. In addition, the number of sensor devices 226, the motion capture target 232 and the laser target 238 of Figure 2 are also on board 300. The number of transmitters 228, server 230, image capture system 234, motion capture server 236, and laser sensor 240 can be located outboard.

En un ejemplo ilustrativo, el sistema 204 de odometría de color y profundidad, el sistema 206 de odometría de rueda, el sistema 208 de odometría visual y el sistema 210 de detección y medición de luz envían el flujo 205 de datos, el flujo 207 de datos, el flujo 209 de datos y el flujo 211 de datos, respectivamente, al localizador y mapeador 218. El localizador y mapeador 218 pueden usar entonces estos flujos de datos para formar el flujo 213 de datos y enviar el flujo 213 de datos al controlador 114 de la Figura 1, el cual se encuentra también a bordo 300. La unidad 202 de medición inercial puede enviar el flujo 203 de datos directamente al controlador 114. En este ejemplo ilustrativo, estos flujos de datos pueden enviarse al controlador 114 utilizando cualquier número de enlaces de comunicaciones por cable o inalámbricas.In an illustrative example, the color and depth odometry system 204, the wheel odometry system 206, the visual odometry system 208, and the light detection and measurement system 210 send data stream 205, data stream 207 data, data stream 209 and data stream 211, respectively, to locator and mapper 218. Locator and mapper 218 can then use these data streams to form data stream 213 and send data stream 213 to the controller 114 of Figure 1, which is also on board 300. Inertial measurement unit 202 can send data stream 203 directly to controller 114. In this illustrative example, these data streams can be sent to controller 114 using any number of wired or wireless communications links.

Además, el servidor 230, el servidor 236 de captura de movimiento y el sensor 240 láser pueden enviar el flujo 233 de datos, el flujo 237 de datos y el flujo 241 de datos al controlador 114. En este ejemplo ilustrativo, estos flujos de datos pueden enviarse al controlador 114 de manera inalámbrica. Additionally, server 230, motion capture server 236, and laser sensor 240 can send data stream 233, data stream 237, and data stream 241 to controller 114. In this illustrative example, these data streams they can be sent to controller 114 wirelessly.

Un flujo de datos que se envía al controlador 114 puede ser recibido por el estimador 118 de pose si el flujo de datos es un primer tipo de flujo de datos en el número del primer tipo de flujos 132 de datos en la Figura 1 o el modificador 120 si el flujo de datos es un segundo tipo de flujo de datos en el número del segundo tipo de flujo 130 de datos en la Figura 1.A data stream that is sent to controller 114 may be received by pose estimator 118 if the data stream is a first type of data stream in the number of the first type of data streams 132 in Figure 1 or the modifier 120 if the data stream is a second type of data stream in the number of the second type of data stream 130 in Figure 1.

Las ilustraciones del entorno 100 en la Figura 1, la pluralidad de sistemas 128 de datos en la Figura 2 y los componentes ubicados a bordo 300 y fuera 302 de borda en la Figura 3 no implican limitaciones físicas o arquitectónicas a la manera en la cual se puede implementar una realización ilustrativa. Se pueden usar otros componentes además o en lugar de los que se ilustran. Algunos componentes pueden ser opcionales. Además, los bloques se presentan para ilustrar algunos componentes funcionales. Uno o más de estos bloques se pueden combinar, dividir o combinar y dividir en diferentes bloques cuando se implementan en una realización ilustrativa. The illustrations of the environment 100 in Figure 1, the plurality of data systems 128 in Figure 2, and the components located onboard 300 and offboard 302 in Figure 3 do not imply physical or architectural limitations on the manner in which you can implement an illustrative embodiment. Other components may be used in addition to or in place of those illustrated. Some components may be optional. In addition, the blocks are presented to illustrate some functional components. One or more of these blocks can be combined, divided or combined and divided into different blocks when implemented in an illustrative embodiment.

Con referencia ahora a la Figura 4, se representa una ilustración de un entorno de fabricación de acuerdo con una realización ilustrativa. En este ejemplo ilustrativo, el entorno 400 de fabricación puede ser un ejemplo de una implementación para el entorno 101 de fabricación en la Figura 1. Como se muestra, el ala 402 de la aeronave puede fabricarse dentro del entorno 400 de fabricación. El ala 402 de la aeronave puede ser un ejemplo de una implementación para el objeto 103 en la Figura 1.Referring now to Figure 4, an illustration of a manufacturing environment in accordance with an illustrative embodiment is depicted. In this illustrative example, the manufacturing environment 400 may be an example of an implementation for the manufacturing environment 101 in Figure 1. As shown, the aircraft wing 402 can be manufactured within the manufacturing environment 400. Aircraft wing 402 may be an example of an implementation for object 103 in Figure 1.

Los robots 404 móviles pueden usarse para realizar las operaciones necesarias para fabricar el ala 402 de la aeronave. Los robots 404 móviles pueden ser un ejemplo de una implementación para el número de plataformas 102 móviles en la Figura 1. En este ejemplo ilustrativo, los robots 404 móviles pueden ser configurados para moverse en el piso 406 del entorno 400 de fabricación. Cada uno de los robots 404 móviles puede ser capaz de identificar su posición dentro y navegar a través del entorno 400 de fabricación.Mobile robots 404 can be used to perform the operations necessary to fabricate the aircraft wing 402. The mobile robots 404 can be an example of an implementation for the number of mobile platforms 102 in Figure 1. In this illustrative example, the mobile robots 404 can be configured to move on the floor 406 of the manufacturing environment 400. Each of the mobile robots 404 may be able to identify its position within and navigate through the manufacturing environment 400.

Con referencia ahora a la Figura 5, se representa una ilustración de un robot móvil de acuerdo con una realización ilustrativa. En este ejemplo ilustrativo, el robot 500 móvil puede ser un ejemplo de una implementación para el robot 106 móvil en la Figura 1. Además, el robot 500 móvil puede ser un ejemplo de una manera en la cual puede implementarse cada uno de los robots 404 móviles en la Figura 4.Referring now to Figure 5, an illustration of a mobile robot in accordance with an illustrative embodiment is depicted. In this illustrative example, mobile robot 500 may be an example of an implementation for mobile robot 106 in Figure 1. Additionally, mobile robot 500 may be an example of a way in which each of the robots 404 can be implemented. mobiles in Figure 4.

Como se muestra, el robot 500 móvil puede incluir la base 502, el sistema 504 de movimiento y una pluralidad de dispositivos 506. En este ejemplo ilustrativo, la pluralidad de dispositivos 506 puede incluir un sistema 508 de detección y medición de luz, un sistema 510 de odometría de color y profundidad, y objetivos 512. El sistema 508 de detección y medición de luz puede ser un ejemplo de una implementación para el sistema 210 de detección y medición de luz en la Figura 2. El sistema 510 de odometría de color y profundidad puede ser un ejemplo de una implementación para el sistema 204 de odometría de color y profundidad en la Figura 2 Los objetivos 512 pueden ser un ejemplo de una implementación para el objetivo 232 de captura de movimiento y el objetivo 238 láser en la Figura 2.As shown, the mobile robot 500 may include the base 502, the motion system 504, and a plurality of devices 506. In this illustrative example, the plurality of devices 506 may include a light sensing and measuring system 508, a 510 for color and depth odometry, and targets 512. The light detection and measurement system 508 may be an example of an implementation for the light detection and measurement system 210 in Figure 2. The color odometry system 510 and depth can be an example of an implementation for the color and depth odometry system 204 in Figure 2 Targets 512 can be an example of an implementation for the motion capture target 232 and laser target 238 in Figure 2 .

Las ilustraciones de las Figuras 4 a 5 no pretenden implicar limitaciones físicas o arquitectónicas a la manera en la cual se puede implementar una realización ilustrativa. Se pueden usar otros componentes además o en lugar de los que se ilustran. Algunos componentes pueden ser opcionales.The illustrations of Figures 4 to 5 are not intended to imply physical or architectural limitations on the manner in which an illustrative embodiment may be implemented. Other components may be used in addition to or in place of those illustrated. Some components may be optional.

Los diferentes componentes que se muestran en las Figuras 4 a 5 pueden ser ejemplos ilustrativos de cómo los componentes que se muestran en forma de bloque en las Figuras 1 a 3 pueden implementarse como estructuras físicas. Además, algunos de los componentes en las Figuras 4 a 5 pueden combinarse con componentes en las Figuras 1 a 3, usarse con componentes en las Figuras 1 a 3, o una combinación de los dos.The different components shown in Figures 4-5 may be illustrative examples of how the components shown in block form in Figures 1-3 can be implemented as physical structures. Also, some of the components in Figures 4-5 can be combined with components in Figures 1-3, used with components in Figures 1-3, or a combination of the two.

Con referencia ahora a la Figura 6, se muestra una ilustración de un proceso para generar una estimación de pose para una plataforma móvil en un entorno en la forma de un diagrama de flujo de acuerdo con una realización ilustrativa. El proceso que se ilustra en la Figura 6 puede implementarse para gestionar el movimiento del número de plataformas 102 móviles en la Figura 1.Referring now to Figure 6, an illustration of a process for generating a pose estimate for a mobile platform in an environment is shown in the form of a flow chart in accordance with an illustrative embodiment. The process illustrated in Figure 6 can be implemented to manage the movement of the number of mobile platforms 102 in Figure 1.

El proceso puede comenzar generando una pluralidad de flujos 126 de datos en la cual la pluralidad de flujos 126 de datos incluye el número del primer tipo de flujos 132 de datos y el número del segundo tipo de flujos 130 de datos (operación 600). A continuación, la distribución 137 de probabilidad se puede aplicar a cada uno del número del segundo tipo de flujos 130 de datos para formar el número de flujos 129 de datos modificados (operación 602). The process may begin by generating a plurality of data streams 126 in which the plurality of data streams 126 includes the number of the first type of data streams 132 and the number of the second type of data streams 130 (step 600). The probability distribution 137 can then be applied to each of the number of the second type of data streams 130 to form the number of modified data streams 129 (step 602).

Después de eso, el número del primer tipo de flujos 132 de datos y el número de flujos 129 de datos modificados pueden fusionarse para generar una estimación 122 de pose para la plataforma 104 móvil con respecto al entorno 100 alrededor de la plataforma 104 móvil con un nivel deseado de precisión (operación 604), con el proceso que termina después. En la operación 604, la fusión puede significar usar técnicas de estimación Bayesianas para generar una estimación 122 de pose.After that, the number of the first type of data streams 132 and the number of modified data streams 129 can be merged to generate a pose estimate 122 for the mobile platform 104 relative to the environment 100 around the mobile platform 104 with a desired level of precision (step 604), with the process ending afterwards. In step 604, merging may mean using Bayesian estimation techniques to generate a pose estimate 122.

Con referencia ahora a la Figura 7, se muestra una ilustración de un proceso para guiar un robot móvil dentro de un entorno de fabricación en la forma de un diagrama de flujo de acuerdo con una realización ilustrativa. El proceso que se ilustra en la Figura 7 puede implementarse para gestionar el movimiento del robot 106 móvil dentro del entorno 101 de fabricación en la Figura 1. En particular, el proceso en la Figura 7 puede usarse para reducir el error al mover el robot 106 móvil a lo largo de la ruta 117 en el entorno 100. Referring now to Figure 7, an illustration of a process for guiding a mobile robot within a manufacturing environment is shown in the form of a flow chart in accordance with an illustrative embodiment. The process illustrated in Figure 7 can be implemented to manage the movement of the mobile robot 106 within the manufacturing environment 101 in Figure 1. In particular, the process in Figure 7 can be used to reduce error when moving the robot 106 mobile along Route 117 in environment 100.

El proceso puede comenzar identificando la ubicación 140 deseada a la cual se debe mover el robot 106 móvil (operación 700). A continuación, se usa un sistema de sensor del sistema 144 de datos a bordo para el robot 106 móvil para buscar el punto 146 de referencia en el entorno 100, a la vez que el robot 106 móvil está en una ubicación actual (operación 702). A continuación, se observa el punto de referencia actual en el entorno 100 un número seleccionado de veces usando el sistema de sensor del sistema 144 de datos a bordo con el robot 106 móvil en la ubicación actual (operación 704). A continuación, el sistema 144 de datos a bordo identifica una distancia relativa inicial entre la ubicación actual del robot 106 móvil y el punto de referencia actual (operación 706). En la operación 706, esta identificación puede ser una estimación.The process can begin by identifying the desired location 140 to which the mobile robot 106 should move (step 700). Next, a sensor system of the on-board data system 144 for the mobile robot 106 is used to search for the reference point 146 in the environment 100, while the mobile robot 106 is at a current location (step 702) . Next, the current reference point in environment 100 is observed a selected number of times using the sensor system of the onboard data system 144 with the mobile robot 106 at the current location (step 704). Next, the onboard data system 144 identifies an initial relative distance between the current location of the mobile robot 106 and the current reference point (step 706). At step 706, this identification can be an estimate.

Posteriormente, el robot 106 móvil se mueve a una nueva ubicación lo más lejos posible hacia la dirección de la ubicación 140 deseada para el robot 106 móvil sin perder el punto de referencia actual en el campo de visión del sistema de sensor del sistema 144 de datos a bordo (operación 708). El punto de referencia actual se vuelve a observar un número seleccionado de veces usando el sistema de sensor del sistema 144 de datos a bordo, a la vez que el robot 106 móvil está en la nueva ubicación (operación 710). El sistema 144 de datos a bordo identifica una nueva distancia relativa entre la nueva ubicación del robot 106 móvil y el punto de referencia actual (operación 712). En la operación 712, esta identificación puede ser una estimación.Subsequently, the mobile robot 106 moves to a new location as far as possible towards the direction of the desired location 140 for the mobile robot 106 without losing the current reference point in the field of view of the sensor system of the data system 144. on board (operation 708). The current set point is re-observed a selected number of times using the on-board data system 144 sensor system, while the mobile robot 106 is at the new location (step 710). The on-board data system 144 identifies a new relative distance between the new location of the mobile robot 106 and the current reference point (step 712). In step 712, this identification can be an estimate.

El sistema 144 de datos a bordo calcula la diferencia entre la distancia relativa inicial y la nueva distancia relativa (operación 714). Luego se identifica una estimación de la nueva ubicación del robot 106 móvil utilizando la diferencia (operación 716). Luego se determina si la nueva ubicación está en la ubicación 140 deseada dentro de las tolerancias seleccionadas (operación 718). Si la nueva ubicación está en la ubicación 140 deseada dentro de las tolerancias seleccionadas, el proceso finaliza.The onboard data system 144 calculates the difference between the initial relative distance and the new relative distance (step 714). An estimate of the new location of the mobile robot 106 is then identified using the difference (step 716). It is then determined if the new location is at the desired location 140 within the selected tolerances (step 718). If the new location is at the desired location 140 within the selected tolerances, the process ends.

De lo contrario, el sistema 144 de datos a bordo busca un nuevo punto 147 de referencia, a la vez que está en la nueva ubicación (operación 720). A la vez que está en la nueva ubicación, el sistema 144 de datos a bordo observa entonces el nuevo punto 147 de referencia el número seleccionado de veces usando el sistema de sensor del sistema 144 de datos a bordo (operación 722). El sistema 144 de datos a bordo identifica entonces una distancia relativa entre la nueva ubicación del robot 106 móvil y el nuevo punto 147 de referencia (operación 722). En la operación 722, esta identificación puede ser una estimación. De esta manera, el nuevo punto 147 de referencia puede considerarse “correlacionado” con el punto 146 de referencia en la nueva ubicación. Luego, el proceso vuelve a identificar el nuevo punto 147 de referencia como el punto de referencia actual, la nueva ubicación como la ubicación actual y la distancia relativa como la distancia relativa inicial (operación 724), y el proceso vuelve a la operación 708 como se describió anteriormente.Otherwise, the onboard data system 144 searches for a new reference point 147, while at the new location (step 720). While at the new location, the onboard data system 144 then observes the new reference point 147 the selected number of times using the onboard data system 144 sensor system (step 722). The on-board data system 144 then identifies a relative distance between the new location of the mobile robot 106 and the new reference point 147 (step 722). In step 722, this identification can be an estimate. In this way, the new reference point 147 can be considered "correlated" with the reference point 146 at the new location. The process then re-identifies the new waypoint 147 as the current waypoint, the new location as the current location, and the relative distance as the initial relative distance (step 724), and the process returns to step 708 as described above.

Volviendo ahora a la Figura 8, se muestra una ilustración de un sistema de procesamiento de datos en la forma de un diagrama de bloques de acuerdo con una realización ilustrativa. El sistema 800 de procesamiento de datos puede usarse para implementar el controlador 114 en la Figura 1. Como se muestra, el sistema 800 de procesamiento de datos incluye el marco 802 de comunicaciones, el cual proporciona comunicaciones entre la unidad 804 de procesador, los dispositivos 806 de almacenamiento, la unidad 808 de comunicaciones, la unidad 810 de entrada/salida, y la pantalla 812. En algunos casos, el marco 802 de comunicaciones puede implementarse como un sistema de bus. Turning now to Figure 8, an illustration of a data processing system is shown in the form of a block diagram in accordance with an illustrative embodiment. The data processing system 800 can be used to implement the controller 114 in Figure 1. As shown, the data processing system 800 includes the communications frame 802, which provides communications between the processor unit 804, the devices Storage 806, communication unit 808, input / output unit 810, and display 812. In some cases, communication frame 802 may be implemented as a bus system.

La unidad 804 de procesador está configurada para ejecutar instrucciones para que el software realice un número de operaciones. La unidad 804 de procesador puede comprender un número de procesadores, un núcleo multiprocesador y/o algún otro tipo de procesador, dependiendo de la implementación. En algunos casos, la unidad 804 de procesador puede tomar la forma de una unidad de hardware, tal como un sistema de circuito, un circuito integrado de aplicación específica (ASIC), un dispositivo lógico programable o algún otro tipo adecuado de unidad de hardware.The processor unit 804 is configured to execute instructions for the software to perform a number of operations. Processor unit 804 may comprise a number of processors, a multiprocessor core, and / or some other type of processor, depending on the implementation. In some cases, the processor unit 804 may take the form of a hardware unit, such as a circuit system, an application-specific integrated circuit (ASIC), a programmable logic device, or some other suitable type of hardware unit.

Las instrucciones para el sistema operativo, aplicaciones y/o programas ejecutados por la unidad 804 de procesador pueden ubicarse en dispositivos 806 de almacenamiento. Los dispositivos 806 de almacenamiento pueden estar en comunicación con la unidad 804 de procesador a través del marco 802 de comunicaciones. Como se usa en este documento, un dispositivo de almacenamiento, también conocido como dispositivo de almacenamiento legible por ordenador, es cualquier pieza de hardware capaz de almacenar información de manera temporal y/o permanente. Esta información puede incluir, pero no se limita a, datos, código de programa y/u otra información.Instructions for the operating system, applications, and / or programs run by the processor unit 804 may be located on storage devices 806. Storage devices 806 may be in communication with processor unit 804 via communication frame 802. As used herein, a storage device, also known as a computer-readable storage device, is any piece of hardware capable of storing information temporarily and / or permanently. This information may include, but is not limited to, data, program code, and / or other information.

La memoria 814 y el almacenamiento 816 persistente son ejemplos de dispositivos 806 de almacenamiento. La memoria 814 puede tomar la forma de, por ejemplo, una memoria de acceso aleatorio o algún tipo de dispositivo de almacenamiento volátil o no volátil. El almacenamiento 816 persistente puede comprender cualquier número de componentes o dispositivos. Por ejemplo, el almacenamiento 816 persistente puede comprender un disco duro, una memoria flash, un disco óptico regrabable, una cinta magnética regrabable o alguna combinación de los anteriores. Los medios utilizados por el almacenamiento 816 persistente pueden o no ser desmontables.Memory 814 and persistent storage 816 are examples of storage devices 806. Memory 814 can take the form of, for example, random access memory or some type of volatile or non-volatile storage device. Persistent storage 816 can comprise any number of components or devices. For example, persistent storage 816 may comprise a hard disk, flash memory, rewritable optical disk, rewritable magnetic tape, or some combination of the above. The media used by persistent storage 816 may or may not be removable.

La unidad 808 de comunicaciones permite que el sistema 800 de procesamiento de datos se comunique con otros sistemas y/o dispositivos de procesamiento de datos. La unidad 808 de comunicaciones puede proporcionar comunicaciones utilizando enlaces de comunicaciones físicas y/o inalámbricas.Communication unit 808 allows data processing system 800 to communicate with other data processing systems and / or devices. Communication unit 808 can provide communications using physical and / or wireless communication links.

La unidad 810 de entrada/salida permite que la entrada se reciba y la salida se envíe a otros dispositivos conectados al sistema 800 de procesamiento de datos. Por ejemplo, la unidad 810 de entrada/salida puede permitir que la entrada del usuario se reciba a través de un teclado, un ratón, y/o algún otro tipo de dispositivo de entrada. Como otro ejemplo, la unidad 810 de entrada/salida puede permitir que la salida se envíe a una impresora conectada al sistema 800 de procesamiento de datos.The input / output unit 810 allows input to be received and output to be sent to other devices connected to the data processing system 800. For example, the input / output unit 810 may allow the input input is received via a keyboard, mouse, and / or some other type of input device. As another example, the input / output unit 810 may allow the output to be sent to a printer connected to the data processing system 800.

La pantalla 812 está configurada para mostrar información a un usuario. La pantalla 812 puede comprender, por ejemplo, sin limitación, un monitor, una pantalla táctil, una pantalla láser, una pantalla holográfica, un dispositivo de pantalla virtual y/o algún otro tipo de dispositivo de pantalla.Display 812 is configured to display information to a user. The screen 812 may comprise, for example, without limitation, a monitor, a touch screen, a laser screen, a holographic screen, a virtual screen device, and / or some other type of screen device.

En este ejemplo ilustrativo, los procesos de las diferentes realizaciones ilustrativas pueden realizarse mediante la unidad 804 de procesador usando instrucciones implementadas por ordenador. Estas instrucciones pueden denominarse código de programa, código de programa utilizable por ordenador o código de programa legible por ordenador y pueden ser leídos y ejecutados por uno o más procesadores en la unidad 804 de procesador.In this illustrative example, the processes of the different illustrative embodiments can be performed by processor unit 804 using computer-implemented instructions. These instructions may be referred to as program code, computer-usable program code, or computer-readable program code, and may be read and executed by one or more processors in processor unit 804.

En estos ejemplos, el código 818 de programa está ubicado en una forma funcional en un medio 820 legible por ordenador, el cual es desmontable selectivamente, y puede cargarse en o transferirse al sistema 800 de procesamiento de datos para su ejecución por la unidad 804 de procesador. El código 818 de programa y los medios 820 legibles por ordenador juntos forman el producto 822 de programa informático. En este ejemplo ilustrativo, los medios 820 legibles por ordenador pueden ser medios 824 de almacenamiento legibles por ordenador o medios 826 de señal legibles por ordenador.In these examples, the program code 818 is located in functional form on a computer-readable medium 820, which is selectively removable, and can be loaded into or transferred to the data processing system 800 for execution by the data processing unit 804. processor. The program code 818 and the computer-readable media 820 together form the computer program product 822. In this illustrative example, the computer-readable media 820 may be computer-readable storage media 824 or computer-readable signal media 826.

El medio 824 de almacenamiento legible por ordenador es un dispositivo de almacenamiento físico o tangible utilizado para almacenar el código 818 de programa en lugar de un medio que propaga o transmite el código 818 de programa. El medio 824 de almacenamiento legible por ordenador puede ser, por ejemplo, un dispositivo óptico o disco magnético o un dispositivo de almacenamiento persistente que está conectado al sistema 800 de procesamiento de datos. Computer-readable storage medium 824 is a physical or tangible storage device used to store program code 818 in lieu of a medium that propagates or transmits program code 818. The computer-readable storage medium 824 may be, for example, an optical device or magnetic disk or a persistent storage device that is connected to the data processing system 800.

Alternativamente, el código 818 de programa puede transferirse al sistema 800 de procesamiento de datos usando medios 826 de señal legibles por ordenador. Los medios 826 de señal legibles por ordenador pueden ser, por ejemplo, una señal de datos propagada que contiene el código 818 de programa. Esta señal de datos puede ser una señal electromagnética, una señal óptica y/o algún otro tipo de señal que puede transmitirse a través de enlaces de comunicaciones físicas y/o inalámbricas.Alternatively, the program code 818 may be transferred to the data processing system 800 using computer-readable signal means 826. The computer-readable signal means 826 may be, for example, a propagated data signal containing the program code 818. This data signal can be an electromagnetic signal, an optical signal, and / or some other type of signal that can be transmitted over physical and / or wireless communication links.

La ilustración del sistema 800 de procesamiento de datos en la Figura 8 no pretende proporcionar limitaciones arquitectónicas a la manera en la cual se pueden implementar las realizaciones ilustrativas. Las diferentes realizaciones ilustrativas pueden implementarse en un sistema de procesamiento de datos que incluye componentes además de o en lugar de los que se ilustran para el sistema 800 de procesamiento de datos. Además, los componentes que se muestran en la Figura 8 pueden variar de los ejemplos ilustrativos mostrados.The illustration of the data processing system 800 in Figure 8 is not intended to provide architectural limitations on the manner in which the illustrative embodiments may be implemented. The different illustrative embodiments may be implemented in a data processing system that includes components in addition to or in place of those illustrated for the data processing system 800. In addition, the components shown in Figure 8 may vary from the illustrative examples shown.

Los diagramas de flujo y los diagramas de bloques en las diferentes realizaciones representadas ilustran la arquitectura, la funcionalidad y el funcionamiento de algunas implementaciones posibles de aparatos y métodos en una realización ilustrativa. A este respecto, cada bloque en los diagramas de flujo o diagramas de bloques puede representar un módulo, un segmento, una función y/o una porción de una operación o etapa.The flow diagrams and block diagrams in the different embodiments shown illustrate the architecture, functionality, and operation of some possible implementations of apparatus and methods in an illustrative embodiment. In this regard, each block in the flowcharts or block diagrams can represent a module, a segment, a function and / or a portion of an operation or stage.

En algunas implementaciones alternativas de una realización ilustrativa, la función o funciones indicadas en los bloques pueden producirse fuera del orden indicado en las figuras. Por ejemplo, en algunos casos, dos bloques mostrados en sucesión pueden ejecutarse de manera sustancialmente simultánea, o los bloques a veces pueden realizarse en el orden inverso, dependiendo de la funcionalidad involucrada. Además, se pueden agregar otros bloques además de los bloques ilustrados en un diagrama de flujo o diagrama de bloques.In some alternative implementations of an illustrative embodiment, the function (s) indicated in the blocks may occur outside of the order indicated in the figures. For example, in some cases, two blocks displayed in succession may run substantially simultaneously, or the blocks may sometimes run in the reverse order, depending on the functionality involved. Additionally, other blocks can be added in addition to the blocks illustrated in a flow chart or block diagram.

Se pueden describir realizaciones ilustrativas de la divulgación en el contexto del método 900 de fabricación y servicio de aeronaves como se muestra en la Figura 9 y la aeronave 1000 como se muestra en la Figura 10. Volviendo primero a la Figura 9, se muestra una ilustración de un método de fabricación y servicio de aeronaves en la forma de diagrama de bloques de acuerdo con una realización ilustrativa. Durante la preproducción, el método 900 de fabricación y servicio de aeronaves puede incluir la especificación y el diseño 902 de la aeronave 1000 en la Figura 10 y la adquisición 904 de material.Illustrative embodiments of the disclosure may be described in the context of aircraft manufacturing and servicing method 900 as shown in Figure 9 and aircraft 1000 as shown in Figure 10. Turning first to Figure 9, an illustration is shown. of an aircraft manufacturing and servicing method in block diagram form according to an illustrative embodiment. During pre-production, aircraft manufacturing and servicing method 900 may include specification and design 902 of aircraft 1000 in Figure 10 and material procurement 904.

Durante la producción, tiene lugar la fabricación 906 de componentes y subconjuntos y la integración 908 del sistema de la aeronave 1000 en la Figura 10. A partir de entonces, la aeronave 1000 en la Figura 10 puede pasar por la certificación y la entrega 910 con el fin de ser puesta en servicio 912. A la vez que está en servicio 912 por un cliente, la aeronave 1000 en la Figura 10 está programada para el mantenimiento y el servicio 914 de rutina, lo cual puede incluir modificaciones, reconfiguración, renovación y otro mantenimiento o servicio.During production, manufacturing 906 of components and sub-assemblies and system integration 908 of aircraft 1000 in Figure 10 take place. Thereafter, aircraft 1000 in Figure 10 can go through certification and 910 delivery with in order to be 912 commissioned. While 912 is in service by a customer, the aircraft 1000 in Figure 10 is scheduled for routine 914 maintenance and service, which may include modifications, reconfiguration, refurbishment and other maintenance or service.

Cada uno de los procesos de fabricación de aeronaves y método 900 de servicio puede realizarse o llevarse a cabo por un integrador de sistemas, un tercero y/o un operador. En estos ejemplos, el operador puede ser un cliente. Para los fines de esta descripción, un integrador de sistemas puede incluir, sin limitación, cualquier número de fabricantes de aeronaves y subcontratistas de sistemas principales; un tercero puede incluir, sin limitación, cualquier número de vendedores, subcontratistas y proveedores; y un operador puede ser una aerolínea, una empresa de arrendamiento financiero, una entidad militar, una organización de servicios, etc. Each of the aircraft manufacturing processes and service method 900 can be performed or carried out by a systems integrator, a third party, and / or an operator. In these examples, the operator can be a customer. For the purposes of this description, a systems integrator may include, without limitation, any number of aircraft manufacturers and major systems subcontractors; a third party may include, without limitation, any number of vendors, subcontractors and suppliers; and an operator can be an airline, a leasing company, a military entity, a service organization, etc.

Con referencia ahora a la Figura 10, se muestra una ilustración de una aeronave en la forma de un diagrama de bloques en la cual se puede implementar una realización ilustrativa. En este ejemplo, la aeronave 1000 se produce mediante la fabricación de aeronaves y el método 900 de servicio en la Figura 9 y puede incluir el fuselaje 1002 con una pluralidad de sistemas 1004 y el interior 1006. Los ejemplos de sistemas 1004 incluyen uno o más del sistema 1008 de propulsión, el sistema 1010 eléctrico, el sistema 1012 hidráulico y el sistema 1014 ambiental. Se puede incluir cualquier número de otros sistemas. Aunque se muestra un ejemplo aeroespacial, se pueden aplicar diferentes realizaciones ilustrativas a otras industrias, tales como la industria automotriz.Referring now to Figure 10, an illustration of an aircraft in the form of a block diagram is shown in which an illustrative embodiment can be implemented. In this example, aircraft 1000 is produced by aircraft manufacturing and service method 900 in Figure 9 and may include airframe 1002 with a plurality of systems 1004 and interior 1006. Examples of systems 1004 include one or more of the propulsion system 1008, the electrical system 1010, the hydraulic system 1012 and the environmental system 1014. Any number of other systems can be included. Although an aerospace example is shown, different illustrative embodiments can be applied to other industries, such as the automotive industry.

Los aparatos y métodos incorporados en este documento pueden emplearse durante al menos una de las etapas de fabricación de aeronaves y el método 900 de servicio en la Figura 9. En particular, se pueden usar un número de plataformas 102 móviles durante cualquiera de las etapas de fabricación de aeronaves y el método 900 de servicio. Por ejemplo, sin limitación, se puede usar el número de plataformas 102 móviles para realizar operaciones durante al menos uno de la fabricación 906 de componentes y subconjuntos, la integración 908 de sistemas, el mantenimiento y servicio 914 de rutina, o alguna otra etapa de fabricación de aeronaves y método 900 de servicio.The apparatus and methods incorporated herein may be employed during at least one of the aircraft manufacturing stages and the service method 900 in Figure 9. In particular, a number of mobile platforms 102 may be used during any of the stages of aircraft manufacturing and the 900 method of service. For example, without limitation, the number of mobile platforms 102 may be used to perform operations during at least one of component and sub-assembly manufacturing 906, system integration 908, routine maintenance and service 914, or some other stage of maintenance. aircraft manufacturing and method 900 of service.

En un ejemplo ilustrativo, los componentes o subconjuntos producidos en la fabricación 906 de componentes y subconjuntos en la Figura 9 pueden fabricarse o manufacturarse de manera similar a los componentes o subconjuntos producidos a la vez que la aeronave 1000 está en servicio 912 en la Figura 9. Como aún otro ejemplo, una o más realizaciones del aparato, realizaciones del método, o una combinación de las mismas pueden utilizarse durante las etapas de producción, tales como la fabricación 906 de componentes y subconjuntos y la integración 908 de sistemas en la Figura 9. Una o más realizaciones del aparato, realizaciones del método, o una combinación de las mismas se utilizará a la vez que la aeronave 1000 está en servicio 912 y/o durante el mantenimiento y el servicio 914 en la Figura 9. El uso de un número de las diferentes realizaciones ilustrativas puede acelerar sustancialmente el ensamblaje y/o reducir el coste de la aeronave 1000.In an illustrative example, components or sub-assemblies produced in component and sub-assembly manufacturing 906 in Figure 9 may be fabricated or manufactured similarly to components or sub-assemblies produced at the time aircraft 1000 is in service 912 in Figure 9. As yet another example, one or more embodiments of the apparatus, embodiments of the method, or a combination thereof may be utilized during production steps, such as component and sub-assembly fabrication 906 and system integration 908 in Figure 9. One or more embodiments of the apparatus, embodiments of the method, or a combination thereof will be used while aircraft 1000 is in service 912 and / or during maintenance and service 914 in Figure 9. The use of a number of the different illustrative embodiments can substantially speed up assembly and / or reduce the cost of the aircraft 1000.

La descripción de las diferentes realizaciones ilustrativas se han presentado con fines ilustrativos y descriptivos, y no pretende ser exhaustiva ni limitada a las realizaciones en la forma divulgada. Diversas modificaciones y variaciones serán evidentes para los expertos en la técnica. Además, diferentes realizaciones ilustrativas pueden proporcionar diferentes características en comparación con otras realizaciones deseables. La realización o las realizaciones seleccionadas se eligen y describen para explicar mejor los principios de las realizaciones, la aplicación práctica, y para permitir que otros expertos en la técnica entiendan la divulgación de diversas realizaciones con diversas modificaciones que sean adecuadas para el particular uso contemplado. The description of the various illustrative embodiments has been presented for illustrative and descriptive purposes, and is not intended to be exhaustive or limited to the embodiments as disclosed. Various modifications and variations will be apparent to those skilled in the art. Furthermore, different illustrative embodiments can provide different characteristics compared to other desirable embodiments. The selected embodiment or embodiments are chosen and described to better explain the principles of the embodiments, the practical application, and to enable others skilled in the art to understand the disclosure of various embodiments with various modifications that are suitable for the particular use contemplated.

Claims (13)

REIVINDICACIONES 1. Un aparato que comprende:1. An apparatus comprising: una pluralidad de sistemas (128) de datos configurados para generar una pluralidad de flujos (126) de datos en la cual la pluralidad de flujos de datos incluye un primer tipo de flujo (132) de datos y un segundo tipo de flujo (130) de datos, en donde cada punto de datos en el primer tipo de flujo de datos incluye una medición de incertidumbre, y en donde cada punto de datos en el segundo tipo de flujo de datos no incluye una medición de incertidumbre;a plurality of data systems (128) configured to generate a plurality of data streams (126) in which the plurality of data streams includes a first type of data stream (132) and a second type of stream (130) data, wherein each data point in the first type of data stream includes an uncertainty measurement, and wherein each data point in the second type of data stream does not include an uncertainty measurement; un modificador (120) configurado para aplicar una distribución (137) de probabilidad al segundo tipo de flujo de datos para formar un flujo (135) de datos modificado; ya modifier (120) configured to apply a probability distribution (137) to the second type of data stream to form a modified data stream (135); and un estimador (118) de pose ubicado a bordo de una plataforma (104) móvil y configurado para recibir y fusionar el primer tipo de flujo de datos y el flujo de datos modificado para generar una estimación (122) de pose con un nivel deseado de precisión para la plataforma móvil con respeto a un entorno (100) alrededor de la plataforma móvil; en donde el aparato está configurado para:a pose estimator (118) located aboard a mobile platform (104) and configured to receive and merge the first type of data stream and the modified data stream to generate a pose estimate (122) with a desired level of accuracy for the mobile platform with respect to an environment (100) around the mobile platform; where the device is configured to: observar un punto de referencia actual en el entorno un número seleccionado de veces utilizando un sistema (134) de datos a bordo, a la vez que la plataforma móvil está en una ubicación actual;observing a current landmark in the environment a selected number of times using an on-board data system (134), while the mobile platform is at a current location; identificar una distancia relativa inicial entre la ubicación actual de la plataforma móvil y el punto de referencia actual; yidentifying an initial relative distance between the current location of the mobile platform and the current reference point; and mover la plataforma móvil a partir de la ubicación actual a una nueva ubicación lo más lejos posible hacia una ubicación deseada sin perder el punto de referencia actual dentro de un campo de visión de un sistema de sensor del sistema de datos a bordo.moving the mobile platform from the current location to a new location as far as possible to a desired location without losing the current reference point within a field of view of an onboard data system sensor system. 2. El aparato de la reivindicación 1, en donde al menos uno del número del segundo tipo de flujos de datos se recibe a partir de un sistema de odometría en la pluralidad de sistemas de datos.The apparatus of claim 1, wherein at least one of the number of the second type of data streams is received from an odometry system in the plurality of data systems. 3. El aparato de una cualquiera de las reivindicaciones 1 a 2, en donde la pluralidad de sistemas de datos incluye un número de sistemas de datos a bordo y un número de sistemas de datos fuera de borda.The apparatus of any one of claims 1 to 2, wherein the plurality of data systems includes a number of onboard data systems and a number of outboard data systems. 4. El aparato de una cualquiera de las reivindicaciones 1 a 3, en donde la estimación de pose comprende una posición y una orientación de la plataforma móvil con respecto al entorno.The apparatus of any one of claims 1 to 3, wherein the pose estimation comprises a position and an orientation of the mobile platform relative to the environment. 5. El aparato de una cualquiera de las reivindicaciones 1 a 4, en donde la plataforma móvil es un robot móvil y el entorno es un entorno de fabricación.The apparatus of any one of claims 1 to 4, wherein the mobile platform is a mobile robot and the environment is a manufacturing environment. 6. El aparato de una cualquiera de las reivindicaciones 1 a 5, en donde el estimador de pose está configurado para fusionar el número del primer tipo de flujos de datos y el número de flujos de datos modificados usando un algoritmo de estimación Bayesiano para generar la estimación de pose.The apparatus of any one of claims 1 to 5, wherein the pose estimator is configured to merge the number of the first type of data streams and the number of modified data streams using a Bayesian estimation algorithm to generate the pose estimate. 7. El aparato de una cualquiera de las reivindicaciones 1 a 6 comprende, además:7. The apparatus of any one of claims 1 to 6 further comprises: un controlador configurado para usar la estimación de pose para guiar la plataforma móvil a lo largo de una ruta dentro del entorno.a controller configured to use pose estimation to guide the mobile platform along a path within the environment. 8. Un método para guiar una plataforma (104) móvil dentro de un entorno (100), comprendiendo el método: generar un primer tipo de flujo (132) de datos y un segundo tipo de flujo (130) de datos usando una pluralidad de sistemas (128) de datos, en donde cada punto de datos en el primer tipo de flujo de datos incluye una medición de incertidumbre, y en donde cada punto de datos en el segundo tipo de flujo de datos no incluye una medición de incertidumbre;8. A method for guiding a mobile platform (104) within an environment (100), the method comprising: generating a first type of data stream (132) and a second type of data stream (130) using a plurality of data systems (128), wherein each data point in the first type of data stream includes an uncertainty measurement, and wherein each data point in the second type of data stream does not include an uncertainty measurement; aplicar una distribución (137) de probabilidad al segundo tipo de flujo de datos para formar un flujo (135) de datos modificado;applying a probability distribution (137) to the second type of data stream to form a modified data stream (135); fusionar el primer tipo de flujo de datos y el flujo de datos modificado para generar una estimación (122) de pose con un nivel deseado de precisión para la plataforma móvil con respecto al entorno alrededor de la plataforma móvil; observar un punto de referencia actual en el entorno un número seleccionado de veces utilizando un sistema (134) de datos a bordo, a la vez que la plataforma móvil está en una ubicación actual;merging the first type of data stream and the modified data stream to generate a pose estimate (122) with a desired level of precision for the mobile platform relative to the environment around the mobile platform; observing a current landmark in the environment a selected number of times using an on-board data system (134), while the mobile platform is at a current location; identificar una distancia relativa inicial entre la ubicación actual de la plataforma móvil y el punto de referencia actual; y identifying an initial relative distance between the current location of the mobile platform and the current reference point; and mover la plataforma móvil a partir de la ubicación actual a una nueva ubicación lo más lejos posible hacia una ubicación deseada sin perder el punto de referencia actual dentro de un campo de visión de un sistema de sensor del sistema de datos a bordo.moving the mobile platform from the current location to a new location as far as possible to a desired location without losing the current reference point within a field of view of an onboard data system sensor system. 9. El método de la reivindicación 8 comprende además:The method of claim 8 further comprises: guiar la plataforma móvil a lo largo de una ruta en el entorno utilizando la estimación de pose generada para la plataforma móvil.guide the mobile platform along a path in the environment using the pose estimate generated for the mobile platform. 10. El método de la reivindicación 8 o la reivindicación 9, en donde aplicar la distribución de probabilidad a cada uno del número del segundo tipo de flujos de datos para formar el número de flujos de datos modificados comprende: aplicar una covarianza empírica a cada punto de datos en cada uno de los números del segundo tipo de flujos de datos para formar el número de flujos de datos modificados.The method of claim 8 or claim 9, wherein applying the probability distribution to each of the number of the second type of data streams to form the number of modified data streams comprises: applying an empirical covariance to each point of data in each of the numbers of the second type of data streams to form the number of modified data streams. 11. El método de una cualquiera de las reivindicaciones 8 a 10, en donde fusionar el número del primer tipo de flujos de datos y el número de flujos de datos modificados comprende: fusionar el número del primer tipo de flujos de datos y el número de flujos de datos modificados utilizando un algoritmo de estimación Bayesiano para generar la estimación de pose con el nivel deseado de precisión.The method of any one of claims 8 to 10, wherein merging the number of the first type of data streams and the number of modified data streams comprises: merging the number of the first type of data streams and the number of Modified data streams using a Bayesian estimation algorithm to generate the pose estimate with the desired level of precision. 12. El método de cualquiera de las reivindicaciones 8 a 11, en donde generar el número del primer tipo de flujos de datos y el número del segundo tipo de flujos de datos comprende:The method of any one of claims 8 to 11, wherein generating the number of the first type of data streams and the number of the second type of data streams comprises: generar el número del segundo tipo de flujos de datos usando al menos un sistema de odometría de color y profundidad, un sistema de odometría de rueda, un sistema de odometría visual, un sistema de detección y medición de luz, o un localizador y mapeador.generating the number of the second type of data streams using at least a color and depth odometry system, a wheel odometry system, a visual odometry system, a light detection and measurement system, or a locator and mapper. 13. El método de una cualquiera de las reivindicaciones 8 a 12, comprende, además:The method of any one of claims 8 to 12, further comprises: volver a observar el punto de referencia actual el número seleccionado de veces usando el sistema de datos a bordo; identificar una nueva distancia relativa entre la nueva ubicación de la plataforma móvil y el punto de referencia actual; calcular una diferencia entre la distancia relativa inicial y la nueva distancia relativa; ere-observing the current waypoint the selected number of times using the onboard data system; identifying a new relative distance between the new location of the mobile platform and the current reference point; calculate a difference between the initial relative distance and the new relative distance; and identificar la nueva ubicación de la plataforma móvil en el entorno utilizando la diferencia. identify the new location of the mobile platform in the environment using the difference.
ES15162043T 2014-04-02 2015-03-31 Location within an environment using sensor fusion Active ES2770730T3 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/243,419 US9427867B2 (en) 2014-04-02 2014-04-02 Localization within an environment using sensor fusion

Publications (1)

Publication Number Publication Date
ES2770730T3 true ES2770730T3 (en) 2020-07-02

Family

ID=53682434

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15162043T Active ES2770730T3 (en) 2014-04-02 2015-03-31 Location within an environment using sensor fusion

Country Status (9)

Country Link
US (1) US9427867B2 (en)
EP (1) EP2927769B1 (en)
JP (1) JP6804825B2 (en)
KR (1) KR102359186B1 (en)
CN (1) CN104977941B (en)
BR (1) BR102015007157B1 (en)
CA (1) CA2883622C (en)
ES (1) ES2770730T3 (en)
PT (1) PT2927769T (en)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3132379B1 (en) 2014-04-15 2018-11-07 Huntington Ingalls Incorporated System and method for augmented reality display of dynamic environment information
US9734403B2 (en) * 2014-04-25 2017-08-15 Huntington Ingalls Incorporated Augmented reality display of dynamic target object information
US9864909B2 (en) 2014-04-25 2018-01-09 Huntington Ingalls Incorporated System and method for using augmented reality display in surface treatment procedures
US10504294B2 (en) 2014-06-09 2019-12-10 Huntington Ingalls Incorporated System and method for augmented reality discrepancy determination and reporting
US10147234B2 (en) 2014-06-09 2018-12-04 Huntington Ingalls Incorporated System and method for augmented reality display of electrical system information
US10915754B2 (en) 2014-06-09 2021-02-09 Huntington Ingalls Incorporated System and method for use of augmented reality in outfitting a dynamic structural space
US9898867B2 (en) 2014-07-16 2018-02-20 Huntington Ingalls Incorporated System and method for augmented reality display of hoisting and rigging information
CN105180955A (en) * 2015-10-21 2015-12-23 福州华鹰重工机械有限公司 Real-time precise positioning method and real-time precise positioning device of motor vehicles
KR102377436B1 (en) 2016-03-09 2022-03-23 어플라이드 머티어리얼스, 인코포레이티드 Correction of fabricated shapes in additive manufacturing
CN105938619A (en) * 2016-04-11 2016-09-14 中国矿业大学 Visual odometer realization method based on fusion of RGB and depth information
US10353400B2 (en) 2016-05-23 2019-07-16 Asustek Computer Inc. Navigation system and navigation method
CN106227220A (en) * 2016-09-28 2016-12-14 关健生 Independent navigation crusing robot based on Distributed Architecture
CN107160419A (en) * 2017-06-09 2017-09-15 东华大学 A kind of robot movement mechanism of electromyographic signal control
CN109866217B (en) * 2017-12-01 2021-09-17 深圳市优必选科技有限公司 Robot mileage positioning method, device, terminal equipment and computer storage medium
US20210240183A1 (en) * 2018-05-31 2021-08-05 Nec Corporation Output device, drive device, mobile device, mobile body system, output method, and computer readable medium
DE102018121365A1 (en) * 2018-08-31 2020-04-23 RobArt GmbH EXPLORATION OF A ROBOT APPLICATION AREA BY AN AUTONOMOUS MOBILE ROBOT
US11314254B2 (en) * 2019-03-26 2022-04-26 Intel Corporation Methods and apparatus for dynamically routing robots based on exploratory on-board mapping
CN110286682A (en) * 2019-07-08 2019-09-27 国网山东省电力公司枣庄供电公司 A kind of electric power storage Multifunctional security sniffing robot, method and system
KR102259247B1 (en) * 2019-12-06 2021-06-01 한국로봇융합연구원 Strong Localization Method and System through Convergence of Multiple Localization Based on Covariance Matrix
EP4208316A4 (en) * 2020-09-01 2024-04-03 Ceva Tech Inc Planar robots dead-reckoning with optical flow, wheel encoder and inertial measurement unit
FR3119142A1 (en) * 2021-01-25 2022-07-29 Transdev Group Innovation Method of circulating a vehicle on traffic lanes, computer program, information carrier and associated transport system
CN113955136B (en) * 2021-09-02 2024-04-05 浙江图盛输变电工程有限公司温州科技分公司 Automatic unmanned aerial vehicle target hanging point calibration transfer station that patrols and examines of electric wire netting

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0570581B1 (en) * 1991-11-01 2001-12-05 Motorola, Inc. An improved accuracy sensory system for vehicle navigation
JP2004133882A (en) * 2002-05-10 2004-04-30 Royal Appliance Mfg Co Autonomous multi-platform robot system
AU2003300959A1 (en) * 2002-12-17 2004-07-22 Evolution Robotics, Inc. Systems and methods for visual simultaneous localization and mapping
KR100506097B1 (en) * 2004-02-04 2005-08-03 삼성전자주식회사 Method and apparatus for making magnetic field map and method and apparatus for checking pose of the moving body using the map
US7689321B2 (en) 2004-02-13 2010-03-30 Evolution Robotics, Inc. Robust sensor fusion for mapping and localization in a simultaneous localization and mapping (SLAM) system
US7831094B2 (en) * 2004-04-27 2010-11-09 Honda Motor Co., Ltd. Simultaneous localization and mapping using multiple view feature descriptors
JP4686595B2 (en) * 2005-03-17 2011-05-25 本田技研工業株式会社 Pose estimation based on critical point analysis
US7539557B2 (en) * 2005-12-30 2009-05-26 Irobot Corporation Autonomous mobile robot
KR100809352B1 (en) * 2006-11-16 2008-03-05 삼성전자주식회사 Method and apparatus of pose estimation in a mobile robot based on particle filter
US8351646B2 (en) * 2006-12-21 2013-01-08 Honda Motor Co., Ltd. Human pose estimation and tracking using label assignment
KR100877071B1 (en) * 2007-07-18 2009-01-07 삼성전자주식회사 Method and apparatus of pose estimation in a mobile robot based on particle filter
CN101576384B (en) * 2009-06-18 2011-01-05 北京航空航天大学 Indoor movable robot real-time navigation method based on visual information correction
WO2011052826A1 (en) * 2009-10-30 2011-05-05 주식회사 유진로봇 Map generating and updating method for mobile robot position recognition
CN101712381B (en) * 2009-11-13 2013-01-02 北京航空航天大学 Multi-sensor-based attitude determination system
US8401225B2 (en) 2011-01-31 2013-03-19 Microsoft Corporation Moving object segmentation using depth images
US8401242B2 (en) * 2011-01-31 2013-03-19 Microsoft Corporation Real-time camera tracking using depth maps

Also Published As

Publication number Publication date
CA2883622A1 (en) 2015-10-02
EP2927769A2 (en) 2015-10-07
CA2883622C (en) 2017-07-11
EP2927769B1 (en) 2019-12-04
JP6804825B2 (en) 2020-12-23
US9427867B2 (en) 2016-08-30
KR102359186B1 (en) 2022-02-04
CN104977941A (en) 2015-10-14
BR102015007157A2 (en) 2016-03-29
EP2927769A3 (en) 2016-07-20
PT2927769T (en) 2020-02-14
US20150283700A1 (en) 2015-10-08
CN104977941B (en) 2019-04-30
KR20150114892A (en) 2015-10-13
BR102015007157B1 (en) 2021-07-27
JP2015197925A (en) 2015-11-09

Similar Documents

Publication Publication Date Title
ES2770730T3 (en) Location within an environment using sensor fusion
Langelaan State estimation for autonomous flight in cluttered environments
Shen et al. Vision-Based State Estimation and Trajectory Control Towards High-Speed Flight with a Quadrotor.
Zingg et al. MAV navigation through indoor corridors using optical flow
KR101439921B1 (en) Slam system for mobile robot based on vision sensor data and motion sensor data fusion
Siegwart et al. Autonomous mobile robots
US11726501B2 (en) System and method for perceptive navigation of automated vehicles
Langelaan et al. Towards autonomous UAV flight in forests
Mulgaonkar et al. The tiercel: A novel autonomous micro aerial vehicle that can map the environment by flying into obstacles
Yu et al. Observability-based local path planning and obstacle avoidance using bearing-only measurements
Mai et al. Local positioning system using UWB range measurements for an unmanned blimp
Frew et al. Adaptive receding horizon control for vision-based navigation of small unmanned aircraft
Madhevan et al. Modelling, simulation and mechatronics design of a wireless automatic fire fighting surveillance robot
Aman et al. A sensor fusion methodology for obstacle avoidance robot
Alaeddini et al. Autonomous state estimation using optic flow sensing
Dorj et al. Multi-sensor fusion based effective obstacle avoidance and path-following technology
Moon et al. Development of large-scale 3d map generation system for indoor autonomous navigation flight–work in progress
Chavez-Romero et al. Camera space particle filter for the robust and precise indoor localization of a wheelchair
Martinez Experimental results of testing a direct monocular visual odometry algorithm outdoors on flat terrain under severe global illumination changes for Planetary Exploration Rovers
Cho et al. 3D pose and target position estimation for a quadruped walking robot
Roumeliotis et al. Reliable mobile robot localization
Sondermann et al. Improved Mobile Robot Localization Using Semantic World Models
Tkocz et al. Metric velocity, landmark distance and attitude estimation utilizing monocular camera images and gravity biased IMU data
Bassolillo et al. Enhanced Attitude and Altitude Estimation for Indoor Autonomous UAVs. Drones 2022, 6, 18
Batayneh et al. An Extended Kalman Filter-Based Simultaneous Localization and Mapping Algorithm for Omnidirectional Indoor Mobile Robot