You are on page 1of 6

ROB MVEL AUTNOMO GUIADO POR VISO COMPUTACIONAL

Alisson Sampaio (1); Rmulo Frutuoso (2); Jonas Rodrigues (3); Robson Siqueira (4)
(1) Instituto Federal de Educao Cincia e Tecnologia - IFCE, e-mail: alisson.ifce@gmail.com (2) Instituto Federal de Educao Cincia e Tecnologia - IFCE, e-mail: frutuoso.romulo@gmail.com (3) Instituto Federal de Educao Cincia e Tecnologia - IFCE, e-mail: jonascomputacao@gmail.com (4) Instituto Federal de Educao Cincia e Tecnologia - IFCE, e-mail: siqueira@ifce.edu.br

RESUMO
Este artigo demonstra uma aplicao da integrao de viso computacional e robtica. Com estas duas ferramentas, foi possvel a construo de um rob mvel autnomo, no qual, seus movimentos so controlados por um sistema baseado no processamento de imagens digitais. O objetivo do rob seguir uma trajetria definida por uma marcao no solo, o rob deve ser capaz permanecer na trajetria, e na perda da mesma busc-la e continuar o processo. O algoritmo implementado, usa o reconhecimento de centro de massa de um objeto para determinar o caminho a ser percorrido, dependendo da localizao do centro de massa, em relao a uma referncia pr-determinada no algoritmo, o rob poder seguir em linha reta, ir para a direita ou esquerda, fazer curvas, e buscar no seu entorno a trajetria perdida. Em todo o desenvolvimento desse sistema foram utilizadas ferramentas e sistemas livres e/ou abertos. PALAVRAS-CHAVE: VISO COMPUTACIONAL, OPENCV, TRANSMISSO DE DADOS SEM FIO, MICROCONTROLADORES, PROCESSAMENTO DIGITAL DE IMAGENS, ROBTICA.

1.

INTRODUO

A robtica mvel inteligente vem conquistando espao tanto no mercado comercial como nas reas de pesquisas em universidades e at mesmo em escolas de ensino mdio. A partir deste panorama este trabalho vem propor um rob mvel autnomo, onde seus movimentos so determinados atravs do reconhecimento de imagens. Neste trabalho, o movimento do rob consiste em percorrer uma linha de cor vermelha inscrita em uma superfcie. Uma cmera, localizada na parte superior do rob, captura as imagens e as envia para um computador. Este por sua vez, esta executando a aplicao de reconhecimento de imagens feito em linguagem C e utilizando a biblioteca OpenCV(OpenCV , 2011). Vale destacar que ambas as ferramentas utilizadas so livres e o sistema operacional usado no computador o Ubuntu que tambm livre. Aps a etapa de reconhecimento, comandos so enviados para um microcontrolador e este acionar os motores do rob. Dessa forma, o agente robtico segue a trajetria definida pela linha marcada no cho. Algumas aplicaes podem usar a idia deste projeto, como a substituio de trilhos em minas de carvo, movimentaes de mquinas dentro de indstrias. Em suma, praticamente todos os objetos que se movem atravs de uma lgica que possa ser substituda por uma rota inscrita sobre uma superfcie poder fazer uso desta aplicao. Nas demais sees deste trabalho, apresentaremos um pouco sobre viso computacional, descreveremos com maior detalhe o algoritmo usado e algumas formas de melhorar seu desempenho no quesito velocidade e especificaremos os hardwares envolvidos na construo do rob e na transmisso de dados.

2.

VISO COMPUTACIONAL

Viso computacional a cincia responsvel pela viso de uma mquina, pela forma como um computador enxerga o meio sua volta, extraindo informaes significativas a partir de imagens capturadas por cmeras de vdeo, sensores, scanners, entre outros dispositivos. Estas informaes permitem reconhecer, manipular e pensar sobre os objetos que compem uma imagem. (BALLARD, 1982) O processamento de imagens vem apresentando crescimento expressivo e suas aplicaes permeiam quase todos os ramos da atividade humana (FILHO; NETO, 1999). Como exemplo na rea mdica, geogrfica, biolgica dentre muitos outros. Uma imagem pode ser representada por uma funo bidimensional z = F( x, y ) definida em uma determinada regio de um plano. Ela representada atravs de um conjunto de valores, onde cada valor um nmero que descreve os atributos de um pixel na imagem. (FILHO; SOARES; TUSSET, 2010) As imagens digitais podem ser coloridas ou em nveis de cinza. No sistema RGB, por exemplo, as imagens coloridas assumem trs canais que so os canais R (Red), G (Green) e B (Blue), sendo representada por uma matriz para cada canal. (GONZALES; WOODS, 2002). Dentre todas as etapas no processamento de uma imagem digital, algumas de suas principais fases so listadas a seguir: Aquisio: Dentre os aspectos de projeto envolvidos nesta etapa, pode-se mencionar: a escolha do tipo de sensor, o conjunto de lentes a utilizar, as condies de iluminao da cena, os requisitos de velocidade de aquisio, a resoluo e o nmero de nveis de cinza da imagem digitalizada, dentre outros. (FILHO; NETO, 1999) Pr-processamento: A imagem resultante do passo anterior pode apresentar diversas imperfeies, tais como: presena de pixels ruidosos, contraste e/ou brilho inadequado etc. A funo da etapa de pr-processamento aprimorar a qualidade da imagem para as etapas subseqentes. As operaes efetuadas nesta etapa so ditas de baixo nvel porque trabalham diretamente com os valores de intensidade dos pixels. A imagem resultante

desta etapa uma imagem digitalizada de melhor qualidade que a original. (FILHO; NETO, 1999) Binarizao: O princpio da limiarizao consiste em separar as regies de uma imagem quando esta apresenta duas classes (o fundo e o objeto). Devido ao fato da limiarizao produzir uma imagem binria sada, o processo tambm denominado, muitas vezes, binarizao.(FILHO; NETO, 1999) Segmentao: A tarefa bsica da etapa de segmentao a de dividir uma imagem em suas unidades significativas, ou seja, nos objetos de interesse que a compem. Esta tarefa, apesar de simples de descrever, das mais difceis de implementar. (FILHO; NETO, 1999) Extrao de Caractersticas: Fase que consiste basicamente em retirar determinadas informaes de uma imagem. Verificando que uma imagem constituda por modelos matemticos como matrizes e estas contm caractersticas que podem matematicamente ser identificadas como: bordas, textura e etc. Reconhecimento e Interpretao: Nesta ltima etapa do sistema, denominamos reconhecimento o processo de atribuio de um rtulo a um objeto baseado em suas caractersticas, traduzidas por seus descritores. A tarefa de interpretao, por outro lado, consiste em atribuir significado a um conjunto de objetos reconhecidos (FILHO; NETO, 1999). Biblioteca OpenCV

2. 1

O OpenCV uma biblioteca de viso computacional com cdigo livre. A biblioteca escrita em C e C++ e funciona em Linux, Windows e Mac OS X. Existe desenvolvimento ativo em interfaces para Python, Ruby, Matlab e outras linguagens. (KAEHLER; BRADSKI, 2008.) A biblioteca est dividida em cinco grupos de funes: Processamento de imagens; Anlise estrutural; Anlise de movimento e rastreamento de objetos; Reconhecimento de padres e Calibrao de cmera e reconstruo 3D. (MARENGONI ; STRINGHINI, 2008 )

3.

HARDWARE

O nosso rob (figura 02) consiste de basicamente dois servomotores e um microcontrolador . Os servos motores tm o papel de ser o meio de locomoo do rob, por sua vez, o microcontrolador responsvel em receber os comandos de direo do computador e controlar devidamente os servos de forma que o rob possa se mover de forma correta, ou seja, mova-se devidamente para manter-se sobre a linha vermelha.

3.1

Microcontrolador e cmera

O microcontrolador usado para o controle do rob foi o PIC18F2550 da microchip. Dentre todas suas caractersticas, suas principais so: temporizadores de 8/16 bits, conversores analgico/digital de 8-10-12 bits, interface USB 2.0, memria RAM de 2048 bytes, EEPROM de 256 bytes, e etc. A transmisso de informaes para o rob foi desenvolvida atravs da plataforma de desenvolvimento SanUSB (JUC, CARVALHO, BRITO, 2009). Sendo esta uma ferramenta composta de software e circuito bsico de um PIC18F2550. Alm da plataforma SanUSB, usou-se no desenvolvimento uma cmera Webcam Lifecam - VX2000, com o objetivo de enviar as imagens do rob para a estao de trabalho, onde efetuado todo o processamento da imagem. Sendo suas principais caractersticas: Sensor de Vdeo VGA, Fotos de 1,3 megapixels (interpolados), Zoom Digital 3X etc.

3.2

Funcionamento

A aplicao faz o devido tratamento de imagem, gera a movimentao necessria para o rob se manter sobre a linha vermelha e envia os dados de movimentao via porta USB para do kit SanUSB, que fica diretamente conectado com os servos-motores. O kit recebe um byte de informaes do computador, onde esse informa para onde ele deve mover o rob. Quando um determinado dado chega ao SanUSB, ele trata o dado e manda uma nova serie de pulsos para os servos-motores, utilizando modulao em largura de pulso(PWM).

4.

ALGORITMO UTILIZADO

A base principal do algoritmo de movimentao do rob o encontro do centro de massa do trecho da pista que esta sendo analisado, a partir disto poder emitir os comandos necessrios para que o rob se mantenha sobre a linha vermelha, ou seja, fique alinhado com o centro de massa do trecho da pista. De modo mais preciso explicaremos como se comporta o algoritmo nos sub-tpicos a seguir.

4.1

Aquisio da imagem

A cmera sobre o rob envia constantemente sinais ao computador, este por sua vez, esta executando o software de reconhecimento de imagem. Ela envia frames com uma freqncia bem maior do que o sistema necessita ( at 30 frames por segundo), logo o sistema controla quando se deve adquirir um novo frame (usando um atraso na captura de um frame da cmera), Portando, neste projeto so utilizadas 8 frames por segundo.

4.2.

Segmentao

O sistema desenvolvido trabalha com a deciso de qual direo o rob deve seguir imediatamente, para se manter sobre a linha, por isso, no to importante analisar toda a imagem. Ao verificarmos uma imagem, os pixels prximos do topo representam um estado futuro do rob, e os prximos a base um estado passado. Por isso, trabalhamos apenas com uma pequena parte da imagem, uma linha horizontal com 10 pixels de altura no centro da imagem. Isso nos d a possibilidade de terminar bem mais rpido o processamento da imagem, alm de possibilitar que o sistema seja usado em mquinas com menor capacidade de processamento. Para isolar a nossa regio de interesse, criamos uma imagem vazia com tantas colunas quantas forem as colunas da imagem original, mas com apenas dez linhas (Figura 01). Depois passamos para essa imagem, o retngulo horizontal do centro da imagem binarizada.

4.3.

Binarizao

Durante o projeto, trabalhamos com o sistema RGB de representao de cores. Como o propsito do trabalho fazer com que o rob se mova sobre uma linha vermelha, nossa binarizao tratar a diferena entre o tom de vermelho e os demais como caracterstica a ser avaliada, ou seja, quando um pixel tiver o valor associado ao tom de vermelho maior que os demais acrescidos de certo valor (L=100, limiar)[Eq. 01], ser convertido para branco. Quando isso no acontecer, ser convertido para preto.

f b (x , y )=0, se f r ( x , y )<L
[Eq. 01]

f b (x , y )=1, se f r ( x , y )L

4.4.

Extrao de Caracterstica.

Para avaliar se o rob est no centro, a direita ou a esquerda da pista, devemos encontrar o centro de massa da figura binarizada. O algoritmo para o clculo do centride, se resume a

calcular a mdia das coordenadas dos pixels de determinado objeto. Por exemplo, o centride da pista um ponto em que a coordenada x a mdia das coordenadas x dos pixels em que a cor se encaixa na faixa definida pela calibrao por cor, o mesmo para a coordenada y. O conjunto dos pixels da pista, na imagem binarizada pode ser definido como L = {p | r(x), g(x), b(x) = 1}. (CASTILLO, MEDONA, 2009) Foram implementadas funes que permitem encontrar o centro de massa de uma figura binarizada atravs dos momentos espacial e central, dados pela equao [Eq. 02] e [Eq. 03], respectivamente. Essas mesmas funes foram comparadas s implementadas pelo OpenCV com resultados similares. Com os elementos calculados, o centro de massa ( Xc , Yc ) dado por (3).(Rampinelli, Reinan, Ferreira, 2008).

m pq= x y f ( x , y)
1 1 nx 1 ny 1

nx

ny

[Eq. 02]

pq= (xx c ) p ( y y c )q f (x , y )

[Eq. 03]

5.Resultados Obtidos
O rob se mostrou eficiente no reconhecimento de imagem e na deteco da rota a ser percorrida, pois se manteve durante todo o trajeto sobre a linha vermelha (ver Figura 03). Ou mais especificamente, percorreu aproximadamente 370 cm sem perder o trajeto. Vale ressaltar que seu tempo de percurso mdio foi de aproximadamente 4 minutos e 29 segundos. Contudo, o algoritmo se mostrou eficaz com ou sem a presena de curvas, algumas delas com quase 90 graus, percorrendo assim todo o trajeto em velocidade praticamente constante. Alguns dos melhoramentos propostos so os seguintes: O rob teria duas velocidades: uma maior quando for encontrada uma reta e outra menor quando for detectada uma curva, logo este melhoramento requer que o algoritmo detecte estados futuros da pista, coisa que neste atual projeto no h. Outro ponto a alimentao independente de cada servo motor, pois neste projeto ambos os servos so alimentados por uma nica fonte de tenso de 5 volts, logo a potncia era dividida para os dois servos. Um processador embarcado para fazer o reconhecimento da trajetria e tornar o sistema completamente autnomo.

Figura 01: Estao de Trabalho processamento um quadro(Frame)

Figura 2: Rob mvel percorrendo trajeto.

Figura 03: Trajeto do rob mvel

7. Agradecimentos
Agradecemos ao IFCE Maracana e aos coordenadores dos laboratrios LSD (Prof. Otvio Alcntara) e MicroInformtica onde os testes e programao do projeto foram realizados.

REFERNCIAS
FILHO, O.M; NETO, H.V. Processamento Digital de Imagens, Rio de Janeiro: Brasport, 1999. FILHO, P.L.P; SOARES, C.J; TUSSET, A.M. Utilizao de um Sistema de Viso Computacional para o Controle de um Rob Mvel ,2010 KAEHLER, A; BRADSKI, G. Learning OpenCV, OReilly, 2008. SOUZA,RWR ; JUC, S.C.S; FREITAS, E.D.G. Sistema microcontrolado de automao de ambientes com supervisrio de baixo custo JUC, S. C. S. ; CARVALHO, P. C. M. ; BRITO, F. T. . SanUSB: software educacional para o ensino da tecnologia de microcontroladores. Cincias & Cognio (UFRJ), v. 14, p. 134144, 2009 MARENGONI, M; STRINGHINI, D . Tutorial: Introduo Viso Computacional usando OpenCV, 2008. CASTILLO, A; MEDONA, F. Reconhecimento de gestos usando Viso Computacional, 2009. Rampinelli, M; Reinan, T; Ferreira, E. Anlise da Estimao de Configurao de robs mveis ou veculos multi-articulados por meio de viso computacional de topo efeito da velocidade e da distoro ptica, 2008. BALLARD, D.H; Computer Vision, Prentice-Hall, 1982 Vdeo do projeto; Disponvel em: http://www.youtube.com/watch?v=PMo_Io7kSNI

You might also like