Utilização de um Sistema de Visão Computacional para o Controle de um Robô Móvel
Pedro Luiz de Paula Filho 1, Cleverson Junior Soares 2, Ângelo Marcelo Tusset 3
1
Universidade Federal do Paraná - UFPR, Curitiba, Brasil, [email protected]
Universidade do Contestado - UnC, Canoinhas, Brasil, [email protected]
3
Universidade Tecnológica Federal do Paraná - UTFPR, Ponta Grossa, Brasil, [email protected]
2
Resumo: Mesmo com o avanço nas áreas de automação
e programação, fazer com que os robôs autônomos
executem uma ou mais tarefas de maneira conjunta é ainda
um dos grandes desafios da robótica. Neste trabalho é
abordada a interação com um robô autônomo, envolvendo
Processamento de Imagens, Linguagens de Programação,
Projeto Assistido por Computador, Otimização, Eletrônica,
etc. Os resultados demonstram a utilização da visão
computacional no controle de um robô móvel, onde
imagens são capturadas de uma câmera e processadas,
possibilitando a identificação de obstáculos e o ponto a ser
alcançado e utilizando-se a comunicação através de rádio
frequência guiando o robô até seu destino.
Palavras Chave: Reconhecimento de Padrão, Robô Móvel,
Visão Computacional.
1. INTRODUÇÃO
Com o grande crescimento tecnológico, os robôs
tornaram-se elementos fundamentais na manufatura
automatizada. Em função do rápido avanço da automação
nas diversas áreas das atividades humanas, a utilização de
robôs tem se tornando cada vez mais comum,
principalmente em áreas que exigem elevado grau de
precisão, confiabilidade e velocidade. Assim o estudo em
desenvolvimento nos sistemas de controle dos robôs tem
crescido vertiginosamente nos últimos anos, devido a quanto
mais complexa a tarefa executada pelo robô, mais
complexos são os algoritmos de controle. Através do
crescimento dos recursos computacionais que surgiram nas
últimas décadas foi possível desenvolver robôs capazes de
executar tarefas com grau de complexidade superior que os
robôs anteriores, que eram restritos apenas a sistemas
mecânicos [1].
Neste contexto, o desenvolvimento de robôs móveis é de
extrema importância tanto para pequenas como grandes
tarefas, como por exemplo, na exploração espacial, marítima
ou mesmo ambientes desconhecidos que oferecem riscos a
vida de seres humanos [2] [3].
Existem duas vertentes para definir robôs móveis, uma
considera o robô completo, auto-contido, autônomo, que
necessita de instruções apenas ocasionalmente, enquanto
que a segunda define robô como sendo qualquer
equipamento que se mova por seus próprios meios, com o
objetivo de executar tarefas próximas as humanas [4].
De acordo com [5] as duas definições levam a aceitar
que um robô móvel é capaz de manobrar livremente em seu
ambiente, alcançando metas enquanto desvia de outros
obstáculos.
Conforme [6] o primeiro robô móvel construído e
reconhecido na bibliografia é o Shakey, desenvolvido pelo
Stanford Research Institute, em 1968, e possuía uma
variedade enorme de sensores, incluindo uma câmara de
vídeo e sensores de toque, binários, e navegava entre as
salas do laboratório, enviando sinais de rádio a um
computador DEC PDP-10, que permitia efetuar algumas
tarefas como, por exemplo, empurrar caixas e evitar
obstáculos.
O interesse no desenvolvimento de pesquisas voltadas
para a área de automação de processos através de sistemas
robóticos tem o objetivo de melhorar a qualidade de
produtos com redução de tempo [3]. Porém, para que isso
ocorra é necessário que estes sistemas tenham a capacidade
de tomar decisões através de informações extraídas do
ambiente, garantindo uma autonomia. Para tanto a visão
computacional passa a ser uma grande aliada a tais sistemas.
Segundo [7] a visão computacional é um assunto
complexo, pois comparando um sistema técnico, com um
sistema biológico, pode-se dividi-la em vários módulos
como visualização, formação da imagem, controle da
irradiação, entre outros. Assim seu objetivo principal é
prover ao computador as capacidades de percepção do
sistema visual humano em relação ao ambiente [8].
A visão computacional tem evoluído rapidamente,
produzindo ferramentas que permitem o entendimento das
informações visuais, especialmente em cenas com estruturas
bem definidas [8].
Ela pode ser dividida em dois níveis de abstração,
processamento digital de imagens (PDI) e análise de
imagens. O PDI busca técnicas para capturar, representar e
transformar imagens, permitindo extrair e identificar
informações e melhorar a qualidade visual de certos
aspectos, melhorando a extração de características que serão
usadas posteriormente. A análise de imagens envolve
técnicas como segmentação da imagem em regiões de
interesse (ROI), descrições dos objetos, reconhecimento e
classificação, usando imagens como entrada e produzindo
outro tipo de saída [9][10][11].
Neste trabalho os dois níveis de abstração serão
empregados, onde o primeiro (PDI) será útil para captura e
segmentação da imagem e a analise das imagens permitirá o
reconhecimento dos objetos (robô, obstáculos e destino).
2. PROCESSAMENTO DIGITAL DE IMAGENS (PDI)
1
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications
Serra Negra, SP - ISSN 2178-3667
817
Utilização de um Sistema de Visão Computacional para o Controle de um Robô Móvel
Pedro Luiz de Paula Filho, Cleverson Junior Soares, Ângelo Marcelo Tusset
O desenho do modelo de cor HSI reflete a forma em que os
humanos vêem a cor, e isso passa a oferecer vantagens para
seu uso em processamento digital de imagens [15].
O Matiz representa qual cor do modelo é a
predominante, já a saturação representa a pureza da cor, o
quanto existe de adição de branco a matiz e o valor
representa a quantidade de brilho presente na cor [12].
Segundo [9] PDI representa um conjunto de técnicas
voltadas para a análise de dados adquiridos por diversos
tipos de sensores. Ou ainda, é a manipulação de uma
imagem por computador de modo onde a entrada e a saída
do processo são imagens. Através dele, pode-se analisar e
modificar imagens com o objetivo de extrair informações,
reconhecer, comparar e classificar elementos que a
compõem. Transformar uma imagem buscando aumentar
seu contraste, realçar bordas e corrigir imperfeições, como
ruído, por exemplo, são aplicações que tem como objetivo
fornecer subsídios para interpretações em visão
computacional.
Uma imagem pode ser representada por uma função
bidimensional z  F ( x, y ) definida em uma determinada
região de um plano. Ela é representada através de um
conjunto de valores, onde cada valor é um número que
descreve os atributos de um pixel na imagem.
Um sistema de PDI pode ser dividido em seis etapas:
aquisição, pré-processamento, segmentação, representação e
descrição, reconhecimento e interpretação e resultado [9].
O pré-processamento refere-se ao processamento inicial
dos dados brutos, correção de distorções geométricas e
remoção de ruído. Sua principal função é melhorar a
imagem para que possa ser usada com sucesso nos processos
seguintes. O pré-processamento envolve técnicas para o
realce de contrastes, remoção de ruído e isolamento de
regiões [9][10][11].
A segmentação é a responsável por dividir uma imagem
de entrada em partes. No caso deste projeto é a separação do
robô, meta e obstáculos do fundo da imagem. A
representação e descrição é apenas parte da solução para
transformar os dados iniciais numa forma adequada para o
próximo passo do processamento computacional. O
processo de descrição procura extrair características que
resultem em alguma informação de interesse para o melhor
processamento da imagem. O processo de reconhecimento é
o responsável por atribuir um nome a um objeto, baseado na
informação fornecida pelo seu descritor. A identificação
envolve a atribuição de significado a um conjunto de objetos
reconhecidos [9][10][11].
Segundo [11], no momento da aquisição, uma cena real
tridimensional é convertida por um dispositivo de aquisição
em uma representação 2D levando-se em conta uma função
f(x,y) que descreve a energia luminosa em uma coordenada
espacial (x,y). O dispositivo de aquisição mais usado
atualmente é a câmera CCD (Charge Couple Device) e
através de um conjunto de prismas e filtros, decompõe a
imagem em componentes de R (red), G (green) e B (blue).
A junção desses componentes gera o sistema de cor
RGB que é um dos espaços mais comuns, de formação
aditiva, utilizado em câmeras e monitores de vídeo, e
baseado na teoria de visão colorida tricromática de YoungHelmholtz [12].
Porém este não é o único dos canais de cores, e outro
canal bastante usado em visão computacional é o HSI (Hue,
Saturation and Intensity) [13], sendo normalmente
vinculado a pintores por utilizar três componentes presentes
em diversas técnicas de pintura: Matiz, Saturação e
Iluminação [12]. Apesar de não ser perceptualmente
uniforme seu uso é interessante por conter informações que
são perceptíveis e discriminantes para um observador [14].
3. METODOLOGIA
Para realização prática foi desenvolvido um protótipo de
robô móvel (Fig. 1a), a partir de imagens capturadas por
uma câmera e processadas por um software utilizando
técnicas de processamento de imagens, onde os comandos
são transmitidos do computador para o robô móvel através
de rádio frequência.
O software foi desenvolvido em linguagem de
programação C++, através do ambiente CBuilder e uma
biblioteca denominada OpenCV. A alimentação do robô foi
realizada através de duas baterias 6V de 4,5 A, ligadas em
série. Para a movimentação foi utilizado um circuito Ponte
H para controlar os motores do robô, sendo utilizado na
construção da ponte H 4 relés 12V de 15A, 4 transistores
BD 137, 4 capacitores de 10KΩ, e 4 diodos IN4007 (Fig
1b), que acionam os dois motores DC com redução de
tensão nominal de 12V, com rotação de 44 rpm, consumo de
corrente de 0,41.
(a) Robô construído.
(b) Ponte H.
Fig. 1. Protótipo utilizado nas simulações: (a) Robô construído; (b)
Ponte H
O sistema de comunicação sem fio por rádio freqüência
tem transmissão de quatro canais com freqüência de
operação de 27 MHz. O receptor funciona com alimentação
de tensão de 6V, já o transmissor funciona com tensão de
9V. Para o circuito de interface do receptor RF com o
circuito Ponte H foram utilizados 4 relés de 5V 2A.
2
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications
Serra Negra, SP - ISSN 2178-3667
818
Quando a imagem foi capturada em um ambiente com
excesso de claridade o processamento da imagem ficou
comprometido, surgindo muitos ruídos nos objetos a ser
analisados. Nos testes realizados, o sistema demonstrou
bons resultados comportando-se de forma satisfatória a
partir do canal HSV, principalmente com o canal da
saturação que alcançou melhor resultado no reconhecimento
dos objetos da imagem e nas correções das imagens e
correções de ruído, mesmo utilizando uma câmera comum
de baixa resolução. Em função disso, a imagem capturada
recebida no formato RGB é convertida para o canal HSV, e
desta nova imagem foi utilizado somente o canal S
(saturação) (Fig. 5 a,b,c,d,e).
A etapa seguinte foi binarizar a imagem para facilitar a
identificação dos elementos relevantes da cena (robô,
obstáculos e alvo). Na binarização a resultante é composta
por apenas duas cores, sendo a cor de interesse representada
pela cor preta, e as demais cores representadas pela cor
branca. Na Fig. 5f mostra-se a imagem resultante obtida
através do processo de binarização, na qual observa-se que
apenas os pixels que representam o objeto de interesse (cor
de interesse), aparecem como preto na imagem segmentada,
e todos os demais pixels presentes na imagem são
convertidos para o branco.
Na interface da porta paralela com o controle remoto
sem fio, foi utilizado um CI 2803 com capacidade de
aumentar a tensão de saída da porta paralela e assim acionar
um relé 12V, sem a necessidade de aumentar a corrente e
por conseqüência queimar a porta paralela do
microcomputador. Sendo utilizado 4 relés 12V 7A, um para
cada canal de transmissão do transmissor RF.
Para a captura da imagem usou-se uma webcam normal,
posicionada sobre o ambiente onde o robô deveria circular,
provendo uma visão panorâmica do cenário (Fig. 2). A partir
destas imagens capturadas pela câmera, o sistema de visão
computacional mapeia o ambiente no qual o robô deve se
mover desviando dos obstáculos até atingir o destino final.
Este mapeamento provê à identificação do robô e seu
posicionamento, a localização dos obstáculos e a
identificação do local de destino (Fig. 3). Assim, a partir do
mapeamento feito pelo sistema de visão, o trajeto é
calculado por um algoritmo de busca usando diferentes
funções a serem realizadas pelo robô.
Fig. 2. Metodologia de captura imagens.
Fig.4. Comunicação entre o computador e o robô.
Fig. 3. Cenário do projeto.
Após a captura das imagens, estas são segmentadas,
avaliam-se as alternativas de rotas e se comunica com o
robô através de um controle remoto que está interligado a
uma porta paralela do computador usando-se rádio
freqüência (Fig. 4).
(a)
3
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications
Serra Negra, SP - ISSN 2178-3667
819
Utilização de um Sistema de Visão Computacional para o Controle de um Robô Móvel
Pedro Luiz de Paula Filho, Cleverson Junior Soares, Ângelo Marcelo Tusset
(e)
(b)
(f)
(c)
Fig. 5. Transformações desde a imagem original até a binarização: (a)
Imagem Original (RGB); (b) Imagem no canal HSV; (c) Canal H (Matiz);
(d) Canal S (Saturação); (e) Canal V (Intensidade); (f) Imagem Binarizada;
Essa seqüência atende bem para o trabalho com imagens
estáticas (fotos), porém quando da captura de imagens em
movimento adquiridas por vídeo tem-se ruídos inerentes à
iluminação ou pequenas imperfeições. Para sanar isso,
foram usadas técnicas de morfologia matemática, que
enfocam a estrutura geométrica de uma imagem, fazendo
transformações através de diferentes padrões de formatos
conhecidos como elementos estruturantes (EE). Estes são
formas geométricas simples e menores que a imagem
original, que são movidos sobre a imagem bidimensional e
conforme seu ajuste tem-se o resultado final [13][5]. Dentre
as técnicas de morfologia matemática destacam-se a erosão
e a dilatação.
A erosão, denotada por AB (onde A é a imagem a ser
erodida e B o elemento estruturante), tem como objetivo
eliminar dados em uma imagem que não são semelhantes a
um tipo padrão, ou seja, elimina picos positivos mais finos e
expande os picos negativos, reduzindo os objetos da
imagem. Em uma imagem binária os pontos pretos irão
crescer sobre os pontos brancos de sua vizinhança,
realçando contornos. Já a dilatação, denotada por A  B ,
elimina picos negativos mais finos e expande os picos
positivos, ou seja, em uma imagem de fundo branco, a
técnica irá eliminar os ruídos [9][10].
Segundo [10], o fechamento, denotado por A  B , tende
a eliminar pequenos buracos e preencher fendas em regiões
(d)
4
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications
Serra Negra, SP - ISSN 2178-3667
820
imagem, ou seja, o robô, os obstáculos e o alvo. Para tanto
uma forma de identificar objetos em uma imagem binária é
a rotulação, onde a cada região ou componente conexo é
atribuído um valor único na imagem [11].
A rotulação foi feita, percorrendo-se a imagem binária
pixel a píxel, quando se encontra um elemento preto, a este é
rodado um algoritmo de preenchimento (flood fill), que irá
marcar todos os pixels conexos com uma cor randômica.
A partir do agrupamento dos objetos encontrados na
imagem, busca-se identificar a qual classe estes elementos
pertencem (Fig. 7). Sendo que se considera que o robô é o
maior objeto encontrado (aproximadamente 1500 pixels) e
os obstáculos tem uma área mínima de 400 pixels, áreas
menores que 100 pixels são descartadas como ruído (Fig.
7b).
Um vetor para armazenamento dos objetos foi criado
para armazenar a área total, a cor e o retângulo englobante,
ou seja, as coordenadas (x, y) mínimas que correspondem ao
canto superior esquerdo do objeto e as coordenadas
máximas (canto inferior direito).
de contorno. Sua formação matemática é definida como
A  B  ( A  B )B . Na Figura 6 tem-se uma amostra da
imagem binária com ruídos (Fig. 6a), o resultado após a
aplicação do operador de fechamento (Fig. 6b) e a subtração
das duas imagens que enfatiza os ruídos retirados da
imagem (Fig. 6c).
(a)
(a)
(b)
(c)
Fig. 6. Morfologia Matemática: (a) Imagem Binarizada; (b)
Fechamento; (c) Ruído
(b)
Fig. 7. Objetos encontrados na imagem após pré-processadas: (a)
Imagem Original Binarizada; (b) Imagem rotulada
Com isso conclui-se a etapa de pré-processamento, e
passa-se a buscar o reconhecimento dos elementos dentro da
5
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications
Serra Negra, SP - ISSN 2178-3667
821
Utilização de um Sistema de Visão Computacional para o Controle de um Robô Móvel
Pedro Luiz de Paula Filho, Cleverson Junior Soares, Ângelo Marcelo Tusset
Com os objetos identificados e registrados, pode-se
comandar o robô. Assim, a comunicação se dá através da
porta paralela e RF, onde os comandos são enviados através
dos pinos de 2 a 5 da porta paralela e através de relês é feito
o chaveamento dos sinais para adaptar-se ao padrão do
controle remoto (no detalhe, onde os fios do circuito de
interface são adaptados) (Fig. 8a e 8b). Este envia sinais ao
robô, que são adquiridos pelo receptor de RF e então os
reles da ponte H são acionados, movimentando o robô nos
sentidos: frente, trás, direita e esquerda.
Fig. 9 – Fluxograma de execução
A Fig. 10 mostra a tela de execução do software, quando
da inserção de quatro obstáculos obstruindo a passagem do
robô (Fig. 7), onde a cada meio segundo, uma leitura foi
realizada na intenção de fazer com que o robô de
movimentasse. Nesse caso, no entanto, o mesmo ficou
parado.
(a)
4. CONCLUSÃO
Apesar da complexidade da união de várias áreas
distintas, dentre elas, eletrônica, computação e mecânica, o
objetivo foi atingido, a construção de um protótipo que
permita o funcionamento de um robô, através da porta
paralela e RF, comandados por um computador que analisa
uma cena dada por uma câmera simples.
(b)
Fig. 8. Comunicação entre porta paralela e o robô: (a) Circuito de interface
da Porta Paralela; (b) Comunicação com o robô
O software, antes de qualquer coisa, através da
identificação das coordenadas de borda dos objetos (robô e
obstáculos) identifica onde há obstáculo, e faz o
planejamento de movimento para evitar colisões, caso a
proximidade seja inferior a um limiar em pixel informado
pelo usuário. Caso não tenha obstáculos ao redor, o
algoritmo identifica o alvo, faz uma correção de rota para
atingir a meta e faz um movimento a frente para se
aproximar do alvo, repetindo o processo continuamente.
Caso algum objeto esteja no caminho, o robô tenta uma
manobra de esquiva, executando, se possível, uma ré,
rotacionando-se 90 graus à direita, movimentando-se à
frente e rotacionando novamente à esquerda.
Todos os passos podem ser seguidos através do
fluxograma apresentado na Fig. 9.
Fig. 10 – Software em execução
O software se mostrou eficiente na execução de tarefas
básicas de movimentação e desvio de obstáculos, mesmo
com pequenas mudanças de luminosidade. Como o objetivo
não era determinar o melhor caminho, em algumas
situações, o robô acabou andando em círculos. Nesse
sentido algumas técnicas de inteligência artificial poderiam
ser usadas para melhor o encontro do melhor caminho.
6
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications
Serra Negra, SP - ISSN 2178-3667
822
REFERÊNCIAS
[1] PEDROSA, D. P. F., MEDEIROS, A. A D., ALSINA,
P. J. (2002). Geração de Caminhos Ponto-a-Ponto para
Robôs Móveis com Rodas. Anais do XIV Congresso
Brasileiro de Automática.
[2] AMBROSE, R., ASKEW, R. S. (1995). An
Experimental Investigation of Actuators for Space
Robots. IEEE Internarional Conference on Robotics and
Automation, pp. 2625 – 2630.
[3] PASSOS, F. (2002). Automação de Sistemas &
Robótica. Axcel Books do Brasil Editora Ltda.
[4] MCCOMB, Gordon. The robot builder’s bonanza: 99
inexpensive robotics projects. New York: TAB Books,
1987. 326p.
[5] SPENCE, Rob, HUTCHINSON, Seth. An integrated
architecture for robot motion planning and control in
the presence of obstacles with unknown trajectories.
IEEE trans. on systems, man, and cybernetics, v.25, n.1,
p.100-110, jan., 1995.
[6] GROOVER, Mikell P., WEISS, Mitchell, NAGEL,
Roger N. et al. Robótica: tecnologia e programação.
São Paulo: McGraw-Hill, 1988. 401p.
[7] JAHNE, B.; HAUBECKER, H. Computer Vision and
Applications. Academic Press, 2000.
[8] SEBE, N.; COHEN, I.; GARG, A.; HUANG, T. S.
Machine Learning in Computer Vision. Springer, 2005.
[9] GONZALEZ, R. C. WOODS, R. E. Processamento de
Imagens Digitais. Edgard Blucher, 2000.
[10 PEDRINI, H., SCHWARTZ, W. R. “Análise de
Imagens Digitais – Princípios, Algoritmos e
Aplicações”. Ed. Thomson. São Paulo, 2008.
[11] CONCI, A., AZEVEDO, E., LETA, F. R. “Computação
Gráfica: Teoria e Prática – Volume 2”. Ed. Elsevier.
Rio de Janeiro, 2008.
[12] RUSS, John. C. - The Image Processing Handbook The
Fifth edition. CRC Ed. Boca Raton, FL, 2007
[13] VUYLSTEKER, Pascal. HSV, HLS and HIS. Material
de aula da disciplina de Computação Gráfica da Faculty
of Engineering and Information Technology, na The
Australian National University. Disponível em:
<http;//escience.anu.edu.au/lecture/cg/color/>. Acesso
em: 07 de set de 2009.
[14] BENDER, Túlio Cleber. Classificação e recuperação de
imagens por cor utilizando técnicas de inteligência
artificial. Dissertação em Computação Aplicada:
Universidade do Vale dos Sinos. São Leopoldo / RS,
2003.
[15] AL-OTUM, Hazem. SHAHAB, Walid. Smadi,
MAMOON. Colour Image Compression Using A
Modified Angular Vector Quantization Algorithm.
Journal of Electrical Engineering, vol. 57, no. 4. Slovak
University of Technology. Bratislava, 2006.
7
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications
Serra Negra, SP - ISSN 2178-3667
823
Download

Utilização de um Sistema de Visão Computacional para o