Projetos Desenvolvidos Pelo Autor #4 - Controle Servo-visual de Uma Plataforma Robótica para Aplicações em Agricultura


O projeto consiste no aprimoramento de um robô móvel terrestre, em desenvolvimento, capaz de se locomover em terrenos irregulares de forma autônoma. Atualmente, esse robô se orienta através de GPS, cuja margem de erro é relativamente alta. Por isso, utilizando-se processamento de imagem, foi implementado um algoritmo capaz de fornecer informações que o ajudem a se orientar e se locomover no meio de uma lavoura de forma mais precisa. Espera-se que, com isso, o robô tenha mais autonomia para se movimentar e realizar tarefas básicas. Futuramente, ele poderá ser capaz de substituir o homem em diversas atividades, tais como monitoramento da plantação, aplicação de pesticida, herbicida, fertilizantes, entre outros.

Para isso, foram utilizados dois softwares principais: MATLAB e V-REP. O primeiro já foi detalhado em postagens anterioras, já o V-REP se trata de um simulador de robôs, com desenvolvimento de ambiente integrado. Ele é baseado em arquitetura de controle distribuída, onde cada objeto ou modelo pode ser individualmente controlado através de códigos feitos em C/C++, Python, Java, Lua, MATLAB ou Octave. O V-REP é utilizado para rápidos desenvolvimentos de algoritmos, simulação de automação de fábricas, rápida prototipação e verificação, entre outros.


A figura acima apresenta o robô real juntamente com o robô criado na simulação desenvolvido pelo aluno de graduação Carlos Moreto Herculano. Observa-se que o robô da simulação é muito semelhante ao robô móvel real, sendo uma opção interessante para realizar essa tarefa.

Para que o robô se mova utilizando a Visão Computacional, foi utilizado um objeto vermelho, que será a referência de movimento do robô. Uma vez conhecida a cor do alvo, determinar sua localização e seu tamanho se torna uma tarefa mais simples. O propósito do robô é capturar uma imagem, através de uma câmera, processá-la para que o objeto vermelho seja separado dos demais, e assim rastreado. Uma vez que o alvo é detectado, informações como distância e posição podem ser calculadas e utilizadas facilmente. É importante ressaltar que nenhum hardware foi construído ou adquirido para o tratamento das imagens, sendo que esse tratamento foi feito inteiramente em software.

Em um primeiro momento utilizou-se o filtro gaussiano para suprimir ruídos e detalhes pouco importantes da imagem. Em seguida separou-se a imagem utilizando o modelo de cor RGB e HSV, onde diversas simulações foram realizadas a fim de verificar qual delas seria a melhor opção. Os processamentos foram feitos em diversos ambientes com diferentes iluminações, e a metodologia escolhida foi a HSV, uma vez que ela é capaz de ignorar a iluminação que afeta o ambiente e tornar a imagem mais nítida para o isolamento necessário. Separou-se, então, a parte Hue das demais, e após diversos testes verificou-se que um valor interessante para a tonalidade vermelha seria acima de 342. Dessa forma, após separar a imagem em Hue foram selecionados apenas os pixels com valores acima de 342, com isso diversos elementos de outras cores e tonalidades já foram eliminados nessa etapa. Em seguida, a imagem foi binarizada para facilitar o rastreamento do objeto.Finalmente operações morfológicas são utilizadas para extrair os últimos resquícios na imagem. Novamente uma série de testes foram realizados para determinar quais operadores seriam mais eficientes, em qual ordem eles deveriam ser colocados e quantas vezes eles deveriam atuar, para assim extrair completamente os ruídos. Para removê-los, foi utilizada uma combinação de operações que são passadas seis vezes na imagem. As operações realizadas foram: branchpoints, open, shrink, skel, spur e novamente open.

Para um maior detalhamento de todo esse processamento, a figura 3.12 apresenta essa metodologia através de um fluxograma.


Após o processamento digital da imagem, tem-se uma matriz de 0s e 1s, onde os 1s representam o objeto que se deseja trabalhar. Deve-se extrair do mesmo as informações de posição, i.e., sua localização no plano cartesiano, com as posições do eixo X e Y. Assim, essa informação pode ser enviada para uma malha de controle e utilizada como parâmetro para orientação do robô móvel. Além disso, o tamanho do objeto também é calculado, fornecendo para o robô uma informação que pode ser utilizada para descobrir a distância entre o mesmo e o objeto. Primeiramente, a matriz é escaneada afim de encontrar o centro de massa do objeto. Dessa maneira, é possível calcular o centro de massa do objeto independente de seu formato, possibilitando assim que o robô móvel obtenha as coordenadas desse centro para utilizar como referência. Esse método torna irrelevante pequenos ruídos, pois quando o centro de massa for calculado, eles são praticamente ignorados. Nesse mesmo procedimento, foi possível calcular quantos pixels 1s o objeto possui, logo seu tamanho pode ser informado ao robô. Tanto a posição quanto o tamanho do alvo são enviados para o robô, para que ele possa ter o ângulo de suas rodas e velocidade calculados e ajustados ao longo do tempo, permitindo que ele siga o objeto vermelho. O objetivo é controlar a posição do objeto da imagem no eixo X, e o seu tamanho. O valor da posição do eixo X e do tamanho do objeto é enviado para o controlador que faz o ajuste e envia o valor para o sistema de esterçamento e de velocidade do robô. Em seguida o processamento de imagem é realizado a posição do objeto junto com seu tamanho são verificados e enviados na realimentação. Com isso o robô tem suas configurações ajustadas para que ele se encontre com o alvo.

Como dito anteriormente, a plataforma V-REP foi utilizada com o intuito de simular o robô móvel e verificar as funcionalidades do projeto. Nessa etapa, o trabalho foi realizado em conjunto com o aluno Marden Lúcio Rodrigues Júnior, quem desenvolveu o controle da velocidade e ângulos das rodas. Veja abaixo o resultado final desse projeto, em que o robô segue um objeto vermelho:


Inicialmente, o robô é ligado e sua câmera acionada. Ele começa a andar em círculos enquanto o algoritmo começa a processar a imagem que está sendo registrada. Quando o objeto é detectado, ele para e começa a seguir o alvo utilizando as coordenadas e tamanho do objeto fornecidos pelo processamento de imagem. As informações extraídas das coordenadas do objeto são computadas e alteram o ângulo das rodas do robô, enquanto as informações de tamanho determinam a velocidade. O vídeo acima ilustra esse movimento, em que as linhas azuis representam o alcance da câmera, as vermelhas os ângulos das rodas e a amarela a trajetória realizada. Na parte superior observa-se o tratamento da imagem em tempo real e na parte superior esquerda a câmera em tempo real do robô.

Para múltiplos alvos tem-se o seguinte vídeo:


Utilizando também as informações do GPS, o robô consegue alcançar múltiplos alvos. Inicialmente, o robô recebe a informação provinda do GPS de onde seu alvo se encontra, então o mesmo começa a se mover para tal localização, porém a margem de erro do GPS é relativamente alta, logo, quando o robô se aproxima do alvo, ele ativa sua câmera para verificar onde o objeto se posiciona exatamente. Encontrado o objeto, o robô para de usar a orientação pelo GPS e passa a se orientar através das informações provindas do processamento de imagem, e com isso consegue chegar até o alvo. Ao encontrar o objeto, o robô ativa seu braço mecânico para simular o monitoramento, aplicação de pesticida, herbicida, fertilizante, ou outra atividade relativa. Realizada sua tarefa, o mesmo recebe novamente as coordenadas do GPS e segue para o próximo alvo, realizando a mesma sequência de atividades. Essas ações são repetidas quatro vezes e um gráfico de posição e tamanho é gerado mais uma vez, como mostra o vídeo.

Devido a simplicidade dos equipamentos e algoritmos utilizados, a aplicação desenvolvida no projeto mostrou-se uma boa alternativa para complementar os outros métodos utilizados para o robô se orientar em sua movimentação.

É possível aplicar esse projeto em ambientes com iluminação controlada sem que a câmera seja obstruída durante o processamento de imagem. Além disso, outros objetos vermelhos de grande porte não podem atravessar o caminho do robô, pois nesse caso ele poderá ser confundido com o alvo. Por outro lado, sua simplicidade torna sua implementação fácil e interessante para determinados ambientes.

É importante ressaltar também que o uso desse algoritmo não se limita às práticas agrícolas, podendo ter aplicação em variados setores. Entretanto, ainda é necessário fazer alguns ajustes para que ele funcione de forma adequada ao ambiente que for inserido.

Fontes Utilizadas:


  • SALIS, T. T. Aplicações de visão computacional na indústria siderúrgica: problemas, soluções e estudos de caso. UFMG, 2008.
  • MATLAB. 2018. Último acesso: 12 mar. 2018. Disponível em: <https://www.mathworks.com/products/matlab.html>.
  • OPENCV. 2018. Último acesso: 23 mar. 2018. Disponível em: <https://opencv.org>.
  • GOUVÊA, S. Monitoramento tecnológico em automação para o agronegócio. In: IN: SIMPÓSIO NACIONAL DE INSTRUMENTAÇÃO AGROPECUÁRIA, 2014, SÃO CARLOS, SP ANAIS DO SIAGRO: CIÊNCIA, INOVAÇÃO E MERCADO 2014. SÃO CARLOS, SP: EMBRAPA INSTRUMENTAÇÃO, 2014. P. 675-678. EDITORES: CARLOS MANOEL PEDRO VAZ, DÉBORA MARCONDES BASTOS PEREIRA MILORI, SILVIO CRESTANA. Embrapa Instrumentação-Artigo em anais de congresso (ALICE). [S.l.], 2014.
  • PEDRINI, H.; SCHWARTZ, W. R. Análise de imagens digitais: princípios, algoritmos e aplicações. [S.l.]: Thomson Learning, 2008.
  • MARENGONI, M.; STRINGHINI, S. Tutorial: Introdução à visão computacional usando opencv. Revista de Informática Teórica e Aplicada, v. 16, n. 1, p. 125–160, 2009.
  • DENG, G.; CAHILL, L. An adaptive gaussian filter for noise reduction and edge detection. In: IEEE. Nuclear Science Symposium and Medical Imaging Conference, 1993., 1993 IEEE Conference Record. [S.l.], 1993. p. 1615–1619.
  • FACON, J. A morfologia matemática e suas aplicações em processamento de imagens. In: VII Workshop de Visao Computacional–WVC 2011. [S.l.: s.n.], 2011. v. 13.
  • BORTH, M. R. et al. A visão computacional no agronegócio: aplicações e direcionamentos. 7º Encontro Científico de Administração, Economia e Contabilidade (ECAECO), 2014.
  • CARVALHO, E. et al. Estimação de parâmetros para navegação de um robô móvel a partir de dados obtidos por um sistema de visão computacional”. In: XVI Congresso Brasileiro de Automação. [S.l.:s.n.], 2006.
  • ANDRADE, B. T.; MATOS, L. N.; FREIRE, E. O. Um sistema de visão computacional para robôs móveis. In: XXVI Congresso da SBC, Campo Grande, MS. [S.l.: s.n.], 2006.
  • HEINEN, F. et al. Navegação de veículos de carga autônomos utilizando visão computacional com algoritmo de segmentação por cores. In: IV Congresso Internacional de Automação, Sistemas e Instrumentação. [S.l.: s.n.], 2004. p. 1–10.
  • BIANCHI, R. A.; REALI-COSTA, A. H. O sistema de visão computacional do time futepoli de futebol de robôs. In: Congresso Brasileiro de Automática. [S.l.: s.n.], 2000. v. 130, p. 2156–2162.
  • COSTA, A. H. R.; PEGORARO, R. Construindo robôs autônomos para partidas de futebol: O time guaraná. SBA Controle & Automação, v. 11, n. 03, p. 141–149, 2000.
  • PENHARBEL, E. A. et al. Filtro de imagem baseado em matriz rgb de cores-padrão para futebol de robôs. Submetido ao I Encontro de Robótica Inteligente, 2004.
  • FERREIRA, E. M. Controle de um robô móvel para inspeção de lavouras utilizando um celular com Android. Monografia (Final de Curso - Graduação em Engenharia de Controle e Automação) — Universidade Federal de Minas Gerais, Belo Horizonte, 2017.
  • V-REP. 2018. Último acesso: 12 mar. 2018. Disponível em: <http://www.coppeliarobotics.com>.






Comments