6
SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000 1 DESENVOLVIMENTO DE TÉCNICAS DE VISÃO ROBÓTICA NO CONTEXTO DE JOGO DE PING PONG ENTRE ROBÔS Editoria da Revista C&A DCA-FEEC-UNICAMP Caixa Postal 6101 CEP 13081-970 - Campinas SP Resumo. A utilização de jogos entre robôs proporciona a interdisciplinaridade, o que torna esta aplicação viável como ferramenta auxiliar no processo de ensino. Fundamentado nesta ideia, este artigo apresenta uma proposta de jogo entre robôs autônomos com características semelhantes ao tênis de mesa ou ping pong como é popularmente conhecido. Para isto, são aplicadas técnicas de visão computacional semelhantes às encontradas nos demais jogos entre robôs. Dentre estes métodos destacam-se a Transformada de Hough para detecção de círculos e a segmentação limiar, ambas implementadas pela biblioteca de visão computacional livre Opencv. Cada robô possui uma webcam para capturar a imagem. Por meio das técnicas apresentadas, são extraídas as coordenadas referentes ao posicionamento da bola no espaço da imagem. Estas informações são enviadas para o robô, que se move no intuito de acertar o centro da raquete na bola arremessada pelo oponente. O artigo contempla apenas as técnicas de visão computacional necessárias para o desenvolvimento do jogo. A aplicação da inteligência a artificial e as estratégias de jogos estão em fase desenvolvimento e serão apresentadas em um trabalho posterior. Palavras Chaves: robôs, autônomo, transformada de hough, segmentação limiar. Abstract: The use of games between robots provide interdisciplinarity, which makes this application viable as an auxiliary tool in the teaching process. Based on this idea, this article proposes a game between autonomous robots with characteristics similar to table tennis or ping pong as it is popularly known. For this, computer vision techniques similar to those found in other games between robots are applied. Among these techniques, there are the Hough Transform to detect circles and segmentation threshold, both implemented by free computer vision library OpenCV. Each robot has a webcam to capture the image. Through the techniques presented, the coordinates for the position of the ball in the image space are extracted. These informations are sent to the robot, which moves in order to hit the center of the racket on the ball thrown by the opponent. The article includes only computer vision techniques necessary for the development of the game. The application of artificial intelligence in games and strategies are under development and will be presented in a later work. Keywords: robots, autonomous, hough transform, segmentation threshold. Artigo Submetido em xx/xx/xx 1a. Revisão em xx/xx/xx; 2a. Revisão em xx/xx/xx; 3a. Revisão em xx/xx/xx; 4a. Revisão em xx/xx/xx; Aceito sob recomendação do Ed. Consultor Prof. Dr. Yyyy Yyyyyyyy yy Yyyyyyyy

DESENVOLVIMENTO DE TÉCNICAS DE VISÃO ROBÓTICA … fileoportunidade de atingir o aprendizado em função do desenvolvimento criativo e motivacional dos estudantes. A proposta é

  • Upload
    phungtu

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000 1

DESENVOLVIMENTO DE TÉCNICAS DE VISÃO ROBÓTICA NO CONTEXTO DE JOGO DE PING PONG ENTRE ROBÔS

Editoria da Revista C&A DCA-FEEC-UNICAMP

Caixa Postal 6101 CEP 13081-970 - Campinas SP

Resumo. A utilização de jogos entre robôs proporciona a interdisciplinaridade, o que torna esta aplicação viável como ferramenta auxiliar no processo de ensino. Fundamentado nesta ideia, este artigo apresenta uma proposta de jogo entre robôs autônomos com características semelhantes ao tênis de mesa ou ping pong como é popularmente conhecido. Para isto, são aplicadas técnicas de visão computacional semelhantes às encontradas nos demais jogos entre robôs. Dentre estes métodos destacam-se a Transformada de Hough para detecção de círculos e a segmentação limiar, ambas implementadas pela biblioteca de visão computacional livre Opencv.

Cada robô possui uma webcam para capturar a imagem. Por meio das técnicas apresentadas, são extraídas as coordenadas referentes ao posicionamento da bola no espaço da imagem. Estas informações são enviadas para o robô, que se move no intuito de acertar o centro da raquete na bola arremessada pelo oponente.

O artigo contempla apenas as técnicas de visão computacional necessárias para o desenvolvimento do jogo. A aplicação da inteligência a artificial e as estratégias de jogos estão em fase desenvolvimento e serão apresentadas em um trabalho posterior.

Palavras Chaves: robôs, autônomo, transformada de hough, segmentação limiar.

Abstract: The use of games between robots provide interdisciplinarity, which makes this application viable as an auxiliary tool in the teaching process. Based on this idea, this article proposes a game between autonomous robots with characteristics similar to table tennis or ping pong as it is popularly known. For this, computer vision techniques similar to those found in other games between robots are applied. Among these techniques, there are the Hough Transform to detect circles and segmentation threshold, both implemented by free computer vision library OpenCV.

Each robot has a webcam to capture the image. Through the techniques presented, the coordinates for the position of the ball in the image space are extracted. These informations are sent to the robot, which moves in order to hit the center of the racket on the ball thrown by the opponent.

The article includes only computer vision techniques necessary for the development of the game. The application of artificial intelligence in games and strategies are under development and will be presented in a later work.

Keywords: robots, autonomous, hough transform, segmentation threshold.

Artigo Submetido em xx/xx/xx 1a. Revisão em xx/xx/xx; 2a. Revisão em xx/xx/xx; 3a. Revisão em xx/xx/xx; 4a. Revisão em xx/xx/xx; Aceito sob recomendação do Ed. Consultor Prof. Dr. Yyyy Yyyyyyyy yy Yyyyyyyy

2 SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000

1 INTRODUÇÃO Diversos esforços estão sendo exercidos para que a aplicação da robótica como ferramenta acadêmica continue evoluindo dentro das instituições de ensino. Projetos com escopo mundial estão presentes no Brasil, como as categorias de competição da Robocup.

Kraetzschmar et. al. (1998) afirmam que a Robocup deu a oportunidade dos pesquisadores trabalharem nas mais variadas áreas da inteligência artificial, como por exemplo, multi-agentes, estratégia, aprendizado, visão, redes neurais, controle e em várias outras, pois a criação de times de competição para o Robocup vai além da simples integração da inteligência artificial.

A inserção da robótica como ferramenta auxiliar no processo de ensino tem o propósito de buscar a interdisciplinaridade no ensino superior e já se tornou viável e amplamente utilizada no Brasil, porém, esta ferramenta está sendo aplicada também no ensino fundamental, médio e técnico como fator estimulante no ambiente da educação.

Segundo Kloc et. al. (2009) a robótica tornou-se uma oportunidade de atingir o aprendizado em função do desenvolvimento criativo e motivacional dos estudantes. A proposta é de que os alunos construam seu próprio aprendizado, por meio de pesquisas científicas e tecnológicas e da troca de experiências em grupo.

No entanto, para atrair a atenção dos alunos é necessário que a aplicação em robótica escolhida seja intuitiva e bem próxima ao cotidiano dos estudantes e é neste ponto que os jogos entre robôs ganham destaque. Um exemplo claro é o futebol de robôs, que no Brasil já possui um campeonato desde 1998.

Segundo Kitano et. al. (1997) futebol de robôs é uma iniciativa internacional voltada à pesquisa e educação, visando promover projetos ligados às áreas de Inteligência Artificial e Robótica Inteligente.

Em meio a um cenário de iniciativas para viabilizar a utilização da robótica como ferramenta pedagógica, este projeto apresenta uma proposta de jogo entre robôs que se assemelha ao tênis de mesa ou ping pong como é popularmente conhecido. Dois robôs posicionados frontalmente terão de acionar um mecanismo robótico a fim de obstruir o percurso de uma bola arremessada pelo oponente.

Para que isto seja possível, o robô contará com braço mecânico que será movimentado para os lados, para cima e para baixo além de um leve movimento para frente para impulsionar a bola. Uma pequena raquete será fixada no braço, na qual será instalada uma câmera que será o componente responsável pela coleta de referências para que o robô realize suas ações.

Estas ações serão baseadas em informações extraídas pela câmera por meio da visão computacional, em que técnicas como segmentações por cores, reconhecimento de padrões, rastreamento de objetos e pré-processamento serão amplamente utilizados.

Estas técnicas foram implementadas com o auxílio da biblioteca de visão computacional livre OpenCV conforme postulado por Bradski e Kaehler (2008) e serão descritas no decorrer deste trabalho.

Outro objetivo deste projeto é utilizar materiais de fácil aquisição e baixo custo, para viabilizar a utilização da robótica em qualquer instituição, além de, priorizar a reutilização do lixo eletrônico, permitindo a evolução sustentável aos projetos

futuros baseados neste trabalho. Para alcançar este objetivo focou-se em experiências com materiais reaproveitados e de baixo custo e também na utilização de softwares livres como base de desenvolvimento.

Este trabalho está dividido em cinco seções. Na seção I está a introdução. Os trabalhos relacionados são apresentados na seção II. A seção III apresenta a metodologia. Na seção IV são apresentados os experimentos e resultados. Por fim as considerações finais e as perspectivas futuras são apresentadas na seção V.

2 TRABALHOS RELACIONADOS Qualquer área do conhecimento que envolva atividades de robótica proporciona um alto nível de interdisciplinaridade, além de gerar uma ampla possibilidade de aplicações distintas, porém, quando são aplicadas técnicas de Visão Computacional em robôs, estas opções podem até ser consideradas infinitas, pois, por meio de imagens é possível extrair diversas informações sobre o ambiente em que o robô está atuando, desde detecção de objetos à obtenção de informações para tomada de decisão.

Partindo desta premissa, pesquisadores de todo o mundo buscam integrar cada vez mais, os fundamentos da área de processamento digital de imagens, da computação gráfica e da inteligência artificial com a robótica. Junior et. al. (2001) explicam que aplicações baseadas na captura de imagens permitem ao robô um alto grau de autonomia, tais como, navegação, controle servo visual e teleoperação.

Para a proposta do jogo entre robôs apresentado neste projeto, serão utilizadas técnicas semelhantes as que são encontradas no futebol de robôs, porém, neste trabalho não serão abordados as técnicas de estratégia de jogo, mas sim, as técnicas de captura, pré-processamento e rastreamento de objetos nas imagens, pois, o estudo relacionado a inteligência artificial ainda tem se mostrado complexo e em desenvolvimento para implantação de atividades para um aprendizado básico. Esta continuidade será foco de desenvolvimento para projetos futuros.

Neste projeto foi construído um robô composto por um braço que possibilita realizar movimentos quando detectado uma bola, atingindo a mesma para que outro robô consiga realizar funções semelhantes com intuito de adicionar autonomia aos robôs no contexto de um jogo de Ping Pong. Para possibilitar esta independência de controle humano ao robô, foram aplicadas algumas técnicas que normalmente são encontradas em sistemas que servem como base para competições de futebol de robôs, como técnicas de detecção de bordas, em que se aplicou o filtro Laplaciano, transformada de Hough e processos de segmentação baseado em um determinado limiar, nas quais foram implementadas para facilitar o reconhecimento da bola utilizada no cenário deste jogo.

As técnicas sobre futebol de robôs apresentadas por Costa e Pegoraro (1999) formaram a base de desenvolvimento para este projeto, o reconhecimento da bola e dos círculos marcadores de cada jogador realizado por meio da transformada de Hough juntamente com a segmentação limiar, ou seja, técnicas semelhantes foram utilizadas neste projeto, porém com uma aplicação diferente, no caso para um ambiente propício em jogos de Ping Pong entre robôs.

Com uma abordagem semelhante a este projeto, Sun et. al. (2009) apresenta um método de alto desempenho para detecção da bola usada no ping pong de robôs. Para que sua proposta se tornasse satisfeita foram usados cinco pontos chaves que

SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000 3

permitem identificar uma bola de modo mais rápido ao comparado com algoritmos de reconhecimento de padrões que percorrem vários pixels em busca de classificar e agrupar um objeto em uma determinada classe. É importante ressaltar que em um jogo com robôs que envolvem objetos que se movimentam de maneira rápida, consequentemente existe a necessidade de um reconhecimento com alto grau de desempenho, justificado pelas ações que um robô deve tomar em um pequeno espaço de tempo.

Baseado na premissa de desempenho para o reconhecimento de objetos em jogos com robôs tem sido comparado diversas propostas e desenvolvidos métodos que comprovam suas aplicações. Segundo Sun et. al. (2009), ao realizar o cálculo que gera o trajeto da bola usada em jogos de ping pong, permite-se que o robô antecipe suas ações através de previsões gerando maior precisão ao atingir o objeto bola, porém, aumenta-se também a complexidade, pois para calcular o trajeto de um objeto necessita-se de trabalhar com um cenário de cálculos matemáticos específicos para três dimensões, exigindo o uso de duas câmeras ou pela captura de imagens em diferentes posições com apenas uma câmera. Mas, a segunda opção em que aplica-se apenas uma câmera, é totalmente inviável para este projeto, pois, devido ao movimento da bola ser muito rápido, dificilmente o robô conseguiria obter duas imagens com posições diferentes da bola ou de qualquer objeto em movimento, ressaltando que o objeto a ser reconhecido e usado para um possível cálculo para previsão de trajeto, deve estar nos mesmos eixos (x,y,z) de um espaço tridimensional para a tomada de imagens com diferentes posições do robô.

Nakai et. al. (2008) apresentam uma metodologia interessante para que o seu robô consiga jogar vôlei de modo autônomo com uma pessoa. Esse robô consegue realizar atividades baseadas na detecção da face de uma pessoa, em que é definido a sua localização, no reconhecimento da bola e no cálculo da sua posição tridimensional, além de permitir outras formas de interatividade com uma pessoa. Para que o robô realize suas ações de maneira eficaz necessita-se que a captura e o processamento de informações seja em tempo real, pois é preciso respeitar o tempo adequado para rebater a bola em uma determinada posição, dando continuidade ao jogo. Segundo Nakai et. al. (2008) a posição tridimensional é calculada baseada na visão estéreo disponibilizada por duas câmeras, porém, para atingir o resultado do cenário tridimensional necessita-se primeiramente converter a imagem no espaço de cores de RGB para HSV, posteriormente reconhecer a cor da bola e executar algoritmos que eliminem ruídos facilitando no reconhecimento do objeto.

3 METODOLOGIA Nesta seção são apresentados detalhes sobre o desenvolvimento do projeto, como os detalhes das técnicas aplicadas, os softwares usados para implementação e a confecção de circuitos implantados nos robôs.

3.1 Softwares e Ferramentas Para o desenvolvimento do software demonstrado neste projeto, foram utilizadas ferramentas livres e de código aberto tais como: o sistema operacional Linux, a linguagem de programação C++ implementada por meio da IDE (Ambiente Integrado de Desenvolvimento) NetBeans e por fim a biblioteca de visão computacional livre OpenCV. Segundo Bradski e Kaehler (2008) a biblioteca OpenCV (Open Source Computer Vision) foi desenvolvida pela Intel Corporation e foi disponibilizada com o intuito de tornar acessível a visão

computacional a acadêmicos e profissionais das áreas de computação e robótica.

3.2 Aquisição da imagem A aquisição da imagem é efetuada por meio de uma webcam convencional a uma taxa de 15 fps (Frames Per Second - quadros por segundos) e uma resolução de imagem de seiscentos e quarenta por quatrocentos e oitenta pixels (640px - 480px). A comunicação da webcam é feita via Interface Serial Universal 2.0 (USB 2.0), que possui uma taxa de transferência de dados de no máximo quatrocentos e oitenta Megabits por segundo (480Mbps). A biblioteca Opencv possui a implementação do método cvCaptureFromCam( ) descrito por Bradski e Kaehler (2008), que por sua vez captura os quadros da câmera e os retorna em forma de uma matriz editável e a partir desta matriz são aplicadas as técnicas de visão computacional.

3.3 Pré-processamento Antecedendo o processamento propriamente dito, técnicas são aplicadas na imagem com a finalidade de retirar ou reduzir possíveis ruídos que possam vir a influenciar negativamente nos resultados finais.

Araujo et. al. (2008) impõem algumas premissas que foram seguidas neste projeto, uma delas é a utilização do espaço da imagem em HSV (Hue, Saturation e Value), e não em RGB (Red, Green e Blue), seguindo a abordagem apresentada por Nakai et. al. (2008), com isso é importante ressaltar que padrão RGB presencia as informações de cores muito correlacionadas com as de luminância, isso dificulta a segmentação em imagens com iluminação não uniforme, diferentemente do Padrão HSV, que segundo Araujo et. al. (2008) são utilizados os conceitos de crominância (tonalidade), saturação e luminância (brilho). A tonalidade representa a cor propriamente dita, a saturação representa o grau de pureza e a luminância as informações do brilho da cor. A Figura 1 demonstra os dois padrões.

(a)

(b)

Figura 1 – (a) Imagem capturada em RGB; (b) Imagem convertida em HSV.

4 SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000

3.4 Segmentação Limiar A Segmentação limiar ou Threshold é um dos métodos de segmentação mais utilizados em processamento digital de imagens, pois, seu funcionamento é simples e eficaz.

A segmentação limiar divide a imagem com base nos picos encontrados no histograma como demonstrado na Figura 2.

(a)

(b)

Figura 2 – (a) Imagem da bola a ser detectada; (b) Histograma da imagem da bola.

O primeiro pico é referente à bola, já o segundo pico é referente ao fundo da imagem. Neste caso, o segundo pico é maior, pois, o fundo é predominante na imagem. A divisão da imagem será realizada entre estes dois picos, e o resultado final é apresentado na Figura 3.

Figura 3 – Imagem resultante da segmentação limiar

Este efeito só é possível porquê neste cenário o objeto é totalmente separado do fundo da imagem. Em imagens que não contenham fundo ou se as cores do fundo e do objeto forem semelhantes, o efeito não é eficaz.

Para a implementação deste método será adicionado um valor constante contendo os parâmetros do intervalo de cores semelhantes ao da bola. A cor escolhida foi o amarelo e por meio do método cvInRangeS( ) descrito por Bradski e Kaehler (2008), todos os valores que estão fora do intervalo são descartados.

3.5 Rastreamento da bola Com a imagem devidamente pré-processada, agora apenas o círculo e o fundo preto compõem a imagem. Desta forma, a

eficácia dos métodos de reconhecimento de círculos são otimizadas.

Para este projeto foi utilizada a Transformada de Hough para a detecção e rastreamento do círculo na imagem. Segundo Duda e Hart (1972) este método foi desenvolvido por Paul Hough em 1962 e caracteriza-se por detectar formas facilmente parametrizáveis, como por exemplo, linhas, círculos e elipses.

Para a parametrização de círculos são utilizados três parâmetros (x, y, r), sendo x e y as coordenadas centrais e r o raio do círculo.

De acordo com Bradski e Kaehler (2008) é realizada uma transformação tal que todos os pontos pertencentes a uma mesma curva no histograma são mapeados num único ponto de um novo espaço de parametrização da curva procurada, por meio de cálculos de retas tangentes.

A biblioteca Opencv implementa a transformada de hough e são disponibilizados diversos exemplos de aplicação em sua documentação. Estes exemplos podem ser vistos em Bradski e Kaehler (2008).

Para esta aplicação, foi utilizado método cvHoughCircles( ) descrito por Bradski e Kaehler (2008), que detecta e dimensiona círculos. As coordenadas oriundas deste método definem as ações que o braço mecânico realiza. A Figura 4 demonstra o funcionamento do software.

Figura 4 – Execução do software de detecção de círculo.

3.6 Braço Mecânico A estrutura do braço mecânico foi construída visando as metas de baixo custo e sustentabilidade impostas a este projeto. Para isto, foram utilizados materiais reaproveitados do lixo eletrônico, de brinquedos, entre outros.

A estrutura foi desenvolvida no intuito de realizar movimentos horizontais para ambos os lados, a fim de estabelecer padrões a serem seguidos no decorrer do projeto.

Para efetuar estes movimentos foram utilizados dois motores de corrente contínua, além de circuitos eletrônicos que serão exemplificados a seguir.

3.6.2 Arduino Arduino é um projeto de hardware livre desenvolvido na Itália em 2005 que visa disponibilizar uma plataforma de prototipagem eficiente e facilmente manipulável. Este projeto foi idealizado e desenvolvido por Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis. Hoje o projeto Arduino possui inúmeros colaboradores e é utilizado amplamente para o desenvolvimento de projetos de diversas áreas.

O Arduino é utilizado para manter a comunicação entre o braço mecânico e o software.

A Figura 6 exemplifica esse

A Figura 5 apresenta o diagrama do circuito desenvolvido para

SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000 5

As coordenadas extraídas da imagem são enviadas em forma de cadeia de caracteres, estes caracteres são interpretados pelo Arduino e de acordo com comando recebido são acionados os motores do braço.

3.6.3 Circuitos eletrônicos. Para movimento do braço mecânico foram utilizados motores de corrente contínua retirados de impressoras. Motores deste tipo são amplamente utilizados, principalmente em aplicações em que a precisão dos movimentos não é considerada um fator determinante para o funcionamento da aplicação, pois, sua rotação não é facilmente controlada como no caso de motores de passo ou servomotores.

No presente trabalho foram necessários movimentos mais precisos, e em ambos os sentidos de rotação, para isto foi utilizado um circuito base conhecido como “Ponte H” para proporcionar um controle mais eficaz para esse tipo de motor.

A Ponte H é um arranjo de transistores que com o auxílio de um sinal de controle consegue inverter a polaridade de uma tensão de entrada. Este circuito recebe este nome pelo formato que recebe quando construído.

Para a construção deste circuito foi utilizado o circuito integrado L298N, que possui duas Pontes H, além de entradas de sinal PWM (Pulse Width Modulation). Este sinal permite o controle da tensão que será enviada ao motor. Desta forma é possível definir a velocidade com que este motor irá rotacionar.

este projeto.

Figura 5 – Diagrama esquemático do circuito de ponte H

O sinal de controle é enviado pelo Arduino, e a tensão de entrada é proporcionada por uma fonte externa de 12 Volts.

3.6.4 Definição das ações do braço

Após o pré-processamento e rastreamento serão extraídos coordenadas referentes a posição da bola na imagem..

Esta imagem será dividida em nove quadrantes. São três colunas de três quadrantes cada. O quadrante central, terá a dimensão de cento e vinte e oito por noventa e seis pixels (128px por 96px). Se o valor das coordenadas X ou Y estiverem dentro deste quadrante será enviado um comando de parada para o braço mecânico. Se estiverem fora deste quadrante o software enviará um sinal de controle para que o Arduino acione os motores do braço, no intuito de movimentar o braço até que a bola seja detectada no quadrante central.

Se a coordenada estiver na região do quadrante 1, ou seja, x < 256px e y < 192px , o braço será movido para a esquerda e para cima simultaneamente. Caso a coordenada estiver no quadrante 2, ou seja x < 256 px e 192px > y > 288px, o braço será movimentado apenas para a esquerda. Esta lógica se repetirá para todos os quadrantes. Desta forma, o braço pode

receber até nove comandos distintos, são eles: esquerda, direita, para cima, para baixo, esquerda e para cima, esquerda e para baixo, direita e para a cima, direita e para baixo e por fim o comando de parada. procedimento.

Figura 6 – Quadrantes de referência.

Juntamente ao comando de movimentação, será enviado um valor referente à distância entre região onde a bola foi detectada e o quadrante central. Este valor será convertido para uma escala de 0 a 255 para ser utilizado pelo Arduino como parâmetro para definir a velocidade com que os motores irão se movimentar. Esta velocidade será manipulada por meio de um sinal PWM que no Arduino pode ser gerado pelo comando analogWrite( ).

4 EXPERIMENTOS E RESULTADOS Em projetos desta magnitude, são realizados diversos experimentos no intuito de otimizar o funcionamento de todos subsistemas existentes. Nesta seção serão apresentados detalhes destes procedimentos informando seus respectivos resultados.

Os procedimentos fundamentais deste projeto são a aquisição da imagem, o pré-processamento e o rastreamento da bola, e como dito anteriormente o componente principal para estes procedimentos é a câmera.

Foi utilizado a webcam embutida no notebook para o desenvolvimento do software. Esta webcam possui uma taxa de 30 fps (quadros por segundo) o que corresponde a uma imagem a cada 0,033 segundos. Nestas condições as técnicas aplicadas apresentaram um resultado além do esperado, porém, estes resultados não condiziam com a realidade do projeto, visto que seria utilizado uma webcam USB convencional que normalmente possui taxa de 15 fps. Com a webcam definitiva (de 15 fps) o desempenho da aplicação foi bem inferior ao experimento anterior, neste caso, captura-se uma imagem a cada 0,066 segundos. A perda na precisão é notável, porquê, dobrou-se o tempo entre os quadros, mas, esta mudança também gerou alguns fatores positivos como a redução no custo de processamento diminuindo o tempo de 0,9 segundos para 0,6 segundos.

Em alusão ao pré-processamento, foi constatado que a utilização do padrão HSV se torna mais viável, uma vez que, como dito anteriormente, o padrão RGB apresenta problemas para realizar a detecção da bola na imagem quando a iluminação não é uniforme, no espaço HSV este problema é reduzido. Este procedimento reduziu consideravelmente os ruídos da imagem delimitando a área que o algoritmo de Transformada de Hough irá atuar, mesmo que a luz do ambiente não seja uniforme.

Testes realizados com a Transformada de Hough sem este pré-processamento apresentaram falta de precisão e sensibilidade

6 SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000

excessiva ao ambiente, ou seja, resultados insatisfatórios para este projeto.

Os movimentos realizados pelo braço mecânico são definidos com base nos parâmetros enviados ao Arduino via porta serial à uma taxa de 9600bps, esta taxa é relativamente baixa, no entanto possui uma baixa incidência de erros, considerando que com taxas de transferências acima de 15000bps foram detectados inconsistências devido a erros de transmissão.

5 CONCLUSÃO Diversas propostas pedagógicas têm sido produzidas com intuito de estimular o aluno a participar de projetos científicos permitindo o aprendizado de conteúdos correlatos com algumas disciplinas de modo que este conhecimento não seja esquecido tão rapidamente. No processo de aprendizagem não basta apenas ter a informação disponível e nem mesmo somente entende-la, é preciso saber abstrair o que é importante, gerar novas formas de pensar em como tal objeto de estudo pode ser aplicado e quais são seus benefícios.

Diante deste contexto, é observado que algumas ferramentas podem ser implantadas como um fator imprescindível para prover a facilidade no aprendizado do aluno de uma maneira independente e satisfatória. Elas permitem planejar processos estratégicos que produzem situações em que o aluno possa desenvolver habilidades, como a concentração na solução de problemas, a capacidade crítica, o raciocínio lógico, o foco na descoberta de um resultado mais seguro ou otimizado e ainda possibilita que todas estas atividades sejam executadas através da interação com outros alunos.

Este trabalho usa a Robótica como fator estimulante na pesquisa de técnicas de Visão Computacional para serem implantadas em robôs que realizem atividades com um grau de autonomia em diferentes modelos de jogos, porém este projeto realizou testes somente no contexto do jogo ping pong. Observa-se que independente do jogo, muitas premissas são semelhantes com relação ao reconhecimento de objetos, cálculos de posições e previsões de trajetos.

Os jogos entre robôs tem chamado cada vez mais a atenção dos pesquisadores, alunos e da sociedade, pois são aplicadas técnicas que proveem a autonomia dos robôs, a fácil interatividade com o ambiente e inclusive a comunicação com os seres humanos. Desta forma, é neste contexto que a robótica pode ser colocada como uma ferramenta básica e estimulante da criatividade, usada principalmente como uma ferramenta auxiliar na concretização do aprendizado. Este tipo de projeto tem incentivado também na busca do conhecimento de fundamentos matemáticos presentes nos algoritmos implantados nos robôs. Isso permite estimular os alunos a usarem bibliotecas de Visão Computacional como o Opencv que possui várias técnicas já implementadas e inclusive usadas para este jogo de ping pong entre robôs.

O sistema de visão do robô desenvolvido neste projeto se mostrou com um bom desempenho visto que consegue atingir a bola quando esta entra em seu ângulo de visão, ou seja, quando a câmera consegue capturar a bola.

Neste projeto foram utilizados materiais de fácil acesso e baixo custo visando buscar uma evolução sustentável ao projeto, no entanto, a utilização de uma webcam de baixa taxa de atualização (15fps) implicou em uma perda de precisão considerável. Contudo, este fato não influenciou no desenvolvimento deste projeto.

Portanto, a utilização das técnicas de visão computacional por meio do Opencv expostas neste projeto tornou-se viável para o desenvolvimento de um jogo de ping pong entre robôs. Assim, os artifícios apresentados neste projeto foram satisfatórios para implantar um grau de autonomia aos robôs e servem de base para uma continuidade com foco na Inteligência Artificial e definições de estratégias, no intuito de concretizar a criação do jogo de ping pong entre robôs.

REFERÊNCIAS Kraetzschmar, Gerhard K., et. al. The Ulm Sparrows:

Research into Sensorimotor Integration, Agency, Learning, and Multiagent Cooperation. In Minoru Asada, editor, RoboCup-98, volume 1604 of Lecture Notes in Artificial Intelligence. Springer, Team description paper. 1999.

KLoc Antonio E.; Koscianski, André; Pilatti, L. Alberto.

Robótica: uma ferramenta pedagógica no campo da computação. I Simpósio Nacional de Ensino de Ciência e Tecnologia. 2009

Kitano, H.; Kuniyoshi, Y.; Noda, I.; Asada, M.; Maisubara, H.

and Osawa, H. Robocup: A Challenge Problem for AI. Ai magazine 18(1). 1997.

Bradski e Kaehler, G.; Kaehler, A. Learning OpenCV. Sebastopol, CA, USA: O’Reilly Media. 2008.

Junior, V. G. ; Deccó, C. C. G. ; Okamoto Junior, J. E Porto, A. J. V. 2001. Desenvolvimento de um Sistema de Visão Omnidirecional. Proceedings of COBEM 2001, Robotics and Control, Vol. 15, 30. 2001.

Costa, Anna H. R. ; Pegoraro, Renê; Construindo Robôs Autônomos para Partidas de Futebol: O Time Guaraná. SBA Controle & Automação Vol. 11 no. 03 / Set., Out., Nov, p. 141-149. Dezembro de 2000.

Jing Sun, Jiandong Tian; Yingkui Du; Yandong Tang . Fast Ball Detection Method for Ping-Pong Playing Robots . Second International Symposium on Information Science and Engineering . IEEE Computer Society. 2009.

Hiroaki Nakai , et al. A Volleyball Playing Robot . Proceedings of the 1998 IEEE .International Conference on Robotics & Automation . Leuven, Belgium * May 1998 .

Araujo, Gabriel M.; Mendonça, Meryelle M.; Freire, Eduardo O. Reconhecimento Automático de Objetos Baseado em Cor e Forma para Aplicações em Robótica. COPPE – Universidade Federal do Rio de Janeiro, 2008.

Duda, Richard O., Hart, Peter E. Use of the Hough

transformation to detect lines and curves in pictures. Communications of The ACM - CACM, vol. 15, no. 1, pp. 11-15. 1972.