BR102013015314B1 - Método para guiar um robô guiado automaticamente e aparelho - Google Patents

Método para guiar um robô guiado automaticamente e aparelho Download PDF

Info

Publication number
BR102013015314B1
BR102013015314B1 BR102013015314-1A BR102013015314A BR102013015314B1 BR 102013015314 B1 BR102013015314 B1 BR 102013015314B1 BR 102013015314 A BR102013015314 A BR 102013015314A BR 102013015314 B1 BR102013015314 B1 BR 102013015314B1
Authority
BR
Brazil
Prior art keywords
pixel
centroid
pixels
pattern
value
Prior art date
Application number
BR102013015314-1A
Other languages
English (en)
Other versions
BR102013015314A2 (pt
Inventor
Brad Jeremy Reeves
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 BR102013015314A2 publication Critical patent/BR102013015314A2/pt
Publication of BR102013015314B1 publication Critical patent/BR102013015314B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Platform Screen Doors And Railroad Systems (AREA)
  • Navigation (AREA)

Abstract

sistema e método para guiar um dispositivo móvel. a presente invenção refere-se a um método, um aparelho e um sistema para guiar um número de dispositivos móveis (106). uma imagem de uma parte de um ambiente (104) em torno de um dispositivo móvel (108) no número de dispositivos móveis, (106) é recebida de um sistema sensor (114) associado com o dispositivo móvel (108). um conjunto de pixels (148) na imagem (130) que satisfaz um padrão (142) é identificado. um centroide (150) para o conjunto de pixels (148) que satisfaz o padrão (142) é identificado. um número de comandos (152) para guiar o dispositivo móvel (108) dentro do ambiente (104) é gerado com base no centroide (150).

Description

Informações de Antecedentes
[0001] A presente invenção refere-se de modo geral a dispositivosmóveis, e em particular à orientação de dispositivos móveis. Ainda mais particularmente, a presente invenção refere-se a um método e a um aparelho para guiar um dispositivo móvel dentro de um ambiente ao usar um número de imagens do ambiente.
[0002] Os veículos guiados automatizados (AGVs) podem serusados para executar tipos diferentes de operações. Por exemplo, esses tipos de veículos podem ser usados para rebocar objetos, carregar cargas, transportar materiais, executar operações de empilhadeira e/ou executar outros tipos apropriados de operações. Tal como aqui empregado, um "veículo guiado automatizado" é um robô móvel que é capaz de seguir uma trajetória sem precisar de auxílio humano.
[0003] Tipicamente, a trajetória para um veículo guiadoautomatizado é formado no solo sobre o qual o veículo guiado automatizado irá se mover. Como um exemplo ilustrativo, uma trajetória pode ser formada ao cortar um entalhe no piso de uma instalação e ao embutir um fio nesse entalhe. O veículo guiado automatizado usa um sensor para detectar um sinal de radiofrequência transmitido do fio. O veículo guiado automatizado usa esse sinal detectado de radiofrequência para seguir o fio embutido no piso.
[0004] Em um outro exemplo ilustrativo, uma trajetória é formada aocolocar uma fita sobre o solo. A fita pode ser, por exemplo, sem limitação, uma fita colorida ou uma fita magnética. Um veículo guiado automatizado pode usar qualquer número de sensores para seguir a trajetória formada pela fita. A criação de uma trajetória para um veículo guiado automatizado no solo ao usar uma pode ser menos cara e menos demorada do que a criação da mesma trajetória ao embutir um fio no solo.
[0005] Além disso, o uso de uma fita colorida pode ser menos carodo que o uso de uma fita magnética. No entanto, a fita colorida pode ficar suja, danificada e/ou quebrada em áreas de tráfego pesado no solo. Uma área de tráfego pesado no solo é uma área que experimenta uma quantidade aumentada de tráfego de transeuntes e/ou de tráfego de veículos. Em uma área de tráfego pesado, a aparência da fita colorida pode ser diferente em comparação à fita colorida em uma área de tráfego leve. Consequentemente, alguns veículos guiados automatizados atualmente disponíveis podem não ser capazes de seguir a fita colorida nessas áreas de tráfego pesado com um nível desejado de precisão.
[0006] Alguns veículos guiados automatizados atualmentedisponíveis usam sistemas a laser e/ou sistemas de imagens tridimensionais para seguir trajetórias predefinidas. No entanto, esses tipos de sistemas podem ser mais caros do que desejado. Além disso, esses tipos de sistemas podem aumentar o peso de e/ou o número de componentes em um veículo guiado automatizado mais do que o desejado. Portanto, seria desejável que se tivesse um método e o aparelho que levasse em consideração pelo menos algumas das questões discutidas acima, bem como outras possíveis questões.
Sumário
[0007] Em uma modalidade ilustrativa, é descrito um método paraguiar um número de dispositivos móveis. Uma imagem de uma parte de um ambiente em torno de um dispositivo móvel no número de dispositivos móveis é recebida, de um sistema sensor associado com o dispositivo móvel. Um conjunto de pixels na imagem que satisfaz um padrão é identificado. Um centroide para o conjunto de pixels que satisfaz o padrão é identificado. Um número de comandos para guiar o dispositivo móvel dentro do ambiente é gerado com base no centroide.
[0008] Em uma outra modalidade ilustrativa, um aparelhocompreende um sistema sensor associado com um dispositivo móvel e um controlador. O sistema sensor é configurado para gerar uma imagem de uma parte de um ambiente em torno do dispositivo móvel. O controlador é configurado para receber a imagem da parte do ambiente em torno do dispositivo móvel do sistema sensor. O controlador também é configurado para identificar um conjunto de pixels na imagem que satisfaz um padrão. O controlador também é configurado para identificar um centroide para o conjunto de pixels que satisfaz o padrão. O controlador também é configurado para gerar um número de comandos para guiar o dispositivo móvel dentro do ambiente com base no centroide.
[0009] Em ainda uma outra modalidade ilustrativa, um sistema deorientação compreende um número de sistemas sensores e um número de controladores. Um sistema sensor no número de sistemas sensores é associado com um dispositivo móvel correspondente em um número de dispositivos móveis. Um controlador no número de controladores é configurado para receber uma imagem de uma parte de um ambiente em torno de um dispositivo móvel no número de dispositivos móveis de um sistema sensor correspondente no número de sistemas sensores associados com o dispositivo móvel. O controlador também é configurado para identificar um conjunto de pixels na imagem que satisfaz um padrão. O controlador também é configurado para identificar um centroide para o conjunto de pixels que satisfaz o padrão. O controlador também é configurado para gerar um número de comandos para guiar o dispositivo móvel correspondente dentro do ambiente com base no centroide.
[00010] As características e as funções podem ser providas independentemente em várias modalidades da presente invenção ou podem ser combinadas em ainda outras modalidades em que outros detalhes podem ser vistos com referência à descrição a seguir e aos desenhos.
Breve Descrição dos Desenhos
[00011] As características que se acredita serem novas das modalidades ilustrativas são indicadas nas reivindicações anexas. As modalidades ilustrativas, no entanto, assim como um modo preferido de uso, outros objetivos e características das mesmas, serão mais bem compreendidos por meio de referência à seguinte descrição detalhada de uma modalidade ilustrativa da presente invenção quando lida em conjunto com os desenhos anexos, em que: a Figura 1 é uma ilustração de um sistema de orientação na forma de um diagrama de blocos de acordo com uma modalidade ilustrativa; a Figura 2 é uma ilustração de um dispositivo móvel com uma unidade da orientação de acordo com uma modalidade ilustrativa; a Figura 3 é uma ilustração de um sistema móvel que se move em uma instalação de fabricação de acordo com uma modalidade ilustrativa; a Figura 4 é uma ilustração de uma instalação de fabricação de acordo com uma modalidade ilustrativa; a Figura 5 é uma ilustração de um processo para guiar um dispositivo móvel, na forma de um fluxograma, de acordo com uma modalidade ilustrativa; e a Figura 6 é uma ilustração de um sistema de processamento de dados de acordo com uma modalidade ilustrativa.
Descrição Detalhada
[00012] As modalidades ilustrativas diferentes reconhecem e levam em conta uma ou mais considerações diferentes. Por exemplo, as modalidades ilustrativas diferentes reconhecem e levam em conta o fato que alguns veículos guiados automatizados atualmente disponíveis seguem trajetórias ao usar sensores que ficam localizados perto do solo. Esses tipos de sensores podem ser suscetíveis aos efeitos indesejados causados pelo contato com objetos estranhos quando o veículo guiado automatizado se move ao longo do solo. Tal como aqui empregado, um "objeto estranho"é um objeto externo ao veículo guiado automatizado.
[00013] Por exemplo, em alguns casos, os sensores em um veículo guiado automatizado podem ficar localizados a menos de 1,2700 cm (meia polegada) acima do solo. Esses sensores podem vir a ser riscados ou podem quebrar quando em contato com objetos no solo sobre o qual o veículo guiado automatizado está se movendo. As modalidades ilustrativas diferentes reconhecem e levam em conta o fato que pode ser desejável ter um veículo guiado automatizado que possa seguir uma trajetória ao usar um único sensor localizado a uma distância do solo que reduz a possibilidade de objetos no solo entrarem em contato com o sensor.
[00014] Além disso, as modalidades ilustrativas diferentes reconhecem e levam em conta o fato que alguns veículos guiados automatizados atualmente disponíveis podem não ser capazes de seguir uma trajetória ao usar uma fita colorida com o passar do tempo com um nível desejado de precisão. Embora seja barata em relação à fita magnética, a fita colorida é mais suscetível à mudança de cor, à sujeira, a rasgos e/ou a outros efeitos indesejados. As modalidades ilustrativas diferentes reconhecem e levam em conta o fato que pode ser desejável ter um sistema de orientação que permita que um veículo guiado automatizado siga a fita colorida com um nível desejado de precisão até mesmo quando a fita colorida tiver experimentado esses tipos de efeitos indesejados.
[00015] Desse modo, as modalidades ilustrativas diferentes provêm um método e um aparelho para guiar um dispositivo móvel. O dispositivo móvel pode ser, por exemplo, um veículo guiado automatizado ou algum outro tipo apropriado de dispositivo com capacidade de se mover. Em particular, as modalidades ilustrativas diferentes provêm um método e um aparelho para guiar um dispositivo móvel sem aumentar o peso, o tamanho, o custo e/ou a complexidade do dispositivo móvel mais do que desejado.
[00016] Com referência agora à Figura 1, uma ilustração de um sistema de orientação na forma de um diagrama de blocos é descrita de acordo com uma modalidade ilustrativa. Nesses exemplos ilustrativos, o sistema de orientação 100 é configurado para guiar um sistema móvel 102 dentro de um ambiente 104. Nesses exemplos ilustrativos, o sistema móvel 102 compreende um número de dispositivos móveis 106. Tal como aqui empregado, um "número de" itens significa um ou mais itens. Por exemplo, um número de dispositivos móveis 106 significa um ou mais dispositivos móveis.
[00017] Cada um desses dispositivos móveis 106 no sistema móvel 102 é uma máquina ou um robô com capacidade de se mover sem precisar do auxílio humano. Em outras palavras, um dispositivo móvel 108 no sistema móvel 102 pode ser capaz de se mover de maneira autônoma. No entanto, o sistema móvel 102 pode ser configurado para executar outras operações de maneira semiautônoma ou autônoma.
[00018] O dispositivo móvel 108 pode assumir qualquer uma de um número de formas diferentes. O dispositivo móvel 108 pode ser, por exemplo, sem limitação, um veículo autônomo, um veículo semiautônomo, um veículo guiado automatizado, um robô móvel, um braço robótico, ou algum outro tipo apropriado de dispositivo capaz de se mover sem o auxílio humano.
[00019] Além disso, um dispositivo móvel 108 no sistema móvel 102 pode se mover dentro de um ambiente 104 para executar uma ou mais operações dentro do ambiente 104. Por exemplo, um dispositivo móvel 108 pode ser usado para mover materiais, carregar ferramentas para um local diferente, rebocar objetos e/ou executar outros tipos apropriados de operações dentro de um ambiente 104. Dependendo da implementação, o ambiente 104 pode ser selecionado de um de, por exemplo, sem limitação, uma instalação de fabricação, uma instalação industrial, um armazém, um aeroporto, uma pista de decolagem, uma usina, uma estação de força, uma instalação de testes, um laboratório, um ambiente de testes, uma área de terra, uma superfície de um objeto, uma estação de trabalho, ou algum outro tipo apropriado de ambiente.
[00020] Nesses exemplos ilustrativos, o sistema de orientação 100 compreende um número de sistemas sensores 110 e um controlador de sistema 111 que compreende um número de controladores 112. Cada um dos sistemas sensores 110 no sistema de orientação 100 é associado com um dispositivo móvel correspondente no sistema móvel 102. Tal como aqui empregado, quando um componente é "associado" com um outro componente, a associação é uma associação física.
[00021] Por exemplo, um primeiro componente, tal como um sistema sensor 114 no sistema de orientação 100, pode ser considerado como sendo associado com um segundo componente, tal como um dispositivo móvel 108 no sistema móvel 102, ao ser preso ao segundo componente, ligado ao segundo componente, montado no segundo componente, soldado ao segundo componente, fixado ao segundo componente e/ou ser conectado ao segundo componente em alguma outra maneira apropriada. O primeiro componente também pode ser conectado ao segundo componente ao usar um terceiro componente. O primeiro componente também pode ser considerado como sendo associado com o segundo componente ao ser formado como parte e/ou como uma extensão do segundo componente.
[00022] Um sistema sensor 114 associado com um dispositivo móvel 108 é configurado para gerar um número de imagens 115 do ambiente 104 em que o dispositivo móvel 108 fica localizado. Em particular, o sistema sensor 114 é configurado para gerar as imagens 115 da parte 120 do ambiente em torno do dispositivo móvel 108. Nesses exemplos ilustrativos, a parte 120 do ambiente 104 capturada nas imagens 115 pode ficar localizada na frente do dispositivo móvel 108. Além disso, a parte 120 do ambiente 104 capturada nas imagens 115 pode mudar quando o dispositivo móvel 108 se mover dentro do ambiente 104.
[00023] Nesses exemplos ilustrativos, o sistema sensor 114 pode ter um campo de visão que é centrado com respeito a um eixo central através do dispositivo móvel 108. Naturalmente, em outros exemplos ilustrativos, o campo de visão para o sistema sensor 114 pode ser descentralizado com respeito a um eixo central através do dispositivo móvel 108. As imagens 115 geradas pelo sistema sensor 114 são imagens em cores nesses exemplos ilustrativos. No entanto, em alguns casos, as imagens 115 podem ser imagens na escala cinza.
[00024] Uma ou mais das imagens 115 geradas pelo sistema sensor 114 podem capturar um número de marcadores 118 colocados no ambiente 104. Tal como aqui empregado, um "marcador"é um item usado para guiar um dispositivo móvel 108 ao longo de uma trajetória particular. Nesses exemplos ilustrativos, os marcadores 118 no ambiente 104 podem compreender pelo menos um dentre um pedaço de fita colorida unida ao solo do ambiente 104, uma linha colorida desenhada sobre o solo do ambiente 104, uma linha colorida projetada sobre o solo do ambiente 104, uma forma colorida sobre o solo do ambiente 104, uma linha laser projetada sobre o solo do ambiente 104, ou algum outro tipo de marcador que é visível ao sistema sensor 114.
[00025] Tal como aqui empregado, a expressão "pelo menos um de", quando usada com uma lista de itens, significa combinações diferentes de um ou mais dos itens listados que podem ser usados e somente um de cada item na lista pode ser necessário. Por exemplo, "pelo menos um dentre o item A, o item B e o item C" pode incluir, sem limitação, o item A ou item A e o item B. Este exemplo também pode incluir o item A, o item B e o item C, ou o item B e o item C. Em outros exemplos, "pelo menos um de" pode ser, por exemplo, sem limitação, dois do item A, um do item B, e dez do item C; quatro do item B e sete do item C; ou qualquer outra combinação apropriada.
[00026] Em um exemplo ilustrativo, o sistema sensor 114 compreende uma câmera 116 que gera as imagens 115. A câmera 116 pode ser, por exemplo, sem limitação, uma câmera de vídeo. A câmera 116 pode ser configurada para gerar as imagens 115 a uma razão especificada. Essa razão pode ser, por exemplo, sem limitação, uma imagem a cada 0,9 segundo. As imagens 115 geradas pela câmera 116 podem formar um vídeo do ambiente 104.
[00027] Em alguns casos, um ou mais parâmetros para a câmera 116 podem ser ajustado para mudar a parte 120 do ambiente 104 capturada no ambiente 104. Esses parâmetros podem incluir, por exemplo, sem limitação, um campo de visão, uma ampliação e/ou algum outro tipo de parâmetro para a câmera 116.
[00028] Tal como descrito, o sistema sensor 114 é configurado para enviar as imagens 115 geradas a um controlador 122 que correspondem ao dispositivo móvel 108. O sistema sensor 114 envia as imagens 115 ao controlador 122 por um link de comunicações 124. Esse link de comunicações 124 pode compreender pelo menos um de um link de comunicações sem fio, um link de comunicações com fio, um link de comunicações ótico, e algum outro tipo apropriado de link de comunicações.
[00029] Além disso, as imagens 115 geradas pelo sistema sensor 114 podem ser enviadas ao controlador 122 à medida que as imagens 115 são geradas sem retardos não intencionais. Em outras palavras, as imagens 115 geradas pelo sistema sensor 114 podem ser enviadas ao controlador 122 "substancialmente em tempo real".
[00030] O controlador 122 é um exemplo de um do número de controladores 112 que compõem o controlador de sistema 111. O controlador de sistema 111 é configurado para usar as imagens geradas por cada dispositivo móvel no sistema móvel 102 para guiar esses dispositivos móveis 106 dentro do ambiente 104.
[00031] O controlador de sistema 111 pode ser implementado ao usar um hardware, um software, ou uma combinação dos dois. Além disso, cada um dos controladores 112 no controlador de sistema 111 pode ser implementado ao usar um hardware, um software, ou uma combinação dos dois.
[00032] Em um exemplo ilustrativo, o controlador de sistema 111 é implementado em um sistema de computador 126. O sistema de computador 126 pode compreender um número de computadores. Quando mais de um computador está presente no sistema de computador 126, esses computadores podem estar em comunicação uns com os outros. Além disso, esses computadores podem ficar localizados no mesmo local e/ou em locais diferentes. Por exemplo, um ou mais desses computadores podem estar em locais dentro do ambiente 104 e/ou um ou mais desses computadores podem estar em locais distantes do ambiente 104.
[00033] Em um outro exemplo ilustrativo, cada controlador 122 no controlador de sistema 111 pode ser implementado em um sistema de controle 128 no dispositivo móvel 108. Por exemplo, o controlador 122 pode ser considerado como parte do sistema de controle 128. O sistema de controle 128 pode ser, por exemplo, sem limitação, um sistema de computador, uma unidade de processamento, um circuito integrado, uma placa de circuito impressa, ou algum outro tipo apropriado de sistema de hardware eletrônico.
[00034] Quando o controlador 122 é implementado no sistema de controle 128 do dispositivo móvel 108, o sistema sensor 114 e o controlador 122 formam em conjunto uma unidade de orientação 125 no sistema de orientação 100 para o dispositivo móvel 108. Desta maneira, os sistemas sensores 110 e os controladores 112 diferentes no sistema de orientação 100 podem formar um número de unidades de orientação 127 no sistema de orientação 100. Cada uma das unidades de orientação 127 é configurada para controlar e guiar o movimento de um dispositivo móvel 108 correspondente. Uma unidade de orientação 125 pode ser considerada como separada de ou como parte do dispositivo móvel 108, dependendo da implementação.
[00035] Em resposta à recepção de uma imagem 130 do sistema sensor 114 por meio do link de comunicações 124, o controlador 122 processa a imagem 130. O controlador 122 identifica um número de padrões 132 para processar a imagem 130. Tal como aqui empregado, um "padrão"compreende pelo menos um de um número de critérios, regras, requisitos e/ou diretrizes para identificar pixels de interesse na imagem 130 para o uso na orientação do dispositivo móvel 108.
[00036] Tal como ilustrado, a imagem 130 compreende uma disposição de pixels 134. O controlador 122 identifica um grupo de pixels 136 da disposição de pixels 134 na imagem 130 para o processamento. Tal como aqui empregado, um "grupo de" com referência aos itens significa dois ou mais itens. Desta maneira, um grupo de pixels 136 significa dois ou mais pixels.
[00037] Em alguns casos, o grupo de pixels 136 pode ser identificado com base em locais predefinidos para pixels na disposição de pixels 134 na imagem 130. Esses locais podem ser definidos com respeito a pelo menos dois eixos de coordenadas para a disposição de pixels 134. O número de eixos de coordenadas depende do número de dimensões para a disposição de pixels 134.
[00038] Em um exemplo ilustrativo, a disposição de pixels 134 é uma disposição bidimensional que pode ser descrita com respeito a um eixo x e um eixo y. Neste exemplo, um local para um pixel na disposição de pixels 134 pode ser definido com respeito a um valor de coordenada para o eixo x e a um valor de coordenada para o eixo y. O valor de coordenada para o eixo x pode ser indicado como a coordenada x e o valor de coordenada para o eixo y pode ser indicado como a coordenada y.
[00039] O controlador 122 começa a processar a imagem 130 ao selecionar um pixel 138 no grupo de pixels 136. O pixel 138 tem um valor de pixel 140. Esse valor de pixel 140 pode ser, por exemplo, um valor da intensidade. Quando a imagem 130 é uma imagem em cores, o valor da intensidade pode ser com base em um modelo (RGB) vermelho-verde-azul. Com esse tipo de modelo, o valor da intensidade compreende um valor vermelho, um valor verde e um valor azul. Cada um dentre o valor vermelho, o valor verde e o valor azul pode ser selecionado de uma faixa de valores entre 0 e 255. Quando a imagem 130 é uma imagem na escala cinza, o valor da intensidade é um valor de brilho selecionado de uma faixa de valores entre 0 e 255.
[00040] O controlador 122 determina se o valor de pixel 140 do pixel 138 satisfaz um padrão selecionado do número de padrões 132 identificados pelo controlador 122. Por exemplo, o controlador 122 pode determinar se o valor de pixel 140 do pixel 138 satisfaz um primeiro padrão 142. O primeiro padrão 142 pode compreender um número de critérios para o valor de pixel 140. Esses critérios podem ser selecionados de maneira tal que todos os pixels na imagem 130 que combinam com uma primeira cor selecionada dentro das tolerâncias selecionadas podem ser identificados.
[00041] Em outras palavras, os critérios do primeiro padrão 142 definem uma primeira cor selecionada. O grupo de pixels 136 identificado na imagem 130 é processado para determinar se essa primeira cor selecionada é detectada na imagem 130. A primeira cor selecionada pode ser detectada quando pelo menos um do grupo de pixels 136 combina com a primeira cor selecionada dentro das tolerâncias selecionadas.
[00042] Como um exemplo ilustrativo, os critérios para o valor de pixel 140 podem incluir uma faixa selecionada para pelo menos um dentre o valor vermelho, o valor verde e o valor azul que compõem o valor de pixel 140. O valor de pixel 140 pode satisfazer o primeiro padrão 142 quando o valor vermelho, o valor verde e o valor azul se enquadram dentro dessas faixas selecionadas. Como um outro exemplo ilustrativo, os critérios para o valor de pixel 140 podem ser que um dentre o valor vermelho, o valor verde e o valor azul seja uma porcentagem selecionada maior do que os outros valores.
[00043] Em resposta a uma determinação de que o valor de pixel 140 do pixel 138 satisfaz o primeiro padrão 142, o controlador 122 incrementa um contador de pixels 144 e incrementa um primeiro contador de coordenadas 146. O contador de pixels 144 é configurado para manter a contagem do número de pixels que satisfazem o primeiro padrão 142 durante o processamento da imagem. O primeiro contador de coordenadas 146 é configurado para se manter a par dos valores de coordenadas diferentes para os pixels que satisfazem o primeiro padrão 142 com respeito a um eixo particular.
[00044] Em alguns exemplos ilustrativos, o contador de pixels 144 é incrementado por um. No entanto, em outros exemplos ilustrativos, o contador de pixels 144 é incrementado por um valor ponderado para o pixel 138. O valor ponderado pode ser baseado em, por exemplo, a posição do pixel 138 dentro da disposição de pixels 134 na imagem 130. Por exemplo, os pixels localizados na base da imagem 130 podem ser ponderados mais elevados do que os pixels localizados no alto da imagem 130. Desta maneira, os pixels que correspondem à parte do ambiente 104, localizada mais afastada do dispositivo móvel 108 podem ser ponderados mais baixos do que os pixels que correspondem à parte do ambiente 104 localizada mais próxima do dispositivo móvel 108.
[00045] Além disso, o primeiro contador de coordenadas 146 é incrementado por um valor de coordenada para a posição do pixel 138 com respeito a um eixo selecionado. Por exemplo, o primeiro contador de coordenadas 146 pode ser incrementado pela coordenada x do local do pixel 138. Naturalmente, em outros exemplos ilustrativos, o primeiro contador de coordenadas 146 pode ser incrementado pela coordenada y do local do pixel 138.
[00046] O controlador 122 executa as etapas de determinação se um pixel 138 satisfaz o primeiro padrão 142, incrementação do contador de pixels 144 em resposta à satisfação do primeiro padrão 142 pelo pixel 138, e incrementação do primeiro contador de coordenadas 146 em resposta à satisfação do primeiro padrão 142 pelo pixel 138 para cada pixel no grupo de pixels 136 identificados na imagem 130 para o processamento. A parte do grupo de pixels 136 que satisfaz o primeiro padrão 142 forma um primeiro conjunto de pixels 148.
[00047] Tal como aqui empregado, um "conjunto de" itens significa zero ou mais itens. Em outras palavras, o conjunto de itens pode ser um conjunto nulo ou vazio. Desta maneira, o primeiro conjunto de pixels 148 pode incluir zero, um, dois, dez, vinte, ou algum outro número de pixels.
[00048] O primeiro conjunto de pixels 148 é um conjunto nulo quando nenhum pixel no grupo de pixels 136 satisfaz com o primeiro padrão 142. O primeiro conjunto de pixels 148 não é um conjunto nulo quando pelo menos um pixel no grupo de pixels 136 satisfaz o primeiro padrão 142. Em outras palavras, o primeiro conjunto de pixels 148 inclui todos os pixels no grupo de pixels 136 que combinam com a cor definida pelos critérios do primeiro padrão 142 dentro das tolerâncias selecionadas.
[00049] Depois que todos os pixels no grupo de pixels 136 tiverem sido processados, o controlador 122 identifica um primeiro centroide 150 para o primeiro conjunto de pixels 148 que satisfaz o primeiro padrão 142. O primeiro centroide 150 corresponde à primeira cor selecionada indicada pelo primeiro padrão 142. Como um exemplo ilustrativo, se o primeiro padrão 142 for definido para uma cor vermelha, o primeiro centroide 150 corresponde a essa cor vermelha. Além disso, o primeiro centroide 150 pode ser indicado como um centroide vermelho.
[00050] Nesses exemplos ilustrativos, o primeiro centroide 150 é um valor de coordenada médio para o primeiro conjunto de pixels 148. Por exemplo, o controlador 122 pode dividir o primeiro contador de coordenadas 146 pelo contador de pixels 144 para gerar o primeiro centroide 150.
[00051] Quando o primeiro contador de coordenadas 146 é configurado para contar as coordenadas de z, o primeiro centroide 150 é uma coordenada x média. Quando o primeiro contador de coordenadas 146 é configurado para contar as coordenadas y, o primeiro centroide 150 é uma coordenada y média.
[00052] Além disso, quando o primeiro conjunto de pixels 148 é um conjunto nulo, o contador de pixels 144 é zero. Quando o contador de pixels 144 é zero, o controlador 122 pode identificar um valor padrão como o primeiro centroide 150. Esse valor padrão pode ser, por exemplo, um valor de coordenada central, um valor de erro, ou algum outro tipo apropriado de valor. O valor de coordenada central pode ser, por exemplo, a coordenada x central com respeito ao eixo x para a disposição de pixels 134 na imagem 130.
[00053] Em seguida, o controlador 122 gera um número de comandos 152 para guiar o dispositivo móvel 108 com base no primeiro centroide 150. Além disso, os comandos 152 gerados pelo controlador 122 também podem ser baseados no padrão particular com respeito ao qual a imagem 130 está sendo processada. O número de comandos 152 pode compreender pelo menos um dentre um comando de movimento, um comando de mudança de direção, um comando de parada, um comando de desativação, um comando de ativação, um comando de ré, um comando de mudança de velocidade, e um tipo de mudança de comando de movimento.
[00054] Em alguns casos, o número de comandos 152 pode incluir um comando para pedir instruções de um sistema de computador principal. Em outros exemplos ilustrativos, o número de comandos 152 pode incluir um comando para executar uma ou mais operações no local atual do dispositivo móvel 108 dentro do ambiente 104. Por exemplo, sem limitação, uma operação pode ser o registro do local atual do dispositivo móvel 108, a queda de uma carga útil, a movimentação de um braço robótico unido ao dispositivo móvel 108, a ativação de uma luz no dispositivo móvel 108, a desativação de uma luz no dispositivo móvel 108, a geração de um som, a emissão de um alerta a um sistema de computador principal, ou algum outro tipo apropriado de operação.
[00055] Por exemplo, quando o primeiro centroide 150 é uma coordenada x que fica localizada do lado direito de uma coordenada x central para a imagem 130, o controlador 122 pode gerar um comando para mover o dispositivo móvel para frente e um comando para girar o dispositivo móvel para a direita. Quando o primeiro centroide 150 é uma coordenada x que fica localizada no lado esquerdo de uma coordenada x central para a imagem 130, o controlador 122 pode gerar um comando para mover o dispositivo móvel para frente e um comando para girar o dispositivo móvel para a esquerda.
[00056] Quando o primeiro centroide 150 é o mesmo que a coordenada x central para a imagem 130, o controlador 122 pode gerar um comando para mover o dispositivo móvel para frente sem virar ou mudar de direção. Além disso, quando o primeiro centroide 150 é o valor padrão, o controlador 122 pode gerar um comando para parar o dispositivo móvel 108.
[00057] Em alguns exemplos ilustrativos, o controlador 122 também pode ser configurado para processar a imagem 130 para identificar todos os pixels na imagem 130 que satisfazem um dos outros padrões 132. Por exemplo, o controlador 122 pode processar o grupo de pixels 136 ao usar o método descrito acima para identificar um segundo conjunto de pixels 154 que satisfaz um segundo padrão 156. O segundo padrão 156 pode compreender um número de critérios para o valor de pixel 140. Esses critérios podem ser selecionados de maneira tal que todos os pixels na imagem 130 que combina com uma segunda cor selecionada dentro das tolerâncias selecionadas podem ser identificados.
[00058] Além disso, quando é processado o grupo de pixels 136 ao usar o segundo padrão 156, o controlador 122 incrementa um segundo contador de coordenadas 155 em resposta a um valor de pixel 140 de um pixel 138 que satisfaz o segundo padrão 156.
[00059] O controlador 122 pode identificar um segundo centroide 158 para o segundo conjunto de pixels 154 ao dividir o segundo contador de coordenadas 155 pelo contador de pixels 144. O segundo centroide 158 corresponde à segunda cor selecionada indicada pelo segundo padrão 156. Como um exemplo ilustrativo, se o segundo padrão 156 for definido para uma cor verde, o segundo centroide 158 corresponde essa cor verde. O segundo centroide 158 pode ser indicado como um centroide verde. O controlador 122 é configurado para gerar os comandos 152 para guiar o dispositivo móvel 108 com base em pelo menos um dentre o primeiro centroide 150 e o segundo centroide 158.
[00060] Desta maneira, o controlador 122 pode poder identificar múltiplos centroides em que cada centroide é identificado com base em um padrão diferente dos padrões 132. Além disso, cada um desses padrões 132 pode corresponder a uma cor diferente. Desse modo, os comandos 152 gerados com base nesses múltiplos centroides podem ser específicos de cores.
[00061] Além disso, o controlador 122 pode usar as relações espaciais dos múltiplos centroides para gerar os comandos 152. Em um exemplo ilustrativo, o primeiro centroide 150 pode ser um centroide vermelho e o segundo centroide 158 pode ser um centroide verde. Em resposta à identificação do centroide vermelho e do centroide verde, o controlador 122 pode determinar se o centroide vermelho fica à esquerda ou à direita do centroide verde. Os comandos 152 gerados quando o centroide vermelho fica à esquerda do centroide verde podem ser diferentes dos comandos 152 gerados quando o centroide vermelho fica à direita do centroide verde.
[00062] Além disso, quando o controlador 122 identifica múltiplos centroides, o controlador 122 pode ser configurado para identificar um padrão geométrico com respeito a esses centroides. O controlador 122 pode gerar os comandos 152 com bases na identificação desse padrão.
[00063] Como um exemplo ilustrativo, o controlador 122 pode ser configurado para identificar um centroide vermelho, um centroide verde, um centroide azul e um centroide amarelo. Uma vez que esses centroides tenham sido identificados em uma das imagens 115 recebidas do sistema sensor 114, o controlador 122 pode determinar se os centroides satisfazem menos um de um número de padrões selecionados definidos pelos padrões 132. Esses padrões selecionados podem assumir várias formas.
[00064] Em um exemplo ilustrativo, um padrão selecionado pode ser uma ordem espacial particular para os quatro centroides que representam as quatro cores diferentes com respeito a um eixo de coordenada particular. Essa ordem pode ser, por exemplo, sem limitação, da esquerda para a direita, o centroide vermelho, o centroide amarelo, o centroide verde e o centroide azul. O controlador 122 pode gerar um ou mais comandos 152 com base no fato se os centroides satisfazem o padrão selecionado.
[00065] Em um outro exemplo ilustrativo, um padrão selecionado pode ser um padrão bidimensional formado no plano formado pelo eixo x e pelo eixo y. O padrão bidimensional pode ser, por exemplo, sem limitação, um quadrado, um triângulo, ou algum outro tipo apropriado de polígono. Em alguns casos, o controlador 122 pode identificar múltiplos centroides que correspondem a cores diferentes. O controlador 122 pode determinar se esses centroides formam os cantos de um polígono selecionado no plano x-y para determinar se os centroides satisfazem o padrão selecionado.
[00066] Além disso, o controlador 122 também pode determinar se o arranjo dos centroides nos cantos do polígono selecionado satisfaz um padrão selecionado. Por exemplo, sem limitação, o controlador 122 pode determinar que um centroide vermelho, um centroide amarelo e um centroide azul formam um triângulo no plano x-y. No entanto, os comandos 152 gerados quando o centroide vermelho está no canto esquerdo, o centroide amarelo está no canto superior e o centroide azul está no canto direito podem ser diferentes dos comandos 152 gerados quando o centroide vermelho está no canto esquerdo, o centroide azul está no canto superior e o centroide amarelo está no canto direito.
[00067] Além disso, o controlador 122 pode determinar se os múltiplos centroides satisfazem um padrão de anel concêntrico. Por exemplo, sem limitação, o controlador 122 pode determinar se os múltiplos centroides correspondem substancialmente ao mesmo local no plano x-y.
[00068] Desta maneira, o controlador 122 pode ser capaz de determinar se os centroides identificados para uma das imagens 115 geradas pelo sistema sensor 114 satisfazem pelo menos um padrão de um número de padrões selecionados. Em particular, os padrões 132 podem ser usados para criar um esquema de codificação para os centroides identificados. O controlador 122 pode usar o esquema de codificação para determinar quais comandos 152 devem ser gerados pelo controlador 122 com base em um ou mais centroides identificados para as imagens 115 geradas pelo sistema sensor 114.
[00069] Quando o controlador 122 faz parte do sistema de controle 128 no dispositivo móvel 108, os comandos 152 podem ser enviados do sistema de controle 128 a um sistema de movimento 160 no dispositivo móvel 108. Esse sistema de movimento 160 pode compreender pelo menos um dentre um sistema acionador, um sistema de movimento robótico, um sistema de rodas motorizadas, um sistema de movimento hidrelétrico, um sistema de engrenagens eletrônico, um sistema de trilhas, um sistema de trilhos e/ou algum outro tipo apropriado de sistema de movimento.
[00070] No entanto, quando o controlador 122 é implementado em um sistema de computador 126 em um local afastado do dispositivo móvel 108, o controlador 122 pode enviar os comandos 152 ao sistema de controle 128 no dispositivo móvel 108. Os comandos podem ser enviados por meio de um link de comunicações 162. Esse link de comunicações 162 pode compreender pelo menos um de um link de comunicações sem fio, um link de comunicações com fio, um link de comunicações ótico, e algum outro tipo apropriado de link de comunicações.
[00071] Desta maneira, o sistema de orientação 100 pode ser configurado para controlar e guiar o movimento de dispositivos móveis 106 diferentes no sistema móvel 102 dentro do ambiente 104. Quando todos os controladores 112 no controlador de sistema 111 são implementados em sistemas de controle correspondentes nos dispositivos móveis 106, o sistema de orientação 100 pode ser considerado parte do sistema móvel 102.
[00072] Em alguns casos, o sistema sensor 114 associado com um dispositivo móvel 108 e o controlador 122 implementados em um sistema de controle 128 no dispositivo móvel 108 podem ser considerados em conjunto como um sistema de orientação do dispositivo. Desta maneira, o sistema de orientação 100 pode compreender um número de sistemas de orientação de dispositivo que correspondem ao número de dispositivos móveis 106 no sistema móvel 102. Em alguns exemplos ilustrativos, um sistema da orientação de dispositivo pode ser considerado como parte do dispositivo móvel 108, dependendo da implementação.
[00073] Com um controlador tal como o controlador 122 descrito acima, o sistema sensor 114 usado para o dispositivo móvel 108 pode ser unido ao dispositivo móvel 108 afastado do solo do ambiente 104. Em particular, o controlador 122 pode ser capaz de identificar os centroides com bases nos padrões 132 para as imagens 115 geradas quando o sistema sensor 114 fica localizado afastado do solo do ambiente 104. Consequentemente, o sistema sensor 114 pode ser unido ao dispositivo móvel 108 a uma distância do solo do ambiente 104 selecionado para reduzir a possibilidade dos objetos no solo causarem efeitos indesejados ao sistema sensor 114 à medida que o dispositivo móvel 108 se move sobre o solo.
[00074] Além disso, o sistema sensor 114 unido a um dispositivo móvel 108 pode compreender uma única câmera de vídeo nesses exemplos ilustrativos. Além disso, cada um dos sistemas sensores 110 no sistema de orientação 100 pode ser uma única câmera de vídeo unida a um dispositivo móvel correspondente nos dispositivos móveis 106 no sistema móvel 102. Desta maneira, o tamanho, o peso e/ou o custo dos sistemas sensores 110 usados no sistema de orientação 100 podem ser reduzidos em comparação a alguns sistemas sensores atualmente disponíveis usados para guiar dispositivos móveis.
[00075] A ilustração do sistema de orientação 100 na Figura 1 não significa que implica em limitações físicas ou arquitetônicas à maneira na qual uma modalidade ilustrativa pode ser implementada. Outros componentes além ou em lugar daqueles ilustrados podem ser usados. Alguns componentes podem ser desnecessários. Além disso, os blocos são descritos para ilustrar alguns componentes funcionais. Um ou mais desses blocos podem ser combinados, divididos, ou combinados e divididos em blocos diferentes quando implementados em uma modalidade ilustrativa.
[00076] Em alguns exemplos ilustrativos, o primeiro contador de coordenadas 146 e/ou o segundo contador de coordenadas 155 podem ser contadores de duas coordenadas. Por exemplo, quando o primeiro contador de coordenadas 146 é um contador de duas coordenadas, o primeiro contador de coordenadas 146 pode ser configurado para se manter a par das coordenadas e das coordenadas y para os locais dos pixels que satisfaze o primeiro padrão 142.
[00077] Desta maneira, o primeiro centroide 150 pode então compreender uma coordenada x média e uma coordenada y média. O comando 152 gerado pelo controlador 122 com base nesse tipo de primeiro centroide 150 pode, em alguns casos, incluir pelo menos um de um movimento de comando para cima, um movimento de comando para baixo, um comando de suspensão, um comando de mudança da altitude, um comando de rolagem, ou algum outro tipo apropriado de comando.
[00078] Com referência agora à Figura 2, uma ilustração de um dispositivo móvel com uma unidade da orientação é indicada de acordo com uma modalidade ilustrativa. Na Figura 2, o dispositivo móvel 200 é um exemplo de uma implementação para o dispositivo móvel 108 descrito na Figura 1. Tal como ilustrado, o dispositivo móvel 200 assume a forma de um veículo guiado automatizado 202.
[00079] O dispositivo móvel 200 é configurado para se mover sobre o solo 204 em uma instalação de fabricação 206. Essa instalação de fabricação 206 é um exemplo de uma implementação para o ambiente 104 na Figura 1.
[00080] Neste exemplo ilustrativo, a fita colorida 208 está presente sobre o solo 204. A fita colorida 208 pode ter, por exemplo, uma cor verde particular. A fita colorida 208 define uma trajetória no solo 204 ao longo da qual o dispositivo móvel 200 deve se mover. Tal como descrito, uma parte da fita colorida 208 pode ser destacada em um primeiro local 210. Além disso, uma parte da fita colorida 208 pode ser coberta por sujeira em um segundo local 212. A fita colorida 208 nesse segundo local 212 pode ter uma cor diferente do que a cor verde particular do restante da fita colorida 208.
[00081] Nesse exemplo ilustrativo, o dispositivo móvel 200 tem uma unidade de orientação 214. Essa unidade de orientação 214 é um exemplo de uma implementação para a unidade de orientação 125 na Figura 1. A unidade de orientação 214 é configurada para controlar e guiar o movimento do dispositivo móvel 200. Tal como descrito, a unidade de orientação 214 inclui um sistema sensor 216 associado com o dispositivo móvel 200 e um controlador 218. Esse sistema sensor 216 é um exemplo de uma implementação para o sistema sensor 114 na Figura 1. Além disso, esse controlador 218 é um exemplo de uma implementação para o controlador 122 na Figura 1.
[00082] O sistema sensor 216 assume a forma de uma câmera 220 neste exemplo. A câmera 220 é configurada para gerar imagens da parte da instalação de fabricação 206 na frente do dispositivo móvel 200. Em particular, a câmera 220 é configurada para gerar imagens da parte da instalação de fabricação 206 dentro de um campo de visão 221 para a câmera 220 na forma de um vídeo. A câmera 220 pode enviar essas imagens ao controlador 218 à medida que as imagens são geradas.
[00083] Tal como descrito, o controlador 218 é implementado em um sistema de controle 222 no dispositivo móvel 200. Esse sistema de controle 222 é um exemplo de uma implementação para o sistema de controle 128 na Figura 1. Em particular, esse sistema de controle 222 assume a forma de um computador neste exemplo ilustrativo.
[00084] O controlador 218 é configurado para processar cada imagem recebida da câmera 220. Por exemplo, em resposta à recepção e uma imagem da câmera 220, o controlador 218 identifica um conjunto de pixels na imagem que satisfaz um padrão. Em alguns casos, o controlador 218 pode usar técnicas de ponderação e/ou filtragem para determinar se um pixel na imagem deve ser incluído no conjunto de pixels que satisfaz um padrão selecionado. O padrão selecionado pode ser definido para uma cor selecionada.
[00085] Em um exemplo ilustrativo, o controlador 218 inclui somente um pixel que satisfaz um padrão selecionado no conjunto de pixels quando pelo menos um pixel adjacente também satisfaz o padrão selecionado. Tal como aqui empregado, "um pixel adjacente" a um pixel é aquele que fica imediatamente ao lado do pixel sem nenhum outro pixel entre o pixel e o pixel adjacente.
[00086] Em um outro exemplo ilustrativo, o controlador 218 aplica pesos aos pixels que satisfazem um padrão selecionado com base no número de pixels adjacentes que também satisfazem o padrão selecionado. Desta maneira, o controlador 218 pode usar um número de métodos para descartar quantidades insignificantes ou inconsequentes de cor em uma imagem.
[00087] O controlador 218 identifica um centroide para o conjunto de pixels que satisfaz o padrão. O controlador 218 pode identificar um centroide até mesmo com a fita colorida 208 sendo rompida no primeiro local 210 e coberta de sujeira no segundo local 212. Por exemplo, o segundo local 212 pode primeiramente vir para o campo de visão 221 para a câmera 220 à medida que o dispositivo móvel 200 se move ao longo da trajetória definida pela fita colorida 208.
[00088] O controlador 218 pode identificar um centroide para a imagem gerada pela câmera 220 contanto que pelo menos um pixel no grupo de pixels selecionado para o processamento da imagem satisfaça o padrão. Por exemplo, o controlador 218 pode ser capaz de identificar um centroide contanto que pelo menos um pixel no grupo de pixels combine com a cor da fita colorida 208 dentro das tolerâncias selecionadas.
[00089] Similarmente, o controlador 218 pode identificar um centroide para a imagem gerada quando o primeiro local 210 está no campo de visão 221 para a câmera 220 contanto que pelo menos um pixel no grupo de pixels selecionado para o processamento da imagem satisfaça o padrão. Em outras palavras, o controlador 218 pode identificar o centroide para uma imagem do primeiro local 210 contanto que uma parte da fita colorida 208 seja capturada na imagem.
[00090] Em seguida, o controlador 218 gera um número de comandos para guiar o dispositivo móvel 200 ao longo da trajetória definida pela fita colorida 208 com base no centroide. Com o método para processamento de uma imagem descrito anteriormente na Figura 1, o controlador 218 é configurado para guiar o dispositivo móvel 200 ao longo da trajetória definida pela fita colorida 208 até mesmo quando partes da fita colorida tiverem sido partidas e/ou mudado de cor.
[00091] Em alguns exemplos ilustrativos, o controlador 218 determina se um centroide que é identificado satisfaz um número de critérios selecionados para usar o centroide para gerar comandos. Em outras palavras, o controlador 218 toma decisões, com base em critérios selecionados, sobre um centroide que foi identificado antes de usar o centroide para gerar comandos para guiar o dispositivo móvel 200.
[00092] Os critérios selecionados podem ser selecionados para assegurar a validade e a confiabilidade do centroide identificado. Em outras palavras, os critérios podem ser usados para assegurar que o centroide seja identificado para a fita colorida 208 e não objetos aleatórios na instalação de fabricação 206. Em particular, os critérios podem ser usados para descartar um centroide que foi identificado para fontes de cores espúrias dentro da instalação de fabricação 206.
[00093] Como um exemplo ilustrativo, o controlador 218 determina se o número de pixels no conjunto de pixels, identificado como satisfazendo o padrão, que foi usado para gerar o centroide é maior do que um limite selecionado. O número de pixels no conjunto de pixels para usado para gerar o centroide pode ser indicado como a "massa" do centroide.
[00094] O controlador 218 envia os comandos a um sistema de movimento 224 no dispositivo móvel 200. Nesse exemplo ilustrativo, o sistema de movimento 224 é um sistema de trilha 226. O sistema de movimento 224 move o dispositivo móvel 200 com base nos comandos recebidos do controlador 218.
[00095] Com referência agora à Figura 3, uma ilustração de um sistema móvel que se move em uma instalação de fabricação é descrita de acordo com uma modalidade ilustrativa. Na Figura 3, a instalação de fabricação 300 é um exemplo de uma implementação para o ambiente 104 na Figura 1. Além disso, o sistema móvel 302 é um exemplo de uma implementação para o sistema móvel 102 na Figura 1.
[00096] Nesse exemplo ilustrativo, o sistema móvel 302 inclui um primeiro dispositivo móvel 304, um segundo dispositivo móvel 306, um terceiro dispositivo móvel 308 e um quarto dispositivo móvel 310. Cada um desses dispositivos móveis é um exemplo de uma implementação para o dispositivo móvel 108 na Figura 1. Em particular, cada um desses dispositivos móveis pode ser implementado da mesma maneira que o dispositivo móvel 200 na Figura 2.
[00097] Nesse exemplo ilustrativo, um sistema de orientação 311 é configurado para guiar o sistema móvel 302 dentro da instalação de fabricação 300. Em particular, o sistema de orientação 311 é configurado para dirigir os dispositivos móveis diferentes dentro do sistema móvel 302 por toda a instalação de fabricação 300. O sistema de orientação 311 compreende uma primeira unidade de orientação 312, uma segunda unidade de orientação 314, uma terceira unidade de orientação 316 e uma quarta unidade de orientação 318.
[00098] A primeira unidade de orientação 312, a segunda unidade de orientação 314, a terceira unidade de orientação 316 e a quarta unidade de orientação 318 são configuradas para guiar o primeiro dispositivo móvel 304, o segundo dispositivo móvel 306, o terceiro dispositivo móvel 308 e o quarto dispositivo móvel 310, respectivamente. Cada uma dessas unidades de orientação é um exemplo de uma implementação para a unidade de orientação 125 na Figura 1. Em particular, cada uma dessas unidades de orientação pode ser implementada da mesma maneira que a unidade de orientação 214 na Figura 2.
[00099] Tal como descrito, a primeira unidade de orientação 312 compreende um primeiro sistema sensor 322 associado com o primeiro dispositivo móvel 304 e um primeiro controlador 324 implementado em um sistema de controle 326 para o primeiro dispositivo móvel 304. A segunda unidade de orientação 314 compreende um segundo sistema sensor 328 associado com o segundo dispositivo móvel 306 e um segundo controlador 330 implementado em um sistema de controle 332 para o segundo dispositivo móvel 306.
[000100] A terceira unidade de orientação 316 compreende um terceiro sistema sensor 334 associado com o terceiro dispositivo móvel 308 e um terceiro controlador 336 implementado em um sistema de controle 338 para o terceiro dispositivo móvel 308. A quarta unidade de orientação 318 compreende um quarto sistema sensor 340 associado com o quarto dispositivo móvel 310 e um quarto controlador 342 implementado em um sistema de controle 344 para o quarto dispositivo móvel 310.
[000101] Nesse exemplo ilustrativo, o sistema de orientação 311 é configurado para guiar o sistema móvel 302 ao longo de trajetórias diferentes no solo 346 da instalação de fabricação 300.
[000102] Em particular, o sistema de orientação 311 usa imagens do solo 346 geradas pelo primeiro sistema sensor 322, pelo segundo sistema sensor 328, pelo terceiro sistema sensor 334 e pelo quarto sistema sensor 340 para guiar os dispositivos móveis no sistema móvel 302 ao longo das trajetórias diferentes definidas pelos pedaços de fita colorida 348 no solo 346. A fita colorida 348 no solo 346 pode incluir, por exemplo, sem limitação, um fita verde 350, uma fita azul 352, uma fita roxa 353 e uma fita vermelha 354.
[000103] O primeiro controlador 324, o segundo controlador 330, o terceiro controlador 336 e o quarto controlador 342 são configurados para receber e processar as imagens geradas pelos sistemas sensores no sistema de orientação 311. O primeiro controlador 324, o segundo controlador 330, o terceiro controlador 336 e o quarto controlador 342 usam essas imagens para gerar comandos para o primeiro dispositivo móvel 304, o segundo dispositivo móvel 306, o terceiro dispositivo móvel 308 e o quarto dispositivo móvel 310, respectivamente.
[000104] Por exemplo, em resposta à detecção da cor verde da fita verde 350 em uma imagem recebida do primeiro sistema sensor 322, o primeiro controlador 324 pode gerar comandos para guiar o primeiro dispositivo móvel 304 para a fita verde 350. Os comandos gerados em resposta à detecção pelo primeiro controlador 324 da cor verde da fita verde 350 fazem com que o primeiro dispositivo móvel 304 se mova a uma velocidade mais rápida do que os comandos gerados em resposta à detecção pelo primeiro controlador 324 da cor azul da fita azul 352.
[000105] Os comandos gerados em resposta à detecção pelo primeiro controlador 324 da cor azul da fita azul 352 fazem com que o primeiro dispositivo móvel 304 se mova a uma velocidade mais rápida do que os comandos gerados em resposta à detecção pelo primeiro controlador 324 da cor roxa da fita roxa 353. Além disso, o primeiro controlador 324 pode gerar um comando que faz com que o primeiro dispositivo móvel 304 pare quando o primeiro controlador 324 detectar a cor vermelha da fita vermelha 354 dentro de alguma distância selecionada do primeiro dispositivo móvel 304.
[000106] Com referência agora à Figura 4, uma ilustração da instalação de fabricação 300 de Figura 3 é descrita de acordo com uma modalidade ilustrativa. Na Figura 4, o sistema de orientação 300 tem uma configuração diferente da configuração para o sistema de orientação 311 na Figura 3.
[000107] Nesse exemplo ilustrativo, o primeiro controlador 324 (não mostrado nesta vista), o segundo controlador 330 (não mostrado nesta vista), o terceiro controlador 336 (não mostrado nesta vista) e o quarto controlador 342 (não mostrado nesta vista) são implementados ao usar um software em um sistema de computador 400. Esses controladores formam em conjunto um controlador de sistema (não mostrado nesta vista) para o sistema de orientação 311.
[000108] Esse controlador de sistema é um exemplo de uma implementação para o controlador de sistema 111 na Figura 1. Além disso, esse sistema de computador 400 é um exemplo de uma implementação para o sistema de computador 126 na Figura 1. Tal como descrito, o sistema de computador 400 fica localizado em uma estação de trabalho central 402 na instalação de fabricação 300. Com esse tipo de configuração para o sistema de orientação 311, o controlador e o sistema sensor que correspondem a um dispositivo móvel particular no sistema móvel 302 podem não ser mais considerados como uma unidade de orientação.
[000109] Tal como descrito, o controlador do sistema no sistema de computador 400 é configurado para receber as imagens geradas pelo primeiro sistema sensor 322, pelo segundo sistema sensor 328, pelo terceiro sistema sensor 334 e pelo quarto sistema sensor 340. Em particular, esses sistemas sensores podem enviar imagens ao controlador do sistema sem fio à medida que as imagens são geradas. O controlador do sistema processa essas imagens para guiar o primeiro dispositivo móvel 304, o segundo dispositivo móvel 306, o terceiro dispositivo móvel 308 e o quarto dispositivo móvel 310 ao longo do solo 346 da instalação de fabricação 300 com base nas trajetórias definidas pela fita colorida 348.
[000110] Nesse exemplo ilustrativo, o controlador de sistema pode gerar comandos para um dispositivo móvel com base em pelo menos um de um centroide identificado ao usar uma imagem gerada por um sistema sensor associado com o dispositivo móvel e o centroide identificado para um outro dispositivo móvel. Além disso, o controlador de sistema pode usar as posições diferentes dos dispositivos móveis no sistema móvel 302 dentro da instalação de fabricação 300 para gerar os comandos.
[000111] Com referência agora à Figura 5, uma ilustração de um processo para guiar um dispositivo móvel, na forma de um fluxograma, é descrita de acordo com uma modalidade ilustrativa. O processo ilustrado na Figura 5 pode ser implementado ao usar o sistema de orientação 100 na Figura 1. Em particular, esse processo pode ser implementado ao usar o controlador 122 na Figura 1.
[000112] O processo começa com a recepção de uma imagem de uma parte de um ambiente em torno de um dispositivo móvel de um sistema sensor associado com o dispositivo móvel (operação 500). Em seguida, o processo identifica um padrão para processar a imagem (operação 502). O processo identifica então um grupo de pixels da disposição de pixels na imagem (operação 504). Essa operação 504 pode ser executada com base nos locais predefinidos para o grupo de pixels.
[000113] O processo seleciona então um pixel do grupo de pixels identificado (operação 506). O processo determina se um valor de pixel do pixel satisfaz o padrão identificado (operação 508). Se o valor do pixel satisfaz o padrão, o processo incrementa um contador de pixels (operação 510). Dependendo da implementação, o contador de pixels pode ser incrementado por um ou por um valor ponderado para o pixel na operação 510.
[000114] Em alguns exemplos ilustrativos, na operação 510, o valor ponderado para o pixel pode ser baseado no local do pixel dentro da imagem. Além disso, em alguns exemplos ilustrativos, o valor ponderado para o pixel pode ser baseado no número de pixels adjacentes também identificados como satisfazendo o padrão.
[000115] Em seguida, o processo incrementa um contador de coordenadas (operação 512). Essa operação 512 pode ser executada ao incrementar o contador de coordenadas por um valor de coordenada para o local do pixel na imagem.
[000116] O processo determina então se qualquer pixel não processado adicional no grupo de pixels está presente (operação 514). Quando todos os pixels no grupo de pixels tiverem sido processados, um conjunto de pixels que satisfaz o padrão é identificado. Esse conjunto pode ser um conjunto nulo em alguns casos.
[000117] Com respeito à operação 514, se qualquer pixel não processado adicional estiver presente, o processo retorna à operação 506. De outra forma, o processo identifica um centroide para o conjunto de pixels que satisfaz o padrão ao dividir o contador de coordenadas pelo contador de pixels (operação 516). Desta maneira, o centroide é um valor de coordenada médio.
[000118] Em seguida, o processo gera um número de comandos para guiar o dispositivo móvel com base no centroide (operação 518), e o processo termina depois disso. Com referência outra vez à operação 508, se o valor de pixel do pixel não satisfaz o padrão identificado, o processo prossegue para a operação 514 tal como descrito acima. O processo descrito na Figura 5 pode ser repetido para cada imagem recebida do sistema sensor associado com o dispositivo móvel.
[000119] Os fluxogramas e os diagramas de blocos nas modalidades ilustradas diferentes ilustram a arquitetura, a funcionalidade e a operação de algumas possíveis implementações do aparelho e métodos em uma modalidade ilustrativa. A este respeito, cada bloco nos fluxogramas ou nos diagramas de blocos pode representar um módulo, segmento, função, e/ou uma parte de uma operação ou uma etapa. Por exemplo, um ou mais dos blocos podem ser implementados como um código de programa, no hardware, ou uma combinação de código de programa e hardware. Quando implementado no hardware, o hardware pode, por exemplo, assumir a forma de circuitos integrados que são manufaturados ou configurados para executar uma ou mais operações nos fluxogramas ou diagramas de blocos.
[000120] Em algumas implementações alternativas de uma modalidade ilustrativa, a função ou funções indicadas nos blocos podem ocorrer fora da ordem indicada nas figuras. Por exemplo, em alguns casos, dois blocos mostrados em sucessão podem ser executados de modo substancialmente simultâneo, ou os blocos podem algumas vezes ser executados na ordem inversa, dependendo da funcionalidade envolvida. Além disso, outros blocos podem ser adicionados além dos blocos ilustrados em um fluxograma ou diagrama de blocos.
[000121] Em alguns exemplos ilustrativos, a operação 518 na Figura 5 só pode ser executada depois que é tomada uma decisão se o centroide identificado na operação 516 na Figura 5 satisfaz ou não um número de critérios selecionados está feito. Por exemplo, sem limitação, a operação 518 só pode ser executada quando a massa do centroide for maior do que um limite selecionado. A massa do centroide é o número de pixels no conjunto de pixels identificados como satisfazendo o padrão e usados para gerar o centroide.
[000122] Com referência agora à Figura 6, uma ilustração de um sistema de processamento de dados é descrita de acordo com uma modalidade ilustrativa. Nesse exemplo ilustrativo, um sistema de processamento de dados 600 pode ser usado para implementar um ou mais computadores no sistema de computador 126 na Figura 1. Nesse exemplo ilustrativo, o sistema de processamento de dados 600 inclui uma estrutura de comunicações 602, a qual provê as comunicações entre uma unidade de processamento 604, uma memória 606, um armazenamento persistente 608, uma unidade de comunicações 610, uma unidade de entrada/saída 612 (I/O), e um monitor 614.
[000123] A unidade de processamento 604 serve para executar as instruções para o software que pode ser carregado na memória 606. A unidade de processamento 604 pode consistir em um número de processadores, um núcleo de multiprocessador, ou algum outro tipo de processador, dependendo da implementação particular. Tal como aqui empregado, um "número"de itens significa um ou mais itens. Por exemplo, um número de processadores significa um ou mais processadores. Além disso, a unidade de processamento 604 pode ser implementada ao usar um número de sistemas de processador heterogêneos em que um processador principal está presente com processadores secundários em um único chip. Como um outro exemplo ilustrativo, a unidade de processamento 604 pode ser um sistema de múltiplos processadores simétrico que contém múltiplos processadores do mesmo tipo.
[000124] A memória 606 e o armazenamento persistente 608 são exemplos de dispositivos de armazenamento 616. Um dispositivo de armazenamento é qualquer peça de hardware que tem a capacidade de armazenar informações, tais como, por exemplo, sem limitação, dados, o código do programa na forma funcional e/ou a outra informação apropriada em uma base temporária e/ou então uma base permanente. Os dispositivos de armazenamento 616 também podem ser indicados como dispositivos de armazenamento que podem ser lidos por computador nesses exemplos. A memória 606, nesses exemplos, pode ser, por exemplo, uma memória de acesso aleatório ou qualquer outro dispositivo de armazenamento volátil ou não volátil apropriado. O armazenamento persistente 608 pode assumir várias formas, dependendo da implementação particular.
[000125] O armazenamento persistente 608 pode conter um ou mais componentes ou dispositivos. Por exemplo, o armazenamento persistente 608 pode incluir um drive rígido, uma memória flash, um disco ótico regravável, uma fita magnética regravável, ou alguma combinação dos elementos acima. Os meios usados pelo armazenamento persistente 608 também podem ser removíveis. Por exemplo, um drive rígido removível pode ser usado para o armazenamento persistente 608.
[000126] A unidade de comunicações 610, nestes exemplos, provê as comunicações com outros sistemas ou dispositivos de processamento de dados. Nesses exemplos, a unidade de comunicações 610 é um cartão de interface de rede. A unidade de comunicações 610 pode prover comunicações através do uso de qualquer um ou ambos os links de comunicação físicos e sem fio.
[000127] A unidade de entrada/saída 612 permite a entrada e a saída de dados com outros dispositivos que podem ser conectados ao sistema de processamento de dados 600. Por exemplo, a unidade de entrada/saída 612 pode prover uma conexão para o usuário inserir através de um teclado, um mouse e/ou algum outro dispositivo de entrada apropriado. Além disso, a unidade de entrada/saída 612 pode enviar a saída a uma impressora. O monitor 614 provê um mecanismo para exibir as informações a um usuário.
[000128] As instruções para o sistema operacional, os aplicativos e/ou os programas podem ficar localizadas nos dispositivos de armazenamento 616, que ficam em comunicação com a unidade de processamento 604 através da estrutura de comunicações 602. Nesses exemplos ilustrativos, as instruções estão em uma forma funcional no armazenamento persistente 608. Essas instruções podem ser carregadas na memória 606 para a execução pela unidade de processamento 604. Os processos das modalidades ilustrativas diferentes podem ser executados pela unidade de processamento 604 ao usar as instruções implementadas por computador, que podem ficar localizadas em uma memória, tal como a memória 606.
[000129] Essas instruções são indicadas como código de programa, código de programa utilizável em computador, ou código de programa que pode ser lido por computador, que pode ser lido e executado por um processador na unidade de processamento 604. O código de programa nas modalidades diferentes pode ser incorporado em meios físicos ou de armazenamento que podem ser lidos por computador diferentes, tais como a memória 606 ou o armazenamento persistente 608.
[000130] O código de programa 618 é localizado em uma formafuncional no meio que pode ser lido por computador 620 que éseletivamente removível e pode ser carregado ou transferido ao sistema de processamento de dados 600 para a execução pela unidade de processamento 604. O código de programa 618 e o meio que pode ser lido por computador 620 formam um produto de programa de computador 622 nesses exemplos ilustrativos. Em um exemplo, o meio que pode ser lido por computador 620 podem ser o meio de armazenamento que pode ser lido por computador 624 ou o meio de sinal que pode ser lido por computador 626.
[000131] O meio de armazenamento que pode ser lido por computador 624 pode incluir, por exemplo, um disco ótico ou magnético que é inserido ou colocado em uma drive ou um outro dispositivo que faz parte do armazenamento persistente 608 para a transferência a um dispositivo de armazenamento, tal como um drive rígido, que faz parte do armazenamento persistente 608. O meio de armazenamento que pode ser lido por computador 624 também pode assumir a forma de um armazenamento persistente, tal como um drive rígido, um drive de polegar, ou uma memória flash, que é conectado ao sistema de processamento de dados 600.
[000132] Nesses exemplos, o meio de armazenamento que pode ser lido por computador 624 é um dispositivo de armazenamento físico ou tangível usado para armazenar o código de programa 618 ao invés de um meio que propaga ou transmite o código de programa 618. O meio de armazenamento que pode ser lido por computador 624 também é indicado como um dispositivo de armazenamento tangível que pode ser lido por computador ou um dispositivo de armazenamento físico que pode ser lido por computador. Em outras palavras, o meio de armazenamento que pode ser lido por computador 624 é um meio que pode ser tocado por uma pessoa.
[000133] Alternativamente, o código de programa 618 pode ser transferido ao sistema de processamento de dados 600 ao usar o meio de sinal que pode ser lido por computador 626. O meio de sinal que pode ser lido por computador 626 pode ser, por exemplo, um sinal de dados propagado que contém o código de programa 618. Por exemplo, o meio de sinal que pode ser lido por computador 626 pode ser um sinal eletromagnético, um sinal ótico, e/ou qualquer outro tipo apropriado de sinal. Esses sinais podem ser transmitidos através de um link de comunicações, tal como um link de comunicações sem fio, um cabo de fibra ótica, um cabo coaxial, um fio e/ou qualquer outro tipo apropriado de link de comunicações. Em outras palavras, o link de comunicações e/ou a conexão podem ser físicos ou sem fio nos exemplos ilustrativos.
[000134] Em algumas modalidades ilustrativas, o código de programa pode ser baixado por uma rede no armazenamento persistente 608 de um outro dispositivo 618 ou sistema de processamento de dados através do meio de sinal que pode ser lido por computador 626 para o uso dentro do sistema de processamento de dados 600. Por exemplo, o código de programa armazenado em um meio de armazenamento que pode ser lido por computador em um sistema de processamento de dados do servidor pode ser descarregado por uma rede do servidor ao sistema de processamento de dados 600. O sistema de processamento de dados que fornece o código de programa 618 pode ser um computador do servidor, um computador do cliente, ou algum outro dispositivo com capacidade de armazenar e transmitir o código de programa 618.
[000135] Os componentes diferentes ilustrados para o sistema de processamento de dados 600 não se prestam a impor limitações de arquitetura à maneira na qual as modalidades diferentes podem ser implementadas. As modalidades ilustrativas diferentes podem ser implementadas em um sistema de processamento de dados que inclui os componentes além ou em lugar daqueles ilustrados para o sistema de processamento de dados 600. Outros componentes mostrados na Figura 6 podem ser variados em relação aos exemplos ilustrativos mostrados. As modalidades diferentes podem ser implementadas ao usar qualquer dispositivo de hardware ou sistema com capacidade de rodar o código do programa. Como um exemplo, o sistema de processamento de dados pode incluir componentes orgânicos integrados com componentes inorgânicos e/ou pode ser compreendido inteiramente de componentes orgânicos excluindo um ser humano. Por exemplo, um dispositivo de armazenamento pode compreender um semicondutor orgânico.
[000136] Em um outro exemplo ilustrativo, a unidade de processamento 604 pode assumir a forma de uma unidade de hardware que tem circuitos que são manufaturados ou configurados para um uso particular. Esse tipo de hardware pode executar operações sem a necessidade de carregar o código do programa em uma memória de um dispositivo de armazenamento a ser configurado para executar as operações.
[000137] Por exemplo, quando a unidade de processamento 604 assume a forma de uma unidade de hardware, a unidade de processamento 604 pode ser um sistema de circuito, um circuito integrado específico de aplicação (ASIC), um dispositivo de lógica programável, ou algum outro tipo apropriado de hardware configurado para executar um número de operações. Com um dispositivo de lógica programável, o dispositivo é configurado para executar o número das operações. O dispositivo pode ser reconfigurado em um momento posterior ou pode ser permanentemente configurado para executar o número de operações. Os exemplos de dispositivos de lógica programáveis incluem, por exemplo, uma disposição lógica programável, uma disposição lógica programável de campo, uma disposição de porta programável de campo, e outros dispositivos de hardware apropriados. Com este tipo de implementação, o código de programa 618 pode ser omitido, porque os processos para as modalidades diferentes são implementados em uma unidade de hardware.
[000138] Em ainda um outro exemplo ilustrativo, a unidade de processamento 604 pode ser implementada ao usar uma combinação dos processadores encontrados nos computadores e nas unidades de hardware. A unidade de processamento 604 pode ter um número um número de unidades de hardware e um número de processadores que são configurados para rodar o código de programa 618. Com este exemplo ilustrado, alguns dos processos podem ser implementados no número de unidades de hardware, ao passo que outros processos podem ser implementados no número de processadores.
[000139] Em um outro exemplo, um sistema de barramento pode ser usado para implementar a estrutura de comunicações 602 e pode compreender um ou mais barramentos, tais como um barramento de sistema ou um barramento de entrada/saída. Naturalmente, o sistema de barramento pode ser implementado ao usar qualquer tipo apropriado de arquitetura que provê uma transferência de dados entre componentes diferentes ou dispositivos unidos ao sistema de barramento.
[000140] Além disso, uma unidade de comunicações pode incluir um número de dispositivos que transmitem dados, recebem dados, ou transmitem e recebem dados. Uma unidade de comunicações pode ser, por exemplo, um modem ou um adaptador de rede, dois adaptadores de rede, ou alguma combinação dos mesmos. Além disso, uma memória pode ser, por exemplo, a memória 606, ou um cache, tal como encontrado em uma interface ou hub controlador de memória que pode estar presente na estrutura de comunicações 602.
[000141] Desse modo, as modalidades ilustrativas diferentes provêm um método, um aparelho e um sistema para guiar um número de dispositivos móveis. Em uma modalidade ilustrativa, uma imagem é recebida de uma parte de um ambiente em torno de um dispositivo móvel no número de dispositivos móveis de um sistema sensor associado com o dispositivo móvel. Um conjunto de pixels é identificado na imagem que satisfaz um padrão. Um centroide é identificado para o conjunto de pixels que satisfaz o padrão. Um número de comandos é gerado para guiar o dispositivo móvel dentro do ambiente com base no centroide.
[000142] As modalidades ilustrativas diferentes provêm um sistema de orientação, tal como o sistema de orientação 100 na Figura 1, que permite que um dispositivo móvel, tal como o dispositivo móvel 108 na Figura 1, siga a fita colorida com um nível desejado de precisão até mesmo quando a fita colorida tiver experimentado efeitos indesejados. Além disso, o sistema de orientação 100 pode ser menos caro, menor e mais leve em comparação a alguns sistemas de orientação atualmente disponíveis.
[000143] Além disso, o controlador 122 no sistema de orientação 100 que gera os comandos 152 para guiar o dispositivo móvel 108 pode ser reconfigurável. Em particular, os padrões 132 usados pelo controlador 122 para guiar o dispositivo móvel 108 podem ser mudados com o passar do tempo. Por exemplo, o controlador 122 pode ser reprogramado em relação ao tempo para levar em consideração novos padrões. Além disso, o controlador 122 pode ser reprogramado em relação ao tempo de maneira tal que comandos novos são gerados para os padrões previamente definidos 132.
[000144] Desta maneira, o sistema de orientação 100 provido pelas modalidades ilustrativas diferentes pode ser adaptável a novas situações com o passar do tempo. Além disso, os algoritmos usados pelos controladores 112 no sistema de orientação 100 podem ser suficientemente simples de maneira tal que a quantidade e/ou a complexidade do hardware necessário para guiar o dispositivo móvel 108, tais como o sistema sensor 114, podem ser reduzidas em comparação a alguns sistemas de orientação atualmente disponíveis.
[000145] Nas figuras e no texto, em um aspecto, é descrito um método para guiar um número de dispositivos móveis 106, em que o método compreende: a recepção de uma imagem 130 de uma parte 120 de um ambiente 104 em torno de um dispositivo móvel 108 no número de dispositivos móveis 106 de um sistema sensor 114 associado com o dispositivo móvel 108; a identificação de um conjunto de pixels 148 na imagem 130 que satisfaz um padrão 142; a identificação de um centroide 150 para o conjunto de pixels 148 que satisfaz o padrão 142; e a geração de um número de comandos 152 para guiar o dispositivo móvel 108 dentro do ambiente 104 com base no centroide 150.
[000146] Em uma variante, o método também inclui: o envio do número de comandos 152 ao dispositivo móvel 108. Em uma outra variante, o método inclui a etapa de identificação do conjunto de pixels 148 na imagem 130 que satisfaz o padrão 142 que inclui: a identificação de um grupo de pixels 136 de uma disposição de pixels 134 na imagem 130 para o processamento; a determinação se um pixel 138 no grupo de pixels 136 satisfaz o padrão 142, em que o padrão 142 compreende um número de critérios para um valor de pixel 140 do pixel 138; a incrementação de um contador de pixels 144 em resposta à satisfação do padrão 142 pelo pixel 138; a incrementação de um contador de coordenadas 146 por um valor de coordenada para o pixel 138 em resposta à satisfação do padrão 142 pelo pixel 138; e a execução das etapas de determinação se o pixel 138 no grupo de pixels 136 satisfaz o padrão 142, incrementação do contador de pixels 144, e incrementação do contador de coordenadas 146 para cada pixel no grupo de pixels 136.
[000147] Em uma outra variante, o método inclui a etapa de determinação se o pixel 138 no grupo de pixels 136 satisfaz o padrão 142 que inclui: a determinação se o pixel 138 no grupo de pixels 136 satisfaz o número de critérios para o valor de pixel 140 do pixel 138, em que o valor de pixel 140 do pixel 138 é um valor da intensidade que compreende um valor vermelho, um valor azul e um valor verde, e em que o número de critérios inclui uma faixa selecionada para pelo menos um dentre o valor vermelho, o valor azul e o valor verde.
[000148] Em ainda uma outra variante, o método inclui a etapa de incrementação do contador de pixels 144 em resposta à satisfação do padrão 142 pelo pixel 138 que inclui: a incrementação do contador de pixels 144 por um valor ponderado para o pixel 138 em resposta à satisfação do padrão 142 pelo pixel 138. Em ainda uma outra variante, o método inclui a etapa de identificação do centroide 150 para o conjunto de pixels 148 que satisfaz o padrão 142 que inclui: a divisão do contador de coordenadas 146 pelo contador de pixels 144 para gerar o centroide 150, em que o centroide é um valor de coordenada médio.
[000149] Em um exemplo, o método inclui a etapa de geração do número de comandos 152 para guiar o dispositivo móvel dentro do ambiente 104 com base no centroide que inclui: a geração do número de comandos 152 para guiar o dispositivo móvel 108 dentro do ambiente 104 com base no centroide, em que o número de comandos 152 compreende pelo menos um de um comando de parada, um comando de desativação, um comando de ativação, um comando de ré, um comando de mudança de velocidade, e um comando do tipo de mudança de movimento.
[000150] Em um outro exemplo, o método inclui a assertiva que o padrão 142 é um primeiro padrão 142, o conjunto de pixels 148 é um primeiro conjunto de pixels 148, e o centroide 150 é um primeiro centroide 150; e inclui ainda: a identificação de um segundo conjunto de pixels 154 na imagem 130 que satisfaz um segundo padrão 156; e a identificação de um segundo centroide 158 para o segundo conjunto de pixels 154 que satisfaz o segundo padrão 156. Em ainda um outro exemplo, o método inclui a etapa de geração do número de comandos 152 para guiar o dispositivo móvel 108 dentro do ambiente 104 com base no centroide 150 que inclui: a geração do número de comandos 152 para guiar o dispositivo móvel 108 dentro do ambiente 104 com base em pelo menos um primeiro centroide 150 e um segundo centroide 158.
[000151] Em ainda um outro exemplo, o método também inclui: a geração do número de comandos 152 para guiar o dispositivo móvel 108 com base no centroide 150 e um outro centroide identificado para o uso na orientação de um outro dispositivo móvel 108 no número de dispositivos móveis 106.
[000152] Em um aspecto, é descrito um aparelho que inclui: um sistema sensor 114 associado com um dispositivo móvel 108 e configurado para gerar uma imagem 130 de uma parte 120 de um ambiente 104 em torno do dispositivo móvel 108; e um controlador 122 configurado para receber a imagem 130 da parte 120 do ambiente 104 em torno do dispositivo móvel 108 do sistema sensor 114; identificar um conjunto de pixels 148 na imagem 130 que satisfaz um padrão 142; identificar um centroide 150 para o conjunto de pixels 148 que satisfaz o padrão a42; e gerar um número de comandos 152 para guiar o dispositivo móvel 108 dentro do ambiente 104 com base no centroide 150.
[000153] Em uma variante, o aparelho inclui a assertiva em que a imagem 130 inclui uma disposição de pixels 134 e em que o controlador 122 é configurado para identificar o conjunto de pixels 148 na imagem 130 que satisfaz o padrão 142 ao determinar se um pixel 138 em um grupo de pixels 136 identificados da disposição dos pixels 134 satisfaz o padrão 142 em que o padrão 142 compreende um número de critérios para um valor de pixel 140 do pixel 138, incrementar um contador de pixels 144 em resposta à satisfação do padrão 142 pelo pixel 138, e incrementar um contador de coordenadas 146 por um valor de coordenada para o pixel 138 em resposta à satisfação do padrão 142 pelo pixel 138 para cada pixel no grupo de pixels 136.
[000154] Em uma outra variante, o aparelho inclui o controlador 122 configurado para incrementar o contador de pixels 144 por um valor ponderado para o pixel 138 em resposta à satisfação do padrão 142 pelo pixel. Em ainda uma outra variante, o aparelho inclui a assertiva de que o centroide 150 é um valor de coordenada médio em que o controlador 122 é configurado para identificar o valor de coordenada médio ao dividir o contador de coordenadas 146 pelo contador de pixels 144.
[000155] Em ainda uma outra variante, o aparelho inclui a assertiva de que o valor de pixel 140 do pixel 138 é um valor da intensidade que compreende um valor vermelho, um valor azul e um valor verde e em que o número dos critérios inclui uma faixa selecionada para pelo menos um dentre o valor vermelho, o valor azul e o valor verde. Em ainda uma outra variante, o aparelho inclui a assertiva de que o padrão 142 é um primeiro padrão 142, o conjunto de pixels 148 é um primeiro conjunto de pixels 148, o centroide 150 é um primeiro centroide 150; e em que o controlador 122 é configurado para identificar um segundo conjunto de pixels 154 na imagem 130 que satisfaz um segundo padrão 156, gerar um segundo centroide 158 para o segundo conjunto de pixels 154 que satisfaz o segundo padrão 156, e gerar o número de comandos 152 para guiar o dispositivo móvel 108 dentro do ambiente 104 com base em pelo menos um dentre o primeiro centroide 150 e o segundo centroide 158.
[000156] Em um exemplo, o aparelho inclui o controlador 122 que é executado em que em um sistema de controle 128 no dispositivo móvel 108. Em um outro exemplo, o aparelho também inclui: um controlador de sistema 111 que compreende um número de controladores 112 configurados para guiar um número de dispositivos móveis 106, em que o controlador 122 é um do número dos controladores 112 e o dispositivo móvel 108 é um do número dos dispositivos móveis 106.
[000157] Em um aspecto, é descrito um sistema de orientação, o qual inclui: um número de sistemas sensores 110 em que um sistema sensor 114 no número de sistemas sensores 110 é associado com um dispositivo móvel correspondente em um número de dispositivos móveis 106; e um número de controladores 112 em que um controlador 122 no número de controladores 112 é configurado para receber uma imagem 130 de uma parte 120 de um ambiente 104 em torno de um dispositivo móvel 108 no número de dispositivos móveis 106 de um sistema sensor correspondente no número dos sistemas sensores 110 associados com o dispositivo móvel 108, identificar um conjunto de pixels 148 na imagem 130 que satisfaz um padrão 142; identificar um centroide 150 para o conjunto de pixels 148 que satisfaz o padrão 142; e gerar um número de comandos 152 para guiar o dispositivo móvel correspondente dentro do ambiente 104 com base no centroide 150.
[000158] Em uma variante, o sistema de orientação que inclui o controlador 122 é executado em pelo menos um sistema de controle 128 no dispositivo móvel 108 e um sistema de computador 126 em um local afastado do dispositivo móvel 108, e em que o controlador 122 é configurado para identificar o conjunto de pixels 148 na imagem 130 que satisfaz o padrão ao determinar se um pixel 138 em um grupo de pixels 136 identificados de uma disposição de pixels 134 na imagem 130 satisfaz o padrão 142 em que o padrão 142 compreende um número de critérios para um valor de pixel 140 do pixel, e incrementar um contador de pixels 144 e um contador de coordenadas 146 em resposta à satisfação do padrão 142 pelo pixel 138 para cada pixel no grupo de pixels 136.
[000159] A descrição das modalidades ilustrativas diferentes foi apresentada para finalidades de ilustração e descrição, e não se intenciona ser exaustiva ou limitada às modalidades na forma descrita. Muitas modificações e variações serão aparentes aos elementos versados na técnica. Além disso, as modalidades ilustrativas diferentes podem prover características diferentes em comparação a outras modalidades ilustrativas. A modalidade as modalidades selecionadas são escolhidas e descritas a fim de explicar melhor os princípios das modalidades, a aplicação prática, e permitir que outros elementos versados na técnica compreendam a descrição para várias modalidades com várias modificações que são adequadas ao uso particular contemplado.

Claims (9)

1. Método para guiar um robô guiado automaticamente (106), o método caracterizado pelo fato de que compreende: receber uma imagem (130) de uma parte (120) de um ambiente (104) em torno do robô guiado automaticamente de um sistema de sensor (114) associado ao robô guiado automaticamente (108); identificar um grupo de pixels (148) de uma disposição de pixels na imagem (130) para processamento; para cada pixel no grupo de pixels, realizar as etapas de: determinar se um pixel no grupo de pixels satisfaz um padrão (142), em que o padrão compreende um número de critérios para um valor de pixel do pixel; incrementar um contador de pixels (144) em resposta à satisfação pelo pixel do padrão para contar o número de pixels que satisfazem o padrão; e incrementar um contador de coordenadas (146) em um valor de coordenada para o pixel em resposta à satisfação pelo pixel do padrão para contar os diferentes valores de coordenadas para os pixels que satisfazem o padrão, o método compreende ainda: determinar um valor de coordenadas padrão para o conjunto de pixels que satisfaz o padrão pela divisão do contador de coordenadas pelo contador de pixels; identificar um centroide (150) para o conjunto de pixels (148) que satisfaz o padrão (142), em que o centroide (150) é o valor de coordenadas médio para o conjunto de pixels (148); e gerar um número de comandos (152) para guiar o robô guiado automaticamente (108) dentro do ambiente (104) com base no centroide (150); em que o número de comandos inclui um comando para virar o robô guiado automaticamente para a direita ou esquerda quando o centroide (150) está localizado à direita ou esquerda respectivamente de uma coordenada de centro da imagem (130), e em que o número de comandos (152) inclui um comando para executar uma ou mais operações na localização atual, incluindo pelo menos um comando para entregar uma carga.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de identificação do conjunto de pixels (148) na imagem (130) que satisfaz o padrão (142) compreende:em que a etapa de incrementar o contador de pixels (144) em resposta à satisfação pelo pixel (138) do padrão (142) compreende:incrementar o contador de pixels (142) por um valor ponderado para o pixel (138) em resposta à satisfação pelo pixel (138) do padrão (142); eem que a etapa de identificação do centroide (150) para o conjunto de pixels (148) que atende o padrão (142) compreende:dividir o contador de coordenadas (146) pelo contador de pixels (144) para gerar o centroide (150), em que o centroide é um valor de coordenada médio.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a etapa de determinação se o pixel (138) no grupo de pixels (136) satisfaz o padrão (142) compreende:determinar se o pixel (138) no grupo de pixels (136) satisfaz o número de critérios para o valor de pixel (140) do pixel (138), em que o valor de pixel (140) do pixel (138) é um valor da intensidade que compreende um valor vermelho, um valor azul e um valor verde, e em que o número de critérios inclui uma faixa selecionada para pelo menos um dentre o valor vermelho, o valor azul e o valor verde.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que a etapa de geração do número de comandos (152) para guiar o robô guiado automaticamente dentro do ambiente (104) com base no centroide compreende:gerar o número de comandos (152) para guiar o robô guiado automaticamente (108) dentro do ambiente (104) com base no centroide, em que o número de comandos (152) compreende pelo menos um de um comando de parada, um comando de desativação, um comando de ativação, um comando de ré, um comando de mudança de velocidade, e um comando do tipo de mudança de movimento.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o padrão (142) é um primeiro padrão (142), o conjunto de pixels (148) é um primeiro conjunto de pixels (148), e o centroide (150) é um primeiro centroide (150); o qual compreende ainda:identificar um segundo conjunto de pixels (154) na imagem (130) que satisfaz um segundo padrão (156); eidentificar um segundo centroide (158) para o segundo conjunto de pixels (154) que satisfaz o segundo padrão (156).
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que a etapa de geração do número dos comandos (152) para guiar o dispositivo móvel (108) dentro do ambiente (104) com base no centroide (150) compreende pelo menos uma de:gerar o número de comandos (152) para guiar o robô guiado automaticamente (108) dentro do ambiente (104) com base em pelo menos um dentre o primeiro centroide (150) e o segundo centroide (158); egerar o número de comandos (152) para guiar o robô guiado automaticamente (108) com base no centroide (150) e um outro centroide identificado para o uso na orientação de um outro robô guiado automaticamente (108) no número de robôs guiados automaticamente (106).
7. Aparelho, caracterizado pelo fato de que compreende: um sistema sensor (114) associado com um robô guiado automaticamente (108) e configurado para gerar uma imagem (130) de uma parte (120) de um ambiente (104) em torno do robô guiado automaticamente (108), em que a imagem compreende uma disposição de pixels e em que um controlador é configurado para identificar um conjunto de pixels na imagem que satisfaz um padrão pela determinação sobre se um pixel em um grupo de pixels identificado na disposição de pixels satisfaz o padrão em que o padrão compreende um número de critérios para um valor de pixel do pixel, incrementar um contador de pixels em resposta à satisfação pelo pixel do padrão, e o incrementar um contador de coordenadas em um valor de coordenada para o pixel em resposta à satisfação pelo pixel do padrão para cada pixel no grupo de pixels; eo controlador (122) configurado para receber a imagem (130) da parte (120) do ambiente (104) em torno do robô guiado automaticamente (108) do sistema sensor (114); identificar um conjunto de pixels (148) na imagem (130) que satisfaz o padrão (142); identificar um centroide (150) para o conjunto de pixels (148) que satisfaz o padrão (142) por meio da divisão do contador de coordenadas pelo contador de pixels; e gerar um número de comandos (152) para guiar o dispositivo móvel (108) dentro do ambiente (104) com base no centroide (150);em que o número de comandos (152) inclui um comando para executar uma ou mais operações na localização atual, incluindo pelo menos um comando para entregar uma carga.
8. Aparelho, de acordo com a reivindicação 7, caracterizado pelo fato de que o controlador (122) é configurado para incrementar o contador de pixels (144) por um valor ponderado para o pixel (138) em resposta à satisfação do padrão (142) pelo pixel e compreender ainda: um controlador do sistema (111) que compreende um número de controladores (112) configurados para guiar um número de robôs guiados automaticamente (106), em que o controlador (122) é um do número de controladores (112) e o robô guiado automaticamente (108) é um dos robôs guiados automaticamente (106); em que o número de controlador (112) faz parte de um sistema de orientação que inclui um número de sistemas sensores (110) em que o sistema sensor (114) no número dos sistemas sensores (110) é associado com um robô guiado automaticamente correspondente em um número de robôs guiados automaticamente (106).
9. Aparelho, de acordo com a reivindicação 7, caracterizado pelo fato de que inclui pelo menos um dos seguintes:em que o centroide (150) é um valor de coordenada médio em que o controlador (122) é configurado para identificar o valor de coordenada médio ao dividir o contador de coordenadas (146) pelo contador de pixels (144);em que o valor de pixel (140) do pixel (138) é um valor da intensidade que compreende um valor vermelho, um valor azul e um valor verde e em que o número de critérios inclui uma faixa selecionada para pelo menos um dentre o valor vermelho, o valor azul e o valor verde; em que o padrão (142) é um primeiro padrão (142), o conjunto de pixels (148) é um primeiro conjunto de pixels (148), o centroide (150) é um primeiro centroide (150); e em que o controlador (122) é configurado para identificar um segundo conjunto de pixels (154) na imagem (130) que satisfaz um segundo padrão (156), gerar um segundo centroide (158) para o segundo conjunto de pixels (154) que satisfaz o segundo padrão (156), e gerar o número de comandos (152) para guiar o robô guiado automaticamente (108) dentro do ambiente (104) com base em pelo menos um dentre o primeiro centroide (150) e o segundo centroide (158); eem que o controlador (122) é implementado em um sistema de controle (128) no robô guiado automaticamente (108).
BR102013015314-1A 2012-06-18 2013-06-18 Método para guiar um robô guiado automaticamente e aparelho BR102013015314B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/526,238 2012-06-18
US13/526,238 US8861790B2 (en) 2012-06-18 2012-06-18 System and method for guiding a mobile device

Publications (2)

Publication Number Publication Date
BR102013015314A2 BR102013015314A2 (pt) 2015-06-23
BR102013015314B1 true BR102013015314B1 (pt) 2021-11-30

Family

ID=48699537

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102013015314-1A BR102013015314B1 (pt) 2012-06-18 2013-06-18 Método para guiar um robô guiado automaticamente e aparelho

Country Status (5)

Country Link
US (1) US8861790B2 (pt)
EP (1) EP2677274B1 (pt)
JP (1) JP6347918B2 (pt)
CN (1) CN103513981B (pt)
BR (1) BR102013015314B1 (pt)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199452B (zh) * 2014-09-26 2017-03-08 上海未来伙伴机器人有限公司 移动机器人、移动机器人系统、移动及通信方法
DE102014224082A1 (de) * 2014-11-26 2016-06-02 Robert Bosch Gmbh Verfahren zum Betreiben eines Fahrzeugs und zum Betreiben eines Fertigungssystems
CA2936369A1 (en) * 2015-07-16 2017-01-16 Iain Wilson Robotic apparatus for plowing of snow from a predefined area
CN106323289A (zh) * 2016-08-23 2017-01-11 北京小米移动软件有限公司 平衡车的控制方法及装置
US10394234B2 (en) 2017-12-18 2019-08-27 The Boeing Company Multi-sensor safe path system for autonomous vehicles
JP6707601B2 (ja) * 2018-09-26 2020-06-10 三菱ロジスネクスト株式会社 無人搬送システム
JP7243650B2 (ja) * 2020-02-12 2023-03-22 トヨタ自動車株式会社 移動量検出システム及び移動量検出方法
DE102021105263A1 (de) * 2021-03-04 2022-09-08 Schaeffler Technologies AG & Co. KG Verfahren zum Ermitteln einer Fahrtrichtung und/oder einer Positionsveränderung und/oder Geschwindigkeit eines fahrerlosen Transportfahrzeugs, fahrerloses Transportfahrzeug und fahrerloses Transportsystem
FR3127052B1 (fr) * 2021-09-15 2024-05-10 Raoul Parienti Système de transport collectif privatif automatique bi-mode

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4970653A (en) * 1989-04-06 1990-11-13 General Motors Corporation Vision method of detecting lane boundaries and obstacles
JPH07228210A (ja) * 1994-02-21 1995-08-29 Mitsubishi Heavy Ind Ltd 車両の相対位置認識方法
JPH10247110A (ja) * 1997-03-05 1998-09-14 Japan Storage Battery Co Ltd 誘導センサ
US6285930B1 (en) * 2000-02-28 2001-09-04 Case Corporation Tracking improvement for a vision guidance system
US7599756B2 (en) 2007-10-04 2009-10-06 The Boeing Company Production moving line system and method
US8245807B2 (en) 2009-02-12 2012-08-21 Edison Nation, Llc Automated vehicle and system utilizing an optical sensing system
FI20105732A0 (fi) * 2010-06-24 2010-06-24 Zenrobotics Oy Menetelmä fyysisten kappaleiden valitsemiseksi robottijärjestelmässä

Also Published As

Publication number Publication date
EP2677274B1 (en) 2017-04-26
US8861790B2 (en) 2014-10-14
EP2677274A3 (en) 2014-11-19
BR102013015314A2 (pt) 2015-06-23
US20130336537A1 (en) 2013-12-19
JP6347918B2 (ja) 2018-06-27
EP2677274A2 (en) 2013-12-25
CN103513981B (zh) 2018-04-27
JP2014002739A (ja) 2014-01-09
CN103513981A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
BR102013015314B1 (pt) Método para guiar um robô guiado automaticamente e aparelho
US10946524B2 (en) Safety system for integrated human/robotic environments
EP3629119A1 (en) Method of generating a collision free path of travel and computing system
US20210132615A1 (en) Systems and methods for optimizing route planning for tight turns for robotic apparatuses
US10160114B2 (en) Trajectory planning with droppable objects
DE102019130046A1 (de) Ein robotersystem mit verbessertem abtastmechanismus
US10260890B2 (en) Aisle-based roadmap generation
US20210031367A1 (en) Systems, apparatuses, and methods for rapid machine learning for floor segmentation for robotic devices
JP7462891B2 (ja) エスカレータを検出するためのシステム、装置、及び方法
JPWO2019026761A1 (ja) 移動体およびコンピュータプログラム
Bucki et al. Rectangular pyramid partitioning using integrated depth sensors (rappids): A fast planner for multicopter navigation
CN110196586A (zh) 移动体、控制移动体的方法及计算机可读取记录媒体
US10852740B2 (en) Determining the orientation of flat reflectors during robot mapping
JPWO2019187816A1 (ja) 移動体および移動体システム
US10105847B1 (en) Detecting and responding to geometric changes to robots
WO2022027015A1 (en) Systems and methods for preserving data and human confidentiality during feature identification by robotic devices
WO2021252425A1 (en) Systems and methods for wire detection and avoidance of the same by robots
TW202119055A (zh) 使用對準目標校準不可見光發射感測器的系統和方法
US20230256612A1 (en) Robot and controlling method thereof
Goel et al. Hierarchical Collision Avoidance for Adaptive-Speed Multirotor Teleoperation
JP2021149420A (ja) 推定システムおよび方法

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 18/06/2013, OBSERVADAS AS CONDICOES LEGAIS.