BR102015007157B1 - Aparelho e método para guiar uma plataforma móvel dentro de um ambiente - Google Patents

Aparelho e método para guiar uma plataforma móvel dentro de um ambiente Download PDF

Info

Publication number
BR102015007157B1
BR102015007157B1 BR102015007157-4A BR102015007157A BR102015007157B1 BR 102015007157 B1 BR102015007157 B1 BR 102015007157B1 BR 102015007157 A BR102015007157 A BR 102015007157A BR 102015007157 B1 BR102015007157 B1 BR 102015007157B1
Authority
BR
Brazil
Prior art keywords
data
data streams
type
mobile platform
environment
Prior art date
Application number
BR102015007157-4A
Other languages
English (en)
Other versions
BR102015007157A2 (pt
Inventor
Peter F. Trautman
Hui Li
Robert P. Higgins
Original Assignee
The Boeing Company
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 The Boeing Company filed Critical The Boeing Company
Publication of BR102015007157A2 publication Critical patent/BR102015007157A2/pt
Publication of BR102015007157B1 publication Critical patent/BR102015007157B1/pt

Links

Images

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, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • 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, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/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, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/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, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Electromagnetism (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Optics & Photonics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)

Abstract

aparelho e método para guiar uma plataforma móvel dentro de um ambiente um método e aparelho para guiar uma plataforma móvel dentro de um ambiente podem ser providos. vários de primeiro tipo de fluxos de dados e vários de segundo tipo de fluxos de dados podem ser gerados usando uma pluralidade de sistemas de dados. uma distribuição de probabilidade pode ser aplicada a cada um dos vários de segundo tipo de fluxos de dados para formar vários fluxos de dados modificados. os vários de primeiro tipo de fluxos de dados e vários fluxos de dados modificados podem ser fundidos para gerar um estimativa de posição com um nível desejado de precisão para a plataforma móvel com respeito a um ambiente ao redor da plataforma móvel.

Description

INFORMAÇÃO DE FUNDAMENTO 1. Campo:
[001] A exposição presente relaciona-se geralmente a identificar a posição de uma plataforma móvel em um ambiente. Mais particularmente, a exposição presente relaciona-se a um método e aparelho para formar e fundir fluxos de dados cada um incluindo uma medida de incerteza para gerar uma estimativa de posição para a plataforma móvel dentro do ambiente.
2. Fundamento:
[002] Em algumas situações, pode ser desejável ter um robô móvel que pode se mover livremente dentro de um ambiente do mesmo modo que um humano faria. Pontos de referência físicos, tais como pintura, fita, ou ímãs, que tipicamente podem ser usados para ajudar um robô móvel se mover dentro de um ambiente, pode constranger um robô móvel para seguir só rotas predefinidas. Ademais, instalar estes tipos de pontos de referência físicos pode ser mais demorado e caro que desejado. Para se mover mais livremente dentro de um ambiente, um robô móvel pode precisar executar localização, que inclui identificar a posição do robô móvel dentro do ambiente. Como usado aqui, uma "posição" inclui uma posição, uma orientação, ou ambas com respeito a uma sistema de coordenadas de referência.
[003] Um robô móvel pode usar um sistema de sensor externo para executar localização. Porém, em alguns casos, linha de visão entre um robô móvel e o sistema de sensor externo pode estar obstruída por outros objetos, robôs, e/ou pessoas dentro do ambiente industrial. Como um exemplo, em um ambiente industrial de aeronaves, linha de visão pode ser perdida quando o robô móvel opera debaixo de uma asa da aeronave, dentro da asa, na redondeza de objetos de fábrica tais como guindastes ou colunas, e/ou em áreas restringidas. Uma vez que linha de visão seja perdida, o robô móvel pode deixar de receber atualizações de posição e pode precisar parar as operações até que a linha de visão tenha sido recuperada. Sem localização, o robô móvel não é capaz de navegar pelo ambiente tão precisamente quanto desejado.
[004] Ademais, em um ambiente dinâmico, carros, aviões, postos de trabalho, veículos, plataformas de equipamento, outros tipos de dispositivos, operadores humanos, ou alguma combinação disso pode se mover. Consequentemente, um robô móvel não é capaz de se confiar somente em seus arredores para se mover por este tipo de ambiente ou um ambiente cheio de desordem ou não segmentado ou estruturado eficientemente. Atualmente robôs móveis disponíveis não podem poder operar com os níveis de desempenho e eficiência desejados ou manobrar ao redor de operadores humanos de um modo tão seguro quanto desejado nestes tipos diferentes de ambientes.
[005] Adicionalmente, em alguns casos, o equipamento ou dispositivos usados para localização podem ser mais caros, maiores, ou mais pesados que desejado. Em certas situações, o processamento exigido para executar a localização com um nível desejado de precisão pode ser mais demorado ou requerer mais recursos de processamento que desejado. Portanto, seria desejável ter um método e aparelho que levam em conta pelo menos alguns dos assuntos discutido acima, como também outros assuntos possíveis.
SUMÁRIO
[006] Em uma concretização ilustrativa, um aparelho pode incluir uma pluralidade de sistemas de dados, um modificador, e um estimador de posição. A pluralidade de sistemas de dados pode ser configurada para gerar uma pluralidade de fluxos de dados. A pluralidade de fluxos de dados pode incluir vários de primeiro tipo de fluxos de dados e vários de segundo tipo de fluxos de dados. O modificador pode ser configurado para aplicar uma distribuição de probabilidade a cada um do número de segundo tipo de fluxos de dados para formar vários fluxos de dados modificados. O estimador de posição pode estar localizado embutido em uma plataforma móvel e pode ser configurado para receber e fundir o número de primeiro tipo de fluxos de dados e o número de fluxos de dados modificados para gerar um estimativa de posição com um nível desejado de precisão para a plataforma móvel com respeito a um ambiente ao redor da plataforma móvel.
[007] Em outra concretização ilustrativa, uma plataforma móvel pode incluir uma base, um controlador associado com a base, e um sistema de movimento associado com a base. O controlador pode ser ademais configurado para receber fluxos de dados de uma pluralidade de sistemas de dados nos quais fluxos de dados podem incluir vários de primeiro tipo de fluxos de dados e vários de segundo tipo de fluxos de dados. O controlador pode incluir um modificador e um estimador de posição. O modificador pode ser configurado para aplicar uma distribuição de probabilidade a cada um do número de segundo tipo de fluxos de dados para formar vários fluxos de dados modificados. O estimador de posição pode ser configurado para receber o número de primeiro tipo de fluxos de dados e o número de fluxos de dados modificados. O estimador de posição pode ser ademais configurado para fundir a pluralidade de fluxos de dados juntos para gerar um estimativa de posição com um nível de precisão desejado para a plataforma móvel com respeito a um ambiente ao redor da plataforma móvel. O sistema de movimento pode ser configurado para ser controlado pelo controlador baseado na estimativa de posição para mover a plataforma móvel dentro do ambiente.
[008] Em ainda outra concretização ilustrativa, um método para guiar uma plataforma móvel dentro de um ambiente pode ser provido. Vários de primeiro tipo de fluxos de dados e vários de segundo tipo de fluxos de dados podem ser gerados usando uma pluralidade de sistemas de dados. Uma distribuição de probabilidade pode ser aplicada a cada um do número de segundo tipo de fluxos de dados para formar vários fluxos de dados modificados. Os vários de primeiro tipo de fluxos de dados e vários fluxos de dados modificados podem ser fundidos para gerar um estimativa de posição com um nível desejado de precisão para a plataforma móvel com respeito a um ambiente ao redor da plataforma móvel.
[009] As características e funções podem ser alcançadas independentemente em várias concretizações da exposição presente ou podem ser combinadas em ainda outras concretizações nas quais detalhes adicionais podem ser vistos com referência à descrição e desenhos seguintes.
BREVE DESCRIÇÃO DOS DESENHOS
[0010] As características modernas acreditadas das concretizações ilustrativas estão publicadas nas reivindicações anexas. As concretizações ilustrativas, porém, como também um modo preferido de uso, objetivos e características adicionais disso, serão entendidas melhor por referência à descrição detalhada seguinte de uma concretização ilustrativa da exposição presente quando lida junto com os desenhos acompanhantes, em que:
[0011] Figura 1 é uma ilustração de um ambiente na forma de um diagrama de bloco conforme uma concretização ilustrativa;
[0012] Figura 2 é uma ilustração de uma pluralidade de sistemas de dados na forma de um diagrama de bloco conforme uma concretização ilustrativa;
[0013] Figura 3 é uma ilustração dos componentes de uma pluralidade de sistemas de dados que estão localizados embutidos e dos componentes de uma pluralidade de sistemas de dados que estão localizados externamente conforme uma concretização ilustrativa;
[0014] Figura 4 é uma ilustração de um ambiente industrial conforme uma concretização ilustrativa;
[0015] Figura 5 é uma ilustração de um robô móvel conforme uma concretização ilustrativa;
[0016] Figura 6 é uma ilustração de um processo para gerar um estimativa de posição para uma plataforma móvel em um ambiente na forma de um fluxograma conforme uma concretização ilustrativa;
[0017] Figura 7 é uma ilustração de um processo para guiar um robô móvel dentro de um ambiente industrial na forma de um fluxograma conforme uma concretização ilustrativa;
[0018] Figura 8 é uma ilustração de um sistema de processamento de dados na forma de um diagrama de bloco conforme uma concretização ilustrativa;
[0019] Figura 9 é uma ilustração de um método de fabricação e serviço de aeronave na forma de um diagrama de bloco conforme uma concretização ilustrativa; e
[0020] Figura 10 é uma ilustração de uma aeronave na forma de um diagrama de bloco conforme uma concretização ilustrativa.
DESCRIÇÃO DETALHADA
[0021] As concretizações ilustrativas reconhecem e levam em conta considerações diferentes. Por exemplo, as concretizações ilustrativas reconhecem e levam em conta que pode ser desejável ter um método e aparelho capazes de executar mais precisamente e depressa localização para várias plataformas móveis dentro de um ambiente industrial. Ademais, as concretizações ilustrativas reconhecem e levam em conta que pode ser desejável ter um método e aparelho para gerar um estimativa de posição para um robô móvel dentro de um ambiente embutido do robô móvel.
[0022] Assim, as concretizações ilustrativas provêem um método e aparelho para gerar um estimativa de posição para um robô móvel embutido do robô móvel usando fusão de sensor. O método e aparelho providos pelas concretizações ilustrativas podem reduzir o tempo precisado para gerar uma estimativa de posição, enquanto aumentando a precisão da estimativa. Ademais, a solução provida pelas concretizações ilustrativas pode ser mais simples e mais econômica do que algumas soluções atualmente disponíveis.
[0023] Se referindo agora às figuras e, em particular, com referência à Figura 1, uma ilustração de um ambiente é descrita conforme uma concretização ilustrativa. Neste exemplo ilustrativo, o ambiente 100 pode ser qualquer ambiente no qual várias plataformas móveis 102 podem ser usadas. Como usado aqui, "vários"itens pode ser um ou mais itens. Desta maneira, várias plataformas móveis 102 pode incluir uma ou mais plataformas móveis.
[0024] Em um exemplo ilustrativo, o ambiente 100 pode levar a forma de ambiente industrial 101 no qual o objeto 103 está sendo fabricado. Objeto 103 pode levar várias formas diferentes. Por exemplo, sem limitação, o objeto 103 pode levar a forma de uma porta, um painel de película, uma asa para uma aeronave, uma fuselagem para uma aeronave, um componente estrutural para um edifício, uma montagem de componentes, ou algum outro tipo de objeto.
[0025] Como descrito, a plataforma móvel 104 pode ser um exemplo de uma implementação para uma plataforma móvel em várias plataformas móveis 102. Neste exemplo ilustrativo, a plataforma móvel 104 pode levar a forma de robô móvel 106. Certamente, dependendo da implementação, a plataforma móvel 104 pode levar a forma de qualquer tipo de plataforma, estrutura, dispositivo, ou objeto capaz de se mover pelo menos parcialmente autonomamente dentro de ambiente 100.
[0026] Como descrito, o robô móvel 106 pode incluir a base 108, sistema de movimento 110, várias ferramentas 112 e controlador 114. Sistema de movimento 110, várias ferramentas 112 e controlador 114 podem estar associados com a base 108. Como usado aqui, quando um componente está "associado" com outro componente, a associação é uma associação física nos exemplos descritos.
[0027] Por exemplo, sem limitação, um primeiro componente, tal como o sistema de movimento 110, pode ser considerado estar associado com um segundo componente, tal como a base 108, sendo preso ao segundo componente, ligado ao segundo componente, montado ao segundo componente, soldado ao segundo componente, fixado ao segundo componente, e/ou conectado ao segundo componente de alguma outra maneira adequada. O primeiro componente também pode estar conectado ao segundo componente usando um terceiro componente. Ademais, o primeiro componente pode ser considerado estar associado com o segundo componente sendo formado como parte e/ou como uma extensão do segundo componente.
[0028] Sistema de movimento 110 pode ser usado para mover o robô móvel 106 dentro de ambiente 100. Por exemplo, sem limitação, o sistema de movimento 110 pode ser usado para mover o robô móvel 106 dentro de ambiente 101. Dependendo da implementação, o sistema de movimento 110 pode incluir pelo menos uma de várias rodas, vários rolos, várias pernas, várias rodas holonômicas, ou outros tipos de dispositivos capazes de prover movimento.
[0029] Como usado aqui, a frase "pelo menos um de", quando usada com uma lista de itens, significa que combinações diferentes de um ou mais dos itens listados podem ser usadas e só um dos itens na lista pode ser precisado. O item pode ser um objeto particular, coisa, ou categoria. Em outras palavras, "pelo menos um de" significa que qualquer combinação de itens ou número de itens pode ser usada da lista, mas nem todos os itens na lista podem ser requeridos.
[0030] Por exemplo, "pelo menos um de item A, item B e item C" pode significar item A; item A e item B; item B; item A, item B e item C; ou item B e item C. Em alguns casos, "pelo menos um de item A, item B e item C" pode significar, por exemplo, sem limitação, dois de item A, um de item B, e dez de item C; quatro de item B e sete de item C; ou alguma outra combinação adequada.
[0031] Neste exemplo ilustrativo, várias ferramentas 112 podem ser usadas para executar várias operações 116 dentro de ambiente 100. Pelo menos uma de várias operações 116 pode ser executada no objeto 103. Várias operações 116 podem incluir, por exemplo, sem limitação, pelo menos uma de uma operação de perfuração, uma operação de fixação, uma operação de lixamento, uma operação de pintura, uma operação de usinagem, uma operação de prova, uma operação de geração de imagem, ou algum outro tipo de operação. Desta maneira, várias ferramentas 112 podem incluir, por exemplo, sem limitação, pelo menos um de um dispositivo de perfuração, um dispositivo de fixação, uma ferramenta de lixamento, uma ferramenta de pintura, um sistema dispensador de fluido, um dispositivo de aplicação de selante, um dispositivo de usinagem, um dispositivo de fresagem, um sistema de prova, um dispositivo de geração de imagem, um escâner, um marcador, uma caneta, um aplicador de rótulo, ou algum outro tipo de ferramenta.
[0032] Neste exemplo ilustrativo, o controlador 114 pode ser configurado para controlar a operação de pelo menos várias ferramentas 112. Ademais, o controlador 114 pode ser configurado para controlar o sistema de movimento 110. Em particular, o controlador 114 pode controlar o sistema de movimento 110 para mover o robô móvel 106 ao longo de caminho 117 em ambiente 100. Caminho 117 pode estar pelo menos parcialmente ao longo de piso 115 de ambiente 100. Como usado aqui, piso 115 pode incluir uma superfície de piso, uma superfície sobre uma ponte, uma superfície formada por um ou mais paletes, uma superfície de plataforma, um piso de um elevador, um piso de uma correia de transporte, algum outro tipo de superfície, ou alguma combinação disso.
[0033] Caminho 117 pode ser um caminho atualizado dinamicamente visto que o controlador 114 pode atualizar o caminho 117 quando o robô móvel 106 se move por ambiente 100. Controlador 114 pode atualizar o caminho 117 quando o robô móvel 106 se move por ambiente 100 para ajudar o robô móvel 106, por exemplo, sem limitação, pelo menos um de desviar obstáculos, se moverão redor de objetos que foram colocados recentemente ou movidos dentro de ambiente 100, responder a mudanças em várias operações 116 a serem executadas através de robô móvel 106, manobrar ao redor de operadores humanos que estão localizados ou se movendo ao redor dentro de ambiente 100, ou responder a algum outro tipo de circunstância nova ou mudada dentro de ambiente 100. Controlador 114 pode usar localização para ajudar a navegar o robô móvel 106.
[0034] Como descrito, o controlador 114 pode incluir, por exemplo, sem limitação, o estimador de posição 118 e modificador 120. Estimador de posição 118 pode gerar estimativa de posição 122 para o robô móvel 106. Estimativa de posição 122 pode ser uma estimação do posição de robô móvel 106 dentro de ambiente 100. A posição de robô móvel 106, como usada aqui, pode ser incluída de pelo menos uma de uma posição de robô móvel 106 ou uma orientação de robô móvel 106 com respeito ao sistema de coordenadas de referência 124 para ambiente 100. Assim, a estimativa de posição 122 pode ser incluída de pelo menos uma de estimativa de posição 121 e estimativa de orientação 123 de robô móvel 106 com respeito ao sistema de coordenadas de referência 124 para ambiente 100.
[0035] Robô móvel 106 pode ser configurado para se mover com seis graus de liberdade em ambiente 100. Assim, a estimativa de posição 122 pode ser uma estimativa da posição de seis graus de liberdade (6DoF) para robô móvel 106. Em alguns casos, a estimativa de posição 122 pode ser chamada a estimativa do posição de robô móvel 106 nos seis graus de liberdade de espaciais de robô móvel 106.
[0036] Neste exemplo ilustrativo, o estimador de posição 118 pode fundir a pluralidade de fluxos de dados 126 para gerar a estimativa de posição 122. Pelo menos uma porção da pluralidade de fluxos de dados 126 pode ser recebida da pluralidade de sistemas de dados 128. Como usado aqui, um sistema de dados na pluralidade de sistemas de dados 128 pode incluir vários sistemas de sensor, várias unidades de processador, ou alguma combinação disso. Como usado aqui, um "sistema de sensor" pode ser incluído de qualquer número de dispositivos de sensor, dispositivos ativos, dispositivos passivos, ou combinação disso.
[0037] Como usado aqui, "fundir" a pluralidade de fluxos de dados 126 pode significar combinar e processar os fluxos de dados diferentes na pluralidade de fluxos de dados 126 para gerar uma única estimativa de posição 122. Cada um de pluralidade de fluxos de dados 126 pode ser incluído de estimativas geradas com o passar do tempo.
[0038] Fluxo de dados 125 é um exemplo de um de pluralidade de fluxos de dados 126. Fluxo de dados 125 pode ser gerado por um de pluralidade de sistemas de dados 128. Neste exemplo ilustrativo, fluxo de dados 125 pode ser incluído de estimativas geradas com o passar do tempo.
[0039] Como usado aqui, uma "estimativa" pode ser uma estimativa da posição de seis graus de liberdade de robô móvel 106. Esta estimativa pode ser gerada baseada em medições geradas tanto a único ponto em tempo ou durante um período de tempo. Em alguns casos, a estimativa também pode incluir metadados. Em alguns exemplos ilustrativos, a estimativa pode ser chamada um ponto de dados de saída tal aqueles o fluxo dados 125 possa ser incluído de uma pluralidade de pontos de dados de saída.
[0040] Estimador de posição 118 pode usar pluralidade de fluxos de dados 126 e um algoritmo de estimação Bayesiano para gerar a estimativa de posição 122. Em particular, o estimador de posição 118 pode usar as equações de estimação Bayesiana seguintes:
Figure img0001
onde t é tempo, xt+1 é a posição de robô móvel 106 a tempo t+1, zT é a coleção de todas as estimativas na pluralidade de fluxos de dados 126 por tempo, , y∑_: é a probabilidade de xt+i dado ZT, xt é a posição de robô móvel 106 a tempo t, é o número total de sistemas de dados na pluralidade de sistemas de dados 128, é a estimativa gerada por um primeiro sistema de dados na pluralidade de sistemas de dados 128 a tempo t+1, e é a estimativa gerada pelo n-ésimo sistema de dados na pluralidade de sistemas de dados 128 a tempo t+1. Para um dado tempo
Figure img0002
j só inclui sistemas de dados que proveram estimativas a tempo t+1.
[0041] O erro no estimador de posição 118 pode ser ademais reduzido aumentando o número de fluxos de dados na pluralidade de fluxos de dados 126 usado para gerar a estimativa de posição 122, e por esse meio o número de sistemas de dados na pluralidade de sistemas de dados 128. Em outras palavras, quando o número de fluxos de dados na pluralidade de fluxos de dados 126 aumenta, o erro em estimativa de posição 122 gerado por estimador de posição 118 diminui.
[0042] Usar técnicas de estimação Bayesiana para gerar a estimativa de posição 122 pode requerer que todos os dados usados para gerar a estimativa de posição 122 sejam probabilísticos. Em outras palavras, todos os dados podem precisar incluir aleatoriedade ou incerteza.
[0043] Porém, fluxos de dados 127 gerados por pluralidade de sistemas de dados 128 podem incluir vários de primeiro tipo de fluxos de dados 132 e vários de segundo tipo de fluxos de dados 130. Um "primeiro tipo de fluxo de dados", tal como um de vários de primeiro tipo de fluxos de dados 132 pode incluir pontos de dados nos quais cada ponto de dados inclui, ou está acoplado com, uma medição de incerteza, baseado em alguma distribuição de probabilidade. Em particular, um primeiro tipo de fluxo de dados pode ser gerado por um sistema probabilístico, modelo, ou algoritmo no qual a produção ou modo que uma produção é gerada para uma dada entrada leva em conta aleatoriedade ou um grau de incerteza. Desta maneira, cada um de vários de primeiro tipo de fluxos de dados 132 pode ser chamado um fluxo de dados probabilísticos em alguns exemplos ilustrativos.
[0044] Como usado aqui, um "segundo tipo de fluxo de dados", tal como um de vários de segundo tipo de fluxos de dados 130 pode incluir pontos de dados nos quais cada ponto de dados não inclui, ou não está acoplado com, uma medição de incerteza. Por exemplo, sem limitação, o ponto de dados pode incluir só um único valor de dados. Em alguns exemplos ilustrativos, este segundo tipo de fluxo de dados pode ser chamado um fluxo de dados pseudo-determinístico.
[0045] Vários de segundo tipo de fluxos de dados 130 em fluxos de dados 127 podem ser recebidos por modificador 120 em estimador de posição 118. Modificador 120 pode ser configurado para modificar um segundo tipo de fluxo de dados para fazer o fluxo de dados utilizável por estimador de posição 118. Em particular, o modificador 120 pode converter vários de segundo tipo de fluxos de dados 130 em vários de primeiro tipo de fluxos de dados processados. Todos do primeiro tipo de fluxos de dados podem então ser processados por estimador de posição 118 para gerar a estimativa de posição 122.
[0046] Como um exemplo ilustrativo, segundo tipo de fluxo de dados 133 pode ser gerado por um da pluralidade de sistemas de dados 128. Neste exemplo, segundo tipo de fluxo de dados 133 pode ter sido gerado usando uma ou mais técnicas de odometria. Modificador 120 pode ser configurado para modificar segundo tipo de fluxo de dados 133 para formar fluxo de dados modificados 135, que é utilizável por estimador de posição 118. Modificador 120 pode converter segundo tipo de fluxo de dados 133 em fluxo de dados modificados 135 usando qualquer número de técnicas. Como um exemplo ilustrativo, o modificador 120 pode aplicar distribuição de probabilidade 137 a segundo tipo de fluxo de dados 133 para formar fluxo de dados modificados 135.
[0047] Dependendo da implementação, a distribuição de probabilidade 137 pode ser uma distribuição Gaussiana ou algum outro tipo de distribuição de probabilidade. Distribuição de probabilidade 137 pode ser uma distribuição de probabilidade predeterminada. Por exemplo, sem limitação, a distribuição de probabilidade 137 pode ter sido determinada empiricamente, usando um modelo matemático, ou de alguma outra maneira antes do robô móvel 106 ser usado para executar várias operações 116 em ambiente 100.
[0048] Convertendo segundo tipo de fluxo de dados 133 em fluxo de dados modificados 135, a necessidade para dados probabilísticos gerados usando um modelo baseado em física de robô móvel 106 pode ser eliminada. Em particular, o termo y...j na equação (1) descrita acima pode ser provido usando um pelo menos um de fluxos de dados 127 da pluralidade de sistemas de dados 128 em vez de um modelo baseado em física. Por exemplo, sem limitação, o estimador de posição 118 pode usar um fluxo de dados de um sistema de odometria na pluralidade de sistemas de dados 128 para prover o termo y...j na equação (1) descrita acima. O termo y...j é a probabilidade da posição de robô móvel 106 a tempo t+1 dada a posição de robô móvel 106 a tempo t.
[0049] Desta maneira, uma distribuição de probabilidade pode ser aplicada a cada um de vários de segundo tipo de fluxos de dados 130 por modificador 120 para formar vários fluxos de dados modificados 129. Cada um de vários de fluxo de dados modificados 129 pode ser igual a cada um de vários de primeiro tipo de fluxos de dados 132. vários fluxos de dados modificados 129 e vários de primeiro tipo de fluxos de dados 132 podem juntos formar a pluralidade de fluxos de dados 126 usados por estimador de posição 118 para formar a estimativa de posição 122.
[0050] Nestes exemplos ilustrativos, a pluralidade de sistemas de dados 128 pode incluir vários sistemas de dados embutidos 134 e vários de sistemas dados externo 136. Como usado aqui, um "sistema de dados embutido", tal como vários de sistemas de dados embutidos 134, pode ser configurado para gerar um robô móvel embutido em fluxo de dados 106. Em alguns casos, um sistema de dados embutido pode estar completamente separado do controlador 114. Em outros exemplos ilustrativos, pelo menos uma porção de um sistema de dados embutido pode ser implementada dentro ou integrada com o controlador 114. O fluxo de dados gerado pelo sistema de dados embutido pode ser recebido por estimador de posição 118 ou modificador 120, dependendo de se o fluxo de dados é um segundo tipo de fluxo de dados ou um primeiro tipo de fluxo de dados.
[0051] Sistema de dados embutido 144 pode ser um exemplo de um de vários sistemas de dados embutidos 134. Sistema de dados embutido 144 pode incluir pelo menos um de um elemento passivo, um elemento ativo, uma unidade de processador, um circuito integrado, um microprocessador, um sistema de sensor, um objetivo, ou algum tipo de outro dispositivo ou elemento. Pelo menos a porção de sistema de dados embutido 144 que gera um fluxo de dados está localizado embutido em robô móvel 106. Desta maneira, tudo do sistema de dados embutido 144 pode estar localizado embutido em robô móvel 106 ou uma porção de sistema de dados embutido 144 pode estar localizada embutido, enquanto outra porção pode estar localizada externo.
[0052] Como usado aqui, um "sistema de dados externo", tal como um de vários sistemas de dados externos 136, pode ser um sistema de dados configurado para gerar um fluxo de dados remotamente com respeito a robô móvel 106. O fluxo de dados gerado pelo sistema de dados externo pode então ser enviado para controlador 114 usando, por exemplo, sem limitação, uma ligação de comunicações sem fios.
[0053] Sistema de dados externo 145 pode ser um exemplo de vários sistemas de dados externos 136. Sistema de dados externo 145 pode incluir pelo menos um de um elemento passivo, um elemento ativo, uma unidade de processador, um circuito integrado, um microprocessador, um sistema de sensor, um objetivo, ou algum tipo de outro dispositivo ou elemento. Pelo menos a porção de sistema de dados externo 145 que gera um fluxo de dados está localizado externo em robô móvel 106. Desta maneira, tudo do sistema de dados externo 145 pode estar localizado externo ou uma porção do sistema de dados externo 145 pode estar localizada externo, enquanto outra porção pode estar localizada embutido.
[0054] Adicionalmente, o controlador 114 pode estar configurado para reduzir erro em mover o robô móvel 106 ao longo de caminho 117. Em particular, o controlador 114 pode reduzir o erro aleatório em mover o robô móvel 106 de local inicial 138 ao longo de caminho 117 para local desejado 140 ao longo de caminho 117 para dentro de tolerâncias selecionadas. Em um exemplo ilustrativo, o controlador 114 pode usar um ou mais de vários sistemas de dados embutidos 134 para reduzir este erro aleatório.
[0055] Em particular, o controlador 114 pode usar um ou mais de número de sistemas de dados embutidos 134 configurados para observar vários pontos de referência 142 dentro de ambiente 100 para reduzir o erro aleatório em mover o robô móvel 106 de local inicial 138 ao longo de caminho 117 para local desejado 140 ao longo de caminho 117. Um ponto de referência em vários pontos de referência 142 pode ser qualquer característica reconhecível em ambiente 100. Por exemplo, sem limitação, um ponto de referência pode levar a forma de um pilar, uma plataforma, uma característica estrutural, um pedaço de equipamento, uma estrutura feita pelo homem, um objetivo, um rótulo, ou algum outro tipo de ponto de referência.
[0056] Neste exemplo ilustrativo, o sistema de dados embutido 144 pode incluir um sistema de sensor capaz de observar pelo menos um de vários pontos de referência 142 em ambiente 100 enquanto o robô móvel 106 está em local inicial 138 dentro de ambiente 100. Por exemplo, sem limitação, o sistema de dados embutido 144 pode observar o ponto de referência 146 de vários pontos de referência 142 enquanto em local inicial 138. A observação de ponto de referência 146 pode ser feita um número selecionado de vezes. Por exemplo, N observações podem ser feitas de ponto de referência 146.
[0057] Ponto de referência 146 pode ser um ponto de referência natural ou feito pelo homem, dependendo da implementação. Neste exemplo ilustrativo, o ponto de referência 146 pode ser um ponto de referência estacionário. Porém, em outro exemplo ilustrativo, o ponto de referência 146 pode ser móvel e capaz de se mover dentro de ambiente 100 como precisado. Em alguns exemplos ilustrativos, o ponto de referência 146 pode ser uma pessoa.
[0058] Sistema de dados embutido 144 pode ser usado para identificar uma distância relativa inicial entre local inicial 138 de robô móvel 106 e ponto de referência 146. Quando o número de observações de ponto de referência 146 feitas aumenta, o erro na distância relativa inicial entre o local inicial de robô móvel 106 e ponto de referência 146 diminui. A redução em erro está baseada no teorema de limite central.
[0059] Em particular, o teorema de limite central pode ser explorado tal que o erro possa ser reduzido por um fator da raiz quadrada de n, onde n é o número total de observações feitas. O teorema de limite central declara que, sob certas condições, a soma de n variáveis aleatórias distribuídas identicamente independentes, quando graduada apropriadamente, pode convergir em distribuição para uma distribuição normal padrão. Assim, em um exemplo ilustrativo, aumentando n, a covariância empírica diminuirá a uma taxa dada como segue:
Figure img0003
onde u é o desvio padrão com respeito à média.
[0060] Robô móvel 106 pode então ser movido para um local novo até onde possível para a direção de local desejado 140 sem perder ponto de referência 146 dentro do campo de visão do sistema de sensor de sistema de dados embutido 144. Sistema de dados embutido 144 pode identificar uma nova distância relativa entre o local novo de robô móvel 106 e ponto de referência 146. A diferença entre a distância relativa inicial e a nova distância relativa pode ser então computada com erro mínimo e usada para determinar o novo local de robô móvel 106.
[0061] Se o local novo não for o local desejado 140 dentro de tolerâncias selecionadas, o robô móvel 106 pode então ser movido mais perto ao local desejado 140 usando o novo ponto de referência 147. Em particular, o sistema de dados embutido 144 pode procurar novo ponto de referência 147 em vários pontos de referência 142, enquanto no novo local. Enquanto no novo local, o sistema de dados embutido 144 pode então observar o novo ponto de referência 147 o número selecionado, N, de vezes. Desta maneira, o novo ponto de referência 147 pode ser considerado "correlatado" com o ponto de referência 146 no novo local.
[0062] O processo de mover para outro local tão perto quanto possível ao local desejado 140 e as operações executadas enquanto neste outro local, como descrito acima, pode então ser repetidas. Este tipo de movimento e processamento pode ser repetido até que o robô móvel 106 alcançou o local desejado 140 dentro de tolerâncias selecionadas. Este tipo de processo pode reduzir o erro global associado com mover o robô móvel 106 de local inicial 138 para local desejado 140 para dentro de tolerâncias selecionadas, quando comparado a mover o robô móvel 106 sem usar vários pontos de referência 142 e observar cada ponto de referência de vários pontos de referência 142 um número selecionado, N, de vezes.
[0063] Com referência agora à Figura 2, uma ilustração da pluralidade de sistemas de dados 128 é descrita da Figura 1 na forma de um diagrama de bloco conforme uma concretização ilustrativa. Como descrito, a pluralidade de sistemas de dados 128 pode incluir vários sistemas de dados embutidos 134 e vários sistemas de dados externos 136.
[0064] Neste exemplo ilustrativo, a pluralidade de sistemas de dados 128 pode incluir a unidade de medição inercial 202, sistema de odometria de cor e profundidade 204, sistema de odometria de roda 206, sistema de odometria visual 208, e sistema de detecção e determinação de alcance de luz 210, sistema de posicionamento global em recinto fechado 212, sistema de captura de movimento 214 e sistema a laser 216. Unidade de medição inercial 202, sistema de odometria de cor e profundidade 204, sistema de odometria de roda 206, sistema de odometria visual 208, e sistema de detecção e determinação de alcance de luz 210 podem fazer parte de vários sistemas de dados embutidos 134. Sistema de posicionamento global em recinto fechado 212, sistema de captura de movimento 214 e sistema a laser 216 podem fazer parte de vários sistemas de dados externos 136.
[0065] Neste exemplo ilustrativo, a unidade de medição inercial 202 pode medir deslocamento relativo de robô móvel 106 dentro de ambiente 100 sentindo velocidade, orientação e aceleração. Unidade de medição inercial 202 pode gerar o fluxo de dados 203, que pode ser enviado para controlador 114 como um de fluxos de dados 127. Dependendo da maneira na qual a unidade de medição inercial 202 está implementada, o fluxo de dados 203 pode ser considerado um de vários de primeiro tipo de fluxos de dados 132 ou um de vários de segundo tipo de fluxos de dados 130.
[0066] Sistema de odometria de cor e profundidade 204 pode ser usado para prover dados de cor e dados de profundidade para ambiente 100. Sistema de odometria de roda 206 pode ser usado para medir deslocamento relativo de robô móvel 106 dentro de ambiente 100 quando o sistema de movimento 110 na Figura 1 inclui rodas. Sistema de odometria visual 208 pode usar câmeras para estimar o deslocamento relativo de robô móvel 106 dentro de ambiente 100. Sistema de detecção e determinação de alcance de luz 210 pode gerar varredura a laser de ambiente 100.
[0067] Cada um de sistema de odometria de cor e profundidade 204, sistema de odometria de roda 206, sistema de odometria visual 208 e sistema de detecção e determinação de alcance de luz 210 pode estar localizado completamente embutido em robô móvel 106. Em um exemplo ilustrativo, o sistema de odometria de cor e profundidade 204, sistema de odometria de roda 206, sistema de odometria visual 208 e sistema de detecção e determinação de alcance de luz 210 podem gerar o fluxo de dados 205, fluxo de dados 207, fluxo de dados 209 e fluxo de dados 211, respectivamente, que podem ser enviados para controlador 114 como parte de fluxos de dados 127. Neste exemplo ilustrativo, cada um de fluxo de dados 205, fluxo de dados 207, fluxo de dados 209 e fluxo de dados 211 pode ser incluído de vários de primeiro tipo de fluxos de dados 132 ou vários de segundo tipo de fluxos de dados 130, dependendo da implementação. Neste exemplo ilustrativo, cada um de fluxo de dados 205, fluxo de dados 207, fluxo de dados 209 e fluxo de dados 211 pode ser incluído em vários de segundo tipo de fluxos de dados 130.
[0068] Em outros exemplos ilustrativos, um ou mais de fluxo de dados 205, fluxo de dados 207, fluxo de dados 209 e fluxo de dados 211 gerados por sistema de odometria de cor e profundidade 204, sistema de odometria de roda 206, sistema de odometria visual 208 e sistema de detecção e determinação de alcance de luz 210 respectivamente, podem ser enviados para localizador e mapeador 218. Localizador e mapeador 218 podem ser implementados dentro de controlador 114 na Figura 1 ou separados de controlador 114, dependendo da implementação.
[0069] Ademais, o localizador e mapeador 218 podem levar a forma de localizador e mapeador bidimensionais 220 ou localizador e mapeador tridimensionais 222, dependendo da implementação. Em alguns casos, o sistema de odometria de cor e profundidade 204, sistema de odometria de roda 206, sistema de odometria visual 208, sistema de detecção e determinação de alcance de luz 210 e localizador e mapeador 218 podem juntos formar o sistema de localização e mapeamento 224. Sistema de localização e mapeamento 224 pode ser considerado um sistema de dados embutido em vários sistemas de dados embutidos 134.
[0070] Localizador e mapeador 218 podem ser configurados para estimar simultaneamente um mapa métrico de ambiente 100 e uma estimativa de um posição de robô móvel 106 dentro deste mapa métrico baseado em todos os fluxos de dados recebidos a localizador e mapeador 218. O mapa métrico pode ser bidimensional ou tridimensional, dependendo da implementação. Em um exemplo ilustrativo, o localizador e mapeador 218 pode ser chamado um sistema de localização e mapeamento simultâneo (SLAM). Nestes exemplos, a estimativa do mapa métrico de ambiente 100 e a estimativa da posição de robô móvel 106 dentro deste mapa métrico podem ser enviadas na forma de fluxo de dados 213 para controlador 114 na Figura 1 como um de fluxos de dados 127. Fluxo de dados 213 pode ser um de vários de primeiro tipo de fluxos de dados 132 ou um de vários de segundo tipo de fluxos de dados 130.
[0071] Neste exemplo ilustrativo, o sistema de posicionamento global em recinto fechado 212 inclui vários dispositivos de sensor 226, vários transmissores 228 e servidor 230. Vários transmissores 228 podem estar localizados externamente, enquanto vários dispositivos de sensor 226 podem estar localizados embutido em robô móvel 106.
[0072] Vários transmissores 228 podem estar configurados para gerar vários sinais de luz 229. Vários sinais de luz 229 podem incluir pelo menos um de um sinal de laser, um sinal de infravermelho, ou algum outro tipo de sinal de luz. Vários dispositivos de sensor 226 podem ser passivos e usados para sentir vários sinais de luz 229 transmitidos de vários transmissores 228. Vários dispositivos de sensor 226 podem enviar dados de luz 231 sobre o número sentido de sinais de luz 229 para servidor 230.
[0073] Servidor 230 pode estar configurado para usar estes dados para estimar a posição de robô móvel 106 dentro de ambiente 100 com o passar do tempo. As estimativas geradas com o passar do tempo podem formar o fluxo de dados 233, que pode ser enviado para controlador 114 como um de fluxos de dados 127. Fluxo de dados 233 pode ser um de vários de primeiro tipo de fluxos de dados 132 ou um de vários de segundo tipo de fluxos de dados 130, dependendo da implementação. Servidor 230 pode estar localizado externo. Desta maneira, o servidor 230 pode ser uma fonte de dados externo que faz o sistema de posicionamento global em recinto fechado 212 um de vários sistemas de dados externos 136.
[0074] Sistema de captura de movimento 214 pode incluir objetivo de captura de movimento 232, sistema de geração de imagem 234 e servidor de captura de movimento 236. Objetivo de captura de movimento 232 pode ser passivo e localizado embutido em robô móvel 106. Sistema de geração de imagem 234 pode estar localizado externo dentro do ambiente 100 na Figura 1 e usado para gerar dados de captura de movimento 235 e rastrear objetivo de captura de movimento 232. Dados de captura de movimento 235 gerados por sistema de captura de movimento 214 podem ser enviados para servidor de captura de movimento 236 para processamento adicional.
[0075] Servidor de captura de movimento 236 pode então enviar dados de captura de movimento 235 na forma de fluxo de dados 237 para controlador 114 como um de fluxos de dados 127. Em alguns casos, o servidor de captura de movimento 236 pode processar dados de captura de movimento 235 para formar o fluxo de dados 237. Fluxo de dados 237 pode ser um de vários de primeiro tipo de fluxos de dados 132 ou um de vários de segundo tipo de fluxos de dados 130, dependendo da implementação. Servidor de captura de movimento 236 pode estar localizado externo dentro do ambiente 100. Desta maneira, o servidor de captura de movimento 236 pode ser considerado uma fonte de dados externo, que faz o sistema de captura de movimento 214 um de vários sistemas de dados externos 136.
[0076] Como descrito, o sistema de laser 216 pode incluir objetivo de laser 238 e sensor de laser 240. Objetivo de laser 238 pode ser passivo e localizado embutido em robô móvel 106. Sensor de laser 240 pode estar localizado externo dentro do ambiente 100 e usado para rastrear o movimento de objetivo de laser 238. Sensor de laser 240 pode medir a posição de objetivo de laser 238 e processar estes dados para gerar uma estimativa de uma posição de robô móvel 106, que pode formar o fluxo de dados 241 com o passar do tempo. Fluxo de dados 241 podem ser um de vários de primeiro tipo de fluxos de dados 132 ou um de vários de segundo tipo de fluxos de dados 130, dependendo da implementação. Sensor de laser 240 pode enviar o fluxo de dados 241 para controlador 114 como um de fluxos de dados 127.
[0077] Desta maneira, vários tipos de sistemas de sensor e dispositivos podem ser usados para gerar fluxos de dados 127. Vários de segundo tipo de fluxos de dados 130 em fluxos de dados 127 podem ser processados através de modificador 120 na Figura 1 para formar vários fluxos de dados modificados 129. Juntos, vários fluxos de dados modificados 129 na Figura 1 e vários de primeiro tipo de fluxos de dados 132 podem formar a pluralidade de fluxos de dados 126 na Figura 1 usada por estimador de posição 118 para gerar a estimativa de posição 122.
[0078] Com referência agora à Figura 3, uma ilustração dos componentes da pluralidade de sistemas de dados 128 que estão localizados embutidos e os componentes da pluralidade de sistemas de dados 128 que estão localizados externamente como descrito na Figura 2 é descrita conforme uma concretização ilustrativa. Como descrito, alguns dos componentes da pluralidade de dados sistemas 128 da Figura 2 estão localizados embutidos 300, enquanto outros componentes da pluralidade de dados sistemas 128 da Figura 2 estão localizados externamente 302. Na Figura 3, embutido 300 significa embutido em robô móvel 106 na Figura 1 e externo 302 significa externo com respeito a robô móvel 106 na Figura 1.
[0079] Em particular, a unidade de medição inercial 202, sistema de odometria de cor e profundidade 204, sistema de odometria de roda 206, sistema de odometria visual 208, sistema de detecção e determinação de alcance de luz 210, e localizador e mapeador 218 da Figura 2 estão localizados embutidos 300. Ademais, vários dispositivos de sensor 226, objetivo de captura de movimento 232, e objetivo de laser 238 da Figura 2 também estão localizados embutidos 300. Vários transmissores 228, servidor 230, sistema de geração de imagem 234, servidor de captura de movimento 236 e sensor de laser 240 podem estar localizados externamente.
[0080] Em um exemplo ilustrativo, o sistema de odometria de cor e profundidade 204, sistema de odometria de roda 206, sistema de odometria visual 208 e sistema de detecção e determinação de alcance de luz 210 enviam o fluxo de dados 205, fluxo de dados 207, fluxo de dados 209 e fluxo de dados 211, respectivamente, para localizador e mapeador 218. Localizador e mapeador 218 podem então usar estes fluxos de dados para formar o fluxo de dados 213 e enviar o fluxo de dados 213 para controlador 114 da Figura 1, que também está localizado embutido 300. Unidade de medição inercial 202 pode enviar o fluxo de dados 203 diretamente para controlador 114. Neste exemplo ilustrativo, estes fluxos de dados podem ser enviados para controlador 114 usando qualquer número de ligações de comunicações por fios ou sem fios.
[0081] Ademais, o servidor 230, servidor de captura de movimento 236 e sensor de laser 240 podem enviar o fluxo de dados 233, fluxo de dados 237 e fluxo de dados 241 para controlador 114. Neste exemplo ilustrativo, estes fluxos de dados podem ser enviados para controlador 114 por comunicação sem fios.
[0082] Um fluxo de dados que é enviado para controlador 114 pode ser recebido por estimador de posição 118 se o fluxo de dados for um primeiro tipo de fluxo de dados em vários de primeiro tipo de fluxos de dados 132 na Figura 1 ou modificador 120 se o fluxo de dados for um segundo tipo de fluxo de dados em vários de segundo tipo de fluxos de dados 130 na Figura 1.
[0083] As ilustrações de ambiente 100 na Figura 1, a pluralidade de sistemas de dados 128 na Figura 2, e os componentes localizados embutidos 300 e externos 302 na Figura 3 não são significados implicar limitações físicas ou arquitetônicas à maneira na qual uma concretização ilustrativa pode ser implementada. Outros componentes além de ou em lugar dos ilustrados podem ser usados. Alguns componentes podem ser opcionais. Também, os blocos são apresentados para ilustrar alguns componentes funcionais. Um ou mais destes blocos podem ser combinados, divididos, ou combinados e divididos em blocos diferentes quando implementados em uma concretização ilustrativa.
[0084] Com referência agora à Figura 4, uma ilustração de um ambiente industrial é descrita conforme uma concretização ilustrativa. Neste exemplo ilustrativo, o ambiente industrial 400 pode ser um exemplo de uma implementação para ambiente industrial 101 na Figura 1. Como descrito, a asa de aeronave 402 pode ser fabricada dentro de ambiente industrial 400. Asa de aeronave 402 pode ser um exemplo de uma implementação para objeto 103 na Figura 1.
[0085] Robôs móveis 404 podem ser usados para executar as operações precisadas para fabricar a asa de aeronave 402. Robôs móveis 404 podem ser um exemplo de uma implementação para várias plataformas móveis 102 na Figura 1. Neste exemplo ilustrativo, os robôs móveis 404 podem estar configurados para se mover no piso 406 de ambiente industrial 400. Cada um de robôs móveis 404 pode ser capaz de identificar sua posição dentro e navegar por ambiente industrial 400.
[0086] Com referência agora à Figura 5, uma ilustração de um robô móvel é descrita conforme uma concretização ilustrativa. Neste exemplo ilustrativo, o robô móvel 500 pode ser um exemplo de uma implementação para robô móvel 106 na Figura 1. Ademais o robô móvel 500 pode ser um exemplo de uma maneira na qual cada um de robôs móveis 404 na Figura 4 pode ser implementado.
[0087] Como descrito, o robô móvel 500 pode incluir a base 502, sistema de movimento 504 e a pluralidade de dispositivos 506. Neste exemplo ilustrativo, a pluralidade de dispositivos 506 pode incluir o sistema de detecção de luz e determinação de alcance 508, sistema de odometria de cor e profundidade 510 e objetivos 512. Sistema de detecção de luz e determinação de alcance 508 pode ser um exemplo de uma implementação para sistema de detecção de luz e determinação de alcance 210 na Figura 2. Sistema de odometria de cor e profundidade 510 pode ser um exemplo de uma implementação para sistema de odometria de cor e profundidade 204 na Figura 2. Objetivos 512 podem ser um exemplo de uma implementação para objetivo de captura de movimento 232 e objetivo de laser 238 na Figura 2.
[0088] As ilustrações das Figuras 4-5 não são pretendidas para implicar limitações físicas ou arquitetônicas à maneira na qual uma concretização ilustrativa pode ser implementada. Outros componentes além de ou em lugar dos ilustrados podem ser usados. Alguns componentes podem ser opcionais.
[0089] Os componentes diferentes mostrados nas Figuras 4-5 podem ser exemplos ilustrativos de como componentes mostrados em forma de bloco nas Figuras 1-3 podem ser implementados como estruturas físicas. Adicionalmente, alguns dos componentes nas Figuras 4-5 podem ser combinados com componentes nas Figuras 1-3, usados com componentes nas Figuras 1-3, ou uma combinação dos dois.
[0090] Com referência agora à Figura 6, uma ilustração de um processo para gerar uma estimativa de posição para uma plataforma móvel em um ambiente é descrita na forma de um fluxograma conforme uma concretização ilustrativa. O processo ilustrado na Figura 6 pode ser implementado para administrar o movimento de várias plataformas móveis 102 na Figura 1.
[0091] O processo pode começar gerando a pluralidade de fluxos de dados 126 em que a pluralidade de fluxos de dados 126 inclui vários de primeiro tipo de fluxos de dados 132 e vários de segundo tipo de fluxos de dados 130 (operação 600). A seguir, a distribuição de probabilidade 137 pode ser aplicada a cada de vários de segundo tipo de fluxos de dados 130 para formar vários fluxos de dados modificados 129 (operação 602).
[0092] Depois disso, vários de primeiro tipo de fluxos de dados 132 e vários fluxos de dados modificados 129 podem ser fundidos para gerar a estimativa de posição 122 para a plataforma móvel 104 com respeito a ambiente 100 ao redor de plataforma móvel 104 com um nível desejado de precisão (operação 604), com o processo terminando depois disso. Na operação 604, fusão pode significar usar técnicas de estimação Bayesiana para gerar a estimativa de posição 122.
[0093] Com referência agora à Figura 7, uma ilustração de um processo para guiar um robô móvel dentro de um ambiente industrial é descrita na forma de um fluxograma conforme uma concretização ilustrativa. O processo ilustrado na Figura 7 pode ser implementado para administrar o movimento de robô móvel 106 dentro de ambiente industrial 101 na Figura 1. Em particular, o processo na Figura 7 pode ser usado para reduzir o erro em mover o robô móvel 106 ao longo de caminho 117 em ambiente 100.
[0094] O processo pode começar identificando o local desejado 140 ao qual o robô móvel 106 é para ser movido (operação 700). A seguir, um sistema de sensor de sistema de dados embutido 144 para robô móvel 106 é usado para procurar o ponto de referência 146 em ambiente 100, enquanto o robô móvel 106 está em um local atual (operação 702). A seguir, o ponto de referência atual em ambiente 100 é observado um número selecionado de vezes usando o sistema de sensor de sistema de dados embutido 144 com o robô móvel 106 no local atual (operação 704). A seguir, o sistema de dados embutido 144 identifica uma distância relativa inicial entre o local atual de robô móvel 106 e o ponto de referência atual (operação 706). Na operação 706, esta identificação pode ser uma estimação.
[0095] Depois disso, o robô móvel 106 é movido para um local novo até onde possível para a direção de local desejado 140 para robô móvel 106 sem perder o ponto de referência atual no campo de visão do sistema de sensor de sistema de dados embutido 144 (operação 708). O ponto de referência atual é reobservado um número selecionado de vezes usando o sistema de sensor de sistema de dados embutido 144, enquanto o robô móvel 106 está no local novo (operação 710). O sistema de dados embutido 144 identifica uma nova distância relativa entre o local novo de robô móvel 106 e o ponto de referência atual (operação 712). Na operação 712, esta identificação pode ser uma estimação.
[0096] Sistema de dados embutido 144 computa a diferença entre a distância relativa inicial e a nova distância relativa (operação 714). Uma estimativa do novo local de robô móvel 106 é então identificada usando a diferença (operação 716). Uma determinação é então feita sobre se o local novo está em local desejado 140 dentro de tolerâncias selecionadas (operação 718). Se o local novo estiver em local desejado 140 dentro de tolerâncias selecionadas, o processo termina.
[0097] Caso contrário, o sistema de dados embutido 144 procura por novo ponto de referência 147, enquanto no novo local (operação 720). Enquanto no novo local, o sistema de dados embutido 144 então observa o novo ponto de referência 147 o número selecionado de vezes usando o sistema de sensor de sistema de dados embutido 144 (operação 722). Sistema de dados embutido 144 então identifica uma distância relativa entre o novo local de robô móvel 106 e novo ponto de referência 147 (operação 722). Na operação 722, esta identificação pode ser uma estimação. Desta maneira, o novo ponto de referência 147 pode ser considerado "correlatado" com o ponto de referência 146 no novo local. O processo então reidentifica o novo ponto de referência 147 como o ponto de referência atual, o novo local como o local atual, e a distância relativa como a distância relativa inicial (operação 724), com o processo então retornando à operação 708 como descrito acima.
[0098] Retornando agora à Figura 8, uma ilustração de um sistema de processamento de dados na forma de um diagrama de bloco é descrita conforme uma concretização ilustrativa. Sistema de processamento de dados 800 pode ser usado para implementar o controlador 111 na Figura 1. Como descrito, o sistema de processamento de dados 800 inclui a estrutura de comunicações 802, que provê comunicações entre a unidade de processador 804, dispositivos de armazenamento 806, unidade de comunicações 808, unidade de entrada/saída 810 e exibição 812. Em alguns casos, a estrutura de comunicações 802 pode ser implementada como um sistema de barramento.
[0099] Unidade de processador 804 está configurada para executar as instruções para software para executar várias operações. Unidade de processador 804 pode incluir vários processadores, um núcleo de multiprocessador, e/ou algum outro tipo de processador, dependendo da implementação. Em alguns casos, a unidade de processador 804 pode levar a forma de uma unidade de hardware, tal como um sistema de circuito, uma circuito integrado específico de aplicação (ASIC), um dispositivo lógico programável, ou algum outro tipo adequado de unidade de hardware.
[00100] Instruções para o sistema operacional, aplicativos, e/ou programas corridos por unidade de processador 804 podem estar localizadas em dispositivos de armazenamento 806. Dispositivos de armazenamento 806 podem estar em comunicação com a unidade de processador 804 por estrutura de comunicações 802. Como usado aqui, um dispositivo de armazenamento, também chamado um dispositivo de armazenamento legível por computador, é qualquer pedaço de hardware capaz de armazenar informação sobre uma base temporária e/ou permanente. Esta informação pode incluir, mas não está limitada a, dados, código de programa, e/ou outra informação.
[00101] Memória 814 e armazenamento persistente 816 são exemplos de dispositivos de armazenamento 806. Memória 814 pode levar a forma de, por exemplo, uma memória de acesso aleatório ou algum tipo de dispositivo de armazenamento volátil ou não volátil. Armazenamento persistente 816 pode incluir qualquer número de componentes ou dispositivos. Por exemplo, o armazenamento persistente 816 pode incluir um disco rígido, uma memória flash, um disco óptico regravável, uma fita magnética regravável, ou alguma combinação do anterior. As mídias usadas por armazenamento persistente 816 podem ou não ser removíveis.
[00102] Unidade de comunicações 808 permite a sistema de processamento de dados 800 se comunicar com outros sistemas e/ou dispositivos de processamento de dados. Unidade de comunicações 808 pode prover comunicações usando ligações de comunicações físicas e/ou sem fios.
[00103] Unidade de entrada/saída 810 permite entrada ser recebida e saída ser enviada para outros dispositivos conectados ao sistema de processamento de dados 800. Por exemplo, a unidade de entrada/saída pode permitir a entrada de usuário ser recebida por um teclado, um mouse e/ou algum outro tipo de dispositivo de entrada. Como outro exemplo, a unidade de entrada/saída 810 pode permitir a saída ser enviada para uma impressora conectada ao sistema de processamento de dados 800.
[00104] Exibição 812 está configurada para exibir informação a um usuário. Exibição 812 pode incluir, por exemplo, sem limitação, um monitor, uma tela de toque, uma exibição a laser, uma exibição holográfica, um dispositivo de exibição virtual, e/ou algum outro tipo de dispositivo de exibição.
[00105] Neste exemplo ilustrativo, os processos das concretizações ilustrativas diferentes podem ser executados pela unidade de processador 804 usando instruções implementadas por computador. Estas instruções podem ser chamadas código de programa, código de programa utilizável por computador, ou código de programa legível por computador e podem ser lidas e executadas por um ou mais processadores na unidade de processador 804.
[00106] Nestes exemplos, o código de programa 818 está localizado em uma forma funcional em mídia legível por computador 820, que é removível seletivamente, e pode ser carregada para ou transferida para sistema de processamento de dados 800 para execução pela unidade de processador 804. Código de programa 818 e mídia legível por computador 820 juntos formam o produto de programa de computação 822. Neste exemplo ilustrativo, a mídia legível por computador 820 pode ser mídia de armazenamento legível por computador 824 ou mídia de sinal legível por computador 826.
[00107] Mídia de armazenamento legível por computador 824 é um dispositivo de armazenamento físico ou tangível usado para armazenar código de programa 818 em lugar de um meio que propaga ou transmite código de programa 818. Mídia de armazenamento legível por computador 824 pode ser, por exemplo, sem limitação, um disco óptico ou magnético ou um dispositivo de armazenamento persistente que está conectado ao sistema de processamento de dados 800.
[00108] Alternativamente, o código de programa 818 pode ser transferido ao sistema de processamento de dados 800 usando mídia de sinal legível por computador 826. Mídia de sinal legível por computador 826 pode ser, por exemplo, um sinal de dados propagado contendo código de programa 818. Este sinal de dados pode ser um sinal eletromagnético, um sinal óptico, e/ou algum outro tipo de sinal que pode ser transmitido através de ligações de comunicações físicas e/ou sem fios.
[00109] A ilustração de sistema de processamento de dados 800 na Figura 8 não é significada para prover limitações arquitetônicas à maneira na qual as concretizações ilustrativas podem ser implementadas. As concretizações ilustrativas diferentes podem ser implementadas em um sistema de processamento de dados que inclui componentes além de ou em lugar daqueles ilustrados para sistema de processamento de dados 800. Ademais, componentes mostrados na Figura 8 podem ser variados dos exemplos ilustrativos mostrados.
[00110] Os fluxogramas e diagrama de blocos nas concretizações descritas diferentes ilustram a arquitetura, funcionalidade e operação de algumas possíveis implementações de aparelhos e métodos em uma concretização ilustrativa. Nesta consideração, cada bloco nos fluxogramas ou diagrama de blocos pode representar um módulo, um segmento, uma função, e/ou uma porção de uma operação ou etapa.
[00111] Em algumas implementações alternativas de uma concretização ilustrativa, a função ou funções notadas nos blocos podem ocorrer fora da ordem notada nas figuras. Por exemplo, em alguns casos, dois blocos mostrados em sucessão podem ser executados substancialmente simultaneamente, ou os blocos podem às vezes ser executados na ordem inversa, dependendo da funcionalidade envolvida. Também, outros blocos podem ser adicionados além dos blocos ilustrados em um fluxograma ou diagrama de bloco.
[00112] Concretizações ilustrativas da exposição podem ser descritas no contexto de método de fabricação e serviço de aeronave 900 como mostrado na Figura 9 e aeronave 1000 como mostrada na Figura 10. Retornando primeiro à Figura 9, uma ilustração de uma método de fabricação e serviço de aeronave é descrito na forma de um diagrama de bloco conforme uma concretização ilustrativa. Durante pré-produção, o método de fabricação e serviço de aeronave 900 pode incluir especificação e projeto 902 de aeronave 1000 na Figura 10 e obtenção de material 904.
[00113] Durante produção, fabricação de componente e submontagem 906 e integração de sistema 908 de aeronave 1000 na Figura 10 acontece. Depois disso, a aeronave 1000 na Figura 10 pode passar por certificação e entrega 910 a fim de ser colocada em serviço 912. Enquanto em serviço 912 por um cliente, a aeronave 1000 na Figura 10 é programada para manutenção de rotina e serviço 914, que pode incluir modificação, reconfiguração, reforma e outra manutenção ou serviço.
[00114] Cada um dos processos do método de fabricação e serviço de aeronave 900 pode ser executado ou efetuado por um integrador de sistema, um terceiro, e/ou operador. Nestes exemplos, o operador pode ser um cliente. Para os propósitos desta descrição, um integrador de sistema pode incluir, sem limitação, qualquer número de fabricantes de aeronave e subcontratantes de sistema principal; um terceiro pode incluir, sem limitação, qualquer número de vendedores, subcontratantes, e provedores; e um operador pode ser uma linha aérea, uma companhia de arrendamento, uma entidade militar, uma organização de serviço, e assim por diante.
[00115] Com referência agora à Figura 10, uma ilustração de uma aeronave é descrita na forma de um diagrama de bloco no qual uma a concretização ilustrativa pode ser implementada. Neste exemplo, a aeronave 1000 é produzida por método de fabricação e serviço de aeronave 900 na Figura 9 e pode incluir a fuselagem 1002 com a pluralidade de sistemas 1004 e interior 1006. Exemplos de sistemas 1004 incluem um ou mais de sistema de propulsão 1008, sistema elétrico 1010, sistema hidráulico 1012 e sistema ambiental 1014. Qualquer número de outros sistemas pode ser incluído. Embora um exemplo aeroespacial seja mostrado, concretizações ilustrativas diferentes podem ser aplicadas a outras indústrias, tal como a indústria automotiva.
[00116] Aparelhos e métodos concretizados aqui podem ser empregados durante pelo menos uma das fases do método de fabricação e serviço de aeronave 900 na Figura 9. Em particular, várias plataformas móveis 102 podem ser usadas durante qualquer uma das fases do método de fabricação e serviço de aeronave 900. Por exemplo, sem limitação, várias plataformas móveis 102 podem ser usadas para executar operações durante pelo menos uma de fabricação de componente e submontagem 906, integração de sistema 908, manutenção de rotina e serviço 914, ou alguma outra fase do método de fabricação e serviço de aeronave 900.
[00117] Em um exemplo ilustrativo, componentes ou submontagens produzidas na fabricação de componente e submontagem 906 na Figura 9 podem ser fabricados ou manufaturados de uma maneira semelhante a componentes ou submontagens produzidas enquanto a aeronave 1000 está em serviço 912 na Figura 9. Como ainda outro exemplo, uma ou mais concretizações de aparelho, concretizações de método, ou uma combinação disso podem ser utilizadas durante fases de produção, tal como fabricação de componente e submontagem 906 e integração de sistema 908 na Figura 9. Uma ou mais concretizações de aparelho, concretizações de método, ou uma combinação disso podem ser utilizadas enquanto a aeronave 1000 está em serviço 912 e/ou durante manutenção e serviço 914 na Figura 9. O uso de várias das concretizações ilustrativas diferentes pode despachar substancialmente a montagem e/ou reduzir o custo de aeronave 1000.
[00118] A descrição das concretizações ilustrativas diferentes foi apresentada para propósitos de ilustração e descrição, e não é pretendida ser exaustiva ou limitada às concretizações na forma exposta. Muitas modificações e variações serão aparentes àqueles de habilidade ordinária na arte. Ademais, concretizações ilustrativas diferentes podem prover características diferentes quando comparadas a outras concretizações desejáveis. A concretização ou concretizações selecionadas são escolhidas e descritas a fim de melhor explicar os princípios das concretizações, a aplicação prática, e habilitar outros de habilidade ordinária na arte entenderem a exposição para várias concretizações com várias modificações como são adequadas ao uso particular contemplado.
[00119] Assim, em resumo, de acordo com um primeiro aspecto da presente invenção, é provido: A1. Um aparelho incluindo: uma pluralidade de sistemas de dados configurados para gerar uma pluralidade de fluxos de dados nos quais a pluralidade de fluxos de dados inclui vários de primeiro tipo de fluxos de dados e vários de segundo tipo de fluxos de dados; um modificador configurado para aplicar uma distribuição de probabilidade a cada um do número de segundo tipo de fluxos de dados para formar vários fluxos de dados modificados; e um estimador de posição embutido de uma plataforma móvel e configurado para receber e fundir vários de primeiro tipo de fluxos de dados e vários fluxos de dados modificados para gerar uma estimativa de posição com um nível desejado de precisão para a plataforma móvel com respeito a um ambiente ao redor da plataforma móvel. A2. Também é provido, o aparelho de parágrafo A1, em que pelo menos um dos vários de segundo tipo de fluxos de dados é recebido de um sistema de odometria na pluralidade de sistemas de dados. A3. Também é provido, o aparelho de parágrafo A1, em que um sistema de dados embutido na pluralidade de sistemas de dados é usado para observar um ponto de referência no ambiente um número selecionado de vezes para uso em mover a plataforma móvel para um local desejado dentro do ambiente. A4. Também é provido, o aparelho de parágrafo A3, em que aumentar o número selecionado de vezes que o ponto de referência é observado reduz um erro global em mover a plataforma móvel ao local desejado dentro do ambiente. A5. Também é provido, o aparelho de parágrafo A1, em que a pluralidade de sistemas de dados inclui vários sistemas de dados embutidos e vários sistemas de dados externos. A6. Também é provido, o aparelho de parágrafo A5, em que os vários sistemas de dados embutidos incluem pelo menos uma de uma unidade de medida inercial, um sistema de detecção e determinação de alcance de luz, um sistema de odometria de cor e profundidade, um sistema de odometria de roda, um sistema de odometria visual, ou um sistema de localização e mapeamento. A7. Também é provido, o aparelho de parágrafo A5, em que os vários sistemas de dados externos incluem pelo menos um de um sistema de posicionamento global em recinto fechado, um sistema de captura de movimento, ou um sistema a laser. A8. Também é provido, o aparelho de parágrafo A1, em que a estimativa de posição inclui uma posição e uma orientação da plataforma móvel com respeito ao ambiente. A9. Também é provido, o aparelho de parágrafo A1, em que a plataforma móvel é um robô móvel e o ambiente é um ambiente industrial. A10. Também é provido, o aparelho de parágrafo A1, em que o estimador de posição está configurado para fundir vários de primeiro tipo de fluxos de dados e vários fluxos de dados modificados usando um algoritmo de estimação Bayesiano para gerar a estimativa de posição. A11. Também é provido, o aparelho de parágrafo A1 ademais incluindo: um controlador configurado para usar a estimativa de posição para guiar a plataforma móvel ao longo de um caminho dentro do ambiente. A12. Também é provido, o aparelho de parágrafo A11, em que a plataforma móvel inclui: um sistema de movimento configurado para ser controlado pelo controlador baseado na estimativa de posição. 82. Uma plataforma móvel incluindo: uma base; um controlador associado com a base e configurado para receber fluxos de dados de uma pluralidade de sistemas de dados nos quais os fluxos de dados incluem vários de primeiro tipo de fluxos de dados e vários de segundo tipo de fluxos de dados, e em que o controlador inclui: um modificador configurado para aplicar uma distribuição de probabilidade a cada um dos vários de segundo tipo de fluxos de dados para formar vários fluxos de dados modificados; e um estimador de posição configurado para receber os vários de primeiro tipo de fluxos de dados e os vários de fluxos de dados modificados como uma pluralidade de fluxos de dados e fundir a pluralidade de fluxos de dados juntos para gerar um estimativa de posição com um nível desejado de precisão para a plataforma móvel com respeito a um ambiente ao redor da plataforma móvel; e um sistema de movimento associado com a base e configurado para ser controlado pelo controlador baseado na estimativa de posição para mover a plataforma móvel dentro do ambiente. C1. Um método para guiar uma plataforma móvel dentro de um ambiente, o método incluindo: gerar vários de primeiro tipo de fluxos de dados e vários de segundo tipo de fluxos de dados usando uma pluralidade de sistemas de dados; aplicar uma distribuição de probabilidade a cada um dos vários de segundo tipo de fluxos de dados para formar vários fluxos de dados modificados; e fundir os vários de primeiro tipo de fluxos de dados e os vários fluxos de dados modificados para gerar um estimativa de posição com um nível desejado de precisão para a plataforma móvel com respeito ao ambiente ao redor da plataforma móvel. C2. Também é provido, o método de parágrafo C1 ademais incluindo: guiar a plataforma móvel ao longo de um caminho no ambiente usando a estimativa de posição gerada para a plataforma móvel. C3. Também é provido, o método de parágrafo C1, em que aplicar a distribuição de probabilidade ao cada um dos vários de segundo tipo de fluxos de dados para formar os vários fluxos de dados modificados inclui: aplicar uma covariância empírica a cada ponto de dados em cada um dos vários de segundo tipo de fluxos de dados para formar os vários fluxos de dados modificados. C4. Também é provido, o método de parágrafo C1, em que fundir os vários de primeiro tipo de fluxos de dados e vários fluxos de dados modificados inclui: fundir vários de primeiro tipo de fluxos de dados e vários fluxos de dados modificados usando um algoritmo de estimação Bayesiano para gerar a estimativa de posição com o nível desejado de precisão. C5. Também é provido, o método de parágrafo C1, em que gerar vários de primeiro tipo de fluxos de dados e vários de segundo tipo de fluxos de dados inclui: gerar vários de segundo tipo de fluxos de dados usando pelo menos um de um sistema de odometria de cor e profundidade, um sistema de odometria de roda, um sistema de odometria visual, um sistema de detecção e determinação de alcance de luz, ou um localizador e mapeador. C6. Também é provido, o método de parágrafo C1, ademais incluindo: observar um ponto de referência atual no ambiente um número selecionado de vezes usando um sistema de dados embutido, enquanto a plataforma móvel está em um local atual; identificar uma distância relativa inicial entre o local atual da plataforma móvel e o ponto de referência atual; e mover a plataforma móvel do local atual para um novo local até onde possível para um local desejado sem perder o ponto de referência atual dentro de um campo de visão de um sistema de sensor do sistema de dados embutido. C7. Também é provido, o método de parágrafo C6, ademais incluindo: reobservar o ponto de referência atual o número selecionado de vezes usando o sistema de dados embutido; identificar uma nova distância relativa entre o novo local da plataforma móvel e o ponto de referência atual; computar uma diferença entre a distância relativa inicial e a nova distância relativa; e identificar o novo local da plataforma móvel no ambiente usando a diferença. C8. Também é provido, o método de parágrafo C7, ademais incluindo: determinar se o novo local está no local desejado dentro de tolerâncias selecionadas; e mover a plataforma móvel mais perto ao local desejado usando um novo ponto de referência em resposta a uma determinação que o novo local não está no local desejado dentro de tolerâncias selecionadas. C9. Também é provido, o método de parágrafo C8, em que mover a plataforma móvel mais perto ao local desejado usando o novo ponto de referência inclui: procurar o novo ponto de referência usando o sistema de dados embutido; observar o novo ponto de referência o número selecionado de vezes usando o sistema de dados embutido, enquanto a plataforma móvel está no novo local; e identificar uma distância relativa entre o novo local da plataforma móvel e o novo ponto de referência. C10. Também é provido, o método de parágrafo C8, em que mover a plataforma móvel mais perto ao local desejado usando o novo ponto de referência ademais inclui: reidentificar o novo ponto de referência como o ponto de referência atual, o novo local como o local atual, e a distância relativa como a distância relativa inicial; e repetir as etapas de mover a plataforma móvel do local atual para o novo local, identificar a nova distância relativa entre o novo local da plataforma móvel e o ponto de referência atual, computar a diferença entre a distância relativa inicial e a nova distância relativa, identificar o novo local da plataforma móvel no ambiente usando a diferença, e determinar se o novo local está no local desejado dentro das tolerâncias selecionadas. C11. Também é provido, o método de parágrafo C10, ademais incluindo: repetir a etapa de mover a plataforma móvel mais perto ao local desejado usando o novo ponto de referência em resposta à determinação que o novo local não está no local desejado dentro de tolerâncias selecionadas até que a plataforma móvel alcance o local desejado dentro das tolerâncias selecionadas.

Claims (13)

1. Aparelho para guiar uma plataforma móvel dentro de um ambiente, caracterizadopelo fato de compreender: uma pluralidade de sistemas de dados (128) configurados para gerar uma pluralidade de fluxos de dados (126) nos quais a pluralidade de fluxos de dados inclui um primeiro tipo de fluxos de dados (132) e um segundo tipo de fluxos de dados (130), em que cada ponto de dados no segundo tipo de fluxo de dados não inclui uma medida de incerteza; um modificador (120) configurado para aplicar uma distribuição de probabilidade (137) ao segundo tipo de fluxos de dados para formar vários fluxos de dados modificados (135); e um estimador de posição (118) embutido em uma plataforma móvel (104) e configurado para receber e fundir o primeiro tipo de fluxos de dados e o fluxo de dados modificado para gerar um estimativa de posição (122) com um nível desejado de precisão para a plataforma móvel com respeito a um ambiente (100) ao redor da plataforma móvel, em que o parelho é configurado para: observar um ponto de referência atual no ambiente um número selecionado de vezes usando um sistema de dados embutido (134), enquanto a plataforma móvel está em um local atual; identificar uma distância relativa inicial entre o local atual da plataforma móvel e o ponto de referência atual; e mover a plataforma móvel do local atual para um novo local o mais longe possível para um local desejado sem perder o ponto de referência atual dentro de um campo de visão de um sistema de sensor do sistema de dados embutido.
2. Aparelho de acordo com reivindicação 1, caracterizadopelo fato de que pelo menos um do número do segundo tipo de fluxos de dados é recebido de um sistema de odometria na pluralidade de sistemas de dados.
3. Aparelho de acordo com qualquer uma das reivindicações 1 ou 2, caracterizado pelo fato de que a pluralidade de sistemas de dados inclui um número de sistemas de dados embutidos e um número de sistemas de dados externos.
4. Aparelho de acordo com qualquer uma das reivindicações 1 1 a 3, caracterizado pelo fato de que a estimativa de posição inclui uma posição e uma orientação da plataforma móvel com respeito ao ambiente.
5. Aparelho de acordo com qualquer uma das reivindicações 1 1 a 4, caracterizado pelo fato de que a plataforma móvel é um robô móvel e o ambiente é um ambiente industrial.
6. Aparelho de acordo com qualquer uma das reivindicações 1 1 a 5, caracterizado pelo fato de que o estimador de posição está configurado para fundir o número de primeiro tipo de fluxos de dados e o número fluxos de dados modificados usando um algoritmo de estimação Bayesiano para gerar a estimativa de posição.
7. Aparelho de acordo com qualquer uma das reivindicações 1 1 a 6, caracterizado pelo fato de compreender: um controlador configurado para usar a estimativa de posição para guiar a plataforma móvel ao longo de um caminho dentro do ambiente.
8. Método para guiar uma plataforma móvel (104) dentro de um ambiente (100), o método caracterizado pelo fato de compreender: gerar um primeiro tipo de fluxos de dados (132) e um segundo tipo de fluxos de dados (130) usando uma pluralidade de sistemas de dados (128), em que cada ponto de dados no primeiro tipo de fluxo de dados inclui uma medida de incerteza, e em que cada ponto de dados no segundo tipo de fluxo de dados não inclui uma medida de incerteza; aplicar uma distribuição de probabilidade (137) ao segundo tipo de fluxos de dados para formar vários fluxos de dados modificados (135); fundir o primeiro tipo de fluxos de dados e o fluxo de dados modificado para gerar uma estimativa de posição (122) com um nível desejado de precisão para a plataforma móvel com relação ao ambiente ao redor da plataforma móvel; observar um ponto de referência atual no ambiente um número selecionado de vezes usando um sistema de dados embutido (134), enquanto a plataforma móvel está em um local atual; identificar uma distância relativa inicial entre o local atual da plataforma móvel e o ponto de referência atual; e mover a plataforma móvel do local atual para um novo local o mais longe possível para um local desejado sem perder o ponto de referência atual dentro de um campo de visão de um sistema de sensor do sistema de dados embutido.
9. Método de acordo com reivindicação 8, caracterizadopelo fato de compreender: guiar a plataforma móvel ao longo de um caminho no ambiente usando a estimativa de posição gerada para a plataforma móvel.
10. Método de acordo com qualquer uma das reivindicações 8 ou 9, caracterizadopelo fato de que aplicar a distribuição de probabilidade a cada um do número de segundo tipo de fluxos de dados para formar o número de fluxos de dados modificados compreende: aplicar uma covariância empírica a cada ponto de dados em cada um do número de segundo tipo de fluxos de dados para formar vários fluxos de dados modificados.
11. Método de acordo com qualquer uma das reivindicações 8 a 10, caracterizadopelo fato de que fundir o número de primeiro tipo de fluxos de dados e o número de fluxos de dados modificados compreende: fundir o número de primeiro tipo de fluxos de dados e o número de fluxos de dados modificados usando um algoritmo de estimação Bayesiano para gerar a estimativa de posição com o nível desejado de precisão.
12. Método de acordo com qualquer uma das reivindicações 8 a 11, caracterizado pelo fato de que é para gerar o número de primeiro tipo de fluxos de dados e o número de segundo tipo de fluxos de dados compreende: gerar o número de segundo tipo de fluxos de dados usando pelo menos um de um sistema de odometria de cor e profundidade, um sistema de odometria de roda, um sistema de odometria visual, um sistema de detecção e determinação de alcance de luz, ou um localizador e mapeador.
13. Método de acordo com qualquer uma das reivindicações 8 a 12, caracterizado pelo fato de compreender: reobservar o ponto de referência atual o número selecionado de vezes usando o sistema de dados embutido; identificar uma nova distância relativa entre o novo local da plataforma móvel e o ponto de referência atual; computar uma diferença entre a distância relativa inicial e a nova distância relativa; e identificar o novo local da plataforma móvel no ambiente usando a diferença.
BR102015007157-4A 2014-04-02 2015-03-30 Aparelho e método para guiar uma plataforma móvel dentro de um ambiente BR102015007157B1 (pt)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
BR102015007157A2 BR102015007157A2 (pt) 2016-03-29
BR102015007157B1 true BR102015007157B1 (pt) 2021-07-27

Family

ID=53682434

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102015007157-4A BR102015007157B1 (pt) 2014-04-02 2015-03-30 Aparelho e método para guiar uma plataforma móvel dentro de um ambiente

Country Status (9)

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

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015160828A1 (en) 2014-04-15 2015-10-22 Huntington Ingalls Incorporated System and method for augmented reality display of dynamic environment information
US9864909B2 (en) 2014-04-25 2018-01-09 Huntington Ingalls Incorporated System and method for using augmented reality display in surface treatment procedures
WO2015164755A1 (en) * 2014-04-25 2015-10-29 Huntington Ingalls Incorporated Augmented reality display of dynamic target object information
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 (zh) * 2015-10-21 2015-12-23 福州华鹰重工机械有限公司 机动车实时精准定位方法及装置
US10537973B2 (en) 2016-03-09 2020-01-21 Applied Materials, Inc. Correction of fabricated shapes in additive manufacturing
CN105938619A (zh) * 2016-04-11 2016-09-14 中国矿业大学 一种融合RGB和Depth信息的视觉里程计实现方法
US10353400B2 (en) 2016-05-23 2019-07-16 Asustek Computer Inc. Navigation system and navigation method
CN106227220A (zh) * 2016-09-28 2016-12-14 关健生 基于分布式框架的自主导航巡检机器人
CN107160419A (zh) * 2017-06-09 2017-09-15 东华大学 一种肌电信号控制的机械手运动机构
CN109866217B (zh) * 2017-12-01 2021-09-17 深圳市优必选科技有限公司 机器人里程定位方法、装置、终端设备及计算机存储介质
JP7167982B2 (ja) * 2018-05-31 2022-11-09 日本電気株式会社 出力装置、出力方法及び出力プログラム
DE102018121365A1 (de) * 2018-08-31 2020-04-23 RobArt GmbH Exploration eines robotereinsatzgebietes durch einen autonomen mobilen roboter
US11314254B2 (en) * 2019-03-26 2022-04-26 Intel Corporation Methods and apparatus for dynamically routing robots based on exploratory on-board mapping
CN110286682A (zh) * 2019-07-08 2019-09-27 国网山东省电力公司枣庄供电公司 一种电力仓储多功能安防探测机器人、方法及系统
KR102259247B1 (ko) * 2019-12-06 2021-06-01 한국로봇융합연구원 공분산 행렬 기반의 다중 위치인식 결과 융합을 통한 강화 위치인식 방법과 시스템
JP2023540304A (ja) * 2020-09-01 2023-09-22 シーバ・テクノロジーズ・インコーポレイテッド オプティカルフロー、ホイールエンコーダおよび慣性計測装置での平面ロボットのデッドレコニング
FR3119142A1 (fr) * 2021-01-25 2022-07-29 Transdev Group Innovation Procédé de circulation d’un véhicule sur des voies de circulation, programme d’ordinateur, support d’informations et système de transport associés
CN113955136B (zh) * 2021-09-02 2024-04-05 浙江图盛输变电工程有限公司温州科技分公司 一种电网自动巡检无人机目标挂点校准中转站
KR102695683B1 (ko) * 2021-12-30 2024-08-19 서울대학교산학협력단 회전식 라이다를 이용한 고속 움직임에 강인한 오도메트리 방법 및 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69232261T2 (de) 1991-11-01 2002-07-25 Motorola, Inc. Sensorsystem mit verbesserter genauigkeit zur fahrzeugnavigation
JP2004133882A (ja) * 2002-05-10 2004-04-30 Royal Appliance Mfg Co 自律性マルチプラットフォーム・ロボットシステム
US7135992B2 (en) * 2002-12-17 2006-11-14 Evolution Robotics, Inc. Systems and methods for using multiple hypotheses in a visual simultaneous localization and mapping system
KR100506097B1 (ko) * 2004-02-04 2005-08-03 삼성전자주식회사 자기장 지도 생성 방법 및 장치와 이를 활용한 이동체의포즈 확인 방법 및 장치
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
US7317836B2 (en) * 2005-03-17 2008-01-08 Honda Motor Co., Ltd. Pose estimation based on critical point analysis
WO2008013568A2 (en) * 2005-12-30 2008-01-31 Irobot Corporation Autonomous mobile robot
KR100809352B1 (ko) * 2006-11-16 2008-03-05 삼성전자주식회사 파티클 필터 기반의 이동 로봇의 자세 추정 방법 및 장치
US8351646B2 (en) * 2006-12-21 2013-01-08 Honda Motor Co., Ltd. Human pose estimation and tracking using label assignment
KR100877071B1 (ko) * 2007-07-18 2009-01-07 삼성전자주식회사 파티클 필터 기반의 이동 로봇의 자세 추정 방법 및 장치
CN101576384B (zh) * 2009-06-18 2011-01-05 北京航空航天大学 一种基于视觉信息校正的室内移动机器人实时导航方法
US8849036B2 (en) * 2009-10-30 2014-09-30 Yujin Robot Co., Ltd. Map generating and updating method for mobile robot position recognition
CN101712381B (zh) * 2009-11-13 2013-01-02 北京航空航天大学 一种基于多敏感器的定姿系统
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
EP2927769A2 (en) 2015-10-07
BR102015007157A2 (pt) 2016-03-29
US20150283700A1 (en) 2015-10-08
CA2883622A1 (en) 2015-10-02
EP2927769B1 (en) 2019-12-04
JP6804825B2 (ja) 2020-12-23
PT2927769T (pt) 2020-02-14
CN104977941B (zh) 2019-04-30
US9427867B2 (en) 2016-08-30
KR20150114892A (ko) 2015-10-13
KR102359186B1 (ko) 2022-02-04
CN104977941A (zh) 2015-10-14
EP2927769A3 (en) 2016-07-20
JP2015197925A (ja) 2015-11-09
ES2770730T3 (es) 2020-07-02
CA2883622C (en) 2017-07-11

Similar Documents

Publication Publication Date Title
BR102015007157B1 (pt) Aparelho e método para guiar uma plataforma móvel dentro de um ambiente
Bloesch et al. State estimation for legged robots: Consistent fusion of leg kinematics and IMU
Yang et al. Observability analysis of aided ins with heterogeneous features of points, lines, and planes
Shen et al. Multi-sensor fusion for robust autonomous flight in indoor and outdoor environments with a rotorcraft MAV
Huang et al. Towards consistent visual-inertial navigation
Li et al. LIDAR/MEMS IMU integrated navigation (SLAM) method for a small UAV in indoor environments
Ding et al. Vid-fusion: Robust visual-inertial-dynamics odometry for accurate external force estimation
Caruso et al. Robust indoor/outdoor navigation through magneto-visual-inertial optimization-based estimation
Zhu et al. Visual-inertial RGB-D SLAM with encoders for a differential wheeled robot
Lisus et al. Know what you don't know: Consistency in sliding window filtering with unobservable states applied to visual-inertial SLAM
Shmatko et al. Estimation of rotation measurement error of objects using computer simulation
Chen et al. Perception system design for low-cost commercial ground robots: Sensor configurations, calibration, localization and mapping
Zhang et al. Cumulative error estimation from noisy relative measurements
Alaeddini et al. Autonomous state estimation using optic flow sensing
Zali et al. Localization of an indoor mobile robot using decentralized data fusion
Chavez-Romero et al. Camera space particle filter for the robust and precise indoor localization of a wheelchair
Demim et al. Simultaneous localization and mapping algorithm based on 3D laser for unmanned aerial vehicle
Lee et al. Analysis on the performance of VIO according to Trajectory Planning of UAV
Guráň et al. Localization of iRobot create using inertial measuring unit
Shin et al. Precision improvement of MEMS gyros for indoor mobile robots with horizontal motion inspired by methods of TRIZ
Perez-Paina et al. Fusion´ of monocular visual-inertial measurements for three dimensional pose estimation
Regula Formation control of autonomous aerial vehicles
Joseph Paul Introducing Vehicle Dynamic Models in Dynamic Networks for Navigation in UAVs
Chen et al. Multi-Sensor Fusion Technology in Inertial Navigation System Using Factor Graph
Joshi et al. Simultaneous Navigator for Autonomous Identification and Localization Robot

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 30/03/2015, OBSERVADAS AS CONDICOES LEGAIS.